Jump to content

Question

Posted

Всем привет!

Подскажите плз. возможно ли на Keenetic Air (KN-1611) получить полный доступ. Через telnet\ssh у меня получилось  попасть только в интерфейс CLI пользователем admin.

Recommended Posts

  • 0
Posted
11 час назад, typedef сказал:

Они не запускаются потому что без флага на запуск. Видимо где то в makefile надо делать chmod +x

Либо в Makefile, либо просто на файловой системе руками.

  • 0
Posted
51 minutes ago, sergeyk said:

Либо в Makefile, либо просто на файловой системе руками.

с этим вчера разобрался, добавил пару строк chmod в Makefile
Но вот скрипт /opt/etc/initrc автоматом не стартует
Руками потом запускаю все ок, а сам не хочет

  • 0
Posted
31 minutes ago, typedef said:

с этим вчера разобрался, добавил пару строк chmod в Makefile
Но вот скрипт /opt/etc/initrc автоматом не стартует
Руками потом запускаю все ок, а сам не хочет

похоже на то что opkg толком не встал (или я что то не то сделал)

/ # find / -name *opkg*
/usr/sbin/opkg_led_ctl
/ #

поэтому, думаю, ничего из этой статьи не работает
https://github.com/ndmsystems/packages/wiki/Opkg-Component#hook-scripts

  • 0
Posted
45 минут назад, typedef сказал:

Но вот скрипт /opt/etc/initrc автоматом не стартует

Настройте фиктивный диск для Opkg

opkg disk temp:/

 

  • Thanks 1
  • 0
Posted
1 minute ago, sergeyk said:
opkg disk temp:/

так в том и проблема, как я писал выше, что opkg похоже не встал
 

/ # opkg disk temp:/
/bin/ash: opkg: not found
  • 0
Posted
2 minutes ago, sergeyk said:

Это команда для CLI, а не shell.

а-а-а
ну команда сработала

(config)> opkg disk temp:/
Opkg::Manager: Disk is set to: temp:/.

а что с этим дальше делать?

  • 0
Posted
2 hours ago, sergeyk said:

Настройте фиктивный диск для Opkg

opkg disk temp:/

 

после этого на /opt, который раньше был пустой появляется куча файлов
Я туда опять складываю свои скрипты, но после ребута скрипты удаляются

короче, никак мне не понять как решить казалось бы простую задачу, запуска скрипта при старте роутера :(

  • 0
Posted
On 2/4/2022 at 12:57 PM, sergeyk said:

Настройте фиктивный диск для Opkg

opkg disk temp:/

 

как я понял этой командой мы монтируем /tmp на /opt
все классно, но при рестарте все его содержимое стирается

А какие еще варианты есть кроме "temp:/", можно ли примонтировать какую-нибудь ветку от rootfs, например /etc ?

  • 0
Posted
2 минуты назад, typedef сказал:

как я понял этой командой мы монтируем /tmp на /opt
все классно, но при рестарте все его содержимое стирается

А какие еще варианты есть кроме "temp:/", можно ли примонтировать какую-нибудь ветку от rootfs, например /etc ?

Я посмотрел код, похоже, это решение на устройстве без USB работать не будет.
Но хуки, описанные тут https://github.com/ndmsystems/packages/wiki/Opkg-Component#hook-scripts, работать должны, за исключением initrc.

  • 0
Posted
9 hours ago, sergeyk said:

Я посмотрел код, похоже, это решение на устройстве без USB работать не будет.
Но хуки, описанные тут https://github.com/ndmsystems/packages/wiki/Opkg-Component#hook-scripts, работать должны, за исключением initrc.

спасибо, жаль.
Просто при монтировании на /tmp смысла от этих хуков нет, поскольку никаких скриптов на момент монтирования там нет. Поэтому я и спрашивал, возможно ли смонтировать /opt на какую то ветку из rootfs. Тогда я бы смог подготовить все скрипты и нужные конфиги в прошивке. 

Я пробовал в base_files складывать скрипты на /tmp - понятно бессмысленно и на /opt. В последнем случае, если не использовать opkg disk XXX, то скрипты на /opt лежат, но initrc автоматом не исполняется, если вызывать opkg disk, то моя папка /opt из прошивки затирается.

  • 0
Posted
43 минуты назад, typedef сказал:

Я пробовал в base_files складывать скрипты на /tmp - понятно бессмысленно и на /opt. В последнем случае, если не использовать opkg disk XXX, то скрипты на /opt лежат, но initrc автоматом не исполняется, если вызывать opkg disk, то моя папка /opt из прошивки затирается.

Рабочих хуков для вашей задачи должно быть достаточно. Используйте ndm/ifcreated.d, ndm/ifipchanged.d или ndm/ifstatechanged.d для Bridge0.

  • 0
Posted
2 hours ago, sergeyk said:

Рабочих хуков для вашей задачи должно быть достаточно. Используйте ndm/ifcreated.d, ndm/ifipchanged.d или ndm/ifstatechanged.d для Bridge0.

так а куда мне скрипт складывать в 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 ?

  • 0
Posted
8 минут назад, typedef сказал:

Как собрать образ так, чтобы скрипт был в /opt ?

Ничего монтировать не надо.

Создавайте

keenetic-sdk/files/

В него кладите нужные каталоги и скрипты, например

keenetic-sdk/files/opt/etc/ndm/ifcreated.d/01-on_bridge0_created.sh

с атрибутом executable и обрабатывайте событие при $id, равном Bridge0.

  • 0
Posted
41 minutes ago, sergeyk said:

Ничего монтировать не надо.

Создавайте

keenetic-sdk/files/

В него кладите нужные каталоги и скрипты, например

keenetic-sdk/files/opt/etc/ndm/ifcreated.d/01-on_bridge0_created.sh

с атрибутом executable и обрабатывайте событие при $id, равном Bridge0.

так я с этого и начинал!!!
Но, после "opkg disk temp:/" все мои скрипты исчезают, так как на /opt монтируется /tmp
А если без "opkg disk temp:/", то да, мои скрипты лежат в /opt, но автоматический запуск (хуки) не отрабатывают

  • 0
Posted
46 minutes ago, sergeyk said:

Ничего монтировать не надо.

Создавайте

keenetic-sdk/files/

только сейчас обратил внимание 

keenetic-sdk/files

а не 

keenetic-sdk/package/base-files/files

есть разница?

  • 0
Posted
31 минуту назад, typedef сказал:

есть разница?

Нет, конечно. Это просто два разных способа скопировать файлы на rootfs.

Я создал следующие файлы

files/
files/opt
files/opt/etc
files/opt/etc/ndm
files/opt/etc/ndm/ifstatechanged.d
files/opt/etc/ndm/ifstatechanged.d/01-test.sh
files/opt/etc/ndm/ifipchanged.d
files/opt/etc/ndm/ifipchanged.d/01-test.sh
files/opt/etc/ndm/ifcreated.d
files/opt/etc/ndm/ifcreated.d/01-test.sh
files/opt/bin

files/opt/bin это абсолютная ссылка на /bin.

Файл 01-test.sh содержит

#!/bin/ash
logger "$0 $id"

При старте системы в журнале вижу

...
[I] Jan  1 03:00:26 root: /opt/etc/ndm/ifcreated.d/01-test.sh FastEthernet0/Vlan1 
[I] Jan  1 03:00:26 root: /opt/etc/ndm/ifstatechanged.d/01-test.sh FastEthernet0/Vlan1 
[I] Jan  1 03:00:26 root: /opt/etc/ndm/ifstatechanged.d/01-test.sh FastEthernet0/Vlan1 
[I] Jan  1 03:00:26 root: /opt/etc/ndm/ifstatechanged.d/01-test.sh FastEthernet0/Vlan2 
[I] Jan  1 03:00:26 root: /opt/etc/ndm/ifcreated.d/01-test.sh FastEthernet0/Vlan2 
[I] Jan  1 03:00:26 root: /opt/etc/ndm/ifstatechanged.d/01-test.sh FastEthernet0/Vlan2 
[I] Jan  1 03:00:26 root: /opt/etc/ndm/ifstatechanged.d/01-test.sh FastEthernet0/Vlan2 
[I] Jan  1 03:00:26 root: /opt/etc/ndm/ifstatechanged.d/01-test.sh FastEthernet0/Vlan3 
[I] Jan  1 03:00:26 root: /opt/etc/ndm/ifcreated.d/01-test.sh FastEthernet0/Vlan3 
[I] Jan  1 03:00:26 root: /opt/etc/ndm/ifstatechanged.d/01-test.sh FastEthernet0/Vlan3 
[I] Jan  1 03:00:26 root: /opt/etc/ndm/ifstatechanged.d/01-test.sh FastEthernet0/Vlan3 
[I] Jan  1 03:00:26 root: /opt/etc/ndm/ifstatechanged.d/01-test.sh WifiMaster0 
[I] Jan  1 03:00:26 root: /opt/etc/ndm/ifstatechanged.d/01-test.sh WifiMaster0/AccessPoint0 
[I] Jan  1 03:00:26 root: /opt/etc/ndm/ifstatechanged.d/01-test.sh WifiMaster0/AccessPoint0 
[I] Jan  1 03:00:26 root: /opt/etc/ndm/ifstatechanged.d/01-test.sh WifiMaster1 
[I] Jan  1 03:00:26 kernel: br0: port 4(ra4.1) entered blocking state
[I] Jan  1 03:00:26 kernel: br0: port 4(ra4.1) entered disabled state
[I] Jan  1 03:00:26 kernel: device ra4.1 entered promiscuous mode
[I] Jan  1 03:00:26 kernel: device ra4 entered promiscuous mode
[I] Jan  1 03:00:26 kernel: br0: port 4(ra4.1) entered blocking state
[I] Jan  1 03:00:26 kernel: br0: port 4(ra4.1) entered forwarding state
[I] Jan  1 03:00:26 root: /opt/etc/ndm/ifstatechanged.d/01-test.sh WifiMaster1/AccessPoint0 
[I] Jan  1 03:00:26 root: /opt/etc/ndm/ifstatechanged.d/01-test.sh WifiMaster1/AccessPoint0 
[I] Jan  1 03:00:26 root: /opt/etc/ndm/ifstatechanged.d/01-test.sh Bridge0 
[I] Jan  1 03:00:26 root: /opt/etc/ndm/ifstatechanged.d/01-test.sh Bridge0
...

 

  • 0
Posted (edited)
1 hour ago, sergeyk said:

Нет, конечно. Это просто два разных способа скопировать файлы на rootfs.

Я создал следующие файлы

files/
files/opt
files/opt/etc
files/opt/etc/ndm
files/opt/etc/ndm/ifstatechanged.d
files/opt/etc/ndm/ifstatechanged.d/01-test.sh
files/opt/etc/ndm/ifipchanged.d
files/opt/etc/ndm/ifipchanged.d/01-test.sh
files/opt/etc/ndm/ifcreated.d
files/opt/etc/ndm/ifcreated.d/01-test.sh
files/opt/bin

files/opt/bin это абсолютная ссылка на /bin.

Файл 01-test.sh содержит

#!/bin/ash
logger "$0 $id"

 

а что у Вас в настройках opkg ?
Какой Driver и что за модель роутера?

 

image.thumb.png.4c1642221389ad329fd9dabd2e0d1526.png

Edited by typedef
  • 0
Posted
24 минуты назад, typedef сказал:

а что у Вас в настройках opkg ?

Пусто.

25 минут назад, typedef сказал:

Какой Driver

Не понял вопроса.

25 минут назад, typedef сказал:

и что за модель роутера?

KN-1610.

  • 0
Posted
2 hours ago, sergeyk said:

Пусто.

Не понял вопроса.

KN-1610.

ага, я когда раньше такое пробовал, то остановился на том, что не вызываются 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
то все ок

  • 0
Posted
7 минут назад, typedef сказал:

 но в логе что то странное

Я же написал

Цитата

files/opt/bin — это абсолютная ссылка на /bin.

 

  • 0
Posted
3 hours ago, sergeyk said:

Я же написал

 

пардон, просмотрел :(

в общем, поборол я задачу )

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 за терпение и поддержку!

  • Upvote 4

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...