LINUX.ORG.RU

uCLinux на ARM железяку. КАК?

 , , ,


0

1

Здравствуйте! Имеется железяка с линуксом на борту - роутер от фирмы Акопро. Так вот, хочется чтобы он стал управляемым свитчем даже без вайфай, без юсб и без всяких плюшек - просто чтобы у него был свой IP, чтобы был открыт порт 80 и простенькая страничка показывалась при обращении к нему... adam2 я уже вызубрил, даже в бутлоадер залез по rs232, но вот мне непонятны несколько моментов:
флеш-память устройства содержит несколько файлов, один из которых - сам линукс незнамо-какой версии, файл веб-интерфейса и плюшек и загрузчик(это, конечно, я уже домыслил по названию boot-чего-то-там). И я не могу понять принцип работы этой связки - вроде он при загрузке распаковывает эти файлики и монтирует файл интерфейса в tmpfs, предварительно создав устройства и так далее. Но все равно я сомневаюсь в принципе.
Объясните пожалуйста на пальцах, как вообще embedded устройства загружают линукс, чтобы я его спокойно, зная принципы, собрал и запустил, потихоньку добавляя фичи. Спасибо огромное, товарищи!

★★★★★

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

Ближе к теме, товарищ, я ж не ради рекламы тред создал.

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

наверняка ты бесплатно каждый день тысяч 15 толстотысимволов набираешь. А тут пара сотен явного профита для студентов

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

К сожалению, даже залив этот openwrt, я не понял как эта зараза работает... Мне, по сути, только голый линукс там и нужен. Ну с ssh демоном конечно, чтобы по сети, а не через FT232 лезть

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

К сожалению, даже залив этот openwrt, я не понял как эта зараза работает...

А теперь ничего никуда не заливай, а собери сам свою, лишь с ssh-демоном и чем там теперь нужно

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

Просто залить-то залил, но она не заработала, так как этой железяки нет в списках. Да и не в дистре дело, а в понимании загрузки его бутлоадером процессора

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

Да и не в дистре дело, а в понимании загрузки его бутлоадером процессора

К тому времени, как ты осилишь её собрать, понимание придет

derlafff ★★★★★
()

Как правило процесс загрузки на embedded системах такой (во всяком случае мне чаще всего встречался, да и в своих разработках я такой использую):

1. Грузится маленький загрузчик (в s3c2440, например, прошитый в SoC железно)

2. Этот загрузчик в зависимости от конфигурации (как правило определяется сигналами 0/1 на нескольких ножках SoC) грузит уже загрузчик второго уровня из NAND, NOR, SPI, RS232 и тд (некоторые SoC, например как s3c2416 могут даже с SD карточки загрузчик тянуть). Загрузчиком второго уровня часто является u-boot, yamon (часто на мипсах типа Au1250 используется) и пр.

3. Загрузчик второго уровня настраивает аппаратуру по-минимуму: частоты и конфигурации шин памяти, сеть, usb, framebuffer (если есть) и пр. Затем в зависимости от настроек, тянет откуда-либо ядро и рам-диск. И передаёт управление ядру. Часто загрузчики второго уровня предоставляют консоль на каком-либо последовательном порту с достаточно богатым функционалом по конфигурации SoC.

4. Ядро распаковывается, цепляет рам-диск и запускает init с рам-диска. Часто можно обойтись и без рам-диска. Сразу подцепив основную ФС с какого-либо носителя.

5. init запускает скрипты и проги с рам-диска, которые уже монтируют основную файловую систему (которая может находится на NAND, SD и пр.) и передают управление основным скриптам загрузки.

Чаще всего, на этапе отладки системы и прог, основную ФС удобнее держать на основном компе и монтировать по сети через NFS.

Где держать ФС и в каком формате, как правило это определяется задачами и вкусом разработчика. На SD карточках, часто удобнее всего использовать ext2. Если в процессе работы системы ничего сохранять между включением/выключением не нужно, то лучше использовать romfs/cramfs/squashfs, а логи и временные файлы хранить на tmpfs.

vasil_sd
()

какой процессор? какая память? есть ли jtag?\ что говорит openwrt на данный проц и похожую конфигурацию?

ktk ★★★★
()

SoC какой? Гугли даташит на SoC и кури до просветления.

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

Ну, TC попросил объяснить процесс загрузки, я как мог объяснил. Что он дальше будет делать - это уже его проблемы.

Может ему так понравится возня со сборкой и запуском embedded системы, что мы получим со временем ещё одного профессионала в области встраиваемого линукса :)

vasil_sd
()

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

а ты уверен, что это аппаратно там поддерживается? Может там один интерфейс в сторону провайдера, а свитч на микросхеме реализован, и IP интерфейс на нем нельзя поднять?

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

Покорнейше благодарю, добрый человек! Подробно разъяснил то, что удалось собрать в кашу из информации за довольно долгий период.
Также спасибо за наводку на NFS - очень полезное дополнение!

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

Выпилить же родной зонд надо

minakov ★★★★★
() автор топика

Долгими ночами ковырял uClinux, но он у меня не собрался- то ругался на отсутствующие утилиты для сборки, то собирать не хотел, так как какие то команды не проходили(чкть позже лог скину). Есть у кого-нибудь готовые решения под ARM? А точнее - под 7 арм с 16 мб памяти и 4 мб флеш?

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