学习目标:
1、实现ubuntu环境linux最小内核编译
2、使用busybox制作根文件系统来启动内核
3、使用qume来实现ubuntu下模拟启动内核,不需要独占系统
2、源码安装ftp,ssh等功能到内核中
3、modbus通讯
学习内容:
1、编译linux内核源码
参考文档:
https://zhuanlan.zhihu.com/p/637938215
- 准备环境
ubuntu 22.04 - 安装编译工具和依赖项
sudo apt install libncurses5-dev openssl libssl-dev build-essential pkg-config libc6-dev bison flex libelf-dev zlibc minizip libidn11-dev libidn11 qttools5-dev liblz4-tool - 下载源码
https://www.kernel.org/
版本6.8.2 - 配置内核
我选择图形化配置:make menuconfig
不改动直接保存就相当于执行make defconfig - 编译内核
编译生成内核的二进制文件
make
明确指定了编译目标为 bzImage
sudo make bzImage
问题:
1、配置内核菜单后编译失败
解决办法:
https://blog.csdn.net/qq_44761561/article/details/107016271
删除的是内核源码文件目录下的.config,不是/usr/src/linux-headers-5.15.0-101-generic 目录下的.config,我没成功,最后直接源码删除,重新解压
linux-headers-5.15.0-101-generic 是内核头文件
linux-hwe-5.15-headers-5.15.0-101 是内核适配硬件的文件夹
busybox制作文件系统
参考文档https://blog.csdn.net/anqi8955/article/details/121607026
制作一个最小的根文件系统
#!/bin/bash
脚本在代码根目录下(busybox)执行