Wie oder wo werden benutzte Treiber bei embedded Linux angezeigt ?

Gast #3467257
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
Gast #3468471
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.
Gast #3469283
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
(Firma: matzetronics) #3469507
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.
Gast #3474175
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.ä.
(Firma: matzetronics) #3474276
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.
Gast #3475568
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
Gast #3475573
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.
Gast #3475578
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
Gast #3475582
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.
Gast #3475588
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
Gast #3475599
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
Gast #3475600
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.
Gast #3475767
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*

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