Os drivers do Linux dependem do kernel do Linux?

1

Eu tenho o Ubuntu 14.04 LTS. Meu adaptador bluetooth externo não está funcionando nesta versão do Ubuntu, mas está funcionando muito bem nas versões do Ubuntu 12.x. Então eu baixei e instalei o kernel do Ubuntu 12.x no Ubuntu 14.04 LTS. Ainda meu bluetooth externo não está funcionando. O kernel armazena drivers linux? Então, como posso encontrar driver para hardware específico para Linux? (Como o dispositivo externo Bluetooth) Como resolver isso?

    
por Buvanesh Kumar 21.08.2015 / 20:04

1 resposta

2

Você está certo: o kernel do Linux vem com os drivers (também conhecidos como modules ), e se alguns dos drivers não funcionarem, você pode tentar instalar ou inicializar (se tiver) um kernel diferente. Por exemplo, no 14.04LTS, kernel 3.19 eu tive um problema com o módulo Virtual box kernel. Mas com o 14.04LTS e o kernel 3.13 não há problema. Observe, no entanto, que se o kernel do Linux não contiver um driver para o seu dispositivo, talvez seja necessário localizá-lo no fabricante ou em repositórios de código aberto.

Para experimentar um kernel diferente, primeiro descubra o kernel que você está usando com o comando uname -r no terminal. Então reinicie a máquina, escolha Opções Avançadas para Ubuntu , e escolha qualquer opção que tenha um número de kernel diferente (que mostrado com o comando uname -r ) e não exibindo (modo de recuperação) .

Se o seu donlge bluetooth funciona com um kernel antigo, é definitivamente um problema de driver.

Para dizer ao Ubuntu para inicializar com o kernel desejado, primeiro lembre-se do item que você escolheu no menu Opções Avançadas . Por exemplo, eu quero sempre inicializar com o kernel 3.13, e eu escolhi para inicializar com o Ubuntu, com o Linux 3.13.0-62-generic .

Em seguida, execute este comando:

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

Lembre-se do número ao lado da sua entrada desejada.

Finalmente, execute o comando abaixo. SUBSTITUIR X em GRUB_DEFAULT = X com o número que você lembrou .

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

Agora, quando você reiniciar, você deve estar inicializando com o kernel antigo e funcional.

    
por Sergiy Kolodyazhnyy 21.08.2015 / 20:45