定制适用于ARM平台的Ubuntu rootfs(根文件系统)

本文介绍了如何在Ubuntu系统上使用debootstrap工具和qemu-user-static为ARM架构的设备(如Beaglebone)定制根文件系统。详细步骤包括:获取基本裸系统、挂载文件系统并chroot、配置网络、安装软件包、设置用户及串口调试服务。在过程中,作者遇到并解决了串口登录和权限问题。
摘要由CSDN通过智能技术生成

0 背景

有一个很厉害的师兄针对我们实验室的需求设计了一块控制板,以beaglebone为基础,由于更改了一些底层的硬件,所以重新定制编译的内核,并预先烧写到了板子的flash中。现在需要安装ubuntu的文件系统,以使用ROS的相关功能函数库。前一段时间我在beaglebone官网下载了其提供的预编译好的根文件系统,修改挂载设置fstab文件后顺利启动,但是不能支持图形界面,不知是内核支持的原因还是文件系统的原因。前面琢磨了如何编译适用于ARM架构的内核(编译适用于ARM的linux内核并进行QEMU仿真),为了今后在需要时按自己的意愿修改文件系统,最近两天一直在研究如何定制自己的根文件系统,参考了几篇经验帖,结合自己的实践,特记录于此。


图1 Ubuntu rootfs定制流程

1 获得ubuntu基本裸系统

1.1 利用debootstrap工具

参考ubuntu提供的网站https://wiki.ubuntu.com/ARM/RootfsFromScratch/QemuDebootstrap

由于我要跨平台运行,所以不能简单地进行本机编译,在网上查询专门有一个模拟不同机器架构的软件qemu,而在ubuntu中对其支持良好。所以首先在PC主机ubuntu系统中安装qemu模拟器:

sudo apt-get install qemu-user-static

然后就可以利用下面的命令获得一个基本的ubuntu裸文件系统:

sudoqemu-debootstrap --arch armhf --variant=minbase --verbose trusty /mnt/rootfs/

生成的minbase文件系统大小为123M。

manqemu-debootstrap可以看到其原理:

The  qemu-debootstrap  wrapper calls  debootstrap(8)  making use  of  the --foreign  and  --second-stage  options, and copies the appropriate qemu-user-static(1) binary into place inorder to install cross-architecture chroots. In order for it  to work  seamlessly,  the binfmt-support

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值