当前位置: 首页 > news >正文

【Linux】基于 Busybox 构建嵌入式 Linux(未完成)

嵌入式 Linux

1.需要 Toolchain
2.需要 Bootloader
3.需要嵌入式 Linux 基本组件:

  • Linux kernel
  • DTB
  • Root filesystem
    • Init
    • Shell
    • Daemon
    • Shared libraries
    • Configuration file
    • Device node
    • proc and sys
    • Kernel Module

基于 Busybox 构建

1.编译 Linux kernel

2.编译 Busybox

获取 Busybox,然后 make menuconfig,在选择好 build static libraries,然后 make,最后 make install。这样你就能在 busybox/_install 得到以下目录和文件:

bin linuxrc	sbin usr

3.补全系统所需目录和文件

我们在当前系统的 home 下新建临时的 rootfs 目录,用于构建新的嵌入式 Linux

$ mkdir ~/rootfs
$ cd ~/rootfs
$ mkdir bin dev etc home lib proc sbin sys tmp usr var
$ mkdir usr/bin usr/lib usr/sbin
$ mkdir -p var/log

将 busybox/_install 目录 下的文件复制到 /home/rootfs 中。
让 rootfs 目录下的文件权限重新设置

$ cd ~/rootfs
$ sudo chown -R root:root *

在 dev 下创建设备

$ cd ~/rootfs
$ sudo mknod -m 666 dev/null c 1 3
$ sudo mknod -m 600 dev/console c 5 1
$ ls -l dev
total 0
crw------- 1 root root 5, 1 Mar 22 20:01 console
crw-rw-rw- 1 root root 1, 3 Mar 22 20:01 null

挂载 sys 和 proc 的文件系统

# mount -t proc proc /proc
# mount -t sysfs sysfs /sys

创建文件 /etc/inittab,内容为

::sysinit:/etc/init.d/rcS
::askfirst:-/bin/ash

创建文件 /etc/init.d/rcS,内容为

#!/bin/sh
mount -t proc proc /proc
mount -t sysfs sysfs /sys

在 /etc/inittab 创建守护进程

::respawn:/sbin/syslogd -n

4.制作映像文件

http://www.lryc.cn/news/488715.html

相关文章:

  • Unet++改进38:添加GLSA(2024最新改进方法)具有聚合和表示全局和局部空间特征的能力,这有利于分别定位大目标和小目标
  • c++中mystring运算符重载
  • 图像处理 - 色彩空间转换
  • MariaDB面试题及参考答案
  • PostgreSQL常用字符串函数与示例说明
  • 力扣第58题:最后一个单词的长度
  • 【Maven】Nexus几个仓库的介绍
  • SSH免密登陆
  • 【Linux】Namespace
  • SQLite 和 MySQL语法区别
  • 基于BERT的命名体识别(NER)
  • 华为云鸿蒙应用入门级开发者认证考试题库(理论题和实验题)
  • SpringBoot+React养老院管理系统 附带详细运行指导视频
  • 使用element-plus el-table中使用el-image层级冲突table表格会覆盖预览的图片等问题
  • python读取Oracle库并生成API返回Json格式
  • 音视频入门基础:MPEG2-TS专题(5)——FFmpeg源码中,判断某文件是否为TS文件的实现
  • 每天10个vue面试题(九)
  • Jenkins的环境部署
  • 八、鸿蒙开发-网络请求、应用级状态管理
  • 经验笔记:Git 中的远程仓库链接及上下游关系管理
  • Paint 学习笔记
  • Jenkins修改LOGO
  • kafka是如何做到高效读写
  • Intern大模型训练营(九):XTuner 微调实践微调
  • 从一次java.io.StreamCorruptedException: invalid stream header: 48656C6C 错误中学到的调试思路
  • 树莓派的发展历史
  • K8S containerd拉取harbor镜像
  • Ubuntu 环境下通过 Apt-get 安装软件
  • vue使用List.forEach遍历集合元素
  • ROM修改进阶教程------安卓14去除修改系统应用后导致的卡logo验证步骤 适用安卓13 14 安卓15可借鉴参考