我将为 Ubuntu 16.06 和内核 4.1.15_2.0.0_ga 构建一个内核。
我有一块来自 Technexion 公司的基于 iMX6-dl 的板。他们提供了对其内核、配置和设备树文件的访问权限。
我使用这些步骤来构建内核并向内核添加新模块(驱动程序),例如用于 Atheros PCIe WiFi 卡的 ath9k。
git clone https://github.com/TechNexion/linux.git && cd linux
export KERNEL_SRC=$PWD
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
git checkout tn-imx_4.1.15_2.0.0_ga
make tn_imx_defconfig
make menuconfig
add the drivers I need to the config file
make -j4 zImage modules imx6dl-edm1-cf-pmic_fairy.dtb
在这些步骤之后,内核构建完成,没有任何错误。在日志中,我看到我在 menuconfig 编译中选择的所有模块都没有任何错误,并且我可以看到 *.o 文件。
我还看到在 menucconfig 设置中选择为“M”的驱动程序的 *.ko 文件。
构建完成后,我使用这两个命令行将新内核添加到已经使用公司提供的具有相同内核和版本的 Ubuntu 的映像的 SD 卡中。
cp arch/arm/boot/zImage arch/arm/boot/dts/imx6dl-edm1-cf-pmic_fairy.dtb /media/user/74C5-8858/
make ARCH=arm modules_install INSTALL_MOD_PATH=/media/user/c8843fd8-cc57-4557-93a9-5fa0e596fa72/
当我使用 make module_install 时,它只是将 *.ko 驱动程序复制到 SD 卡。
我不知道如何将 menuconfig 中标有“*”的其他驱动程序添加到 SD 卡,例如“ath9k.o”。
我是这些软件的新手。
有什么帮助吗?我错过了什么吗?