linux kernel编译方法

一、STM32MP157 开发板

1、内核编译

book@100ask:~/100ask_stm32mp157_pro-sdk$ cd Linux-5.4
book@100ask:~/100ask_stm32mp157_pro-sdk/Linux-5.4$ make 100ask_stm32mp157_pro_defconfig
book@100ask:~/100ask_stm32mp157_pro-sdk/Linux-5.4$ make uImage LOADADDR=0xC2000040 -j4
book@100ask:~/100ask_stm32mp157_pro-sdk/Linux-5.4$ make dtbs
book@100ask:~/100ask_stm32mp157_pro-sdk/Linux-5.4$ cp arch/arm/boot/uImage ~/nfs_rootfs
book@100ask:~/100ask_stm32mp157_pro-sdk/Linux-5.4$ cp arch/arm/boot/dts/100ask-stm32m1p157c-pro.dtb ~/nfs_rootfs

2、模块编译

进入内核源码目录后,就可以编译内核模块了:

book@100ask:~$ cd 100ask_stm32mp157_pro-sdk/Linux-5.4
book@100ask:~/100ask_stm32mp157_pro-sdk/Linux-5.4$ make modules -j4
book@100ask:~/100ask_stm32mp157_pro-sdk/Linux-5.4$ sudo make INSTALL_MOD_PATH=/home/book/nfs_rootfs modules_install

最 后 一 条 命 令 是 把 模 块 安 装 到 /home/book/nfs_rootfs 目 录 下 备 用 , 会 得 到
/home/book/nfs_rootfs/lib/modules目录。

二、IMX6ULL

1、内核编译

book@100ask:~/100ask_imx6ull-sdk$ cd Linux-4.9.88
book@100ask:~/100ask_imx6ull-sdk/Linux-4.9.88$ make mrproper
book@100ask:~/100ask_imx6ull-sdk/Linux-4.9.88$ make 100ask_imx6ull_defconfig
book@100ask:~/100ask_imx6ull-sdk/Linux-4.9.88$ make zImage -j4
book@100ask:~/100ask_imx6ull-sdk/Linux-4.9.88$ make dtbs
book@100ask:~/100ask_imx6ull-sdk/Linux-4.9.88$ cp arch/arm/boot/zImage ~/nfs_rootfs
book@100ask:~/100ask_imx6ull-sdk/Linux-4.9.88$ cp arch/arm/boot/dts/100ask_imx6ull-14x14.dtb ~/nfs_rootfs

在这里插入图片描述
在这里插入图片描述

2、模块编译

book@book-virtual-machine:~$ cd ~/100ask_imx6ull-sdk/Linux-4.9.88/
book@100ask:~/100ask_imx6ull-sdk/Linux-4.9.88$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules
book@100ask:~/100ask_imx6ull-sdk/Linux-4.9.88$ sudo make ARCH=arm INSTALL_MOD_PATH=/home/book/nfs_rootfs modules_install

最 后 一 条 命 令 是 把 模 块 安 装 到 /home/book/nfs_rootfs 目 录 下 备 用 , 会 得 到
/home/book/nfs_rootfs/lib/modules目录。

三、IMX6ULL mini d nand

1、内核编译

kernel的编译过程如下(编译内核前需要先配置好工具链等一些环境变量):

book@100ask:~/100ask_myir_mini_imx6ull-sdk$ cd Linux-4.9.88
book@100ask:~/100ask_myir_mini_imx6ull-sdk/Linux-4.9.88$ make mrproper
book@100ask:~/100ask_myir_mini_imx6ull-sdk/Linux-4.9.88$ make 100ask_myir_imx6ull_mini_defconfig
book@100ask:~/100ask_myir_mini_imx6ull-sdk/Linux-4.9.88$ make zImage -jN //N 表示根据 CPU 个数,来加速编译系统
book@100ask:~/100ask_myir_mini_imx6ull-sdk/Linux-4.9.88 $ make dtbs
book@100ask:~/100ask_myir_mini_imx6ull-sdk/Linux-4.9.88 $ cp arch/arm/boot/zImage ~/nfs_rootfs
book@100ask:~/100ask_myir_mini_imx6ull-sdk/Linux-4.9.88$ cp arch/arm/boot/dts/100ask_myir_imx6ull_mini.dtb ~/nfs_rootfs

编 译 成 功 后 , 可 以 得 到 这 些 文 件 : 内 核 文 件 arch/arm/boot/zImage , 设 备 树 文 件
arch/arm/boot/100ask_myir_imx6ull_mini.dtb。
把这2个文件复制到/home/book/nfs_rootfs目录下备用。

2、模块编译

进入内核源码目录后,就可以编译内核模块了:

book@book-virtual-machine:~$ cd  ~/100ask_myir_mini_imx6ull-sdk/Linux-4.9.88
book@100ask:~/100ask_myir_mini_imx6ull-sdk/Linux-4.9.88$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules
book@100ask:~/100ask_imx6ull-sdk/Linux-4.9.88$ sudo make ARCH=arm INSTALL_MOD_PATH=/home/book/nfs_rootfs modules_install

编译过程请参考上面IMX6ULL全功能版的截图,最后一条命令是把模块安装到/home/book/nfs_rootfs
目录下备用,会得到/home/book/nfs_rootfs/lib/modules目录。

猜你喜欢

转载自blog.csdn.net/qq_18077275/article/details/108871422