簡體   English   中英

樹莓派 kernel 交叉編譯缺少配置選項?

[英]raspberry pi kernel cross compile missing config options?

我從我的 x86(docker 上的 ubuntu 容器)交叉編譯了一個 RPI3 32 位 kernel(docker 上的 ubuntu 容器),當嘗試禁用某些變量時(在我的情況下,例如 L2 緩存或分支預測)我找不到任何東西(通過搜索)。 在 RPI 本身 menuconfig 在“系統類型”中顯示了這些設置,但該菜單甚至不存在。

我遵循官方 RPI kernel 構建指南

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 文件夾,也可以重新開始。

這里的命令運行:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM