Die Hardware und die Software
In einem schmalen, weisslich-vergilbten (Tribut an eBay) Metallgehaeuse daherkommend, Typenbezeichnung "IGEL 316 Compact", hinten brav aufgereiht TP-LAN, RS232, LPT, Audio, VGA, Keyboard, Maus, Strom (230V AC); vorn ein Smartcard-Reader nebst zweier USB-Anschluesse. Um von den aeusseren zu den inneren Werten zu kommen: Folgendes laesst sich ueber die Hard- und Software ergruenden (was nicht weiter schwer faellt, da netterweise ein XTerm sehr einfach zu haben ist):
root@stachelrechner:/proc >uname -a
Linux stachelrechner 2.4.21 #2 Die Okt 26 16:11:42 CEST 2004 i586 unknown
root@stachelrechner:/proc >cat version
Linux version 2.4.21 (root@daisy) (gcc version 2.95.2 19991024 (release)) #2 Die Okt 26 16:11:42 CEST 2004
root@stachelrechner:/proc >cat cpuinfo
processor : 0
vendor_id : Geode by NSC
cpu family : 5
model : 9
model name : Geode(TM) Integrated Processor by National Semi
stepping : 2
cpu MHz : 300.680
cache size : 16 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu tsc msr cx8 cmov mmx cxmmx
bogomips : 599.65
root@stachelrechner:/proc >cat meminfo
total: used: free: shared: buffers: cached:
Mem: 59502592 37613568 21889024 0 991232 14929920
Swap: 0 0 0
MemTotal: 58108 kB
MemFree: 21376 kB
MemShared: 0 kB
Buffers: 968 kB
Cached: 14580 kB
SwapCached: 0 kB
Active: 8196 kB
Inactive: 22332 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 58108 kB
LowFree: 21376 kB
SwapTotal: 0 kB
SwapFree: 0 kB
root@stachelrechner:/proc >cat pci
PCI devices found:
Bus 0, device 0, function 0:
Host bridge: Cyrix Corporation PCI Master (rev 0).
Bus 0, device 15, function 0:
Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 16).
IRQ 15.
Master Capable. Latency=64. Min Gnt=32.Max Lat=64.
I/O at 0xef00 [0xefff].
Non-prefetchable 32 bit memory at 0xfbffef00 [0xfbffefff].
Bus 0, device 18, function 0:
ISA bridge: Cyrix Corporation 5530 Legacy [Kahlua] (rev 48).
Master Capable. Latency=64.
Bus 0, device 18, function 1:
Bridge: Cyrix Corporation 5530 SMI [Kahlua] (rev 0).
Non-prefetchable 32 bit memory at 0x40012000 [0x400120ff].
Bus 0, device 18, function 2:
IDE interface: Cyrix Corporation 5530 IDE [Kahlua] (rev 0).
I/O at 0xfc00 [0xfc7f].
Bus 0, device 18, function 3:
Multimedia audio controller: Cyrix Corporation 5530 Audio [Kahlua] (rev 0).
Non-prefetchable 32 bit memory at 0x40011000 [0x4001107f].
Bus 0, device 18, function 4:
VGA compatible controller: Cyrix Corporation 5530 Video [Kahlua] (rev 0).
Non-prefetchable 32 bit memory at 0x40800000 [0x40ffffff].
Non-prefetchable 32 bit memory at 0x40010000 [0x40010fff].
Bus 0, device 19, function 0:
USB Controller: Compaq Computer Corporation ZFMicro Chipset USB (rev 6).
IRQ 11.
Master Capable. Latency=64. Max Lat=80.
Non-prefetchable 32 bit memory at 0xfbfff000 [0xfbffffff].
...und schliesslich noch das Bootlog aus /prog/kmsg...
<4>Linux version 2.4.21 (root@daisy) (gcc version 2.95.2 19991024 (release)) #2 Die Okt 26 16:11:42 CEST 2004 <6>BIOS-provided physical RAM map: <4> BIOS-e820: 0000000000000000 - 0000000000098800 (usable) <4> BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved) <4> BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved) <4> BIOS-e820: 0000000000100000 - 0000000003c00000 (usable) <4> BIOS-e820: 0000000003c00000 - 0000000004000000 (reserved) <4> BIOS-e820: 0000000040000400 - 00000000400005a0 (reserved) <4> BIOS-e820: 0000000040008000 - 0000000040009000 (reserved) <4> BIOS-e820: 0000000040400000 - 0000000040800000 (reserved) <4> BIOS-e820: 00000000fff10000 - 0000000100000000 (reserved) <5>60MB LOWMEM available. <4>On node 0 totalpages: 15360 <4>zone(0): 4096 pages. <4>zone(1): 11264 pages. <4>zone(2): 0 pages. <4>Kernel command line: igel_syslog=quiet console=,1 bootversion=15 <6>Initializing CPU#0 <6>Working around Cyrix MediaGX virtual DMA bugs. <4>Detected 300.684 MHz processor. <4>Console: colour dummy device 80x25 <4>Calibrating delay loop... 599.65 BogoMIPS <6>Memory: 58016k/61440k available (1126k kernel code, 3008k reserved, 771k data, 92k init, 0k highmem) <4>Checking if this processor honours the WP bit even in supervisor mode... Ok. <6>Dentry cache hash table entries: 8192 (order: 4, 65536 bytes) <6>Inode cache hash table entries: 4096 (order: 3, 32768 bytes) <6>Mount cache hash table entries: 512 (order: 0, 4096 bytes) <4>Buffer-cache hash table entries: 1024 (order: 0, 4096 bytes) <4>Page-cache hash table entries: 16384 (order: 4, 65536 bytes) <6>Working around Cyrix MediaGX virtual DMA bugs. <7>CPU: After generic, caps: 00808131 00818131 00000000 00000001 <7>CPU: Common caps: 00808131 00818131 00000000 00000001 <4>CPU: NSC Geode(TM) Integrated Processor by National Semi stepping 02 <6>Checking 'hlt' instruction... OK. <6>Checking for popad bug... OK. <4>POSIX conformance testing by UNIFIX <4>mtrr: v1.40 (20010327) Richard Gooch (rgooch@atnf.csiro.au) <4>mtrr: detected mtrr type: none <4>bios32_service(0x49435024): returned 0x81 -- BIOS bug! <6>PCI: Using configuration type 1 <6>PCI: Probing PCI hardware <6>PCI: Fixup for MediaGX/Geode Slave Disconnect Boundary (0x41=0x10) <6>isapnp: Scanning for PnP cards... <6>isapnp: No Plug & Play device found <6>Linux NET4.0 for Linux 2.4 <6>Based upon Swansea University Computer Society NET3.039 <4>Initializing RT netlink socket <6>apm: BIOS version 1.2 Flags 0x07 (Driver version 1.16) <4>Starting kswapd <6>parport0: PC-style at 0x378 [PCSPP(,...)] <6>vesafb: framebuffer at 0x40800000, mapped to 0xc480d000, size 2400k <6>vesafb: mode is 640x480x8, linelength=640, pages=2 <6>vesafb: protected mode interface info at c000:6f1b <6>vesafb: scrolling: redraw <4>ptr = c10f3400, len = 148, con = 0 <4>Console: switching to colour frame buffer device 74x2 <6>fb0: VESA VGA frame buffer device <6>BIOS detected a device on the PS/2 Mouse Port. <4>pty: 256 Unix98 ptys configured <6>Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ SERIAL_PCI ISAPNP enabled <6>ttyS00 at 0x03f8 (irq = 4) is a 16550A <6>ttyS01 at 0x02f8 (irq = 3) is a 16550A <6>lp0: using parport0 (polling). <6>Real Time Clock Driver v1.10e <6>fl: Flash disk driver for DiskOnChip <6>fl: DOC device(s) found: 1 <6>fl: _init: registered device at major: 62 <6>Partition check: <6> fla: fla1 <6>fl: partition: 0: start_sect: 0, nr_sects: 7ca0 Fl_blk_size[]: 3e50kb <6>fl: partition: 1: start_sect: 2, nr_sects: 7c9e Fl_blk_size[]: 3e4fkb <6>fl: partition: 2: start_sect: 0, nr_sects: 0 Fl_blk_size[]: 0kb <6>fl: partition: 3: start_sect: 0, nr_sects: 0 Fl_blk_size[]: 0kb <6>Floppy drive(s): fd0 is 1.44M <6>FDC 0 is a National Semiconductor PC87306 <6>Uniform Multi-Platform E-IDE driver Revision: 7.00beta4-2.4 <6>ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx <6>CS5530: IDE controller at PCI slot 00:12.2 <6>CS5530: chipset revision 0 <6>CS5530: not 100% native mode: will probe irqs later <7>PCI: Setting latency timer of device 00:12.2 to 64 <6> ide0: BM-DMA at 0xfc00-0xfc07, BIOS settings: hda:pio, hdb:pio <6> ide1: BM-DMA at 0xfc08-0xfc0f, BIOS settings: hdc:pio, hdd:pio <6>NET4: Linux TCP/IP 1.0 for NET4.0 <6>IP Protocols: ICMP, UDP, TCP, IGMP <6>IP: routing cache hash table of 512 buckets, 4Kbytes <6>TCP: Hash tables configured (established 4096 bind 4096) <6>NET4: Unix domain sockets 1.0/SMP for Linux NET4.0. <4> IGEL flash structure on top of 3e:01 <4> 15951 blocks of 1024 bytes, 16333824 bytes total <4>IGEL Flash Disk: testing 249 sections = 15936 KB of flash memory ... <4>Number of clusters in part 1 -> 960 <4>Number of clusters in part 2 -> 960 <4>Number of clusters in part 3 -> 320 <4>IGEL Flash Disk: minor 1 version 0x1004 size 30720 blocks <4>IGEL Flash Disk: minor 2 version 0x1004 size 30720 blocks <4>IGEL Flash Disk: minor 3 version 0x1004 size 10240 blocks <4>IGEL Flash Disk: driver initialised <4>VFS: Mounted root (ext2 filesystem) readonly. <6>Freeing unused kernel memory: 92k freed <4>EXT2-fs warning: checktime reached, running e2fsck is recommended <4>EXT2-fs warning: checktime reached, running e2fsck is recommended <4>wfs: wfs successfully mounted <4>EXT2-fs warning: checktime reached, running e2fsck is recommended <6>8139too Fast Ethernet driver 0.9.26 <6>eth0: RealTek RTL8139 Fast Ethernet at 0xc4a7ef00, 00:e0:c5:6d:29:bf, IRQ 15 <7>eth0: Identified 8139 chip type 'RTL-8139C' <4>eepro100.c:v1.09j-t 9/29/99 Donald Becker http://www.scyld.com/network/eepro100.html <4>eepro100.c: $Revision: 1.36 $ 2000/11/17 Modified by Andrey V. Savochkin...das mit dem Half-Duplex scheint an dem antiquarischen Hub zu liegen, dan dem das stachelige Rechenwerk gerade haengt.and others <5>ne.c: You must supply "io=0xNNN" value(s) for ISA cards. <6>ne2k-pci.c:v1.02 10/19/2000 D. Becker/P. Gortmaker <6> http://www.scyld.com/network/ne2k-pci.html <6>pcnet32.c:v1.27a 10.02.2002 tsbogend@alpha.franken.de <6>atnic32.c:v1.27b 11.07.2002 tsbogend@alpha.franken.de <6>sundance.c:v1.01+LK1.06b 6-Nov-2002 Written by Donald Becker <6> http://www.scyld.com/network/sundance.html <6>mice: PS/2 mouse device common for all mice <6>usb.c: registered new driver usbdevfs <6>usb.c: registered new driver hub <6>usb.c: registered new driver hid <6>hid-core.c: v1.8.1 Andreas Gal, Vojtech Pavlik <6>hid-core.c: USB HID support drivers <6>usb.c: registered new driver usblp <6>printer.c: v0.11: USB Printer Device Class driver <6>cardman_usb.c v2.4.0beta1 support.linux@omnikey.com <6>usb.c: registered new driver cardman <6>usb-ohci.c: USB OHCI at membase 0xc4aaf000, IRQ 11 <6>usb-ohci.c: usb-00:13.0, Compaq Computer Corporation ZFMicro Chipset USB <6>usb.c: new USB bus registered, assigned bus number 1 <6>hub.c: USB hub found <6>hub.c: 2 ports detected <6>CSLIP: code copyright 1989 Regents of the University of California <6>PPP generic driver version 2.4.2 <6>SLIP: version 0.8.4-NET3.019-NEWTTY-MODULAR (dynamic channels, max=256) (6 bit encapsulation enabled). <6>SLIP linefill/keepalive option. <6>PPP Deflate Compression module registered <6>PPP BSD Compression module registered <6>PPP MPPE Compression module registered <6>Soundblaster audio driver Copyright (C) by Hannu Savolainen 1993-1996 <5>sb: No ISAPnP cards found, trying standard ones... <6>SB 4.12 detected OK (220) <4>fg = 0, splash_console = 0 <4>ptr = c10f3400, len = 148, con = 0 <6>eth0: Setting 100mbps half-duplex based on auto-negotiated partner ability 40a1.
Um den Hostnamen zu setzen ist auch kein tiefschuerfendes Hacken und reverse-engineeren notwendig, das allumfassende Setup-Tool erlaubt das Setzen dieser Einstellung ohne weitere Umschweife. Der Graphikchipsatz schafft bis 1024x768; zugegeben, das ist heute nicht mehr viel und duerfte dem Alter geschuldet sein. Mit mehr Graphikspeicher koennte man da sicher auch weiter kommen, aber es ist halt keine Graphikworkstation, sondern primaer der Ersatz fuer meine dahingegangene Konsole.
Natuerlich fiel mein Augemerk auch auf die installierte Software und mit einer gewissen Neugierde auch auf die Frage "wie macht man das?". Also begann ich den Spass zu erkunden, wobei sich folgendes fand:
- Das Grundsystem ist irgendein Linux. Es liegt stark komprimiert auf Flash vor und wird vor oder waehrend des Bootens auf Ramdisks expandiert. Ebenso liegen die Konfigurationsdateien nicht in ihrem eigentlichen Format vor sondern werden beim Booten jeweils neu erzeugt (weshalb Manipulationen an ihnen keine weitgehenden Auswirkungen haben. Villeicht auch ein Schutz vor allzu ambitionierten Bastlern? Ich fuehle mich ertappt.)
- Es werkelt ein X-Server, als Window-Manager ist ein
qvwm(http://www.csg.is.titech.ac.jp/~kourai/qvwm/) mit angepasstem Theme unterwegs. Ich habe mir daraufhin diesen Windowmanager, der von sich selbst sagt, dass er versucht, soviel Windows-95/98-Look'n'Feel wie moeglich mitzubringen, auf meinem Notebook installiert und stelle fest, dass er mir ganz gut gefaellt: Wenig Abhaengigkeiten, konfigurierbar wie nur irgendwas und schnell wie Hund. Kommt natuerlich ohne den ganzen Komfort einer KDE oder eines GNOME daher. - Das Setupprogramm ist ein schweizer Taschenmesser. Man kann dort alles einstellen. Naja, fast, bis man richtig sucht. Denn es ist leider etwas unuebersichtlich. Nervig ist, dass es in saemtlichen "Hinzufuegen"-Dialogen keine Abbruchsfunktion gibt, weshalb man immer zumindest einen leeren Eintrag erstellt. Wenn man das weiss, ist das OK, wenn nicht wahrscheinlich recht irritierend.
Serielle Verbindung gesucht...
Aber, Ziel des Kaufes war nicht, mich zum Basteln zu animieren, sondern einen brauchbaren Ersatz fuer meine serielle Konsole zu haben. Also bin ich bei meinem ersten Streifzug gleich in das Setup zum Reiter "Sitzungen", habe auf "Hinzufuegen" geklickt und musste enttaeuscht feststellen, dass es dort nur die Auswahl zwischen
- ICA Sitzung -- also Citrix-Kram
- RDP Sitzung -- also Remote-Desktop zu irgendeinem Windows
- Kartenleser Sitzung -- irgendwas mit dem Smartcardleser... keine Ahnung, was genau
- Anwendung ueber RSH -- klar.
- Anwendung ueber SSH -- s.o.
- Smartcard Passwort Sitzung -- Da ich den Smartcardkram nicht wirklich kenne, genauso unklar wie die Kartenleser-Sitzung.
- Setup-Sitzung -- Erlaubt, einen Eintrag fuer das Setupprogramm in das Startmenue und auf den Desktop aufzunehmen. Ich frage mich, ob man den Zugang zum Setupprogramm versehentlich verhindern kann.
- Lokale Anwendung/Terminal -- Erlaubt dem Nutzer, einen xterm-Aufruf hinzuzufuegen. Bedauerlicherweise, kann keine Kommandozeile mitgegeben werden.
Aber, man ist ja Bastler und Frickler und so bleibt schliesslich nur eines: Selber machen.
Der serielle Anschluss des IGELs
Erst einmal also die Frage: Wie kommt man an den seriellen Anschluss heran und funktioniert er auch. Das laesst sich recht einfach klaeren: Man nehme sich zwei XTerms, klemme den seriellen Anschluss geeignet an einem Maschine, die daruauf ein Interface anbietet (es war mein Ueber-Gecko, eine HPPA/RISC Visualize 2000, auf der ein OpenBSD laeuft).
Zum Test wurde dann in einem Terminal ein cat /de/ttyS0 und im anderen ein cat >/dev/ttyS0 veranstaltet. Ergebnis: Es funktioniert. Der ueble Beigeschmack: Es ist weder komfortabel, noch intuitiv noch kann man einen einfachen Editor bedienen, ohne sich zu verrenken. Aber -- grundsaetzlich war gezeigt, dass der serielle Anschluss des IGEL fuer meine Zwecke geeignet ist.
Kompilieren eines Terminalemulators
Mit dem Unterproblem "Kompilieren eines Programms fuer den IGEL".
Nachdem also in der gesamten, ueberschaubaren Menge der von den Machern mitgelieferten Software kein Terminalemulator vorhanden war (wozu auch; wenn eine solche Sitzung nicht angeboten wird?) stellte sich die Frage, wie man das Problem am geschicktesten angeht. Dabei ergeben sich die folgenden Ansaetze: a) selber schreiben, b) vorhandene Software portieren, c) Hersteller fragen.
Nachdem ich das Geraet allerdings gebraucht bei eBay gekauft habe und es seit 5 Jahren aus dem Herstellersupport ist, faellt Variante c aus. Also bleiben noch a und b. Nachdem mir klar wurde, dass a nontrivial ist (weil ich am Ende bei jedem Fehler fluchen und wieder in den Quellcode gehen werde, weil ich den Sonderfall (n+1) vergessen habe) bleibt nur noch b. Also portieren. Ein Kompiler scheint auf dem Igel ja vorhanden, jedenfalls gibt es ein Binary namens cpp, welches sich auch wie erwartet outet. Leider laeuft der Igel bereits beim Uebersetzeen eines Hello-World-Programms aus dem Speicher -- kein Wunder, wenn alles inklusive des laufenden Systems im RAM liegt -- und schliesst mir dann eine Anwendung nach der anderen, bis das Terminal versenkt wird, in dem ich zu kompilieren versuche. Also muss ich irgendeine andere Kiste finden, auf der ich ggf. Cross-Compiling betreibe. So eine Freude aber auch.
Oder ist der Igel in seinen Binaries vielleicht mit einem anderen System, welches bei mir herumsteht, kompatibel? Hoffnung breitet sich aus. Und Experimentierfreude.
Nachdem ich meine BSDs recht schnell ausschliessen konnte (der Igel kann NFS mounten, was die ganze Sache enorm vereinfacht), fiel mir mein uraltes Debian ein. Wobei Debian noch eine freundliche Uebertreibung ist: Es ist eine Festplatteninstallation von Knoppix. Und ich habe sie zuletzt in meinem ersten Semester angefasst -- bevor lando (http://lando.cc) mich mit FreeBSD (http://freebsd.org) infizierte und ich dabei blieb. Aber trotzdem habe ich die alte Installation aufgehoben...
Also das Linux gebootet, den gemeinsamen NFS-Mountpoint angepeilt und mal ein Hello-World-Programm uebersetzt und dem Igel zur Ausfuehrung ueberlassen -- es lief :)
Damit ist die Sache mit dem Crosscompiling schon mal vom Tisch. Erleichterung macht sich breit. Nun war Zeit fuer die zweite Frage: Welcher Terminalemulator darfs denn sein? Wie ueberall in der Welt der freien- und unixartigen Software gibt es 37 Loesungen fuer ein Problem. Die Kunst besteht nun darin, diejenigen Loesungen zu waehlen, welche jemals ueber den Zustand der "public beta" hinausgekommen sind und dabei auch noch die zu meiden, deren Entwickler keine Lust mehr zum Fehler ausbessern hat. Von meinem FreeBSD kenne ich cu (Call Unix) als kleines wie funktionierendes Prograemmchen. Was ich leider uebersah, war, dass es zu einem ganzen Paket an Programmen zur seriellen Kommunikation gehoert (mit uucp und anderen historischen Teilnehmern) -- und 2 Bibliotheken mitbringt. Ich habe es zwar auf dem Linux erfolgreich uebersetzen koennen, nachdem mir sh (http://memespace.net) bei der Suche nach dem Quellcode geholfen hat (auf apt-cache search haette ich eigentlich auch kommen koennen... Linux ist bei mir halt doch ne Weile her...). Das Asfuehren endete allerdings recht schnell, weil auf dem Igel eine andere glibc installiert war als auf meinem Linux. Hier boten sich nun zwei Moeglichkeiten an: Die Sache sauber regeln, indem ich fuer Gleichheit der libc-Versionen sorge -- oder aber einfach statisch linken.
Natuerlich entschloss ich mich fuer Letzteres.
Nur, um dann festzustellen, dass mit cu auf dem Igel auf keinen gruenen Ast zu kommen war. Es zeigte mir zwar saemtliche Ausgaben des Geckos, hat meine Eingaben aber schamvoll fuer sich behalten. Also nix da mit Bidirektionalitaet. Abheften, naechsten Delinquenten vorfuehren.
Nach ein wenig Umschauen auf den Debian-Paket-Seiten http://packages.debian.org fand sich dann unter http://packages.debian.org/de/lenny/picocom der Hinweis auf ein weiteres kleines Prograemmchen, dass deutlich weniger an Abhaengigkeiten hat: Nur die glibc. Also den Quelltext geladen, uebersetzt und auszufuehren versucht -- Pustekuchen, die Sache mit der glibc-Version. Also beim Linken noch ein -static eingefuegt, ein paar Warnings kassiert aber dafuer nun ein auf dem Igel rennendes Picocom bekommen.
Der mit Spannung erwartete Test -- es klappte. Igel goes serial.
Dauerhaftes Einbinden von picocom auf dem Igel
Nun lag also irgendwo im Netzwerk ein Binary fuer den Igel rum, dass eine serielle Konsole darstellte. Nun bleibt nur noch eine Kleinigkeit: Es so in das System zu integrieren, dass man eine Terminal-Sitzung starten kann, ohne picocom aus einem xterm haendisch zu starten.
Dazu waere der erste Schritt gewesen, das Programm nicht mehr irgendwo im Netzwerk sondern auf dem Igel selbst zu haben. Und zwar auf dem (sehr begrenzten) Flash-Speicher. Dieser ist unter /wfs gemountet. Also habe ich dort ein Verzeichnis bin/ erstellt und dorthinein das Picocom-Binary kopiert. Anschliessend habe ich mit dem Befehl cffswrite versucht, die Daten auf den Flash zu bringen -- leider ohne Erfolg. Die Idee stammt uebrigens von http://www.stefanobosio.ch/tc_rootca.html.
root@stachelrechner:/wfs/bin >cp /nfsmount/picocom ./ root@stachelrechner:/wfs/bin >cffswrite wfs error: file /wfs/bin/picocom too big wfs section 1: overflowAlso wird das wohl so nichts und ich werde weiter auf den NFS-Mountpoint angewiesen sein. Oder mich irgendwann doch einmal ueberwinden und schauen, wie gross das Binary wird, wenn ich es nicht statisch linke...
Also musste ein anderer Weg gefunden werden. Dieser bestand aus den folgenden Teilproblemen, die sich zu meiner groessten Freude alle mit dem Setup-Programm loesen liessen:
- Automatisches Mounten des NFS-Shares beim Reboot. Klickt man im Setup im Reiter "Netzwerk" auf "Weitere Netzwerkeinstellungen", so kann man dort im Reiter "NFS" ohne weitere Umschweife NFS-Mountpoints angeben. Schach!
- Menuepunkt im Startmenue und auf dem Desktop, mit dem man direkt das Terminal startet. Das war ein wenig trickreicher. Als erstes hatte ich eine "lokale Anwendung/xterm" angelegt und dann deren Startskripte modifiziert -- was leider nur bis zum naechsten Booten vorhielt. Dann sah ich mir den letzten Reiter des Setup-Tools mit dem Namen "Registry" mal an. Dieser bot schliesslich unter dem Pfad
sessions.xterm1.cmdlinedie Moeglichkeit, das Kommando vonxterm -lsinxterm -ls -e /nfsmount/picocom /dev/ttyS0zu aendern. Und Matt!
Die einfachere Alternative
Wie eigendlich immer, wenn man lange an einem Problem gesessen hat, faellt einem ploetzlich eine Loesung ein, die einfacher/eleganter/betriebssicherer gewesen waere. So natuerlich auch hier -- Igel bieten unter dem Namen des "Abbildens" an, den seriellen Anschluss 1:1 auf einen TCP-Port zu mappen. Eigentlich haette ich nur diese Funktion aktivieren muessen und schon kann ich aus dem ganzen Netzwerk per Telnet auf den seriellen Port des Igels zugreifen. Entsprechend haette eine lokale Sitzung nur eines telnet 127.0.0.1 3001 als von xterm auszufuehrendes Kommando bedurft. Nun ja, immerhin habe ich mich gruendlich mit einem netten kleinen System auseinandergesetzt :)