Язык:
  • Українська
  • Русский
  • English
Свежие записи
Свежие комментарии
    Архивы
    Последние сообщения на форуме
    khvalera
    KDE plasma minimal
    khvalera
    dtc-control
    khvalera
    USB на orangepi r1
    Апрель 2024
    Пн Вт Ср Чт Пт Сб Вс
    1234567
    891011121314
    15161718192021
    22232425262728
    2930  

    Подготовка образа для ARM устройства

    Самостоятельная подготовка образа для конкретного ARM устройства, для наглядности примера будем использовать Orange PI Zero.

    рис. 1 Orange Pi Zero

    Описанные здесь действия в большинстве своем  будут дублировать действия из статьи «Особенности сборки пакетов для платформы ARM под chroot (вручную)».

    Первым делом создаем пустой образа диска, нужного размера (в данном случае размер 4G):

      dd of=archlinuxarm.img bs=1 seek=4G count=0

    Создаем файловую систему ext4 для всего образа диска:

      mkfs.ext4 -F archlinuxarm-orangepi-zero.img

    Создаем директорию и монтируем образа диска:

      # mkdir orangepi-zero

      # mount archlinuxarm-orangepi-zero.img orangepi-zero

    Далее загружает интересующий нас архив root-fs с сайта archlinuxarm.org и разархивируем. Пример для sun7i (armv7h):

      $ wget http://archlinuxarm.org/os/ArchLinuxARM-sun7i-latest.tar.gz  
      # tar -xvf ArchLinuxArm-sun7i-latest.tar.gz -C orangepi-zero

    Для работы ARM в chroot в основную систему нужно установить (если не установлены) несколько пакетов arch-install-scripts, binfmt-qemu-static-sl (последний имеет зависимость qemu-user-static):

      # pacman -S arch-install-scripts binfmt-qemu-static-sl

    После установки пакетов скопируем в папку с chroot бинарный файл qemu-arm-static (после подготовки образа не забываем его удалить):
      # cp /usr/bin/qemu-arm-static orangepi-zero/usr/bin

    Что бы в chroot заработал DNS, нужно удалить ссылку resolv.conf и скопировать образез resolv.conf.

      # sudo rm orangepi-zero/etc/resolv.conf

      # sudo cp -a orangepi-zero/etc/resolvconf.conf orangepi-zero/etc/resolv.conf

    Что бы в chroot pacman не выдавал ошибок, инициализируем связки ключей и сделаем первоначальную настройку:

      # arch-chroot orangepi-zero pacman-key —init

      # arch-chroot orangepi-zero pacman-key —populate archlinuxarm

    Обновляем систему и устанавливаем все интересующие нас пакеты.

      # arch-chroot orangepi-zero pacman -Syu

    Теперь что бы наш образ смог загрузиться на устройстве нужно установить пакет с загрузчиком uboot под вашу систему (В примере uboot для Orange PI Zero)

      # arch-chroot orangepi-zero pacman -S uboot-orangepi-zero

    Дальше запишем u-boot в наш образ из основной системы:

     dd if=orangepi-zero/boot/u-boot-sunxi-with-spl.bin of=archlinuxarm-orangepi-zero.img bs=1024 seek=8
    
    Очищаем образ от лишнего, отмонтируем и наконец записываем на носитель для использования в нашем ARM устройстве.
    
     # rm orangepi-zero/usr/bin/qemu-arm-static
     # arch-chroot orangepi-zero pacman -Sc
     # umount orangepi-zero
     # dd if=archlinuxarm-orangepi-zero.img of=/dev/sdX status=progress
    Для автоматизации процесса установки можно воспользоваться скриптом из пакета install-snuglinux:
     # install-snuglinux -a