1 说明
本文主要介绍,如何在openwrt系统中,新增一个平台进行编译。如原本的openwrt 包含了adm5120 arc770 ath25 imx6等平台,现在需要新增一个sc9820平台的编译。本文以sc9820平台作为示例说明。
2 开发环境
1、软件环境:ubuntu14.04
2. openwrt版本:openwrt 官方15.05版本SDK开发包(CHAOS CALMER 15.05版本)
3、供应商提供可编译的sc9820 内核包。
4、linux官网的 linux-3.10.65原生内核包。
3 操作步骤
3.1 进入openwrt 的linux开发目录
path1 为openwrt的目录路径
cd /path1/openwrt/target/linux/
3.2 随便拷贝一个现成的平台作为sc9820的框架
cp -r imx/ sc9820
3.3 清空file文件夹和patch文件夹内容
(1)file文件夹为平台的内核包,与原生版本内核包相比,新增的内容。
(2)patch 文件夹,为平台的内核包与原生的内核包相比,文件的差异,是补丁包。
其中由于该版本imx的内核包采用的为linux-4.4版本,文件夹名称为file-4.4 、patches-4.4。
直接清空两个文件夹,并将文件夹该名称。
rm file-4.4
由于sc9820的内核包采用Linxu-3.10.65,故文件夹名称更改。
mv file-4.4/ file-3.10
mv patches-4.4/ patches-3.10
3.4 拷贝内核包的config
3.4.1 将供应商提供的内核包,制作.config
cd /path2/kernel_sc9820
path2为自己存放sc9820内核包的路径
cp arch/arm/configs/sp9820w_6c10_defconfig .config
make menuconfig ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
当然,如果之前已经把ARCH 和CROSS_COMPILE 环境变量export出来,则可以不加这两个参数
然后保存退出,此时内核配置已经保存至.config
3.4.2 拷贝config 文件至openwrt目录
cd /path1/openwrt/target/linux/sc9820
cp /path2/kernel_sc9820/.config config-3.10
3.4.3 删除之前多余的config
之前拷贝目录,有config-4.4,此时多余,删除该配置
rm config-4.4
3.5 修改编译makefile
cd /path1/openwrt/target/linux/
vi Makefile
将Makefile的部分内容修改为如下
BOARD:=sc9820
BOARDNAME:=board sc9820
KERNEL_PATCHVER:=3.10.65
3.6 配置系统config
cp configs/imx6ul/imx6ul-prolin2-defconfig .config
如果自己没有单独保存这个imx6ul的配置,则可忽略这步,自己再去配置其他选项。
make menuconfig
然后在菜单页面中,选择
Target System 选择为board sc9820
Subtarget 选择为 sc9820_pax
然后在Kernel modules —> 中,把所有的内核模块删除
最后保存退出。
3.7 对内核进行配置
make kernel_menuconfig
然后保存退出。
特别注意,一定要执行这一步,不然在编译内核的时候,会提示:
scripts/kconfig/conf --silentoldconfig Kconfig
*
* Restart config...
*
*
这是因为内核初次没有配置的原因,如果执行了make kernel_menuconfig
,则会将配置写入内核中。
对于内核,可以先测试是否可以正常编译
make target/linux/compile V=s
3.8 编译固件
make V=s
3.9 保存配置.config
cd configs
mkdir sc98290
cd ../
cp .config configs/sc9820/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)