LINUX.ORG.RU

Linux-ядро на микроконтроллер

 , , ,


0

1

Доброго времени суток, Недавно на хабре https://m.habrahabr.ru/post/177425/ прочитал о «портировании» Ubuntu на avr архитектуру. А вот, например, можно взять код ядра (только послелнее, вроде бы не поддерживает avr32), убрать все лишнии плюшки, адаптировать для ARM Cortex m или Avr, уместить его в ПЗУ, использовать COM-порты для связи с пк, и пользоваться всеми благами линукса, ибо у многих мк (я не говорю про 8 битные atmega), ресурсы позволяют. Зато многозадачность и замена ОСРВ. Так можно сделать?

Был проект uclinux, без понятия насколько он сейчас живой. ЕМНИП тот же проект породил uclibc, которая довольно широко используется за пределами микроконтроллеров

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

Ох старые добрые времена, ставил это на PSP...

c3ph
()

У микроконтроллеров нет MMU. Линукс там не взлетит. А в обрезанном линуксе, которому MMU не нужен - нет смысла, лишний расход ресурсов.

Meyer ★★★★★
()
Ответ на: комментарий от sehellion

Ответ

Мне бы хотелось иметь не ОСРВ, а ОС с приложениями, оканчивающивами свою работу не через опр. промежуток времени, а сказать, что оно выполнил ось. Хотя в целом Вы правы, но хочется просто поиграться с линуксом не на пк, поэкспериментировать.

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

Ответ

Спасибо за ценную информацию про MMU.

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

Два часа на базовую загрузку(init=/bin/bash)

Как-то сложно назвать это благами линукса. И мегабайты ОЗУ не так уж у многих мк есть.

mky ★★★★★
()

Берёшь unix v7 и портируешь на arm (пример подобного порта: см. порт на i386) — проку больше будет, чем от жЫрного пЫнгвЫна.

beastie ★★★★★
()

Как уже выше сказали - без MMU это будет боль и страдание.

Хотя, я поднимал uclinux на blacfin'e, всё уместилось во флешку 8МБ. 256К под u-boot, 1.5M для ядра и остальное под / на j2ffs. Но из-за того, что нет MMU не собрать очень многие пакеты.

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

Там был среди кода ядра даже один файлик txt - living without MMU - там очень подробно были расписаны все страдания.

synya
()

на арм без полблем. использую на R и M профилях. если судить по ядру, то сообщество в 3 человека. Один из них билдит gcc нативно на кастомной борде с cortex-m7 и 64 Mb памяти. я сам щупал cortex-m33 на борде с полутора гигами памяти... заморачиваться есть смысл только для быстрого прототипирования либо уже есть железо со значительным запасом ресурсов которые девать особо некуда.

anonymous
()

Как уже говорили, проблема - отсутствие MMU.

Но если вам прям позарез нужен линукс на стмке - можно использовать обрезок в виде uCLinux - в инете много инфы и есть видюшки работы на дискавери.

Но если нужен просто линукс в ембед, то юзайте SOM модули. Или есть отличный вариант с вифи за $5 - omega 2

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

Именно.

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

synya
()

можно, если у контроллера есть MMU - блок управления памятью. Без MMU была попытка заводить uclinux, как уже писали.

В целом, на сколько мне известно, для микроконтроллеров существуют хорошие свободные ОС. Линукс повсюду это хорошо, но нужно и меру знать.

Nicholass ★★★
()

А как насчёт NuttX? Там вроде бы есть некоторая часть POSIX, возможно будет реально портировать интересующие тебя приложения.

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

так это через слой эмуляции. читай внимательней автор запилил эмулятор арма на авр и уже поверх него все пускал.

anonymous
()

кстати, вот эти ребята [1] даже этим зарабатывают... видимо все же есть в этом какой-то профит.

[1] http://www.emcraft.com

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

А без слоя эмуляции у него ничего не вышло бы, потому что он не только систему команд эмулировал, но и память (1 Мегабайт). К множеству МК модуль SIMM не подключить даже в режиме эмуляции, у них просто не хватит ног.

А ребята из emcraft приделывают к 32-bit ARM Cortex-M4 (достаточно крутому по меркам МК) модуль ОЗУ и флеш, получают одноплатник по цене $35, а не пытаются уместить ядро linux в ПЗУ МК.

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

спасибо кэп! просто твой коммент прозвучал как-то обобщенно на все МК, но я смотрю что мы оба согласны что по ссылке описан частный случай (извращения).

anonymous
()

Есть производители (и даже российские), которые делают ARMы в формате «вилка в розетку».

Ну то есть, штуковина размером с БП меленького ноутбука, из неё торчит вилка для розетки и два разъёма Gb Ethernet. Плюс внутри можно подключить COM-терминал.

ARM какой-то (не помню), два гига оперативки, 2 гигабитных ethernet'а (то есть, можно сделать из неё роутер-мост), в качестве «диска» - SD карточка, операционка - дебиан. И дебиан даже апдейтился через интернет без проблем.

Года 3 назад штуковина стоила 7000 рублей.

slamd64 ★★★★★
()

Мне кажется из самого реального - взять какой-нибудь Fuzix и его портировать.

nihirash ★★★
()
Ответ на: комментарий от Morin

А давай не будем про все микроконтроллеры (: Ваша любовь к армам делает вас слепыми

А разве есть настоящий (подчеркиваю, настоящий) микроконтроллер с MMU? Все, что имеет MMU - это уже полноценные процессоры.

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

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

Morin ★★★★★
()
Ответ на: комментарий от synya

Как уже выше сказали - без MMU это будет боль и страдание

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

Это потому что вы не умеете его готовить. У меня ничего не блокируется: https://git.busybox.net/busybox/tree/libbb/vfork_daemon_rexec.c?h=1_27_stable

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