AM335x开发板与PC机虚拟机建立tftp文件传输

1、AM335x开发板必须要支持以太网,而且在U-boot中要有完好的以太网驱动

因为开发板的储存介质为SD卡,所以在编译好的U-boot中并没有配置网络环境,为了不使每次上电都修改u-boot的网络地址所以在U-boot的编译阶段中添加默认的环境变量:

xxx/include/configs/am335x-evm.h

在#define CONFIG_BOOTCOMMAND \下添加

复制代码
        "if test $board_name = A335X_SK; then " \
            "setenv fdtfile am335x-evmsk.dtb; fi; " \
        "if test $fdtfile = undefined; then " \
            "echo WARNING: Could not determine device tree to use; fi; \0" \
        "init_console=" \
        "if test $board_name = A335_ICE; then "\
            "setenv console ttyO3,115200n8;" \
        "else " \
            "setenv console ttyO0,115200n8;" \
        "fi;\0" \
        "ipaddr=192.168.200.127\0" \
        "serverip=192.168.200.123\0" \
        "netmask=255.255.255.0\0" \
        "gatewayip=192.168.200.255\0" \
            "RESET_LCD=" \
              "ULCD reset\0" \
    NANDARGS \
    NETARGS \
    DFUARGS \
    BOOTENV
#endif
复制代码

保存重新编译。

2、配置PC机IP地址;配置笔记本的有线网络IPV4协议:

确定退出。

3、配置笔记本的虚拟机ip

在虚拟机的Edit->Virtual Network Editor中查看如下:

选择以太网卡82579,点击apply然后点击ok。

然后虚拟机的

VM->Setting->Hardware-Network Adapter-Custom:Specific virtual network下选择Vmnet2

点击OK

在虚拟系统ubuntu12.04下打开如图:

点击添加网络:

注音DNS服务,需要和PC机的一致,不一致能不能通过我也不清楚。目的ping通PC和虚拟机。保存退出

参考博客:http://www.92to.com/bangong/2016/08-10/9374215.html

4、虚拟机下建立建立tftp:

安装步骤:

1. 安装xinetd, tftp-hpa tftpd-hpa

a.  sudo apt-get install xinetd

b.  sudo apt-get install tftp-hpa tftpd-hpa

2. 创建tftp的配置文件

a.  vi /etc/xinetd.d/tftp(如图所示)

   b. 这里注意“user = ” 后面的用户名,很多帖子写的都是root用户,我之前也用过几次,并没有什么问题,可是这一次怎么也ping不到ubuntu系统,因此自己改成了当前的用户名,如果你也出现和我一样的问题,可以尝试一下

   c. 保存并退出

   3. 更改tftpd-hpa配置文件(所在目录:/etc/default/tftpd-hpa)

a. sudo vi /etc/default/tftpd-hpa

b. 修改内容如下

复制代码
# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/zyr/Source_code/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"
复制代码

c. 其中/tftpboot是你,tftp服务的共享文件夹,路径可以自己定义,只要在对应的路径下建一个该文件夹即可

d. 69表示tftp协议的端口号

e. OPTIONS部分表示其操作权限,有些贴子也写成“--secure”

    4. sudo mkdir /tftfpboot -p

    5. 修改该文件夹的执行权限

    sudo chmod 777 /tftpboot

    6. 重启xinetd和tftp服务

sudo /etc/init.d/tftpd-hpa restart

sudo /etc/init.d/xinetd/ restart

以上完成之后建议把PC机和虚拟机的防火墙都关掉(或许还要关闭360了什么东东)。

参考博客:http://blog.csdn.net/canhaimingyue/article/details/52544772

5、通过tftp下载uimage、xxxx.dtb

  U-Boot# tftp 0x82000000 uImage
  U-Boot# tftp 0x83000000 maria_am335x.dtb

  最后,启动内核既可:
  U-Boot# bootm 0x82000000 - 0x83000000

U-Boot-zyr# tftp 0x82000000 uImage
link up on port 0, speed 1000, full duplex
Using cpsw device
TFTP from server 192.168.200.123; our IP address is 192.168.200.127
Filename 'uImage'.
Load address: 0x82000000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
#################################
2.9 MiB/s
done
Bytes transferred = 4287776 (416d20 hex)
U-Boot-zyr# tftp 0x83000000 zyr-am335x-evmsk.dtb
link up on port 0, speed 1000, full duplex
Using cpsw device
TFTP from server 192.168.200.123; our IP address is 192.168.200.127
Filename 'zyr-am335x-evmsk.dtb'.


摘自:https://www.cnblogs.com/BigOBlue/p/7054125.html


猜你喜欢

转载自blog.csdn.net/pingis58/article/details/79206602