hallo Forum, ich habe unter Ubuntu 10.04 mit Python eine Gui(mit Mayavi Plots) erstellt. Diese möchte ich nun auf ein anderen rechner zum laufen bringen, auch Ubuntu10.04. der erte Rechner ist ein dual core i3 330 2.13GHZ...läuft ohne Probleme. Der neue Rechner hat ein Quad i5 3.33GHZ core..gleiche skripte, gleiche install prozedur von Mayavi(paketverwaltung--> mayavi2). Nun friert mir der neue Rechner aber immer ein wenn ich die App starte, bzw. startet machnchmal, macht kurz was und friert dann ein. hat was zufälliges:-( kann mir jemand sagen woran dies liegen kann? hat jemand ein paar nützliche tipps wie ich an Fehlermeldungen komme? vielen dank im vorab. gruss lars
:
Verschoben durch User
larst schrieb: > Nun friert mir der neue Rechner aber immer ein wenn ich die App starte, > bzw. startet machnchmal, macht kurz was und friert dann ein. hat was > zufälliges:-( Wirklich der ganze Rechner? Oder nur das Skript? Was heißt "friert ein"? Geht die Tastatur noch? Die Maus?
hallo und danke für die schnellen antworten, @Multi Core: Für das Programm das abstürzt, nein, also nicht das ich wüsste, ist ein Python file mit einer Klassen definition, geerbt von der HasTraits klasse des Mayavi Frameworks. Keine Threads aber halt "events" dieser HasTraits Klasse --> siehe code @Rolf Magnus Also der Bildschirm refresht sich nicht mehr, die maus bekommt das default überlegen zeichen. und maus,tastatur und Bildschirm machen nix mehr. Affengriff wie ich als naiver Windows nutzer gewohnt bin geht nicht..vieleicht was anderes? Hier mal das python skript das ich über konsole starte:
1 | #!/usr/bin/env python
|
2 | |
3 | import scipy |
4 | import numpy as np |
5 | from numpy import * |
6 | from numpy import mgrid, empty, sin, pi |
7 | from enthought.tvtk.api import tvtk |
8 | from enthought.mayavi import mlab |
9 | from threading import Thread |
10 | #from gnuradio import digital
|
11 | import NetworkUni |
12 | import string |
13 | import math |
14 | import struct |
15 | from enthought.tvtk.pyface.scene import Scene |
16 | from enthought.traits.api import HasTraits, Range, Instance, \ |
17 | on_trait_change, Array, Tuple, Str, Button, String, Any, Int |
18 | from enthought.traits.ui.api import View, Item, HSplit, Group, VSplit, Label |
19 | from enthought.mayavi import mlab |
20 | from enthought.mayavi.core.ui.api import MayaviScene, MlabSceneModel, \ |
21 | SceneEditor
|
22 | |
23 | class kEstimate(HasTraits): |
24 | def enum(**enums): |
25 | return type('Enum', (), enums) |
26 | CMD = enum(MASK=0, PARAM=1) |
27 | Callback=Any |
28 | xrange_default=512 |
29 | yrange_default=10 |
30 | xs=xrange_default |
31 | ys=yrange_default |
32 | Ynor = np.arange(0,yrange_default, 1) |
33 | Xnor = np.arange(0, xrange_default, 1) |
34 | X, Y = np.meshgrid(Xnor, Ynor ) |
35 | xn, yn = X.shape |
36 | # print xn
|
37 | # print "\n"
|
38 | # print yn
|
39 | W = X*0 |
40 | ptMask = (X*0).transpose() |
41 | strMask="" |
42 | ##### SOCKET Params ########
|
43 | nw_c=None # socket Handler Client |
44 | nw_s=None # socket Handler server |
45 | |
46 | #-----------Variables for Mask Handling
|
47 | packstr="" |
48 | cntuse=0 |
49 | ##### View Objekts ############
|
50 | TH = Range(-20.0, 20.0, 0.0, enter_set=True, auto_set=False) # threshold to specify the mask |
51 | IP = String("192.168.178.28") |
52 | Port = String("50000") |
53 | Textbox = String() |
54 | Textbox2 = String() |
55 | button1 = Button('Redraw') |
56 | button2 = Button('Connect') |
57 | button3 = Button('Build Mask') |
58 | button4 = Button('Send Mask') |
59 | # The mayavi(mlab) scene.
|
60 | scene = Instance(MlabSceneModel, args=()) |
61 | sceneMask = Instance(MlabSceneModel, args=()) |
62 | # Traits Objekts used for output an grafs
|
63 | points = Tuple(Array, Array, Array) |
64 | flow = Instance(HasTraits) |
65 | Mask = Instance(HasTraits) |
66 | |
67 | ########################################
|
68 | # The UI view to show the user.
|
69 | view = View(HSplit( |
70 | Group(VSplit( |
71 | Group(Item('scene', editor=SceneEditor(scene_class=MayaviScene),height=500, width=500),'_', show_labels=False), |
72 | Group(Item('sceneMask', editor=SceneEditor(scene_class=Scene),height=100, width=250),'_', 'button1', show_labels=False))), |
73 | Group( |
74 | VSplit( |
75 | Group(Item(name = 'Port', height=20, width=250 ), Item(name = 'IP', height=20, width=250),Item(name ='button2', height=20, width=100 , show_label=False),'_', Item('Textbox2', springy=True, style='custom' , show_label=False),Item(name ='TH', height=20, width=100 , show_label=True), show_border = True ), |
76 | Group(Item(name ='button3', height=20, width=100 , show_label=False), Item(name ='button4', height=20, width=100 , show_label=False),'_', Item('Textbox', springy=True, style='custom', height=250, width=250 ), label = "RX Ausgabe", show_labels=False)),show_labels=False |
77 | )
|
78 | ), resizable=True, height=1000, width=1200) |
79 | ######################################################################
|
80 | # Trait handlers.
|
81 | ######################################################################
|
82 | @on_trait_change('button1') |
83 | def redraw_scene2(self): |
84 | if self.xs!=self.xrange_default or self.ys!=self.yrange_default: |
85 | self.resize() |
86 | #print self.xrange_default
|
87 | self.points=self.X, self.Y, self.W |
88 | x, y, w = self.points |
89 | self.flow.mlab_source.set(x=y, y=x, z=w, scalars=w) |
90 | def resize(self): |
91 | Ynor = np.arange(0, self.yrange_default, 1) |
92 | Xnor = np.arange(0,self.xrange_default, 1) |
93 | self.xs=self.xrange_default |
94 | self.ys=self.yrange_default |
95 | #print Ynor
|
96 | self.X, self.Y = np.meshgrid(Xnor, Ynor ) |
97 | self.xn, self.yn = self.X.shape |
98 | self.W = self.X*0 |
99 | self.ptMask = (self.X*0).transpose() |
100 | self.points=self.X, self.Y, self.W |
101 | #self.scene.mlab.clf()
|
102 | a, b, c = self.points |
103 | mlab.clf(figure=self.scene.mayavi_scene) |
104 | self.flow=self.scene.mlab.mesh(b, a, c , extent =(0 ,6 , 0,6, 0 ,1), figure=self.scene.mayavi_scene) |
105 | mlab.colorbar( title='Power', orientation='vertical', nb_labels=20, label_fmt='%.1f') |
106 | engine = mlab.get_engine() |
107 | module_manager = engine.scenes[0].children[0].children[0].children[0] |
108 | module_manager.scalar_lut_manager.lut_mode = 'jet' |
109 | module_manager.scalar_lut_manager.title_text_property.shadow = True |
110 | module_manager.scalar_lut_manager.shadow = True |
111 | #module_manager.scalar_lut_manager.use_default_range = False
|
112 | #module_manager.scalar_lut_manager.data_range = array([-60., 30.])
|
113 | module_manager.scalar_lut_manager.scalar_bar_representation.position2 = array([ 0.10155259, 0.49863014]) |
114 | module_manager.scalar_lut_manager.scalar_bar_representation.position = array([ 0.02367279, 0.48747554]) |
115 | module_manager.scalar_lut_manager.scalar_bar_representation.maximum_size = array([100000, 100000]) |
116 | module_manager.scalar_lut_manager.scalar_bar_representation.minimum_size = array([1, 1]) |
117 | mlab.view(200, 60,15) |
118 | |
119 | @on_trait_change('scene.activated') |
120 | def redraw_scene1(self): |
121 | self.points=self.X, self.Y, self.W |
122 | x, y, w = self.points |
123 | #mlab.gcf(figure=self.scene.mayavi_scene)
|
124 | self.flow.mlab_source.set(x=y, y=x, z=w, scalars=w) |
125 | @on_trait_change('button2') |
126 | def connect(self): |
127 | +-------------wird auch nicht benutzt |
128 | @on_trait_change('button3') |
129 | def build_mask(self): |
130 | x, y, w = self.points |
131 | threshold=self.TH |
132 | strValue="" |
133 | cntuse=0 |
134 | cntunuse=0 |
135 | maske=self.ptMask |
136 | # print maske.shape
|
137 | # print " "+str(self.xn)+" "
|
138 | # print w.shapeder
|
139 | for i, val in enumerate(w[0]): |
140 | if val<=threshold: |
141 | strValue+="0" |
142 | cntunuse+=1 |
143 | for ii in range(self.xn): |
144 | maske[i][ii]=0 |
145 | else: |
146 | strValue+="1" |
147 | cntuse +=1 |
148 | for ii in range(self.xn): |
149 | maske[i][ii]=1 |
150 | |
151 | self.strMask=strValue |
152 | self.ptMask=maske |
153 | self.cntuse=cntuse |
154 | self.Textbox2="Mask Build: -->used:"+str(cntuse)+"-->unused: "+str(cntunuse)+"\n"+self.Textbox2 |
155 | if len(self.Textbox2)>600: |
156 | self.Textbox2=self.Textbox2[:600] # limit textbox |
157 | #plot Mask image
|
158 | mlab.clf(figure=self.sceneMask.mayavi_scene) |
159 | self.Mask=self.sceneMask.mlab.imshow(maske, figure=self.sceneMask.mayavi_scene, colormap='gist_earth')#gist_earth |
160 | engine = mlab.get_engine() |
161 | image_actor = engine.scenes[1].children[0].children[0].children[0] |
162 | image_actor.actor.origin = array([ 0., 0., 0.]) |
163 | image_actor.actor.scale = array([ 5.5, 0.1*self.yn , 1. ]) |
164 | |
165 | #
|
166 | @on_trait_change('button4') |
167 | def send(self): |
168 | +------nutz den button gar nicht-------------------- |
169 | |
170 | def _points_default(self): |
171 | return self.X, self.Y, self.W |
172 | |
173 | def _flow_default(self): |
174 | a, b, c = self.points |
175 | f = self.scene.mlab.mesh(b, a, c , extent =(0 ,6 , 0,6, 0 ,1), figure=self.scene.mayavi_scene)#, |
176 | mlab.colorbar( title='Power', orientation='vertical', nb_labels=20, label_fmt='%.1f') |
177 | engine = mlab.get_engine() |
178 | module_manager = engine.scenes[0].children[0].children[0].children[0] |
179 | module_manager.scalar_lut_manager.lut_mode = 'jet' |
180 | module_manager.scalar_lut_manager.title_text_property.shadow = True |
181 | module_manager.scalar_lut_manager.shadow = True |
182 | #module_manager.scalar_lut_manager.use_default_range = False
|
183 | #module_manager.scalar_lut_manager.data_range = array([-60., 30.])
|
184 | module_manager.scalar_lut_manager.scalar_bar_representation.position2 = array([ 0.10155259, 0.49863014]) |
185 | module_manager.scalar_lut_manager.scalar_bar_representation.position = array([ 0.02367279, 0.48747554]) |
186 | module_manager.scalar_lut_manager.scalar_bar_representation.maximum_size = array([100000, 100000]) |
187 | module_manager.scalar_lut_manager.scalar_bar_representation.minimum_size = array([1, 1]) |
188 | mlab.view(200, 60,15) |
189 | return f |
190 | def _ptMask_default(self): |
191 | return self.Maskdata |
192 | def _Mask_default(self): |
193 | f = self.sceneMask.mlab.imshow(self.ptMask, figure=self.sceneMask.mayavi_scene)#, extent =(0 ,6 , 0,6, 0 ,1) |
194 | engine = mlab.get_engine() |
195 | image_actor = engine.scenes[1].children[0].children[0].children[0] |
196 | image_actor.actor.origin = array([ 0., 0., 0.]) |
197 | image_actor.actor.scale = array([ 5.5, 50. , 1. ]) |
198 | return f |
199 | |
200 | if __name__ == '__main__': |
201 | # Instantiate the class and configure its traits.
|
202 | global lol |
203 | lor = kEstimate() |
204 | # def Gui():
|
205 | # global lol
|
206 | # lor.configure_traits()
|
207 | lor.xrange_default=100 |
208 | lor.yrange=10 |
209 | # th1=Thread(target=Gui) # lass diese in thred ablaufen
|
210 | # th1.start()
|
211 | lor.configure_traits() |
larst schrieb: > Also der Bildschirm refresht sich nicht mehr, die maus > bekommt das default überlegen zeichen. und maus,tastatur und Bildschirm > machen nix mehr. Affengriff wie ich als naiver Windows nutzer gewohnt > bin geht nicht..vieleicht was anderes? dann hast du ein hardware oder Treiber Problem. Also erstmal die hardware testen dann eventuell mal andere Treiber oder anderen Kernel testen.
@ Peter II ok danke. klingt nicht gut.da ich ja auch kein linux Pro bin... Wo fang ich da am besten an? gibts ne art update commando für Ubuntu das sich die passenden treiber Module für die Hardware zusammensucht. ein paar tipps wären sehr hilfreich PS: hat es vielleicht auch was mit dem X Server(Grafik) zu tun Ich kann gern weitere information bereitstellen
larst schrieb: > @ Peter II > > ok danke. klingt nicht gut.da ich ja auch kein linux Pro bin... Da ist zumindest irgendwas faul, denn so sollte sich das System nie verhalten. > Wo fang ich da am besten an? gibts ne art update commando für Ubuntu das > sich die passenden treiber Module für die Hardware zusammensucht. Die meisten Treiber sind beim Kernel dabei. Du kannst natürlich mal schauen, ob die Kernel-Version eine andere ist als beim anderen Rechner. (uname -a auf der Konsole) Wenn der Grafiktreiber das Problem ist und es sich um eine Nvidia- oder ATI-Karte handelt, kannst du zwischen dem Hersteller-Treiber und dem OpenSource-Treiber wählen. Da gibt's irgendwo im Menü sowas wie "Zusätzliche Treiber" oder so. Da kann man den Grafiktreiber wählen. > ein paar tipps wären sehr hilfreich > > PS: hat es vielleicht auch was mit dem X Server(Grafik) zu tun Möglich. Vielleicht hat der Rechner einen instabilen Grafiktreiber. Ist da eine andere Grafikkarte drin, als in dem funktionierenden Rechner? larst schrieb: > Affengriff wie ich als naiver Windows nutzer gewohnt bin geht > nicht..vieleicht was anderes? Probier mal Strg+Alt+F1. Das sollte auf die Konsole umschalten (weg vom X). Aber wenn die Maus sich nicht mehr bewegt, wird das vermutlich nicht mehr gehen. Wenn das doch geht, kannst du dich da mal einloggen und top eingeben. Das zeigt dir eine Prozessliste an. Vielleicht gibt das irgendwelchen Aufschluß. Ansonsten, falls der X-Server wirklich steht, kannst du versuchen, ihn mit Alt+Drucken+K zu killen.
Rolf Magnus schrieb: > Probier mal Strg+Alt+F1. Das sollte auf die Konsole umschalten Mit Strg+Alt+F7 oder F8 kommst du zurück in die Grafik.
ok danke nochmals für die tipps, ich hoffe mal das es am kernel liegt (komm nur grad nicht an den rechner ran). werde auch mal versuchen mit den neuen "affengriffen" was zu bewegen...bis dahin erstmal danke
ok bin jetz wieder beim besagten Rechner und habe folgendes rausgefunden: 1. alle Tastenkombinationen versagen--> geht nur noch restart 2. der kernel ist gleich:-( naja.. ich habe spasseshalber mal eine Virtual Box mit ebenfalls Ububtu 10.04 auf besagten rechner gestartet(Hintergrund:erster rechner läuft auch auf VB) und die scripte transportiert. und siehe da es geht;-)..hab jetz ca. 10x Versucht ein einfrieren zu provozieren aber ohne erfolg. Nun ist die frage was läuft falsch auf dem Host? ich hab mal alles gecheckt und herausgefunden das "uname -a" beim Host: Linux Landshut 2.6.32-21-generic #32-Ubuntu SMP Fri Apr 16 08:09:38 UTC 2010 x86_64 GNU/Linux und beim gast sowie beim ersten rechner: Linux Speyer 2.6.32-21-generic #32-Ubuntu SMP Fri Apr 16 08:10:02 UTC 2010 i686 GNU/Linu ergeben. Also x86_64 vs. i686. liegt nun da der Hund begraben und wenn ja wie änder ich x86_64 auf i686 um
larst schrieb: > 1. alle Tastenkombinationen versagen--> geht nur noch restart Ok, dann ist das System also wohl komplett tot. > 2. der kernel ist gleich:-( Da du meine Frage nicht beantwortet hast, hier nochmal: Was für Grafikkarten stecken in den Rechnern? > Nun ist die frage was läuft falsch auf dem Host? ich hab mal alles > gecheckt und herausgefunden das "uname -a" beim Host: > Linux Landshut 2.6.32-21-generic #32-Ubuntu SMP Fri Apr 16 08:09:38 UTC > 2010 x86_64 GNU/Linux > > und beim gast sowie beim ersten rechner: > Linux Speyer 2.6.32-21-generic #32-Ubuntu SMP Fri Apr 16 08:10:02 UTC > 2010 i686 GNU/Linu > > ergeben. Also x86_64 vs. i686. liegt nun da der Hund begraben und wenn > ja wie änder ich x86_64 auf i686 um Durch Neuinstallation. Das eine ist wohl ein 32-Bit-Ubuntu, das andere eins mit 64 Bit, also andere Zielarchitektur. Das dürfte dann nicht nur den Kernel, sondern das gesamte System betreffen. Wie ist das denn auf dem anderen Rechner?
> Affengriff wie ich als naiver Windows nutzer gewohnt > bin geht nicht..vieleicht was anderes? Notfalls [0], muss allerdings im Kernel (zur Compilezeit) aktiviert sein. [0] http://en.wikipedia.org/wiki/Magic_SysRq_key
2.6.32 ist aber wirklich steinalt. Wenn der Rechner einfriert, kann das z. B. an nem Kernel-Panic liegen oder so. Siehst du NumLock- und CapsLock auf deiner Tastatur? Wenn die blinken, ist es definitiv ein Kernel-Panic
hallo, danke für die antworten. @Rolf Magnus: zu den verwendeten Kernels und Ubuntu Versionen. Ich habe die Appi derzeit auf zwei Laptops getestet und erfolgreich verifiziert. Beide Systeme haben eine i686 Arch. und laufen einmal unter Kernel 2.6.32-21-generic und 2.6.32-38-generic mit Ubuntu 10.04. i686 deutet ja dann auf die 32Bit Versionen hin, richtig? Wie gesagt, auf den x86_64 System die VM läuft auch mit i686 und kernel 2.6.32-21-generic und es geht. Infos zur Grafikkarte und zum NumLock- und CapsLock status kann ich erst morgen Posten, sry nicht vor ort. Ungeachtet der Frage nach der Grafikkarte und Drivern dazu, kann es überhaupt sein, dass Mayavi nicht kompatibel/instabil zum x86_64 Befehlsatz ist(hab nix derartiges gesehen) und deshalb das Programm abstürzt. und wenn ja, gibt es allgemein möglichkeiten auf einem x86_64 System den start eines Programms nach i686 Arch zu forcieren.
larst schrieb: > Beide Systeme haben eine i686 Arch. und laufen einmal unter Kernel > 2.6.32-21-generic und 2.6.32-38-generic mit Ubuntu 10.04. i686 deutet ja > dann auf die 32Bit Versionen hin, richtig? Ja. > Wie gesagt, auf den x86_64 System die VM läuft auch mit i686 und kernel > 2.6.32-21-generic und es geht. Ok, so ganz klar ist mir das noch nicht. Sind nun alle Systeme, auf denen du dein Programm laufen läßt, 686? Oder ist das nicht funktionierende das einzige x64-System? > Ungeachtet der Frage nach der Grafikkarte und Drivern dazu, kann es > überhaupt sein, dass Mayavi nicht kompatibel/instabil zum x86_64 > Befehlsatz ist(hab nix derartiges gesehen) und deshalb das Programm > abstürzt. Naja, ein Crash des gesamten Systems sollte eigentlich nie passieren, aber Bugs sind nicht auszuschließen. Da dieses Mayavi ja anscheinend recht grafikintensiv ist und auch 3D nutzt, ist der Grafiktreiber durchaus ein heißer Kandidat. Kann durchaus auch sein, daß dessen 64-Bit-Version einen Bug hat. > und wenn ja, gibt es allgemein möglichkeiten auf einem x86_64 > System den start eines Programms nach i686 Arch zu forcieren. Du müßtest die 32-Bit-Version des Programms installieren, aber ich denke nicht, daß das viel bringt.
hallo, das was nicht läuft ist das x86_64 System an der uni, alle anderen, sprich die 2 Laptops zu hause sind i686. wenn ich aber eine VM auf den x86_64 starte, die mit i686 läuft, geht es innerhalb der VM. habe ich damit licht in mein setup gebracht?;-) gruss lars und danke für die zeit
guten Morgen, ich habe jetz mal die Daten des problemkindes:
1 | lspci -nnk | grep -i VGA -A2 |
ergibt:
1 | 00:02.0 VGA compatible controller [0300]: Intel Corporation Core Processor Integrated Graphics Controller [8086:0042] (rev 12) |
2 | Kernel driver in use: i915 |
3 | Kernel modules: i915 |
1 | glxinfo | grep rendering |
steht auf yes. glxgears geht auch mit ca 3700 frames modinfo zu i915 ergibt: filename: /lib/modules/2.6.32-21-generic/kernel/drivers/gpu/drm/i915/i915.ko license: GPL and additional rights description: Intel Graphics author: Tungsten Graphics, Inc. license: GPL and additional rights srcversion: 2CD294A9B4EF76F55537D28 ... ich habe zusätzlich noch eine *.html datei über den rechner angehängt
i915? Das Ding ist aber auch nicht mehr ganz taufrisch, oder? Mein altes Windows-Notebook von Anfang 2005 mit "Centrino" (Pentium M, Intel-WLAN-Hardware und Intel-Chipsatz) nutzt die Mobilversion des i915, was ein kleinen Hinweis auf das Alter geben könnte.
hmm ok, keine Ahnung was, wie, wo aktuell ist. ich weiss nur, dass die rechner rel.neu sind(ca.1-2 Jahre). was soll ich deiner meinung nach jetz machen. neue module laden? ich wollte gerade eine 32-Bit version von Ubuntu drauf machen. wird dadurch auch das "veraltete " i915 module ersetzt. ich habe auch mal was von "linux image header" updates oder so gehört... bringt das was?
larst schrieb: > wird dadurch auch das "veraltete " i915 module ersetzt Das ist Hardware. Wenn der Rechner nur ein, zwei Jahre alt ist, ist da garantiert kein i915 drin, sondern etwas anderes. Ohne mich mit Ubuntu & Co auszukennen, vermute ich, daß da einfach ein unpassender Graphiktreiber verwendet wird.
hmm...ok an der Ubuntu Version liegt es nicht. i686 funzt auch nicht. Also Grafiktreiber.... hat jemand einen tip was ich bei dieser Hardware-->siehe Anhang,post oben, nehmen sollte. Erschhlag ich das wenn ich mal den neuesten kernel lade
supi..kernel update auf 2.6.38-12-generic hat es gebracht. der Driver ist immernoch i915 aber es funzt ohne abstüze. die Ursache des ganzen wird wohl im dunkeln bleiben.
Rufus Τ. Firefly schrieb: > larst schrieb: >> wird dadurch auch das "veraltete " i915 module ersetzt > > Das ist Hardware. Wenn der Rechner nur ein, zwei Jahre alt ist, ist da > garantiert kein i915 drin, sondern etwas anderes. > > Ohne mich mit Ubuntu & Co auszukennen, vermute ich, daß da einfach ein > unpassender Graphiktreiber verwendet wird. Der i915 Treiber ist für sehr viele Intelgrafikeinheiten der richtige. Dazu gehören auch alle in die Core i integrierten. Das passt schon. Mit solcherlei Standardhardware kommt ein aktuelles Linux sehr gut zurecht wenn man mal vom leidigen Stromsparproblem absieht. Matthias
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.