【问题标题】:raspberry pi kernel cross compile missing config options?树莓派内核交叉编译缺少配置选项?
【发布时间】:2021-03-25 17:29:12
【问题描述】:

我从我的 x86(docker 上的 ubuntu 容器)交叉编译了一个 RPI3 32 位内核,当我尝试禁用某些变量时(在我的情况下,例如 L2 缓存或分支预测)我找不到任何东西(通过搜索)。 RPI 本身 menuconfig 在“系统类型”中显示了这些设置,但该菜单甚至不存在。

我关注了the official RPI kernel build guide

sudo apt install crossbuild-essential-armhf

git clone --depth=1 https://github.com/raspberrypi/linux

export KERNEL=kernel7

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcmrpi_defconfig

make menuconfig

我期望找到的是:
CPU_ICACHE_DISABLE
CPU_DCACHE_DISABLE
禁用分支预测


更新:
对于更简单的 make 命令,我设置了一些环境变量

export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
export MAKEFLAGS=j4

然后在运行make defconfig(默认配置基于'multi_v7_defconfig')时,生成的make menuconfig 比我预期的要多得多。

我还需要验证,现在正在构建。

【问题讨论】:

    标签: linux raspberry-pi kernel raspberry-pi3


    【解决方案1】:

    不知道为什么,但我可以看到菜单和变量。甚至删除了 linux 文件夹也做了一个干净的开始。

    命令在这里运行:

    sudo mount /dev/mmcblk0p1 /mnt/fat32
    sudo mount /dev/mmcblk0p2 /mnt/ext4
    
    cd linux
    export KERNEL=kernel7 && export ARCH=arm && export CROSS_COMPILE=arm-linux-gnueabihf- && export MAKEFLAGS=j4 && export INSTALL_MOD_PATH=mnt/ext4
    
    make bcm2709_defconfig
    make menuconfig
    
    time make zImage modules dtbs
    
    env PATH=$PATH make modules_install
    cp arch/arm/boot/zImage /mnt/fat32/kernel_cross.img
    cp arch/arm/boot/dts/*.dtb /mnt/fat32/
    cp arch/arm/boot/dts/overlays/*.dtb* /mnt/fat32/overlays/
    cp arch/arm/boot/dts/overlays/README /mnt/fat32/overlays/
    
    exit
    
    sudo umount /mnt/ext4
    sudo umount /mnt/fat32
    

    将 SD 卡移至 RPI 并启动。 (uname -a 显示新的编译时间,禁用时没有 SMP)

    如果有人感兴趣,请向 docker 说明。我运行一个 ubuntu docker,将两个挂载的分区都作为共享文件夹。

    sudo mount /dev/mmcblk0p1 /mnt/fat32
    sudo mount /dev/mmcblk0p2 /mnt/ext4
    docker run -it ubuntu -v /mnt/fat32/:/mnt/fat32 -v /mnt/ext4/:/mnt/ext4 /bin/bash
    

    【讨论】:

      猜你喜欢
      • 2021-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-19
      • 2013-12-12
      • 2015-09-20
      • 2021-05-17
      • 1970-01-01
      相关资源
      最近更新 更多