在sam9x5上使用SD卡构建完整Linux系统

在sam9x5上使用SD卡构建完整Linux系统


by Mcuzone


在sd卡上使用完整的linux系统就是整个Linux系统都从SD卡启动,但是整个过程中还是需要借助Linux PC或者Linux来完成一些必要的工作。
为了避免在虚拟机上使用虚拟USB的方式处理SD卡,这里直接使用NAND启动的开发板来完成SD卡的处理。

环境:
1. 有Linux系统可运行的9x5开发板
2. SD卡一张,这里使用一张8GB的高速卡
3. 开发虚拟机,开发板和虚拟机之间网络通畅
4. 参考atmel官方说明 http://www.at91.com/linux4sam/bin/view/Linux4SAM/SDCardBootNotice了解原理


先使用nand版本的Linux启动,查看系统支持ext2文件系统,那么这里对sd就使用ext2:


插上SD卡,系统提示:



注意:以下操作会格式化sd卡,如果有数据,请备份。
在将自动mount的分区umount之后,查看sd卡当前的分区信息先:


先用fdisk命令查看一下信息,可以看到,当前卡上只有一个fat分区:


使用命令d即可删除当前的分区,然后看到sd卡上没有分区:


新建一个fat分区,大小为64MB,用来存放sam9x5的sd卡启动所需要的文件:


新建一个128MB的ext2分区,用来存放rootfs:


再将剩下的空间都作为一个ext2分区,用作系统的数据存储:


在前面输入w保存改动之后,在系统里可以看到sd卡的新的分区表:


运行一次mdev,使得系统更新设备节点:


根据之前的规划,将p1格式化为fat,p2与p3格式化为ext3格式:


在虚拟机的tftp目录下准备好boot需要的文件:


在开发板上将p1以fat格式mount到系统,然后通过tftp从虚拟机上下载启动文件,虚拟机的ip为192.168.1.102:


重头戏开始,将p2分区以ext2格式mount到系统,然后通过nfs,将虚拟机上的rootfs复制到p2分区,也就是在p2分区上构建了一套rootfs:



完成之后使用reboot命令重启 

由于默认情况下,9x5的mci0的启动优先级高于nand,所以即使nand上有linux,系统还是从sd卡先启动,看看启动信息:


注意fatls呈现出来的位于fat分区上的启动文件

使用命令将kernel uImage加载到内存,并设置bootargs,指明rootfs位于sd卡的分区p2:



系统正常从sd卡启动,并mount上文件系统:


目前p3分区仍然空闲,可以mount到系统加以使用,这里就不详细说了,看下读取速度测试:


可以看到,纯使用sd卡,可以方便地在9x5上部署linux系统,而且容量的提升及其容易,fat分区的启动文件也很容易更换,适合对振动要求一般,但是对容量要求高,又需要经常更换的场合。

将sd卡放到windows pc上,可以看到,只能识别第一个分区及其文件,启动文件也可以在windows上进行更换:



  


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值