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

编译内核操作

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」获取学习资料网盘链接。

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

fe5b0c7ca8719ff6bc84c594af2f25d3.png

嵌入式Linux

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/465142.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入浅出Win32多线程程序设计之线程通信

简介  线程之间通信的两个基本问题是互斥和同步。  线程同步是指线程之间所具有的一种制约关系,一个线程的执行依赖另一个线程的消息,当它没有得到另一个线程的消息时应等待,直到消息到达时才被唤醒。  线程互斥是指对于共享的操作系统…

Kafka Producer源码简述

接着上文kafka的简述,这一章我们一探kafka生产者是如何发送消息到消息服务器的。 代码的入口还是从 kafkaTemplate.send开始 最终我们就会到 org.springframework.kafka.core.KafkaTemplate#doSend方法 这里的关键就是 org.apache.kafka.clients.producer.Producer#…

原来搞单片机也可以面向对象

摘要:在看别人单片机程序时,你也许是奔溃的,因为全局变量满天飞,不知道哪个在哪用了,哪个表示什么,而且编写极其不规范。自己写单片机程序时,也许你也是奔溃的。总感觉重新开启一个项目&#xf…

雅虎年底升级IPv6标准 100万用户恐受影响

雅虎年底升级IPv6标准 100万用户恐受影响 http://network.51cto.com 2011-01-20 17:34 佚名 cnBeta 我要评论(0) 据国外媒体报道,雅虎计划今年年底将主站点Yahoo.com升级为IPv6标准,此举可能会使约100万用户在初期无法访问雅虎站点。据国外媒体报道&…

Linux v4l2框架分析

背景说明:Kernel版本:4.14ARM64处理器,Contex-A53,双核使用工具:Source Insight 3.5, Visio1. 概述V4L2(Video for Linux 2):Linux内核中关于视频设备驱动的框架,对上向应用层提供统…

JAVA自学笔记23

JAVA自学笔记23 1、多线程 1)引入: 2)进程 是正在运行的程序。是系统进行资源分配和调用的独立单位。每一个进程都有它自己的内存空间和系统资源。 多进程: 单进程的计算机只能做一件事情,而现在的计算机都可以做…

上午写了一段代码,下午就被开除了~

俗话说得好,“代码写的少,离职少不了”。最近畅游互联网,发现一些离职小技巧,读后,内心被深深地打动了……但是,细细品过之后,发现对我们程序员不太适用了。例如:领导夹菜你转桌&…

nginx加载html目录下图片,nginx配置访问图片路径以及html静态页面的调取方法

nginx配置访问图片路径以及html静态页面的调取方法发布时间:2017-03-09 12:06来源:互联网当前栏目:web技术类给大家讲一个快速配置nginx访问图片地址,以及访问html静态页面的配置。1.实验环境首先随便某个路径下创建相应的目录。如…

微信小程序继续入坑指南

微信小程序继续入坑指南 wxml 类似于html 感觉和ejs灰常的相似 数据绑定 js Page({data: {message: "hello world"} })wxml <view>{{message}}</view> 使用的是https://mustache.github.io/模板引擎系统 对组件的属性和控制属性的更改 <view id"…

思科收购网络安全管理厂商Pari Networks

思科收购网络安全管理厂商Pari Networkshttp://netsecurity.51cto.com 2011-01-28 09:39 胡杨 译 网界网 我要评论(0)摘要&#xff1a;思科本星期宣布&#xff0c;它打算收购私营企业Pari Networks。这个企业是前思科工程师创建的&#xff0c;主要提供网络配置、变更和合规…

20年软件工程师的经验

软件工程师在做设计的时候&#xff0c;一定要有设计的思维&#xff0c;码农如果只是砌砖的&#xff0c;那么他的可替代性和技能能力并不高。前段时间看到一个设计师傅&#xff0c;在很狭小的空间内设计了非常非常不错的室内设计&#xff0c;利用了每一个可以利用的地方。如果我…

html超市代码,前端 CSS : 5# 纯 CSS 实现24小时超市

介绍原文链接感謝 comehope 大佬的 [前端每日实战]效果预览源代码地址代码解读1. html 结构命名规则使用了 BEM常规样式初始化* {margin: 0;padding: 0;box-sizing: border-box;}body {height: 100vh;overflow: hidden;}2. 街道背景街道背景分为两部分深蓝色的天空.street {hei…

送30块树莓派PICO 开发板!

大家好&#xff0c;今天是周日&#xff0c;给大家搞个小抽奖&#xff0c;送30块。嵌入式猛男必备&#xff0c;学嵌入式看『我要学嵌入式』&#xff0c;知识持久有力。点击关注&#xff0c;回复【1031】参与抽奖&#xff0c;免费送 10块 树莓派最新PICO开发板。学C语言看『写代码…

嘉立创又搞大事情了,与你我相关!

你们一定不知道嘉立创最近又悄咪咪的做了一件大事儿&#xff0c;硬创社硬件项目共享平台上线公测啦&#xff0c;这是一个帮助电子工程师实现技术变现的平台&#xff0c;平台刚刚上线公测&#xff0c;前期还在邀请电子工程师填充内容阶段&#xff0c;即日起平台每上传一个项目就…

c html联调,JS与native 交互简单应用

JS与native 交互简单应用一、objectiveC 语法简介二、简易项目浏览器搭建新建项目步骤&#xff1a;1>DraggedImage.png2>2222.png3>33333.png4>4444.png建立一个小的浏览器即webview关键代码如下&#xff1a;// context 上下文也可以在此处获取&#xff0c;开始加载…

写给我弟

我堂弟今年24岁&#xff0c;也是我最小的一个堂弟&#xff0c;我想给他说点事&#xff0c;想告诉他一些东西&#xff0c;但是也担心自己所说的&#xff0c;并不能让他认同和接受。我心里一定是有我弟的&#xff0c;也是装着我弟的&#xff0c;所以我弟的事情&#xff0c;我自己…

Chrome插件(扩展)

【干货】Chrome插件(扩展)开发全攻略 写在前面 我花了将近一个多月的时间断断续续写下这篇博文&#xff0c;并精心写下完整demo&#xff0c;写博客的辛苦大家懂的&#xff0c;所以转载务必保留出处。本文所有涉及到的大部分代码均在这个demo里面&#xff1a;https://github.com…

Apache OpenJPA 2.1.0 发布

OpenJPA 是 Apache 组织提供的开源项目&#xff0c;它实现了 EJB 3.0 中的 JPA 标准&#xff0c;为开发者提供功能强大、使用简单的持久化数据管理框架。OpenJPA 封装了和关系型数据库交互的操作&#xff0c;让开发者把注意力集中在编写业务逻辑上。OpenJPA 可以作为独立的持久…

手把手带你写一个中断输入设备驱动

今天群里有人问&#xff0c;要开始驱动开发的话从什么开始比较好。我说&#xff0c;应该开始去摸索触摸屏驱动&#xff0c;现在我想了下&#xff0c;触摸屏驱动可能会难了些&#xff0c;但是从一个GPIO开始&#xff0c;我觉得一定是一件很容易的事情。所以这篇文章就来了。大家…

驱动调试神器printk你掌握了吗?

[导读] 刚刚开始做Linux相关开发工作时&#xff0c;深感Linux内核代码庞大&#xff0c;要加些自己的驱动进内核代码树&#xff0c;常常深陷bug的泥沼难以自拔&#xff0c;今天来分享一下内核调试利器printk的使用心得。前面一段时间很忙&#xff0c;后期更文频率会渐渐回归正常…