我正在尝试包含一个驱动程序以在我的arch linux arm机器上使用。我尝试使用这些步骤来包含驱动程序模块,但是我的带有添加的驱动程序的交叉编译内核无法加载。
1) Include the driver I want to add by making it have < M > beside it's
name in make ARCH=arm menuconfig
2) run: make ARCH=arm CROSS_COMPILE=/home/z3/bin/arm- (the path for my cross-compiling toolchain)
3) run: make ARCH=arm CROSS_COMPILE=/home/z3/bin/arm- modules
4) run: make ARCH=arm CROSS_COMPILE=/home/z3/bin/arm- install
5) run: make ARCH=arm CROSS_COMPILE=/home/z3/bin/arm- modules_install
6) copy my uImage from: arch/arm/boot
to my boot location: /tftpboot/
然后当我的嵌入式linux arm尝试加载内核uImage时,它挂在:编辑:将切入点地址更改为80008000,所以现在它挂在:
Filename '/tftpboot/uImage'.
Load address: 0x81800000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
####################################
done
传输的字节数=3174848(3071c0十六进制)
映像名称:2.6.35-ModifiedEntry
映像类型:ARMLinux内核映像(未压缩)
数据大小:3174784 Bytes=3 MiB
加载地址:80008000
入口点:80008000
验证校验和… OK
加载内核映像…OK
OK
启动内核…
我交叉编译内核错了吗?它无法加载uImage。我只想使用新包含的驱动程序(包含在make menuconfig的配置中)交叉编译linux arm机器的内核。我错过了任何额外的步骤吗?
您在内核构建过程中犯了两个错误。
1)在制作menuconfig
之前
您需要有一个. config
文件应该在源代码中退出。
你怎么能得到它
1)使ARCH=armboard_defconfig
在 /arch/arm/configs中检查您的默认配置
例如make ARCH=armversatile_defconfig
这会将default
配置写入. config
2)如果您不知道您的默认配置,您可以在目标板文件系统中获取它。
它将在 /proc/config.gz复制到您的主机解压,并复制为顶部源代码中的. config
。或者它可能存在于 /boot/config.x.x.x
如果不按照上面的步骤制作ARCH=arm menuconfig,这将从 /boot/config-x.x.x复制主机x86配置文件,这将是错误的配置文件
完成上述步骤后,下一步使ARCH=arm menuconfig在此处启用您的驱动程序。
第二个错误是make ARCH=armCROSS_COMPILE=/home/z3/bin/arm-modules_install
这将在x86主机 /lib/modules安装模块。
所以跟着下面一个
make ARCH=armCROSS_COMPILE=(arm的路径)uImage模块
创建一个目录来安装您的动态可加载模块
make ARCH=armCROSS_COMPILE=arm-none-linux-gnueabi-modules_installINSTALL_MOD_PATH=
然后您需要将模块复制到您的目标。
更多细节你可以参考这个运行Qemu后只是黑屏