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
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.
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
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.
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.ä.
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.
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?
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?
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
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.
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
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.
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'.
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
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?
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
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.
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
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.
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: