Regular/riscv64: различия между версиями
(→Запуск на QEMU: Update QEMU Linux kernel link.) |
Arei (обсуждение | вклад) (→Запуск на QEMU: Обновить инструкцию для новой версии OpenSBI) |
||
Строка 60: | Строка 60: | ||
Для запуска образов на QEMU необходимо выполнить следующие шаги: | Для запуска образов на QEMU необходимо выполнить следующие шаги: | ||
'''Шаг 1.''' Для запуска порта ALT на RISC-V необходимо установить QEMU с поддержкой riscv64. Например, в случае хостовой системы | '''Шаг 1.''' Для запуска порта ALT на RISC-V необходимо установить QEMU с поддержкой riscv64. Например, в случае хостовой системы ALT x86_64: [http://sisyphus.ru/en/srpm/Sisyphus/qemu qemu-system-riscv-core]. | ||
'''Шаг 2.''' | '''Шаг 2.''' | ||
'''Шаг 3.''' После этого, скачав один из образов для QEMU ([[#QEMU|см. выше]]) можно запускать QEMU, заменив <IMAGE> на путь к образу qcow2c: | ==== <p style="color:#337569;">ALT x86_64</p> ==== | ||
Далее необходимо установить или распаковать пакет с [https://github.com/riscv/opensbi OpenSBI] и [https://www.denx.de/wiki/U-Boot/ U-Boot]. Для этого, в случае '''хостовой системы ALT x86_64''' (если это не так, [[#Другая система|см. ниже]]) можно добавить noarch репозиторий riscv64 и установить пакет <code>opensbi-firmware-generic</code>: | |||
<source lang="shell"> | |||
$ apt-repo add 'rpm [sisyphus-riscv64] http://ftp.altlinux.org/pub/distributions/ALTLinux ports/riscv64/Sisyphus/noarch classic' | |||
$ apt-get update | |||
$ apt-get install opensbi-firmware-generic | |||
</source> | |||
После этого в вашей системе появится нужный файл прошивки <code>/usr/share/opensbi/generic/firmware/fw_payload.elf</code>. | |||
==== <p style="color:#337569;">Другая система<p> ==== | |||
В этом случае можно скачать пакет <code>opensbi-firmware-generic-.*</code> из репозитория [http://ftp.altlinux.org/pub/distributions/ALTLinux/ports/riscv64/Sisyphus/noarch/RPMS.classic/ sisyphus-riscv64 noarch]. После этого, можно установить этот пакет в систему используя <code>rpm -i</code> или распаковать его <code>rpm2cpio</code>. | |||
Кроме этого, можно достать файл прошивки <code>/usr/share/opensbi/generic/firmware/fw_payload.elf</code> из загруженного образа qcow2c с помощью <code>qemu-nbd</code>. | |||
'''Шаг 3.''' После этого, скачав один из образов для QEMU ([[#QEMU|см. выше]]) можно запускать QEMU, заменив <code><IMAGE></code> на путь к образу qcow2c, а <code><FIRMWARE></code> на путь к <code>fw_payload.elf</code>: | |||
<source lang="shell"> | <source lang="shell"> | ||
$ qemu-system-riscv64 -nographic -machine virt \ | $ qemu-system-riscv64 -nographic -machine virt \ | ||
- | -bios <FIRMWARE> \ | ||
-m 2G -smp cpus=4 | -m 2G -smp cpus=4 \ | ||
-drive file=<IMAGE> | -drive file=<IMAGE>,id=hd0 -device virtio-blk-device,drive=hd0 \ | ||
-netdev user,id=eth0 -device virtio-net-device,netdev=eth0 | -netdev user,id=eth0 -device virtio-net-device,netdev=eth0 | ||
</source> | </source> | ||
Строка 82: | Строка 94: | ||
<source lang="shell"> | <source lang="shell"> | ||
$ qemu-system-riscv64 -nographic -machine virt \ | $ qemu-system-riscv64 -nographic -machine virt \ | ||
- | -bios <FIRMWARE> \ | ||
-m 2G -smp cpus=4 | -m 2G -smp cpus=4 \ | ||
-drive file=<IMAGE> | -drive file=<IMAGE>,id=hd0 -device virtio-blk-device,drive=hd0 \ | ||
-netdev user,id=eth0,hostfwd=tcp::5900-:5900 -device virtio-net-device,netdev=eth0 | -netdev user,id=eth0,hostfwd=tcp::5900-:5900 -device virtio-net-device,netdev=eth0 | ||
</source> | </source> |
Версия от 02:14, 28 января 2021
Регулярные сборки для одноплатных компьютеров с архитектурой процессора RISC-V (rv64gc)
Краткий обзор
Регулярные сборки образов предназначены для разработки и тестирования порта на архитектуру RISC-V (rv64gc) репозитория Sisyphus.
Подробную информацию о регулярных сборках можно прочитать здесь.
В случае предложений или обнаружения ошибок смотрите раздел "Обратная связь".
После загрузки системы с предложенными ниже образами необходимо ввести следующие логин и пароль:
login: root
password: alt
Графический образ с XFCE не имеет предустановленного пароля для root. Во время первого запуска пользователю предлагается выполнить настройку системы самостоятельно через графическое меню.
В случае системы для разработчика (builder) есть также предустановленный пользователь:
login: altlinux
password: alt
HiFive Unleashed
На текущий момент опубликованы четыре вида образов для платы SiFive HiFive Unleashed:
- Минимальная система с systemd -- ссылка (MD5, SHA1)
- Минимальная система с SysV -- ссылка (MD5, SHA1)
- Минимальная система для разработчика (rpmbuild, hasher, gcc-8, ssh) -- ссылка (MD5, SHA1)
- Графическая система с XFCE (VNC, X11) -- ссылка (MD5, SHA1)
Инструкция для запуска образов на HiFive Unleashed находится в разделе "Запуск на HiFive Unleashed".
QEMU
Помимо образов для платы HiFive Unleashed подготовлены образы для эмулятора QEMU:
- Минимальная система с systemd -- ссылка (MD5, SHA1)
- Минимальная система с SysV -- ссылка (MD5, SHA1)
- Минимальная система для разработчика (rpmbuild, hasher, gcc 8, ssh) -- ссылка (MD5, SHA1)
- Графическая система с XFCE (VNC, X11) -- ссылка (MD5, SHA1)
Инструкция для запуска образов в QEMU находится в разделе "Запуск на QEMU".
Запуск на QEMU
Для запуска образов на QEMU необходимо выполнить следующие шаги:
Шаг 1. Для запуска порта ALT на RISC-V необходимо установить QEMU с поддержкой riscv64. Например, в случае хостовой системы ALT x86_64: qemu-system-riscv-core.
Шаг 2.
ALT x86_64
Далее необходимо установить или распаковать пакет с OpenSBI и U-Boot. Для этого, в случае хостовой системы ALT x86_64 (если это не так, см. ниже) можно добавить noarch репозиторий riscv64 и установить пакет opensbi-firmware-generic
:
$ apt-repo add 'rpm [sisyphus-riscv64] http://ftp.altlinux.org/pub/distributions/ALTLinux ports/riscv64/Sisyphus/noarch classic'
$ apt-get update
$ apt-get install opensbi-firmware-generic
После этого в вашей системе появится нужный файл прошивки /usr/share/opensbi/generic/firmware/fw_payload.elf
.
Другая система
В этом случае можно скачать пакет opensbi-firmware-generic-.*
из репозитория sisyphus-riscv64 noarch. После этого, можно установить этот пакет в систему используя rpm -i
или распаковать его rpm2cpio
.
Кроме этого, можно достать файл прошивки /usr/share/opensbi/generic/firmware/fw_payload.elf
из загруженного образа qcow2c с помощью qemu-nbd
.
Шаг 3. После этого, скачав один из образов для QEMU (см. выше) можно запускать QEMU, заменив <IMAGE>
на путь к образу qcow2c, а <FIRMWARE>
на путь к fw_payload.elf
:
$ qemu-system-riscv64 -nographic -machine virt \
-bios <FIRMWARE> \
-m 2G -smp cpus=4 \
-drive file=<IMAGE>,id=hd0 -device virtio-blk-device,drive=hd0 \
-netdev user,id=eth0 -device virtio-net-device,netdev=eth0
В случае графического образа с XFCE необходимо перенаправить входящие TCP соединения к хосту на порт 5900 (VNC) в гостевую машину. Для этого можно воспользоваться следующей командой:
$ qemu-system-riscv64 -nographic -machine virt \
-bios <FIRMWARE> \
-m 2G -smp cpus=4 \
-drive file=<IMAGE>,id=hd0 -device virtio-blk-device,drive=hd0 \
-netdev user,id=eth0,hostfwd=tcp::5900-:5900 -device virtio-net-device,netdev=eth0
Информация о подключении к системе с графическим образом через VNC находится в разделе "VNC".
Запуск на HiFive Unleashed
Данная инструкция предполагает, что пользователь работает на машине с установленным ALT Sisyphus. Для запуска на плате HiFive Unleashed необходимо выполнить следующие шаги:
Шаг 1. Скачайте минимальный образ для платы (см. выше), который представляет собой tar архив с rootfs. Существует два варианта установки системы: автоматическая установка на системе ALT Sisyphus и ручная.
Автоматическая установка
Для автоматической установки требуется подготовка карты microSD в системе ALT Sisyphus.
Шаг 2. Установите пакет alt-rootfs-installer.
Шаг 3. Запустите установщик alt-rootfs-installer. Он автоматически выполнит разметку microSD карты и установку системы. Пример команды, для установки на microSD карту /dev/sdX образа regular-builder-alpha20190329-riscv64.tar.xz, с выводом логов в /home/user/alt-rootfs-installer.log:
$ alt-rootfs-installer --rootfs=/home/user/images/regular-builder-alpha20190329-riscv64.tar.xz \
--media=/dev/sdX \
--target=HiFive-Unleashed-bbl --log /home/user/alt-rootfs-installer.log
После этого на диске /dev/sdX будет создано два раздела. На первом разделе содержится загрузчик bbl со статически слинкованным ядром Linux. На втором разделе будет находиться корневая файловая система.
microSD карта готова к использованию с HiFive Unleashed.
Ручная установка
Шаг 2. Распакуйте директорию /boot из архива полученного на шаге 1. Например, в случае минимального образа с systemd:
$ tar -xf regular-jeos-latest-riscv64.tar.xz ./boot
После чего в ./boot/vmlinuz будет находиться symlink на ядро.
Шаг 3. Создайте GPT таблицу с двумя разделами на вашей microSD карте:
- Первый раздел должен иметь специальный GUID 2E54B353-1271-4842-806F-E436D6AF6985
- Второй раздел с Linux Filesystem GUID 0FC63DAF-8483-4772-8E79-3D69D8477DE4
Пример команды для разметки /dev/sdX:
$ sgdisk -g --clear \
--new=1:2048:67583 --change-name=1:bootloader --typecode=1:2E54B353-1271-4842-806F-E436D6AF6985 \
--new=2:264192: --change-name=2:root --typecode=2:0FC63DAF-8483-4772-8E79-3D69D8477DE4 \
"/dev/sdX"
Шаг 4. Запишите файл с ядром и bbl на первый раздел microSD:
$ dd if=boot/vmlinuz of=/dev/sdX1 bs=4M status=progress
Шаг 5. Создайте файловую систему на втором разделе microSD. Примонтируйте его и распакуйте туда tar архив:
$ mkfs.ext4 /dev/sdX2
$ mount /dev/sdX2 /mnt
$ tar -xpvf regular-jeos-latest-riscv64.tar -C /mnt/
$ umount /dev/sdX2
microSD карта готова к использованию с HiFive Unleashed.
VNC
При первом запуске, пользователю будет предложено выполнить первоначальную настройку системы в графическом меню. Во время настройки можно установить временную зону, пароль пользователя root, пароль для подключения к VNC, задать нового пользователя и т.д. В случае использования QEMU, всё, что нужно сделать это подключиться к VNC серверу внутри гостевой машины, который доступен по адресу 127.0.0.1. Для этого, можно воспользоваться, например tigerVNC:
$ vncviewer 127.0.0.1
В случае платы HiFive Unleashed необходимо узнать IP адрес этой машины, который она автоматически получает по DHCP. Один из способов, которым это можно сделать, заключается в подключении к последовательной консоли через microUSB разъём на плате. Для подключения к последовательной консоли (обычно /dev/ttyUSB1) с помощью GNU/screen воспользуйтесь следующей командой:
$ screen /dev/ttyUSB1 115200
Во время загрузки системы, будет выведено сообщение об IPv4 и IPv6 адресах сетевого устройства используемого по умолчанию в виде:
[ 128.084540] xinit[276]: ALTERATOR SETUP === Default device: "eth0"
[ 128.084888] xinit[276]: ALTERATOR SETUP === IPv4: "192.168.88.216/24"
[ 128.085110] xinit[276]: ALTERATOR SETUP === IPv6: "fe80::72b3:d5ff:fe92:f229/64"
Подключение к VNC серверу выполняется аналогичным образом:
$ vncviewer 192.168.88.216
Обратная связь
• Сообщения об ошибках принимаются через bugzilla.
- В случае, если проблема в пакете, то при создании ошибки выбирайте Sisyphus
- В случае проблем с образами выбирайте Regular
В качестве платформы укажите riscv64 (выпадающий список справа). В качестве исполнителя укажите arei@altlinux.org.
• IRC канал #altlinux-riscv на freenode.
• Список рассылки: riscv-devel@lists.altlinux.org