CubieBoard中文论坛

 找回密码
 立即注册
搜索
热搜: unable
查看: 12499|回复: 2

[经验] 升级 linux 内核到官方 git 版本 (3.4.67)

[复制链接]
发表于 2013-12-20 12:24:34 | 显示全部楼层 |阅读模式
本帖最后由 gpio 于 2013-12-20 13:01 编辑

板子到手后在nand中刷了一个官方 lubuntu 1.06 版本(下载地址), 用了一阵觉得不错, 很是喜爱, 之后由于要做一些操纵针脚跟其他模块打交道的程序, 所以准备自己开发 Linux  驱动来进行交互.

搞过 Linux 驱动的应该知道驱动的编译是需要指定内核源码路径的, 但是由于官方并没有把 lubuntu 1.06 版本的源代码放出来 (只有 1.05 的), 所以决定使用官方 git 最新源码, 自己编译个 Linux 内核.

0. 首先要确保板子 nand 内刷了 lubuntu 1.06 (下载地址), 因为此贴只谈如何升级现有内核, 而不是从 0 开始制作镜像.

1. 在PC上安装好交叉编译工具链:
  1. sudo apt-get install gcc-arm-linux-gnueabi
复制代码
2. 使用 git 下载官方源码:
    注意必须切换到 sunxi-3.4 分支!
  1. git clone -b sunxi-3.4 https://github.com/linux-sunxi/linux-sunxi.git
复制代码
3. 准备编译内核所需的配置文件, 注意这一步非常重要, 如果配置不正确, 板子的 nand 肯定驱动不了, 系统起不来! 这一步是楼主遇到的最大的坑, 在此要感谢 @寂寞八進制 的提醒, 才明白是哪里出了问题.
    如果开机时, 系统死在
  1. Waiting for root device /dev/nanda
复制代码
说明配置不正确, 或是配置中没有勾选 SUNXI nandflash driver, 请仔细检查这一步!

    这是我从官方源码包内抠出来的 cubieboard2 的配置
    其他型号的配置估计也能从官方源码包里弄到 (可以从这里面找)

解压出的配置文件复制到
  1. linux-sunxi/arch/arm/configs/
复制代码
配置文件的名字改成
  1. kernel_defconfig
复制代码
4. 开始编译: (注意 -j8 表示使用 8 个 CPU 编译, 改成你自己的 CPU 数目或者去掉都行)
  1. cd linux-sunxi
  2. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- kernel_defconfig
  3. make -j8 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage modules
  4. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=output modules_install
复制代码
5. 在板子上挂载 nanda 分区到文件系统
  1. mount /dev/nanda 你想挂载的路径
复制代码
6. 把 PC 上的 uImage 替换板子上的 uImage;
    把 PC 上的驱动, 覆盖到板子上根目录

PC 上 uImage 位置:
  1. linux-sunxi/arch/arm/boot
复制代码
PC 上驱动位置:
  1. linux-sunxi/output
复制代码
7. 自此, 内核就已经升级成功了, 可以把板子上 /lib/modules/3.4.61+ 文件夹删除, 因为它是上一版内核的驱动包, 升级内核之后就没有用了

8. 检查板子上的 /lib/modules 目录下有没有 3.4.67 目录, 如果操作正确是肯定有的

9. 重启系统
  1. reboot
复制代码
10. 启动之后查看内核版本, 可以看到 3.4.67 就是成功了
  1. uname -a
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

发表于 2013-12-26 17:06:59 | 显示全部楼层
你好,请问你用的什么板子?
回复 支持 反对

使用道具 举报

发表于 2014-6-6 09:17:13 | 显示全部楼层
写的很好,我也基本成功了。
之前花了好多时间,要不是选错了config文件,就是编译出错。
必须用下面的方式获取源代码,copy或者其他方式都不行!
git clone -b sunxi-3.4 https://github.com/linux-sunxi/linux-sunxi.git
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|粤ICP备13051116号|cubie.cc---深刻的嵌入式技术讨论社区

GMT+8, 2024-11-26 10:08 , Processed in 0.021122 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc. | Style by Coxxs

返回顶部