项目场景:
环境:ubuntu 5.4.150 开发板:s3c2440
在u-boot中,通过tftp传输uImage文件失败。
问题描述
cpp
SMDK2410 # tftp 0x30008000 uImage
dm9000 i/o: 0x20000000, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 00:0c:29:4d:e4:f4
could not establish link
Using dm9000 device
TFTP from server 192.168.1.3; our IP address is 192.168.1.100
Filename 'uImage'.
Load address: 0x30008000
Loading: *
TFTP error: 'Permission denied' (0)
Starting again
dm9000 i/o: 0x20000000, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 00:0c:29:4d:e4:f4
could not establish link
原因分析:
报错内容为:tftp 权限不足,无法建立网络连接
推测是由于uImage的文件权限或者是tftpboot目录不允许tftp进行读写操作。uImage是我从资料中复制的,而不是系统生成的,uImage的权限可能并不是系统默认的0666.而tftpboot目录没有这个问题。因此,应修改uImage的文件权限。
解决方案:
使用ll命令查看uImage的文件权限
可以看到uImage的文件权限为仅文件拥有者具有读写权限,文件拥有者为linux。
使用ll命令查看tftpboot的目录权限
可以看到tftpboot的目录权限为用户,组用户和其它用户具有读写权限。没有问题
使用chmod命令修改uImage的文件权限
可以看到uImage的文件权限为用户,组用户和其它用户具有读写权限。
重新使用tftp传输uImage文件
传输成功