Mostrando postagens com marcador grub. Mostrar todas as postagens
Mostrando postagens com marcador grub. Mostrar todas as postagens

quinta-feira, 20 de outubro de 2011

Ubuntu / Kubuntu 11.10 + placa wireless broadcom

Deixa eu adivinhar, você usava feliz e contente a sua placa de rede wireless no Ubuntu/Kubuntu 11.04 seguindo a dica Travando versão do driver da placa wifi Broadcom e agora fez a atualização para a versão 11.10 e parou de funcionar não é? Infelizmente (ou felizmente...) você não está sozinho....

Mas não se desespere, a minha voltou a funcionar, com alguns poréns, mas voltou....

Aparentemente esse é um problema apenas quando se faz a atualização, li muito na net e parece que todos que fizeram uma instalação limpa não passaram por isso.

Apenas para deixarmos claro algumas coisas, não sei se a solução servirá para a sua placa, pra minha foi a única forma que encontrei, então para ter certeza veja a versão da que está instalada no seu notebook e compare com o meu:


je@je:~$ sudo lshw -C network
[sudo] password for je:
   *-network
       description: Wireless interface
       product: BCM4311 802.11b/g WLAN
       vendor: Broadcom Corporation
       physical id: 0
       bus info: pci@0000:03:00.0
       logical name: eth1
       version: 01
       serial: 00:19:7e:78:55:f2
       width: 32 bits
       clock: 33MHz
       capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
       configuration: broadcast=yes driver=wl0 driverversion=5.60.48.36 ip=192.168.1.109 latency=0 multicast=yes wireless=IEEE 802.11bg
       resources: irq:17 memory:84400000-84403fff


Ou seja, a minha placa é uma BCM4311 (droga!!!!) e o driver atualmente utilizado é o 5.60.48.36.

O problema:
Fiz a atualização do 11.04 para o 11.10, atualizei tudo, inclusive o driver da placa na esperança deste problema já ter sido resolvido e quando dei o primeiro boot... bingo!!! A minha placa wireless não funcionava mais... grande novidade...

As tentativas que não funcionaram:
1) Segui a dica de voltar a versão antiga do driver, nada...
2) Atualizei novamente para a última versão do driver e segui a dica do próprio site da Broadcom que indica fazer uma espécie de patch para correção do problema em kernel 3 ou superiores, nada... mas pelo menos essa me deu uma ideia de como resolver o problema, claro, o problema está com a versão do driver nesse Kernel!!! Até esse momento eu não fazia a menor ideia do porque não funcionava.
3) Trocentas outras tentativas...

Então qual foi a brilhante ideia? Usar o 11.10 com o Kernel antigo haaaargggg!!!! Mas fazer o que????

Então pra fazer isso siga a seguinte dica:

Mudar a opção default de boot no grub

Neste caso, como eu ainda tinha o Kernel antigo instalado mesmo depois da atualização, apenas setei no Grub que eu quero fazer o boot utilizando o Kernel antigo.... WTF!!!!

E claro, nem pense em usar o driver novo da placa, mantenha o mesmo 5.60.48.36 da dica  Travando versão do driver da placa wifi Broadcom.

Não muito legal né? Mas funciona. E por favor, se alguém tem alguma dica de como fazer funcionar no Kernel 3 coloca nos comentários aí, vamos nos ajudar.

Juro, na próxima fez que eu for comprar um notebook e vier com essa placa eu jogo ele na parede...

quarta-feira, 19 de outubro de 2011

Mudar a opção default boot no Grub

As vezes queremos direcionar o boot para algum SO default (no caso de dualboot) ou até mesmo rodar o próprio Linux com uma versão de kernel diferente e deixar essa opção como default pra não ter que ficar selecionando, para fazer isso é bem simples, abra um terminal de comando e digite:

grep menuentry /boot/grub/grub.cfg


Será mostrado algo como:

menuentry 'Ubuntu, com Linux 3.0.0-12-generic' --class ubuntu --class gnu-linux --class gnu --class os {
menuentry 'Ubuntu, com Linux 3.0.0-12-generic (modo de recuperação)' --class ubuntu --class gnu-linux --class gnu --class os {
menuentry 'Ubuntu, com Linux 2.6.38-11-generic' --class ubuntu --class gnu-linux --class gnu --class os {
menuentry 'Ubuntu, com Linux 2.6.38-11-generic (modo de recuperação)' --class ubuntu --class gnu-linux --class gnu --class os {
menuentry 'Ubuntu, com Linux 2.6.38-10-generic' --class ubuntu --class gnu-linux --class gnu --class os {
menuentry 'Ubuntu, com Linux 2.6.38-10-generic (modo de recuperação)' --class ubuntu --class gnu-linux --class gnu --class os {
menuentry 'Ubuntu, com Linux 2.6.38-8-generic' --class ubuntu --class gnu-linux --class gnu --class os {
menuentry 'Ubuntu, com Linux 2.6.38-8-generic (modo de recuperação)' --class ubuntu --class gnu-linux --class gnu --class os {
menuentry "Memory test (memtest86+)" {
menuentry "Memory test (memtest86+, serial console 115200)" {



Entenda, cada linha que contém um menuentry é uma opção do menu (ou submenu) do Grub e significa um índice, ou seja, a primeira opção é índice 0, a segunda é índice 1 e assim por diante, então caso você desejar colocar como padrão a opção 'Ubuntu, com Linux 2.6.38-11-generic' deverá setar a variável GRUB_DEFAULT no arquivo /etc/default/grub com o valor 2, ficando assim:

GRUB_DEFAULT=2

Porém, digamos que você instalou mais um kernel e agora esse índice mudou... seria chato ter que editar cada vez o arquivo para trocar a opção default não é mesmo? Para nossa sorte existe a opção de colocar a descrição do menu nesta mesma variável, ou seja:

GRUB_DEFAULT="Ubuntu, com Linux 2.6.38-11-generic"

Legal né? Legal sim, mas não funciona, ou melhor, pode não funcionar se essa opção estiver definida dentro de um "submenu" do Grub, para saber se ela está inserida em um submenu você deve editar o arquivo /boot/grub/grub.cfg e procurar pela palavra submenu, se você encontrar algo do tipo:


submenu "Previous Linux versions" {
menuentry 'Ubuntu, com Linux 2.6.38-11-generic' --class ubuntu --class gnu-linux --class gnu --class os {


Significa que essa opção está inserida em um submenu e neste caso aquela variável deve ser definida diferente, nela deve constar a opção do menu principal a qual faz parte o submenu, no exemplo apresentado aqui, ela deve ser:

GRUB_DEFAULT="Previous Linux versions>Ubuntu, com Linux 2.6.38-11-generic"

Note o ">" fazendo a separação do menu e submenu.


Quase tudo pronto, agora que você já fez as alterações necessárias (identificando a opção default pelo seu índice ou pelo seu nome) vamos precisar recriar esse menu no arquivo de configuração do Grub que será utilizado no boot, basta digitar:

sudo update-grub

UPDATE: Esse 'sudo update-grub' você vai precisar executar sempre que for instalado um novo kernel, caso contrário ao ser instalado um novo kernel essa seleção default não funcionará mais.

É isso!






Recuperar o Grub

Se por algum motivo você se deparou com o prompt do grub esperando um "genial" comando ao dar boot no seu computador, não se desespere, aqui você vai ver como faz para recuperar o grub perdido.

Você vai precisar de um live-cd, ou de preferência um live-pen (a natureza agradeçe!) com a versão do Ubuntu/Kubuntu nele, faça o boot utilizando esse live e abra uma janela de comando (konsole no caso do Kubuntu) para digitar (enter após cada nova linha):

sudo -i
mount /dev/sda1 /mnt
grub-install --root-directoru=/mnt/ /dev/sda

Se não ocorreu nenhuma mensagem de erro, é só isso, basta retirar o line do cd/usb e dar boot novamente.

ATENÇÃO: na 2a. linha eu informe como sendo sda1 a minha partição que tem o SO instalado e que é onde deveria constar o grub, então veja se por acaso no seu micro não é outra e faça a devida substituição.