Firefly开源社区

12
发表新贴
打印 上一主题 下一主题

Firefly Ubuntu开发入门之(1)自已编译内核

950

积分

95

威望

72

贡献

超级版主

Rank: 8Rank: 8

积分
950

Firefly Ubuntu开发入门之(1)自已编译内核

发表于 2016-9-18 10:45:37      浏览:109463 | 回复:112        打印     [复制链接] 楼主
本帖最后由 牛头 于 2016-9-24 17:34 编辑

     很多朋友希望在拿到Firelfy发布的Ubuntu镜像后,会想自己加驱动或自己编译的内核等等,但做的过程中难免出现各种各样的问题。网上各种教程都不那么切题,讲解都不是那么细致,让人感到迷茫,又或许是无助。Firefly团队努力地在帮助开发者打破此困局,整理策划了系列教程,让开发者可以通过Firefly开源平台可以快速上手开发,并快速打造出成熟产品。
    创新 开源 分享 定制”是我们的口号,我们一直在努力。

    那么请跟着我的脚步上路吧!
    一、Linux主机安装内核开发包
    Linux内核编译需要主机安装一些开发包,具体的开发工具有那些可以通过包名自行补脑。安装过程中需要留意开发包是否都有安装成功,若有开发包安装失败可以单独再重新安装。
sudo apt-get install build-essential lzop libncurses5-dev libssl-dev
    如果使用的是 64 位的 Ubuntu,还需要安装:
sudo apt-get install libc6:i386

    二、安装交叉编译工具链
    纯Linux开发的朋友可以通过Github单独下载交叉编译工具链,内核编译用到arm-eabi-4.6交叉编译工具链,下载链接为:
    下载好放到指定目录~/UbuntuDev/toolchain后解压:
mkdir ~/UbuntuDev/toolchain
cd ~/UbuntuDev/toolchain
tar -xvf arm-eabi-4.6.tar.gz
    如果是android开发者,可以直接按android SDK编译的方法编译SDK里的内核,android SDK里自带交叉编译工具链等。
    三、下载Firefly Linux内核源代码
    从Firefly github仓库下载kernel源代码:
cd ~/UbuntuDev
    至此主机安装了开发包,同时内核源码和交叉编译工具链都准备完毕。可谓是万事具备,只欠编译!GO!
    四、编译内核
    进入内核源码目录:
cd ~/UbuntuDev/firefly-3.14-kernel/
    设置ARCH环境变量,告诉编译器目标平台的架构:
export ARCH=arm
    设置交叉编译器
export CROSS_COMPILE=./../toolchain/arm-eabi-4.6/bin/arm-eabi-

    载入Firefly RK3288开发板内核配置
make firefly-rk3288_defconfig

    编译zImage,zImage是可以加载执行的二进制代码:
make -j4 zImage
    正常编译结束后,会在arch/arm/boot/目录生成zImage文件:

    编译DTB文件。dtb是.dts被DTC编译后的二进制格式的Device Tree描述,可由Linux内核解析。通常在我们为电路板制作NAND、SD启动image时,会为.dtb文件单独留下一个很小的区域以存放之,之后bootloader在引导kernel的过程中,会先读取该.dtb到内存。
make firefly-rk3288.dtb

    生成kernel.img文件
cat arch/arm/boot/zImage arch/arm/boot/dts/firefly-rk3288.dtb > zImage-dtb

mkkrnlimg -a zImage-dtb kernel.img

    当然你也可以这样去编译:
make -j8 firefly-rk3288.img
    编译出来的firefly-rk3288.img文件和上述步骤编译出来的是一样的。

    请不要问题我为什么要介绍这种编译方式,因为我是活雷锋。

    编译并安装模块,先在kernel目录创建modules_install目录,用于存放编译好的内核模块。
mkdir modules_install
make INSTALL_MOD_PATH=./modules_install modules_install

    现在的kernel和modules都已经编译完成,但还不能直接烧录到开发板运行,下一篇再讲如何让编译出来的内核在开发板上运行起来。
回复

使用道具 举报

950

积分

95

威望

72

贡献

超级版主

Rank: 8Rank: 8

积分
950
发表于 2016-9-18 10:45:38      沙发
本帖最后由 牛头 于 2016-9-24 17:37 编辑

有朋友说编译不通过,抱着为观众负责的态度,我又重新编译了一次,过程截图如下:
1、删除本地目录所有文件,再从官方git仓库重新检出代码

2、按教程开始准备编译内核

3、内核镜像顺利编译完成

4、生成dtb文件,之前教程有些笔误,已经更新

5、继续按教程做


之前12号提交的代码出了些问题,导致编译问题。
遇到编译问题的朋友请更新到最新的内核代码,最新的代码ID为:8fc3d070b5765b55dbb93067d1ef7f7fba04dbd5
回复

使用道具 举报

950

积分

95

威望

72

贡献

超级版主

Rank: 8Rank: 8

积分
950
发表于 2016-9-21 10:16:02      板凳


看看是不是没有这个文件
回复

使用道具 举报

950

积分

95

威望

72

贡献

超级版主

Rank: 8Rank: 8

积分
950
发表于 2016-9-21 10:18:05      地板
readsa 发表于 2016-9-20 23:54
大哥你这也搞错了吧,

应该是

你用的不是教程里的内核吧?我的截图里有DTC正确生成dtb的LOG,那文件名没有错的。
回复

使用道具 举报

950

积分

95

威望

72

贡献

超级版主

Rank: 8Rank: 8

积分
950
发表于 2016-9-21 10:43:28      5#
readsa 发表于 2016-9-21 10:25
确实没有啊,但是github上直接浏览也没有啊
https://github.com/T-Firefly/firefly-3.14-kernel/tree/ma ...

我看看哈,我们开源内核就是要用户能自己用起来。
回复

使用道具 举报

950

积分

95

威望

72

贡献

超级版主

Rank: 8Rank: 8

积分
950
发表于 2016-9-22 15:54:27      6#
readsa 发表于 2016-9-21 12:14
androidsdk下 ,这一句之后是vmlinux,而他给的kernel文件夹里没有vmlinux,可能跟这个有关

vmlinux 是编译链接出来的,不是原本就有的。
回复

使用道具 举报

950

积分

95

威望

72

贡献

超级版主

Rank: 8Rank: 8

积分
950
发表于 2016-9-23 14:11:01      7#
不知道你那边是什么原因,我这里没有问题。看看2楼的贴子。
回复

使用道具 举报

950

积分

95

威望

72

贡献

超级版主

Rank: 8Rank: 8

积分
950
发表于 2016-9-24 10:55:27      8#
dalton.lai 发表于 2016-9-23 22:00
sorry, I have no Chinese IME in this NB.

I have ever post this issue at 9/14/2016 09:58:54 in E ...

1、是否修改过内核配置??
2、用的内核代码是否为 git@github.com:T-Firefly/firefly-3.14-kernel.git ??
回复

使用道具 举报

950

积分

95

威望

72

贡献

超级版主

Rank: 8Rank: 8

积分
950
发表于 2016-9-24 10:55:31      9#
dalton.lai 发表于 2016-9-23 22:00
sorry, I have no Chinese IME in this NB.

I have ever post this issue at 9/14/2016 09:58:54 in E ...

1、是否修改过内核配置??
2、用的内核代码是否为 git@github.com:T-Firefly/firefly-3.14-kernel.git ??
回复

使用道具 举报

950

积分

95

威望

72

贡献

超级版主

Rank: 8Rank: 8

积分
950
发表于 2016-9-24 15:12:10      10#


我这里没有这个目录,能正常编译通过。
感觉编译不过的内核代码,不是教程里提到的代码。
回复

使用道具 举报

返回列表
12
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表