Pregunta

Estoy intentando seguir un tutorial para crear un controlador USB personalizado en Linux y espero desarrollar esto en mi PC Eee con Ubuntu Eee usando g ++. Desafortunadamente para seguir el tutorial, necesito el archivo de encabezado linux / module.h. Por lo que entiendo, tendré que compilar el kernel para que esto funcione. Nunca he compilado un kernel antes y todas las instrucciones que encuentro son para el escritorio Ubuntu.

Estoy haciendo esto en mi Eee ya que obtendré crédito adicional en una clase si puedo hacer esto y usarlo en un proyecto de clase.

Los tutoriales que estoy siguiendo están aquí: http://www.linuxjournal.com/article/ 7353 y aquí: http://www.linuxjournal.com/article/4786

¿Fue útil?

Solución

La mayoría (¿Todas?) de las principales distribuciones de Linux no solo distribuyen el kernel de Linux, sino que también le aplican numerosos parches. De este modo, mejora la estabilidad y agrega muchas características. ¡Entonces querrá usar el sistema de paquetes de Ubuntu para obtener la fuente del kernel parcheado de Ubuntu!

¡Probablemente NO necesite reconstruir el kernel! Lo más probable es que solo necesite el paquete kernel-headers para su kernel actual para compilar su controlador USB. Suponiendo que lo está construyendo como un módulo del núcleo, puede cargarlo con modprobe o insmod. (lsmod & amp; rmmod también son útiles.)

Si necesita reconstruir el núcleo, bueno, es fácil. ( Tan fácil que utilizo compilaciones de kernel para probar mi hardware). Hay muchos COMO de Kernel Building en la web. Te divertirás mucho tratando de descubrir qué opciones quieres como módulos, qué quieres compilar y qué quieres omitir. Puede hacer que el núcleo sea más pequeño, pero puede perder algunas de esas cosas.



Modificado para agregar:

  
    

Recuerdo haber hecho " sudo apt-get install linux-headers-eeepc, " ¿Necesito más que eso? Si no, ¿dónde están esos encabezados porque mi código de prueba que incluye & "; Linux / module.h &"; no compila

  

Allí debería ser una forma de enumerar todos los archivos en ese paquete linux-headers-eeepc. Vengo del mundo RedHat / RPM. Pero supongo que algo como dpkg --contents linux-headers -eeepc o dpkg - -listfiles linux-headers-eeepc . Puede que tenga que jugar un poco con eso.

Alternativamente, a juzgar por http://packages.ubuntu.com/ , paquetes como linux-headers -2.6.27-7 contiene el archivo /usr/src/linux-headers-2.6.27-7/include/linux/module.h. Por lo tanto, es posible que desee mirar alrededor en /usr/src/*/include/linux/module.h.

Alternativamente, intente:

% localizar linux / module.h | grep 'linux / module.h $'

O

% find / -path '* / linux / module.h'

(Ese buscar puede tardar un tiempo en completarse ...)

Otros consejos

Desde aquí: Ubuntu Kernel / Compile Para comenzar: sudo apt-get install linux-kernel-devel fakeroot build-essential makedumpfile

Probablemente solo lea ese enlace .

Más detalles en profundidad aquí

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top