开发:uboot---->sd
uImage---->tftp
rootfs---->nfs
十一.tftp
作用:用于开发板从PC下载文件,直接把文件下载到内存
配置tftp服务器:
配置方法参考<www.embsky.com><ubunut下配置tftp服务器>
开发板的uboot中自带tftp客户端:
确保:开发板和PC之间要联网
[lzy@Uboot]# set ipaddr 192.168.100.250
[lzy@Uboot]# set serverip 192.168.100.199
[lzy@Uboot]# save
[lzy@Uboot]# ping 192.168.100.199
如果提示not alive则再次ping
[lzy@Uboot]# tftp 0x48000000 uImage
###下载成功的界面:
Speed: 1000, full duplex
Using dwmac.c0060000 device
TFTP from server 192.168.100.199; our IP address is 192.168.100.250
Filename 'uImage'.
Load address: 0x48000000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
##########################################
2.6 MiB/s
done
Bytes transferred = 5383216 (522430 hex)
##测试文件的正确性
[lzy@Uboot]# bootm 0x48000000
笔记本与开发板网络链接方法:
开发板与PC的以太网卡直连
PC的wifi与路由器链接用来上外网
<详细内容参考 网络配置.mp4>
十二.网络文件系统
1>在PC上配置nfs服务
[redis]$ sudo apt-get install nfs-kernel-server
[redis]$ sudo vim /etc/exports
/redis_root *(rw,sync,no_root_squash)
[redis]$ sudo mkdir /redis_root
[redis]$ sudo chmod 777 /redis_root/
[redis]$ sudo /etc/init.d/nfs-kernel-server restart
2>测试
[buntu@Ubuntu]# sudo mount 192.168.200.172:/redis_root /mnt
然后可以通过访问/mnt来达到访问对方redis_root的目的
[buntu@Ubuntu]# sudo umount /mnt
十三.搭建nfs网络根文件系统
[images]$ sudo tar -xvf rootfs.tar -C /redis_root/
十四.让开发板内核启动后挂在nfs
[lzy@Uboot]# set bootargs root=/dev/nfs nfsroot=$serverip:/redis_root ip=$ipaddr tp=gslx680-linux
[lzy@Uboot]# save
十五.启动开发板
为了避嫌我们先把emmc擦除掉
[lzy@Uboot]# mmc erase 0 10240
[lzy@Uboot]# ping $serverip
[lzy@Uboot]# tftp 0x48000000 uImage
[lzy@Uboot]# bootm 0x48000000
问题:
当Linux挂在nfs后,启动init进程---->执行脚本(/etc/init.d/rcS)---->执行其他脚本
=========================================================================================
十六.嵌入式应用软件
扩展buildroot
<参考视频 BuildRoot扩展选项.mp4>
安装交叉编译器:
[extern]$ tar -xvf arm-linux-gcc-4.5.1.tar.bz2
[extern]$ vim ~/.bashrc
PATH=/home/zyli/6818/s5p6818sdk_lzy1/extern/4.5.1/bin:$PATH
[extern]$ source ~/.bashrc
在PC上对程序进行交叉编译:
[ubuntu@Ubuntu]# touch hello.c
#include <stdio.h>
int main(void) {printf("hello arm\n");}
[ubuntu@Uboot]# arm-linux-gcc hello.c -o hello
把程序拷贝到共享目录
[ubuntu@Uboot]# cp hello /redis_root
在开发板上启动内核,并且挂载nfs
[x6818@localhost]# /hello
hello arm