Regular/arm: различия между версиями

Материал из ALT Linux Wiki
Строка 143: Строка 143:
-machine virt -cpu cortex-a57 -m 2048 -smp 4 \
-machine virt -cpu cortex-a57 -m 2048 -smp 4 \
-bios <aarch64/QEMU_EFI-pflash.raw> \
-bios <aarch64/QEMU_EFI-pflash.raw> \
-drive if=none,id=sda,format=qcow2,file=<IMAGE>  \
-drive if=none,id=sda,format=raw,file=<IMAGE>  \
-device virtio-blk-device,drive=sda \
-device virtio-blk-device,drive=sda \
-device virtio-scsi -device scsi-hd,drive=sdb \
-device virtio-scsi -device scsi-hd,drive=sdb \

Версия от 15:46, 18 июля 2023

Регулярные сборки для архитектур процессора armh и aarch64

aarch64, armh,
x86_64, i586,
mipsel, riscv64
English

Введение

Регулярные сборки предназначены для тестирования репозитория Sisyphus. Подробнее об их назначении смотреть основную статью Regular. Сборки представляют собой архивы корневой файловой системы (rootfs) в формате img.xz или tar.xz, которую предстоит развернуть на SD-карте в соответствии с инструкцией, образы для запуска в qemu, и ISO-образы (установочные, LiveCD с возможностью установки, rescue - спасательный LiveCD). ISO-образы можно запустить на Raspberry Pi 3 и 4: RaspberryPi_and_UEFI.

При первом запуске rootfs и qemu-образов загружается мастер настройки системы из шести стандартных шагов, в котором вы принимаете условия лицензии, настраиваете часовой пояс и время, задаёте пароль суперпользователя root, создаёте системного пользователя. По завершении работы мастера произойдёт перезагрузка, после которой загрузится экран приветствия готовой к работе системы.

Cборки на базе стандартных ядер std-def, un-def тестируются на одноплатных компьютерах Raspberry Pi 3B Plus, Raspberry Pi 4B, Orange Pi Prime и qemu. Для запуска на других устройствах может потребоваться заменить ядро: выполнить update-kernel -t mp, запустив образ через qemu.

Прямые ссылки на загрузку[1]

Универсальные образы rootfs[2]:

Образы rootfs для Raspberry Pi (архив 20230510)

Гибридные ISO образы

Запись rootfs на SD-карту или USB накопитель

Действуйте согласно инструкции.

Запуск в QEMU

Шаг 0. Для запуска порта ALT на aarch64 и armh необходимо установить QEMU с поддержкой aarch64 и armh. Например, в случае хостовой системы на ALT x86_64: qemu-system-aarch64-core, qemu-system-arm-core. Также могут потребоваться пакеты: qemu-ui-sdl, qemu-device-display-virtio-vga, qemu-device-display-virtio-vga-gl, qemu-device-display-virtio-gpu, qemu-device-display-virtio-gpu-gl, seavgabios.


u-boot

Сборки должны содержать /boot/extlinux/extlinux.conf. При запуске загрузчик U-Boot ищет один из нескольких доступных механизмов загрузки ОС. Загрузка из файла extlinux.conf, содержащегося в папке /boot/extlinux раздела ext4 является одним из таких механизмов.

Шаг 1. Необходимо получить u-boot-qemu для архитектур armh и aarch64. Выбрать нужную архитектуру, распаковать rpm вручную - нужен файл u-boot.bin. Для распаковки подойдёт архиватор Engrampa графической среды Mate.

Шаг 2. После этого, скачав один из образов rootfs (см. выше) можно запускать QEMU, заменив <IMAGE> на путь к образу rootfs:

Для запуска qemu-образа aarch64 укажите вместо <aarch64/u-boot.bin> путь к u-boot для aarch64:

$ qemu-system-aarch64 \
	-machine virt -cpu cortex-a57 -m 2048 -smp 4 \
	-bios <aarch64/u-boot.bin> \
	-drive if=none,id=sda,format=raw,file=<IMAGE>  \
	-device virtio-blk-device,drive=sda \
	-device virtio-keyboard -device virtio-tablet \
	-net nic -net user,hostfwd=tcp::2270-:22 \
	-device virtio-gpu-gl,xres=1366,yres=768 -nographic -display sdl,gl=on

Для запуска qemu-образа armh укажите вместо <armh/u-boot.bin> путь к u-boot для armh:

$ qemu-system-arm \
	-machine virt -m 2048 -smp 4 \
	-bios <armh/u-boot.bin> \
	-drive if=none,id=sda,format=raw,file=<IMAGE>  \
	-device virtio-blk-device,drive=sda \
	-device virtio-keyboard -device virtio-tablet \
	-net nic -net user,hostfwd=tcp::2270-:22 \
	-device virtio-gpu-gl,xres=1366,yres=768 -nographic -display sdl,gl=on

Весь текстовый вывод будет отображаться в терминале. Графика на экране sdl. Обычно для входа: root/altlinux.

Для запуска по протоколу vnc замените '-device virtio-vga-gl -display sdl,gl=on' на '-device virtio-vga -vnc :0'. И подключайтесь командой:

remote-viewer vnc://localhost:5900

Порт 5900 соответствует опции -vnc :0 Порт 5901 - опции -vnc :1 и т.д.

Также можно подключиться по ssh:

ssh <user>@127.0.0.1 -p 2270

Стоит заметить, что ssh сервер стоит по умолчанию не во всех сборках.

EFI

На данный момент доступно только для aarch64.

Шаг 1. Необходимо получить edk2-aarch64 для архитектуры aarch64

Шаг 2. После этого, скачав один из ISO-образов (см. выше) можно запускать QEMU. Для запуска ISO-образа aarch64 укажите вместо <aarch64/QEMU_EFI-pflash.raw> путь к образу edk2 для aarch64, а вместо <ISO> в команде на путь к ISO-образу:

$ qemu-system-aarch64 \
	-machine virt -cpu cortex-a57 -m 2048 -smp 4 \
	-bios <aarch64/QEMU_EFI-pflash.raw> \
	-drive if=none,id=sda,format=raw,file=<IMAGE>  \
	-device virtio-blk-device,drive=sda \
	-device virtio-scsi -device scsi-hd,drive=sdb \
	-drive if=none,id=sdb,media=cdrom,file=<ISO> \
	-device usb-ehci -device usb-kbd -device usb-mouse \
	-device virtio-net-device,netdev=net0 -netdev user,id=net0 \
	-device virtio-gpu-gl -display sdl,gl=on

Как сообщить об ошибке

Во-первых, ознакомьтесь с соответствующим разделом.

Сообщения об ошибках принимаются по адресу https://bugzilla.altlinux.org/ (см. BugTracking).

  • если проблема в пакете, выбирайте продукт Sisyphus, компонент соответствующий имени пакета, платформа armh или aarch64.
  • если проблема в сборке или образе, выбирайте продукт Regular, компонент, соответствующий DE по умолчанию, платформа armh или aarch64.

ВАЖНО:

  • указать Platform: aarch64 или armh (справа в верхней части формы создания бага)
  • назначить ошибку на antohami@altlinux.org

См. также Краткое пособие по использованию Bugzilla

Известные проблемы

1 Общие:
1.1 Выключены ждущий, спящий режимы и гибернация, так как система не выходит из них. Отключены в /etc/systemd/sleep.conf. На sysvinit в /etc/elogind/logind.conf. Не касается сборок Nvidia Jetson Nano.
1.2 Проблемы из-за отсутствия аппаратных часов. При загрузке время обнуляется на дату релиза systemd. При использовании sysVinit вообще на 1970 год. Тем не менее время синхронизируется сразу же после подключения к интернету.
2 Raspberry Pi 4:
2.1 Если монитор подключен к разъёму HDMI рядом с USB Type C, то монитор отключается при загрузке drm модуля vc.ko. Поэтому, если монитор один, то его нужно подключать ко второму разъёму HDMI. Проблема на ядрах std-def и un-def: 5.10 >= 5.10.121, 5.15 >= 5.15.46, 5.17 >= 5.17.14, 5.18 >= 5.18.4.


3 Невозможно загрузиться после make-initrd

Для обхода проблемы можно собирать универсальный initrd. Для этого:

cp /etc/initrd.mk.oem /etc/initrd.mk

После чего make-initrd будет собирать очень большой ram-диск, который точно загрузится на поддерживаемых ядром платах.

  1. Это ссылки на сборки, помеченные как tested. Помимо них есть ещё несколько снапшотов: aarch64 armh
  2. Пароль у суперпользователя altlinux
  3. минималистичный инсталятор, предоставляющий опытным пользователям возможность доустановить всё нужное на конкретной системе по своему усмотрению; он же Just Enough Operating System