开发
: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