Truco para compilar el kernel adaptado a nuestro harware


Cuando nos metemos a compilar el kernel muchas veces encontramos opciones dependientes del hardware. Una de estas opciones es la referida al chipset de disco que utilizamos y que nos condiciona el acceso por DMA. Con este pequeño truco os enseño como elegir el chipset correcto.

La utilidad lspci

Para averiguar la información de la mayor parte del hardware que disponemos utilizaremos la utilidad lspci.
Esta herramienta nos permite ver el hardware sobre el bus PCI que ha reconocido el kernel, cada dispositivo PCI tiene 2 números (de 4 digitos hexadecimales) que nos indican el fabricante y el modelo del cachivache. Podemos ver la lista de identificadores reconocidos en include/linux/pci_ids.h

Un listado típico de lspci sobre un equipo sería este:

00:00.0 Host bridge: Intel Corp. 430VX – 82437VX TVX [Triton VX] (rev 02)
00:07.0 ISA bridge: Intel Corp. 82371SB PIIX3 ISA [Natoma/Triton II] (rev 01)
00:07.1 IDE interface: Intel Corp. 82371SB PIIX3 IDE [Natoma/Triton II]
00:12.0 VGA compatible controller: S3 Inc. 86c764/765 [Trio32/64/64V+] (rev 54)
00:13.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C (rev 10)
00:14.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8029(AS)

Podemos utilizar las opciones -n para ver los identificadores númericos o bien la opción -v o -vv para mostrar más información acerca del dispositivo.
Primer ejemplo
Las líneas que nos interesan son las relativas a IDE interface o Host bridge, estas nos dan información del fabricantee de nuestro chipset y del modelo en concreto.
Con esta información podemos compilar el kernel con garantías 🙂
Primero entramos en ATA/IDE/MFM/RLL support y marcamos la opción para poder acceder a IDE, ATA and ATAPI Block devices.
Ahora dentro de las opciones de IDE chipset support/bugfixes vemos que hay una opción que se llama Intel PIIXn chipsets support
Bingo! 🙂
Según el lspci el nuestro es un chipset Intel Corp. 82371SB PIIX3, para asegurarnos miramos la ayuda de esta opción que no nos aporta nada nuevo, excepto que nos recomienda que marquemos el tuning support, cosa que hacemos. Como ya tenemos claro cual es nuestro chipset y que nuestro kernel lo reconoce podemos eliminar las referencias a otros modelos de chipset, y otra cosa importante, podemos desactivar el soporte para chipsets antiguos con problemas que lo único que hacen es ralentizarnos (CMD640 y RZ1000)
Y ya está.
En este ejemplo, he optado por cambiar únicamente el chipset pero podría haber empleado los datos del lspci para configurar la tarjeta gráfica y las tarjetas de red.
Segundo ejemplo

Veamos ahora otro ejemplo más extenso
Listado del lscpi:

00:00.0 Host bridge: VIA Technologies, Inc. VT8633 [Apollo Pro266] (rev 01)
00:01.0 PCI bridge: VIA Technologies, Inc. VT8633 [Apollo Pro266 AGP]
00:0c.0 RAID bus controller: Promise Technology, Inc. 20267 (rev 02)
00:0d.0 Ethernet controller: Intel Corp. 82557 [Ethernet Pro 100] (rev 08)
00:11.0 ISA bridge: VIA Technologies, Inc. VT8233 PCI to ISA Bridge
00:11.1 IDE interface: VIA Technologies, Inc. Bus Master IDE (rev 06)
00:11.2 USB Controller: VIA Technologies, Inc. UHCI USB (rev 18)
00:11.3 USB Controller: VIA Technologies, Inc. UHCI USB (rev 18)
00:11.4 USB Controller: VIA Technologies, Inc. UHCI USB (rev 18)

Con estos datos vamos a configurar el chipset IDE, el chipset del AGP y el controlador USB.

  • Chipset IDE
    Buscamos las referencias de IDE bridge y Host bridge y vemos que tenemos un VIA VT8633, también conocido como Apollo Pro266. Buscamos en las opciones del kernel contenidas en
    IDE chipset support/bugfixes
    y rápidamente localizamos la opción para los chipsets VIA. La ayuda esta vez no es muy aclaratoria (no encontramos nuestro modelo exacto), pero tenemos 2 opciones, fiarnos de que todos los chipsets VIA funcionan o bien mirar en el archivo que nos indica en el que encontraremos que este driver sirve para los chipsets Apollo Pro266, el nuestro 🙂
    También vemos que disponemos de una tarjeta RAID con un chipset Promise 202067 que localizamos facilmente.

  • Chipset AGP
    Si seleccionamos la opción /dev/agpgart (AGP Support)
    en Character devices (cosa muy recomendable si tenemos AGP). Tendremos a nuestra disposición una serie de chipsets. En nuestro caso tal como podemos ver en el lspci, disponemos de un chipset VIA que vemos que está soportado.

  • USB
    Dentro de las opciones del kernel para USB, disponemos de 2 opciones OHCI y UHCI, una ojeada rápida al lspci nos indica cual elegir.
  • Este post ha sido traido de forma automatica desde https://web.archive.org/web/20140625063149/http:/bulma.net/body.phtml?nIdNoticia=1469 por un robot nigromante, si crees que puede mejorarse, por favor, contactanos.


    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.