1.linux内核的功能
嵌入式系统三大组成部分: bootloader、Linux 内核、根文件系统
2.Linux 内核的功能
进程管理:进程创建、销毁 进程间通信
Linux 下每一个进程都有虚拟空间 ----- 4G 3G 用户空间 + 1G 内核空间
网络管理
设备管理: Linux 下一切皆文件
内存管理
文件系统
3.内核目录
arch 架构
arm 分 3 类目录 (公共目录、mach 开头---具体芯片、plat 开头—平台系列)
arch/arm/boot/dts --- 设备树
drivers:驱动程序
fs:支持的文件系统
4.内核裁剪
4.1内核裁剪方式:进入图形化配置界面
注意: 1、把终端铺满全屏 2、把终端字体适当缩小
①获取.config
进入图形化配置界面的指令是:make menuconfig
可能出现的问题:
[] 只有两种选择 *--静态编译(内核支持该功能) 空格(内核不支持该功能)
<>有三种选择方式 *--静态编译(内核支持该功能) 空格(内核不支持该功能) M----module(模块)
Image : 内核镜像
zImage: 压缩后的内核镜像
uImage:带引导程序的压缩内核镜像
文件大小: Image > uImage > zImage
通过方向键的上下选择红色框中的选项
通过方向键的左右选择绿色框中的选项 使用回车确定选项 选中 EXIT 退出,选择 YES 保存
②复制 Tiny4412 配置文件
cp tiny4412_linux_defconfig .config
再次进入图形化界面 make menuconfig
③取消内核安全模式
System Type --->
选中之后按下空格取消*号
④选择内核支持的文件系统
支持 EXT3 文件系统,为后续文件系统移植至 SD 卡做准备
File systems --->
⑤文件系统/dev 下设备文件显示
Device Drivers --->
Generic Driver Options --->
退出,保存
编译内核
make
内核编译完成之后存在于
Linux3.5/arch/arm/boot/zImage
5.文件系统的制作
①解压 bulidroot 工具
tar -xf buildroot-2023.02.4.tar.gz
将以下内容进行安装(需联网在线)
sudo apt-get install gitk git-gui gcc-arm-linux-gnueabihf u-boot-tools device-tree-compiler
sudo apt-get install gcc-aarch64-linux-gnu mtools parted libudev-dev autoconf m4 intltool
sudo apt-get install libdrm-dev curl sed make binutils build-essential gcc g++ bash patch gzip gawk bzip2
sudo apt-get install perl tar cpio python unzip rsync file bc wget libncurses5 libglib2.0-dev libgtk2.0-dev
sudo apt-get install libglade2-dev cvs git mercurial rsync openssh-client subversion asciidoc w3m dblatex
sudo apt-get install libc6:i386 libssl-dev expect fakeroot cmake flex bison liblz4-tool libtool keychain expect-dev
②buildroot 的配置
对于 buildroot 下的文件,真正需要的文件是编译生成之后的 output 文件夹
dl 文件夹 dl 文件夹存放是编译过程中所有以来的库 → 也是用户勾选的内容
output 下会有一个 images 文件夹下会有一个 rootfs.tar
第一步:make menuconfig
第二步:Target options --->
Target Architecture
Target Architecture Variant
最终的样子
第三步:Toolchain --->
Kernel Headers (Linux 4.19.x kernel headers) --->
[*] Enable compatibility shims to run on older kernels
最终的样子
第四步:Build options --->
libraries (both static and shared) --->
第五步:System configuration --->
/dev management --->
最终的样子
第六步:Filesystem images
第七步:Target packages
Audio and video applications --->
如果编译报错:可以只选择 madplay
第八步:退出保存
编译 buildroot
解压第三天的资料《dl.tar》至 buildroot 的根路径
1、确保上面的 sudo 下载指令已经完成
2、编译过程中要保持联网 3、在 buildroot 目录下执行 make
执行完成的现象