GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo se agrega nuevo soporte de hardware al kernel de Linux?

El soporte del controlador funciona de la misma manera que con todo el código abierto:alguien decide rascarse su propia picazón.

A veces, el controlador lo proporciona la empresa que proporciona el hardware, al igual que en Windows. Intel hace esto para sus chips de red, 3ware lo hace para sus controladores RAID, etc. Estas empresas han decidido que les conviene proporcionar el controlador:su "comezón" es vender el producto a los usuarios de Linux, y eso significa garantizar que hay un conductor.

En el mejor de los casos, la empresa trabaja arduamente para obtener su controlador en la base de origen adecuada que se incluye con las distribuciones de Linux. Para la mayoría de los controladores, eso significa el kernel de Linux. Para controladores de gráficos, significa X.org. También hay CUPS para controladores de impresora, NUT para controladores de UPS, SANE para controladores de escáner, etc. El beneficio obvio de hacer esto es que las distribuciones de Linux creadas después de que se acepte el controlador tendrán soporte para el hardware listo para usar. El mayor inconveniente es que es más trabajo para la empresa coordinarse con el proyecto de código abierto para obtener su controlador, por las mismas razones básicas que es difícil para dos grupos separados coordinar cualquier cosa.

Luego están aquellas empresas que optan por ofrecer su código fuente del controlador directamente, únicamente. Por lo general, debe descargar el código fuente del controlador de su sitio web, compilarlo en su sistema e instalarlo a mano. Estas empresas suelen ser fabricantes más pequeños o especializados sin suficientes empleados como para ahorrarse el esfuerzo de coordinarse con el proyecto de código abierto adecuado para que su controlador entre en la base de origen de ese proyecto.

Unas pocas empresas proporcionan controladores solo binarios en lugar de código fuente. Un ejemplo son los controladores 3D más avanzados de empresas como NVIDIA. Por lo general, la razón de esto es que la empresa no quiere revelar información sobre la que se sienten propietarios. Dichos controladores a menudo no funcionan con tantas distribuciones de Linux como en los casos anteriores, porque la empresa que proporciona el hardware no se molesta en reconstruir su controlador para rastrear los cambios de API y ABI. Es posible que el usuario final o el proveedor de distribución de Linux modifique un controlador proporcionado como código fuente para realizar un seguimiento de dichos cambios, por lo que en los dos casos anteriores, el controlador generalmente se puede hacer funcionar con más sistemas que un controlador binario.

Cuando la empresa no proporciona controladores de Linux, alguien de la comunidad simplemente decide hacerlo. Hay algunas clases grandes de hardware donde esto es común, como con UPS e impresoras. Se necesita un usuario raro que a) tenga el hardware; b) tiene tiempo; c) tiene la habilidad; yd) tiene la inclinación a dedicar tiempo a desarrollar el conductor. Para el hardware popular, esto generalmente no es un problema porque con millones de usuarios de Linux, estas pocas personas existen. Te metes en problemas con hardware poco común.


Linux
  1. ¿Cómo funcionan las macros probables/improbables en el kernel de Linux y cuál es su beneficio?

  2. ¿Cómo se configura programáticamente el reloj de hardware en Linux?

  3. ¿Cómo determina el kernel de Linux el orden de las llamadas __init?

  4. ¿Cuál es el estado actual del soporte del controlador de video de Linux?

  5. ¿Cómo puedo reservar un bloque de memoria del kernel de Linux?

Cómo el kernel de Linux maneja las interrupciones

Cómo compilar un kernel de Linux en el siglo XXI

Cómo verificar la versión del kernel en Linux

Cómo instalar la nueva herramienta de instantáneas de Kali Linux, Unkaputtbar

¡Linux Kernel 5.0 lanzado, nuevas características y mejoras!

adición de un nuevo protocolo de red en el kernel de Linux