Вопрос или проблема
У меня есть устройство Raspberry Pi 3b+ (Arch64). Как правило, я использую Raspbian 64-bit, применяя инструмент Rasbian Imager для настройки моей SD-карты.
Меня интересует возможность запускать Archlinux 64-bit на том же устройстве. Я следую официальному руководству для его настройки отсюда:
Мне удалось успешно настроить SD-карту, создав необходимые разделы и файловые системы. Я также обновил /etc/fstab с правильными PARTUUID для монтирования разделов / и /boot.
Теперь я заметил, что мне нужно обновить файл /boot/boot.txt
и выполнить команду ./mkscr
после установки uboot-tools на другой работающей системе arch64 linux. Для этого я использовал экземпляр Archlinux arch64 из UTM на машине с MacOS серии M.
Вопрос в том, что необходимо обновить в файле /boot/boot.txt. Ниже приведен весь файл /boot/boot.txt, уже включенный в загруженный tarball:
# После изменения, выполните ./mkscr
# Установите корневой раздел на второй раздел загрузочного устройства
part uuid ${devtype} ${devnum}:2 uuid
setenv bootargs console=ttyS1,115200 console=tty0 root=PARTUUID=${uuid} rw rootwait 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
Я думаю, мне нужно обновить строку:
part uuid ${devtype} ${devnum}:2 uuid
Может кто-нибудь подсказать, что здесь нужно изменить, и нужно ли менять какой-либо другой файл в /boot/ для того, чтобы система заработала?
Ответ или решение
Конфигурация загрузочного раздела Archlinux ARM для 64-битного Raspberry Pi с использованием uboot может показаться сложной задачей, но с правильными инструкциями и вниманием к деталям, она вполне осуществима. Рассмотрим необходимые шаги для этой задачи.
Установка и настройка
-
Создание разделов на SD-карте: Известно, что вы уже успешно создали разделы и файловые системы на SD-карте, и обновили
/etc/fstab
с правильными PARTUUID для монтирования/
и/boot
. Это важный шаг, который необходимо выполнить для корректной работы системы. -
Редактирование файла boot.txt: Вам нужно внести корректировки в файл
/boot/boot.txt
, чтобы uboot правильно загружал вашу систему. Ваша задача — обновить строку:part uuid ${devtype} ${devnum}:2 uuid
На самом деле, uboot требует указания правильно идентификатора для корневого раздела. Вам следует заменить это на строку, обеспечивающую корректное управление загрузкой, например:
setenv uuid <PARTUUID вашего корневого раздела>
Чтобы получить текущую PARTUUID, вы можете использовать команду:
blkid
Это позволит вам определить идентификатор раздела, который следует подставить вместо
<PARTUUID вашего корневого раздела>
. -
Создание файла boot.scr: После внесения изменений в
boot.txt
, вам необходимо запустить команду./mkscr
для созданияboot.scr
. Это скрипт, который uboot прочитает при загрузке Raspberry Pi. Убедитесь, что у вас установлен пакетuboot-tools
, так какmkscr
— это часть этого пакета. -
Проверка других файлов в /boot/: Внимательно проверьте, объем ли загрузочные файлы, такие как ядро (
/Image
), устройство дерева (/dtbs/${fdtfile}
) и initramfs (/initramfs-linux.img
). Они должны соответствовать вашему оборудованию. -
Дополнительные изменения: Убедитесь, что переменная
bootargs
включает все необходимые параметры для вашей конфигурации, особенно если ваше оборудование требует специальных драйверов или параметров ядра.
Заключение
Эти шаги должны помочь в настройке Archlinux ARM с использованием uboot. Обратите внимание на важность правильного определения PARTUUID и убедитесь, что все файлы в /boot/
актуальны и соответствуют вашему устройству. Если вы столкнетесь с проблемами, обязательно проверьте лог загрузки для диагностики.
Эти действия позволят вам успешно запустить Archlinux на вашем Raspberry Pi и расширять свои возможности для работы с этой гибкой и настраиваемой операционной системой.