No se puede crear un LDD para un Devkit8000

No se puede crear un LDD para un Devkit8000

Estoy intentando crear un controlador de dispositivo Linux para un Devkit 8000. Recibo el siguiente mensaje de error:

Mensaje de error

Cuando trato de seguir sus instrucciones, me hacen un montón de preguntas de sí o no que realmente no entiendo. Al final, puedo elegir entre 25 procesadores diferentes(?):

Selección de procesador

Aquí está mi archivo MAKE:

ifeq ($(KERNELRELEASE),)

KERNELDIR = ~/sources/linux-3.2.6
PWD := $(shell pwd)
modules:
$(MAKE) ARCH=arm CROSS_COMPILE=arm-angstrom-linux-gnueabi- -C $(KERNELDIR) M=$(PWD) modules

.PHONY: modules clean

else
# called from kernel build system: just declare what our modules are
obj-m := LED_timer.o
endif

No creo que mi código en sí sea relevante todavía, ademássaberque mi código fuente está plagado de errores, no querrás ver eso, jaja.

Respuesta1

No ha dicho de dónde sacó la fuente que está utilizando, pero evidentemente no es válida .config. Esto se utiliza para configurar varias opciones, como el tipo de procesador. Hay literalmente cientos de estas opciones con intrincadas dependencias entre sí (por ejemplo, el procesador que elija afectará las otras opciones que tenga).

La fuente de vainilla no .configcontiene; debe proporcionar o crear uno. make oldconfigSe utiliza cuando .configes de una versión anterior y debe actualizarse. A veces, este proceso no se puede automatizar completamente y básicamente terminas ejecutando make config, que utiliza una interfaz CLI; Esto también podría ser lo que sucede si lo intentas make oldconfigsin configuración.

Deberías mirar los más gráficos make menuconfigpara tener una mejor perspectiva de de qué se trata todo esto.

Sin embargo, comenzar desde cero e intentar obtener una configuración que funcione para usted será imposible a menos que sepa lo que está haciendo. Lo ideal sería comenzar con el que se utilizó para crear el kernel en ejecución. Esto es especialmente cierto si sólo estás construyendo un módulo; Si bien no es necesario construir el kernel real, para compilar el módulo se debe saber cómo se compiló el kernel para el que se utilizará.

Con suerte, podrá encontrarlo en /proc/config.gzel sistema de destino. Este no es un archivo en el disco; el sistema debe estar ejecutándose para poder recuperarlo. Está comprimido así

gunzip config.gz
mv config .config

Deberías hacerlo. Copie eso en su árbol de fuentes y ejecútelo make menuconfigpara agregar instrucciones para el módulo que desea construir.

Si eso no existe, tendrá que localizar la configuración que se utilizó. Tenga en cuenta también que debe utilizar exactamente la misma versión del kernel si está creando un módulo.

Aquí estáuna visión generaldel proceso de compilación, que también podría ser útil, lea primero los puntos 2 y 3.

Respuesta2

Primero tenemos que borrar la configuración anterior, como make mrproper.

Después de eso recién ejecutado make menuconfig. Si definitivamente seleccionó elementos no deseados, .config no se crearán.

información relacionada