HiFive Unmatched: различия между версиями
Jqt4 (обсуждение | вклад) |
|||
Строка 7: | Строка 7: | ||
== Образы ALT == | == Образы ALT == | ||
На текущий момент еженедельно собираются регулярные сборки: [[Regular/riscv64]]. | |||
Образы требуется записать через alt-rootfs-installer или вручную. | |||
=== alt-rootfs-installer === | === Запись с помощью alt-rootfs-installer === | ||
alt-roofs-installer | Требуется установить alt-roofs-installer версии не ниже 0.5.2. | ||
< | <source lang="shell"> | ||
# alt-rootfs-installer --target=HiFive-Unmatched --image-in=/path/to/<image>-riscv64.img.xz --media=/dev/sdX | |||
</ | </source> | ||
Если на плате не установлен графический адаптер и записывается образ с графикой, то необходимо добавить опцию --vnc=1. | |||
Про режим подробнее написано в: [[ Regular/riscv64#VNC ]]. | |||
=== Установка образов вручную === | === Установка образов вручную === | ||
Строка 21: | Строка 25: | ||
Для запуска образов на SiFive HiFive Unmatched (FU740) SoC необходимо выполнить следующие шаги: | Для запуска образов на SiFive HiFive Unmatched (FU740) SoC необходимо выполнить следующие шаги: | ||
'''Шаг 0.''' | '''Шаг 0.''' Запись образа и монтирование: | ||
<source lang="shell"> | |||
root$ xzcat /path/to/<image>-riscv64.img.xz | dd of=/dev/sdx bs=4M status=progress | |||
root$ udiskctl mount /dev/sdX2 | |||
</source> | |||
Корневой раздел будет примонтирован в /run/media/root/<UUID> | |||
'''Шаг 1.''' Добавляем разделы для записи U-Boot SPL (Secondary Program Loader) и U-Boot : | |||
<source lang="shell"> | <source lang="shell"> | ||
root$ sgdisk | root$ sgdisk -a 1 \ | ||
--new= | --new=3:34:2081 --change-name=2:'spl' --typecode=2:5B193300-FC78-40CD-8002-E86C45580B47 \ | ||
--new= | --new=4:2082:10273 --change-name=3:'uboot' --typecode=3:2E54B353-1271-4842-806F-E436D6AF6985 \ | ||
/dev/sdX | |||
</source> | </source> | ||
'''Шаг | '''Шаг 2.''' U-Boot SPL (Secondary Program Loader) и U-Boot находятся на корне записанного образа. | ||
Запишем их на разделы | Запишем их на разделы 3 и 4 соответственно: | ||
<source lang="shell"> | <source lang="shell"> | ||
root$ dd if=/ | root$ dd if=/run/media/root/<UUID>/usr/share/u-boot/sifive_unmatched/u-boot-spl.bin of=/dev/sdX3 bs=1M | ||
root$ dd if=/ | root$ dd if=/run/media/root/<UUID>/usr/share/u-boot/sifive_unmatched/u-boot.itb of=/dev/sdX4 bs=1M | ||
root$ sync | root$ sync | ||
</source> | </source> | ||
'''Шаг | '''Шаг 2.б.''' Альтернативный вариант: скачаем последнюю версию пакета u-boot-sifive-fu740. Можно воспользоваться ссылкой riscv64 со страницы https://packages.altlinux.org/ru/sisyphus/srpms/u-boot-sifive-fu740/rpms. | ||
Из пакета нужно извлечь файлы u-boot-spl.bin и u-boot.itb и записать их на разделы 2 и 3 соответственно: | Из пакета нужно извлечь файлы u-boot-spl.bin и u-boot.itb и записать их на разделы 2 и 3 соответственно: | ||
Строка 50: | Строка 59: | ||
user$ rpm2cpio u-boot-sifive-fu740-*riscv64.rpm | cpio -vi --to-stdout './usr/share/u-boot/sifive_unmatched/u-boot-spl.bin' > u-boot-spl.bin | user$ rpm2cpio u-boot-sifive-fu740-*riscv64.rpm | cpio -vi --to-stdout './usr/share/u-boot/sifive_unmatched/u-boot-spl.bin' > u-boot-spl.bin | ||
user$ rpm2cpio u-boot-sifive-fu740-*riscv64.rpm | cpio -vi --to-stdout './usr/share/u-boot/sifive_unmatched/u-boot.itb' > u-boot.itb | user$ rpm2cpio u-boot-sifive-fu740-*riscv64.rpm | cpio -vi --to-stdout './usr/share/u-boot/sifive_unmatched/u-boot.itb' > u-boot.itb | ||
root$ dd if=u-boot-spl.bin of=/dev/ | root$ dd if=u-boot-spl.bin of=/dev/sdX3 bs=1M | ||
root$ dd if=u-boot.itb of=/dev/ | root$ dd if=u-boot.itb of=/dev/sdX4 bs=1M | ||
root$ sync | root$ sync | ||
</source> | </source> | ||
'''Шаг | '''Шаг 3.''' Переключить режим загрузки с EFI на extlinux.conf. Для этого необходимо убрать флаг boot с раздела fat32: | ||
<source lang="shell"> | |||
root$ parted /dev/sdX set 1 boot off | |||
<source lang="shell"> | |||
root$ | |||
</source> | </source> | ||
=== VNC === | === VNC === | ||
По умолчанию образ рассчитан на работу | По умолчанию образ рассчитан на работу с видеокартой. Если видеокарты нет, то нужно активировать режим vnc: [[ Regular/riscv64#VNC ]]. | ||
=== Root на NVME === | === Root на NVME === |
Версия от 09:35, 15 декабря 2021
SiFive HiFive Unmatched -- плата в форм-факторе Mini-ITX с SoC на архитектуре RISCV64GC. Поддерживется портом Sisyphus на riscv64 и используется в нём в качестве основных сборочных узлов.
В дистрибутивных ядрах un-def поддержка Unmatched началась с 5.12.18-alt1.rv64, в u-boot начиная с 2021.07-alt1.
Образы ALT
На текущий момент еженедельно собираются регулярные сборки: Regular/riscv64. Образы требуется записать через alt-rootfs-installer или вручную.
Запись с помощью alt-rootfs-installer
Требуется установить alt-roofs-installer версии не ниже 0.5.2.
# alt-rootfs-installer --target=HiFive-Unmatched --image-in=/path/to/<image>-riscv64.img.xz --media=/dev/sdX
Если на плате не установлен графический адаптер и записывается образ с графикой, то необходимо добавить опцию --vnc=1. Про режим подробнее написано в: Regular/riscv64#VNC .
Установка образов вручную
Для запуска образов на SiFive HiFive Unmatched (FU740) SoC необходимо выполнить следующие шаги:
Шаг 0. Запись образа и монтирование:
root$ xzcat /path/to/<image>-riscv64.img.xz | dd of=/dev/sdx bs=4M status=progress
root$ udiskctl mount /dev/sdX2
Корневой раздел будет примонтирован в /run/media/root/<UUID>
Шаг 1. Добавляем разделы для записи U-Boot SPL (Secondary Program Loader) и U-Boot :
root$ sgdisk -a 1 \
--new=3:34:2081 --change-name=2:'spl' --typecode=2:5B193300-FC78-40CD-8002-E86C45580B47 \
--new=4:2082:10273 --change-name=3:'uboot' --typecode=3:2E54B353-1271-4842-806F-E436D6AF6985 \
/dev/sdX
Шаг 2. U-Boot SPL (Secondary Program Loader) и U-Boot находятся на корне записанного образа. Запишем их на разделы 3 и 4 соответственно:
root$ dd if=/run/media/root/<UUID>/usr/share/u-boot/sifive_unmatched/u-boot-spl.bin of=/dev/sdX3 bs=1M
root$ dd if=/run/media/root/<UUID>/usr/share/u-boot/sifive_unmatched/u-boot.itb of=/dev/sdX4 bs=1M
root$ sync
Шаг 2.б. Альтернативный вариант: скачаем последнюю версию пакета u-boot-sifive-fu740. Можно воспользоваться ссылкой riscv64 со страницы https://packages.altlinux.org/ru/sisyphus/srpms/u-boot-sifive-fu740/rpms.
Из пакета нужно извлечь файлы u-boot-spl.bin и u-boot.itb и записать их на разделы 2 и 3 соответственно:
user$ rpm2cpio u-boot-sifive-fu740-*riscv64.rpm | cpio -vi --to-stdout './usr/share/u-boot/sifive_unmatched/u-boot-spl.bin' > u-boot-spl.bin
user$ rpm2cpio u-boot-sifive-fu740-*riscv64.rpm | cpio -vi --to-stdout './usr/share/u-boot/sifive_unmatched/u-boot.itb' > u-boot.itb
root$ dd if=u-boot-spl.bin of=/dev/sdX3 bs=1M
root$ dd if=u-boot.itb of=/dev/sdX4 bs=1M
root$ sync
Шаг 3. Переключить режим загрузки с EFI на extlinux.conf. Для этого необходимо убрать флаг boot с раздела fat32:
root$ parted /dev/sdX set 1 boot off
VNC
По умолчанию образ рассчитан на работу с видеокартой. Если видеокарты нет, то нужно активировать режим vnc: Regular/riscv64#VNC .
Root на NVME
Можно скопировать файловую систему на NVME и указать её в качестве root= в /boot/extlinux/extlinux.conf.
Создайте раздел на NVME, например, с помощью fdisk.
Отформатируйте раздел NVME:
mkfs.ext4 -m1 -L ROOT /dev/nvme0n1p1
Смонтируйте раздел:
mount /dev/nvme0n1p1 /mnt
Скопируйте на раздел NVME содержимое rootfs:
rsync -ax / /mnt
Опция -x позволяет скопировать только содержимое rootfs, но не других подмонтированных файловых систем. Копирование может занять значительное время.
Посмотрите UUID раздела NVME, например, так:
lsblk -f NAME FSTYPE LABEL UUID ... ... └─nvme0n1p1 ext4 1.0 ROOT dc155086-4ee4-42f6-87be-bcc67b2b93e6 ...
Исправьте значение UUID в файле /mnt/boot/extlinux/extlinux.conf
append root=UUID=dc155086-4ee4-42f6-87be-bcc67b2b93e6 ...
Исправьте значение UUID в файле /mnt/etc/fstab
UUID=dc155086-4ee4-42f6-87be-bcc67b2b93e6 / ext4 ...
EFI на NVME
TBD.
Grub
TBD.