Я перекомпилирую свой проект (https://github.com/warpme/minimyth2) в rpi3 (aarch64). У меня все компоненты скомпилированы, и сейчас я пытаюсь загрузить его на rpi3.
Я использую тебя-boot скрипт из arm archlinux с замененным образом ядра (Image.gz) и rootfs из моей компиляции
загрузки ядра. Также я вижу, что на консоли ядро монтирует нормально 2-й раздел (мой контент rootfs здесь).
, но позже журнал ядра сообщает:
Starting init: /sbin/init exists but couldn’t execute it (error -13)
Starting init: /sbin/sh exists but couldn’t execute it (error -13)
В соответствии с https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/tree/include/uapi/asm-generic/errno-base.h?h=v4.16.14 «ошибка -13» означает EACCES 13 /* Permission denied */.
Я дважды проверил: оба файлаroot: root и 755 (также их зависимости). Что еще может вызвать EACCES здесь?
Сценарий u-boot выглядит следующим образом:
# Set root partition to the second partition of boot device
part uuid ${devtype} ${devnum}:2 uuid
setenv bootargs console=ttyS1,115200 console=tty0 root=PARTUUID=${uuid} rw rootwait debug loglevel=7 smsc95xx.macaddr="${usbethaddr}"
if load ${devtype} ${devnum}:${bootpart} ${kernel_addr_r} /Image; then
if load ${devtype} ${devnum}:${bootpart} ${fdt_addr_r} /dtbs/${fdtfile}; then
if load ${devtype} ${devnum}:${bootpart} ${ramdisk_addr_r} /initramfs-linux.img; then
booti ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} ${fdt_addr_r};
else
booti ${kernel_addr_r} - ${fdt_addr_r};
fi;
fi;
fi
, поэтому я думаю, что rootfs смонтирован как rw
Если кто-то захочет просмотреть мои файлы, вот содержимое разделов boot и rootfs:
hxxp: //warped.inet2.org/boot.tar.bz2 hxxp: //warped.inet2.org / root.tar.bz2
Подводя итог:
1 \ на этапе монтирования rootfs, ядро говорит:
EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
2 \ kernel isв состоянии найти init (и выполнить откат к sh из-за неудачного выполнения init), как говорит ядро
Starting init: /sbin/init exists but couldn't execute it (error -13)
Starting init: /sbin/sh exists but couldn’t execute it (error -13)
3 \ добавление "rootflags=exec"
в командную строку ядра, вызывает монтирование root.
Мне кажется, что мой конфиг ядра каким-то образом поврежден, так как он может монтироваться, но не может выполняться на нем.
Прикрепление моего ядра cfg http://warped.inet2.org/kernel-config.tar.bz2) (пожалуйста, посмотрите linux-4.16.13-arm64-armv8.config)
Может кто-нибудь взглянуть на него и проверить, достаточно ли такой конфигурациисмонтировать rootfs без какого-либо initrd?(для подтверждения: я хочу смонтировать SD-карту ext4 rootfs прямо из образа ядра).
В качестве альтернативы: может ли кто-нибудь предоставить мне минимальную конфигурацию ядра aarch64, достаточную для U-boot rpi3 с общим ядром 4.16 с rootfs на разделе SD ext4 и без какого-либо initrd?
(PS: мой конфиг ядра основан на многоплатформенном ядре archlinux aarch64 и на 99,9% равен плечу archlinux)
(ниже приведен скриншот журнала ядра) загрузочный скриншот