在全志网站查到2017年3月 uboot 加入了对nanopi 网络支持,所以要2017年3月后的uboot才能通过网络启动SylixOS系统。
下载源码
uboot git 仓库 :http://git.denx.de/
sunix MainLine uboot :http://linux-sunxi.org/Mainline_U-Boot
nanopi allwinner 提供相关链接:http://linux-sunxi.org/FriendlyARM_NanoPi_M1 http://linux-sunxi.org/FriendlyARM_NanoPi_NEO_%26_AIR
allwinner uboot ftp下载地址:ftp://ftp.denx.de/pub/u-boot/
1. 下载编译器
下载链接: http://download.friendlyarm.com/nanopineo 的toolchain目录,下载交叉编译器arm-cortexa9-linux-gnueabihf-4.9.3.tar.xz,然后解压编译器:
$ mkdir -p /opt/FriendlyARM/toolchain
$ tar xf arm-cortexa9-linux-gnueabihf-4.9.3.tar.xz -C /opt/FriendlyARM/toolchain/
然后将编译器的路径加入到PATH中,用vi编辑vi ~/.bashrc,在末尾加入以下内容:
$ export PATH=/opt/FriendlyARM/toolchain/4.9.3/bin:$PATH
$ export GCC_COLORS=auto
$ . ~/.bashrc
$ arm-linux-gcc -v
会显示:gcc version 4.9.3 (ctng-1.21.0-229g-FA) 设置正确。
备注:这样设置有个问题就是这是对当前用户起效,如果这是不是root用户 后面编译的时候使用sudo 命令会找不到arm-gcc
解决办法:
1.先打开一个超级用户权限的shell:
命令:sudo –s
2.在当前shell下,设置环境变量:
命令:gedit /etc/profile
在文件末端加上 export PATH=/opt/FriendlyARM/toolchain/4.9.3/bin:$PATH
export GCC_COLORS=auto
保存
3. 执行source /etc/profile 这是避免重新启动ubuntu而又使刚刚修改的环境变量生效的方法。
2. 编译
apt-get install swig python-dev python3-dev
make nanopi_neo_defconfig ARCH=arm CROSS_COMPILE=arm-linux-
make ARCH=arm CROSS_COMPILE=arm-linux-
编译完成后生成 u-boot-sunxi-with-spl.bin
在PC机上更新SD上的U-boot:
$ dd if=u-boot-sunxi-with-spl.bin of=/dev/sdX bs=1024 seek=8
$ sync && eject /dev/sdX
/dev/sdx请替换为实际的TF卡设备文件名。
sync命令可以确保数据成功写到TF卡中,eject命令用于弹出TF卡。
将sd插到开发板, 设置开发板的ip地址和服务器的ip地址,设置加载文件,设置tftp加载文件,然后通过网络启动sylixos系统。
------------------------------------------------
设置uboot 启动cmd 启动SylixOS:
setenv sylixos_mmc "mmc dev 0; mmc rescan; fatload mmc 0 0x40000000 bspallwinnerh3.bin; go 0x40000000"
setenv bootcmd "run sylixos_mmc"