这里选择的 Linux内核的目录为:阿尔法Linux开发板(A盘)-基础资料-2022 / 阿尔法Linux开发板(A盘)-基础资料 / 例程源码 / 开发板教程对应的uboot和linux源码
将上面目录下的 Linux内核压缩包拷贝到 ubuntu系统下的某个目录下,并解压缩。我这里在 ubuntu下创建了目录: zhengdian_Linux/linux/kernel 来存放 Linux内核源码包。
编译 Linux内核与 编译uboot的方法基本类似,大概三步:
(1) 首先,清除工程。
(2) 其次,配置 Linux内核。这里配置可以直接设置配置文件,或者使用 Linux 内核的图形化界面进行配置(即命令 make menuconfig)。
(3) 最后,编译。
下来具体来说明编译的方法。
这里,可以直接将以上三步写入 一个shell 脚本,直接运行脚本文件即可编译内核。
注意:这里配置命令中,会用到配置文件。不同版本的开发板所使用的配置文件不同。
Linux内核的默认配置文件存放目录:arch/arm/configs
可以通过命令查看,是否存在对应的配置文件。操作如下:
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/linux/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga_alientek$ ls -l ./arch/arm/configs/
输入中有如下内容:
-rw-rw-r-- 1 wangtian wangtian 100400 12月 1 2021 imx_alientek_emmc_defconfig
-rw-rw-r-- 1 wangtian wangtian 100325 10月 19 2021 imx_alientek_emmc_defconfig.old
-rw-rw-r-- 1 wangtian wangtian 90250 12月 1 2021 imx_alientek_nand_defconfig
-rw-rw-r-- 1 wangtian wangtian 90183 9月 11 2019 imx_alientek_nand_defconfig.old
首先,解压缩 Linux内核源码包,输入如下命令:
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/linux/kernel$ tar -xvf linux-imx-rel_imx_4.1.15_2.1.0_ga_alientek.tar.bz2
其次,创建 shell 脚本文件
进入 Linux内核源码根目录下,创建一个脚本文件,这里命名为: imx6ull_alientek_nand.sh,操作如下:
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/linux/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga_alientek$ gedit imx6ull_alientek_nand.sh
其次,编写 shell 脚本文件:
这里,我这里使用的是 Nand-Flash版本的开发板,所以,我使用的 Linux内核的配置文件是 imx_alientek_nand_defconfig
编辑 shell脚本文件:
#!/bin/sh
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- imx_alientek_nand_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- all
其次,更改 shell脚本的权限,需要赋予其执行权限:
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/linux/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga_alientek$ chmod 777 imx6ull_alientek_nand.sh
最后,编译内核,即运行 shell脚本:
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/linux/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga_alientek$ ./imx6ull_alientek_nand.sh
sudo apt-get install lzop
至此,Linux内核镜像编译完成。后面可以烧录开发板进行验证 Linux镜像是否可以成功启动。