Перейти к содержанию

    

Общие знания по Linux/ARM

Всем доброго дня.

Около года назад вооружился платкой DE0-nano-SOC с cortex-a9 на борту. С тех пор при не особо резвом курении платки удалось помигать светодиодом на HPS, потестить периферию.

В процессе курения у меня вылезла куча вопросов, аля:

  1. Линукс, работа в нем, его сборка и прочее
  2. Компиляторы, линковщики и прочие утилиты которые я знаю только по названию и тому, зачем они нужны
  3. Make файлы, scatter файлы и прочие файлы, необходимые для сборки чего-либо.
  4. Процесс создания ПО на такого рода ядра (cortex-axx) в большинстве случаев выглядит как "скачиваем -> make -> заливаем бинарник на флешку -> вуаля, линукс забутился". Не совсем ясен процесс создания например чистого baremetal приложения (с помощью него я уже помигал светиком, но за основу брался GoldRef) с нуля.
  5. Заливку бинарника на флешку, файловые системы, благо более менее понял.
  6. Какое-то время назад узнал, что, например андроид можно собрать только под линуксом - непонятно почему.
Пытаясь разобраться в чем-то одном - всё начинает ссылаться друг на друга и получается туда-сюда, в голове все сразу не укладывается, да и тяжело скакать по темам.

 

В общем есть большая пропасть, а вместе с ней есть вопрос - есть ли какая-то общая точка входа по изучению этих вопросов (полагаю все крутится именно вокруг самого линкуса)? Или какого-то общего описания нету и придется все по кусочкам изучать?

 

Спасибо.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В процессе курения у меня вылезла куча вопросов, аля:

https://habrahabr.ru/company/metrotek/blog/235707/

по ссылке накрываете пункты 1 и 2

 

3. без понятия зачем это нужно

4. тут изредка выплывают бареметалщики, видимо чего-то пилят

5. это по ссылке выше

6. а под чем же его еще собирать? и главное зачем? да, существуют коммерческие предложения сборки андроида для SoC, там основная фишка даже не видеоинтерфейс (а в SoC его просто нет), а графическая турбина + поддержка в драйвере. иначе андроид превратится просто в слайдшоу при процовой отрисовке

 

Или какого-то общего описания нету и придется все по кусочкам изучать?

а там по другому и не бывает, тихо радуйтесь, если дока найдется, и просто праздник, если не стухла и подойдет..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6. Так в том то и вопрос - почему его нельзя собрать, например в винде. Компилятор есть, что не так то...

(кстати по поводу для чего - у нас на работе для некоторых целей используется в данный момент обычный китайский планшет к которому приделан переходник SPI->CAN, так как хардварного CAN нету в проце (rockchip какой-то). Работа самого SPI осуществляется из операционки, что тормознуто. Вот и хочется сделать нормальную оболочку (драйвер) для переходника и, более того, собрать свою платформу на одной плате в нормальном корпусе, а не сопливую железяку, как сейчас).

 

По сути это всё вопросы общей тематики, связанные с линуксом и процесса (исторического) его создания если можно так выразиться...

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

 

Вообще из всего этого непонятным больше всего остается даже не сама ось и работа в ней и не ее сборка, а все те makefile, scatter file и подобные + настройки среды для компиляции какого-либо кода

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все в линуксе понятно, есть гайды для разработчиков ядра. Единственный косяк — Линуса последнее время как будто бы терзает что-то, и он версии ядра уж совсем зачастил обновлять. Эдак психанут разработчики железа и перестанут линукс поддерживать!

Насчет ондроеда — это не совсем линукс! Там есть базовый огрызок от линуксового ядра, но подавляющая часть модулей — проприетарщина, исходных кодов которой вы не увидите. Да и сам принцип ондроеда: натянуть на нижний уровень жабу и в ней все делать — тупиковый путь, это только для игрушек годится.

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

все те makefile

Понять, как писать Makefile, можно буквально за пару дней. Читайте литературу. Но писать Makefile руками стоит лишь для всякой примитивщины. Для более сложных вещей уже руками не попишешь. То же ядро использует свою систему; кому-то нравятся тормозные автотулсы, мне лично нравится cmake, есть еще более новые системы для генерирования Makefile'ов.

Изменено пользователем Эдди

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
6. Так в том то и вопрос - почему его нельзя собрать, например в винде. Компилятор есть, что не так то...

на мой взгляд, это нормально - с какого перепугу линуксовые проги должны собираться в чуждой операционке-конкуренте?

достаточно того, что существуют порты приложений для запуска в венде..

 

если уж так хочется, то существуют бесплатные/платные/краденые решения - под виндой ставиться виртуалка, в качестве гостевой любой простецкий линукс и вперед, на сборку в нативной среде..

я работал (и работаю) в обеих комбинациях - венда-линукс и линукс-венда, разницы практически нет

 

к вопросу о вышеупомянутом SoC, если я правильно помню, то в среде Quartus и Co под винду можно сгенерить вплоть до u-boot без всяких линуксов, т.е. ваш стендалоне вполне тоже можно сделать не погружаясь в линуксы

 

(чуть в сторону) если честно, я не очень понимаю тенденцию брать FPGA+ARM в одном кузове и пилить туда бареметал, делая восход солнца вручную..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
...под виндой ставиться виртуалка, в качестве гостевой любой простецкий линукс и вперед, на сборку в нативной среде..

16Гбайт оперативки нужно для сборки седьмого андроида. Под виртуалкой я бы не советовал biggrin.gif

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
16Гбайт оперативки нужно для сборки седьмого андроида. Под виртуалкой я бы не советовал biggrin.gif

16Г на текущий момент невелика цифра, доставить памяти много денег не потребуется

в свое время собирал 4.3 jelly из спортивного интереса под виртуалкой, 4Г памяти.. пару раз падало из-за выедаемой оперативки, но таки собралось, для imx6:

 

wand-andr-_IMGP0032.jpg

 

сборка андроида, занятие скучное и неинтересное, да и бессмысленное..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
на мой взгляд, это нормально - с какого перепугу линуксовые проги должны собираться в чуждой операционке-конкуренте?

достаточно того, что существуют порты приложений для запуска в венде..

просто не ясно что именно является препятствием...

 

к вопросу о вышеупомянутом SoC, если я правильно помню, то в среде Quartus и Co под винду можно сгенерить вплоть до u-boot без всяких линуксов, т.е. ваш стендалоне вполне тоже можно сделать не погружаясь в линуксы

 

(чуть в сторону) если честно, я не очень понимаю тенденцию брать FPGA+ARM в одном кузове и пилить туда бареметал, делая восход солнца вручную..

Так я выше написал, что на HPS сделал бареметал, но он был по голдрефу.

Не придерживаюсь какой-либо тенденции. Просто хочу изучить и ПЛИС и ARM процы и их связку. Если с ПЛИС порядком попроще и порог входа поменьше (в сети достаточно много примеров всех мастей), то с микропроцессорами обстоит дело сложнее. По крайней мере для меня, т.к. в основном работа связана только с программированием либо на микроконтроллерах (опять же из готовой, настроенной среды), либо для десктопа (утилиты для работы с девайсами на C#). Так и выходит, что процессоры никогда не затрагивал. Для саморазвития, тем более в наше время с их тотальным заполнением считаю необходимым. При этом не просто уметь скомпилить и залить что-то готовое, но и самому разобраться в недрах процесса создания ПО с 0, его граблей и прочего...

 

В общем я понял - начну курить про сборку + использование линукса, а там по дороге зацеплю и всякие makefile...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
просто не ясно что именно является препятствием...
Одним из препятствий является использование символических ссылок, отсутствующих в NTFS.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Одним из препятствий является использование символических ссылок, отсутствующих в NTFS.

Нет, в NTFS симлинки есть (вот насчет хардлинков не скажу). Проблема не в симлинках, а в правах доступа! Точнее, даже так: проблема в том, что в линуксе нет официальной поддержки NTFS — либо readonly, либо через fuse на свой страх и риск. И не факт, что все возможности NTFS этот fuse-модуль реализует (не проверял, мне это нафиг не нужно).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
просто не ясно что именно является препятствием...

неохота влезать в эти бессмысленные войны, но кто будет этим заниматься? майкрософт - ей это не нужно, чистая поддержка конкурента.. линуксоиды? а кто им даст исходники платной операционки? а под какую версию делать 7, 8, 10, 15?

как выше написали, даже поддержать NTFS венды не могут полноценно, видимо нет полноценной доки..

 

Не придерживаюсь какой-либо тенденции. Просто хочу изучить и ПЛИС и ARM процы и их связку. Если с ПЛИС порядком попроще и порог входа поменьше (в сети достаточно много примеров всех мастей), то с микропроцессорами обстоит дело сложнее. По крайней мере для меня, т.к. в основном работа связана только с программированием либо на микроконтроллерах (опять же из готовой, настроенной среды), либо для десктопа (утилиты для работы с девайсами на C#). Так и выходит, что процессоры никогда не затрагивал. Для саморазвития, тем более в наше время с их тотальным заполнением считаю необходимым. При этом не просто уметь скомпилить и залить что-то готовое, но и самому разобраться в недрах процесса создания ПО с 0, его граблей и прочего...

всегда полезно почитать и поизучать, особенно если в дальнейшем пригодится..

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

в бареметал на SoC должен быть какой-то скрытый смысл, иначе проще взять обычную ФПГА и к ней прикруть хоть stm32, благо их дофига разных.. но сильной стороной HPS под линукс будет коммуникативные возможности (терминалы, сеть, юсб) и шустрый интерфейс с фпга

успехов в освоение!

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Нет, в NTFS симлинки есть (вот насчет хардлинков не скажу).
Одной из проблем кросс-компиляции ядра Линукса в Венде было (наверное, до сих пор и есть) как раз использование в дереве исходников ядра символических ссылок. И это не то же самое, что ссылки в NTFS.

Или нет, не ссылок, а файлов с именами в разном регистре. Не помню уже, давно, славабогу, было.

 

проблема в том, что в линуксе нет официальной поддержки NTFS
При чём тут поддержка NTFS в Линуксе, если речь идёт о компиляции софта в Венде.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

При чем здесь регистры? Это в NTFS тоже нормально работает. Единственная проблема — разные типы прав доступа. Ну как в мастдайке сделать chmod 755?

Но есть другой вариант размещения линукса на чужеродных ФС: загоняем все в архив, который на стадии загрузки разворачивается в оперативку, и в /dev/shm получаем нормальный нативный корень. Понятно, что компиляции это тоже никак не поможет.

 

Кстати, а зачем вообще может возникнуть мысль компилировать хоть тот же андроид из-под венды? Вы еще попробуйте игровую приставку в сервер превратить...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да нету необходимости =). Просто коллега озвучил это и мне стало интересно что такого может препятствовать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
При чем здесь регистры? Это в NTFS тоже нормально работает.
Ну создайте в одном каталоге файлы ZZZZ и zzzz и доложите о результате.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация