Hi3516DV300_9_Kernel的单独编译和验证


1.Kernel的单独编译和验证

1.1 打补丁

  • tar.gz的压缩比例没有那么狠
  • tar.xz的压缩比例则更狠,先得用xz软件解压成gz

14         cd opensource/kernel
15         tar -xzvf linux-4.9.37.tar.gz
16         mv linux-4.9.37 linux-4.9.y
17         cd linux-4.9.y
18         patch -p1 < ../linux-4.9.37.patch
19         cd ../
20         tar -czvf linux-4.9.y.tgz linux-4.9.y
21         cd ../../

1.2 编译Image

1.2.1 readme上的说明

46 (4)单独编译kernel(以hi3516dv300举例)47     注意:单独编译内核之前请先阅读osdrv/opensource/kernel下的readme_cn.txt说明。
48
49     待进入内核源代码目录后,执行以下操作
50     cp arch/arm/configs/hi3516dv300_smp_defconfig  .config
51     (emmc启动时执行如下操作:cp arch/arm/configs/hi3516dv300_emmc_smp_defconfig  .config)
52
53     make ARCH=arm CROSS_COMPILE=arm-himix200-linux- menuconfig
54     make ARCH=arm CROSS_COMPILE=arm-himix200-linux- uImage

1.2.2 具体操作过程说明

  • 首先,生成相应的.config文件,并且要对应是EMMC的才行

    cd /home/book/Hi3516DV300_Original/Hi3516CV500_SDK_V2.0.2.0/osdrv/opensource/kernel/linux-4.9.y
    cp arch/arm/configs/hi3516dv300_emmc_smp_defconfig  .config -f
  • make menuconfig

    make ARCH=arm CROSS_COMPILE=arm-himix200-linux- menuconfig

    其实这一步的menuconfig,也是在生成.config文件而已
    注意这一步也是要先load那个.config文件

  • 编译Image

    make ARCH=arm CROSS_COMPILE=arm-himix200-linux- uImage -j8

    在刚刚的步骤中,只是把make menuconfig中选择为y的部分编译进去了

实际上,在海思当中,有很多驱动是以模块的形式存在的,需要单独编译ko文件

1.3 编译模块

这一步,就是把配置为M的那些东西,也把它编译出来了
其实,也就是编译ko文件
编译好ko文件后,就把这些ko文件复制到根文件系统中去
当系统起来后,再通过imsmode的方式去加载它

1.3.1 readme中的说明文件

56 (5)单独编译模块(以hi3516dv300举例)57     待进入内核源代码目录后,执行以下操作
 58     cp arch/arm/configs/hi3516dv300_smp_defconfig  .config
 59     (emmc启动时执行如下操作:cp arch/arm/configs/hi3516dv300_emmc_smp_defconfig  .config)
 60     make ARCH=arm CROSS_COMPILE=arm-himix200-linux- menuconfig
 61     make ARCH=arm CROSS_COMPILE=arm-himix200-linux- modules

1.3.2 具体操作过程说明

  • 首先,生成相应的.config文件,并且要对应是EMMC的才行

    cd /home/book/Hi3516DV300_Original/Hi3516CV500_SDK_V2.0.2.0/osdrv/opensource/kernel/linux-4.9.y
    cp arch/arm/configs/hi3516dv300_emmc_smp_defconfig  .config -f
  • make menuconfig

    make ARCH=arm CROSS_COMPILE=arm-himix200-linux- menuconfig

    其实这一步的menuconfig,也是在生成.config文件而已
    注意这一步也是要先load那个.config文件

  • 编译模块

    make ARCH=arm CROSS_COMPILE=arm-himix200-linux- modules -j8

2烧录

2.1 Kernel的路径

cd /home/book/Hi3516DV300_Original/Hi3516CV500_SDK_V2.0.2.0/osdrv/opensource/kernel/linux-4.9.y/arch/arm/boot

2.2 烧写成功的截图

2.3 查看内核的编译时间

2.4 查看具体加载了哪些模块


Author: Ruimin Huang
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint polocy. If reproduced, please indicate source Ruimin Huang !
  TOC