В качестве альтернативы соседней темы и до появления полной поддержки железа Firefly ROC-RK3566-PC, Firefly ROC-RK3568-PC и Firefly ROC-RK3588S-PC в Альт Линукс, остановился на варианте: ядро от Armbian корневой раздел от релизного стартового набора Альт Линукс.
Сам процесс установки на внутренний накопитель занимает 5-10 минут, зависит от производительности платы и объема копируемого образа.
Нужна SD карта Armbian.
Важно!
На разных платах sd карта и встроенный накомитель emmc могут нумероваться по-разному.
В описании команд ниже в первом варианте
sd = mmcblk1
emmc = mmcblk0
но может быть наоборот, поэтому загрузившись с sd карты первым делом надо проверить нумерацию накопителей, я делаю это через команду mount
mount | grep /dev/mmc
/dev/mmcblk0p1 on / type ext4 (rw,noatime,errors=remount-ro,commit=600)
в данном случае
sd = mmcblk0
emmc = mmcblk1
А это значит , что во всех командах ниже (два варианта), нужно учесть правильную нумерацию дисков, иначе снесете файловую систему SD карты вместо работы со встроенным накопителем.
Нужно выбрать свой авриант.
Первый вариант для RK3588S (M3), второй вариант для RK3568 (P2) Вариант
sd = mmcblk1
emmc = mmcblk0
Очистка заголовка встроенного диска
dd if=/dev/zero bs=1M conv=noerror status=progress of=/dev/mmcblk0 bs=1M count=512
Создать gpt разметку на внутреннем накопителе
fdisk /dev/mmcblk0
далее
g
и
w
Копирование заголовка диска с SD карты (там u-boot)
dd if=/dev/mmcblk1 bs=1M conv=noerror status=progress of=/dev/mmcblk0 bs=1M count=16
Создание раздела ext4 на внутреннем накопителе
echo "part1 : start=16M," | sfdisk /dev/mmcblk0
mkfs.ext4 -L alt_fs /dev/mmcblk0p1 < /dev/null
Монтирование раздела для копирования корневой системы.
mkdir /tmp/1
mount /dev/mmcblk0p1 /tmp/1
На SD карте в каталоге /install
/install/alt_p10/ - файлы стартового набора Альт Линукс без ./lib/modules ./lib/firware ./etc/fstab (их нужно удалить), там же папка /boot от Armbian
/install/lib/ - папки modules и firware Armbian
/install/etc/ - fstab Armbian
Копирование сборной корневой системы
time rsync -avz --progress /install/alt_p10/* /tmp/1
time rsync -avz --progress /install/lib/* /tmp/1/lib
time rsync -avz --progress /install/etc/* /tmp/1/etc
Через blkid узнать UUID созданного вами ext4 раздела
blkid
/dev/mmcblk0p1: LABEL="alt_fs" UUID="1a62d892-cb3d-4f0c-930c-02bffd89b218" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="4e95dc9e-6452-8e44-898b-fbd37d3565b8"
Выполнить замену UUID Armbian на ваш (вариант из примера) UUID="1a62d892-cb3d-4f0c-930c-02bffd89b218" в файлах fstab и extlinux.cfg (просмотр уже отредактированных файлов)
cat /tmp/1/etc/fstab
UUID=1a62d892-cb3d-4f0c-930c-02bffd89b218 / ext4 defaults,noatime,commit=600,errors=remount-ro 0 1
tmpfs /tmp tmpfs defaults,nosuid 0 0
cat /tmp/1/boot/extlinux/extlinux.conf
label Armbian
kernel /boot/Image
initrd /boot/uInitrd
fdt /boot/dtb/rockchip/rk3588s-roc-pc.dtb
append root=UUID=1a62d892-cb3d-4f0c-930c-02bffd89b218 console=ttyS02,1500000 console=tty0 rw no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0 bootsplash.bootfile=bootsplash.armbian
Вариант
sd = mmcblk0
emmc = mmcblk1
Очистка заголовка встроенного диска
dd if=/dev/zero bs=1M conv=noerror status=progress of=/dev/mmcblk1 bs=1M count=512
Создать gpt разметку на внутреннем накопителе
fdisk /dev/mmcblk1
далее
g
и
w
Копирование заголовка диска с SD карты (там u-boot)
dd if=/dev/mmcblk0 bs=1M conv=noerror status=progress of=/dev/mmcblk1 bs=1M count=16
Создание раздела ext4 на внутреннем накопителе
echo "part1 : start=16M," | sfdisk /dev/mmcblk1
mkfs.ext4 -L alt_fs /dev/mmcblk1p1 < /dev/null
Монтирование раздела для копирования корневой системы.
mkdir /tmp/1
mount /dev/mmcblk1p1 /tmp/1
На SD карте в каталоге /install
/install/alt_p10/ - файлы стартового набора Альт Линукс без ./lib/modules ./lib/firware ./etc/fstab (их нужно удалить), там же папка /boot от Armbian
/install/lib/ - папки modules и firware Armbian
/install/etc/ - fstab Armbian
Копирование сборной корневой системы
time rsync -avz --progress /install/alt_p10/* /tmp/1
time rsync -avz --progress /install/lib/* /tmp/1/lib
time rsync -avz --progress /install/etc/* /tmp/1/etc
Через blkid узнать UUID созданного вами ext4 раздела
blkid
/dev/mmcblk1p1: LABEL="alt_fs" UUID="1a62d892-cb3d-4f0c-930c-02bffd89b218" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="4e95dc9e-6452-8e44-898b-fbd37d3565b8"
Выполнить замену UUID Armbian на ваш (вариант из примера) UUID="1a62d892-cb3d-4f0c-930c-02bffd89b218" в файлах fstab и extlinux.cfg (просмотр уже отредактированных файлов)
cat /tmp/1/etc/fstab
UUID=1a62d892-cb3d-4f0c-930c-02bffd89b218 / ext4 defaults,noatime,commit=600,errors=remount-ro 0 1
tmpfs /tmp tmpfs defaults,nosuid 0 0
cat /tmp/1/boot/extlinux/extlinux.conf
label Armbian
kernel /boot/Image
initrd /boot/uInitrd
fdt /boot/dtb/rockchip/rk3588s-roc-pc.dtb
append root=UUID=1a62d892-cb3d-4f0c-930c-02bffd89b218 console=ttyS02,1500000 console=tty0 rw no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0 bootsplash.bootfile=bootsplash.armbian
Т.е. самая сложная задача - вписать правильный UUID вашего раздела в extlinux.conf и fstab, а так же не перепутать порядок нумерации накопителей.
Загрузка Armbian образа для получения образа для SD карты, выбрать свою модель платы.
https://www.armbian.com/download/?device_support=SupportedЗагрузка Альт Линукс
http://nightly.altlinux.org/p10-aarch64/release/записать на SD карту любой подходящей программой: balena, alt media writer и др. Можно разархивировать и перенести через dd
Если не загружается с sd карты, такое бывает на старых дистрибутивах от fireflay для m2 и p2, надо поставить заплатку: RK3566/RK3568 NorFlash2eMMCLoader
https://en.t-firefly.com/doc/download/93.htmlhttps://drive.google.com/drive/folders/1lTUb7I7QyunjY2PEvA3VPi-ghLGBBmZ8Пример монтирования образа Альт Линукс для копирования файлов корневой системы
mount -o loop,offset=$((526336 * 512)) -t ext4 /home/sam/Загрузки/alt-p10-xfce-20211212-aarch64.img/alt-p10-xfce-20211212-aarch64.img /media