[embedded Linux] Treiber permanent bei Re-Boot laden

Gast #4835647
Lesenswert?
• ▲
▼
Hallo,

ich habe einen Treiber für ein embedded Linux gebaut.
Bisher muss ich den recht umständlich über Konsole laden:
1
insmod driver.ko
2
mknod /dev/driver0 c 10 200

Wie erreiche ich es, dass der Treiber dauerhaft, dh. auf nach einem 
Reboot geladen wird, so dass ich die beiden oben genannten Befehle nicht 
mehr ausführen muss?
#4835723
Lesenswert?
• ▲
▼
Entweder Du trägst die Befehle in eines der Startscripte deines 
ungekannten Embedded Linux ein. Auch das kleinste Linux hat ein 
/etc/rc.local oder so was.
Oder Du erstellt einen neuen Kernel mit Deinem Driver fix drin.
Wenn Du einen Driver erstellen kannst, findest Du sicher auch die 
Information, wie man das tut.
#4835733
Lesenswert?
• ▲
▼
olpo schrieb:
> Eine flapsige Antwort, wie es in diesem Forum nicht anders zu erwarten
> war...

Auf eine Frage, der mal wieder die zur Beantwortung nötigen 
Informationen fehlen, was auch nicht anders zu erwarten war...

> Bei diesem embedded Linux gibt es kein /etc/modules.

Ach bei "diesem". Ja, das hätte man natürlich wissen müssen.
Dann gilt das hier:

Daniel B. schrieb:
> Entweder Du trägst die Befehle in eines der Startscripte deines
> ungekannten Embedded Linux ein.

Mangels weiterer Infos kann man es nicht genauer angeben.
Gast #4835773
Lesenswert?
• ▲
▼
olpo schrieb:
> Eine flapsige Antwort, wie es in diesem Forum nicht anders zu erwarten
> war...

Wenn dir die Antwort zu flapsig ist, gib uns mehr Informationen. du 
sagst nur du hast ein kernel Module und lädst es mit mknod -c 10 200 
(welches ein tun/tap device sein könnte, nach der Major/Minor Nummer, 
aber selbst das sagst du nicht)
du sagts nichts über den Userspace und nicht über dein Enviorment und 
dann erwartest du das wir dir genau sagen wo dein Schuh dich drückt.
Wie stellst du dir das Vor?
Gast #4835783
Lesenswert?
• ▲
▼
olpo schrieb:
> Eine flapsige Antwort, wie es in diesem Forum nicht anders zu erwarten
> war...

nein, das war die richtige antwort.
wenn es kein "vollständiges sysV" ist, dann hättest du das mitteilen 
müssen, inklusive was du alles versucht hast, und wo du hängst.
um das formulieren zu können, hättest du dich allerdings schon 
eigenständig einlesen müssen, was du anscheinend nicht gemacht hast.

wie sieht dein embedded linux aus? ist es eventuell nur ein 
kernel+initrd?
#4835961
Lesenswert?
• ▲
▼
olpo schrieb:
> ich habe einen Treiber für ein embedded Linux gebaut.

Für was für ein Gerät ist dieser Treiber?

An was für einem Bus hängt das Gerät?

Hat das embedded Linux Device Tree oder ACPI?

Normalerweise versucht man nämlich, daß der Kernel das Gerät beim 
Enumerieren der Busse erkennt und dann über udev automatisch der 
passende Treiber dazu gefunden und geladen wird.
Gast #4839802
Lesenswert?
• ▲
▼
Daniel B. schrieb:
> Entweder Du trägst die Befehle in eines der Startscripte deines
> ungekannten Embedded Linux ein. Auch das kleinste Linux hat ein
> /etc/rc.local oder so was.


So ein Blödsinn. Linux IST der Kernel, sonst nix. Alles andere ist dann 
Zusatzsoftware wie SysVInit oder SystemD.
Ergo: In einem embedded-Linux muss zwangsläufig nix davon vorhanden 
sein.
Gast #4839810
Lesenswert?
• ▲
▼
Die /etc/rc.local gibt es nur auf Debiansystemen und selbst da ist sie 
nicht immer Aktiv.

Alternative wehre da es etwas mehr als nur das Modul laden ist sich ein 
Start script zu basteln ist auch nicht so wild wie es aussieht.

Und was debian noch kann ist der @boot Parameter in der Crontab der ein 
script einmalig beim Booten läd aber das ist Debian Onley.

Udev Rules wehre auch ne Möglichkeit sofern es vorhanden ist.

Module als Autoload:
https://www.thomas-krenn.com/de/wiki/Automatisches_Laden_von_Linux_Kernel_Modulen_beim_Booten
#4839991
Lesenswert?
• ▲
▼
K. J. schrieb:
> Die /etc/rc.local gibt es nur auf Debiansystemen und selbst da ist sie
> nicht immer Aktiv.

Das ist Quatsch. Die rc.local ist Standard, kann allerdings bei einigen 
Distributionen auch in /etc/init.d liegen.

> Alternative wehre da es etwas mehr als nur das Modul laden ist sich ein
> Start script zu basteln ist auch nicht so wild wie es aussieht.

Meinst du ein init-Skript? Das wäre eine Möglichkeit.

> Udev Rules wehre auch ne Möglichkeit sofern es vorhanden ist.

Ich halte es für sehr unwahrscheinlich, dass es auf dem System zwar udev 
gibt, aber keine rc.local oder vergleichbare Datei.

> Und was debian noch kann ist der @boot Parameter in der Crontab der ein
> script einmalig beim Booten läd aber das ist Debian Onley.

Du meinst @reboot, und das ist überhaupt nicht Debian-spezifisch, 
sondern Teil von Vixie Cron bzw. ISC Cron, was nicht mal auf Linux 
beschränkt ist, sondern auch noch auf allerhand anderen Unix-Derivaten 
standardmäßig zum Einsatz kommst.
Nur bei den ganz kompakten Distros, die auf Busybox basieren, gibt's das 
nicht, da der cron aus Busybox das nicht implementiert.
Aber ohne jegliche Infos über "dieses embedded Linux" ist das alles nur 
Gestocher im Nebel. Auf den großen Linux-Distributionen funktionieren 
alle bisher genannten Wege. Embedded-Linuxe sind aber meist viel kleiner 
ausgelegt und gezielt an einen bestimmten Anwendungsfall angepasst, 
deshalb kann es sein, dass einzelne (oder im Extremfall alle) Vorschläge 
nicht funktionieren.

Bernd K. schrieb:
> LongDon schrieb:
>> oder SystemD.
>
> Systemd schreibt man mit kleinem "d" am Ende,

und mit kleinem "s" am Anfang.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren