Frage Sind Linux-Treiber auf Linux-Kernel angewiesen?


Ich habe Ubuntu 14.04 LTS. Mein externer Bluetooth-Adapter funktioniert in dieser Version von Ubuntu nicht, aber er funktioniert sehr gut in Ubuntu 12.x-Versionen. Also habe ich Ubuntu 12.x Kernel in Ubuntu 14.04 LTS heruntergeladen und installiert. Immer noch funktioniert mein externes Bluetooth nicht. Speichert der Kernel Linux-Treiber? Wie kann ich Treiber für bestimmte Hardware für Linux finden? (Wie externes Bluetooth-Gerät) Wie löst man das?


1
2017-08-21 18:04


Ursprung


Bitte booten Sie mit normalem Ubuntu 14.04 Kernel und fügen Sie die Ausgabe von lsusb auf deine Frage. - Pilot6
Das Herunterladen und Installieren eines alten Kernels ist nicht ausreichend. Ubuntu bootet mit dem neuesten Standardkernel, wenn Sie nicht manuell von einem anderen Kernel aus dem erweiterten GRUB-Menü booten oder den GRUB-Standard wie unten von Serg beschrieben ändern. - user68186


Antworten:


Sie haben Recht: Linux Kernel kommt mit den Treibern (aka modules), und wenn einige der Treiber nicht funktionieren, können Sie versuchen, einen anderen Kernel zu installieren oder zu booten. Zum Beispiel hatte ich bei 14.04LTS, Kernel 3.19 ein Problem mit dem Virtual Box Kernel Modul. Aber mit 14.04LTS und Kernel 3.13 gibt es kein Problem. Beachten Sie jedoch, dass Sie, wenn der Linux-Kernel keinen Treiber für Ihr Gerät enthält, diesen möglicherweise von Ihrem Hersteller oder von Open-Source-Repositories finden müssen. 

Um einen anderen Kernel zu testen, müssen Sie zunächst herausfinden, welchen Kernel Sie verwenden uname -r Befehl im Terminal. Dann starte den Rechner neu, wähle Erweiterte Optionen für Ubuntuund wählen Sie eine Option mit einer anderen Kernel - Nummer (als mit uname -r Befehl) und nicht angezeigt ( Wiederherstellungsmodus ).

Wenn dein Bluetooth mit einem älteren Kernel arbeitet, ist es definitiv ein Treiberproblem.

Um Ubuntu mitzuteilen, dass es mit dem von Ihnen gewünschten Kernel bootet, denken Sie zunächst an das Element, das Sie aus dem Menü ausgewählt haben Erweiterte Optionen. Zum Beispiel möchte ich immer mit dem Kernel 3.13 booten, und ich entschied mich, mit zu booten Ubuntu, mit Linux 3.13.0-62-generisch.

Als nächstes führen Sie diesen Befehl aus:

awk '/menuentry/ && /class/ {count++; print count-1"****"$0 }' /boot/grub/grub.cfg | less

Merken Sie sich die Nummer neben Ihrem gewünschten Eintrag.

Führen Sie anschließend den folgenden Befehl aus. ERSETZEN Sie X in GRUB_DEFAULT = X mit der Nummer, an die Sie sich erinnern.

sudo sed -i  's/GRUB_DEFAULT=0/GRUB_DEFAULT=X/g' /etc/default/grub; sudo update-grub

Wenn Sie jetzt neu starten, sollten Sie mit einem älteren, funktionierenden Kernel booten.


2
2017-08-21 18:45



Ich bin mir sicher, dass es möglich ist, das Bluetooth auf neue Kernel zu verwenden ;-) - Pilot6
@ Pilot6 Wahr, dass! Es wäre überraschend, wenn ein neuerer Kernel das Modul entfernt hätte. Hier versuche ich, OP eine Methode zu geben, um alles wieder zum Laufen zu bringen. - Sergiy Kolodyazhnyy
Ich bin es schon ausprobiert! Funktioniert immer noch nicht. - Buvanesh Kumar
@BuvaneshKumar Hast du den Adapter auf anderen Rechnern ausprobiert? Bitte posten Sie auch die Ausgabe von lsusb wie Pilot6 in den Kommentaren gefragt hat. - Sergiy Kolodyazhnyy
Es ist meine lsusb Ergebnis: Bus 002 Gerät 004: ID 0a12: 0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI-Modus) Bus 002 Gerät 002: ID 8087: 0020 Intel Corp. Integrated Rate Matching Hub & ich versuchte auch in einem anderen Ubuntu PC. Bus 002 Gerät 001: ID 1d6b: 0002 Linux Foundation 2.0-Root-Hub Bus 001 Gerät 004: ID 12d1: 14db Huawei Technologies Co., Ltd. Bus 001 Gerät 002: ID 8087: 0020 Intel Corp. Integrated Rate Matching Hub Bus 001 Gerät 001 : ID 1d6b: 0002 Linux Foundation 2.0-Root-Hub - Buvanesh Kumar