编译内核操作

https://blog.csdn.net/assiduous_me/article/details/120938556

安装Busybox操作

https://blog.csdn.net/assiduous_me/article/details/120939319

syz@DESKTOP-B10G93S:~$ ls -l
total 20
drwxr-xr-x 44 syz syz 4096 Oct 26 22:05 busybox
drwxr-xr-x 31 syz syz 4096 Oct 25 23:22 linux
drwxr-xr-x  3 syz syz 4096 Oct 26 22:10 make_rootfs
drwxr-xr-x 10 syz syz 4096 Oct 26 22:08 make_utils
drwxr-xr-x  2 syz syz 4096 Oct 26 22:10 qemu

busybox:busybox源代码
linux:linux内核源代码
make_rootfs:制作文件系统的目录
make_utils:制作文件系统使用的工具目录
qemu:放置启动脚本目录

2.1 拷贝、创建文件夹

cd make_utilssudo cp -r busybox/_install/* .mkdir -p sys mnt sys etc/init.d dev

2.2 新增对应文件、并赋予权限

sudo vim etc/fstabproc    /proc   proc    defaults        0       0
tmpfs   /tmp    tmpfs   defaults        0       0
sysfs   /sys    sysfs   defaults        0       0sudo chmod 755 etc/fstabsudo vim etc/init.d/rcS/bin/mount -a
mount -o remount, rw /
mkdir -p /dev/pts
mount -t devpts devpts /dev/pts
mdev -ssudo chmod 755 etc/init.d/rcSsudo vim etc/inittab::sysinit:/etc/init.d/rcS
::respawn:-/bin/sh
::askfirst:-/bin/sh
::ctrlaltdel:/bin/umount -a -rsudo chmod 755 etc/inittab

2.3 创建对应设备文件

cd devsudo mknod console c 5 1
sudo mknod null c 1 3
sudo mknod tty1 c 4 1
sudo mknod ttyS0 c 4 64

3.1 编写制作文件系统脚本 generate_rootfs.sh

sudo vim generate_rootfs.sh
rm -rf rootfs.ext3
rm -rf fs
dd if=/dev/zero of=./rootfs.ext3 bs=1M count=32
mkfs.ext3 rootfs.ext3
mkdir fs
mount -o loop rootfs.ext3 ./fs
cp -rf ../make_utils/* ./fs
umount ./fs
gzip --best -c rootfs.ext3 > rootfs.img.gz

3.2 执行generate_rootfs.sh,生成对应rootfs.img.gz文件

sudo sh generate_rootfs.sh
syz@DESKTOP-B10G93S:~/make_rootfs$ ls -l
total 8432
drwxr-xr-x 2 root root     4096 Oct 26 22:10 fs
-rw-r--r-- 1 syz  syz       234 Oct 26 22:09 generate_rootfs.sh
-rw-r--r-- 1 root root 33554432 Oct 26 22:10 rootfs.ext3
-rw-r--r-- 1 root root  1493586 Oct 26 22:10 rootfs.img.gz

4.1 安装x86的qemu工具

sudo apt-get install qemu-system-x86

4.2 编写qemu启动脚本

sudo vim start_x86_kernel.sh
sudo qemu-system-x86_64 \-smp 2 \-m 1024M \-kernel ../linux/arch/x86/boot/bzImage \-nographic \-append "root=/dev/ram0 console=ttyS0 init=/linuxrc" \-initrd ../make_rootfs/rootfs.img.gz
sudo sh start_x86_kernel.sh
[    3.042848] ext3 filesystem being remounted at / supports timestamps until 2038 (0x7fffffff)
[    3.054420] mkdir (81) used greatest stack depth: 14360 bytes left
[    3.230501] sh (78) used greatest stack depth: 13976 bytes leftPlease press Enter to activate this console.
/
/
total 40
drwxr-xr-x    2 0        0             4096 Oct 26 14:10 bin
drwxr-xr-x    8 0        0             2620 Oct 26 14:41 dev
drwxr-xr-x    3 0        0             4096 Oct 26 14:10 etc
drwxr-xr-x    2 0        0             4096 Oct 26 14:10 fs
lrwxrwxrwx    1 0        0               11 Oct 26 14:10 linuxrc -> bin/busybox
drwx------    2 0        0            16384 Oct 26 14:10 lost+found
drwxr-xr-x    2 0        0             4096 Oct 26 14:10 mnt
drwxr-xr-x    2 0        0             4096 Oct 26 14:10 sbin
dr-xr-xr-x   12 0        0                0 Oct 26 14:41 sys
drwxr-xr-x    4 0        0             4096 Oct 26 14:10 usr
/

本篇配置文档并没有特别完善,后续慢慢填充!

转自:

https://blog.csdn.net/assiduous_me/article/details/120982546


推荐阅读:

专辑|Linux文章汇总

专辑|程序人生

专辑|C语言

我的知识小密圈

关注公众号,后台回复「1024」获取学习资料网盘链接。

欢迎点赞,关注,转发,在看,您的每一次鼓励,我都将铭记于心~

嵌入式Linux

微信扫描二维码,关注我的公众号

Busybox 制作文件系统并用 Qemu 启动编译的内核镜像相关推荐

  1. QEMU启动ARM32 Linux内核

    目录 前言 前置知识 ARM Versatile Express开发板简介 ARM处理器家族简介 安装qemu-system-arm 安装交叉编译工具 交叉编译ARM32 Linux内核 交叉编译AR ...

  2. QEMU启动ARM64 Linux内核

    目录 前言 前置知识 virt开发板 ARM处理器家族简介 安装qemu-system-aarch64 安装交叉编译工具 交叉编译ARM64 Linux内核 交叉编译ARM64 Busybox 使用b ...

  3. 用busybox制作文件系统

    busybox1.25.1 arm-linux-gcc -v 3.4.5 先执行 #make menuconfig Location:   -> Busybox Settings       - ...

  4. 【转】如何编译一个内核 - Ubuntu方式

    如何编译一个内核 - Ubuntu方式 2011-09-19 15:40 转载地址:http://hi.baidu.com/1101050240/blog/item/69e3d0d92f2b297dd ...

  5. linux启动过程中内核拷贝,轻松识破linux内核启动过程中的“”套路“”

    内核启动流程相关的内容让很多热爱linux的小伙伴既爱又恨,因为这是了解linux系统基本构造的良好过程同时由于其本身复杂且底层,脑子中的脉络不是很清晰,本文就总结了一些优秀博文,以自己的理解来解构一 ...

  6. 09 编译2022年最新的Linux kernel、U-Boot和BusyBox rootfs源码,并用QEMU模拟器运行

    编译2022年最新的Linux kernel.U-Boot和BusyBox rootfs源码,并用QEMU模拟器运行 作者 将狼才鲸 创建日期 2022-11-26 Gitee源码和工程地址:才鲸嵌入 ...

  7. 12 编译2022年最新的BusyBox rootfs 1.35.0源码,并用QEMU模拟器运行

    编译2022年最新的BusyBox rootfs 1.35.0源码,并用QEMU模拟器运行 作者 将狼才鲸 创建日期 2022-11-26 Gitee源码和工程地址:才鲸嵌入式 / 嵌入式QEMU教程 ...

  8. 迅为RK3568开发板Busybox制作最小文件系统编译busybox

    保存退出之后,我们需要设置临时环境变量如下图所示: export PATH=/usr/local/arm64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux ...

  9. Linux拉取代码启动镜像,基于Linux源代码及Busybox源代码制作精简可启动内核镜像技术实验方法...

    基于Linux源代码及Busybox源代码制作精简可启动内核镜像技术实验方法总结 熊海泉 内核源代码 下载地址 这里下载的是linux-2.6.38.tar.bz源代码 下载地址 这里下载的是busy ...

最新文章

  1. Mysql增强半同步模式_MySQL增强半同步参数rpl_semi_sync_master_wait_point值AFTER_SYNC和AFTER_COMMIT...
  2. 简单的成绩录入系统程序及分析以及思考
  3. ooalv自定义按钮、单击、双击、列编辑切换的事件用法
  4. 首届Elastic社区技术大会隆重开幕!腾讯分享2场中文演讲
  5. ABAP Netweaver上调用Java程序
  6. 计算机应用基础学生自查报告,计算机应用基础(专科).docx
  7. 分布式开发必须了解的Zookeeper的Leader选举机制(源码解析)
  8. php 重定向 post,使用php curl getpost方法向页面文件发送重定向指令
  9. String的replaceAll方法中的正则表达式用法
  10. python input nameerror_用python写的,运行时出现NameError: name 'raw_input' is not defined 这是什么原因?求解...
  11. 开发一个Java项目的完整流程(附2600套Java项目源码+视频)
  12. win10无法直接用照片查看器打开图片怎么办
  13. 电视盒子内存测试软件,电视盒子内存太小怎么办?当贝市场一招扩充内存
  14. 台式计算机键盘快捷键怎么设置,电脑快捷键设置修改 电脑键盘快捷键怎么更改...
  15. 『原创』老范的来电防火墙v1.0发布了(图文)
  16. heartbeat如何监控程序_Nagios监控Heartbeat
  17. 根据公众号得到公众号二维码
  18. OpenCV-Python:图像的几何变换(平移、旋转、仿射变换等)
  19. 案例-canvas绘制雨滴
  20. Unity碰撞检测/触发器触发问题

热门文章

  1. 10个实用的Linux终端命令分享
  2. 在线普通法测试软件,大话西游2:普通法宝宝伤害实测!1000灵的铁扇能秒多少...
  3. 网站搭建后显示不是私密链接,该怎么办?
  4. 无人驾驶的劳斯莱斯轿车_劳斯莱斯什么时候推出无人驾驶汽车?遥远的未来
  5. linux dts 语法格式,设备树DTS格式解析
  6. RuntimeError: Unable to find a valid cuDNN algorithm to run convolution
  7. RFID标签可以分为低频(LF)、高频(HF)、超高频(UHF)
  8. sql server服务器怎么配置文件,配置 SSAS 以生成内存转储文件 - SQL Server | Microsoft Docs...
  9. 批量查询京东快递物流并分析退回件的最新方法
  10. python3.6中round函数_Python中round函数使用注意事项