1 заметка с тегом

форк

/core.php, line 2
Error 2: Use of undefined constant k - assumed 'k' (this will throw an Error in a future version of PHP)

Проект LEDE

Проект LEDE появился на замену популярной прошивки для роутеров OpenWrt. В последней, из-за внутренних проблем, обновления и новые пакеты стали появляться все реже. LEDE взялся устранить все проблемы, существующие в нынешней прошивке OpenWrt и периодически выпускать новые релизы.
На сам проект я наткнулся достаточно недавно, два или три месяца назад. Почитал первую страницу сайта, заинтересовался, но, так как дел было невпроворот, отложил на будущее. Вчера, перебирая закладки браузера, наткнулся на него и решил все-таки посмотреть более внимательно.
LEDE является ответвлением OpenWrt и полностью с ним совместим. Вы можете устанавливать те же самые пакеты, что и в OpenWrt. Более того, даже сам сайт проекта LEDE выглядит точно так же, как и у OpenWrt. Связано это с тем, что сейчас идет интеграция старого сайта в новый.

Стартовая страница сайта LEDE
Стартовая страница сайта LEDE

На сайте также можно найти информацию о том, что в течение этого года планируется полное слияние обеих проектов.
Первое, что я сделал — посмотрел текущую стабильную версию прошивки. Как ни странно, но разработчики «перешагнули» через 16 версию и создали сразу 17-ю. Последняя стабильная прошивка для моего роутера оказалась 17.01.4. Ее я и скачал. Дальше все, как обычно, просто. Заходим на страницу System — Backup / Flash Firmware роутера, указываем на файл с новой прошивкой в разделе Flash new firmware image, оставив галочку Keep settings отмеченной, чтобы не терять сделанные настройки, и запускаем процесс обновления.
Сразу хочу сказать, что тема оформления Bootstrap мне почему-то никогда не нравилась, я постоянно выбирал старую OpenWrt. Хотя к самому фреймворку я отношусь более, чем положительно. Но старая тема после перепрошивки не заработала, поэтому следующим моим шагом был поиск темы, отличной от Bootstrap. На мое удивление в списке доступных увидел тему Material. Ее и установил. Тема оказалась удобной, красивой, но чуть недоработанной и, на мой взгляд, чуть громоздкой — роутер чуть медленней переключался между страницами.

Страница входа в систему
Страница входа в систему
Страница статуса системы
Страница статуса системы
Скрипты, выполняемые при загрузке
Скрипты, выполняемые при загрузке

Памятуя о качестве перевода с английского на русский язык в предыдущей прошивке, я не торопился переключаться на русский язык, меня вполне устраивал и английский. Позже я все-таки решил установить языковой пакет. Оказалось, что устанавливать их нужно не один, как раньше, а как минимум два — для «стандартных» страниц и для настроек firewall. При этом при установке этих пакетов я получил ошибку «uci: Parse error (too many arguments) at line 123, byte 34», но решил не обращать на нее внимание, потому что пакеты установились без ошибок.
Одновременно просматривая сайт проекта наткнулся на интересный «фокус», который заключается в том, что после авторизации на роутере по SSH, в консоли выводится количество установленных пакетов и количество доступных для обновления. Это освобождает от необходимости вручную проверять наличие обновлений, так почему бы этим не вспользоваться? Для этого нужно записать всего несколько строчек в файл ~/.profile

#!/bin/sh
opkgInstalled="$(opkg list-installed 2> /dev/null | wc -l)" #silencing error output
opkgUpgradable="$(opkg list-upgradable 2> /dev/null | wc -l)" #silencing error output
echo "$opkgInstalled packages are installed." && echo "$opkgUpgradable packages can be upgraded." && echo

И, как говорится, раз уж «пошла такая пьянка», то почему бы не сделать похожий скрипт, который устанавливал бы все обновления сразу? Мне никогда не нравился вариант сначала получить список доступных для обновления пакетов, затем копировать их имена в команду обновления. На сайт проекта также есть решение этого вопроса, но мне оно не понравилось. Более того, оно просто некорректно работает. Поэтому предлагаю свой вариант:

#!/bin/sh
/bin/opkg update
/bin/opkg upgrade $(opkg list-upgradable | awk '{print $1}')

Но я отвлекся. Еще одним новшеством, которое мне понравилось в данной прошивке — визуализация уровня сигнала WiFi

Уровень сигнала WiFi
Уровень сигнала WiFi

В какой-то момент изучения прошивки я сделал ошибку, пришлось сбрасывать настройки на заводские и заново перенастраивать роутер. И тут выявилось, что в этой прошивке таки заработал туннель от Henet. После внесения настроек я смог извне протестировать свой роутер на доступность по IPv6 и получил положительный результат.

Результаты тестирования IPv6
Результаты тестирования IPv6

На данном этапе мне эта прошивка нравится намного больше, чем версия 15.05.1 от OpenWrt. Возможно, что в процессе дальнейшей эксплуатации вылезут какие-то недочеты, ошибки, но будем надеяться, что их будут более-менее быстро исправлять.