由于kernel制作的不同,需要在uboot上烧写kernel,这里可以采用tftp的方式进行烧写。
1. 安装软件包
sudo apt-get install tftpd tftp xinetd2. 建立配置文件 在/etc/xinetd.d/下建立一个配置文件tftp
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 /tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4 }3. 建立tftp服务文件目录 在上一步配置中有server_args = -s /tftpboot,其中/tftpboot这个目录就是上传文件与下载文件的位置。我们现在创建这个目录,并设置权限。
sudo mkdir /tftpboot sudo chmod 777 /tftpboot -R4. 重新启动tftp服务
sudo /etc/init.d/xinetd restart5. 测试
sudo netstat -a | grep tftp如果启动成功,则可以查看到
upd 0 0 *:tftp *:*再运行
tftp 192.168.0.200 -g -r xxx即可设置主机地址。
6. 本机测试 在/tftpboot目录下创建一个ky文件,启动另外一个终端,输入:
tftp 127.0.0.1 tftp> get ky #获取ky文件 tftp> q #退出tftp在终端输入ls命令,可以看到当前目录下看到ftp获取到的ky文件。 这样我们的主机上tftp就已经搭建好了
在虚拟机选择网络为桥接模式,并且在编辑菜单网络参数中,选择已桥接到Relteck…(表示本地有线网卡) 如果不成功,检查防火墙是否已经关闭。
主机设置IP地址 192.168.1.100
sudo ifconfig ens33 192.168.1.100 netmask 255.255.255.0这里的ens33为网卡名称,通过ifconfig查看 uboot里设置开发板地址 192.168.1.11
setenv ipaddr 192.168.1.11 setenv serverip 192.168.1.100 saveenv这里只要保证网段相同即可 然后测试是否可以ping通
ping 192.168.1.100若成功,则显示以下内容:
host 192.168.1.100 is alive继而启动开发板,进入U-Boot命令行,用tftp命令加载tftp服务器中的文件,(注意,服务器为/tftpboot文件夹,保证文件夹内有该文件)如:
U-Boot$ tftp 10800000 uImage注意:用网线连接开发板与主机的时候,有时候连接不稳定 ,可以在主机上重新运行sudo ifconfig ens33 192.168.1.100 netmask 255.255.255.0, 保证连接。 结果显示:
TFTP from server 192.168.1.100; our IP address is 192.168.1.11 Filename 'uImage'. Load address: 0x10800000 Loading: ################################# done Bytes transferred = 479927 (752b7 hex)这样就下载到内存成功 继而可以开始运行