实验九 使用tftp烧写系统
【实验目的】
掌握使用tftp服务器烧写内核。
说明:在实验中命令行提示符为“$”表示在主机上运行,“#”表示在目标板上运行。
【实验环境】
- Ubuntu 16.04 64位发行版
- FS6818平台
【实验步骤】
- 将制作好的SD卡插到开发板上,以SD启动方式启动开发板,在倒计时期间按下任意键,进入到命令行中,输入“fastboot”。
# fastboot
- 进入到Fastboot工具目录将“A53案例源码/第一天/镜像/支持tftp/ubootpak.bin”拷贝到“Fastboot工具所在目录”。
- 打开 CMD 终端(同时按下 win 键+r 键后输入 cmd)进入镜像拷贝的路径,执行下列操作:
fastboot flash ubootpak ubootpak.bin
注意:烧写过程可能出现错误,错误原因:
1、 fastboot 驱动没有正确安装,正确安装即可
2、 系统中一些手机助手软件占用了设备,退出或卸载这些软件即可
ubootpak.bin烧写:
cmd终端显示如下:
串口终端显示如下:
- 完成以上步骤,即烧写uboot完毕(注:此uboot必须支持网卡驱动,即支持tftp服务器client端)。
- 完成tftp服务器的配置(server端)。
1、检查是否安装tftp server
Sudo dpkg -s tftpd-hpa
2、如果未安装,安装 tftp-server
Sudo apt-get install tftpd-hpa tftp-hpa
3、修改文件vim /etc/default/tftpd-hpa,开启tftp服务
sudo vi /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-c -s -l"
启动tftp服务器server端:
Sudo service tftpd-hpa restart
- 开发板设置为EMMC启动,运行uboot,在倒计时时按下任意键,设置uboot启动参数。
Setenv serverip 192.168.1.192
Setenv ipaddr 192.168.1.193
Setenv bootcmd tftp 48000000 uImage\;bootm 48000000
Setenv bootargs root=/dev/nfs nfsroot=192.168.1.192:/source/rootfs rw console=ttySAC2,115200 init=/linuxrc ip=192.168. 1.193 noinitrd
Saveenv
- 重启开发板,uboot自启动,查看结果。