标签:easyarm i.mx287
0 前言
本文详细说明如何修改和制作根文件系统,包括修改根文件系统中的配置文件;在根文件系统中加入可执行文件,最后通过uboot tftp方式烧录根文件系统和镜像。
1 准备
若使用uboot tftp方式烧写,需要在tftp根目录中准备两个文件——uImage、rootfs.ubifs。uImage为Linux内核镜像,rootfs.ubifs为保存在Nand
Flash中根文件系统。rootfs.ubifs由rootfs文件夹制作而来,制作rootfs.ubifs需要build_rootfs.sh脚本和ubinize.cfg配置文件。
在tftpboot目录中,应包含uImage和rootfs.ubifs文件。
由于没有修改Linux内核,可先把uImage文件复制到tftp根目录,然后新建一个文件夹——例如EasyARM-rootfs。把rootfs文件夹、build_rootfs.sh和ubinize.cfg放置于该目录下,并修改build_rootfs.sh可执行权限,build_rootfs.sh脚本把rootfs文件夹中的内容制作成rootfs.ubifs文件,并复制到tftp根目录中。
图1 制作根文件系统相关文件
2 修改rootfs文件夹中相关内容
【修改配置】
例如rootfs目录中/etc/rc.d/init.d/start_userapp文件,增加固定IP地址的设置——例如ifconfig eth0 192.168.1.211
#!/bin/sh
ifconfig eth0 hw ether 02:00:92:B3:C4:A8
#ifconfig eth0 down
#you can add your app start_command three
# 增加部分 EasyARM设置为固定IP地址
ifconfig eth0 192.168.1.211
【增加可执行文件】
chmod a+x test-gpio
图2 增加可执行文件
3 制作烧写文件
运行build_rootfs.sh便可制作rootfs.ubifs文件,并复制到tftpboot目录中,build_rootfs.sh的具体内容如下:
#!/bin/bash
mkfs.ubifs -r rootfs -m 2048 -e 126976 -c 1900 -o ubifs.img
ubinize -o ubi.img -m 2048 -p 128KiB -s 512 ubinize.cfg
mv ubifs.img rootfs.ubifs
cp -av rootfs.ubifs ~/tftpboot
mkfs.ubifs和ubinize两工具已经包含在周立功提供的ubuntu ISO文件中,不需要重复安装。运行build_rootfs.sh即可制作根文件。
./build_rootfs.sh
mkfs.ubifs和ubinize指令的具体用法请参考【
UBIFS介绍】
4 使用uboot烧写
【重启开发板】
若看到控制台中输出Hit any Key to stop autoboot,按下空格键(或任意键)进入uboot指令模式。
图3 进入Uboot模式
【确定uboot IP地址和PC机IP地址】
setenv ipaddr 192.168.1.212
setenv serverip 192.168.1.106
saveenv
需要保证PC机IP地址准确,uboot IP地址和PC机IP地址在同一个网段中,此时虚拟机IP地址为192.168.1.106,uboot IP地址为192.168.1.211。
【简单验证】——在uboot中尝试ping PC机IP
ping 192.168.1.106
# 返回结果
Using FEC0 device
host 192.168.1.106 is alive
【烧写内核镜像与文件系统】——在uboot中运行 run upsystem
5 必要的验证
【IP配置成功】——运行ifconfig,查看IP地址是否配置成功
ifconfig
eth0 Link encap:Ethernet HWaddr 02:00:92:B3:C4:A8
inet addr:192.168.1.211 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5 errors:0 dropped:0 overruns:0 frame:0
TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:434 (434.0 B) TX bytes:378 (378.0 B)
【test-gpio运行成功】——运行test-gpio,观察GPIO口输出情况
./test-gpio
LED Blink
LED Blink
LED Blink
LED Blink
LED Blink
LED Blink
LED Blink
LED Blink
LED Blink
LED Blink
6 参考资料
EasyARM i.mx28学习笔记——根文件系统rootfs修改和烧写,布布扣,bubuko.com
EasyARM i.mx28学习笔记——根文件系统rootfs修改和烧写
标签:easyarm i.mx287
原文地址:http://blog.csdn.net/xukai871105/article/details/38615299