Browse Source

README:change the description of local compilation and cross-compilation of kernel external modules

pull/24/head
林东平 6 months ago
committed by weishanshan1084
parent
commit
ced74e14c6
  1. 26
      README.md

26
README.md

@ -392,34 +392,26 @@ U盘:
## 登录
ubuntu和debian系统包含了超级用户root,和一个普通用户user,密码和用户名相同,busybox最小系统只需要输入用户名root。
# ubuntu及debian系统支持linux-headers
linux-headers包含构建内核外部模块所需的头文件,编译ubuntu和debian的defconfig会生成linux-headers。
关于如何编译内核外部模块,可参考https://www.kernel.org/doc/html/latest/kbuild/modules.html
## 开发板上编译内核模块
buildroot将linux-headers-version安装在根文件系统的`/usr/src`目录下,
并为它创建了一个软链接`/lib/modules/version/build`。
在开发板上编译内核外部模块的命令为:
`make -C /lib/modules/5.10.153-phytium-embeded/build M=$PWD modules`
# 编译内核模块
关于如何编译内核外部模块,可参考https://www.kernel.org/doc/html/latest/kbuild/modules.html
## 交叉编译内核模块
编译ubuntu和debian的defconfig,会在`output/target/usr/src`目录中安装linux-headers-version。
注意,目前linux-headers-version默认支持在开发板上编译内核模块,如果用于交叉编译内核模块,需要在编译ubuntu和debian的defconfig之前,
将`board/phytium/common/post-build.sh`中的如下两行注释掉,再执行编译。
`cp -r board/phytium/common/linux-5.10/scripts $destdir`
`cp -r board/phytium/common/linux-4.19/scripts $destdir`
使用buildroot的工具链来交叉编译内核模块,buildroot工具链位于`output/host/bin`,工具链的sysroot为
使用工具链来交叉编译内核模块,工具链位于`output/host/bin`,工具链的sysroot为
`output/host/aarch64-buildroot-linux-gnu/sysroot`
交叉编译内核外部模块的命令为:
```
$ make ARCH=arm64 \
CROSS_COMPILE=/home/xxx/phytium-linux-buildroot/output/host/bin/aarch64-none-linux-gnu- \
-C /home/xxx/phytium-linux-buildroot/output/target/usr/src/linux-headers-5.10.153-phytium-embeded \
-C /home/xxx/phytium-linux-buildroot/output/build/linux-xxx/ \
M=$PWD \
modules
```
## 开发板上编译内核模块
利用linux-headers可以在开发板上进行内核模块编译,软链接`/lib/modules/xxx/build`指向linux-headers。
在开发板上编译内核外部模块的命令为:
`make -C /lib/modules/xxx/build M=$PWD modules`
# buildroot编译新的应用软件
本节简单介绍如何通过buildroot交叉编译能运行在开发板上的应用软件,完整的教程请参考buildroot用户手册manual.pdf。
## buildroot软件包介绍

Loading…
Cancel
Save