完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 北方· 于 2016-11-17 13:55 编辑 1、定制linux的rootfs总体来说,不是不可逾越的门槛,但是需要花很多时间去配置一个干净,兼容的平台。我们所看到的随板开发工具如ubuntu是10版本的,这个也是为了保证兼容性和用户手册的准确而必要的措施。 从比较熟悉的ubuntu core开始,逐步实现linux的roorfs创建。具体参照 https://wiki.ubuntu.com/ARM/RootfsFromScratch 这个提供了rootfs from scratch的实现方法。 rootfs实现基本是2步,第一步创建宿主机host并下载需要的包package和dependency,以及配置环境,第二部是用chroot等配置并build包。 本次测试在最后的配置第二步中没有成功,主要原因因为在第一步中测试了3种包的下载方式,使得配置的环境不够干净,所以build失败,本帖先总结第一部分的工作。 2、第一步中,有3种方式 2.1 直接下载包,并用tar命令解压 mkdir ~/ubuntu-rootfs cd ubuntu-rootfs wget http://cdimage.ubuntu.com/ubuntu ... 4-core-armhf.tar.gz sudo tar -xpfubuntu-core-14.04-core-ARMhf.tar.gz 这种方式中,上面提到的链接http://cdimage.ubuntu.com/ubuntu-core/releases/14.04.1/release/ubuntu-core-14.04-core-armhf.tar.gz,其实已经失效,现在的有效版本是15.4版本,新版的16.xx还没有更新ubuntu core,只有针对beagle bone有一个最新版的影像,不过是适合am335的开发板可以尝试移植。保留这个链接是说明最开始的版本有效性问题。也是我后来失败的原因之一,版本就木有搞统一。 2.2 使用QemuDebootstrap,QemuDebootstrap也是调用了后面提到的debootstrap。 sudo apt-get install qemu-user-static sudo qemu-debootstrap --arch armhf --variant=minbase --verbose trusty /mnt/rootfs/ 需要注意的是这里用的trusty是linaro提供的一个ubuntu内核,而不是ubuntu官网提供的内核。 执行完以后,就在/mnt/rootfs/下载了完整的rootfs的文件结构,不需要再用tar解压了,而第一种方法还需要自己创建工作目录并解压。 2.3 直接使用debootstrap 首先需要安装一下包,debootstrap;qemu-arm-static (syscall emulation) 或者 qemu-system-arm (machine emulation)模拟器;e2fsprogs等;一个内核a kernel for qemu/versatile/cortex-a8 然后 mk-***uild --arch armel lucid这里使用的lucid是ubuntu core的一个版本号,也失效了,实际是用了vivid,这样下载一个keyring,以便后面的build。 因为ubuntu是基于debian的,查看对应目录,可以看到debian的keying和ubuntu的keyring都下载了。 3、以上各个方法都经过测试,可以实现,不过可以明显看到,下载和build的方式是有一定的不同的,这样就影响了后面的build,因为host的是最新的ubuntu16版本,因此,就的package是得不到支持的,如m***uild就需要下载ubuntu-dev-tools,因为其不再是独立的文件而是dev-tool的一个组成部分了。 诸如此类的情况,都需要分析和对应解决。 另外,在这个过程中,不推荐用root来执行,最好创建一个具有superuser级别,在***uild组中的用户来执行,以保证避免失误带来的破坏。 因为本次评测是用虚拟机来执行ubuntu,所以不是很担心系统崩溃,因为重装也是极其简单。唯一的问题就是需要如果需要执行linux from scratch的功能,往往需要很大的内存空间,在最初设置时还是只用了20G,还是不够的。 以上很多命令的执行时间都有数个小时,因为周期过长,所以分步发帖,等第二步完成,再编辑本帖。4、有关截图 4.1 安装debootstrap;qemu-arm-static ,e2fsprogs等,以及说明。
执行sudo qemu-debootstrap --arch armhf --variant=minbase --verbose trusty /mnt/rootfs/后显示的rootfs文件目录结构, 执行替代m***uild的ubuntu-dev-tools所下载的包和执行的内容。以及生产的keyring 5. 在安装的过程中,https://wiki.ubuntu.com/ARM/RootfsFromScratch/ 提示采用Rootstock,命令,但是已经过期了,依赖均失效,推荐采用live-build或者qeum。 按照http://manpages.ubuntu.com/manpa ... 7/live-build.7.html,采用lb 系列指令,是分为高级和低级命令,其中高级命令极其简单,但是使用受限较多。而且,因为定制,生成的rootfs是依赖于宿主机的,也就是虚拟机为i386的32位机,只能直接生成desktop版本的rootfs,还需要下载linaro的内核进行内核升级。经测试,因为网络不通畅,下载的文件有些校验不通过,反复测试也没有及时修复这个问题,因此,暂时,无法测试,等重新安装一个clean的版本后再测试本方法。 使用live-build分为5个阶段,最后一个阶段直接生成img文件, lb_config(1) 配置环境 lb_bootstrap(1) 第一个阶段,准备文件并下载内核 lb_chroot(1) 第二个阶段 lb_binary(1) 第三个阶段,生成代码 lb_source(1) 第四个阶段,build lb_clean(1),最后清除环境,完成设置。 |
|
相关推荐
3 个讨论
|
|
做出来但是没有调试通过,因为后面有评测计划就先完成了原来的计划再继续做。 其实,目前提供多个版本rootfs的厂家并不多,所以,这个linux from scratch不是按照教程做就一定可以做出来的。不过,我估计自己可以给myir做一版,就是投入的时间很多而已。我最后会提交给提交给myir的,但不会在这里分享的源码的。因为,我自己也不确定这样做是否满足授权协议。 前面讲启动部分copy别人的,而且不copy全也有道理,因为我确实没有标注引用出处,而且大篇幅删减,因为那个335部分的说明只是用来对比的。这个板子是A9的,这一部分如果别人愿意copy我是不介意的。 因为打字能力不行,确实希望大家来挑错,谢谢了。 |
|
|
|
|
|
只有小组成员才能发言,加入小组>>
【米尔-Xilinx XC7A100T FPGA开发板试用】+04.SFP之Aurora测试(zmj)
533 浏览 0 评论
【米尔-Xilinx XC7A100T FPGA开发板试用】+03.SFP光口测试(zmj)
517 浏览 1 评论
【米尔-Xilinx XC7A100T FPGA开发板试用】+01.开箱(zmj)
614 浏览 0 评论
【米尔-紫光PG2L100H国产FPGA开发板试用】米尔-紫光PG2L100H国产FPGA开发板开箱评测
608 浏览 0 评论
【米尔-国产瑞芯微RK3568开发板试用体验】评测一 系统配置
540 浏览 0 评论
【米尔-瑞米派兼容树莓派扩展模块-试用体验】基于ROS系统的三麦轮小车自主导航
3551浏览 2评论
【米尔NXP i.MX 93开发板试用评测】5、安装Debian和排除启动故障
542浏览 2评论
【米尔NXP i.MX 93开发板试用评测】2、异构通信环境搭建和源码编译
703浏览 2评论
【米尔-瑞米派兼容树莓派扩展模块-试用体验】Free RTOS应用开发环境部署
1326浏览 1评论
【米尔-芯驰D9开发板- 国产平台试用】- 03- 外设接口测试-U盘、485总线
6789浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 13:23 , Processed in 1.092491 second(s), Total 79, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号