x86 Linux设备树(DTS)加载及应用

  • Post author:
  • Post category:linux


系统设备环境:

一、下载内核源码

sudo apt install linux-source -y

下载完成后在/usr/src/目录下:

将源码压缩包解压到home目录下:

mkdir ~/workspace
cd ~/workspace
tar jxf  /usr/src/linux-source-5.4.0/linux-source-5.4.0.tar.bz2

二、配置内核

sudo apt install -y libncurses-dev flex bison libssl-dev
cd linux-source-5.4.0
cp /boot/config-$(uname -r) ./.config  #拷贝系统原本内核的配置作为基配置
make menuconfig

打开编译选项:

Device Drivers  —>

[*] Device Tree and Open Firmware support  —>

— Device Tree and Open Firmware support

[*]   Device Tree runtime unit tests

-*-   Support for dynamic device trees

[*]   Device Tree overlays



右键选中<Exit>,回车保存退出:

三、编译内核

make -j8 #参数根据自己设备实际CPU核数量而定


—————————————————————————————–

喝个小茶等编译完成


—————————————————————————————–

编译的内核文件路径

./arch/boot/bzImage

四、更新initrd

由于内核配置的改动,initrd以及ubuntu rootfs里面的内核模块要更新为上面内核编译输出的。

  • 安装initrd内核模块
sudo apt install libelf-dev elfutil -y
make modules #生成模块
make modules_install 
  • 重新生成initrd
mkinitramfs 5.4.30 -o ~/workspace/initrd.img-5.4.30 # 5.4.30是为实际编译内核的版本号

=========================================沉(bei)迷(po)于工作断片了,过去几个月了才想起这篇,有时间再更新,先发布省得忘记=========================================



版权声明:本文为wfivenx原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。