HiFive Unmatched: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
Строка 17: Строка 17:
</pre>
</pre>


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


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


'''Шаг 2.''' Система на microSD карточке готова к загрузке. Однако, есть недостаток: идентификация корневой файловой системы произмодится по метке ROOT, которая была установлена при форматировании. Если имеется несколько разделов с меткой ROOT (например, эта метка стоит на разделе NVMe) для загрузки может быть использован любой из них. Для исправления этой проблемы нужно настроить идентификацию нужного раздела по UUID. Подробности ниже:
'''Шаг 2.''' Настроим идентификацию корневого раздела по его UUID:
 
Посмотрим UUID корневого раздела
lsblk -f
NAME        FSTYPE LABEL UUID                                FSAVAIL FSUSE% MOUNTPOINT
...
sdb                                                                         
├─sdb1      ext4  ROOT  7ad2a5dc-ea11-4e05-8d74-0890933d33e5  11,1G    19% /mnt
 
Запишим это значение UUID в конфигурационные файлы, а затем размонтируем раздел:
 
<source lang="shell">
root$ sed -i s/LABEL=ROOT/UUID=7ad2a5dc-ea11-4e05-8d74-0890933d33e5/ /mnt/boot/extlinux/extlinux.conf
root$ sed -i s/LABEL=ROOT/UUID=7ad2a5dc-ea11-4e05-8d74-0890933d33e5/ /mnt/etc/fstab
root$ umount /dev/sdb1
</source>


=== VNC ===
=== VNC ===
Строка 91: Строка 106:
Опция -x позволяет скопировать только содержимое rootfs, но не других подмонтированных файловых систем.
Опция -x позволяет скопировать только содержимое rootfs, но не других подмонтированных файловых систем.
Копирование может занять значительное время.
Копирование может занять значительное время.
==== Настройка идентификации корневого раздела по UUID ====


Посмотрите UUID раздела NVME, например, так:
Посмотрите UUID раздела NVME, например, так:

Версия от 09:36, 23 ноября 2021

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/sdb1
root$ mount /dev/sdb1 /mnt
root$ tar -xpvf /path/to/regular-xfce-20210825-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

Шаг 1.б. Альтернативный вариант: скачаем последнюю версию пакета 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/sdb2 bs=1M
root$ dd if=u-boot.itb of=/dev/sdb3 bs=1M
root$ sync

Шаг 2. Настроим идентификацию корневого раздела по его UUID:

Посмотрим UUID корневого раздела

lsblk -f
NAME        FSTYPE LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINT
...
sdb                                                                          
├─sdb1      ext4   ROOT  7ad2a5dc-ea11-4e05-8d74-0890933d33e5   11,1G    19% /mnt

Запишим это значение UUID в конфигурационные файлы, а затем размонтируем раздел:

root$ sed -i s/LABEL=ROOT/UUID=7ad2a5dc-ea11-4e05-8d74-0890933d33e5/ /mnt/boot/extlinux/extlinux.conf
root$ sed -i s/LABEL=ROOT/UUID=7ad2a5dc-ea11-4e05-8d74-0890933d33e5/ /mnt/etc/fstab
root$ umount /dev/sdb1

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 раздела 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.