【Linux 系统】文件系统--- Buildroot 从零开始制作文件系统 史
deanyuancn
发布于 2022-2-22 11:50
浏览
3收藏
一、基本信息
二、需要的软件
三、使用 buildroot 制作根文件系统
1、拷贝 buildroot-2020.02.4.tar.bz2
cp /media/sf_share/6q/buildroot-2020.02.4.tar.bz2 .
tar xvf buildroot-2020.02.4.tar.bz2
cd buildroot-2020.02.4
四、选择配置并生成 .config文件
1、选择配置文件
freescale_imx6qsabresd_defconfig
2、生成 .config 文件
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- freescale_imx6qsabresd_defconfig
五、menuconfig 文件系统配置
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
打开图形化配置界面
选项说明:
Target options ---> 目标选项--->
Build options ---> 生成选项--->
Toolchain ---> 工具链--->
System configuration ---> 系统配置--->
Kernel ---> 内核--->
Target packages ---> 目标包--->
Filesystem images ---> 文件系统映像--->
Bootloaders ---> 引导加载程序--->
Host utilities ---> 主机实用程序--->
Legacy config options ---> 旧版配置选项--->
1、Target options —> 配置说明
Target Architecture (ARM (little endian)) ---> 目标体系结构(ARM(little endian))--->
Target Binary Format (ELF) ---> 目标二进制格式(ELF)-->
Target Architecture Variant (cortex-A9) ---> 目标体系结构变体(cortex-A9)-->
Enable NEON SIMD extension support 启用NEON SIMD扩展支持
Enable VFP extension support 启用VFP扩展支持
Target ABI (EABIhf) ---> 目标ABI(EABIhf)-->
Floating point strategy (VFPv3) ---> 浮点策略(VFPv3)-->
ARM instruction set (ARM) ---> ARM指令集(ARM)-->
2、Build options —> 配置说明
Commands --->
(/home/qwx/rootfs/buildroot-2020.05/configs/freescale_imx6qsabresd_defconfig) Location to save buildroot config
($(TOPDIR)/dl) Download dir 下载目录
($(BASE_DIR)/host) Host dir 主机目录
Mirrors and Download locations ---> 镜像和下载位置--->
(0) Number of jobs to run simultaneously (0 for auto) 要同时运行的作业数(0表示自动)
[ ] Enable compiler cache 启用编译器缓存
[ ] build packages with debugging symbols 使用调试符号生成包
[*] strip target binaries 剥离目标二进制文件
()executables that should not be stripped 不应剥离的可执行文件
()directories that should be skipped when stripping 剥离时应跳过的目录
gcc optimization level (optimize for size) ---> gcc优化级别(优化大小)-->
libraries (shared only) ---> 库(仅限共享)-->
($(CONFIG_DIR)/local.mk) location of a package override file (配置目录)/本地.mk)包重写文件的位置
(board/freescale/imx6sabre/patches) global patch directories 全局修补程序目录
Advanced ---> 高级--->
*** Security Hardening Options *** ***安全强化选项***
[ ] Build code with PIC/PIE 使用PIC/PIE构建代码
*** Stack Smashing Protection needs a toolchain w/ SSP *** ***堆栈粉碎保护需要一个工具链w/SSP***
RELRO Protection (None) ---> RELRO保护(无)-->
*** Fortify Source needs a glibc toolchain and optimization *** ***强化源代码需要glibc工具链和优化***
3、Toolchain —> 配置说明
Toolchain type (Buildroot toolchain) ---> 工具链类型(Buildroot Toolchain)-->
*** Toolchain Buildroot Options *** ***工具链构建根选项***
(buildroot) custom toolchain vendor name 自定义工具链供应商名称
C library (uClibc-ng) ---> C库(uClibc ng)-->
*** Kernel Header Options *** ***内核头选项***
Kernel Headers (Same as kernel being built) ---> 内核头(与正在构建的内核相同)--->
Custom kernel headers series (4.19.x) ---> 自定义内核头系列(4.19.x)--->
*** uClibc Options *** ***uClibc选项***
(package/uclibc/uClibc-ng.config) uClibc configuration file to use? 要使用的uClibc配置文件?
() Additional uClibc configuration fragment files 其他uClibc配置片段文件
[ ] Enable WCHAR support 启用WCHAR支持
[ ] Enable toolchain locale/i18n support 启用工具链区域设置/i18n支持
Thread library implementation (Native POSIX Threading (NPTL)) ---> 线程库实现(本机POSIX线程(NPTL))--->
[ ] Thread library debugging 线程库调试
[ ] Enable stack protection support 启用堆栈保护支持
[*] Compile and install uClibc utilities 编译并安装uClibc实用程序
*** Binutils Options *** ***Binutils选项***
Binutils Version (binutils 2.32) ---> Binutils版本(Binutils 2.32)-->
() Additional binutils options 其他binutils选项
*** GCC Options *** ***GCC选项***
GCC compiler Version (gcc 8.x) ---> GCC编译器版本(GCC 8.x)--->
() Additional gcc options 其他gcc选项
[ ] Enable C++ support 启用C++支持
[ ] Enable Fortran support 启用Fortran支持
[ ] Enable compiler link-time-optimization support 启用编译器链接时间优化支持
[ ] Enable compiler OpenMP support 启用编译器OpenMP支持
[ ] Enable graphite support 启用graphite支持
*** Host GDB Options *** ***主机GDB选项***
[ ] Build cross gdb for the host 为主机构建交叉gdb
*** Toolchain Generic Options *** ***工具链通用选项***
() Extra toolchain libraries to be copied to target 要复制到目标的额外工具链库
[*] Enable MMU support 启用MMU支持
() Target Optimizations 目标优化
() Target linker options 目标链接器选项
[ ] Register toolchain within Eclipse Buildroot plug-in 在Eclipse Buildroot插件中注册工具链
①、Toolchain type () —>
②、Toolchain () —>
③、Toolchain origin () —>
⑤、($(ARCH)-linux) Toolchain prefix ()
arm-linux-gnueabihf-
$(ARCH)-linux-gnueabihf
配置交叉编译工具链前缀之后
⑥、External toolchain gcc version () —>
arm-linux-gnueabihf-gcc -v
选择外部交叉编译工具链版本
选择4.9.X
find / -name version.h
vim ./usr/lib/gcc/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/arm-linux-gnueabihf/libc/usr/include/linux/version.h
将 196865 转换为16进制是30101,对于10进制来说就是3.1.1
在这里我们选择3.1.X
⑧、External toolchain C library () —>
⑨、工具链支持C++ 选项
选上 Toolchain has C++ support?
⑩、Toolchain 最终配置
4、System configuration —> 配置说明
Root FS skeleton (default target skeleton) ---> 根FS骨架(默认目标骨架)-->
(buildroot) System hostname (buildroot)系统主机名
(Welcome to Buildroot) System banner 欢迎使用Buildroot)系统提示语
Passwords encoding (sha-256) ---> 密码编码(sha-256)-->
Init system (BusyBox) ---> 初始化系统(BusyBox)-->
/dev management (Dynamic using devtmpfs only) ---> /开发人员管理(仅动态使用devtmpfs)--->
(system/device_table.txt) Path to the permission tables 系统/设备_表格.txt)权限表的路径
[ ] support extended attributes in device tables []支持设备表中的扩展属性
[ ] Use symlinks to /usr for /bin, /sbin and /lib 对/bin、/sbin和/lib使用指向/usr的符号链接
[*] Enable root login with password 允许终端登陆使用密码
() Root password 进入linux控制台终端后的密码,为空则登录时不需要密码,默认登录用户名为root
/bin/sh (busybox' default shell) ---> /bin/sh(busybox的默认shell)--->
[*] Run a getty (login prompt) after boot ---> [*]启动后运行getty(登录提示)-->
[*] remount root filesystem read-write during boot [*]在引导期间重新装载根文件系统读写
() Network interface to configure through DHCP 要通过DHCP配置的网络接口
(/bin:/sbin:/usr/bin:/usr/sbin) Set the system's default PATH /bin:/sbin:/usr/bin:/usr/sbin)设置系统的默认路径
[*] Purge unwanted locales 清除不需要的区域设置
(C en_US) Locales to keep 要保留的区域设置
*** NLS support needs a toolchain w/ wchar, dynamic library *** ***NLS支持需要一个工具链w/wchar,动态库***
[ ] Install timezone info 安装时区信息
() Path to the users tables 表()的路径
() Root filesystem overlay directories 根文件系统覆盖目录
() Custom scripts to run before creating filesystem images 在创建文件系统映像之前要运行的自定义脚本
() Custom scripts to run inside the fakeroot environment 在fakeroot环境中运行的自定义脚本
(board/freescale/common/imx/post-image.sh) Custom scripts to run after creating filesystem images 创建自定义映像后运行的文件系统脚本
() Extra arguments passed to custom scripts 传递给自定义脚本的额外参数
①、修改系统主机名
②、修改登录提示语
③、修改设备(U盘)挂载方式
1、Static using device table (静态分配,rootfs中有就有,没有的话,启动后也不会动态创建)
2、Dynamic using devtmpfs only (启动过程中动态创建,启动后不会自动创建设备节点)
3、Dynamic using devtmpfs + mdev(启动过程中动态创建,启动后使用mdev管理设备节点)
4、Dynamic using devtmpfs + eudev (启动过程中动态创建,启动后使用eudev管理设备节点)
④、修改登录密码
⑤、修改系统登录串口号
⑥、System configuration最终配置
5、Kernel —> 配置说明
6、Target packages —> 配置说明
-*- BusyBox
(package/busybox/busybox.config) BusyBox configuration file to use? 要使用的BusyBox配置文件?
() Additional BusyBox configuration fragment files 其他BusyBox配置片段文件
[ ] Show packages that are also provided by busybox 显示busybox也提供的包
[ ] Individual binaries 单个二进制文件
[ ] Install the watchdog daemon startup script 安装看门狗守护程序启动脚本
Audio and video applications ---> 音频和视频应用程序--->
Compressors and decompressors ---> 压缩机和减压器--->
Debugging, profiling and benchmark ---> 调试、分析和基准--->
Development tools ---> 开发工具--->
Filesystem and flash utilities ---> 文件系统和闪存实用程序--->
Fonts, cursors, icons, sounds and themes ---> 字体、光标、图标、声音和主题--->
Games ---> 游戏--->
Graphic libraries and applications (graphic/text) ---> 图形库和应用程序(图形/文本)-->
Hardware handling ---> 硬件处理--->
Interpreter languages and scripting ---> 解释器语言和脚本--->
Libraries ---> 图书馆--->
Mail ---> 邮件--->
Miscellaneous ---> 其他--->
Networking applications ---> 网络应用程序--->
Package managers ---> 包管理器--->
Real-Time ---> 实时--->
Security ---> 安全性--->
Shell and utilities ---> Shell和实用程序--->
System tools ---> 系统工具--->
Text editors and viewers ---> 文本编辑器和查看器--->
7、Filesystem images —> 配置说明
8、Bootloaders —> 配置说明
9、Host utilities —> 配置说明
10、Legacy config options —> 配置说明
六、确认并且保存配置
七、编译源码和下载相关文件
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
八、格式转换
cd output/images/
sudo mkdir rootfs
sudo tar xvf rootfs.tar -C rootfs/
cd rootfs
sudo tar jcvf avdisplay-image-imx6q.tar.bz2 *
九、登录验证系统
分类
已于2022-2-22 11:50:18修改
赞
2
收藏 3
回复
回复
相关推荐