当前位置: 首页 > article >正文

Ubuntu 与Uboot网络共享资源

 1、NFS

1.1 Ubuntu 下 NFS 服务开启

sudo apt-get install nfs-kernel-server rpcbind

等待安装完成,安装完成以后在用户根目录下创建一个名为“Linux”的文件夹,以后所有
的东西都放到这个“Linux”文件夹里面,在“Linux”文件夹里面新建一个名为“nfs”的文件夹。创建的 nfs 文件夹供 nfs 服务器使用,以后我们可以在开发板上通过网络文件系统来访问 nfs 文件夹,要先配置 nfs,使用如下命令打开 nfs 配置文件/etc/exports:

sudo vi /etc/exports

打开/etc/exports 以后在后面添加如下所示内容:

/home/leeqianxi/Linux/nfs *(rw,sync,no_root_squash)

添加完成以后的/etc/exports 如图1所示:

 重启 NFS 服务,使用命令如下:

sudo /etc/init.d/nfs-kernel-server restart

1.2 Uboot中的nfs操作

首先保证开发板与ubuntu在同一局域网格

环境变量描述
ipaddr开发板 ip 地址,可以不设置,使用 dhcp 命令来从路由器获取 IP 地址。
ethaddr开发板的 MAC 地址,一定要设置。
gatewayip网关地址。
netmask子网掩码。
serverip服务器 IP 地址,也就是 Ubuntu 主机 IP 地址,用于调试代码。

uboot 中的 nfs 命令格式如下所示:

nfs [loadAddress] [[hostIPaddr:]bootfilename]

loadAddress 是要保存的 DRAM 地址,[[hostIPaddr:]bootfilename]是要下载的文件地址。

准备好以后就可以使用 nfs 命令来将 zImage 下载到开发板 DRAM 的 0X80800000 地址处,命令如下:

nfs 80800000 192.168.1.253:/home/leeqianxi/Linux/nfs/zImage

命 令 中 的 “ 80800000 ” 表 示zImage保 存 地 址 ,“192.168.1.253:/home/leeqianxi/Linux/nfs/zImage”表示 zImage 在 192.168.1.253 这个主机中,路径为/home/leeqianxi/Linux/nfs/zImage。

linux nfs错误 Loading: *** ERROR: File lookup fail

开发板的nfs和主机nfs版本不一致引起的。

解决办法就是编辑主机上的nfs-kernel-server文件,命令如下。

sudo vim /etc/default/nfs-kernel-server

打开文件进行3项编辑,最后保存退出,如下图。

然后对服务进行重启,命令如下。

sudo service nfs-kernel-server restart

在开发板的terminal上重新输入nfs命令就可以了。

2、TFTP

2.1 Ubuntu 上搭建 TFTP 服务器

在 Ubuntu 上搭建 TFTP 服务器,需要安装 tftp-hpa 和 tftpd-hpa,命令如下:

sudo apt-get install tftp-hpa tftpd-hpa
sudo apt-get install xinetd

和 NFS 一样,TFTP 也需要一个文件夹来存放文件,在用户目录下新建一个目录,命令如
下:

mkdir /home/leeqianxi/Linux/tftpboot
chmod 777 /home/leeqianxi/Linux/tftpboot 

注意!我们要给 tftpboot 文件夹权限,否则的话 uboot 不能从tftpboot 文件夹里面下载文件。

最后配置 tftp,安装完成以后新建文件/etc/xinetd.d/tftp,如果没有/etc/xinetd.d 目录的话自行
创建,然后在里面输入如下内容:

server tftp
{
        socket_type = dgram
        protocol = udp
        wait = yes
        user = root
        server = /usr/sbin/in.tftpd
        server_args = -s /home/leeqianxi/Linux/tftpboot/
        disable = no
        per_source = 11
        cps = 100 2
        flags = IPv4
}

完了以后启动 tftp 服务,命令如下:

sudo service tftpd-hpa start

打开/etc/default/tftpd-hpa 文件,将其修改为如下所示内容:

# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/leeqianxi/Linux/tftpboot"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="-l -c -s"

TFTP_DIRECTORY 就是我们上面创建的 tftp 文件夹目录,以后我们就将所有需要通过
TFTP 传输的文件都放到这个文件夹里面,并且要给予这些文件相应的权限。
最后输入如下命令, 重启 tftp 服务器:

sudo service tftpd-hpa restart

tftp 服务器已经搭建好了,接下来就是使用了。

将 zImage 镜像文件拷贝到 tftpboot 文件夹中,并且给予 zImage 相应的权限,命令如下:

cp zImage /home/zuozhongkai/linux/tftpboot/
cd /home/zuozhongkai/linux/tftpboot/
chmod 777 zImage

2.2 uboot 中的 tftp 操作

uboot 中的 tftp 命令格式如下:

tftpboot [loadAddress] [[hostIPaddr:]bootfilename]

看 起 来 和 nfs 命 令 格 式 一 样 的 , loadAddress 是 文 件 在 DRAM 中 的 存 放 地 址 ,
[[hostIPaddr:]bootfilename]是要从 Ubuntu 中下载的文件。但是和 nfs 命令的区别在于,tftp 命令
不需要输入文件在 Ubuntu 中的完整路径,只需要输入文件名即可。比如我们现在将 tftpboot 文
件夹里面的 zImage 文件下载到开发板 DRAM 的 0X80800000 地址处,命令如下:

tftp 80800000 zImage

因为serverip已经指定了 Ubuntu 主机 IP 地址,用于调试代码。


http://www.kler.cn/a/312851.html

相关文章:

  • 985研一学习日记 - 2024.11.12
  • F5全新报告揭示AI时代API安全面临严峻挑战
  • vue elementui el-dropdown-item设置@click无效的解决方案
  • 深度学习服务器租赁AutoDL
  • 云防护单节点2T抗攻击能力意味着什么?
  • 数据分析那些事儿——时间片轮转实验
  • Lua编程语言简介与应用
  • 【python设计模式4】结构型模式1
  • 专利管理系统如何确保专利资产持续有效?
  • (蓝桥杯)STM32G431RBT6(TIM4-PWM)
  • 【结构型】树形结构的应用王者,组合模式
  • setImmediate() vs setTimeout() 在 JavaScript 中的区别
  • 全志A133 android10 适配EC20 4G模块
  • 开源模型应用落地-qwen模型小试-Qwen2.5-7B-Instruct-Gradio快速体验(十四)
  • 音频评价指标
  • MATLAB系列04:循环结构
  • 海外云市场分析
  • Linux编程:解析EAGAIN错误 Resource temporarily unavailable
  • neo4j节点关联路径的表示、节点的增删改查
  • 电线电缆制造5G智能工厂物联数字孪生平台,推进制造业数字化转型
  • 标题:深入理解Linux操作系统:从原理到实践
  • win/mac常用命令
  • 浅谈死锁以及判断死锁的方法
  • Parallels Desktop 20破解版(Mac虚拟机) v20.0.0 for Mac 最新商业版(支持M系列)
  • 揭开数据能力的神秘面纱
  • 当你问AI“有点烦”