系统构建--从sdcard中加载根文件系统

本文介绍的是使用分区block设备作为根文件系统的加载方法,使用QEMU来模拟硬件来进行讲解。
github仓库:https://github.com/rikeyone/qemu-linux-system.git

制作嵌入式Linux系统的rootfs

cd rootfs/
sudo dd if=/dev/zero of=rootfs.ext3 bs=1M count=50
sudo mkfs.ext3 rootfs.ext3
sudo mount -t ext3 rootfs.ext3 /mnt -o loop
sudo cp _install/* /mnt -fra
sudo umount /mnt
sudo chmod 666 rootfs.ext3

最后会生成一个名字为rootfs.ext3的文件,这个就是我们想要的一个rootfs,文件系统格式为ext3,可以使用qemu进行测试。

qemu加载

qemu-system-arm -M vexpress-a9 \
    -smp 4 \
    -m 1024m \
    -kernel linux-4.0/arch/arm/boot/zImage \
    -append "root=/dev/mmcblk0 rw console=ttyAMA0 loglevel=8" \
    -dtb linux-4.0/arch/arm/boot/dts/vexpress-v2p-ca9.dtb \
    -sd rootfs/rootfs.ext3 \
    -nographic

关键是传入“root=/dev/mmcblk0 rw”的cmdline,以及对应的qemu选项“-sd rootfs/rootfs.ext3”。

u-boot加载

如果我们在实际硬件上使用,并且使用uboot作为bootloader,我们只需要有对应的emmc外设即可,并且在外设提前烧录rootfs中的内容即可。传递的cmdline还和上面qemu测试时一致:

root=/dev/mmcblk0 rw
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ThinkAndroid是一个免费的开源的、简易的、遵循Apache2开源协议发布的Android开发框架,其开发宗旨是简单、快速的进行 Android应用程序的开发,包含Android mvc、简易sqlite orm、ioc模块、封装Android httpclitent的http模块, 具有快速构建文件缓存功能,无需考虑缓存文件的格式,都可以非常轻松的实现缓存,它还基于文件缓存模块实现了图片缓存功能, 在android中加的图片的时候,对oom的问题,和对加图片错位的问题都轻易解决。他还包括了一个手机开发中经常应用的实用工具类, 如日志管理,配置文件管理,android下器模块,网络切换检测等等工具。 目前ThinkAndroid主要有以下模块: MVC模块:实现视图与模型的分离。 ioc模块:android中的ioc模块,完全注解方式就可以进行UI绑定、res中的资源的读取、以及对象的初始化。 数据库模块:android中的orm框架,使用了线程池对sqlite进行操作。 http模块:通过httpclient进行封装http数据请求,支持异步及同步方式加。 缓存模块:通过简单的配置及设计可以很好的实现缓存,对缓存可以随意的配置 图片缓存模块:imageview加图片的时候无需考虑图片加过程中出现的oom和android容器快速滑动时候出现的图片错位等现象。 配置器模块:可以对简易的实现配对配置的操作,目前配置文件可以支持Preference、Properties对配置进行存取。 日志打印模块:可以较快的轻易的是实现日志打印,支持日志打印的扩展,目前支持对sdcard写入本地打印、以及控制台打印 下器模块:可以简单的实现多线程下、后台下、断点续传、对下进行控制、如开始、暂停、删除等等。 网络状态检测模块:当网络状态改变时,对其进行检测。 项目主页:https://github.com/white-cat/ThinkAndroid(不过这个项目已经两年没更新了)  
ThinkAndroid是一个免费的开源的、简易的、遵循Apache2开源协议发布的Android开发框架,其开发宗旨是简单、快速的进行 Android应用程序的开发,包含Android mvc、简易sqlite orm、ioc模块、封装Android httpclitent的http模块, 具有快速构建文件缓存功能,无需考虑缓存文件的格式,都可以非常轻松的实现缓存,它还基于文件缓存模块实现了图片缓存功能, 在android中加的图片的时候,对oom的问题,和对加图片错位的问题都轻易解决。他还包括了一个手机开发中经常应用的实用工具类, 如日志管理,配置文件管理,android下器模块,网络切换检测等等工具。 目前ThinkAndroid主要有以下模块: MVC模块:实现视图与模型的分离。 ioc模块:android中的ioc模块,完全注解方式就可以进行UI绑定、res中的资源的读取、以及对象的初始化。 数据库模块:android中的orm框架,使用了线程池对sqlite进行操作。 http模块:通过httpclient进行封装http数据请求,支持异步及同步方式加。 缓存模块:通过简单的配置及设计可以很好的实现缓存,对缓存可以随意的配置 图片缓存模块:imageview加图片的时候无需考虑图片加过程中出现的oom和android容器快速滑动时候出现的图片错位等现象。 配置器模块:可以对简易的实现配对配置的操作,目前配置文件可以支持Preference、Properties对配置进行存取。 日志打印模块:可以较快的轻易的是实现日志打印,支持日志打印的扩展,目前支持对sdcard写入本地打印、以及控制台打印 下器模块:可以简单的实现多线程下、后台下、断点续传、对下进行控制、如开始、暂停、删除等等。 网络状态检测模块:当网络状态改变时,对其进行检测。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值