Armel debian что это

Обновлено: 06.07.2024

Со всеми этими опенвртэами, билдрутами, ёктопрожектами полностью поменялось мировозрение. Кажется чтобы что-то запустить на каком-нибудь устройстве нужно потратить уйму времени на сборку, конфигурацию. А как правило ничего не собирается с первого раза, ну или собирается, но не пашет толком и
приходится гуглить почему так происходит и пр. А еще эти кроскомпиляции под разные архитектуры. Столько нюансов и прочих грабель на которые обязательно 10 раз наступишь прежде чем придешь к рабочему варианту программы.

С одной стороны конеш это и хорошо и даже может и интересно, но с другой стороны жизнь то идет и появляются всякие ёкты, опенврт где вся сборка сводится к выполнению магической команды - make. И мозк от такого бездейстивия потихоньку начинает атрофироваться.

Что уж говорить про установку debian на встраиваемую систему, тут даже и выполнение команды make не требуется. Всё настолько просто и быстро, что кажется даже ман не нужен. Но поскольку всё это завтра уже забудется то лучше сохранить эту магическую последовательность действий.

Установка дебиан под arm архитектуру.

2. Устанавливаем debootstrap. Что это читаем на вики дебиан.

4. Далее понадобятся вот такие пакеты: binfmt-support qemu-arm-static, поэтому доустанавливаем их в юбунту. Копируем в дебиан фс:

и меняем корневой каталог через chroot

5. Выполняем в файловой системе debian7 (т.е. после того как выполнили chroot)

Конец выполнения этой операции должен выглядеть примерно так:
I: Base system installed successfully.

6. По идее всё, корневая файловая система готова. можно брать её и запускать на устройстве. Но прежде чем это делать нужно доустановить необходимые работы для полноценной работы системы. Для выходя из chroot набираем exit.

Далее редактируем файл armDeb7/etc/apt/sources.list следующим образом:

и снова меняем кфс:

Выполняем уже стандартные линуксовые утилиты для установки пакетов - обновляемся:

одной из причин этого возможное отсутсвтие утилиты bzip2 в директории:
/usr/lib/apt/methods
)

Выходим из chroot - exit

Чтобы работала консоль нужно добавить сточку в конец файла ./debian7/etc/inittab

Заменим файл /etc/shadow допустим из дистрибутива openwrt. Либо для отключения пароля у пользователя root заменим строку в shadow следующим образом:

Фс от debian готова, копируем её на устройство и загружаемся.

Настройка сети в debian:

Проверить установлен ли пакет в debian:

Поскольку такие утилиты как aptitude или apt-get это просто оболочки над утилитой dpkg, то аналогичную операцию по проверке установлен ли пакет можно сделать так:

При установке gnome, случилась вот проблема связанная с пакетом gconf2:

С помощью команыд dpkg смотрим на информацию о пакете:

Хз, что это значит. Почему-то пакет установлен, но не сконфигурирован.

Можно правда посмотреть на этот самый post-installation script и попытаться там понять почему он вернул ошибку. Сам скрипт распологается в /var/lib/dpkg/info/gconf2.postinst.

Запустить в режиме отладки его можно так:

Если эту строку закомментировать, установка gconf2 проходит норм. круто конеш.

Поиск/просмотр доступных для установки пакетов:

Как правило все приложения в debian устанавливаются из deb пакетов через использование таких утилит как apt-get install или aptitude.

Но бывают ситуации когда нужно установить приложение из исходников, т.е. произвести предварительную сборку.

Простой пример - устновка программы mc.

Установка с помощью утилиты apt-get:

Установка из исходников:

Для сборки пакетов из исходников доустанавливаем:

Переходим допустим в папочку /home и скачиваем туда исходники

Вместо того, чтобы пытаться описать всё разнообразие аппаратных конфигураций, которое существует на 32-bit soft-float ARM , эта глава содержит общую информацию и указания, где можно найти дополнительную информацию.

2.1.1. Поддерживаемые архитектуры

Debian GNU/Linux 11 поддерживает 9 основных архитектур и несколько вариаций каждой архитектуры, известных как « варианты (flavors) » .

Архитектура Обозначение в Debian Субархитектура Вариант
AMD64 & Intel 64 amd64
основанные на Intel x86 i386 машины x86 по умолчанию по умолчанию
только домены Xen PV xen
ARM armel Marvell Kirkwood и Orion marvell
ARM с аппаратным FPU armhf multiplatform armmp
64-битные ARM arm64
64-битные MIPS (с обратным порядком байтов) mips64el MIPS Malta 5kc-malta
Cavium Octeon octeon
Loongson 3 loongson-3
32-битные MIPS (с обратным порядком байтов) mipsel MIPS Malta 4kc-malta
Cavium Octeon octeon
Loongson 3 loongson-3
Power Systems ppc64el машины IBM POWER8 или новее
64-битный IBM S/390 s390x IPL с VM-reader и DASD generic

Этот документ содержит описание установки на архитектуру 32-bit soft-float ARM . Если вы ищете информацию по любой другой архитектуре, поддерживаемой Debian, посмотрите на странице переносов Debian.

2.1.2. Три разных переноса ARM

Архитектура ARM постоянно развивается и современные процессоры ARM предоставляют возможности, которые недоступны в старых моделях. Поэтому Debian предоставляет три переноса ARM, что даёт улучшенную поддержку широкому диапазону различных машин:

Debian/armel нацелен на старые 32-битные процессоры ARM без поддержки блока аппаратной плавающей запятой (FPU),

Debian/armhf работает только на новых 32-битных процессорах ARM, в которых реализована, как минимум, архитектура ARMv7 версии 3 из спецификации векторной плавающей запятой ARM (VFPv3). Он позволяет использовать расширенные возможности и повышенную производительность, доступные на этих моделях.

Debian/arm64 работает на 64-битных процессорах ARM, в которых реализована, как минимум, архитектура ARMv8.

Технически, все доступные в настоящее время процессоры ARM могут работать с любым порядком адресации памяти (прямым или обратным), но практически подавляющее большинство использует обратную адресацию. Debian/arm64, Debian/armhf и Debian/armel поддерживают только системы с обратной адресацией.

2.1.3. Разнообразие конструкций процессоров ARM и сложность поддержки

Системы ARM намного разнообразнее, чем архитектура ПК на основе i386/amd64, поэтому ситуация с поддержкой может оказаться намного сложнее.

The ARM architecture is used mainly in so-called « system-on-chip » (SoC) designs. These SoCs are designed by many different companies with vastly varying hardware components even for the very basic functionality required to bring the system up. System firmware interfaces have been increasingly standardised over time, but especially on older hardware firmware/boot interfaces vary a great deal, so on these systems the Linux kernel has to take care of many system-specific low-level issues which would be handled by the mainboard's BIOS/UEFI in the PC world.

В начале для поддержки ARM требовалось разное ядро Linux для каждой системы, а не « одно для всех » как для систем PC. Так как такое решение не подходит для большого числа разных систем, начата работа над единым ядром ARM, которое может работать на разных системах ARM. Для новых систем ARM такая поддержка реализована в мультиплатформенном ядре, но для некоторых старых систем по прежнему требуются отдельные ядра. В следствии этого, стандартный дистрибутив Debian поддерживает установку только на несколько старых систем, в дополнении к новым системам, которые поддерживаются мультиплатформенным ядром ARM (называемым « armmp » ) в Debian/armhf.

2.1.4. Платформы, поддерживаемые Debian/armel

Debian/armel поддерживает перечисленные далее платформы; для них требуются специальные ядра.

Система на кристалле (SoC) Kirkwood от Marvell содержит ARM ЦП, Ethernet, SATA, USB и другие свойства. В настоящее время Debian поддерживает следующие устройства на базе Kirkwood:

QNAP Turbo Station (все модели TS-11x/TS-12x, HS-210, TS-21x/TS-22x и TS-41x/TS-42x)

Серверы сетевого доступа LaCie (Network Space v2, Network Space Max v2, Internet Space v2, d2 Network v2, 2Big Network v2 и 5Big Network v2)

OpenRD (OpenRD-Base, OpenRD-Client и OpenRD-Ultimate)

Orion — это система в кристалле (SoC) производства Marvell, где в один чип встроены процессор ARM, Ethernet, SATA, USB и другие элементы. На рынке имеется много устройств сетевых хранилищ (NAS), в которых используется Orion. В данный момент Debian поддерживаются следующие устройства с Orion: Buffalo Kurobox и HP mv2120.

Платформа Versatile эмулируется QEMU и поэтому замечательно подходит для тестирования и запуска Debian на ARM, если у вас нет физической аппаратуры.

2.1.5. Платформы и устройства, больше не поддерживаемые Debian/armel

Поддержка платформы Intel IXP4xx прекращена в Debian 9. Устройство Linksys NSLU2 основано на IXP4xx и поэтому больше не поддерживается.

Поддержка устройств D-Link DNS-323 и Conceptronic CH3SNAS была удалена из платформы Orion5x в Debian 9. Ядро Linux больше не вмещается на флеш этих устройств. Другие устройства Orion, такие как Buffalo Kurobox и HP mv2120, пока поддерживаются.

2.1.6. Поддержка видеокарт

Почти все машины ARM содержат встроенную графику, не в виде отдельной графической карты. У некоторых машин есть слоты расширения, в которые можно вставить карту, то это редко. Также распространены машины вообще без графики. Базовые графические возможности через фреймбуфер, предоставляемые ядром, должны работать на всех устройствах с графикой, для работы 3D ускорения всем без исключения требуются двоичные драйверы. Ситуация быстро меняется, но в выпуск bullseye включены свободные драйверы nouveau (процессор Nvidia Tegra K1) и freedreno (процессоры Qualcomm Snapdragon). Другим чипам требуются несвободные драйверы производителя.

2.1.7. Аппаратура для подключения к сети

Почти любая сетевая плата (NIC), поддерживаемая ядром Linux, должна поддерживаться системой установки; драйверы модулей должны загрузиться автоматически.

На 32-bit soft-float ARM поддерживается большинство встроенных устройств Ethernet и предоставляются модули для дополнительных устройств PCI и USB.

2.1.8. Периферия и другое оборудование

Linux поддерживает много разных устройств, таких как мыши, принтеры, сканеры, PCMCIA/CardBus/ExpressCard и USB устройства. Однако, большинство этих устройств не требуется для установки системы.

Я пытаюсь загрузить образ Debian для процессора ARM Cortex-A7, но не могу понять, какой образ загрузить. Я заглянул на сайт Debian и увидел три разных варианта загрузки для процессора ARM. Какая разница между ними и какую мне скачать?

3 ответа 3

Хотя этот вопрос относится к концу 15 года, его все же полезно знать.

Итак, объяснение предложения Debian требует некоторой предыстории.

То, о чем вы говорите, это названия его официальных портов ARM. Как видите, они соответствуют определенной тройке опций ISA, OS и ABI. Они, в свою очередь, являются наименьшим распространенным множителем, который может гарантировать программную совместимость скомпилированных пакетов.

Оставляя в стороне самоочевидную сборку Arm64 (использующую 64-битный режим некоторых процессоров ARMv8), я думаю, что большинство недоразумений возникает из других, начиная с arm-linux-.

Когда-то давно на самом деле была только одна "рука" цель, но по ряду причин, начиная от порядка байтов и заканчивая поддержкой с плавающей запятой и производительностью, она устарела. EmbeddedABI (довольно пустой псевдоним, если вы спросите меня технически, но так называет ARM), с тех пор заменил его безупречно.

Armel - это не что иное, как новое имя, чтобы различать как старую версию, так и руку с прямым порядком байтов (тогда неофициальную, а теперь и вовсе заброшенную). Следует учитывать , самое основное, и он должен работать практически на любом оборудовании под солнцем.

Однако, с другой стороны, если ваш процессор имеет FPU, который не будет использоваться. Учитывая, что до ARMv8 не было никакой гарантии, что это будет поддерживаться (большинство ядер v7-A делали это, но ситуация намного сложнее, чем раньше), "максимальная совместимость" влечет за собой то, что любая связанная инструкция ссылается на glibc soft -fp библиотека (не путать с флагом softfp float-abi ), а не VFP.

И именно поэтому, в конечном итоге, Армф был создан. Пользовательское пространство снова не совместимо с ссылками, но вы получаете максимально возможную скорость.

Со всеми этими опенвртэами, билдрутами, ёктопрожектами полностью поменялось мировозрение. Кажется, чтобы что-то запустить на каком-нибудь устройстве, нужно потратить уйму времени на сборку, конфигурацию. А как правило, ничего не собирается с первого раза, ну или собирается, но не пашет толком и
приходится гуглить, почему так происходит и пр. А еще эти кроскомпиляции под разные архитектуры. Столько нюансов и прочих грабель, на которые обязательно 10 раз наступишь, прежде чем придешь к рабочему варианту программы.

С одной стороны, конечно, это и хорошо, и даже может и интересно, но с другой стороны, жизнь-то идет и появляются всякие ёкты, опенврт, где вся сборка сводится к выполнению магической команды - make. И мозг от такого бездействия потихоньку начинает атрофироваться.

Что уж говорить про установку debian на встраиваемую систему, тут даже и выполнение команды make не требуется. Всё настолько просто и быстро, что кажется даже ман не нужен. Но поскольку всё это завтра уже забудется, то лучше сохранить эту магическую последовательность действий.

Установка дебиан под arm архитектуру.

2. Устанавливаем debootstrap. Что это, читаем на вики дебиан.

4. Далее понадобятся вот такие пакеты: binfmt-support qemu-arm-static, поэтому доустанавливаем их в юбунту. Копируем в дебиан фс:

и меняем корневой каталог через chroot

5. Выполняем в файловой системе debian7 (т.е. после того, как выполнили chroot)

Конец выполнения этой операции должен выглядеть примерно так:
I: Base system installed successfully.

6. По идее всё, корневая файловая система готова. Можно брать её и запускать на устройстве. Но прежде, чем это делать, нужно доустановить необходимые работы для полноценной работы системы. Для выходя из chroot набираем exit.

Далее редактируем файл armDeb7/etc/apt/sources.list следующим образом:

и снова меняем кфс:

Выполняем уже стандартные линуксовые утилиты для установки пакетов - обновляемся:

одной из причин этого - возможное отсутствтие утилиты bzip2 в директории:
/usr/lib/apt/methods
)

Выходим из chroot - exit

Чтобы работала консоль, нужно добавить строчку в конец файла ./debian7/etc/inittab

Заменим файл /etc/shadow, допустим, из дистрибутива openwrt. Либо для отключения пароля у пользователя root заменим строку в shadow следующим образом:

Фс от debian готова, копируем её на устройство и загружаемся.

Настройка сети в debian:

Проверить, установлен ли пакет в debian:

Поскольку такие утилиты как aptitude или apt-get - это просто оболочки над утилитой dpkg, то аналогичную операцию по проверке, установлен ли пакет, можно сделать так:

При установке gnome случилась вот проблема, связанная с пакетом gconf2:

С помощью команды dpkg смотрим на информацию о пакете:

Хз, что это значит. Почему-то пакет установлен, но не сконфигурирован.

Можно, правда, посмотреть на этот самый post-installation script и попытаться там понять, почему он вернул ошибку. Сам скрипт располагается в /var/lib/dpkg/info/gconf2.postinst.

Запустить в режиме отладки его можно так:

Если эту строку закомментировать, установка gconf2 проходит норм. Круто конечно.

Поиск/просмотр доступных для установки пакетов:

Как правило, все приложения в debian устанавливаются из deb пакетов через использование таких утилит как apt-get install или aptitude.

Но бывают ситуации, когда нужно установить приложение из исходников, т.е. произвести предварительную сборку.

Простой пример - установка программы mc.

Установка с помощью утилиты apt-get:

Установка из исходников:

Для сборки пакетов из исходников доустанавливаем:

Переходим, допустим, в папочку /home и скачиваем туда исходники

Читайте также: