Firefly开源社区

打印 上一主题 下一主题

Firefly-RK3399 Linux内核编译

148

积分

3

威望

0

贡献

技术小白

积分
148

Firefly-RK3399 Linux内核编译

发表于 2017-9-21 15:11:30      浏览:58267 | 回复:43        打印     [复制链接] 楼主
本帖最后由 F_Developer_X 于 2017-9-21 15:11 编辑

一、简介
    Firefly提供的ubuntu固件中存在不少的bug,比如说设置系统时间之后,图像界面会出现严重的bug,所有的窗口都无法拖动和关闭,只能重新启动,这样就无法执行更新系统时间的操作。由于官方没有提高最新Linux内核版本的烧写固件,为了解决一些比较严重的bug,需要自行编译Linux内核进行更新,接下来就介绍一下Linux内核编译和更新的操作流程。

二、编译环境搭建

    本次Linux内核编译的主机系统是Ubuntu16.04。在进入内核编译之前,首先需要在主机系统上安装一些依赖包,否则编译过程中会出现一系列问题。使用以下命令安装依赖的包:
           sudo apt-get install build-essential lzop libncurses5-dev libssl-dev libc6:i386

    其中,如果使用的是64位的Ubuntu,必须安装libc6:i386
    接下来就可以下载firefly-rk3399的Linux内核和GCC交叉编译工具链了。可以在Ubuntu系统下使用Git工具克隆,但是速度可能会比较慢,最好是直接从Github上下载压缩文件后再在Ubuntu系统中解压,如下图所示,其中linux-kernel-firefly是Linux内核源码,prebuilts是交叉编译工具链。

   
    内核源码结构如下图:

   
    从Linux源代码中的顶层Makefile文件中可以发现,编译内核时,会使用内核源代码同一级目录中的prebuilts目录中的交叉工具编译链,所以需要确保交叉工具编译链的目录结构和名称符合该要求。



三、Linux内核编译


   在内核源码的目录下,执行make ARCH=arm64 firefly_linux_defconfig命令,使用firefly-rk3399的默认配置。


  配置好内核之后,执行make ARCH=arm64 rk3399-firefly-linux.img -j4命令开始编译内核。


  内核编译时间视电脑配置而定,当出现如下图提示,表示内核源代码已经成功完成编译。


   内核编译完成后会在内核源码目录下生成kernel.img和resource.img文件,如下图所示,这是我们更新内核所需要的镜像文件。


四、Linux内核烧录

   将编译内核后生成的kernel.img和resource.img拷贝到一个目录下,打开瑞芯微的烧写工具,仅仅勾上名字为kernel和resource的勾,并且将得到的kernel.img和resource.img选中到该烧写工具中,如下图所示,最后点击执行开始更新内核。


五、总结

   系统重新启动后,可以使用uname -a命令查看下内核信息,和内核更新前进行对比,发现,内核版本从4.4.52更新到了4.4.55,还能看到内核的具体编译时间。经过测试,发现设置时间引发图形界面卡死的问题得到了解决。






回复

使用道具 举报

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

本版积分规则

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