交叉编译ARM内核

环境准备

  • 安装编译器
    http://xxxxx/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu.tar.xz
    sudo dpkg -i gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu.tar.xz
  • 设置环境变量
    export PATH=$PATH:<xxxx/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin>

获取内核源码

  • 获取指定版本源代码
    git clone --recurse-submodules http://git.xxxxx/mirrors/linux.git /home/jeff.zhao/workstation/bootis-build/components/linux
    git checkout v5.14.21 -b v5.14.21

单独编译dtb

  • 拷贝linux/arch/arm64/boot/dts/freescale/Makefile文件添加dts的编译
    例如:fsl-lx2162a-u26z.dtb

  • 编译dtbs

    make ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu- -j4 dtbs

单独编译内核

  • 清理项目工程
    make ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu- distclean
  • 配置.config文件
    cp -f /xxx/lx2162au26z_defconfig /xxx/linux/
    make ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu- -j4 oldconfig

    这里使用的是NXP的config文件,这里根据不同的设备使用不同的配置文件

  • 编译内核
    make ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu- -j4 Image.gz

去除vmlinux调试信息

strip掉debug信息,需要保留vmlinux用于之后的debug

cp vmlinux vmlinux.debuginfo
eu-strip --remove-comment -o vmlinux.strip vmlinux

查看是否是同一次编译可以用如下命令

eu-readelf -n vmlinux | grep "Build ID" | awk '{print $NF}'

例如:

xxxxx:~/workstation/bootis-build/build/linux/output$ eu-readelf -n vmlinux | grep "Build ID" | awk '{print $NF}'
b50f251a2f12916f576ed76e15b8fe09ef0a6f34
xxxxx:~/workstation/bootis-build/build/linux/output$ eu-readelf -n vmlinux.strip | grep "Build ID" | awk '{print $NF}'
b50f251a2f12916f576ed76e15b8fe09ef0a6f34

这里就说明build_id是一致的,在我们使用crash工具的时候就不会报mis match的报错

小结

上面是详细分解了一下编译内核的步骤,其实我们可以一键编译并生成dep包或者rpm包

make ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu- -j4 Image.gz dtbs
make ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu- -j4 bindeb-pkg

会编译出deb的bin包

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇