前言:
之前半年一直在嵌入式Linux移植中挣扎,不知道该从哪个方面开始入手,也失败了很多次,苦思了很久最终决定先从uboot开始。
uboot版本的不同会导致添加板子的时候的配置方法会不一样。由于手头已经有了一套开发板供应商提供的uboot/kernel/rootfs,现成的学习应该会比较方便。
为什么有现成的uboot放着不用,硬是要自己移植呢,不是自己的,没有掌握就意味着靠不住。
准备移植 s5p6818,采取 2014.07 版本的uboot。作为嵌入式移植学习的第一步。
前期准备:
配置系统环境:
sudo apt install ncurses-dev bison flex -y
下载uboot源码:
#uboot 2014.07 wget -c ftp://ftp.denx.de/pub/u-boot/u-boot-2014.07.tar.bz2 #arm-linux-gcc (arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2) #http://www.veryarm.com/arm-none-linux-gnueabi-gcc
配置编译环境:略。
修改Makefile 使其能够支持 默认配置的编译
ARCH=arm
CROSS_COMPILE=arm-none-linux-gnueabi-
修改boards.cfg
根据有关的规则添加一条配置。
Active arm slsiap s5p6818 s5p6818 my_GEC6818 x6818 -
对该规则进行说明:
arm |
位于 arch 文件夹中 |
slsiap |
位于 arch/arm中 |
s5p6818 |
位于 arch/arm/slsiap |
my_GEC6818 |
位于 board/s5p6818 |
x6818 |
位于include/configs中 |
运行
make x6818_config
最简单的配置已经成功,但是现在无法make,由于没有 include/configs/x6818.h 所以肯定会报错。
那么,接下来我们就根据新添加的配置项来手动构建一个uboot模板,什么都不改。