linux开发环境搭建(2)-tftp下载内核

在前面已经将三个网卡配置好了,本篇文章将介绍如何使用在ubuntu中使用tftp命令下载内核到开发板上。我使用的是网线直连的方式下载,即通过网线直接把pc和开发板连接起来,没有使用到路由器和交换机,只需要一条网线即可,下载非常方便。

1、配置tftp服务器

在进行tftp下载之前,需要先在你的ubuntu中搭建好tftp服务器,关于如何配置tftp服务器,可以参考这篇文章

http://www.linuxidc.com/Linux/2013-07/87366.htm

2、uboot设置网卡ip地址
这里使用先使用友善已经移植好的tiny6410 uboot作为测试,可以在这里下载http://download.csdn.net/detail/atmega_chen/9772444
在uboot/lib_arm/board.c文件中,在start_armboot函数进入死循环之前加入如下的代码:

    setenv("ipaddr", "192.168.2.3");
    setenv("serverip", "192.168.2.2");
    setenv("gatewayip", "192.168.2.1");
    setenv("bootcmd", "nand read c0008000 400000 500000; bootm c0008000");
    setenv("bootargs", "noinitrd console=ttySAC0,115200 init=/init root=/dev/nfs rw nfsroot=192.168.2.2:/home/chen/friendly_arm_source/filesystem/rootfs,proto=tcp,nfsvers=3 ip=192.168.2.3:192.168.2.2:192.168.1.1:255.255.255.0::eth0:off");

    /* main_loop() can return to retry autoboot, if so just run it again. */
   for (;;) {
     main_loop ();
   }

其中ipaddr表示设置开发板的ip为192.168.2.3。
serverip表示服务器端的ip为192.168.2.2,也就是我们前面设置的第三个桥接网卡的网卡ip,要保证ipaddr和serverip在同一网段。
gatewayip为设置网关。
bootcmd表示开机启动命令,这句话表示开机的时候从nandflash的0x400000位置处读取大小为0x500000的数据到内存的0xc0008000处,也就是把内核读到内存的0xc0008000处,然后使用bootm启动内核。
bootargs为挂载nfs文件系统使用到的启动行参数,后面会介绍。

3、编译烧写测试
加完后,可以编译uboot,把生成的u-boot.bin通过dnw的方式下载到nandflash中,然后启动开发板。
启动的过长中不断按空格键,这样就会弹出一个友善的菜单,如下图

这里写图片描述

选择q,退出到uboot原始的shell命令行,输入print查看设置的ip是否都正确,可以看到开发板上的ip和我们设置的ip是一致的。
这里写图片描述

尝试ping一下tftp服务器,输入ping 192.168.2.2,如下图,可以ping的通。如果ping不通需要检查下虚拟机和windows的防火墙是否有关闭掉。
这里写图片描述

在ping的过程中,可以在windows的网络连接正在识别新的网络连接,如下图
这里写图片描述

这个网络连接的ip如下,这个网卡的名字是Realtek PCIe GBE Family Controller,也就是我的PC的有线网卡。
这里写图片描述

所以我们使用网线直连通过tftp可以下载文件的原理是,在使用tftp的时候,pc机上的有线网卡会从开发板的网卡哪里获取到一个ip,只要pc的有线网卡有了ip,连接起来了,就可以充当开发板和虚拟机之间通讯的中转站。windows中的有线网卡的ip具体是多少我们可以不用理,反正这个网卡的网络连接只有在使用tftp下载或者挂载nfs根文件系统的时候才会出现,其他情况下是不会出现的。

在开发板可以ping通虚拟机以后,就可以使用tftp下载了,把要下载的文件放到/home/tftpboot目录下,这个目录是你自己定义的tftp的服务器目录,放到自己定义的目录中去就可以了。使用tftpboot下载,tftpboot [loadAddress] [bootfilename]
如下为下载uImage内核到内存0xc0008000位置处的操作,可以看到文件被成功下载到了内存中。
这里写图片描述

到这里tftp下载文件到开发板就介绍完了,下一篇会介绍如何通过nfs挂载根文件系统。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值