首页 > 代码库 > EasyARM i.mx28学习笔记——安装和使用tftp

EasyARM i.mx28学习笔记——安装和使用tftp

0 前言
    前段时间购买了周立功的EasyARM i.mx287开发板,加之前3个月工作内容也和linux有关,就借助周立功的EasyARM总结Linux开发过程中的若干注意点。
    本文说明在ubuntu中安装tftp服务器的详细步骤,在ubuntu中编写一个让LED闪烁的脚本,使用串口登录EasyARM,在EasyARM中通过busybox的tftp指令获得主机中的脚本文件,增加可执行权之后运行,最终LED灯间隔闪烁。

1 安装tftp
    【1】新建目录,并修改权限
        在用户目录中新建一个名为tftpboot的文件夹,并修改权限。该目录中放置所有需通过tftp交换的文件,可称为tftp根目录。
    mkdir tftpboot
    chmod -R 777 tftpboot

    【2】安装tftp、tftpd
        开始安装之前,请先更新软件源
    sudo apt-get update
        安装tftp、tftpd和
    sudo apt-get install tftpd tftp xinetd
        其中tftp为客户端, tftp为服务器端,xinetd为linux超级守护进程。

    【3】修改配置文件
        在/etc/xinetd.d/下建立一个tftpd的配置文件
sudo vi /etc/xinetd.d/tftp
service tftp
{
    socket_type = dgram   
    protocol = udp
    wait = yes
    user = root
    server = /usr/sbin/in.tftpd
    server_args = -s /home/<user>/tftpboot
    disable = no
    per_source = 11
    cps = 100 2
    flags = IPv4
}
    server_args = -s /home/<user>/tftpboot 

    指定tftp根目录,通过tftp交换的文件均放置于该目录中。

    【4】重新运行xinetd
sudo /etc/init.d/xinetd restart
    【5】检查配置成功
    如下输出说明控制台工作正常    
sudo netstat -a | grep tftp
# 返回结果,运行正常
udp 0 0 *:tftp *:* 

2 使用tftp
    【在ubuntu中】
    【1】编写脚本——blink.sh
#!/bin/sh
LEDFILE=/sys/class/leds/led-err/brightness
for i in $( seq 1 10 )
do
    echo 1 >$LEDFILE 
     sleep 1
     echo 0 >$LEDFILE
     sleep 1
     echo "LED Blink!"
done
    【2】复制到tftp根目录中
    cp blink ~/tftpboot

    【在EasyARM中】
    【1】设置IP地址,并尝试ping通ubuntu
        如果尚未设置IP地址,可通过ifconfig设置目标板的IP地址,需要保证目标板和虚拟机在同一个网段中。
        ifconfig eth0 192.168.1.211
        此时主机的IP地址为192.168.1.106,那么可在虚拟中尝试ping通主机
        ping 192.168.1.106 -c 4

    【2】获得文件
    tftp -g -r blink.sh 192.168.1.106
        【说明】
        【1】EasyARM中采用BusyBox工具箱,该工具箱中的tftp指令和debian/ubuntu中的并不相同
        【2】-g 参数代表获得,-r参数代表远程主机,blink.sh为文件名,此时ARM和ubuntu主机中的文件名相同。192.168.1.106为tftp服务器地址。更多阅读参考资料【2】中的博文。

    【3】修改执行权限并执行
    chmod a+x blink.sh
    ./blink.sh

3 总结
    【1】在ARM中busybox指令和ubuntu中的指令存在差异。
    【2】tftp -g -r <File Name> <IP Address> 在ARM中获得远程主机中的文件。

4 参考资料
【1】Ubuntu下tftp服务搭建
【2】Busybox下tftp命令使用详解
【3】Shell脚本中循环语句for,while,until用法
【4】Linux 超级守护进程 xinetd