查看: 20384|回复: 10

[原创] 【分享】树莓派内核编译教程

  [复制链接]
  • TA的每日心情
    开心
    2013-1-16 08:33
  • 签到天数: 17 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2012-12-5 09:23:01 | 显示全部楼层 |阅读模式
    分享到:
    如题,首先在https://github.com/raspberrypi/linux/上下载最新的内核源代码,连接如下:https://github.com/raspberrypi/linux/archive/rpi-3.2.27.zip然后安装编译工具如gcc、make、patch等,可以使用apt-get install gcc make命令

    然后检查系统时间,如果时间不对,可以手动设置一下时间,也可以重新启动ntp服务,自动对时

    将下载的内核文件放在随便找个目录放着,并用unzip解压它,

    unzip rpi-3.2.27.zip

    如果命令不成功则可能是没有安装unzip,可以使用apt-get install unzip命令安装就行了

    开始编译内核,首先使用以下命令对内核进行配置

    make menuconfig

    载图太麻烦了,所以我直接用鼠标选了图,大家将就的看看吧。

    需要说明的是在System Type  --->这一项里,一定要选择合适的cpu也就是armBCM2708这个型号,其它的东西大家可以自己选择,需要什么用星号表示将这一项编译进内核,M表示编译成模块。


    • .config - Linux/arm 3.2.27 Kernel Configuration
    • qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
    •   lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq System Type qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
    •   x  Arrow keys navigate the menu.  <Enter> selects submenus --->.  Highlighted letters are       x
    •   x  hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.  Press <Esc><Esc>   x
    •   x  to exit, <?> for Help, </> for Search.  Legend:
    • built-in  [ ] excluded  <M> module  < >  x
    •   x  module capable                                                                               x
    •   x lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk x
    •   x x
    • MMU-based Paged Memory Management Support                                    x x
    •   x x              ARM system type (Broadcom BCM2708 family)  --->                              x x
    •   x x              *** System MMU ***                                                           x x
    •   x x              Broadcom BCM2708 Implementations  --->                                       x x
    •   x x              *** Processor Type ***                                                       x x
    •   x x          -*- Support ARM V6 processor                                                     x x
    •   x x              *** Processor Features ***                                                   x x
    •   x x
    • Support Thumb user binaries                                                  x x
    •   x x          [ ] Disable I-Cache (I-bit)                                                      x x
    •   x x          [ ] Disable D-Cache (C-bit)                                                      x x
    •   x x          [ ] Disable branch prediction                                                    x x
    •   x x
    • Use non-cacheable memory for DMA                                             x x
    •   x x          [ ] ARM errata: FSR write bit incorrect on a SWP to read-only memory             x x
    •   x x          -*- ARM errata: Invalidation of the Instruction Cache operation can fail         x x
    •   x x          [ ] ARM errata: Possible cache data corruption with hit-under-miss enabled       x x
    •   x x                                                                                           x x
    •   x x                                                                                           x x
    •   x x                                                                                           x x
    •   x x                                                                                           x x
    •   x x                                                                                           x x
    •   x x                                                                                           x x
    •   x x                                                                                           x x
    •   x x                                                                                           x x
    •   x x                                                                                           x x
    •   x x                                                                                           x x
    •   x x                                                                                           x x
    •   x x                                                                                           x x
    •   x x                                                                                           x x
    •   x mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj x
    •   tqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu
    •   x                               <Select>    < Exit >    < Help >                                x
    •   mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj


    复制代码

    选择完了后可以使用左右键来进行选择<Select> < Exit > < Help >,退出时会自己保存配置

    如果你的在做make menuconfig时没有看到上面的画面,而是看到一堆英文,则一般是没有安装libncurses5-dev开发库,使用apt-get install libncurses5-dev来安装就行了

    当选择完成后直接make就可以了

    make程序会自己编译内核以及模块。

    安装模块使用make modules_install命令

    在make运行完成后需要重新生成一个镜像。这需要使用其它的工具。

    https://github.com/raspberrypi/tools上面有一个目录mkimage,这个目录下存有这些工具,将这里面的文件全部下载下来,存放在一个目录中,然后执行下面的命令:

    python imagetool-uncompressed.py 你的源代码目录/arch/arm/boot/Image

    很快这个命令就会执行完成,你会发现在目录下有一个kernel.img的文件,这个就是你的新内核,将它覆盖boot目录下的kernel.img文件,现在你可以使用新内核来启动你的pi了。
    回复

    使用道具 举报

    该用户从未签到

    发表于 2012-12-5 09:56:41 | 显示全部楼层
    支持下,加油{:soso_e128:}顺便抢个沙发,有图就更好了,图文并茂
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2013-3-4 18:23
  • 签到天数: 19 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2012-12-5 11:09:21 | 显示全部楼层
    不敢乱搞啊,经常编出来的内核启动不起来
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2013-2-26 12:37
  • 签到天数: 45 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2012-12-5 15:02:55 | 显示全部楼层
    收下 等版到了慢慢研究
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2013-3-7 12:21
  • 签到天数: 32 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2012-12-6 16:42:15 来自手机 | 显示全部楼层
    是不是学linux必备
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2013-6-21 12:27
  • 签到天数: 26 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2012-12-29 19:25:53 | 显示全部楼层
    本帖最后由 GeekNapster 于 2012-12-29 20:45 编辑

    今天就给大家编译一个,哈哈~

    另外,楼主可以尝试一下用手机微博发图,发完图片后,可以引用微博上的图片。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2013-3-22 15:09:06 | 显示全部楼层
    为什么是“armBCM2708”这个型号?? 可树莓派用的是BCM2835
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-10-26 11:08
  • 签到天数: 339 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2013-3-23 17:49:26 | 显示全部楼层
    不懂编译,但学习了,谢谢楼主的分享!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2016-7-28 09:42
  • 签到天数: 292 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2013-7-12 22:16:38 | 显示全部楼层
    哈哈  顶下帖子
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2016-1-22 11:18
  • 签到天数: 159 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2015-6-24 21:55:01 | 显示全部楼层
    这么好的教程 应该顶 楼主辛苦了
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-4-26 18:59 , Processed in 0.188692 second(s), 35 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.