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