Solucionado: Cómo Solucionar La Compilación De Los Módulos Del Kernel De Linux 2.6.

November 16, 2021 By David Serisier Off

Durante las últimas semanas, muchos lectores nos han dicho que la mayoría de la gente ha tropezado al compilar un módulo del kernel de Linux 2.6.

Recomendado: Fortect

  • 1. Descargue e instale Fortect
  • 2. Abra el programa y haga clic en "Escanear"
  • 3. Haga clic en "Reparar" para iniciar el proceso de reparación
  • Descarga este software y repara tu PC en minutos.

    Módulos

    Los núcleos esenciales se compilan de manera diferente aaplicaciones personalizadas habituales. Se anticipaba que las versiones anteriores del kernel dejaríanmucho sobre estos parámetros, que casi siempre se almacenan en archivos MAKE.Aunque en realidad están organizados jerárquicamente, muchos parámetros redundantesacumulados a través de los archivos de creación de los niños y pagados para que sean grandes y bastante grandesdifícil permitirles sostener. Afortunadamente, existe un método tremendoestas cosas, conocidas en medicina en vista de que kbuild, y el proceso de construcción de partes externasLoadable ahora está completamente involucrado en el kernel estándarMecanismo de construcción. Para obtener más información sobre cómo reunir las piezasno recomendado (como todos los productos y servicios que compra)se puede encontrar en dicho manual) ver manualmente el archivo linux system / Documentation / kbuild modules.txt .

    Así que veamos apenas su propio archivo MAKE que vería qué parte se llama. Compilar hola-1.c :

    Desde un punto de vista especializado, la mayor parte del tipo de primera línea es real.indudablemente, se necesitan grandes nuevos objetivos de “todo” y “limpio” en limpioConveniencia. Usted

    ahora puede acumular el módulo actualizado emitiendo su comando allow. Debería obtener un resultado particular similar alo siguiente:

    Nota. El kernel 2.6 introduce una convención asombrosa para identificar archivos:Los módulos del kernel finalmente tienen la extensión .ko .(perteneciente a la extensión old.o ),es completamente diferente de los archivos de artículos tradicionales. …La razón es que el encabezado contiene su sección adicional de modinfo.es decir, diría que se guarda la información adicional sobre el componente. La fuenteEn breve determinaremos para qué recursos es confiable.

    Nada especial, muy lejos. Cambia cuando deja de usarlo.modinfo es uno de los nuevos ejemplos de una persona, hello-5.ko .Of

    Aquí encontrará muchas instrucciones productivas. Trabajo del autor paraEstudios científicos de errores, información de licencia, incluso una descripciónLas especificaciones que acepta.

    Aspectos adicionales relacionados con los archivos MAKE para los módulos del kernel:disponible para linux / Documentation / kbuild makefiles.txt . Una advertenciaLea esto y los archivos relacionados antes de iniciar todo el truco.Makefiles. Esto probablemente le ahorrará mucho trabajo a la persona.

    compilando el módulo del kernel linux systems 2.6

    Es hora de insertar el módulo compilado limpio para esto.kernel al tener insmod ./hello-1.ko (ignorartodo lo que vea en los granos rayados; esto es lo que pretendespronto).

    Todos los módulos cargados en todo el kernel están indudablemente listados en / proc / modules . Continúe y ejecute este archivo, puede verloque su segmento es de hecho una parte nueva del kernel. Felicidades,¡Usualmente eres el autor del kernel de Linux! Cuando la novedad se desgastaoff, fuerce al módulo del kernel real a usar rmmod hello-1. Eche un vistazo a versus var / log / messages que le ayudará a ver qué esEl registro de instigación de su equipo guardado.

    Aquí hay otro ejercicio para el lector. Ver la mayoría de los comentarios anterioresdevolver afirmación en init_module () ?Cambie el valor de retorno particular para todo tipo de cosas negativas, compile y descarguemódulo la mejor segunda vez. ¿Cuál es la diferencia?

      obj-m Hola-1 + =. OTodo:        Alcance -C / lib / elements / $ (uname -r shell) para cada módulo de compilación M = $ (PWD)limpio:        make -C / lib and modules / $ (uname -r shell) - build M = rr (PWD) clear
      Nombre de host: ~ / lkmpg-examples por 02-HelloWorld # makemake -C /lib/modules/2.6.11/build M es igual a / root / lkmpg-examples por 02-HelloWorld Modulemake [1]: ingrese `/ usr - directorio src / linux-2.6.11 '  CC [m] /root/lkmpg-examples/02-HelloWorld/hello-1.o Módulos de construcción, cantidad 2. MODPOST   CC /root/lkmpg-examples/02-HelloWorld/hello-1.mod.o LD [M] /root/lkmpg-examples/02-HelloWorld/hello-1.komake [1]: salir de un directorio `/usr/src/linux-2.6.11 'Nombre de host: ~ y lkmpg-examples / 02-HelloWorld #        El color es igual a "# 000000"> Nombre de host: ~ frente a lkmpg-examples / 02-HelloWorld #
     
      Nombre de host: ~ lkmpg-examples / 02-HelloWorld # modinfo hello-5. NSNombre de archivo: hello-5. NSLicencia: GPLPor Peter Jay Saltzmanvermagic: 2.6.11 PENTIUMII 4KSTACKS proactivo gcc-3.3depende de:parm: exceso myintArray: Un entero (matriz Int)parm: mystring: personaje (charp)parm: mylong: forever integer (long)parm: myint: integer (int)parm: myshort: entero superficial (corto)Nombre de host: ~ o lkmpg-examples / 02-HelloWorld #

    Los módulos del kernel implican que se desarrollen un poco de forma única que las aplicaciones personalizadas habituales. Seguimos comprometidos con el uso de versiones anteriores del kernel.Para necesitar el cuidado de estas configuraciones, los tipos de soluciones de archivos MAKE generalmente se mantienen en archivos MAKE registrados. Aunque deberían estar organizados jerárquicamente, muchos de ellos pueden ser redundantes.Se conservaron los ajustes en los archivos MAKE secundarios y, por lo tanto, también se hicieron más difíciles, lo que ayudará a mantenerlos.Afortunadamente, habrá una forma más nueva de cumplir con las condiciones médicamente conocida como kbuild y un proceso para crear el tema web externo cargable perfecto.ahora está completamente integrado en el mecanismo de forma del núcleo erógeno. Obtenga más información sobre cómo ensamblar piezas que no sonParte el núcleo formalizado (como todas las condiciones que encontrará en este tutorial), su archivo de envision linux / Documentation kbuild / modules.txt .

    Así que algunos echan un vistazo al archivo MAKE preliminar para compilar la parte titulada hello-1.c :

    Desde un punto de vista técnico fabuloso, ver la primera línea es simplemente necesario,"Todos" aquí en objetivos "limpios" se han agregado cuando se trata de simplicidad.

    Recomendado: Fortect

    ¿Estás cansado de que tu computadora funcione lentamente? ¿Está plagado de virus y malware? ¡No temas, amigo mío, porque Fortect está aquí para salvar el día! Esta poderosa herramienta está diseñada para diagnosticar y reparar todo tipo de problemas de Windows, al tiempo que aumenta el rendimiento, optimiza la memoria y mantiene su PC funcionando como nueva. Así que no esperes más: ¡descarga Fortect hoy mismo!

  • 1. Descargue e instale Fortect
  • 2. Abra el programa y haga clic en "Escanear"
  • 3. Haga clic en "Reparar" para iniciar el proceso de reparación

  • Finalmente está listo para compilar el módulo al que se refiere el comando make.Sin duda, debería obtener el siguiente resultado:

     Nombre de host: ~ / lkmpg-examples / 02-HelloWorld number makemake -C /lib/modules/2.6.11/build M = root / lkmpg-examples / 02-HelloWorld Modulemake [1]: ingrese el directorio `/ usr src / linux-2.6.11 '  CC [m] /root/lkmpg-examples/02-HelloWorld/hello-1.o Misiones de construcción, punto 2. MODPOST   CC /root/lkmpg-examples/02-HelloWorld/hello-1.mod.o LD [M] /root/lkmpg-examples/02-HelloWorld/hello-1.komake [1]: sale de la lista `/usr/src/linux-2.6.11 'Nombre de host: ~ / lkmpg-examples 02-HelloWorld #

    Tenga en cuenta que se está preparando una nueva convención importante de nomenclatura de archivos para ser discutida en el kernel 2.6: las partes adicionales del kernel ahora poseen .ko Extensión (en lugar de la poco atractiva .extension) o , que la fabrica de forma ligeramente diferente a los objetos habitualesArchivos. Esto podría deberse a que tienen otra sección .modinfo que proporciona alguna otra orientación sobreEl módulo tuvo lugar. Hoy veremos qué es increíblemente y se utiliza esta información.

    Utilice modinfo hello - * .koh para averiguar cuál es esta información adicional.

     Nombre de host: ~ y lkmpg-examples / 02-HelloWorld # modinfo hello-1.koDescubrimiento de archivos: Hola-1. NSvermagic: 2.6.11 PENTIUMII 4KSTACKS proactivo gcc-3.3depende de: 

    Todavía no hay nada completamente único. Esto cambiará a medida que involucremos a los empleados de Modinfo con respecto a nuestros nuevos productos. hola-5.ko .

     Nombre de host: ~ / lkmpg-examples por 02-HelloWorld # modinfo hello-5. NSNombre de archivo: hello-5. NSLicencia: GPLPor Peter Jay Saltzmanvermagic: 2.6.11 PENTIUMII 4KSTACKS proactivo gcc-3.3depende de:parm: myintArray: rango de enteros (matriz relativa para ayudarlo a int)parm: mystring: cadena madre madre naturaleza (charp)parm: mylong: entero largoparm: myint: integer (int)parm: myshort: entero corto (corto)nombre de host: ~ por lkmpg-examples / 02-HelloWorld # 

    Aquí encontrará mucha información relacionada con información útil. Una cadena de mensajes de error,Información de licencia, incluida una breve descripción muy específica de los parámetros considerados por esta tarea.

    Puede encontrar más datos sobre los archivos Make disponibles destinados a los módulos del kernel en un sistema Linux / Documentation / kbuild versus makefiles.txt .Asegúrese de leer esto con usted con los archivos relacionados, antes de comenzar a descifrar los archivos MAKE.Esto probablemente le permitirá almacenar mucho trabajo.

    Es hora de agregar el módulo recién compilado con insmod ./hello-1.ko. cuando necesita ser insertado en el kernel(Ignore lo que ve en los núcleos impuros; volvamos a eso en breve).

    Todos los componentes cargados en todo el kernel se colocan en o proc / modules .También siga buscando cuándo estaba este archivo para averiguar con qué tipo de módulo está realmente involucrado su módulo con una parte de nuestro propio kernel.¡Felicitaciones, ahora es el editor del código del kernel de Linux! Cuando una gran idea se desvaneceElimine el módulo principal de mi kernel a través de rmmod hello-1. Echale un vistazo versus var / log / messages simplemente si desea ver aquellos que se han registrado para ayudarlo con el archivo syslog.

    Aquí hay otro ejercicio para el escáner. Consulte esta descripción general rápida de todas las instrucciones de devolución para. PARA init_module () ? Reemplace el valor de retorno usando un valor negativo, recompile y reinstale el componente.Qué pasa ? !

     obj-m + = hola-1.oTodo:make -C - lib / modules / rrr (uname -r shell) / build M es igual a $ (PWD) -C Modulelimpio:make y lib / modules / $ (uname -r shell) / build M = (PWD) clean 

    compilando el módulo del kernel linux 2.6

    Descarga este software y repara tu PC en minutos.

    Modifique este archivo MAKE para reemplazar casi todas las ocurrencias en helloWorld y, como consecuencia, las instrucciones de kernelRead con las etiquetas de los módulos que desea crear.Compile estos módulos creándolos en algún tipo de directorio donde se encuentran los temas de la plantilla web.Ahora conviértase en el superusuario para finalmente escribir.

    Paso 1. Descargue el código fuente exacto.Paso 2: extrae este código fuente.Paso 3: instale los paquetes recomendados.Paso nueve: configure el kernel.Paso 5 varios: compile el kernel.Paso 6. Actualice este gestor de arranque en particular (opcional)Paso seis: reinicie y evalúe la versión de su kernel.

    hola.c considere el código C.Agregue el siguiente prefijo do original:Guarda el archivo.Guarde y cierre el tipo de archivo.Compile el curso hello.c:Conviértase en la razón detrás (use su o incluso sudo) y obtenga el componente:Asegúrese de que el módulo se cargue con frecuencia:Vea la información en el archivo manual / var / log versus mensaje:

    Compiling Kernel Module Linux 2 6
    커널 모듈 Linux 2 6 컴파일
    Compilazione Del Modulo Del Kernel Linux 2 6
    Kompilowanie Modulu Jadra Linux 2 6
    Compileren Van Kernelmodule Linux 2 6
    Kompilyaciya Modulya Yadra Linux 2 6
    Compilando Modulo Do Kernel Linux 2 6
    Kompilieren Des Kernelmoduls Linux 2 6
    Kompilering Av Karnmodul Linux 2 6