HiFive Unmatched

Материал из ALT Linux Wiki
Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.


SiFive HiFive Unmatched -- плата в форм-факторе Mini-ITX с SoC на архитектуре RISCV64GC. Поддерживется портом Sisyphus на riscv64 и используется в нём в качестве основных сборочных узлов.

В дистрибутивных ядрах un-def поддержка Unmatched началась с 5.12.18-alt1.rv64, в u-boot начиная с 2021.07-alt1.

Образы ALT

Вам понадобится достаточно свежий образ с ALT. Сейчас это только регулярные образы, собираемые jqt4@: http://ftp.altlinux.org/pub/people/jqt4/images/hifive/.

alt-rootfs-installer

alt-roofs-installer с поддержкой Unmatched ещё не вышел, можно брать ветку devel у antohami@.

sudo ./alt-rootfs-installer --target HiFive-Unmatched --rootfs  /path/to/regular-xfce-20210825-riscv64.tar.xz --resize --media /dev/sdX

Установка образов вручную

Для запуска образов на SiFive HiFive Unmatched (FU740) SoC необходимо выполнить следующие шаги:

Шаг 0. Предполагается, что microSD карточка находится в /dev/sdb. Выполним разметку microSD и создание файловой системы:

root$ sgdisk -g --clear -a 1 \
 --new=2:34:2081         --change-name=2:'spl' --typecode=2:5B193300-FC78-40CD-8002-E86C45580B47 \
 --new=3:2082:10273      --change-name=3:'uboot'  --typecode=3:2E54B353-1271-4842-806F-E436D6AF6985 \
 --new=1::-0             --change-name=1:'root' --typecode=1:0FC63DAF-8483-4772-8E79-3D69D8477DE4 \
/dev/sdb 
root$ mkfs.ext4 -L ROOT /dev/sdb
root$ mount /dev/sdb1 /mnt
root$ tar -xpvf hifive-unleashed-riscv64.tar.xz -C /mnt

Шаг 1.а. U-Boot SPL (Secondary Program Loader) и U-Boot находятся внутри распакованного дерева /mnt. Запишем их на разделы 2 и 3 соответственно, а затем размонтируем раздел:

root$ dd if=/mnt/usr/share/u-boot/sifive_unmatched/u-boot-spl.bin of=/dev/sdb2 bs=1M
root$ dd if=/mnt/usr/share/u-boot/sifive_unmatched/u-boot.itb of=/dev/sdb3 bs=1M
root$ sync; umount /mnt

Шаг 1.б. Альтернативный вариант: скачаем последнюю версию пакета u-boot-sifive-fu740,

Шаг 2. Система на microSD карточке готова к загрузке. Однако, есть недостаток: идентификация корневой файловой системы произмодится по метке ROOT, которая была установлена при форматировании. Если имеется несколько разделов с меткой ROOT (например, эта метка стоит на разделе NVMe) для загрузки может быть использован любой из них. Для исправления этой проблемы нужно настроить идентификацию нужного раздела по UUID. Подробности ниже:

VNC

По умолчанию образ рассчитан на работу без видеокарты, поэтому первоначальную установку нужно выполнить по VNC. После загрузки на последовательную консоль выводятся IP-адрес и порт VNC-сервера, например:

 ALTERATOR SETUP === Default device: "eth0"
 ALTERATOR SETUP === IPv4: "192.168.1.17/24"
 PORT=5900

Пароль: alt

Если видеокарта у Вас есть и работает, можно провести первоначальную настройку непосредственно на ней. Для этого после копирования rootfs на SD-карту удалите с неё (с третьего раздела) файл etc/X11/xorg.conf.d/51-dummy.conf. При загрузке с SD-карты первый запуск X с мастером первоначальной настройки занимает довольно много времени.

Начиная со сборки 20211011 до прохождения мастера первоначальной установки действует стандартный пароль (root/altlinux), что позволяет войти в систему и удалить 51-dummy.conf непосредственно из консоли.

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

Посмотрите 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.