LINUX.ORG.RU

Установка linux на arm-based машины (компьютеры, смартфоны и прочее)

 ,


0

1

Что необходимо для портирования какого-либо дистрибутива GNU/linux на arm-систему? C х86 все всегда было понятно, качаешь дистрибутив, будь то бунта, федора, арч и устанавливаешь, дело остается за драйверами устройств, ответственность за которые ложится собственно на производителей устройств, но иногда можно найти и свободные дрова.

С arm все совершенно непонятно. Целая туча различных SoC, и еще большая туча различных дистрибутивов для каждой их них. То есть, грубо говоря, дистр Дебиана для ARMv7 SoC от Broadcom не подойдет для ARMv7 SoC от Allwinner, им по меньшей мере нужны различные ядра, хотя набор команд у них один и тот же. Вот и вопрос - как портируется ядро и дистр под конкретную SoC? Какую информацию должен предоставить разработчик SoC'a сообществу для создания порта (исходники дров, даташиты)?



Последнее исправление: jumpjet67 (всего исправлений: 1)

даташит на soc, даташит на борду, драйвера на soc и всё внешнее что есть на борде

всего этого ты никогда не увидишь либо увидишь только в виде блобов

если повезёт, часть поддуржки soc можешь увидеть в модифицированных производителем исходниках какого-нибудь ядра 2.6.8 времён андропова, которое собирается только опять же модифицированным компилятором

это из моего опыта с роутерными mips

anonymous
()
Ответ на: комментарий от anonymous

А если к примеру взять Raspberry Pi, для которой доступны Raspbian и Pidora, созданные вроде как сообществом, они тоже завязаны на блобах для Broadcom BCM2835?

jumpjet67
() автор топика
Ответ на: комментарий от anonymous

На х86-based машинах видеокарточки тоже зачастую через блобы работают. Но при этом один_и_тот_же дистр демьяна я могу установить как на какой-нибудь пень 4, так и на свой новенький Haswell. Речь идет не о конкретном элементе SoC'a (видеочипе в данном случае), а о SoC'e в целом. Несмотря на одинаковые наборы команд (в одном случае x86, в другом ARMv7), для каждого ARMv7 SoC'a делают индивидуальный дист. Вопрос даже не зачем (дело, как я понимаю, в отсутствии присущей IBM-pc унификации, во главе которой стоит дядя BIOS), а как? Сырцы дистров и ядра у меня есть, спасибо GNU GPL, что дальше? Что нужно получить от производителя SoC'a, что уже есть у тех, кто двигает Pidoru и Raspbian.

jumpjet67
() автор топика

Что необходимо для портирования какого-либо дистрибутива GNU/linux на arm-систему?

if ("arm-система" вообще без ОСи -eq true) then
  qemu, crosstools + bootstrap toolchain, build kernel || вдоль
else
  chroot + bootstrap toolchain and build kernel || вдоль
fi
init_6 ★★★★★
()
Ответ на: комментарий от jumpjet67

Сырцы дистров и ядра у меня есть

нет, нету, скорее всего. я уже написал, в ядре должна быть поддержка конкретной soc, даже чтобы просто стартануть голое ядро с консолью на uart

anonymous
()
Ответ на: комментарий от jumpjet67

Что нужно получить от производителя SoC'a

без NDA ты ничего не получишь

anonymous
()
Ответ на: комментарий от garik_keghen

«тот же дебиан» поставить нельзя, его нужно как-то изменить, пропатчтить. У каждого арм'a дебиан свой уникальный, если вообще есть, вопрос в том, как его делают, как подготавливают дистр для работы на каждой arm-SoC.

jumpjet67
() автор топика
Ответ на: комментарий от jumpjet67

как подготавливают дистр

ждут когда производитель soc или устройств на нём даст sdk/закоммитит поддержку в ядро

anonymous
()
Ответ на: комментарий от garik_keghen

Как его получили? Я мало чего понимаю в разработке, пожтому ожидаю ответа, типа «разрабы Raspbian'a взяли за основу то-то, дополнили тем-то, скомпилили так-то, в этом им помог тот-то, предоставив им вот-это»

jumpjet67
() автор топика

Тут ты не совсем понял. Для ARM-девайса нужна rootfs и ядро.

Первое — довольно универсально, то есть пойдёт на любой ARM-машине, но есть нюансы вроде поддержки hardfp, и тд — пойдёт уже не на всех машинах, но где пойдёт там будет быстрее. Так что именно отдельный дистрибутив на каждую машину не нужен.

А вот ядро — то да, как тебе сказали, без драйверов ты даже голой консоли не получишь. А вот если есть работающее ядро — можно уже и rootfs запустить.

Разве что тебе ещё могут понадобиться иксовые драйвера для нужного графического ускорителя кроме ядерных.

Xenius ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.