Forum: PC Hard- und Software Wie oder wo werden benutzte Treiber bei embedded Linux angezeigt ?


von embLin (Gast)


Lesenswert?

Tag mitnander,

hier mal eine kürzere Frage:
wenn man beispielsweise ein bereits funktionierendes Embedded System hat 
(von jemand anders entwickelt) und möchte da jetzt die ein- oder andere 
Verbesserung einbauen, wo kann ich dann nachschauen welche Tools und 
Treiber hierfür installiert sind?

Ich benutze buildroot um mein linux zu erstellen. Gibt es da nur die 
Möglichkeit über die .config Datei die Einstellungen zu laden? Mir ist 
nämlich öfters schon der Bug passiert, dass eine .config geladen werden 
sollte, am Ende aber nichts passiert ist - obwohl verschiedene 
Änderungen gesetzt sind. Gibt es dann hierfür so etwas wie eine Liste 
mit der man überprüfen kann ob und welche (beispielsweise) Treiber 
benutzt werden?

Vielen Dank für die Unterstützung
Beste Grüße

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Du kannst dir auf dem laufenden System mal /proc/devices ansehen, z.B. 
per 'cat'.

von Luxx (Gast)


Lesenswert?

mit lsmod werden geladene Module angezeigt, aber das weißt warscheinlich 
schon.
die .config kann auch im Editor angeschaut werden. Mit in den Kernel 
reinkompilierte Treiber tauchen auch nicht als .ko auf dem System auf.

von embLin (Gast)


Lesenswert?

Danke für die beide Antworten.

Matthias Sch. schrieb:
> Du kannst dir auf dem laufenden System mal /proc/devices ansehen, z.B.
> per 'cat'.

- Wenn ich 'cat /proc/devices' eingebe tauchen dann alle benutzbaren 
geräte auf oder auch sachen die physikalisch nicht vorhanden sind, deren 
Treiber dazu aber schon ?



Luxx schrieb:
> die .config kann auch im Editor angeschaut werden.

- Also kann ich davon ausgehen, dass wenn ich die "Ur"-.config in mein 
neues Buildroot- bzw. Linuxverzeichnis kopiere und diese dann natürlich 
auch lade, sind dann auch definitiv alle Treiber und Programme 
mitangwählt für den späteren make ?



Grüßle

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

embLin schrieb:
> Wenn ich 'cat /proc/devices' eingebe tauchen dann alle benutzbaren
> geräte auf oder auch sachen die physikalisch nicht vorhanden sind, deren
> Treiber dazu aber schon ?

Es tauchen nur Sachen auf, die auch aktiv sind. Alleridngs siehst du 
z.B. bei USB oft, das nur die Basis geladen ist, mangels USB Geräten 
dann aber kein Handler für ein Gerät.
Da es in Embedded Systemen üblich ist, viele Treiber in den Kernel zu 
kompilieren, ist lsmod nicht unbedingt aussagefähig. Optionale Sachen 
allerdings, wie z.B. WLAN Karte bei Routern, die es auch ohne gibt, sind 
oft als Modul geladen.
Eine weitere Übersicht gibt /proc/driver. Da sollten sich so gut wie 
alle geladenen Treiber melden.

von Luxx (Gast)


Lesenswert?

embLin schrieb:
> Luxx schrieb:
>> die .config kann auch im Editor angeschaut werden.
>
> - Also kann ich davon ausgehen, dass wenn ich die "Ur"-.config in mein
> neues Buildroot- bzw. Linuxverzeichnis kopiere und diese dann natürlich
> auch lade, sind dann auch definitiv alle Treiber und Programme
> mitangwählt für den späteren make ?

die .config bezieht sich nur auf die Kernelconfig nicht auf Programme 
o.ä.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Luxx schrieb:
> die .config bezieht sich nur auf die Kernelconfig nicht auf Programme
> o.ä.

Eine Ausnahme von dieser Regel bilden nur spezielle Distributionen wie 
uCLinux, MontaVista usw. die sich Embedded explizit auf die Fahne 
schreiben, bei denen sind ein paar Applikationen oft mit über den 
Kernelconfig erreichbar.

Bei uCLinux z.B. kann man busybox gleich mit den gewünschten Komponenten 
konfigurieren und mit dem Kernel ins Flash komprimieren. Busybox ist ein 
Schweizermesser für alle möglichen kleinen Programme, die man immer 
braucht, wie z.B. cp, mv, mkdir, cat usw.

von embLin (Gast)


Lesenswert?

Luxx schrieb:
> die .config bezieht sich nur auf die Kernelconfig nicht auf Programme
> o.ä.

Moment, ich kann doch unterschiedliche .config vom kernel, buildroot und 
busybox speichern und somit auch laden?

von embLin (Gast)


Lesenswert?

Tut mir leid wenn ich so oft nachfragen muss ;)

Matthias Sch. schrieb:
> Eine weitere Übersicht gibt /proc/driver. Da sollten sich so gut wie
> alle geladenen Treiber melden.

in diesem Ordner war nur die rtc, also sagt mir das jetzt, dass quasi 
nichts installiert ist?

von Frank (Gast)


Lesenswert?

embLin schrieb:
> wenn man beispielsweise ein bereits funktionierendes Embedded System hat
> (von jemand anders entwickelt) und möchte da jetzt die ein- oder andere
> Verbesserung einbauen, wo kann ich dann nachschauen welche Tools und
> Treiber hierfür installiert sind?

Ich frage mich, wie Du ohne intime Linux-Kenntnisse 'Verbesserungen 
einbauen' willst? Was verstehst Du denn überhaupt unter 
'Verbesserungen'?

Es gibt zig verschiedene Linux-Systeme, eine generelle Antwort auf Deine 
doch sehr allgemein gehaltene Frage gibt es nicht. Wie schon andere 
geschrieben haben, hängt es sehr von der verwendeten 
Kernel-Konfiguration und vor allen von jedem Treiber selbst ab, ob und 
wenn ja wo man nachsehen kann, ob dieser geladen ist.

Frank

von embLin (Gast)


Lesenswert?

Frank schrieb:
> Es gibt zig verschiedene Linux-Systeme

Das war vllt. etwas unglücklich formuliert, aber im kontext sollte das 
aber erkennbar sein: ich benutze busybox mit einem linux-kernel. So zig 
verschieden kann das gar nicht sein, denn soweit ich weiß ist der kernel 
überall gleich.

von Frank (Gast)


Lesenswert?

embLin schrieb:
> So zig
> verschieden kann das gar nicht sein, denn soweit ich weiß ist der kernel
> überall gleich.

Ersten gibt es verschiedene Versionen vom Kernel und zweitens läßt sich 
der Kernel durchaus komplex konfigurieren. Abgesehen davon gibt es auch 
Kernel mit angepassten Modulen. Wie diese sich verhalten weiß nur der 
Programmierer.

Trotzdem bleibt die Frage: Was willst Du denn genau verbessern?
Kannst Du mal ein konkretes Problem beschreiben?

Wenn das Tool buildroot sich nicht so verhält wie Du erwartest, dann 
frag doch mal bei den Machern von buildroot an.

Frank

von embLin (Gast)


Lesenswert?

Frank schrieb:
> Ersten gibt es verschiedene Versionen vom Kernel

das ist auch meine Absicht unterschiedl. Versionen zu benutzen. Trotzdem 
kann ich mir nicht vorstellen, dass sich da 
Treiber/Programme/Utilities/... so grundlegend verschieben.

Das Buildroot tut was es soll, ich will nur wissen was alles dazu und 
was nicht dazu gehört mehr nicht (aber das steht ja alles oben schon). 
Ich höre immer öfter, dass man das bei einem fertigen System beim 
Startup lesen kann, aber umständlicher gehts kaum und da ich glaube, 
dass ich das öfters mal gebrauchen könnt frag ich nach einer einfachen 
Lösung nach.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Es würde wirklich auch helfen, wenn der TE mal endlich postet, was das 
für ein System ist und welches Linux System darauf nun installiert 
wurde. Im einfachsten hilft ein 'cat /etc/motd' oder (wenn uname 
unterstützt wird) ein 'uname -rs'.

von embLin (Gast)


Lesenswert?

uname -rs ----> Linux 2.6.39

von Frank (Gast)


Lesenswert?

embLin schrieb:
> das ist auch meine Absicht unterschiedl. Versionen zu benutzen. Trotzdem
> kann ich mir nicht vorstellen, dass sich da
> Treiber/Programme/Utilities/... so grundlegend verschieben.

Ich hab noch nicht so ganz verstanden, was Du überhaupt vor hast :-(

Du wirfst da ein paar grundsätzliche Dinge durcheinander: Der 
Linux-Kernel hat mit den Programmen und Utilities erstmal gar nix zu 
tun.

Wenn Du wissen möchtest, wie ein unbekannter Kernel kompiliert wurde, 
dann kannst Du das mit etwas Glück in der /proc/config.gz lesen.

Welche Programme installiert sind, kannst Du aus dem Dateisystem 
auslesen ... ls /bin /sbin /usr/bin /usr/sbin

Frank

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

embLin schrieb:
> uname -rs ----> Linux 2.6.39

uname ist also vorhanden. Dann geh doch bitte mal die anderen Optionen 
durch, wie uname -moiv.
https://en.wikipedia.org/wiki/Uname

Weisst du denn nicht, was das für ein System ist? Wie sieht denn das 
Board aus?

: Bearbeitet durch User
von Frank (Gast)


Lesenswert?

Matthias Sch. schrieb:
> embLin schrieb:
>> uname -rs ----> Linux 2.6.39
>
> uname ist also vorhanden. Dann geh doch bitte mal die anderen Optionen
> durch, wie uname -moiv.

Warum so kompliziert?
uname -a zeigt alle Systeminformationen auf einmal :-)

Damit bekommen wir aber keine Infos über die Hardware oder die restliche 
Umgebung.

Frank

von embLin (Gast)


Lesenswert?

Was ich vorhabe spielt an sich keine Rolle, da ich das ja nicht nur an 
dem, sondern auch an irgendwelchen anderen Systemen benutzen will. Hier 
möcht ich en bissel an der Bootzeit was ändern. Das ganze bringt mir 
aber nichts, wenn die Funktionalität nicht mehr gewährleistet ist.

Ich glaube die Fragen sind viel zu detailiert. Ich mein ich hab ja auch 
einen Kopf und kann den einen oder anderen Schritt vorrausdenken ;) Mir 
fehlt(e?) eigentlich nur der Einstiegspunkt und scheinbar komm ich mit 
den proc und bin Verzeichnissen schon mal weiter, um zu sehen welche 
Programme Buildroot installiert hat und welche Treiber im Kernel 
verankert sind.

Also deshalb, falls euch sonst noch ein Tipp einfällt mit dem man 
installierte Programme / Treiber auslesen kann nur her damit, eine allzu 
detailreiche Lösung bringt hier aber glaub ich nichts, wenn das System, 
auf dem es angewendet wird, eh gewechselt wird.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

embLin schrieb:
> Hier
> möcht ich en bissel an der Bootzeit was ändern.

Das ist keine Kernel Einstellung, sondern wird vom Bootloader bestimmt.

von embLin (Gast)


Lesenswert?

Matthias Sch. schrieb:
> embLin schrieb:
>> Hier
>> möcht ich en bissel an der Bootzeit was ändern.
>
> Das ist keine Kernel Einstellung, sondern wird vom Bootloader bestimmt.

Man kann beispielsweise durch unterschiedliche Kompressionsverfahren zu 
schnelleren Bootzeiten kommen

von Thomas Z. (thomas_z41)


Lesenswert?

Gibt es bei dir kein /proc/config.gz ?

Das sollte die gezippte verwendete .config sein.

von embLin (Gast)


Lesenswert?

Thomas Z. schrieb:
> Gibt es bei dir kein /proc/config.gz ?

leider nein, weder wenn ich die datei direkt anspreche (no such file or 
directory), noch kann ich ihn mit ls /proc -l finden.

von rere (Gast)


Lesenswert?

embLin schrieb:
> Thomas Z. schrieb:
>> Gibt es bei dir kein /proc/config.gz ?
> leider nein, weder wenn ich die datei direkt anspreche (no such file or
> directory), noch kann ich ihn mit ls /proc -l finden.
Wo und wie die Kernel-Config abgelegt ist, ist distributionsabhängig, 
Debian legt es unter /boot ab, probiere mal:
1
ls -l /boot/config*

von embLin (Gast)


Lesenswert?

zwischendurch möcht ich einen kleinen Dank an die Helfer schicken!

rere schrieb:
> ls -l /boot/config*

auch nicht vorhanden

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
Noch kein Account? Hier anmelden.