博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在Linux系统下通过TFTP或NFS烧写内核
阅读量:6890 次
发布时间:2019-06-27

本文共 2083 字,大约阅读时间需要 6 分钟。

一直想直接通过Linux系统往JZ2440开发板中烧写内核,但网上的教程千篇一律都是借助Windows平台上的TFTP工具烧写的,十分不爽,因为我不喜欢在虚拟机上玩Linux!摸索了一下午,终于搞定了,下来记录一下烧录过程。本文主要讲诉TFTP烧写内核的过程,NFS的先挖个坑。

开发环境

  • Linux 16.04 LTS(需要配置好TFTP)
  • JZ2440V3

    Linux配置TFTP

    NFS的配置详见我的上一篇博客
    按步骤执行以下命令
sudo apt-get install tftpd-hpa tftp-hpasudo vim /etc/default/tftpd-hpa

vim终端信息修改为:

810217-20180705211248731-41277421.png

图片里的配置信息为:

# /etc/default/tftpd-hpa                                                                   TFTP_USERNAME="tftp" TFTP_DIRECTORY="/home/china/ftproot" TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="-l -c -s"

里面的TFTP_DIRECTORY路径可以这样看到,以后用tftp协议传输时,文件需要拷贝到这个文件夹里面!

810217-20180705211322677-720100388.png

每修改一次配置信息,都需要重启一次tftp服务

sudo service tftpd-hpa restart

验证TFTP服务正常开启

tftp 192.168.1.218tftp> get hellotftp> quit

810217-20180705211335056-478994474.png

tftp配置成功!下面开始记录如何在Linux下通过tftp服务烧写内核。

在Linux系统下通过TFTP服务烧写内核

第一步:在Linux下通过minicom串口助手连接JZ2440开发板

启动JZ2440开发板后,点击键盘,不让其启动里面的Linux系统,如图:

810217-20180705211347400-1154992142.png

这个时候要输入q方可出现OpenJTAG界面

OpenJTAG>

810217-20180705211359377-292373742.png

第二步:配置网络环境

这个时候需要按照JZ2440配套的PDF资料里的韦东山讲解配置网络了,否则不能让Linux和JZ2440开发板通信。

配置要求

  • 让开发板网段和Linux系统处于同一网段(如IP地址为192.168.1.x)
  • 网关配置一致
    现在可以在Linux下通过ifconfig命令查看IP地址,可以通过route -n命令查看网关
    810217-20180705211412540-719947556.png

810217-20180705211423140-610320609.png

然后在OpenJATG界面使用命令配置u-boot的网络环境

set ipaddr 192.168.1.18set serverip 192.168.1.218set gatewayip 192.168.1.1save
  • 第一行命令是配置开发板的IP地址,保证在同一网段的情况下不冲突即可
  • 第二行命令是配置作为服务端的Linux地址,这个IP地址是通过上面的ifconfig得到的,不可胡写!
  • 第三行命令是配置网关,通过上面的route -n得到,不可胡写!
  • 第四行是保存以上配置,下次再烧写内核时不需要重复配置了
    810217-20180705211433201-119757690.png

韦东山的文档细节如下,详情可参考这个PDF文档。

810217-20180705211446554-1461552118.png

在OpenJATG中

ping 192.168.1.218

一下,看能不能出来alive呢?

810217-20180705211453067-1050542430.png

说明配置正确!O(∩_∩)O哈哈~

可以使用print查看配置情况,其他命令可以详见help
810217-20180705211508969-1922273947.png

网络环境配置成功!呼啦啦~

第三步:开始放大招了——烧内核!

1)把要烧写的uImage内核文件copy到Linux系统下的tftp服务挂载文件夹下面,如图:

810217-20180705211629643-667130700.png

细心的小伙伴发现了,这个uImage的权限被调到了最高,是的,必须要这样做,否则在接下来的传输中会出现permission denied哦,图片中的lm命令是我自定义的命令,和ls -al的作用是一样一样的。

2)进入minicom串口助手里面
那个

OpenJATG>

还在等你输入命令呢。

现在要参考韦东山《嵌入式Linux应用开发完全手册》P291中的内容:
810217-20180705211651664-2110031405.png

不要着急在

OpenJATG>

命令行中输入书本上的命令,这些命令有三分之二都是过时的!估计这个命令是适配JZ2440V1版本的,而我这个是V3版本的

因为我在按照上面命令烧写内核时,板子根本启动不了Linux系统!最后返回来在Windows平台下通过DNW工具烧写发现问题所在了。
左边是通过DNW正确的擦除和写入信息,右边呢... ...
810217-20180705211703740-1882659963.png

所以,要在

OpenJATG>

中输入以下命令:

**记得把uImage的权限给777了哦

tftp 0x30000000 uImagenand erase 0x60000 0x00200000nand write.jffs2 0x30000000 0x60000 $(filesize)

810217-20180705212711570-1819968692.png

烧写完后,直接执行以下命令就可以启动了

OpenJATG> boot

下图来自Ubuntu18.04 LTS测试

810217-20180706122059203-433738509.png

转载于:https://www.cnblogs.com/multimicro/p/9270547.html

你可能感兴趣的文章
SaltStack部署Redis主从实现
查看>>
利用冗余实现企业局域网的高可用性
查看>>
nginx 配置页面压缩
查看>>
磁盘和文件系统管理(二)
查看>>
WCF中有关Session的小实验
查看>>
C#设计模式(13)——代理模式(Proxy Pattern)
查看>>
如何在VIEW 5中配置日志数据库
查看>>
android的互联网开发 下
查看>>
JDBC连接属性
查看>>
百度地图 demo 在html中显示 在jsp中不显示
查看>>
Mac下安装Caffe
查看>>
RDS-MSSQL问题排查方法
查看>>
实现u-boot对yaffs/yaffs2文件系统下载的支持
查看>>
Android Service与Activity之间通信的几种方式
查看>>
表格模板
查看>>
git reset
查看>>
我的友情链接
查看>>
linux内核和发行版本介绍
查看>>
Linux下网络启动服务器安装和配置方法(pxe+tftp+dhcpd)
查看>>
salt 安装脚本
查看>>