我是linux新手,我真的需要你的帮助。
我正在为我的学习实习做一个项目:控制传感器并将结果显示在LCD屏幕上
为此,我将使用raspberry并创建一个QT应用程序来显示传感器的结果。
引导时间需要非常短,因此我想为我的raspberri pi-4b创建一个最小的内核
我为arm64做了交叉编译:
mkdir rasp_arm64
cd rasp_arm64/
git clone --depth=1 https://github.com/raspberrypi/linux
sudo apt-get install qemu-system-arm
sudo apt-get install lzop
sudo apt-get install gcc-aarch64-linux-gnu
cd linux/
make -j8 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- mrproper
make -j8 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- bcm2711_defconfig
make -j8 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- Image modules dtbs
我就是这么做的
我怎样才能为我的树莓派4的SDcard创建一个.img文件呢?
我还做过https://www.raspberrypi.org/documentation/linux/kernel/building.md的工作
我补充说(有人也澄清了为什么我们需要这个) KERNEL=kernel8
在那之后我做了make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- Image modules dtbs
mkdir mnt
mkdir mnt/fat32
mkdir mnt/ext4
sudo mount /dev/sdb6 mnt/fat32
sudo mount /dev/sdb7 mnt/ext4
sudo env PATH=$PATH make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- INSTALL_MOD_PATH=mnt/ext4 modules_install
sudo cp mnt/fat32/$KERNEL.img mnt/fat32/$KERNEL-backup.img
我收到一个错误,告诉我mnt/fat32/.img没有这样的文件或目录
我也试过了
$ sudo cp arch/arm64/boot/dts/overlays/*.dtb* mnt/fat32/overlays/
cp: target 'mnt/fat32/overlays/' is not a directory
所以我试着创建它
$ mkdir mnt/fat32/overlays
mkdir: cannot create directory ‘mnt/fat32/overlays’: Permission denied
谁能帮助我,我被困在这个错误了2个星期,我需要建立我的内核开始工作!
我也不知道这个版本的内核和这个配置是否是最小的。我可以有一个最小的启动时间与这个配置(我想改变启动顺序,只启用设备需要我的应用程序,但我当然不知道如何做),如果有人可以帮助,请照亮我!!即使你只知道一个不错的教程来推荐我或者别的什么..
如果有人能帮上忙,我将不胜感激
发布于 2020-11-18 23:15:07
这里最明显的问题是$KERNEL
的计算结果为零。这可能是因为它在本地分配了一个值,并且没有导出。不使用KERNEL=kernel8
,而使用
export KERNEL=kernel8
这将确保无论在哪里使用$KERNEL
,它的计算结果都是kernel8
,这将解决这个问题,并且sudo cp mnt/fat32/$KERNEL.img mnt/fat32/$KERNEL-backup.img
将作为sudo cp mnt/fat32/kernel8.img mnt/fat32/kernel8-backup.img
执行。
发布于 2020-11-19 16:37:39
mkdir rasp_off_exp
cd rasp_off_exp/
sudo apt install git bc bison flex libssl-dev make libc6-dev libncurses5-dev
sudo apt install crossbuild-essential-arm64
git clone --depth=1 https://github.com/raspberrypi/linux
cd linux/
export KERNEL=kernel8
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- bcm2711_defconfig
make -j8 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- Image modules dtbs
lsblk
mkdir mnt
mkdir mnt/fat32
mkdir mnt/ext4
sudo mount /dev/mmcblk0p1 mnt/fat32
sudo mount /dev/mmcblk0p2 mnt/ext4
sudo env PATH=$PATH make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- INSTALL_MOD_PATH=mnt/ext4 modules_install
sudo cp mnt/fat32/kernel8.img mnt/fat32/kernel8-backup.img
这是代码,但我得到了
cp: cannot stat 'mnt/fat32/kernel8.img': No such file or directory
发布于 2021-02-03 05:54:02
https://www.raspberrypi.org/documentation/linux/kernel/building.md中的指令缺少一个步骤,并切换了其他两个步骤的顺序。这是可行的:
sudo cp arch/arm/boot/zImage mnt/fat32/$KERNEL.img
sudo cp mnt/fat32/$KERNEL.img mnt/fat32/$KERNEL-backup.img
sudo cp arch/arm/boot/dts/*.dtb mnt/fat32/
sudo mkdir mnt/fat32/overlays
sudo cp arch/arm/boot/dts/overlays/*.dtb* mnt/fat32/overlays/
https://stackoverflow.com/questions/64893460
复制相似问题