1. u-boot是什么
Bootloader是硬件启动的引导程序,是运行操作系统的前提;对软硬件进行相应的初始化和设定,为最终运行操作系统准备好环境;加载并执行内核;
Bootloader不但依赖于CPU的体系结构,而且依赖于嵌入式系统板级设备的配置。
u-boot(Universal Boot Loader)是德国DENX小组开发的用于多种嵌入式CPU的bootloader程序。
2. u-boot移植步骤
- 下载源码
- 解压u-boot源码进入
- 指定交叉编译工具链
- 查看u-boot是否支持cpu — arch/arm/cpu/armv7/exynos/
- 导入板级配置文件 — 找一个最类似的 board配置修改, 这里我们参考的是 board/samsung/origen/ — make origen_config
- 编译u-boot 生成的u-boot.bin文件就是可执行的镜像文件。
exynos 需要三星提供的初始引导加密后,u-boot才能被引导运行运行
3. linux内核移植
-
下载linux内核并解压
-
进入源码目录,修改Makefile为交叉编译工具
-
明确三星猎户座芯片 — make exynos_defconfig
-
进入内核配置界面勾选需要的配置 — make menuconfig
-
编译内核:make uImage — u-boot格式的内核镜像文件
-
编译设备树:
make exynos4412-origen.dtb -
拷贝内核和设备树文件到tftp共享目录下,以供开发板远程下载;
4.根文件系统的移植
通过使用busybox工具制作几个重要的文件,和可执行文件目录;从http://www.busybox.net/ 下载busybox源代码。
- 拷贝源码到ubuntu中,并解压,
tar -vxf busybox-1.22.1.tar.bz2 - 进入源码目录,执行make menuconfig进入根文件系统配置菜单
Busybox Settings --->
Build Options --->
[*] Build BusyBox as a static binary (no shared libs) //勾选上
[ ] Force NOMMU build
[ ] Build with Large File Support (for accessing files > 2 GB)
(arm