uboot编译步骤以及内核编译步骤

a. 指定开发板类型。一般在configs 文件内有 已经对应的开发板的信息。如果涉及到需要修改的东西用sourceInsight 来看。

b. 编译 运行命令 make CROSS_COMPILE=mips-linux- 进行编译。

编译成功后,u-boot 目录下会生成 u-boot.bin,这就是未填充到 128K 的文件。

 常用编译命令。
                make ***_config    配置生成为指定的开发板(*** 为开发板名称)。
                make CROSS_COMPILE=***    编译代码,并指定交叉编译器文件名前缀为 ***。
                make clean    清理上次编译生成的临时文件。此命令不会删除开发板配置,下次编译可以直接运行 make 命令。
                make distclean    清理编译生成的临时文件及开发板配置。运行此命令后,需要再次指定开发板后才能进行编译。

其它说明:

        这里使用的 MR3420 v1 代码不能生成压缩代码。其他的,如 AR9331 AR934x 等代码需要在编译时加入 COMPRESSED_UBOOT=1 来进行编译,如 make CROSS_COMPILE=mips-linux- COMPRESSED_UBOOT=1 。

        编译 AR934x QCA95xx 的代码需要指定使用的以太网交换机 PHY 类型,即在编译时加入 ETH_CONFIG=_s27 或 ETH_CONFIG=_s17 。其中 _s27 为内置百兆 PHY,_s17 为外部千兆 PHY。

        具体路由型号的 GPL 代码里都有说明文件,可以根据说明文件来进行编译,并了解参考板名称。

问题补充 遇到的问题:

/opt/u-boot-2014.10/scripts/dtc-version.sh: 行 17: dtc: 未找到命令

/opt/u-boot-2014.10/scripts/dtc-version.sh: 行 18: dtc: 未找到命令

这个 大概想了一下应该是和设备树相关,于是搜索了一下。

dtc是device-tree-compiler的缩写,即设备树编译器,说明系统中没有安装这个编译器,我用的是apt-get install device-tree-compiler安装后就可以成功编译了哈。

最终生成了uboot


内核的编译相对来说要简单许多, make menuconfig 的时候主要是根据当前内核 目录下的.config 文件来 获取一般的配置信息。  这个.config 在 最开始的时候 是不清楚的,所以我们需要找到和我们板子相接近的这种配置文件,这个文件一般在arch/arm/configs/....._deconfig 下面。 直接复制到内核目录下 命名为.config ,然后进入 make menuconfig 操作。修改或者增加你的一些配置选项。配置完后,会重新生成.config文件。make 镜像即可。

最后make zImage 的时候, 就ARCH=arm CROSS_COMPILE=arm-linux- 即可,这里忽略特殊板子需要传入其他参数。



转载于:https://my.oschina.net/u/561918/blog/628884

你可能感兴趣的:(uboot编译步骤以及内核编译步骤)