NanoPi2 的uboot2016添加网卡驱动支持
nanopi2系列开发板采用三星的s5p4418处理器,这个处理器在nanopi官方移植了有两个版本的固件分别是:
uboot2014+linux3.4.39 和uboot2016+linux4.4.172
注意:本次针对的是 uboot2016+linux4.4.172 对应的系统固件进行的!!!
对于 uboot2014+linux3.4.39 的请参考我的另一篇文章:
https://blog.csdn.net/weixin_43536180/article/details/117048083
1. 拉取uboot2016的源代码
git clone https://github.com/friendlyarm/u-boot.git
(网速可能会比较慢,请多试几次!!)
2.进入uboot源码目录并切换分支
git checkout nanopi2-v2016.01
注意:必须要先切换分支再打补丁!!!
3. 拷贝补丁包 0001-uboot.patch 到uboot源码目录下(关注我可免费下载补丁包!!)
补丁使用命令:git am < 0001-uboot.patch
注:打包可能会报出些许警告但不影响!如果你的源码此前有修改过,可能会与补丁包产生冲突,必要情况要手动合并补丁!!
4.打包成功会生成文件 build.sh,执行脚本进行编译
无意外的话生成文件 bootloader.img 即为烧写文件
部分报错是未安装设备树编译器dtc可安装再编译:
apt-get install device-tree-compiler
5.烧写到开发板测试
烧写成功的uboot可以看到红色框中,我的补丁包中增加的打印信息!!
setenv ipaddr 192.168.30.68 [设备IP]
setenv serverip 192.168.30.168 [电脑ubuntu的IP]
setenv gatewayip 192.168.30.1 [网关地址]
setenv netmask 255.255.255.0 [子网掩码]
saveenv
注意:网络配置看个人的网络,不要完全使用我的IP地址信息!!!
ping服务器测试:
ping 192.168.30.168
使用tftp从服务器下载uImage测试:
tftp 80000000 uImage
从测试结果可以看到网络是连通的,tftp下载的网速大概是1.4MB/s,对烧写迷茫的老哥看后面。
6.部分烧写教程
6.1 板子已经烧写可以用的固件能进入linux-4.4.172内核
这种情况最为方便,把编译生成的 bootloader.img 文件用网络或者u盘的方式拷贝到开发板中并执行命令:
dd if=bootloader.img of=/dev/mmcblk0 bs=512 seek=3841
写入完毕后重启板子进入uboot即可。
6.2 使用TF卡插入电脑中,并连入ubuntu虚拟机中
dd if=bootloader.img of=/dev/sdxxxx bs=512 seek=3841
/dev/sdxxxx 是你TF卡对应的设备,比如我这里是 /dev/sde
烧写完毕拔出 TF 卡插入板子运行。
6.3 只有1张全新的TF卡的
使用我提供的 s5p4418_head.bin 文件这个文件用于写入TF卡的扇区1~扇区3480的
然后再把 bootloader.img 文件写入TF卡的扇区3481开始的地方
两个烧写命令如下(/dev/sdxxxx 根据具体情况而定):
dd if=s5p4418_head.bin of=/dev/sdxxxx bs=512 seek=1
dd if=bootloader.img of=/dev/sdxxxx bs=512 seek=3841
补丁包下载链接:
https://download.csdn.net/download/weixin_43536180/18805411