Linux内核编译流程的几种方式

方法一:

1. 运行 build.sh 脚本, 记得加 sudo 权限

gyj@gyj-virtual-machine:~/orangepi-build$ sudo ./build.sh

2. 选择 Kernel package, 然后回车

3. 然后会提示是否需要显示内核配置界面, 如果不需要修改内核配置, 则选择第一个即可, 如果需要修改内核配置, 则选择第二个

4. 接着选择开发板的型号

5. 查看编译生成的内核相关的 deb 包

gyj@gyj-virtual-machine:~/orangepi-build$ ls output/debs/linux-*
output/debs/linux-dtb-next-sun50iw9_3.1.0_arm64.deb
output/debs/linux-image-next-sun50iw9_3.1.0_arm64.deb
output/debs/linux-headers-next-sun50iw9_3.1.0_arm64.deb
6. 重复编译 kernel 时, 使用下面的命令无需通过图形界面选择, 可以直接开始编译kernel

sudo ./build.sh BOARD=orangepizero2 BRANCH=next BUILD_OPT=kernel
KERNEL_CONFIGURE=no

7. 如果对内核做了修改, 可以使用下面的方法来更新开发板 linux 系统的内核和内核模块

scp linux-image-next-sun50iw9_3.1.0_arm64.deb test@192.168.0.113:/home/orangepi/

sudo apt purge -y linux-image-next-sun50iw9

sudo dpkg -i linux-image-next-sun50iw9_3.1.0_arm64.deb

sudo reboot -f

方法二: 

1. 清理旧配置文件及生成的文件

sudo apt-get install ccache #安装ccahe,用于编译加速
export PATH=$PATH:/home/$(whoami)/orangepi-build/toolchains/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/bin #导入交叉编译环境
make ARCH=arm64 distclean
2. 配置内核, 更新内核依赖属性和新属性, 生成.config

cp ../../external/config/kernel/linux-5.16-sun50iw9-current.config .config #拷贝
默认配置
make ARCH=arm64 CROSS_COMPILE=”aarch64-none-linux-gnu-” olddefconfig
3. 编译内核

make -j6 ARCH=arm64 ‘CROSS_COMPILE=ccache aarch64-none-linux-gnu-‘
LOCALVERSION=-sun50iw9 Image modules dtbs

4. 接下来运行

make modules_install INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=$PWD/_install
ARCH=arm64 ‘CROSS_COMPILE=ccache aarch64-none-linux-gnu-‘ #安装驱动

make install INSTALL_PATH=$PWD/_install/boot #安装内核
5.如果对内核做了修改, 可以使用下面的方法来更新开发板 linux 系统的内核和内核模块

scp linux-image-next-sun50iw9_3.1.0_arm64.deb test@192.168.0.113:/home/orangepi/

sudo apt purge -y linux-image-next-sun50iw9

sudo dpkg -i linux-image-next-sun50iw9_3.1.0_arm64.deb

sudo reboot -f

欢迎使用66资源网
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
7. 本站有不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别!

66源码网 » Linux内核编译流程的几种方式

提供最优质的资源集合

立即查看 了解详情