PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Monitor auf Thin Client (16MB Flash, 32MB RAM)



arnolde
04.07.2007, 16:46
Hallo,
ich hab soeben sehr günstig 2 thin clients auf VIA C3 Basis (i386) (der eine mit 32MB CF Disk und 64MB RAM (normales DIMM), der andere mit 16MB DOC (DiskOnChip, eine Art Flash Disk was über IDE angesprochen wird) und 32MB RAM (NB-Dimm, notfalls aufrüstbar) erstanden und will jetzt versuchen darauf ein Embedded Linux zu installieren und mit Monitor zu verwenden.
Momentan bin ich am Downloaden von a) Knoppix und b) damn small linux und will dann mal mein Glück versuchen... ich halte Euch auf dem Laufenden, bzw. wenn jemand sowas schonmal gemacht hat, freue ich mich natürlich über Tipps im Voraus! (Vielleicht wäre jemand sogar bereit mir ein fertiges Flash Boot-Image zu kopieren?)

arnolde
05.07.2007, 01:18
Also, nach etwa 4-5 Stunden hab ichs schließlich geschafft, auf einer 256MB CF Karte ein DamnSmallLinux von der dort angebotenen LiveCD zu installieren und mit 128MB RAM auf dem ThinTune M zum Laufen zu bekommen. (Ok deutlich mehr Speicherverbrauch als ursprünglich angedacht, aber erstmal überhaupt zum Laufen bringen, abspecken kann ich ja später immer noch).

Übrigens hab ich es partout nicht geschafft, das sogenannte "frugal install" hinzubekommen, wo ein 55MB großes komprimiertes Image auf die CF-Karte kommt und dann in den RAM entpackt wird und dann nur noch im RAM gearbeitet wird (schneller und speicherschonender für den Flash). Ich hab lediglich eine "normale" HD Installation hinbekommen, was allerdings von den 256MB Flashspeicher bereits über 150MB verbraucht. Aber ok ich denke mal wenn ich ein bisschen mehr in der Materie bin, werd ich es wohl mit openwrt probieren, was ja offenbar noch wesentlich kleiner ist.

Jetzt stehe ich vor dem Problem, monitor zu kompilieren, denn natürlich ist weder make noch gcc noch sonstwas auf dem System drauf... sind irgendwo Binärversionen für i386 (oder i686) verfügbar, die ich ohne Entwicklungsumgebung installieren kann?

nepomuck
05.07.2007, 02:11
"frugal install" hinzubekommen, wo ein 55MB großes komprimiertes Image auf die CF-Karte kommt und dann in den RAM entpackt wird und dann nur noch im RAM gearbeitet wird

Da gibt's auf der DSL-Seite ein sehr gutes Tutorial. Mann muss nur ein paar Dateien vom ISO auf die Flash-Card kopieren und das Ding bootfähig machen. Ich habe hier eine DSL auf einem 256-USB-Stick laufen.



(schneller und speicherschonender für den Flash). Ich hab lediglich eine "normale" HD Installation hinbekommen,

Was dir in wenigen Monaten die Flash-Card killen könnte. CFs haben eine begrenzte Zahl von Schreibzyklen und halten die dauernden Write-Kommandos eines regulären HD-Dateisystems nicht lange aus.



Jetzt stehe ich vor dem Problem, monitor zu kompilieren, denn natürlich ist weder make noch gcc noch sonstwas auf dem System drauf.
Es ist nicht Sinn und Zweck der Übung, auf der Kompakt-Version eine Entwicklungsumgebung zu installieren -- dann ist sie alles andere als Kompakt.

Du solltest Monitor auf einem anderen, full-featured-Linux-System übersetzen und nur das fertige Binary dann auf deine DSL-CF übertragen.

So weit ich weiss, basiert die aktuelle DSL auf einer älteren Knoppix-Version (3.8 oder so, jedenfalls mit 2.4er Kernel). Wenn du den Monitor auf dieser Knoppix-Vollversion übersetzt und das Binary dann auf die DSL überträgst, sollte es funktionieren.

Andreas

arnolde
05.07.2007, 11:06
Mann muss nur ein paar Dateien vom ISO auf die Flash-Card kopieren und das Ding bootfähig machen.

Im prinzip ja :-) nur hab ich mich gestern stundenlang damit rumgeärgert mal eben "das Ding bootfähig zu machen", hab die "frugal install with grub" probiert, und die "with lilo", beides haben angeblich grub bzw. lilo installiert aber irgendwie wirde scheinbar die MBR nie richtig geschrieben, entweder kam beim Booten einfach nur "grub error" oder "no bootable partition" oder so ähnlich... und von früher kenn ich das eigentlich, daß man einfach die /etc/lilo.conf anpaßt und einfahc nur "lilo" ausführt (also root) und schon wird mbr etc. alles geschrieben und es funzt auch... aber da wollt lilo auf einmal Parameter haben (-M oder sowas) und dann war access denied bei /dev/hdc und dann wollte der eine boot.irgendwas datei auf die CD schreiben statt auf hdc und und und.... argh!!!


Was dir in wenigen Monaten die Flash-Card killen könnte. CFs haben eine begrenzte Zahl von Schreibzyklen und halten die dauernden Write-Kommandos eines regulären HD-Dateisystems nicht lange aus.

Ist mir bekannt, wobei ich mich frage, bei reinem Monitor-Betrieb ohne sonst großartig was am Laufen, ob denn da wirklich viel auf HD geschrieben wird (sofern keine Logdatei geführt wird). Aber aus diesem Grund ist mir ein Booten in eine Ramdisk natürlich viel lieber (und läuft auch noch schneller).


Du solltest Monitor auf einem anderen, full-featured-Linux-System übersetzen und nur das fertige Binary dann auf deine DSL-CF übertragen.

Ja, irgendwie weiß ich das ja, nur damit betrete ich Neuland und irgendwie hatte ich gehofft das zu vermeiden, ob aus Faulheit oder wie auch immer... aber da ich letztes Jahr schon mal bei einem anderen Projekt Wochen an Zeit sinnlos vergeudet hab weil ich das nicht gleich so gemacht hab, sollte ich mich wohl langsam damit beschäftigen ;-)

nepomuck
05.07.2007, 11:35
access denied bei /dev/hdc und dann wollte der eine boot.irgendwas datei auf die CD schreiben statt auf hdc

Villeicht tappst du hier in das alte Problem: CF im large-Floppy (ohne Partition) oder HD-Format (mit Partition)

Ich würde mal folgedes Vorschlagen:
1. CF plattmachen (richtig) via dd if=dev/zero of=(dev von CF) ... etc ..
2. CF Partitionieren mit 1x primär (z.B. /dev/hda1), hda1 mit vfat formatieren.
3. syslinux auf /dev/hda (nicht /dev/hda1 !!)
4. grub installieren auf /dev/hda1 unter /boot
5. Das Knoppix-Image auf /dev/hda1 unter /KNOPPIX und den kernel und die startskripte von Knoppix auf /dev/hda1 unter /

Andreas

arnolde
05.07.2007, 19:10
Ich glaub ich mach mal Nägel mit Köpfen und installier mir Debian 4.0 auf einem vollwertigen PC und bastel mir dann von Hand ein Minimal-Image für die CF-Disk, statt mich auf vorgekauten Sachen zu verlassen... Muß mir dann zwar einiges aneignen aber dafür weiß ich hinterher dann auch was los ist, wenns irgendwo hängt ;-)

Ich hab irgendwo gelesen daß Monitor recht speicherhungrig ist, man mind. 128MB dafür haben sollte... ist das bei einem Minimalsystem ohne Grafik tatsächlich nötig oder würds auch mit 64MB (oder gar 32MB) laufen? (Muß ja wohl, wenn Leute das aufm WLAN router laufen haben, oder?) Aufnehmen will ich nix.

Übrigens hatte ich zwischendurch auf ner 512MB Flashkarte (256MB hätten auch gereicht) Win98SE auf dem Teil laufen, incl. USB-Stick und LAN und Sound, und war echt kurz davor einfach bei FMS32Pro zu bleiben... letztlich ists am Grafiktreiber gescheitert, das Board hat (laut Linux) einen Trident Cyberblade i1 PCI Grafikchip, und ich find ums Verrecken keinen funktionierenden Win98 Treiber dafür... (hab 3 verschiedene probiert, beim einen wird alles schwarz, bei den anderen kommt nach jedem Reboot "ungültiger Grafikmodus, neu einstellen"... und die FMS Anzeige mit 640x480x16 Farben war mir dann doch nicht gut genug...

arnolde
06.07.2007, 13:57
Ok jetzt hab ich Debian 4.0 mit Kernel 2.6.8 am laufen, und ein kleiner Kernel (naja, klein ist relativ, sind noch 3MB aber ich specke dann weiter ab wenn das erstmal läuft) ohne Module als bzImage.

Hab die CF Karte auf /mnt/hdc1 gemountet, ext2 formatiert, und mit "lilo -M /dev/hdc" die MBR geschrieben. Hab die bzImage in /boot und eine lilo.conf in /etc (jeweils auf hdc1, das momentan ja unter /mnt/hdc1 steht).

Wenn ich jetzt "lilo -r /mnt/hdc1" mache, kommt "/etc/lilo.conf: No such file or directory" - ok dann nehme ich eben "-C /mnt/hdc1/etc/lilo.conf" dazu, aber dann kommt "Fatal: raid_setup: stat("/dev/hda")" ... was will der denn auf einmal mit hda?!? in lilo.conf steht nur was von hdc drin!

Letzter Versuch: "noname:/mnt/hdc1# lilo -r /mnt/hdc1/ -C boot/lilo.conf /dev/hdc" - dann kommt der Hilfstext von lilo.real (???) weil wohl die syntax nicht verstanden wird.... seufz... was nun???

EDIT: Hatte doch was von hda in der lilo.conf stehen, habs jetz alles auf hdc geändert, trotzdem kommt:
noname:/mnt/hdc1# lilo -r /mnt/hdc1/ -C boot/lilo.conf
Fatal: raid_setup: stat("/dev/hdc")

EDIT 2: Aha, ok, mit dem -r parameter kann lilo nicht mehr auf die lokalen festplatten zugreifen (hä, wozu soll es dann gut sein???) - also ein "ln -s [ort des echten bzImage] /boot/bzImage" und den -r weggelassen... und schon hat lilo endlich gefunzt! Jetzt mal die CF in den Slimclient stecken und sehen ob der kernel bootet... (wird danach natürluch halten weil sonst nix dauf ist)

EDIT 3:
Also beim ersten Versuch bootete die CF mit "L 04 04 04 04...." was ein Lilo-Fehler ist, scheinbar fängt lilo an zu laden aber kommt dann nicht weiter. Hab dann nochmal lilo draufgespielt wie oben, und nochmal lilo -M gemacht, und dann kam beim booten "No boot signature found on partition"... hmmm...

EDIT 4:
Und da häng ich jetzt momentan wirklich... hab nochmal lilo geschrieben und jetzt wieder "L 04 04 04..." und auch auf dem devel-system kommt "L 01 01 01..."... weiß grad nicht weiter, werd evtl. mal deinen vorschlag mit dem syslinux probieren... wobei ich von fat nicht begeistert bin...

arnolde
06.07.2007, 17:32
Moah ich rast aus... es kann doch net so schwer sein, das uralt bewährte LILO mal eben auf die CF zu schreiben!! Habs jetzt schon mehrfach getan, wird immer erfolgreich bestätigt, aber beim booten dann immer "no boot signature on partition" grrrr... lese jetzt schon stundenlang LILO howto's etc...

EDIT:
Ich rast noch mehr aus, jetzt klappt nicht mal das Formatieren mit VFAT und syslinux... hab wie vorgeschlagen die Karte geNULLt, eine einzige (32MB) partition angelegt mit Typ b (W95 FAT32), bootbar geflaggt, mit mkfs.vfat formatiert, und "syslinux /dev/hdc" meldet nun "syslinux: this doesn't look like a valid FAT filesystem" grrrr....

arnolde
08.07.2007, 15:06
So ENDLICH geschafft... nach zig Stunden rumärgern mit LILO... eigentlich ist alles total easy aber scheinbar ist es sehr unüblich LILO auf eine andere platte als das derzeitige root zu installieren, deswegen wird kaum irgendwo richtig beschrieben wie das alles genau abläuft weil in 99% der fälle alle seinfach unter /boot abgelegt wird und keiner sich drum kümmern muß... daher ergeben sich jede Menge Probleme!

also: die 32MB CF disk mit ext2 formatiert, und auf /mnt/hdc1 gemountet. die folgenden dateien (die ich normalerweise unter /boot ablegen würde, gibt aber nur ärger!) direkt ins / der CFKarte (also momentan /mnt/hdc1): bzImage, lilo.conf, map, boot.b


boot=/dev/hdc
install=boot.b
map=map
prompt
timeout=150
default=linux

image=bzImage
label=linux
append="root=/dev/hda1"

Man beachte in Zeile 1 daß boot=/dev/hdc SEHR WICHTIG damit Lilo auch die richtige Platte beschreibt (und nicht die aktuelle boot platte /dev/hda die wir ja gar nicht ändern wollen). Dann muß lilo mit dem Parameter -C ./lilo.conf aufgerufen werden (sonst wird standardmäßig /etc/lilo.conf gelesen). Außerdem kann nicht auf dem normalen Weg "root=/dev/hda1" benutzt werden weil LILO ja so schlau ist und sagt dann "Fatal: Illegal 'root=' specification" *grummel*

So und nun bootet endlich der Kernel auf dem Thinclient :-) jetzt kann ich mich endlich ans Filesystem ranmachen (ramdisk etc.), damit nach dem kernelbooten auch was passiert ;-)