Treiber/Module unter Android laden

G

Grabbag

Neues Mitglied
2
So zusammen sitze jetzt vor meinem Fernseher, Stick angeschlossen. Funktioniert auch soweit meinen USB Hub mit Ethernet Anschluss hab ich auch dann und es läuft soweit. Vill ein bisschen ruckelig,kann jetzt aber nicht sagen das es am hub liegt. Wie kann ich den einen neuen Treiber in Android installieren?
 
Grabbag schrieb:
Wie kann ich den einen neuen Treiber in Android installieren?

Das erfordert root-Zugriff.

Du kopierst das Treibermodul (eine Datei mit der Endung .ko) nach /lib/modules und führst in der Shell folgenden Befehl aus:

- Um den Treiber testweise zu laden: modprobe modulname
- Um den Treiber zu installieren: insmod modulname

- Um den Treiber wieder zu entladen: rmmod modulname

Der Befehl modprobe lädt den Treiber nur temporär, nach einem Neustart wird er nicht erneut geladen.
Sinnvoll z.b. falls du nicht weisst ob das System durch den Treiber nicht instabil wird.

Der Befehl insmod lädt und registriert den Treiber, sodass er auch nach einem Neustart wieder geladen wird.

Das Treibermodul muss gegen den aktuell eingesetzten Kernel und der libc kompiliert sein, sonst gibt's mächtig Ärger (heißt bestenfalls und selten funktioniert der Treiber nicht, schlimmstenfalls und oft schmiert das Gerät komplett ab).
 
chris67 schrieb:
Das erfordert root-Zugriff.

Du kopierst das Treibermodul (eine Datei mit der Endung .ko) nach /lib/modules und führst in der Shell folgenden Befehl aus:

- Um den Treiber testweise zu laden: modprobe modulname
- Um den Treiber zu installieren: insmod modulname

- Um den Treiber wieder zu entladen: rmmod modulname
.

Hey,

irgendwie klappt da bei mir nicht,.. er findet die datei.ko nicht welche in /lib/modules

Wie gehe ich vor:
1:Starte den Terminal
2: und gebe sofort "modprobe modulname" ein
Leider findet er aber kein Modul :(

LG
 
modprobe funktioniert unter Android meist nicht richtig (bzw. ich habe noch keine busybox gefunden, in der modprobe richtig für Android angepasst ist) modprobe sucht im falschen Pfad nach den Modulen, zu dem Fehlen oft notwendigen Dateien, die modprobe zum nachschauen braucht.
Versuche es also mit insmod und nimm den ganzen Pfad zum Modul. Die Module liegen bei Android nicht in /lib/modules sondern in /system/lib/modules

Edit: Habe das Thema in einen eigenen Thread ausgelagert
 
Hey perpe,

erstmal danke für deine Antwort:

Ich habe dazu eine kleine Frage:

Die Datei liegt ja in /system/lib/modules

Wie würde der ganze Befehl dann lauten?

/system/lib/modules/insmod modulname.ko oder

insmod
/system/lib/modules/ modulname.ko

LG
 
nein, der Befehl ist dann insmod /system/lib/modules/modulname.ko
Also wie dein letztes Beispiel nur ohne das Leerzeichen vor dem Modulnamen.
Du musst bevor du den Befehl eintipps noch su eingeben, damit du Rootrechte hast.
 
um was für ein Modul geht es denn?
Woher hast du es?

Nicht falsch verstehen, aber mir scheint, daß du noch recht frisch bist, was so Sachen angeht. Vielleicht sagst du mal, was für Hardware denn laufen soll?
 
hab einen externen usb wlan adapter alfa awus036neh mit chipsatz rt3070 und android treiber rt3070sta.ko..würde den gern auf dem mk808 zum laufen bringen, um die reichweite erheblich zu erhöhen..unter win7 sind500m kein problem..hast du ne idee, den einzubinden..
 
Die Frage ist, woher du den Treiber hast.
Linux Module müssen immer für den Kernel kompiliert sein, d.h. du kannst nicht irgendeine .ko Datei nehmen, die du im Netz gefunden hast. Wenn der Treiber beim Kernel mit dabei war oder du es von irgendwo hast, wo dabei stand das es für dein Gerät und Kernel ist, wird es wohl funktionieren. Hast du es anderweitig, wird es wohl nicht gehen. Dann müsstest du es erst selber kompilieren.
 
mein treiber für den wlan stick stammt von der realtek-seite für android
 
Solche Aussagen sind mit einem Link immer besser.
Das der Treiber direkt von realtek ist, heißt jedoch nicht das es auch für deinen Kernel kompiliert ist.
 
Nun mal was grundsätzliches zum Thema "Treiber":

Anderst als in der seligen Windowswelt, in der alle sog. Treibe von den Herstellern für gerade mal aktuell ca. 4 Windows-Kernel geschrieben Und fertig kompiliert werden, gibt es bei Linux/ Android in der Regel beim Hersteller der Hardware nur den sog. Quellcode.
Aus dem kann, darf und muß dann jeder sich sein persöhnliches Modul für seinen Linux/ Android Kernel von seinem Gerät kompilieren.

Es gibt schlichtweg nicht Das Modul für die Hardware bei Linux.

Wer mehr wissen will, der darf gerne bei kernel.org nachlesen.

Kompliziert ist dieses selber kompilieren im Grunde nicht, jede halbwegs aktuelle Linuxdistribution bringt alles mit, was man braucht. Dazu die Kernelquellen eures jeweiligen Gerätes und besagten Quellcode des jeweiligen Moduls. Mit etwas Übung dauert das dann geschätzt ne halbe Stunde.

Es tut mir leid, aber Android ist kein Windows und Module unter Linux sind keine fertigen Setup-Pakete, welche man mal eben runterlädt und kopiert. Der Sinn und Zweck dahinter kann, wie gesagt, bei kernel.org nachgelesen werden und würde sicherlich diesen Thread sprengen.

P.S. Da Android recht aktuelle Kernel verwendet stehen die Chancen gut, das es gar nicht notwendig ist, irgeneinen Modul-Quellcode beim Hersteller zu verwenden. Gerade bei Netzwergeräten hat die Kernelcommunity fast alles dabei. Somit reicht i.d.R. der Kernelcode um einzelne Module nachzukompilieren.
Schau doch mal, welches Modul für deinen WLAN Stick gebraucht wird.
 
Zuletzt bearbeitet:
Ergänzend: Anleitung zum Kompilieren zwar für ein anderes Modul, die Vorgehensweise ist jedoch identisch.
Den Quellcode vom Hersteller braucht man auch nur dann, wenn das Modul noch nicht in den offiziellen Kernel Quellcode aufgenommen wurde. Realtek Produkte finden oft relativ schnell den Weg dort hin.
 
*G* mein P.S. war zu langsam...man wird alt.
 
Hallo,

es geht um einen MK808 wo ein USB-to-rj45 - Adapter erweitert werden soll,... dieser ist leider nicht "plug and play"-fähig

Adapter:
Logilink UA0025C

Laut Beschreibung sollte dieser eigentlich auf anhieb klappen aber naja,..

Firmeware: Finless 1.6

Von diesem Thread habe ich dir Datei, welche wohl für 1.5a angepasst ist:
www.ArmTvTech.com • View topic - Driver pack for MK808

Habs noch nicht versucht aber ich verzweifel dran^^

lG
 
Zuletzt bearbeitet von einem Moderator:
perpe..
gehen wir mal davon aus, dass der teiber vom wlan-stick rt3070 im kernel schon kompiliert wurde.-
wie binde ich dann den teiber ins system ein...und..
erlaubt android 2x wlan nebeneinander wie win7 oder muss und wie ein wlan abgeschaltet werden..
 
Nein, das geht nicht so einfach.
Dazu müsstest du eine eigene Custom ROM erstellen. Android ist ein eingebettetes System, da kann man nicht so einfach Hardware Komponenten auswechseln.
 
perpe schrieb:
Android ist ein eingebettetes System, da kann man nicht so einfach Hardware Komponenten auswechseln.

Hä? Er redet doch von einem Stick :unsure:

@captaniglu: Wenn der Treiber bereits im Kernel kompiliert ist, brauchst du ihn nicht mehr im System einbinden, dann reicht einfach: Stick einstecken. Der Kernel ordnet den richtigen Treiber dann automatisch zu (das funktioniert sehr zuverlässig).
 
Ändert nichts daran das Android ein eingebettetes System ist. Es genügt meist nicht externe Hardware nur anzuschließen, gerade bei Komponenten wie WLAN und Bluetooth, da neben dem Kernel diese Komponenten auch von Betriebssystem expilzit unterstützt werden müssen. Die richtigen Pfad, Module für WiFi und co. werden z.B. meist in der init.xxx.rc festgelegt und beim Booten ausgeführt. Diese Einträge sind für das festverbaute WiFi Modul. Wenn du nun ein WiFI Stick anschließt weiß das System damit nicht viel anzufangen, auch wenn es vom Kernel unterstützt wird.
Hinzukommt das die Funktion um WiFi an und abzuschalten in der /arch/arm/mach-hersteller/board-name.c Datei des Kernel Quellcodes festgelegt ist, auch sie ist auf das festverbaute WiFi Modul ausgelegt. RFKILL ist meist auch so ausgelegt, das es nur mit den onBoard Komponenten arbeitet.

Wenn also eine ROM externe WiFi und Bluetooth Sticks unterstützt, dann ist es alles andere als Android typisch sondern expilzit angepasst.
 
Full ACK ...zudem darf man nicht vergessen, das es zwar duraus sein kann, daß der Kernel bestimmte Module für z.B. USB2Ethernet Adapter mitbringt (z.B. das sattsam bekannte asix.ko) Aber, wenn der Hersteller des Adapters eine neue Vendor_ID oder eine neue Product_ID für das Teil verwendet, dann erkennt der Kernel den Adapter eben nicht, obwohl er eigentlich alles bereit hat. Ich wiederhole mich, aber ich habe eine DIR100 Adapter von D-Link, der in den Quellen des asix Moduls aufgelistet ist, nur hat DLink eine neue Product_ID eingepflanzt und nun geht er trotz vorhandenem asix Modul eben nicht.

Also, was bleibt ist das suchen anhand der genannten IDs für das jehweilige Modul und bei erweiterter Hardware (Bluetooth, WLAN) welche noch zusätzliche Software für Verschlüsselung oder Authentifizierung braucht, das selberbacken des ROMs.

Ich hoffe, das wir nun nicht alle Newcomer vergrault haben, sondern diese nicht den Mut sinken lassen, sich mit dem System zu befassen.

Jungs und Mädels, es geht, nicht immer alles sofort, aber Ihr könnt es regeln. Und zwar selbst und nicht in Cupertinos oder Windows Namen.

Der ursprüngliche Beitrag von 21:24 Uhr wurde um 21:35 Uhr ergänzt:

allgrind schrieb:


Das Teil benötigt mal nicht das asix Modul, sondern AFAIK das pegasus Modul. Diese ist seit Jahren in den Kernel Quellen enthalten und du must es halt selber bauen. Ich hatte es mal für mein Thinkpad Tablet gemacht...wie gesagt, ca. ne halbe Stunde uns es lief.
 

Ähnliche Themen

sun110
Antworten
0
Aufrufe
1.202
sun110
sun110
J
Antworten
15
Aufrufe
7.053
jason1967
J
C
Antworten
1
Aufrufe
1.611
mrrbr
mrrbr
Zurück
Oben Unten