微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > Amazon Iot物联网终端之十八 基于Linux from Scrath的rootfs创建成功(多图慎入)

Amazon Iot物联网终端之十八 基于Linux from Scrath的rootfs创建成功(多图慎入)

时间:10-02 整理:3721RD 点击:

概述:经过很长时间的测试和调试,其中包括多次的ubuntu系统重装,最后成功配置rootfs,这个过程和大家分享一下。
1、首先需要说明的是为什么需要创建一个定制的rootfs。此前的各个帖子已经把myir开发板所能实现的功能均测试过了,而且,在IoT物联网终端的开发也有了比较清楚的描述。不过,对于开发控来说,还是希望有很多想法需要去实现,而且还有一些原来开发的工具希望能够重新利用。这样的话,精简的开发环境就显得精简而不够懒惰。在其中,可以为了提高程序运行效率的优化和直接访问硬件的底层开发,这些确实是米尔开发板的优势。不过,运行linux其实意味着有更多更丰富的应用层可以直接开发,而且从目前看,更复杂一些的开发,如人工智能,虚拟视觉,语音识别等,已经有了很多开源的库可以直接应用,那么如果再从底层搞确实是投资收益比太低了。
    以语音识别为例,https://www.talater.com/annyang/这个网址,提供了语音识别的一个入口,可以直接使用,各种开放的接口选择了不同的开发环境,如python,node.js,java等。这时候如果能定制一个适用的环境就显得很有必要了。这些对于物联网开发就显得比较有用。booting是板级的开发,厂家提供的工具很详尽。那么定制就需要一些独立的开发工作来做。
    其次,通过测试,发现了不成功的多种原因。比较直接的原因是网络访问不够通畅,很多时候下载的时候fail,就是收到国际出口拥塞的原因,如果国内有镜像的版本就没有问题,如163镜像,csdn镜像都可以,唯一的问题就是版本不是很全。另外一个原因就是厂家提供的系统不全,或者老的系统很快链接失效,如ubuntu按照字母顺序从a开始,已经到了z,新版的是zesty。那么稳定版是xenial,可惜armhf的版本还没有,所以下载不了。
如使用ubuntu-vivid,命令如下
qemu-dbootstrap --arch armhg --variant=minbase --verbose  vivid /mnt/rootfs


    因为网络不畅,都下载不完。测试过用trusty还是可以的,不过后面的安装又太过古老,因为网络不通畅就不能把需要的包都下载好了。还有,环境一定要是一个clean的环境,不用的package是要remove掉的,最好是一个全新的系统。
所以,最后,用debian解决了问题。不过这样的方法,对于ubuntu也是一样可以的,只要你测试一个可靠的版本,一个可信的链接。
2. 总的来说,是用debootstrap生成一个本地的系统,用qemu在x86的硬件上模拟arm的开发板,生成后用chroot切换到对应目录,就可以进行设置和配置。还有一些工具如rootrack,busybox也是可以的,原理其实相似。
3. 前面要把ubuntu-dev-tools,qemu-bebootstrap等都安装好。然后执行,
debootstrap --arch=armhf --foreign $distro $targetdir




安装下载成功。然后为了在模拟的rootfs中工作创建环境,


创建环境参数并启动最重要的一步
debootstrap/debootstrap --secondstage


成功后,进行需要的包的安装和配置。其中需要


后面的升级和更新设置源文件,注意到一个地方打字错误,在后面就会里面出现问题,以为vi改好了,其实没用存入,结果后面跳票。继续配置,


然后要update才行,
apt-get update,这里用到了source文件


出错了,


修改后这样就ok了,


这时用chroot rootfs进入搭建好的环境中,


进行初始化设置,设置密码,登录用户名,hostname,网络配置等


注意到I have no name,给个名字就好了。配置串口等,


完全弄好后,这个rootfs就配置完成了,用exit离开这个环境,就形成了可以写入sd卡的rootfs了。
总体比较顺利。


4、这个过程是个体力活,没有耐心也不是很容易完成的。如果需要配置python,或者node.js,就可以在chroot的过程中,用apt-get install python来完成,总之还是个体力活。
后面的rootfs可以用dd复制成一个.img镜像文件加载到qemu,也可以直接复制到sd卡上。这样就比较简单了。cp -rf /rootfs/*,然后tar成.tar文件。中间还补充安装了一些需要的包,这个包没有精简,其实可以把一些不用的临时文件rm掉的。




5、插入复制的sd卡,显示登录画面,用设定的用户名north登录。其中没有配置很好,需要键盘登录,


而且ssh没有启动,这个板子只有1个usb口,插上usb键盘如下。


图片不是很清楚。不过,显示的是debian系统,采用ubuntu内核。这个内核是和Desktop一样的内核,如果需要是可以升级的。






Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top