sexta-feira, 18 de julho de 2014

Placa mãe ZMAX HOME 2400/IPX1800G1 + USB 3.0 + xHCI = Teclado e Mouse não reconhecidos

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1



Jaboatão dos Guararapes, PE, 18 de julho de 2014.

O problema: o teclado e o mouse ambos da marca "zmax" não estavam aparecendo na inicialização do sistema (Linux From Scratch 7.5 com kernel 3.13.3).

Obs.: os mencionados dispositivos aparecem e funcionam normalmente no Windows 7 e no Debian GNU/Linux (Whezzy) instalados na mesma máquina.

A solução: recompilar o kernel (3.13.3) e habilitar a opção
"CONFIG_USB_XHCI_HCD".

______________________________________________________________________________________________

Informação fornecida pela Desktop Management Interface (DMI):
placa mãe: ZMAX HOME 2400/IPX1800G1, BIOS F4c DB 04/16/2014

______________________________________________________________________________________________

Informação copiada do portal Linux USB (http://www.linux-usb.org/PressRel1.html):

O Linux suporta ambos o Universal Host Controller Interface (UHCI, utilizado por chipsets de placas mãe Intel e Via) e o Open Host Controller Interface (OHCI, utilizado por chipsets Compaq, Apple, SiS, OPTi, Lucent and ALi chipsets), fazendo com que o suporte USB esteja disponível para qualquer pessoa com uma placa mãe moderna, ou com um PCI vago ou slot PcCard disponível para inserir uma placa controladora de host USB barata. O Linux também suporta hubs USB, os quais disponibilizam expansão para dispositivos adicionais.


_______________________________________________________________________________________________

Informação copiada do portal Linux Kernel Driver Database (http://cateee.net/lkddb/web-lkddb/USB_XHCI_HCD.html):

xHCI HCD (USB 3.0) support found in drivers/usb/host/Kconfig

The configuration item CONFIG_USB_XHCI_HCD:

    prompt: xHCI HCD (USB 3.0) support
    type: tristate
    depends on: (none)
    defined in drivers/usb/host/Kconfig
    found in Linux kernels: 3.7–3.15, 3.16-rc+HEAD
    modules built: xhci-hcd, xhci

Texto ajuda

A eXtensible Host Controller Interface (xHCI) é padrão para controladora host de hardware USB 3.0 "SuperSpeed".

Para compilar este driver como um módulo, escolha M aqui: o módulo será chamado xhci-hcd.

_______________________________________________________________________________________________

Saída do comando <lspci -v -s 00:14.0>:

00:14.0 USB controller: Intel Corporation Atom Processor Z36xxx/Z37xxx Series USB xHCI (rev 0c) (prog-if 30 [XHCI])
    Subsystem: Gigabyte Technology Co., Ltd Device 5007
    Flags: bus master, medium devsel, latency 0, IRQ 106
    Memory at d0700000 (64-bit, non-prefetchable) [size=64K]
    Capabilities: [70] Power Management version 2
    Capabilities: [80] MSI: Enable+ Count=1/8 Maskable- 64bit+
    Kernel driver in use: xhci_hcd

_______________________________________________________________________________________________

Também ajudou muito na compreensão do problema as informações colhidas na BIOS da máquina (placa mãe: ZMAX HOME 2400/IPX1800G1, BIOS F4c DB 04/16/2014).

Fabricante: American Megatrends, Inc.
Versão de BIOS: 2.16.1242

Guia: Avançado
Opção: Configuração USB
Subopção: Suporte USB 3.0 -->  Habilitado
Subopção: XHCI Hand-off  -->  Habilitado




Assim, na verdade, o que estava acontecendo é que o driver "xhci_hcd" não estava sendo carregado no kernel Linux e, por consequência, nenhum
dos dispositivos conectados nas portas USB estava sendo reconhecido pelo aplicativo udev (que adiciona dinamicamente todos os dispositivos
conectados).

Uma vez que o suporte correto ao driver foi compilado no kernel, todos os dispositivos conectados foram automaticamente reconhecidos e
adicionados sem a necessidade de qualquer configuração extra.

Moral da história: inicialmente, não há motivo para se formatar e reinstalar todo o Sistema Operacional.   Basta que se entenda o problema
e configure corretamente o kernel ou arquivos de configuração para tudo funcionar conforme esperado.


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iQEcBAEBAgAGBQJTyJ0BAAoJECrgJcAIqGGAyCAH/1Ok0t8iz4BgrgjUgXvEo0nM
AuNV90/KekftzMef+ohGtuzxsDoYuxAQViiDyTYGGm3oYovarKNEbDdG78y38tGz
rHoAiSKV0/H3BhoS5sanmj9oLhzghukspzvxJJM1V41HtUkHh3Q1CniAaSYgZJpq
Uqwmf1z2dFCCGluYLpnrmFpkgww/5+6HooFqDOWBfLspMOVo4GH+UvVWTqsPHt/L
OfQMvnIJ+61b7yJ+1PRrCeRIRwH/q5L4SFWj7Ft2Ex8zpg+OsIZEWI1rttnDD5B4
mRl8a5QkCltEXxsKf677wuzXmpr7vE+nIDgeGNJwKKeAOOMnYMmHa7yiDbJa1DU=
=kjdI
-----END PGP SIGNATURE-----

quinta-feira, 19 de junho de 2014

Windows 8.1 + Debian GNU/Linux + GRUB + Dual Boot

Jaboatão dos Guararapes, PE, 19 de junho de 2014.

Coincidência ou não, o fato é que após uma atualização para Windows 8.1, ocorreu o seguinte problema:

Welcome to GRUB!
error: unknown filesystem
Entering rescue mode...
grub rescue>

Comandos utilizados para se ter novamente acesso ao menu de inicialização:

1 - ls
2 - set
3 - set prefix=(hd0,gpt6)/boot/grub
4 - set root=(hd0,gpt6)
5 - insmod normal
6 - normal

Comandos utilizados já dentro do Debian GNU/Linux (como usuário root):

7 - grub-install --recheck
8 - grub-mkconfig

___________________________________________________________________

Entendendo todo o procedimento e os comandos:

1 - ls

Comando utilizado para que se possa descobrir todas as partições atualmente existentes no disco rígido.

resultado do comando:

(hd0) (hd0,gpt8) (hd0,gpt7) (hd0,gpt6) (hd0,gpt5) (hd0,gpt4) (hd0,gpt3) (hd0,gpt2) (hd0,gpt1) (hd1)

Tentou-se listar o conteúdo dentro das partições com o seguinte comando:

ls (hd0,gpt8)
error: unknown filesystem.

Por sua vez, o seguinte comando retornou um resultado ligeiramente diferente:

ls (hd0,gpt6)
error: bad filename

Então, alterou-se um pouco o comando:

ls (hd0,gpt6)/

O resultado:

., .., bin, boot, dev, etc, home, initrd.img, lib, lib64, lost+found, media,
mnt, opt, proc, .pulse, .pulse-cookie, root, run, sbin, selinux, srv, sys, tmp,
usr, var, vmlinuz

O resultado mostra que a partição onde o GRUB está instalado é (hd0,gpt6)

2 - set

Exibe as configurações atuais de GRUB.

Resultado da primeira execução do comando:

prefix=(hd0,gpt7)/boot/grub
root=(hd0,gpt7)

Agora ficou fácil de constatar o erro: o GRUB está direcionando para a partição errada (hd0,gpt7).

3 - set prefix=(hd0,gpt6)/boot/grub

Configura o GRUB para se direcionar para o seu diretório de instalação.

4 - set root=(hd0,gpt6)

Configura o GRUB para se direcionar para a partição correta.

5 - insmod normal

Instala um módulo necessário para o carregamento normal do GRUB.

6 - normal

Inicia o GRUB em modo normal (sair do modo de recuperação).

___________________________________________________________________
Agora já com o Debian GNU/Linux já em execução:

7 - grub-install --recheck

Executado como usuário root.  Verificar outra vez as partições corretas.

8 - grub-mkconfig

Executado como usuário root.  Reconstruir o arquivo de configuração do GRUB (/boot/grub/grub.cfg).
De acordo com as instruções, tal arquivo não deve ser editado manualmente.

Problema resolvido! Reiniciar (opcionalmente) a máquina e verificar.

Jamenson Ferreira Espindula de Almeida Melo
Linux User #166197