Линух на железе

Технические обсуждения

Re: Линух на железе

Сообщение Лимон » 04 ноя 2009 17:03

а ftp не пускает?
Лимон
Full Member
Full Member
 
Сообщения: 140
Зарегистрирован: 26 июн 2009 15:11
Откуда: Владивосток

Re: Линух на железе

Сообщение NeleGALL » 05 ноя 2009 08:12

Adam жив
C:\Users\user>ftp 192.168.1.1
Связь с 192.168.1.1.
220 ADAM2 FTP Server ready.
Пользователь (192.168.1.1:(none)):

UP: прощивальщиков прошил в D-Link 300T. Сейчас заводится.
# cat mans > /dev/brain
Error: Read-only file system
Аватара пользователя
NeleGALL
Advanced Newbie
Advanced Newbie
 
Сообщения: 21
Зарегистрирован: 30 окт 2009 11:10

Re: Линух на железе

Сообщение Лимон » 05 ноя 2009 09:19

теперь будешь делать свою прошивку с торрентом?
Лимон
Full Member
Full Member
 
Сообщения: 140
Зарегистрирован: 26 июн 2009 15:11
Откуда: Владивосток

Re: Линух на железе

Сообщение NeleGALL » 05 ноя 2009 10:16

Лимон писал(а):теперь будешь делать свою прошивку с торрентом?

Если кто ни будь поможет, и на пальцах объяснит, в какую сторону двигаться - то буду (З.Ы. щас у меня 2 модема для препарации, скоро добуду еще один. все абсолютно одинаковые StarNet 2110EH V7.0)

UPD: Теперь таки прошил прошивкой от акорпа. в версии пишет себя как Acorp 302T (на базе LAN120 прошивка, в телнете отвечает именно так)

UPD2: Ну помогите же, люди...
# cat mans > /dev/brain
Error: Read-only file system
Аватара пользователя
NeleGALL
Advanced Newbie
Advanced Newbie
 
Сообщения: 21
Зарегистрирован: 30 окт 2009 11:10

Re: Линух на железе

Сообщение Лимон » 05 ноя 2009 13:49

OpenWRT не встанет на твою железку, придется творить свое.
для этого надо научиться собирать все из исходников, понимать как загружается система.
начать с LFS - лучшее учебное пособие. http://www.linuxfromscratch.org/
потом CrossLFS - кросскомпиляция и встраивание.
сначала делать все на виртуальной системе, когда придет понимание, соберешь для своей железки.
Как загружается система с флешки (обрати внимание, не с усб-флешки, а именно с флешки, к которая в адресном пространстве процессора, а не на юсб шине) хорошо описано на странице загрузчика Адам2 http://www.seattlewireless.net/ADAM2
OpenWRT хорош, очень, может с него начать? собрать систему для x86 виртуалки? а потом уже дальше...
Лимон
Full Member
Full Member
 
Сообщения: 140
Зарегистрирован: 26 июн 2009 15:11
Откуда: Владивосток

Re: Линух на железе

Сообщение NeleGALL » 05 ноя 2009 14:48

https://www.ibm.com/developerworks/ru/e ... index.html - оно поможет?

Может кто ни будь сможет подъехать в Линукс-центр в субботу (конечно если там все еще кто-то будет), да и поможет мне, да и на железку посмотрит. А-то я тупой >_<
# cat mans > /dev/brain
Error: Read-only file system
Аватара пользователя
NeleGALL
Advanced Newbie
Advanced Newbie
 
Сообщения: 21
Зарегистрирован: 30 окт 2009 11:10

Re: Линух на железе

Сообщение Лимон » 05 ноя 2009 15:00

NeleGALL писал(а):https://www.ibm.com/developerworks/ru/edu/l-embedded-distro/index.html - оно поможет?

Да.
Лимон
Full Member
Full Member
 
Сообщения: 140
Зарегистрирован: 26 июн 2009 15:11
Откуда: Владивосток

Re: Линух на железе

Сообщение leen » 05 ноя 2009 22:29

Почитал... Есть несколько неточностей, или я не шарю. Например, при сборке ядра и бизибокса кроме CROSS_COMPILE надо еще задавать арчитектуру ARCH.
Немного настораживает uClibc - я доселе не имел с нею дела. На всякий случай, если собираешься не только собрать свой дистр и, побаловавшись, вернуть на место родной, почитай эту доку uClibc vs glibc. И учти, что на либцэ строится весь линукс. Если изменишь его - придется пересобирать все, включая кросскомпилер. Геморно, имхо.
Туксовка на субботу отменилась,жаль. Знаешь, собери пока тулчейн. Это занятие не быстрое :) .Можешь ручками - дольше, но веселее. Но лучше не уподобляться красноглазым гентушникам, не умножать энтропию сверх необходимого - и юзать скрипты. Я, кстать, ручками собирал.. Употел не раз, блин.
Т.к. на плате 8 метров рамы, оттуда можно спокойно запускаться, чтоб каждый раз флэшку не тереть. И быстрее будет, чем с флэшки.
Если б ты еще ткнул меня в спеку проца, чтоб глянуть, что у него внутри, а то че-то все нагугленные ссылки дохлые. Можно было бы придумать, что к модему еще можно прикрутить - а вдруг вентилятор?
Осень - мертвые дожди,
Осень - юные морозы,
Задубевшие березы
Ковыляют по Руси
leen
Advanced Newbie
Advanced Newbie
 
Сообщения: 46
Зарегистрирован: 29 апр 2009 12:20

Re: Линух на железе

Сообщение NeleGALL » 05 ноя 2009 23:21

leen писал(а):Почитал... Есть несколько неточностей, или я не шарю. Например, при сборке ядра и бизибокса кроме CROSS_COMPILE надо еще задавать арчитектуру ARCH.
Немного настораживает uClibc - я доселе не имел с нею дела. На всякий случай, если собираешься не только собрать свой дистр и, побаловавшись, вернуть на место родной, почитай эту доку uClibc vs glibc. И учти, что на либцэ строится весь линукс. Если изменишь его - придется пересобирать все, включая кросскомпилер. Геморно, имхо.
Туксовка на субботу отменилась,жаль. Знаешь, собери пока тулчейн. Это занятие не быстрое :) .Можешь ручками - дольше, но веселее. Но лучше не уподобляться красноглазым гентушникам, не умножать энтропию сверх необходимого - и юзать скрипты. Я, кстать, ручками собирал.. Употел не раз, блин.
Т.к. на плате 8 метров рамы, оттуда можно спокойно запускаться, чтоб каждый раз флэшку не тереть. И быстрее будет, чем с флэшки.
Если б ты еще ткнул меня в спеку проца, чтоб глянуть, что у него внутри, а то че-то все нагугленные ссылки дохлые. Можно было бы придумать, что к модему еще можно прикрутить - а вдруг вентилятор?

Все что удалось найти по процу - http://focus.ti.com/pdfs/bcg/ar7_prod_bulletin.pdf
Я пока совсем не понимаю, что, куда, и как собирается... может свяжемся как ни будь (icq, jabber, etc.), да ты мне объяснишь что требуется? 0_о
З.Ы. На две платы USB впаял, а транзисторы забыл. USB пока не фурычит.
# cat mans > /dev/brain
Error: Read-only file system
Аватара пользователя
NeleGALL
Advanced Newbie
Advanced Newbie
 
Сообщения: 21
Зарегистрирован: 30 окт 2009 11:10

Re: Линух на железе

Сообщение leen » 06 ноя 2009 08:37

leen_vl@jabber.ru
В основном, по вечерам.
NeleGALL писал(а):да ты мне объяснишь что требуется? 0_о
Ну если ты объяснишь, чего хочешь, то почему нет?
Осень - мертвые дожди,
Осень - юные морозы,
Задубевшие березы
Ковыляют по Руси
leen
Advanced Newbie
Advanced Newbie
 
Сообщения: 46
Зарегистрирован: 29 апр 2009 12:20

Re: Линух на железе

Сообщение leen » 07 ноя 2009 17:21

Так. Вроде, железо потихоньку оживает...
По старту было две проблемы - с езернетом и с микроСД картой.
Езернет - работал нормально только, если до загрузки ядра загрузчик работал с сетью. Если нет, eth0 не поднимался с ошибкой хардвера. Причина - МАС не сохраняется в чипе, МАС сохраняется в данных загрузчика, а загрузчик инициализирует железо только если оно им используется. Набрел на тред, в котором обсуждалось, кто должен заниматься записью МАСа в езернет контроллер - u-boot или ядро (точнее, модуль конкретного езернет контроллера)? В итоге все сошлись на том, что это работа инит-скрипта:). Для передачи МАСа из загрузчика в линукс в командную строку ядра был добавлен МАС. После загрузки ядра и во время настройки езернета МАС вынимается из /proc/cmdline скриптом (спасибо morphey за помощь в написании) и прописывается в контроллер через ifconfig.
МикроСД карта не хотела определяться после холодного старта - только после перезагрузки на горячую. При этом драйвер ее обнаруживал. Для автопоиска железа используется mdev - потомок udev'a, только не столь монструозный. Запускается он двума командами. Первая прописывает его в хотплаг ядра, вторая - собственно запуск мдева. Проблема убралась после добавления задержки в 100 мс между командами.
Также добавил на плату ключ питания. Теперь питание основной платы включается и выключается одной кнопкой, а также программно. При этом интерфейсный преобразователь FT2232 питается постоянно. Вся плата питается от usb. Потребление 250 мА. Вполне приемлимо для embedded-применения.
Теперь бы еще как-нибудь объяснить демону питения, когда надо гасить питание, а когда железо уходит в перезагрузку... М.б. это где-то в d-bus.
Ну и есть мысль начальную загрузку сделать slackware-подобной. Че-то она показалась мне наиболее вменяемой из виденных и слышанных (slack, redhat, bsd). Это конечно долго, но заняться этим надо. Ситуация осложняетс тем, что в бизибоксе большинство команд воспринимает не все (или не такие) параметры командной строки. Это или собирать кучу маленьких утил, или портировать скрипты. Вот думаю пока, что горше.
Осень - мертвые дожди,
Осень - юные морозы,
Задубевшие березы
Ковыляют по Руси
leen
Advanced Newbie
Advanced Newbie
 
Сообщения: 46
Зарегистрирован: 29 апр 2009 12:20

Re: Линух на железе

Сообщение hatred » 07 ноя 2009 19:42

там после загрузки же сразу стартует бизибокс? давай посмотрим сколько памяти будет кушать инит и попробуем прикрутить его, а дальше - на ранлевелы подключить скрипты, написать я могу - не проблема. След неделю я буду занят, а в ВС давай соберемся, попробуем что-то написать, я что-то уже из обоймы выпал %-)
Прошли времена когда на элементарные вопросы можно было отвечать man <что-то там> (с) из сети
Hatred's Log Place | My GitHub repos | My Gitlab repos
Аватара пользователя
hatred
Global Moderator
Global Moderator
 
Сообщения: 1204
Зарегистрирован: 08 июн 2006 00:32
Откуда: Владивосток

Re: Линух на железе

Сообщение leen » 08 ноя 2009 10:24

Про память:
адро 1,2 М,
инитрамфс.гз 0,8 М,
инитрамфс 1,5 М.
после старта инит 0,8 М успешно освобождаются.

Про загрузку.
- бутлоадер загрузил, распаковал и запустил ядро;
- ядро прогрузил вкомпиленные в него модули, распаковало инитрамфс, запустило с него /init;
- инит:
Код: Выделить всё
#!/bin/sh
echo in initramfs
echo

# mount system fs
mount /proc
mount /sys
mount /tmp
mount /dev/pts
mount /dev
# get new devices
echo /bin/mdev > /proc/sys/kernel/hotplug
usleep 100000
mdev -s
# find SD/MMC card
# support work wuth mmcblk and mmcblk0p1 only
if [ -r /dev/mmcblk0p1 ]; then
   mount /dev/mmcblk0p1 /mmc
elif [ -r /dev/mmcblk0 ]; then
   mount /dev/mmcblk0 /mmc
else
   echo "no SD/MMC card found!"
   /bin/sh --login
fi
echo outting initramfs
exec switch_root /mmc /linuxrc

Т.е. инит монтирует все, что есть, ищет железо, проваеряет наличие карточки, монтирует ее, переходит на нее с запуском /linuxrc.
/linuxrc - ссылка на /bin/busybox, запускающая инит бизибокса, конфигурируемый /etc/inittab. У него есть существенные отличия от классического - например, игнорируются ранлевелы.
Сейчас у меня в sysinit запускается /etc/rc.d/rc.S, конфигурящий все.
Наверное, стоит выделить еще, как минимум, rc.modules и rc.local. Ну и rc.имя_демона для запуска демонов.
Давай соберемся, я попробую взять тулчейн, для сборки.
Осень - мертвые дожди,
Осень - юные морозы,
Задубевшие березы
Ковыляют по Руси
leen
Advanced Newbie
Advanced Newbie
 
Сообщения: 46
Зарегистрирован: 29 апр 2009 12:20

Re: Линух на железе

Сообщение leen » 16 ноя 2009 22:43

В продолжение проблемы управления питанием:
было написано <что-то>, управляющее питанием аппаратно.
Оно не могло отличить команды из терминала - halt от reboot. В воскресенье было предложено несколько вариантов как это победить. Сделано так.
Написал такое вот:
/sbin/reboot:
Код: Выделить всё
#!/bin/sh

killall -SIGQUIT mcpid
sleep 1
exec /bin/busybox /sbin/reboot

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

Команда же halt - по-прежнему симлинк на бизибокс, т.е. mcpid выхватывает TERM и приземляет вывод управления питанием в ноль. С этого момента у системы есть 3 секунды на нормальное завершение, после чего питание вырубится аппаратно. При этом через 1 секунду после терма тем кто в танке посылается сигнал KILL и тут хочешь - не хочешь - возьми и убей себя апстену.
Имхо это лучше, чем напрямую патчить бизибокс. Главное, при следующем обновлении последнего не забыть и не затереть скрипт:)
Осень - мертвые дожди,
Осень - юные морозы,
Задубевшие березы
Ковыляют по Руси
leen
Advanced Newbie
Advanced Newbie
 
Сообщения: 46
Зарегистрирован: 29 апр 2009 12:20

Re: Линух на железе

Сообщение hatred » 16 ноя 2009 23:00

а все таки, нужно сделать правильную реализацию вызова reboot(2) в системе. бизибокс же использует glibc?
Прошли времена когда на элементарные вопросы можно было отвечать man <что-то там> (с) из сети
Hatred's Log Place | My GitHub repos | My Gitlab repos
Аватара пользователя
hatred
Global Moderator
Global Moderator
 
Сообщения: 1204
Зарегистрирован: 08 июн 2006 00:32
Откуда: Владивосток

Пред.След.

Вернуться в Linux tech talks

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 1

cron