TFTP文件传输&NFS挂载&ARM开发板移植Linux系统步骤

环境:ubuntu 20.04

开发板:FS4412(Cortex-A9)

根文件系统:rootfs

资料包:Linux内核移植,u-boot引导程序,根文件系统-嵌入式文档类资源-CSDN下载Linux内核移植,u-boot引导程序,跟文件系统更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/daizhichaoaa/84056813

一、TFTP文件传输

环境搭建:

sudo apt-get install tftpd-hpa

配置服务器: 设置共享的路径位置
 

sudo vim /etc/default/tftpd-hpa

对应修改即可

重启服务 配置生效

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

测试查看服务进程是否配置成功
    

ps -aux | grep tftp

在这里顺便把NFS服务也安装下,后面移植系统的根文件系统是基于nfs

sudo apt-get install nfs-kernel-server

 修改共享路径:

sudo vim /etc/exports

重启让配置生效:

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

挂载nfs

解除挂载

sudo umount nfs 

 测试:

1.打开超级终端进入uboot交互模式

端口配置

set ipaddr 192.168.3.200 //开发板ip
set serverip 192.168.3.163//服务器ip
set gatewayip 192.168.3.1//网关
save

 然后分别进行如上配置

下载文件
tftp 40008000 xxx(文件名)
go 40008000

之后就可以在开发板上看到效果了

注:1.烧写的文件要放到tftp共享的路径里面

2.要保证电脑连着网线和开发板也要连着网线,如果不能同时连两根网线文章末尾有解决方法

二、移植Linux操作系统步骤(tftp)

1.把内核镜像 UImage 复制到tftp服务器共享目录

2.设备树  exynos4412-fs4412.dtb 复制到tftp服务器共享目录

3.根文件系统rootfs.tar.xz 复制 到 nfs共享目录下进行解压
          sudo tar -xvf rootfs.tar.xz

4.修改权限     

sudo chmod 777 -R rootfs
5.pwd获取文件路径 (共享文件路径)

/home/dzc/nfshome/rootfs

接下来打开超级终端操作

    1)启动uboot进入交互模式
    2)使用nfs网络文件系统作为根文件系统 配置模板

set bootargs root=/dev/nfs nfsroot=192.168.3.163:/home/dzc/nfshome/rootfs rw console=ttySAC2,115200 init=linuxrc ip=192.168.3.202

#set bootargs root=根属性 nfsroot=nfs服务器IP:nfs服务器根路径  rw console=ttySAC2,115200 init=linuxrc ip=开发板的IP
    3)设置UBoot环境变量
set ipaddr 192.168.3.202
set serverip 192.168.3.163
set gatewayip 192.168.3.1//网关
set netmask 255.255.255.0
save 
    4)下载内核镜像到内存 41000000
    

 tftp 41000000 uImage 


     5)下载设备树到  内存  42000000
  

 tftp 42000000 exynos4412-fs4412.dtb


    6)引导操作系统  Linux内核
 

   bootm 41000000 - 42000000  

之后就可以在终端上看到开发板的Linux系统了

 

问题解决:
    1、关闭网线托管(解决电脑不能同时连两根网线问题,ip地址只能保留半小时左右)
 

 sudo /etc/init.d/network-manager stop //暂时关闭网络,保留ip
 sudo /etc/init.d/network-manager start  //重启网络

2、开发板挂载时提示协议不支持,具体错误如下:
mount: mounting 192.168.31.75:/home/why/SSD202_Project on /mnt failed: Protocol not supported
解决方法:由于ubuntu 20.04 nfs默认支持协议3和协议4,但是开发板uboot默认启动的是协议2,若想要求 nfs 支持协议2。需要在ubuntu系统

打开文件
vim /etc/default/nfs-kernel-server
在文件中末尾增加内容
RPCNFSDOPTS="--nfs-version 2,3,4 --debug --syslog"
保存重启下nfs,重启指令
sudo /etc/init.d/nfs-kernel-server restart
3、开发板挂载时提示超时:
rpcbind: server localhost not responding, timed out
解决办法:加上“-o nolock”参数
mount -t nfs -o nolock 192.168.3.163:/home/dzc/nfshome
4、Ubuntu NFS下载文件时出现卡顿并打印出T T T
解决办法
在Ubuntu终端输入如下命令

sudo vi /etc/hosts

  • 3
    点赞
  • 4
    收藏
  • 打赏
    打赏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页
评论

打赏作者

嵌入式DZC

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值