Industrie PC

Tach,
ich habe im Rahmen eines Praktikums die Aufgabe gestellt bekommen, ein minimales linux auf einem IndustriePC zum laufen zu bringen. Das ist nicht ganz einfach, denn es soll später unter 30 Sekunden booten und einige Schnittstellen unterstützen. Der PC entspricht dem PC 103 Standart und ist von ICOP. Hier ein paar Daten:

CPU: DM&amp:stuck_out_tongue_winking_eye: 166Mhz
Arch: 486
RAM: 128Mb
ROM: z.Z. 384Mb IDE-Flash chip
Abm.: 9x9cm

Wer sich mehr Infos besorgen will, kann sie sich von ICOP’s Produktshop holen: http://www.icoptech.com/products_detail.asp?ProductI…

Die schwierigsten Aufgaben der Distro sind:

  • startup in weniger als 30 Sekunden
  • unterstützen von USB und CompactMedia (sprich CF, MMC, usw.)
  • HOTPLUG

Für die Anforderungen würde ein monolithischer Kernel mit busybox reichen, allerdings muss USB und HOT-PLUG funktionieren. Alle Module in den Kernel zu schmeißen währe eine schlechte Idee. Das ist eins meiner Haubtprobleme: Nehme ich einen modularisierten Kernel, kriege ich mit den meisten Distros Zeitprobleme. Nehme ich einen monolithischen, kann ich USB vergessen…

Jetzt noch kurz was zur Anwendung: Das Ganze wird später in einer Werkshalle als Mensch Maschine Schnittstelle arbeiten. Sprich, wird man über ein buntes Menü den Programmablauf zusammenstellen, der dann über RS232 an ein Steuermodul weitergeleitet wird. Anders herum sendet das Steuermodul Nachrichten zum PC und der gibt sie dann aus.

Währe nett wenn ihr euch melden köntet.
TUX

Moien

Moien

CPU: DM&amp:stuck_out_tongue_winking_eye: 166Mhz
Arch: 486

Glück gehabt. Es gibt schlimmere.

Die schwierigsten Aufgaben der Distro sind:

  • startup in weniger als 30 Sekunden

Das ist nicht schwer. Schnapp dir einen der Bootanalyser und schmeiss alles raus was nicht gebraucht wird (depmod ist der allererste Kandidat, zusätzliche VTs als nächstes) und Autokonfigurationen die man auch fix vorgeben kann (Hardware nicht erkennen lassen sondern die passenden Module in einer Liste abarbeiten). Den Rest führt man möglichst parallel aus (auf DHCP warten …). Dann das fs optimieren (noatime, ext2, …).

Brauchst du einen X-Server ? Muss es eine aufwendige WM haben ?

  • unterstützen von USB und CompactMedia (sprich CF, MMC, usw.)

CF ist entweder ein IDE-Gerät (das können alle) oder ein USB-MassStorage. Solange du nicht Flashspeicher direkt ansprechen must ide das OK.

  • HOTPLUG

Klär ab von welchen Geräten. Es ist sinnfrei USB-TV Tuner zu unterstützen wenns nicht gebraucht wird.

Jetzt noch kurz was zur Anwendung: Das Ganze wird später in
einer Werkshalle als Mensch Maschine Schnittstelle
arbeiten. Sprich, wird man über ein buntes Menü den
Programmablauf zusammenstellen, der dann über RS232 an ein
Steuermodul weitergeleitet wird.

Da wird wenig Hotplug brauchen. USB-MassStorage, HID und das wars schon.

Währe nett wenn ihr euch melden köntet.

Den Startup von Debian kann man z.B. mit wenigen Eingriffen auf 25% der normalen Zeit reduzieren. Die 30 Sekunden auf so einem Rechner sind machbar (aber mit modularem Kernel), vorallem weil es keine Platte mit hohen Latenzzeiten gibt.

cu

Hallo,

ich habe im Rahmen eines Praktikums die Aufgabe gestellt
bekommen, ein minimales linux auf einem IndustriePC zum laufen
zu bringen. Das ist nicht ganz einfach, denn es soll später
unter 30 Sekunden booten und einige Schnittstellen
unterstützen.

Soll es sonst noch was können?
Üblicherweise kann man sehr viel Zeit beim booten starten, wenn man auf Dinge wie XFree86 oder X0rg verzichtet, sowie auf diverse Dämonen.
Wenn du X brauchst gibt es da auch schlankere Alternativen.

Für die Anforderungen würde ein monolithischer Kernel mit
busybox reichen, allerdings muss USB und HOT-PLUG
funktionieren. Alle Module in den Kernel zu schmeißen währe
eine schlechte Idee. Das ist eins meiner Haubtprobleme: Nehme
ich einen modularisierten Kernel, kriege ich mit den meisten
Distros Zeitprobleme. Nehme ich einen monolithischen, kann ich
USB vergessen…

Was hindert dich daran, alle Module fest einzukompilieren, außer die, die hotplug/udev laden soll?

Tach,

ich habe im Rahmen eines Praktikums die Aufgabe gestellt
bekommen, ein minimales linux auf einem IndustriePC zum laufen
zu bringen. Das ist nicht ganz einfach, denn es soll später
unter 30 Sekunden booten und einige Schnittstellen
unterstützen.

Ich weiss nicht, warum sich alle immer so bei der „Zeit zum booten“ aufhalten. Idealerweise bootet man ein Office-System nur einmal am Tag. Ein „Industriesystem“ sogar nur ein einziges Mal überhaupt, die Dinger laufen in der Regel durch.

Ob man nun 30 Sekunden oder zwei Minuten braucht, sollte da eher uninteressant sein. Anders sieht es bei Hardware wie z.B. SoHo Routern, Set Top Boxen für DVB, etc. aus. Die werden in der Regel häufig ein- und ausgeschaltet. Darum gibt es auch da Varianten, die einfach nur die LED abblenden und ggf. die Festplatte runterfahren, aber sonst eingeschaltet bleiben. Nur wenn man ihnen den Strom abdreht, müssen auch die neu booten.

Da gibt es aber auch nur dann ein Problem, wenn während des bootvorgangs kein Feedback für den User erscheint, er also nicht weiss, ob die Kiste bootet oder abgestürzt ist. Schonmal eine set top box von i3micro (jetzt tilgin) oder kreatel (jetzt Motorola) neu gebootet?

Naja, ich will mich sonst nicht weiter einmischen. Nur noch den Hinweis geben, dass es bereits etliche Projekte für spezielle „Industrial Linux“ Versionen gibt. Google doch mal.

http://www.osadl.org/
http://www.pengutronix.de/
http://www.sysgo.com/products/elinos-family/elinos-i…

Gruß

Fritze

Hallo Fritze,
trotz deiner eher negativen Kritik hast du mir doch ein Stück weiter geholfen: Die Distros gehen genau in die richtige Richtung.

Vielen Dank

Vielen Dank für die Antwort. Ich war gestern leider nur kurz Zuhause und konnte nicht allen antworten.
Also, einen Bootanalyser habe ich mir besorgt. Das Problem ist jetzt, dass ich mich nicht mit den Funktionen der Module auskenne. Ich habe zwar einen fetten Schinken, in dem darüber einiges steht. Allerdings ist der veraltet und nicht vollständig. Währe gut, wenn ich da noch weitere Quellen bekommen könnte. Andererseits muss ich mich in dem ganzen Modulbaum noch zurecht finden, denn ich weis leider nicht wo ich überhaupt was rausholen kann. Viele Module kann ich nicht einfach raushauen, weil sie vom OS ja gebraucht werden.

cu

Tach,

Üblicherweise kann man sehr viel Zeit beim booten starten,
wenn manauf Dinge wie XFree86 oder X0rg verzichtet

X währe bei 166 Mhz gar nicht in frage gekommen. Da hätte sich der Mechaniker während des Bootens noch einen Kaffee machen können. Ich mein, Knoppix hab ich drauf zum laufen gebracht. Allerdings hat die Kiste da fast ne halbe Stunde für geheizt.
Die Dämonen habe ich schon zusammen geschnitten. Einige wirklich interessante Dinge passieren jetzt noch bevor der Kernel überhaupt init Startet.

Soll es sonst noch was können?

Eigentlich soll es so wenig wir möglich können. Aber um das Grundsystem werde ich wohl nicht rum kommen.

Was hindert dich daran, alle Module fest einzukompilieren,
außer die, die hotplug/udev laden soll?

Das währe natürlich möglich. Allerdings spekulierte ich auf einen monolithischen Kernel, der gar keine Module unterstützt. Wenn ich die 30 Sekunden nicht erreiche, werde ich deine Idee sicher noch ausprobieren.

cu

Moien

Also, einen Bootanalyser habe ich mir besorgt.

Diesen: http://www.bootchart.org/ ?

Das Problem ist
jetzt, dass ich mich nicht mit den Funktionen der Module
auskenne.

Lass das Vieh mit den Modulen starten. rmmod die Module eins nach dem anderen. Wenns BOOM macht wars wichtig. Die meisten richtig wichtigen lassen sich eh nicht töten.

Und lösch alle nach dem start nicht geladenen Module aus dem /lib/modules Verzeichnissen. Das säubert auf Anhieb ganz ordentlich.

Währe gut, wenn ich da noch weitere Quellen
bekommen könnte.

Post einfach mal die Aussage von lsmod hier…

Ausserdem verschwindet nur ein relativ kleiner Teil der Bootzeit in den Modulen. Das meiste sind Skripts die man entweder gar nicht braucht (depmod) oder umgehen kann.

cu