树莓派内核编译,替换。

一、准备工作

        下载linux内核源码树。

        下载地址:Raspberry Pi · GitHub 

        下载好之后传送到ubuntu里面。

        下载安装交叉编译工具链。

二、内核配置

        内核配置有三种方式。

        第一种:基于厂家提供的linux内核源码(.config文件)进行配置。

        第二种:make menuconfig 根据厂家提供的一项一项的配置。

        第三种:自己搞。


三、如何配置树莓派linux的内核。

        树莓派2,3的工程是bcm2709_defconfig.

  第一种方式。

        (1)先搜索一下所有的config文件,看有没有bcm2709_defconfig这个文件

find -name *_defconfig

          在里面找到这个bcm2709_defconfig的文件。

        (2)获取bcm2709_defconfig的配置到.config

ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make bcm2709_defconfig
指定ARM架构   指定编译器                             树莓派   主要核心指令

第二种方式。

       (1) 配置之前需要安装一些库,索性一致性把编译需要用的库也安装掉。

sudo apt-get install bc
sudo apt-get install libncurses5-dev libncursesw5-dev
sudo apt-get install zlib1g:i386
sudo apt-get install libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5

       (2) 配置命令:

ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make menuconfig

        执行结果如下:


四、编译linux内核

        (1)编译命令如下,内核编译的时间比较长,我编译了大概20多分钟

ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make -j4 zImage modules dtbs
j4指定用多少电脑资源进行编译 (j4表示4核)zImage表示生成内核镜像 modules要生成驱动模块 dtbs生成配置文件

如何知道自己编译成功还是失败?

(1)首先确定它没有报错,其次源码树目录上面生成vmlinux,反之失败。

 (2) vmlinux就是没有压缩的linux,它真正的linux内核应该生成在  arch/arm/boot  下面。


五、打包zImage成为树莓派可用的镜像文件。

(1)使用linux内核源码里的工具,把zImage打包成kernel_new.img。

./scripts/mkknlimg arch/arm/boot/zImage ./kernel_new.img

 (2)连接U盘到虚拟机,使用demsg命令查看SD卡。

 六、挂载U盘到ubuntu。

          树莓派的SD卡有两个分区:
          一个fat分区。是boot相关的内容,kernel的img文件在此分区。
          一个是ext4分区,也就是系统的根目录分区。

       (1) 先创建两个文件夹,data1对应fat分区,data2对应ext4分区。

mkdir data1
mkdir data2

        (2)使用 mount 命令将分区挂载到对应的文件夹,fat分区挂载到了data1,ext4分区挂载到了data2。

sudo mount /dev/sdc1 data1
sudo mount /dev/sdc2 data2

        (3)安装modules,设备驱动文件到 ext4 分区,对应的就是data2分区,绝对路径根据自己的修改。

sudo ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make INSTALL_MOD_PATH=/home/secret/data2 modules_install

        (4)安装更新kernel.img,!注意镜像名字是kernel7.img,更新前最好备份一份,再把 把编译生成的kernel_new.img拷贝到data1分区里面,拷贝完成后 可使用 md5sum 命令来对比一下编码值,确保拷贝过程中没有损坏。----注意此命令在内核源码树下面来执行。

cp kernel_new.img /home/chenlc/data1/kernel7.img

        (5)拷贝其他配置文件

cp arch/arm/boot/dts/.*dtb* /home/cai/data1
cp arch/arm/boot/dts/overlays/.*dtb* /home/cai/data1/overlays/
cp arch/arm/boot/dts/overlays/README /home/cai/data1/overlays/

七、替换内核完成。

        到了这一步你就可以把SD卡插到树莓派上面启动了,不过为了方便观看启动过程可以配置串口登录。修改cmdline.txt文件,配置成如下,就可以了。

 dwc_otg.lpm_enable=0 console=tty1 console=serial0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

                                                                                                                     当你停下来休息时, 别人却还在拼命奔跑。
                             

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

走下去-别回头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值