[Voxel] Netgear r7800 настройка

Обсуждаем OpenSource прошивки.
kermy
Сообщения: 8
Зарегистрирован: 20 окт 2019, 02:00

Сообщение kermy » 20 ноя 2019, 10:31

Совсем не про прошивку уважаемого Voxel но возможно кому то будет полезно :)
Если на на нашем роутере прошитым OpenWrt (я проверил на v18.06.5) делать вот так

Код: Выделить всё

echo 35 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor

То скорость маршрутизации OpenWrt будет почти не уступать скорости на прошивке Voxel ;)
P/S/ Само собой это всё на процессоре а не HW NAT, но тем не менее, рост скорости на гигабитном канале весьма заметен

arabesc
Сообщения: 20
Зарегистрирован: 22 сен 2018, 05:47

Сообщение arabesc » 01 фев 2020, 23:10

Проверил через nmap, что торчит на внешнем интерфейсе R9000, неприятно удивился.
Решил с этим как-то бороться.
Первым под руку попался сервис afpd.
Следующий фрагмент в стартап скрипт, например, /mnt/optware/autorun/scripts/post_mount.sh, добавляет в конфиг /etc/netatalk/afpd.conf опцию -ipaddr <lan_ipaddr>, ограничивая работу сервиса внутренним интерфейсом:

Код: Выделить всё

AFPD_CONF="/etc/netatalk/afpd.conf"

if [ -f $AFPD_CONF ]
then
        AFPD_IPADDR="-ipaddr"
        AFPD_IPADDR_OPT="$AFPD_IPADDR `/bin/config get lan_ipaddr`"

        if /bin/grep -q -- "$AFPD_IPADDR" $AFPD_CONF
        then
                if ! /bin/grep -q -- "$AFPD_IPADDR_OPT" $AFPD_CONF
                then
                        AFPD_IPADDR_PATTERN="\-ipaddr[[:blank:]]+[1-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"
                        /bin/sed -ri -- "s/$AFPD_IPADDR_PATTERN/$AFPD_IPADDR_OPT/" $AFPD_CONF
                fi
        else
                /bin/sed -ri -- "s/$/ $AFPD_IPADDR_OPT/" $AFPD_CONF
        fi
fi


Voxel, может быть добавить такую штуку в модификацию прошивки?
Последний раз редактировалось arabesc 02 фев 2020, 01:13, всего редактировалось 1 раз.

Voxel
Сообщения: 161
Зарегистрирован: 29 фев 2016, 13:34

Сообщение Voxel » 01 фев 2020, 23:45

Я посмотрю. Спасибо.

arabesc писал(а):Источник цитаты Следующий фрагмент в стартап скрипт, например, /mnt/optware/autorun/scripts/post_mount.sh, добавляет в конфиг /etc/netatalk/afpd.conf опцию -ipaddr <lan_ipaddr>, ограничивая работу сервиса внутренним интерфейсом:


А там же оверлей нормально работает. Можно просто поменять фаqлы на живом роутере... Типа /etc/netatalk/afpd.conf поменять по вкусу.


Voxel.

Voxel
Сообщения: 161
Зарегистрирован: 29 фев 2016, 13:34

Сообщение Voxel » 01 фев 2020, 23:47

kermy писал(а):Источник цитаты Если на на нашем роутере прошитым OpenWrt (я проверил на v18.06.5) делать вот так


Это, кстати, изначально в моей прошивке в /etc/init.d/powerctl

Voxel.

arabesc
Сообщения: 20
Зарегистрирован: 22 сен 2018, 05:47

Сообщение arabesc » 02 фев 2020, 00:44

Voxel писал(а):Источник цитаты
А там же оверлей нормально работает. Можно просто поменять фаqлы на живом роутере... Типа /etc/netatalk/afpd.conf поменять по вкусу.

Это же сбросится после обновления прошивки? Т.е. варианты хранить изменения или в самой прошивке или снаружи.

Кстати, плохо понимаю структуру папок в системе в плане их времени жизни. Куда лучше изменения заливать? Некоторые файлы вроде как само окружение использует в качестве шаблона и дописывает опции в зависимости от пользовательских настроек.
Например, как правильно модифицировать /etc/dnsmasq.conf на старте? Если просто дописывать опции на старте, они дублируются после перезагрузки, файл растёт.

Voxel
Сообщения: 161
Зарегистрирован: 29 фев 2016, 13:34

Сообщение Voxel » 02 фев 2020, 10:55

arabesc писал(а):Источник цитаты Это же сбросится после обновления прошивки? Т.е. варианты хранить изменения или в самой прошивке или снаружи.

Я храню все изменения в tar-е, т.е. просто распаковываю его после перепрошивки. Типа

https://www.snbforums.com/threads/enabl ... ost-353344

Ну и есть возможность автоматизировать восстановление из бэкапа с помощью того же post-mount.sh. Т.е. нет нужного файла - выполняй распаковку.

arabesc писал(а):Источник цитаты Кстати, плохо понимаю структуру папок в системе в плане их времени жизни.

Все изменения хранятся в /overlay и живы до прошивки новой версии. Оригиналы файлов - в /rom. Всегда можно восстановить оригинал.

arabesc писал(а):Источник цитаты Например, как правильно модифицировать /etc/dnsmasq.conf на старте? Если просто дописывать опции на старте, они дублируются после перезагрузки, файл растёт.

Там схема с dnscrypt-proxy-2 и stubby. Финальный файл генерится в /tmp. Так что надо менять /etc/dnsmasq-resolv.conf если не используются dncrypt или stubby.

Voxel.

arabesc
Сообщения: 20
Зарегистрирован: 22 сен 2018, 05:47

Сообщение arabesc » 02 фев 2020, 15:34

Voxel
Актуальные сорцы прошивки для R9000/R7800 сейчас доступны в каком-то виде?
Хочу патчить smb.conf, для этого нужно встроиться после его изменения системой, но до старта сервисов Samba, а это всё происходит в одной утилите update_smb, которую зачем-то написали на C. Думаю переписать её логику на шелл-скрипте.

На этой странице последние доступные сорцы?
https://kb.netgear.com/2649/NETGEAR-Open-Source-Code-for-Programmers-GPL

В актуальной модифицированной прошивке какая версия /bin/sed, для неё доступны сорцы? Есть подозрение, что там ошибка.
На код по ссылке выше не похоже.

Понял, sed из BusyBox 1.4.2, там действительно ошибка, как минимум, с командой i - insert. Код - ппц. Вот коммит с исправлением, вошёл в релиз 1.5.1.
Возможно обновить BusyBox? Бэкпортнуть исправление? Или попробовать сделать бинарный патч для текущей версии?

Voxel писал(а):Источник цитаты Ну и есть возможность автоматизировать восстановление из бэкапа с помощью того же post-mount.sh. Т.е. нет нужного файла - выполняй распаковку.

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

arabesc
Сообщения: 20
Зарегистрирован: 22 сен 2018, 05:47

Сообщение arabesc » 03 фев 2020, 01:37

Бинарный патч для /bin/sed из BusyBox v1.4.2

Код: Выделить всё

/bin/busybox
0x312E4 01 -> 0A

До патча:

Код: Выделить всё

$ printf "1\n3" | /bin/sed '/3/i 2' | hexdump -C
00000000  31 0a 32 01 33                                    |1.2.3|

Проблема - при операции i (insert) в конце вставки вместо символа перевода строки 0x0a ('\n') вставлялся символ 0x01.
После патча:

Код: Выделить всё

$ printf "1\n3" | /bin/sed '/3/i 2' | hexdump -C
00000000  31 0a 32 0a 33                                    |1.2.3|

Вряд ли это решает все проблемы, судя по объёму последующих изменений в коде, но мою проблему решило.
Voxel, было бы здорово добавить в прошивку, если можно.

Voxel
Сообщения: 161
Зарегистрирован: 29 фев 2016, 13:34

Сообщение Voxel » 03 фев 2020, 12:32

arabesc писал(а):Источник цитаты Актуальные сорцы прошивки для R9000/R7800 сейчас доступны в каком-то виде?
Хочу патчить smb.conf, для этого нужно встроиться после его изменения системой, но до старта сервисов Samba, а это всё происходит в одной утилите update_smb, которую зачем-то написали на C. Думаю переписать её логику на шелл-скрипте.

Ну, например, здесь:

https://github.com/SVoxel/R9000/tree/ma ... ba-scripts

Сразу замечу, тут специфика моих отношений с Netgear, DNI и QCA. В этом репозитории отсутствуют драйверы QCA. Так что полноценную прошивку из этого не собрать. Почему: описано, например, вот здесь

https://www.snbforums.com/threads/custo ... ost-430729

если есть желание почитать.

sed: как часть прошивочной версии busybox. Не хочу менять. Причина, пусть там баги, но эта версия используется в стоковой прошивке, а именно в куче скриптов, которые учитываю специфику ошибочной версии sed и других программ busybox. Реально не хочу все эти скрипты править при интеграции новой стоковой в свою. Уже напарывался. И так имею неполные коды из стоковой (см выше). И еще дополнительная работа на исправление скриптов - нет желания и времени. Сорри.

Если не устраивает прошивочный busybox - в Entware же есть альтернативная инсталляция со своим busybox.

Voxel.

arabesc
Сообщения: 20
Зарегистрирован: 22 сен 2018, 05:47

Сообщение arabesc » 04 фев 2020, 02:46

Voxel писал(а):Источник цитатыsed: как часть прошивочной версии busybox. Не хочу менять. Причина, пусть там баги, но эта версия используется в стоковой прошивке, а именно в куче скриптов, которые учитываю специфику ошибочной версии sed и других программ busybox. Реально не хочу все эти скрипты править при интеграции новой стоковой в свою. Уже напарывался. И так имею неполные коды из стоковой (см выше). И еще дополнительная работа на исправление скриптов - нет желания и времени. Сорри.

Ради интереса по'grep'ал по файловой системе прошивки и не нашёл использования sed с командой /i. Оно и ожидаемо, когда /i даёт такой результат.

Voxel писал(а):Источник цитаты Если не устраивает прошивочный busybox - в Entware же есть альтернативная инсталляция со своим busybox.

После патча пока устраивает.


Вернуться в «Прошивки OpenWrt/DD-WRT/AsusWrt/TomatoUSB/Wive-NG/Padavan/"от Энтузиастов "»

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

Всего 3 посетителя :: 1 зарегистрированный, 0 скрытых и 2 гостя (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (162) здесь было 16 ноя 2019, 18:33

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