我试图在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手臂试图加载内核时,它会挂着:编辑:将入口点地址更改为80008000,因此现在挂着:
Filename '/tftpboot/uImage'.
Load address: 0x81800000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
####################################
done
传输= 3174848(3071C0 HEX)
从传统图像启动内核,位于81800000 ...
图像名称:2.6.35-ModifiedEntry
图像类型:ARM Linux内核图像(未压缩)
数据大小:3174784字节= 3 MIB
加载地址:80008000
入口点:80008000
验证校验和...好
加载内核图像...好
好
启动内核...
我是在交叉编译我的内核错误吗?它无法加载Uimage。我要做的就是将Linux Arm机器的内核与新包含的驱动程序(包括Make Menuconfig的配置中)交叉编译。我是否错过了其他步骤?
您在内核构建过程中犯了两个错误。
1)在make menuconfig
您需要有一个.config
文件应在源代码中退出。
您如何获得它
1)MAKE ARCH = ARM BOOLD_DEFCONFIG
检查您的默认配置在/Arch/Arm/Arm/Configs
例如,make Arch = ARM VELSATILE_DEFCONFIG
这将将default
配置写入.config
2)如果您不知道默认配置,则可以在目标板文件系统中获取它。
它将在/proc/config.gz中复制到主机,并在顶级源代码中复制为 .config
。或者可能存在于/boot/config.x.x.x.x
如果不遵循上面的步骤make make acr = arm menuconfig,则将从/boot/config-x.x.x复制主机x86配置文件,该文件将是错误的配置文件
完成一后,下一步使Arch = Arm Menuconfig在这里启用您的驾驶员。
第二个错误是make ARCH=arm CROSS_COMPILE=/home/z3/bin/arm- modules_install
这将在x86主机机器的/lib/模块中安装模块。
所以请在一个下面
下面 make ARCH=arm CROSS_COMPILE=(path to arm) uImage modules
创建一个目录以安装您的动态可加载模块
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- modules_install INSTALL_MOD_PATH=<path to install modules>
然后您需要将模块复制到目标。
有关更多详细信息,您可以在运行QEMU