ARM嵌入式设备Linux系统启动步骤和方式
D卡插入Apalis Eva载板8-bit SD卡插槽, 开机上电进入uboot
----------------------------------
Apalis iMX6 # printenv
...
fdt_file=imx6q-apalis-eval.dtb //确保device tree文件和上面FAT32分区里面的命名一致
...
Apalis iMX6 # run sdboot
----------------------------------
./ 启动后就可以进行正常的应用开发测试了.
c). TFTP/NFS加载kernel/file system启动
./ 默认目标版系统和开发主机已经在同一局域网内并通过网内DHCP服务器自动取得IP地址,如果需要手动搭建DHCP服务器,请参考这里。
./ 配置TFTP Server
// 在Ubuntu 开发主机通过下面命令建立TFTP Server
----------------------------------
$ sudo apt-get install tftpd-hpa
$ sudo vi /etc/default/tftpd-hpa
//默认tftp server配置,也可以更换目录,不过需要修改目录group为”nogroup”
$ sudo vi /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_ADDRESS="[::]:69"
TFTP_OPTIONS="--secure"
$ sudo service tftpd-hpa start
//如已经启动,重新加载配置,则可运行
$ sudo service tftpd-hpa force-reload
----------------------------------
// 复制kernel和device tree文件到TFTP Server文件夹
----------------------------------
$ cd .../Apalis_iMX6_LinuxImageV2.5/apalis-imx6_bin
$ sudo cp uImage--3.14.28+gitr0632def1c9981e3974f724025f39b2c1588d8ee6-V2.5b3-apalis-imx6-20151215145612.bin /var/lib/tftpboot/uImage
$ sudo cp uImage--3.14.28+gitr0632def1c9981e3974f724025f39b2c1588d8ee6-V2.5b3-imx6q-apalis-eval-20151215145612.dtb /var/lib/tftpboot/imx6q-apalis-eval.dtb
----------------------------------
./ 配置NFS Server
// 在Ubuntu 开发主机通过下面命令建立NFS Server
----------------------------------
$ sudo apt-get install nfs-kernel-server
$ sudo vi /etc/exports
//增加下面NFS配置, ‘10.20.1.111/24’为开发主机IP/Mask配置
/srv/nfs 10.20.1.111/24(no_root_squash,no_subtree_check,rw,fsid=root)
$ sudo service nfs-kernel-server restart
----------------------------------
// 复制rootfs文件到NFS Server文件夹
----------------------------------
$ cd .../Apalis_iMX6_LinuxImageV2.5
$ sudo cp -Ppr rootfs/* /srv/nfs/
----------------------------------
./ 配置Apalis i.MX6目标系统
//开机上电进入Uboot,修改如下参数
----------------------------------
# setenv serverip ‘10.20.1.111’ //TFTP Server IP
# setenv nfsargs ‘ip=10.20.1.115:10.20.1.111:10.20.1.1:255.255.255.0::eth0:on root=/dev/nfs nfsroot=10.20.1.111:/srv/nfs rw netdevwait’
// ip = 目标板IP:NFS Server IP:网关:Mask
// 启动NFS boot
# run nfsboot
----------------------------------
5). 总结
由上可见,在ARM平台使用和开发的时候可以灵活利用各种启动方式,提供更为方便和高效的开发或使用过程。
- Linux嵌入式系统开发平台选型探讨(11-09)
- 基于ARM体系的嵌入式系统BSP的程序设计方案(04-11)
- 在Ubuntu上建立Arm Linux 开发环境(04-23)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- SQLite嵌入式数据库系统的研究与实现(02-20)
- 革新2410D开发板试用手记(04-21)