Линух на железе
Re: Линух на железе
а ftp не пускает?
Re: Линух на железе
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. Сейчас заводится.
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
Error: Read-only file system
Re: Линух на железе
теперь будешь делать свою прошивку с торрентом?
Re: Линух на железе
Если кто ни будь поможет, и на пальцах объяснит, в какую сторону двигаться - то буду (З.Ы. щас у меня 2 модема для препарации, скоро добуду еще один. все абсолютно одинаковые StarNet 2110EH V7.0)Лимон писал(а):теперь будешь делать свою прошивку с торрентом?
UPD: Теперь таки прошил прошивкой от акорпа. в версии пишет себя как Acorp 302T (на базе LAN120 прошивка, в телнете отвечает именно так)
UPD2: Ну помогите же, люди...
# cat mans > /dev/brain
Error: Read-only file system
Error: Read-only file system
Re: Линух на железе
OpenWRT не встанет на твою железку, придется творить свое.
для этого надо научиться собирать все из исходников, понимать как загружается система.
начать с LFS - лучшее учебное пособие. http://www.linuxfromscratch.org/
потом CrossLFS - кросскомпиляция и встраивание.
сначала делать все на виртуальной системе, когда придет понимание, соберешь для своей железки.
Как загружается система с флешки (обрати внимание, не с усб-флешки, а именно с флешки, к которая в адресном пространстве процессора, а не на юсб шине) хорошо описано на странице загрузчика Адам2 http://www.seattlewireless.net/ADAM2
OpenWRT хорош, очень, может с него начать? собрать систему для x86 виртуалки? а потом уже дальше...
для этого надо научиться собирать все из исходников, понимать как загружается система.
начать с LFS - лучшее учебное пособие. http://www.linuxfromscratch.org/
потом CrossLFS - кросскомпиляция и встраивание.
сначала делать все на виртуальной системе, когда придет понимание, соберешь для своей железки.
Как загружается система с флешки (обрати внимание, не с усб-флешки, а именно с флешки, к которая в адресном пространстве процессора, а не на юсб шине) хорошо описано на странице загрузчика Адам2 http://www.seattlewireless.net/ADAM2
OpenWRT хорош, очень, может с него начать? собрать систему для x86 виртуалки? а потом уже дальше...
Re: Линух на железе
https://www.ibm.com/developerworks/ru/e ... index.html - оно поможет?
Может кто ни будь сможет подъехать в Линукс-центр в субботу (конечно если там все еще кто-то будет), да и поможет мне, да и на железку посмотрит. А-то я тупой >_<
Может кто ни будь сможет подъехать в Линукс-центр в субботу (конечно если там все еще кто-то будет), да и поможет мне, да и на железку посмотрит. А-то я тупой >_<
# cat mans > /dev/brain
Error: Read-only file system
Error: Read-only file system
Re: Линух на железе
Да.NeleGALL писал(а):https://www.ibm.com/developerworks/ru/e ... index.html - оно поможет?
Re: Линух на железе
Почитал... Есть несколько неточностей, или я не шарю. Например, при сборке ядра и бизибокса кроме CROSS_COMPILE надо еще задавать арчитектуру ARCH.
Немного настораживает uClibc - я доселе не имел с нею дела. На всякий случай, если собираешься не только собрать свой дистр и, побаловавшись, вернуть на место родной, почитай эту доку uClibc vs glibc. И учти, что на либцэ строится весь линукс. Если изменишь его - придется пересобирать все, включая кросскомпилер. Геморно, имхо.
Туксовка на субботу отменилась,жаль. Знаешь, собери пока тулчейн. Это занятие не быстрое .Можешь ручками - дольше, но веселее. Но лучше не уподобляться красноглазым гентушникам, не умножать энтропию сверх необходимого - и юзать скрипты. Я, кстать, ручками собирал.. Употел не раз, блин.
Т.к. на плате 8 метров рамы, оттуда можно спокойно запускаться, чтоб каждый раз флэшку не тереть. И быстрее будет, чем с флэшки.
Если б ты еще ткнул меня в спеку проца, чтоб глянуть, что у него внутри, а то че-то все нагугленные ссылки дохлые. Можно было бы придумать, что к модему еще можно прикрутить - а вдруг вентилятор?
Немного настораживает uClibc - я доселе не имел с нею дела. На всякий случай, если собираешься не только собрать свой дистр и, побаловавшись, вернуть на место родной, почитай эту доку uClibc vs glibc. И учти, что на либцэ строится весь линукс. Если изменишь его - придется пересобирать все, включая кросскомпилер. Геморно, имхо.
Туксовка на субботу отменилась,жаль. Знаешь, собери пока тулчейн. Это занятие не быстрое .Можешь ручками - дольше, но веселее. Но лучше не уподобляться красноглазым гентушникам, не умножать энтропию сверх необходимого - и юзать скрипты. Я, кстать, ручками собирал.. Употел не раз, блин.
Т.к. на плате 8 метров рамы, оттуда можно спокойно запускаться, чтоб каждый раз флэшку не тереть. И быстрее будет, чем с флэшки.
Если б ты еще ткнул меня в спеку проца, чтоб глянуть, что у него внутри, а то че-то все нагугленные ссылки дохлые. Можно было бы придумать, что к модему еще можно прикрутить - а вдруг вентилятор?
Осень - мертвые дожди,
Осень - юные морозы,
Задубевшие березы
Ковыляют по Руси
Осень - юные морозы,
Задубевшие березы
Ковыляют по Руси
Re: Линух на железе
Все что удалось найти по процу - http://focus.ti.com/pdfs/bcg/ar7_prod_bulletin.pdfleen писал(а):Почитал... Есть несколько неточностей, или я не шарю. Например, при сборке ядра и бизибокса кроме CROSS_COMPILE надо еще задавать арчитектуру ARCH.
Немного настораживает uClibc - я доселе не имел с нею дела. На всякий случай, если собираешься не только собрать свой дистр и, побаловавшись, вернуть на место родной, почитай эту доку uClibc vs glibc. И учти, что на либцэ строится весь линукс. Если изменишь его - придется пересобирать все, включая кросскомпилер. Геморно, имхо.
Туксовка на субботу отменилась,жаль. Знаешь, собери пока тулчейн. Это занятие не быстрое .Можешь ручками - дольше, но веселее. Но лучше не уподобляться красноглазым гентушникам, не умножать энтропию сверх необходимого - и юзать скрипты. Я, кстать, ручками собирал.. Употел не раз, блин.
Т.к. на плате 8 метров рамы, оттуда можно спокойно запускаться, чтоб каждый раз флэшку не тереть. И быстрее будет, чем с флэшки.
Если б ты еще ткнул меня в спеку проца, чтоб глянуть, что у него внутри, а то че-то все нагугленные ссылки дохлые. Можно было бы придумать, что к модему еще можно прикрутить - а вдруг вентилятор?
Я пока совсем не понимаю, что, куда, и как собирается... может свяжемся как ни будь (icq, jabber, etc.), да ты мне объяснишь что требуется? 0_о
З.Ы. На две платы USB впаял, а транзисторы забыл. USB пока не фурычит.
# cat mans > /dev/brain
Error: Read-only file system
Error: Read-only file system
Re: Линух на железе
leen_vl@jabber.ru
В основном, по вечерам.
В основном, по вечерам.
Ну если ты объяснишь, чего хочешь, то почему нет?NeleGALL писал(а):да ты мне объяснишь что требуется? 0_о
Осень - мертвые дожди,
Осень - юные морозы,
Задубевшие березы
Ковыляют по Руси
Осень - юные морозы,
Задубевшие березы
Ковыляют по Руси
Re: Линух на железе
Так. Вроде, железо потихоньку оживает...
По старту было две проблемы - с езернетом и с микроСД картой.
Езернет - работал нормально только, если до загрузки ядра загрузчик работал с сетью. Если нет, eth0 не поднимался с ошибкой хардвера. Причина - МАС не сохраняется в чипе, МАС сохраняется в данных загрузчика, а загрузчик инициализирует железо только если оно им используется. Набрел на тред, в котором обсуждалось, кто должен заниматься записью МАСа в езернет контроллер - u-boot или ядро (точнее, модуль конкретного езернет контроллера)? В итоге все сошлись на том, что это работа инит-скрипта:). Для передачи МАСа из загрузчика в линукс в командную строку ядра был добавлен МАС. После загрузки ядра и во время настройки езернета МАС вынимается из /proc/cmdline скриптом (спасибо morphey за помощь в написании) и прописывается в контроллер через ifconfig.
МикроСД карта не хотела определяться после холодного старта - только после перезагрузки на горячую. При этом драйвер ее обнаруживал. Для автопоиска железа используется mdev - потомок udev'a, только не столь монструозный. Запускается он двума командами. Первая прописывает его в хотплаг ядра, вторая - собственно запуск мдева. Проблема убралась после добавления задержки в 100 мс между командами.
Также добавил на плату ключ питания. Теперь питание основной платы включается и выключается одной кнопкой, а также программно. При этом интерфейсный преобразователь FT2232 питается постоянно. Вся плата питается от usb. Потребление 250 мА. Вполне приемлимо для embedded-применения.
Теперь бы еще как-нибудь объяснить демону питения, когда надо гасить питание, а когда железо уходит в перезагрузку... М.б. это где-то в d-bus.
Ну и есть мысль начальную загрузку сделать slackware-подобной. Че-то она показалась мне наиболее вменяемой из виденных и слышанных (slack, redhat, bsd). Это конечно долго, но заняться этим надо. Ситуация осложняетс тем, что в бизибоксе большинство команд воспринимает не все (или не такие) параметры командной строки. Это или собирать кучу маленьких утил, или портировать скрипты. Вот думаю пока, что горше.
По старту было две проблемы - с езернетом и с микроСД картой.
Езернет - работал нормально только, если до загрузки ядра загрузчик работал с сетью. Если нет, eth0 не поднимался с ошибкой хардвера. Причина - МАС не сохраняется в чипе, МАС сохраняется в данных загрузчика, а загрузчик инициализирует железо только если оно им используется. Набрел на тред, в котором обсуждалось, кто должен заниматься записью МАСа в езернет контроллер - u-boot или ядро (точнее, модуль конкретного езернет контроллера)? В итоге все сошлись на том, что это работа инит-скрипта:). Для передачи МАСа из загрузчика в линукс в командную строку ядра был добавлен МАС. После загрузки ядра и во время настройки езернета МАС вынимается из /proc/cmdline скриптом (спасибо morphey за помощь в написании) и прописывается в контроллер через ifconfig.
МикроСД карта не хотела определяться после холодного старта - только после перезагрузки на горячую. При этом драйвер ее обнаруживал. Для автопоиска железа используется mdev - потомок udev'a, только не столь монструозный. Запускается он двума командами. Первая прописывает его в хотплаг ядра, вторая - собственно запуск мдева. Проблема убралась после добавления задержки в 100 мс между командами.
Также добавил на плату ключ питания. Теперь питание основной платы включается и выключается одной кнопкой, а также программно. При этом интерфейсный преобразователь FT2232 питается постоянно. Вся плата питается от usb. Потребление 250 мА. Вполне приемлимо для embedded-применения.
Теперь бы еще как-нибудь объяснить демону питения, когда надо гасить питание, а когда железо уходит в перезагрузку... М.б. это где-то в d-bus.
Ну и есть мысль начальную загрузку сделать slackware-подобной. Че-то она показалась мне наиболее вменяемой из виденных и слышанных (slack, redhat, bsd). Это конечно долго, но заняться этим надо. Ситуация осложняетс тем, что в бизибоксе большинство команд воспринимает не все (или не такие) параметры командной строки. Это или собирать кучу маленьких утил, или портировать скрипты. Вот думаю пока, что горше.
Осень - мертвые дожди,
Осень - юные морозы,
Задубевшие березы
Ковыляют по Руси
Осень - юные морозы,
Задубевшие березы
Ковыляют по Руси
- hatred
- Global Moderator
- Сообщения: 1205
- Зарегистрирован: 08 июн 2006 00:32
- Откуда: Владивосток
- Контактная информация:
Re: Линух на железе
там после загрузки же сразу стартует бизибокс? давай посмотрим сколько памяти будет кушать инит и попробуем прикрутить его, а дальше - на ранлевелы подключить скрипты, написать я могу - не проблема. След неделю я буду занят, а в ВС давай соберемся, попробуем что-то написать, я что-то уже из обоймы выпал %-)
Прошли времена когда на элементарные вопросы можно было отвечать man <что-то там> (с) из сети
Hatred's Log Place | My GitHub repos | My Gitlab repos
Hatred's Log Place | My GitHub repos | My Gitlab repos
Re: Линух на железе
Про память:
адро 1,2 М,
инитрамфс.гз 0,8 М,
инитрамфс 1,5 М.
после старта инит 0,8 М успешно освобождаются.
Про загрузку.
- бутлоадер загрузил, распаковал и запустил ядро;
- ядро прогрузил вкомпиленные в него модули, распаковало инитрамфс, запустило с него /init;
- инит:
Т.е. инит монтирует все, что есть, ищет железо, проваеряет наличие карточки, монтирует ее, переходит на нее с запуском /linuxrc.
/linuxrc - ссылка на /bin/busybox, запускающая инит бизибокса, конфигурируемый /etc/inittab. У него есть существенные отличия от классического - например, игнорируются ранлевелы.
Сейчас у меня в sysinit запускается /etc/rc.d/rc.S, конфигурящий все.
Наверное, стоит выделить еще, как минимум, rc.modules и rc.local. Ну и rc.имя_демона для запуска демонов.
Давай соберемся, я попробую взять тулчейн, для сборки.
адро 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 - ссылка на /bin/busybox, запускающая инит бизибокса, конфигурируемый /etc/inittab. У него есть существенные отличия от классического - например, игнорируются ранлевелы.
Сейчас у меня в sysinit запускается /etc/rc.d/rc.S, конфигурящий все.
Наверное, стоит выделить еще, как минимум, rc.modules и rc.local. Ну и rc.имя_демона для запуска демонов.
Давай соберемся, я попробую взять тулчейн, для сборки.
Осень - мертвые дожди,
Осень - юные морозы,
Задубевшие березы
Ковыляют по Руси
Осень - юные морозы,
Задубевшие березы
Ковыляют по Руси
Re: Линух на железе
В продолжение проблемы управления питанием:
было написано <что-то>, управляющее питанием аппаратно.
Оно не могло отличить команды из терминала - halt от reboot. В воскресенье было предложено несколько вариантов как это победить. Сделано так.
Написал такое вот:
/sbin/reboot:
В результате - если система запущена ровно, то демон-отрубатель в системе один. Демону-отрубателю питания посылается сигнал на выход, он спокойно выходит, не трогая заветный вывод, шелл ждет еще чуть-чуть и нормально, ровно, по сценарию ребутит машину через бизибокс. Для параноиков - здесь можно парсить вывод killall или нормальное завершение демона. Как - отдельный разговор, но возможности есть.
Команда же halt - по-прежнему симлинк на бизибокс, т.е. mcpid выхватывает TERM и приземляет вывод управления питанием в ноль. С этого момента у системы есть 3 секунды на нормальное завершение, после чего питание вырубится аппаратно. При этом через 1 секунду после терма тем кто в танке посылается сигнал KILL и тут хочешь - не хочешь - возьми и убей себя апстену.
Имхо это лучше, чем напрямую патчить бизибокс. Главное, при следующем обновлении последнего не забыть и не затереть скрипт:)
было написано <что-то>, управляющее питанием аппаратно.
Оно не могло отличить команды из терминала - halt от reboot. В воскресенье было предложено несколько вариантов как это победить. Сделано так.
Написал такое вот:
/sbin/reboot:
Код: Выделить всё
#!/bin/sh
killall -SIGQUIT mcpid
sleep 1
exec /bin/busybox /sbin/reboot
Команда же halt - по-прежнему симлинк на бизибокс, т.е. mcpid выхватывает TERM и приземляет вывод управления питанием в ноль. С этого момента у системы есть 3 секунды на нормальное завершение, после чего питание вырубится аппаратно. При этом через 1 секунду после терма тем кто в танке посылается сигнал KILL и тут хочешь - не хочешь - возьми и убей себя апстену.
Имхо это лучше, чем напрямую патчить бизибокс. Главное, при следующем обновлении последнего не забыть и не затереть скрипт:)
Осень - мертвые дожди,
Осень - юные морозы,
Задубевшие березы
Ковыляют по Руси
Осень - юные морозы,
Задубевшие березы
Ковыляют по Руси
- hatred
- Global Moderator
- Сообщения: 1205
- Зарегистрирован: 08 июн 2006 00:32
- Откуда: Владивосток
- Контактная информация:
Re: Линух на железе
а все таки, нужно сделать правильную реализацию вызова reboot(2) в системе. бизибокс же использует glibc?
Прошли времена когда на элементарные вопросы можно было отвечать man <что-то там> (с) из сети
Hatred's Log Place | My GitHub repos | My Gitlab repos
Hatred's Log Place | My GitHub repos | My Gitlab repos