Estoy tratando de encontrar una manera de determinar con precisión si todo el hardware de algún sistema tiene un controlador válido instalado, ya sea a través de un módulo del kernel o integrado en el kernel.
Estoy trabajando con RHEL 5.5 en una Dell Optiplex 990.
Sé que lspci es un buen punto de partida, pero no es confiable porque podría actualizarse manualmente y los nuevos controladores no siempre lo actualizan. Sé que puedo consultar /lib/modules/$(uname -r)/modules.pcimap para averiguar si hay un módulo de controlador para la base del dispositivo en el ID, pero ¿qué pasa con los controladores integrados? Instalé un nuevo kernel y estoy tratando de averiguar si el módulo agpgart-intel integrado admite el puente de host con el proveedor: ID de dispositivo 8086:0100.
Además, ¿existe un procedimiento adecuado para actualizar la lista pci.ids al actualizar el kernel? Sé que podría actualizar todo usando update-pciids o descargando la lista de Internet, pero ¿no tiene más sentido incluir solo los ID compatibles con la instalación actual?
Respuesta1
Álex responde a tu pregunta. Compararlspci
00:00.0 Host bridge: Intel Corporation Core Processor DRAM Controller (rev 02)
00:02.0 VGA compatible controller: Intel Corporation Core Processor Integrated Graphics Controller (rev 02)
00:16.0 Communication controller: Intel Corporation 5 Series/3400 Series Chipset HECI Controller (rev 06)
00:19.0 Ethernet controller: Intel Corporation 82577LM Gigabit Network Connection (rev 06)
00:1a.0 USB controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 06)
00:1b.0 Audio device: Intel Corporation 5 Series/3400 Series Chipset High Definition Audio (rev 06)
00:1c.0 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 1 (rev 06)
00:1c.3 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 4 (rev 06)
00:1c.4 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 5 (rev 06)
00:1d.0 USB controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 06)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev a6)
00:1f.0 ISA bridge: Intel Corporation QM57 Chipset LPC Interface Controller (rev 06)
00:1f.2 SATA controller: Intel Corporation 5 Series/3400 Series Chipset 6 port SATA AHCI Controller (rev 06)
00:1f.3 SMBus: Intel Corporation 5 Series/3400 Series Chipset SMBus Controller (rev 06)
00:1f.6 Signal processing controller: Intel Corporation 5 Series/3400 Series Chipset Thermal Subsystem (rev 06)
02:00.0 Network controller: Intel Corporation Centrino Ultimate-N 6300 (rev 35)
ff:00.0 Host bridge: Intel Corporation Core Processor QuickPath Architecture Generic Non-core Registers (rev 02)
ff:00.1 Host bridge: Intel Corporation Core Processor QuickPath Architecture System Address Decoder (rev 02)
ff:02.0 Host bridge: Intel Corporation Core Processor QPI Link 0 (rev 02)
ff:02.1 Host bridge: Intel Corporation 1st Generation Core i3/5/7 Processor QPI Physical 0 (rev 02)
ff:02.2 Host bridge: Intel Corporation 1st Generation Core i3/5/7 Processor Reserved (rev 02)
ff:02.3 Host bridge: Intel Corporation 1st Generation Core i3/5/7 Processor Reserved (rev 02)
con el resultado dels -l pci*/*:*/driver
lrwxrwxrwx. 1 root root 0 May 21 09:37 pci0000:00/0000:00:00.0/driver -> ../../../bus/pci/drivers/agpgart-intel
lrwxrwxrwx. 1 root root 0 May 21 09:34 pci0000:00/0000:00:02.0/driver -> ../../../bus/pci/drivers/i915
lrwxrwxrwx. 1 root root 0 May 21 09:06 pci0000:00/0000:00:16.0/driver -> ../../../bus/pci/drivers/mei_me
lrwxrwxrwx. 1 root root 0 May 21 09:37 pci0000:00/0000:00:19.0/driver -> ../../../bus/pci/drivers/e1000e
lrwxrwxrwx. 1 root root 0 May 21 09:37 pci0000:00/0000:00:1a.0/driver -> ../../../bus/pci/drivers/ehci-pci
lrwxrwxrwx. 1 root root 0 May 21 09:37 pci0000:00/0000:00:1b.0/driver -> ../../../bus/pci/drivers/snd_hda_intel
lrwxrwxrwx. 1 root root 0 May 21 09:37 pci0000:00/0000:00:1c.0/driver -> ../../../bus/pci/drivers/pcieport
lrwxrwxrwx. 1 root root 0 May 21 09:37 pci0000:00/0000:00:1c.3/driver -> ../../../bus/pci/drivers/pcieport
lrwxrwxrwx. 1 root root 0 May 21 09:37 pci0000:00/0000:00:1c.4/driver -> ../../../bus/pci/drivers/pcieport
lrwxrwxrwx. 1 root root 0 May 21 09:37 pci0000:00/0000:00:1d.0/driver -> ../../../bus/pci/drivers/ehci-pci
lrwxrwxrwx. 1 root root 0 May 21 09:37 pci0000:00/0000:00:1f.0/driver -> ../../../bus/pci/drivers/lpc_ich
lrwxrwxrwx. 1 root root 0 May 21 09:37 pci0000:00/0000:00:1f.2/driver -> ../../../bus/pci/drivers/ahci
lrwxrwxrwx. 1 root root 0 May 21 09:37 pci0000:00/0000:00:1f.3/driver -> ../../../bus/pci/drivers/i801_smbus
lrwxrwxrwx. 1 root root 0 May 21 09:37 pci0000:00/0000:00:1f.6/driver -> ../../../bus/pci/drivers/intel ips
No necesariamente cubrirá "todo el hardware". En particular, se podría acceder a una funcionalidad a través de ACPI. Sin embargo, eso sería demasiado para deletrear manualmente.
Una alternativa seríacomenzarcreando una lista de verificación básica de funciones mientras intenta utilizar el sistema. Es un enfoque más positivo para mí, ya que Linux a menudo no admite alguna función en mi sistema, pero uso Linux felizmente sin necesitar esa función :).
Estoy de acuerdo en que lspci es una buena ayuda. Sin embargo, podría ser más sencillo, por ejemplo, cuando vea la línea Ethernet, simplemente confirmar que tiene Ethernet funcionando. Si Ethernetnofunciona, puedo verificar la falta de un controlador, pero no necesito verificar el controlador antes de intentarlo.
También es posible que desee un registro de cuál es el controlador exacto más adelante porque estoy feliz de que haya funcionado bien y creo que es un buen hardware para elegir nuevamente :). Desafortunadamente, como dice vonbrand, el soporte de hardware puede ser un campo minado, por lo que lo ideal seríaaúndesea tener una certificación para su sistema operativo, o el equivalente de la comunidad: muchos informes de "funciona muy bien para mí" en Google.
Me pregunto si agp es algo que quisieras usar. RHEL 5 es anterior a gnome3, por lo que puedes abrir tus emuladores de terminal sin ninguna aceleración 3D si es necesario. Si ustedhacerSi necesita aceleración 3D, también necesitará una biblioteca GL. ¿Por qué no probar las aplicaciones de gráficos más exigentes que desee utilizar y comprobar que funcionan?
El rendimiento es un poco más molesto de juzgar. Es más que una casilla de verificación, pero aún podría deberse a una posibilidad discreta, como tener un controlador genérico en lugar de uno específico de hardware. Puede resultar útil buscar puntos de referencia rápidos en su lista de funciones y anotar los resultados como punto de referencia. Por ejemplo, Gnome Disks es una herramienta de referencia muy conveniente que se instala de forma predeterminada en versiones recientes (tos) de ese escritorio.
Cuando note una falla de rendimiento en uno de sus sistemas (por ejemplo, Gnome 3 tiene fallas), puede anotarlo como un posible elemento de la lista de verificación. Es decir, en un sistema nuevo, es posible que notes que Gnome 3 no presenta tirones todo el tiempo, por lo que pasó esa prueba en particular.
Respuesta2
Si conoce los símbolos de Kbuild para los controladores deseados, puede verificar /proc/config.gz
cualquier otra fuente de configuración del kernel disponible (las distribuciones generalmente colocan la configuración /boot
junto al kernel, o puede extraer la configuración del kernel desde scripts/extract-ikconfig
el árbol de fuentes del kernel, siempre que el la configuración fue compilada en el kernel, por supuesto).
Respuesta3
Tendría que buscar los dispositivos enumerados para la máquina en una lista de dispositivos compatibles con RHEL. Sí, puede haber algunos que funcionen, pero nadie se ha molestado en comprobar/certificar que funcionan.
Tenga cuidado, a veces dispositivos con nombres similares (por ejemplo, alguna tarjeta Ethernet llamada SC-423+ era uncompletamentebestia diferente al SC-423 superficialmente idéntico; y una vez nos picaron tarjetas con exactamente el mismo número de modelo que eran bastante diferentes). Y al revés, se construyeron dispositivos completamente diferentes de distintos proveedores sobre las mismas piezas. Pero también para que el fabricante A fuera sólido como una roca, mientras que B era muy inestable.