Jump to content

typedef

Forum Members
  • Posts

    31
  • Joined

  • Last visited

Everything posted by typedef

  1. пардон, просмотрел :( в общем, поборол я задачу ) 1. добавил в \keenetic-sdk\package\base-files\Makefile ln -s /bin $(1)/opt/bin chmod +x $(1)/opt/etc/ndm/ifcreated.d/01-on_bridge0_created.sh 2. добавил скрипт /opt/etc/ndm/ifcreated.d/01-on_bridge0_created.sh #!/bin/ash logger "$0 $id" if [ "$id" = "Bridge0" ]; then logger "start avahi-daemon" avahi-daemon -D -f /opt/etc/avahi/avahi-daemon.conf fi ну и все завелось наконец-то. Огромное спасибо sergeyk за терпение и поддержку!
  2. ага, я когда раньше такое пробовал, то остановился на том, что не вызываются initrc и init.d/* Но эти хуки вызываются. Но у меня опять что то не все ОК сделал три хука: /opt/etc/ndm/ifcreated.d/01-on_ifcreated.sh /opt/etc/ndm/ifipchanged.d/01-on_ifipchanged.sh /opt/etc/ndm/ifstatechanged.d/01-on_ifstatechanged.sh вида #!/bin/ash logger "$0 $id" но в логе что то странное Feb 6 19:00:31 ndm Network::Interface::Switch: "FastEthernet0/1": switch link down at port 1. Feb 6 19:00:31 ndm Process: system failed [0xcffd0a8a], "/opt/bin/ash" executable not found. Feb 6 19:00:31 ndm Process: unable to create and initialize "Opkg shell" process. Feb 6 19:00:31 ndm Io::Process: "Opkg shell" is broken. Feb 6 19:00:31 ndm Opkg::Manager: process /opt/etc/ndm/ifstatechanged.d/01-on_ifstatechanged.sh: failed to start. Feb 6 19:00:31 ndm Process: system failed [0xcffd0a8a], "/opt/bin/ash" executable not found. Feb 6 19:00:31 ndm Process: unable to create and initialize "Opkg shell" process. Feb 6 19:00:31 ndm Io::Process: "Opkg shell" is broken. Feb 6 19:00:31 ndm Opkg::Manager: process /opt/etc/ndm/ifstatechanged.d/01-on_ifstatechanged.sh: failed to start. притом если запускать из терминала /opt/etc/ndm/ifstatechanged.d/01-on_ifstatechanged.sh то все ок
  3. а что у Вас в настройках opkg ? Какой Driver и что за модель роутера?
  4. только сейчас обратил внимание keenetic-sdk/files а не keenetic-sdk/package/base-files/files есть разница?
  5. так я с этого и начинал!!! Но, после "opkg disk temp:/" все мои скрипты исчезают, так как на /opt монтируется /tmp А если без "opkg disk temp:/", то да, мои скрипты лежат в /opt, но автоматический запуск (хуки) не отрабатывают
  6. так а куда мне скрипт складывать в base_files? после "opkg disk temp:/" /op смонтирован на /tmp я вижу такой порядок действий (может ошибаюсь) 1. запускаю на роутере opkg disk temp:/ /opt -> /tmp 2. скрипт для запуска демона avahi-daemon складываю в package/base_files/files/XXX 3. собираю прошивку 4. после ребута роутера скрипт, подготовленный на шаге 2. оказывается в /opt/XXX 5. срабатывает хук и скрипт запускается так вот вся моя проблема в шаге 4. Как собрать образ так, чтобы скрипт был в /opt ?
  7. спасибо, жаль. Просто при монтировании на /tmp смысла от этих хуков нет, поскольку никаких скриптов на момент монтирования там нет. Поэтому я и спрашивал, возможно ли смонтировать /opt на какую то ветку из rootfs. Тогда я бы смог подготовить все скрипты и нужные конфиги в прошивке. Я пробовал в base_files складывать скрипты на /tmp - понятно бессмысленно и на /opt. В последнем случае, если не использовать opkg disk XXX, то скрипты на /opt лежат, но initrc автоматом не исполняется, если вызывать opkg disk, то моя папка /opt из прошивки затирается.
  8. как я понял этой командой мы монтируем /tmp на /opt все классно, но при рестарте все его содержимое стирается А какие еще варианты есть кроме "temp:/", можно ли примонтировать какую-нибудь ветку от rootfs, например /etc ?
  9. после этого на /opt, который раньше был пустой появляется куча файлов Я туда опять складываю свои скрипты, но после ребута скрипты удаляются короче, никак мне не понять как решить казалось бы простую задачу, запуска скрипта при старте роутера
  10. а-а-а ну команда сработала (config)> opkg disk temp:/ Opkg::Manager: Disk is set to: temp:/. а что с этим дальше делать?
  11. так в том и проблема, как я писал выше, что opkg похоже не встал / # opkg disk temp:/ /bin/ash: opkg: not found
  12. похоже на то что opkg толком не встал (или я что то не то сделал) / # find / -name *opkg* /usr/sbin/opkg_led_ctl / # поэтому, думаю, ничего из этой статьи не работает https://github.com/ndmsystems/packages/wiki/Opkg-Component#hook-scripts
  13. с этим вчера разобрался, добавил пару строк chmod в Makefile Но вот скрипт /opt/etc/initrc автоматом не стартует Руками потом запускаю все ок, а сам не хочет
  14. Что то не получилось у меня с наскока сделать автоматический запуск демона :( Файлы в \package\base-files\files\opt\etc положил (и initrc и директорий init.d со скриптом внутри добавил). Они не запускаются потому что без флага на запуск. Видимо где то в makefile надо делать chmod +x Может где то есть примерчик, чтобы по аналогии сделать? Ну или, если я Вас еще не задолбал, поясните по подробнее как добавить скрипт start\stop какого-нить сервиса
  15. ага, спасибо! Вечером попробую. Я правильно понимаю, что я должен написать скрипт /opt/etc/initrc и положить его в \package\base-files\files\ Ну или лучше написать отдельный скрипт avahi, положить его в \package\base-files\files\opt\etc\init.d В SDK я что то не нашел подобных скриптов, в том числе /opt/etc/ndm/*
  16. ну вроде все теперь работает как надо, AirPlay и прочие радости из ZeroConfig работают между двумя подсетями (проводными и wi-fi) Теперь остался последний шаг, как правильно добавить файл конфига и запустить при старте avahi-daemon С первым вроде понятно, надо добавить конфиг в \package\base-files\files\etc а как правильно прописать автозапуск демона?
  17. моя цель была запустить анонсированный в версии 3.7.1 сервис mdns (который на самом деле для 1611 недоступен) Из-за этого весь сыр-бор, а потом уже стало интересно ) Сейчас я добавил модуль ndm-mdns, он за собой поставил демона avahi. Но вот как это все запускается я пока не понял service avahi-deamon start не работает, так как sevice не поддеживается...
  18. YESSSSSSS !!! Спасибо Вам большое!
  19. ну да. Спасибо, я попробую! И еще вопрос до кучи ) в /build_dir/target-mipsel-linux-musl_musl/root-mt7628/etc лежат файлы конфигов некоторые живые, а некоторые символические ссылки на /tmp например: lrwxrwxrwx 1 alvas alvas 11 Feb 2 21:15 passwd -> /tmp/passwd lrwxrwxrwx 1 alvas alvas 8 Feb 2 21:15 ppp -> /var/ppp lrwxrwxrwx 1 alvas alvas 16 Feb 2 21:15 resolv.conf -> /var/resolv.conf они как то генерятся на лету или их можно при сборке где-то поправить?
  20. хм... странно вроде нет никаких ошибок при сборке нет да и цифры у меня другие alvas@Alvas-PC:~/keenetic/keenetic-sdk$ cat .config | grep CONFIG_TARGET_FIRMWARE_SIZE CONFIG_TARGET_FIRMWARE_SIZE="0xf60000" alvas@Alvas-PC:~/keenetic/keenetic-sdk$ printf %d 0xf60000 16121856 сейчас еще глянул официальный файл из Recovery для 1611 - KN-1611_recovery.bin Он размером 8257596 Да и роутер никаких ошибок прошивки тоже не выдает, по крайней мере я их не вижу. bin/busybox есть, а вот ib/libndmOpkg.so нет Т.е. мне нужно восстановить оригинальную прошивку, добавить пакет Opkg, выгрузить новый файл прошивки и повторить все мои действия?
  21. пошел по порядку с самого начала 1. очистил все make dirclean 2. распаковал последнюю оригинальную прошивку ./unpack.sh ../KN-1611_stable_3.07.C.2.0-1_firmware.bin 3. собрал ее без изменений make -j5 4. добавил компоненты: "ndm-mod-shell" и "ndm-mod-opkg" make menuconfig 5. собрал с изменениями make -j5 alvas@Alvas-PC:~/keenetic/keenetic-sdk/bin/mt7628$ ls -l total 19696 -rw-r--r-- 1 alvas alvas 9568316 Feb 2 21:30 20220202_2130_Firmware-KN-1611-3.07.C.1.0-4.bin -rw-r--r-- 1 alvas alvas 10551356 Feb 2 21:33 20220202_2133_Firmware-KN-1611-3.07.C.1.0-4.bin -rw-r--r-- 1 alvas alvas 164 Feb 2 21:33 md5sums drwxr-xr-x 2 alvas alvas 32768 Feb 2 21:33 packages alvas@Alvas-PC:~/keenetic/keenetic-sdk/bin/mt7628$
  22. Подскажите пожалуйста, а как проверить что определенный компонент загружен на роутер? Меня естественно интересуют те два, что Вы мне сказали "NDM ---> Debug ---> ndm-mod-shell" и "NDM ---> Opkg ---> ndm-mod-opkg" На мой вопрос через форму обратной связи посоветовали посмотреть файл self-test, в нем поле <name>Component lister</name> В нем должен быть shell У меня таких два фрагмента, оба одинаковые: <thread> <name>Component lister</name> <tid>0</tid> <lock_list_complete>yes</lock_list_complete> <locks/> <statistics> <interval>0</interval> <cpu> <now>0.000000</now> <min>0</min> <max>0</max> <avg>0</avg> <cur>0</cur> </cpu> </statistics> </thread> Искал по всему файлу поиском по имени "shell" и "opkg" - ничего нет внизу информация о релизе: <!-- show upnp redirect --> <!-- show version --> <release>3.07.C.2.0-1</release> <sandbox>stable</sandbox> <title>3.7.2</title> <arch>mips</arch> <ndm> <exact>0-49ce9d9</exact> <cdate>14 Jan 2022</cdate> </ndm> <bsp> <exact>0-7f0f81fa9</exact> <cdate>19 Jan 2022</cdate> </bsp> <ndw> <version>3.7.67</version> <features>wifi5ghz,mimo5ghz,atf5ghz,wifi_button,led_control,dual_image,wifi_ft,wpa3</features> <components>adguard-dns,base,cloudcontrol,corewireless,dhcpd,dot1x,easyconfig,igmp,l2tp,lang-en,miniupnpd,mws,nathelper-ftp,nathelper-pptp,nathelper-sip,ndns,pingcheck,ppe,pppoe,pptp,skydns,trafficcontrol,ydns</components> </ndw> <ndw3> <version>1.30</version> </ndw3> <manufacturer>Keenetic Ltd.</manufacturer> <vendor>Keenetic</vendor> <series>KN</series> <model>Air (KN-1611)</model> <hw_version>11168000</hw_version> <hw_type>router</hw_type> <hw_id>KN-1611</hw_id> <device>Air</device> <region>RU</region> <description>Keenetic Air (KN-1611)</description> ничего не понимаю, как будто я и не собирал свой имидж...
  23. сегодня попробовал распаковать образ, который я собрал в SDK запускаю ./unpack.sh KN-1611-3.07.C.1.0-4.bin в ответ "Unable to find TLV table offset." Не знаю может так и должно быть, а может в этом и дело, что я не вижу на роутере изменений от новой прошивки
  24. меня смущает что после всех манипуляций выше, при коннекте через telnet пишется KeeneticOS version 3.07.C.2.0-1, copyright (c) 2010-2022 Keenetic Ltd. хотя версия имиджа, что я собрал - 3.07.C.1.0-4
×
×
  • Create New...