【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
安装了ubuntu操作系统,有了开发板,下面就可以进行我们的开发工作了。第一步,我们要面临的问题就是uboot移植。一般来说,嵌入式的基础环境就是uboot、linux和rootfs。uboot完成一些基本硬件的初始化,比如cpu频率设置、ddr初始化、加载linux等等。早前,uboot的烧入比较麻烦,需要jtag工具才能完成。现在来说,很多soc支持系统直接从sd卡启动,这对开发者就比较友好了。
要做好uboot移植,做好四个方面的工作就可以了。第一,下载好uboot代码;第二,安装交叉编译工具;第三,编译uboot;第四,选择好sd卡,将uboot的bin文件烧入到sd卡。这样,将sd卡插入到开发板中,上电,就可以看到uboot的启动画面了,比如像这样,
1、下载uboot代码
针对uboot代码,可以直接从官方的github地址下载就可以了,
git clone https://github.com/Lichee-Pi/u-boot.git -b v3s-current
2、下载交叉编译工具
目前v3s的交叉编译工具都可以直接从网上下载,下载地址在这个位置,
https://releases.linaro.org/components/toolchain/binaries/6.3-2017.05/arm-linux-gnueabihf/
注意,如果是ubuntu系统,可以选择这个安装包即可,
安装好之后,如果发现对应的gcc没有办法打开,记得安装一下lib32的包,
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install zlib1g:i386 libstdc++6:i386 libc6:i386
并且在.bashrc当中设置一下环境变量,
export PATH=$PATH: /home/feixiaoxing/gcc-linaro-6.3.1-2017.05-i686_arm-linux-gnueabi/bin
3,编译uboot
相比较而言,编译uboot还是比较简单的,cd到uboot目录,
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LicheePi_Zero_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
如果没有make命令,先用apt-get安装一下make命令,
sudo apt-get install make
4、烧入sd卡
做到了前面三步,好像第四步最简单。其实不然,要实现这个功能,要注意两个方面。第一,选择sd卡的时候一定要选择正规的sd卡,差的sd卡是没有办法完成uboot启动的,这算是自己很大的一个教训吧,浪费了不少时间。实践中发现,一线品牌的sd卡更好一点,启动基本没问题。另外一个方面,一定要让虚拟机支持usb功能,虽然开发板使用的是sd卡,但是这种sd卡是micro sd卡,因此需要一个读卡器,所以如果需要ubuntu支持sd卡的读写,最要让虚拟机支持usb,这样才可以完成ubuntu对sd卡的读写功能。
sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/sdb bs=1024 seek=8
烧写直接使用dd命令就好了,注意这里烧写的文件是u-boot-sunxi-with-spl.bin,烧入的设备是/dev/sdb,也就是刚刚插入的sd卡。做到这两点,基本就可以保证烧入成功了。