Скрыть
Дано:
Требуется: запустить Fedora 25 на данной аппаратной платформе.
Решение:
1. Скачиваем желаемый дистрибутив с какого-нибудь актуального
зеркала. Мне нравиться
Fedora Minimal (464498 kB).
2. Устанавливаем образ на карту памяти.
2.1 Автоматическая установка. Способ подходит для тех, кто уже сидит на федоре, причём достаточно свежей (версии с 22-й).
2.1.1 Устанавливаем fedora-arm-installer:
dnf install fedora-arm-installer
2.1.2 Запускаем со следующимим параметрами:
fedora-arm-image-installer --image Fedora-Minimal-armhfp-25-1.3-sda.raw.xz --target orangepi_lite --media /dev/sdb --selinux off --norootpass --resizefs --addconsole
Последние 4 параметра - по вкусу, но консоль желательна для первичной настройки. В качестве платформы (--target) выбран orangepi_lite, т. к. Orange Pi One не представлена в списке, а
Orange Pi Lite похожа на One.
2.2 Ручная установка (из под root)
2.2.1 Распаковываем образ (по желанию)
xz -dv Fedora-Minimal-armhfp-25-1.3-sda.raw.xz
2.2.2 Размонтируем принудительно флешку
2.2.3 Копируем образ в корень носителя (status=progress доступен начиная с coreutils-8.24)
dd if=Fedora-Minimal-armhfp-25-1.3-sda.raw of=/dev/sdb bs=1M status=progress; sync; sleep 3
или на лету
xzcat Fedora-Minimal-armhfp-25-1.3-sda.raw.xz | dd of=/dev/sdb bs=1M; sync; sleep 3
или с красивостями (необходимы пакеты pv, dialog)
(pv -n Fedora-Minimal-armhfp-25-1.3-sda.raw.2 | dd of=/dev/sdb bs=1M conv=notrunc,noerror) 2>&1 | dialog --gauge "Copy 'Fedora-Minimal-armhfp-25-1.3-sda.raw' to /dev/sdb, please wait..." 10 70 0; sync; sleep 3
2.2.4 Говорим ОС, чтобы обновила свои записи о разметке диска (пакет parted)
2.2.5 Увеличиваем 4-й раздел до размеров
вселенной флешки
echo ", +" | sfdisk -N 4 /dev/sdb
2.2.6 Проверяем новый расширенный раздел
2.2.7 Говорим ОС, чтобы обновила свои записи о разметке диска (пакет parted)
2.2.8 Отключаем selinux
mount /dev/sdb2 /mnt/tmp &> /dev/null
echo "Turning SELinux off ..."
sed -i 's/append/& enforcing=0/' /mnt/tmp/extlinux/extlinux.conf
umount /dev/sdb2
2.2.9 Удаляем пароль root
mount /dev/sdb4 /mnt/tmp &> /dev/null
echo "Removing the root password."
sed -i 's/root:x:/root::/' /mnt/tmp/etc/passwd
umount /dev/sdb4
2.2.10 Записываем u-boot
mount /dev/sdb4 /mnt/tmp &> /dev/null
echo "Writing u-boot-sunxi-with-spl.bin ...."
dd if=/mnt/tmp/usr/share/uboot/orangepi_lite/u-boot-sunxi-with-spl.bin of=/dev/sdb bs=1024 seek=8; sync; sleep 5
umount /dev/sdb4
2.2.11 Устанавливаем параметры консоли
mount /dev/sdb2 /mnt/tmp &> /dev/null
echo "Adding console ttyS0,115200 to extlinux.conf ..."
sed -i "s|append|& console=ttyS0,115200|" /mnt/tmp/extlinux/extlinux.conf
umount /dev/sdb2
2.2.12 Лишним sync не будет
3. Устанавливаем карту памяти в плату.
4. Подключаем COM-порт, через который мы будем сейчас общаться с платой.
5. Включаем питание.
Первая загрузка завершилась неудачно. Смотрим
лог, анализируем возможные причины. Видим, что не найден файл /dtb-4.8.6-300.fc25.armv7hl/sun8i-h3-orangepi-lite.dtb. Выключаем питание, достаём карту памяти, монтируем и делаем символическую ссылку на правильный файл:
mount /dev/sdb2 /mnt/tmp/
ln -sfv sun8i-h3-orangepi-one.dtb /mnt/tmp/dtb-4.8.6-300.fc25.armv7hl/sun8i-h3-orangepi-lite.dtb
umount /mnt/tmp
Пробуем загрузится ещё раз, повторяя шаги 3-5 - на этот раз
удачно. Ну а дальше уже каждый сам настраивает систему под собственные нужды.
PS:
fdisk -l Fedora-Minimal-armhfp-25-1.3-sda.raw
Диск Fedora-Minimal-armhfp-25-1.3-sda.raw.2: 2177 МБ, 2177892352 байт
255 heads, 63 sectors/track, 264 cylinders, всего 4253696 секторов
Units = секторы of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0fbf13bf
Устр-во Загр Начало Конец Блоки Id Система
Fedora-Minimal-armhfp-25-1.3-sda.raw1 2048 61439 29696 c W95 FAT32 (LBA)
Fedora-Minimal-armhfp-25-1.3-sda.raw2 * 61440 1060863 499712 83 Linux
Fedora-Minimal-armhfp-25-1.3-sda.raw3 1060864 1560575 249856 82 Linux своп / Solaris
Fedora-Minimal-armhfp-25-1.3-sda.raw4 1560576 4059135 1249280 83 Linux