OpenWRT для D-link DIR-615 новая жизнь старого устройства (Flash + USB Mod)

  • openwrt_console.jpg

Приветствую, друзья. Стараниями моих читателей Кредов и deadc0de найден метод перепрошивки загрузчика и установки альтернативной прошивки OpenWRT без подпайки к UART и сложных манипуляций.

ВСЕ ОПЕРАЦИИ ВЫ ПРОВОДИТЕ НА СВОЙ СТРАХ И РИСК. НИ АВТОР, НИ КОММЕНТАТОРЫ И ПРОЧИЕ ТРЕТЬИ ЛИЦА НЕ НЕСУТ ОТВЕСТВЕННОСТИ ЗА ВОЗМОЖНОЕ ОКИРПИЧИВАНИЕ ДЕВАЙСОВ.Однако я лично успешно прошил 3 устройства по данной инструкции.

Что потребуется:

ВНИМАНИЕ: Отключите брандмауэр Windows и/или сторонний фаерволл, ибо они могут (а в случае со стандартным Windows еще и 100% это делают) помешать загрузке образа по tftp.

Что нам потребуется ?

0) Роутер Beeline Smartbox. Гарантировано работает для роутеров с прошивкой версии 2.0.29. Работа с роутерами с другими версиями прошивки не гарантируется, поэтому обновитесь до неё. Также рекомендую сбросить настройки роутера на дефолтные. 1) Образ загрузчика. 2) Образ OpenWRT (заботливо собран для вас пользователем PukinDukin). Желающие могут собрать образ самостоятельно, вскоре будет инструкция и все необходимое для сборки. 3) Telnet и tftp-клиенты . Я рекомендую Putty и MicroTFTP соответственно. 4) Кусок патчкорда (есть в комплекте Smartbox’а). 5*) Желательно любая флешка (хватит и 32 мб) для бэкапа текущей прошивки  дабы иметь возможность всегда вернуться к заводскому состоянию.

Без лишних слов приступаем.

1) Включаем telnet-доступ к роутеру. Заходим в администраторскую панель роутера (по-умолчанию http://192.168.1.1/) и заходим под учетной записью суперпользователя Логин: SuperUser Пароль: SF******** (Серийный номер. Указан сзади устройства)

Затем жмем  Расширенные настройки -> Другие-> Контроль доступа Ставим галочку в пункте TELNET Admin : Разрешить для LAN Жмем Сохранить, после Применить. Перезагружаем роутер и идём дальше.

putty.png

Жмем Open. В открывшемся окне вводим логин и пароль аналогичные тем, что вы использовали на первом пункте (SuperUser:SF********) Вбиваем sh

cd /mnt/shares/A mkdir mtd_backup cd mtd_backup dd if=/dev/mtdblock0 of=mtd0 dd if=/dev/mtdblock1 of=mtd1 dd if=/dev/mtdblock2 of=mtd2 dd if=/dev/mtdblock3 of=mtd3 dd if=/dev/mtdblock4 of=mtd4 dd if=/dev/mtdblock5 of=mtd5 dd if=/dev/mtdblock6 of=mtd6 dd if=/dev/mtdblock7 of=mtd7 dd if=/dev/mtdblock8 of=mtd8 dd if=/dev/mtdblock9 of=mtd9 dd if=/dev/mtdblock10 of=mtd10 cd / /etc.ro/usb/usb_u.sh

4) Перезаписываем версию загрузчика Меняем версию загрузчика во флеше:ВНИМАНИЕ. БУДЬТЕ ВНИМАТЕЛЬНЫ ПРИ ВВОДЕ СЛЕДУЮЩИХ КОМАНД. ЕСТЬ НЕНУЛЕВАЯ ВЕРОЯТНОСТЬ ОКИРПИЧИТЬ РОУТЕР ЕСЛИ ВВЕДЁТЕ КОМАНДУ НЕТОЧНО.

sc_flash -w 1ffa0 -o 30 sc_flash -w 1ffa1 -o 31 sc_flash -w 1ffa2 -o 30 sc_flash -w 1ffa3 -o 33

Проверяем, что все записалось верно

sc_flash -r 1ffa0 -c 4 

Если видим следующее

30 31 30 33

То всё отлично и переходим дальше, если нет — повторяем команды выше.

5) Переходим в админ-панель устройстваРасширенные настройки -> Другие-> Обновление ПО Выбираем образ загрузчика smartbox-to-boot_97d.img и жмём Выполнить обновление. Через 3-7 загрузчик минут зашьется и роутер перезагрузится. Вы это поймете по загоревшимся светодиодам на передней панели.

6) Соединяем патчкордом ПК и роутер (Внимание, втыкаем в роутере в первый (LAN1) СЕРЫЙ порт, а не красный). Прописывем на сетевой карте статический IP 192.168.1.10, шлюз 192.168.1.6

Для этого (для Windows 7/8/8.1/10): На ПК переходим в Панель управленияЦентр управления сетями и общим доступомИзменение параметров адаптера, находим свой сетевой адаптер. Жмем на нём правой кнопкой, выбираем «Свойства», найдите пункт «протокол IP версии 4 (IPV4)» (написание может незначительно отличаться в зависимости от версии Windows) Жмем свойства и прописываем следующее:

flashing_windows_setting-1.png

Затем запускаем TFTP клиент, вбиваем IP 192.168.1.6, выбираем файл прошивки fat.bin и жмем Upgrade. Если загрузка не происходит, то выключаем роутер, зажимаем reset, включить удерживая reset секунд 15 и пробуем повторно.

После перепрошивки возвращаем обратно динамическое назначение IP-адреса (DHCP) на сетевой плате и в админ-панели роутера (http://192.168.10.1, логин root, пароль пустой) и проводим необходимые настройки.

Затем по SSH (или Telnet по вашему желанию) подключаемся к роутеру (для Windows я рекомендую Bitvise SSH Client) и вбиваем к консоли. 

 mtd erase rootfs_data

Это необходимо чтобы затереть оставшийся после стоковой прошивки хлам. (настройки и прочее)

Сегодня расскажу о том, как осуществляется настройка WiFi на OpenWRT, через Luci. Для начала скажем пару слов об OpenWRT, для тех кто не знаком с данной системой: OpenWRT — Это маленькая операционная система предназначенная для роутера и маршрутизаторов. Данную систему можно встретить на абсолютно любых роутерах, есть масса статей по перепрошивке, на данную ось в Сети Интернет. Настройка данных роутеров c OpenWRT изначально производилась через, командную строку (с оболочкой ash), специально для удобства настройки данной ОС был разработан веб-интерфейс, названный— Luci.

Настройка точки доступа WiFi на OpenWRT, через Luci

Вход в настройки OpenWRT

По умолчанию веб-интерфейс настройки роутера находится по адресу: http://192.168.1.1;

Настройка роутера

Если вы столкнуть с проблемами при входе:

Ошибка подключения при входе в роутер, если не настроена сетевая карта

Вам необходимо настроить сетевую карту, следуйте рекомендациям указанных в этих статьях:

Настройка IP-Адреса для входа в роутер на Windows XPНастройка IP-Адреса для входа в роутер на Windows 7

Должно появится диалоговое окно, для входа в настойки роутера OpenWRT, где по умолчанию используется пользователь (username) — root, а пароль отсутствует:

  • Username: root.
  • Password — оставляем пустым.

Вводим логин, затем нажмите кнопку Login, в правом нижнем углу экрана.

Настройка опенврт, имя и пароль

Установка пароля для OpenWRT

После входа в настройки, вы можете задать свой пароль (т.к. стандартный отсутствует по умолчанию), для этого кликните на раздел Administration, затем наведите стрелку мышки на вкладку System и выберите Admin Password, введите пароль дважды.

Нажмите Submit, для сохранения.

смены пароля openwrt admin password luci

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

смены пароля openwrt admin password luci 2

Если перейти по ссылке, откроется аналогичное окно (после ввода пароля не забудьте нажать кнопку Save & Apply).

Настройка WiFi на OpenWRT

Далее чтоб осуществить настройку точки доступа WiFi на OpenWRT, заходим в раздел Network, выбираем подменю WiFi. Нажимаем кнопку Add, если сети отсутствуют, если есть как в указанном примере, то нажмите кнопку Edit. 

Настройка точки доступа

Так же может быть следующий интерфейс, в нем все действия аналогичны:

Настройка точки доступа 2

В новом окне указываем:

  • Channel (Канал) — 11 (2.462 GHz);
  • Transmit Power (Мощность) — 20 dBm (100 mW);
  • ESSID — придумайте имя точки доступа WiFi;
  • Mode — режим работы сети (Access Point);
  • Network — ставим на Lan, если ваш роутер подключен через кабель к Интернет. и выбираем подключение, которое пойдет на WiFi.

Настройка гостевого WiFi

Установка пароля на WiFi в OpenWRT

Хотел заострить внимание на настройке клиента Lan в OpenWRT, данная статья подразумевает, что роутер клиента с OpenWRT подключен по сети Lan. Поэтому, настроек сети Lan, у вашего клиента, скорее всего будет одна.  Если у вас нет подключения к сети интернет, через Lan порт то вымоете выбрать любое другое соединение. Подробнее о подключении Lan можно ознакомиться по ссылке.

Окно может выглядеть другим образом, в этом случае все заполняется аналогично, главное поставить галочку для Network (Там выбираем подключение к Интернет, через Lan, которое хотим раздать):

Настройка гостевого WiFi 2

Далее зададим настройки безопасности для WiFi.

Если вы хотите, чтобы точка доступа роутера OpenWRT была защищена и любой желающий не смог зайти через нее в Интернет, то переходим на следующую вкладку Wierless Security (Безопасность беспроводной сети).

Выбираем тип шифрования, и заполняем пароль:

  • Encryption: WPA2-PSK.
  • Cipher: auto.
  • Key — придумываем пароль от точки доступа WiFi;

Сохраняем настройки, нажав Save & Apply.

Настройка точки доступа установка пароля

Теперь точка доступа на OpenWRT настроена и раздает Интернет, через WiFi, главное чтоб вы не ошиблись при указании параметра Network, где нужно указать сеть Lan, через которую у вас подключен Интернет к самому роутеру, то все заработает.

Так же можем перезапустить маршрутизатор, нажав на вкладке System, подменю Reboot, затем Perform reboot.

Проверяйте работу WiFi клиента.

Полезные ссылки

Нашел пару полезный статей из интернета:

Что еще можно сделать со своим роутером — перепрошивка роутера на ОС OpenWRT.

https://habrahabr.ru/post/186760/ — пошаговая прошивка TP-LINK TL-WR741ND на OpenWRT  из Windows.

Видео по настройке WiFi смотрите с 5:24

Нашли опечатку? Выделите текст и нажмите Ctrl + Enter

Записки обо всём.

Установка OpenWrt из Trunk

Итак Trunk — это тестовая ветка, в которую практически ежедневно выкладываются самые свежие сборки прошивки (на момент написания статьи — это Barrier Breaker), однако их стабильность и работоспособность не гарантируется.

Сохранение репозиторияПрежде, чем преступить к установке, остановимся подробнее на одной очень важной особенности ветки trunk, которую необходимо иметь ввиду! А заключается она в том, что вместе со сборкой прошивки, которая обновляется едва ли не ежедневно, обновляется и репозиторий пакетов программного обеспечения для неё. Поэтому, установив сборку из trunk, мы рискуем буквально на следующий день остаться без совместимого с ней репозитория. Чтобы этого не произошло, НЕОБХОДИМО ВМЕСТЕ СО СБОРКОЙ САМОЙ ПРОШИВКИ СКАЧИВАТЬ И РЕПОЗИТОРИЙ ПАКЕТОВ К НЕЙ! Репозиторий можно разместить либо на локальном носителе роутера, либо, если есть такая возможность — на удалённом вэб-сервере. Я для этого использовал вэб-сервер, запущенный на другом роутере, тоже под управлением OpenWrt.Чтобы упростить процесс скачивания, я написал небольшой скриптик: nano openwrt-trunk-download

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

Если всё сделали правильно, то теперь мы можем скачать самую свежую сборку из trunk вместе с репозиторием одной командой:

Дожидаемся, пока процесс скачивания завершится и убеждаемся, что всё на своих местах:

ls -l /usr/local/openwrt-repository/snapshots/2013-10-15/ar71xx/

Теперь можем скачивать и прошивать OpenWrt уже со своего собственного хранилища:

в котором указываем путь к нашему репозиторию:

НастройкаДля возможности установки всех необходимых пакетов нам потребуется перенести корень (или /overlay) на внешний usb накопитель.Для этого устанавливаем необходимые пакеты:

Копируем систему (overlay) на флешку:

И настраиваем файлfstab. В версии Barrier Breaker используется новая утилита block, позволяющая создать файл fstab автоматически:

block detect > /etc/config/fstab

Затем открываем файл fstab:

и редактируем его в соответствии со своими потребностями:

Тут мы видим, что вместо опции device используется опция uuid для идентификации нашаго монтируемого раздела на внешнем накопителе. Чтобы узнать значение uuid нашего раздела, используем команду:

Тут /dev/sda1 — единственный раздел, который я создал на флешке. Раздел подкачки (swap) в данном случае я не использую.После перезагрузки проверяем, всё ли правильно примонтировалось:

Устранение проблемПо идее описанных выше действий должно быть достаточно для готовности системы к дальнейшему использованию. Однако, как уже говорилось выше, работоспособность ветки trunk не гарантирована и могут возникнуть некоторые проблемы.Так, например, у меня на момент написания статьи, в ревизии r38261, выявилось следующее:Во-первых, с ошибками устанавливаются модули ядра и не запускаются автоматически. Приходится вручную их запускать командой modprobe. Причём некоторые модули после этого автоматически загружаются после перезагрузки (kmod-usb-storage), а некоторые не хотят (kmod-video-uvc). Приходится прописывать их запуск в файле /etc/rc.local .А во-вторых, раздел на флешке никак не хотел монтироваться в /overlay, то есть не получалось перенести систему на флешку (extroot). Причем, если указать точку монтирования например /mnt/sda1 — то всё нормально монтировалось. Погуглив эту тему, я выяснил, что далеко не один с такой проблемой и что в некоторых ревизиях эта проблема периодически всплывает. На форуме OpenWrt было найдено решение этой проблемы: при запуске системы нужно выполнить:

Читайте также:  Intel xeon d 1531

Файл сохраняем, делаем его исполняемым:

chmod +x /etc/init.d/extroot

И активируем его выполнение при запуске системы:

После перезагрузки получаем систему с полноценным рабочим extroot.

I switched from default firmware to OpenWrt for my: TP-Link TL-WR1043N/ND v1 and have the problem that I am not able to install any new packages.

What I did:

  • Flash OpenWrt
  • Installed Luci (no problem there)

And than when I try to install anything else I get:

The important thing seems to be : * xsystem: wget: vfork: Out of memory. And yep I did try reboot and ‘update’ several times.

But under Luci -> Software I can see:

qHfa9.png

And here is my DF output:

Please does anyone have any idea what could cause the issue? I know the solution could be using an external USB but I want to aviod this at all costs + I cannot imagine that this router would have space just for luci 🙂

В этой статье я попытаюсь рассказать, как прошить на роутер OpenWrt и установить туда cjdns. По правде говоря, изучение тонкостей этого дела отняло у меня много времени и нервов. В основном потому, что многое в OpenWrt недодокументировано, и приходилось многое искать по форумам и додумывать. Думаю, это как раз тот случай, когда лучшей документацией являются исходники. Так что эту статью я попытаюсь написать такой, какую я хотел бы прочитать в самом начале этого пути.

Среду для сборки OpenWRT можно скачать в 4-х вариантах.

  • OpenWrt Image Builder — то же самое, но грузит уже откомпиленые пакеты и собирает из них образ.
  • OpenWrt SDK — то же самое, но набор програм для кросскомпиляции уже собран и собирать образы оно уже не может. Предназначено для сборки отдельных пакетов.
  • OpenWrt based Toolchain — уже откомпиленый набор програм для кросскомпиляции, выдраный из Openwrt Buildroot.

Последние три могут быть собраны из OpenWrt Buildroot.

Как уже было сказано выше, в SquashFS сжатие лучше, так что у нас есть больше шансов уместить все, что нужно, собрав прошивку самостоятельно, чем скачав готовый образ и доставив нужный пакет. Для тех, кто собирается ставить готовую минимальную прошивку, вот сборки от разработчиков. Они рассортированы по архитектурам (колонка target в списке поддерживаемого оборудования) и по типу памяти (nand и все остальные), названия файлов включают в себя название роутера. Прошивки, содержащие в названии «sysupgrade» предназначены для перепрошивки средствами уже установленной OpenWrt. Содержащие «factory» можно скормить вебформе заводской прошивки. Не перепутайте.

Приступим к сборке.

Внимание! Сборка не должна проводится от суперпользователя или в fakeroot.

Для начала загрузим buildroot. Здесь есть список веток и команд для их загрузки. Мы же будем собирать Attitude Adjustment stable:

Репозиториев с beta, beta2, rc1 и rc2, видимо, нету, а жаль, потому что пакет, собраный для stable на beta не стал, только ругнулся, что git commit id ядра не тот, который нужен (хотя верси совпадали).

Далее, следуя инструкции, добавляем в список мест, откуда будут грузится исходники «репозиторий» с cjdns.

Добавляем в файл feeds.conf строку

Далее, грузим исходники всех пакетов:

и настраиваем все, что нужно. 923bf4c461e0a9cbc467607f51b57323.png

Выбираем «Target System» (ту, которая указана в списке поддерживаемых устройств возле названия вашего роутера), Subtarget (если в роутере постоянная память не NAND, смело выбираем Generic), «Target Profile» (ищем название роутера, под который будем собирать). В «Target Images» обычно ничего менять не надо. Выбираем пробелом.

На данном этапе все нужные драйверы уже отмечены (благодаря «Target Profile»). Далее ходим по остальным веткам и выбираем нужные нам пекеты (Именно нам. По идее, и так работать будет). Поиска здесь не предусмотрено, так что искать будем так:

Благо, большинство пакетов рассортировано по разделам. Хотя они могут находится и в ./package и тогда вы их таким образом не найдете. В выводе видим ./feeds/packages/utils/nano, что значит, что nano нам нужно искать в разделе «Utilities». Для полной уверенности можно почитать makefile пакта. Для nano это ./feeds/packages/utils/nano/Makefile. В нем мы видим такой фрагмент:

Читайте также:  Android ошибка при получении данных с сервера

«CATEGORY» — название раздела, «SUBMENU» — название подраздела. Кстати, такая запись может быть не одна. Дело в том, что из одного набора исходников может собиратся несколько разных пакетов.

UPD: Хабрапользователь klirichek подсказал, что поиск здесь таки есть. Чтобы войти в него, нужно в menuconfig нажать «/».

Получаем списочек объектов, название которых включает в себя введенный запрос, с полным описанием и расположением в меню.

Итак, пакеты, которые нам могут понадобится.

  • nano — чтобы не пришлось править конфиги с помощью vi или cat/echo
  • htop — просмотрщик процесов
  • iftop — програмка для отслеживания сетевой активности (кто, с кем, на какой порт, с какой скоростью)
  • tcpdump — ну куда ж без него?
  • kmod-usb-storage — модуль ядра для подключения внешних носителей памяти по usb
  • kmod-usb-storage-extras — модуль ядра для подключения некоторых экзотических внешних носителей памяти по usb (например, кардридера)
  • block-mount — набор скриптов для автоматического монтирования по /etc/fstab. Для автомонтирования файловых систем по конфигам в формате uci (об этом позже) хватит и mount из busybox, но swap автоматически без них не монтируется.
  • swap-utils — необходим для монтирования swap
  • Всевозможные драйверы файловых систем. Найти можно в «Kernel modules»->«Filesystems»
  • shadow-groopadd, shadow-groupdel, shadow-groupmod, shadow-groups, shadow-passwd, shadow-su, shadow-useradd, shadow-userdel, shadow-usermod — набор утилит для управления пользователями и группами. Обычно можно обойтись и без них.
  • ip,iw,iptables,ip6tables — для ручной настройки сети
  • bind-dig — dns-клиент

Следует отметить, что все может и не поместится. В таком случае образ для роутера собран не будет, но пакеты соберутся. Пакет можно отметить и так, чтобы он собрался, но в образ не включался. Для этого нужно нажать клавишу m.

А теперь расскажу об одном баге, который мешает установке cjdns. В зависимостях cjdns есть пакет с чудным названием nacl. Он используется при сборке других пакетов, но при этом бинарный пакет из него не собирается. В то же время, он появляется и в зависимостях бинарного пакета cjdns. В результате, чтобы установить уже собранный пакет с cjdns, нужно перед этим установить не существующий в собранном виде пакет nacl.

Теперь, как его обойти. Открываем ./openwrt/feeds/cjdns/cjdns/Makefile в текстовом редакторе, находим этот фрагмент:

и убераем из «DEPENDS» «+nacl». Должно получится так:

Еще один нюанс. Чтобы после прошивки поднялась сеть, в прошивке должны быть конфиги настройки сети. Однако, для некоторых роутеров при сборке прошивки соответствующий конфиг не генерируется. В результате, роутер вроде-бы работает, но сеть не поднялась и мы получаем прекрасно работающий кирпич. Я, когда в первый раз собирал прошивку под свой tl-mr3220, столкнулся с этим и потом довольно долго искал нужный кабель и паял так называемый serial hack adapter, чтобы достучатся до железки. Теперь о формате конфигов. В OpenWrt используется самопальный собственный формат конфигов UCI, общий для всего. Насколько я понял, они потом преобразуются в нормальные. Он, как мне кажется, достаточно хорошо документирован, так что останавливатся на нем не буду. Скажу только, что хранятся они в папке /etc/config/. Чтобы добавить какие-то свои файлы, в том числе и конфиги, в прошивку, в папке с Buildroot нужно создать папку files и положить в нее нужные файлы. Например, тот же конфиг сети я положил в файл ./files/etc/config/network . Вот и сам конфиг для tl-mr3220 v1.2:

Его я извлек из прошивки, взятой с сайта OpenWrt и немножко подправил. Что значат поля _orig_ifname и _orig_bridge не спрашивайте, сам не знаю. Отмечу, что этот конфиг предусматривает, что роутер торчит в одну и ту же сеть всеми своими портами, а не, например, каким-то одним в интернет.

Теперь вернемся к cjdns. Чтобы пакет таки собрался, нужно его отметить в menuconfig: «Network»->»Routing and Redirection»->»cjdns».

Итак, настал торжественный момент:

После сборки файлы должны оказатся в ./bin, рассортированые по target-ам (пока он у нас один). К примеру, у меня собраные образы лежат в ./bin/ar71xx, а пакеты в ./bin/ar71xx/packages/. Теперь открываем архив ./bin/ar71xx/openwrt-ar71xx-generic-rootfs.tar.gz (или аналогичный для вашего target) и проверяем, действительно ли там есть конфиг сети.

Теперь можно прошивать. Как уже говорилось выше, openwrt-ar71xx-generic-tl-mr3220-v1-squashfs-factory.bin можно скормить вебморде заводской прошивки. Еще раз повторю уже стандартное предупреждение, встречаемое чуть ли не везде, где пишут о процесе прошивки: ни в коем случае не прошивайте по wi-fi!

Заходим по ssh, проверяем, сколько оперативной памяти свободно:

Проверяем целостность образа. На роутере считаем хеш файла образа:

и сверяем с хешем файла на компьютере.

Скрещиваем пальцы и прошиваем:

Если все прошло хорошо, роутер должен перезапустится. Заходим по ssh и с помощью passwd устанавливаем пароль root.

Существуют так же и другие способы прошивки, которые вариируются в зависимости от модели роутера. На части роутеров возможна прошивка с помощью загрузчика, есть и более хардкорные методы, предпологающие работу с паяльником.

Пакетный менеджер.

В OpenWrt в качестве пакетного менеджера используется opkg. Опции:

  • update — Загрузить список пакетов в репозитории. Загружается он в /tmp/opkg-lists/snapshots, а в /tmp примонтирована tmpfs. Так что, после прерзагрузки для каких-либо действий с пакетами прийдется опять грузить список пакетов.
  • upgrade — Начнем с того, что эта опция вам, скорей всего, не понадобится. Пакеты в репозиториях разработчиков меняются только в trunc. Если прописать другой репозиторий от другой версии, возможны казусы. Крайне не рекомендуется обновлять таким образом модули ядра (названия их пакетов начинаются на kmod-). Действия «обновить все под ряд» opkg не умеет вообще.
  • install принимает название пакета, имя файла или url для скачивания:
  • configure — Не совсем понятно, что делает. По видимому, еще раз выполняет конфигурационные скрипты пакета.
  • remove — Удалить пакет.
  • list — список пакетов.
  • list-installed — список установленніх пакетов.

Читайте также:  Cms для доски объявлений

Чтобы добавить репозиторий, находящийся в папке, нужно дописать

Отмечу, что подписывание пакетов, как в apt-get, не предусмотрено, как и забирание их по https. Насчет https, конечно, можно извернутся, но все упирается в неправильно подписаный сертификат на downloads.openwrt.org. Хотя, он не самоподписный, а значит, что, извернувшись вдвойне, может что-то получится.

Монтируем дополнителную память с флешки (если нужно).

Если не получилось, опять же, ставим нужные пакеты. Далее

Чтобы изменения вступили в силу, делаем

Монтируем swap.

Для этого нужно, чтобы в конфиге было нечто вроде этого:

Здесь все аналогично. По поводу выбора размера swap. Для linux на десктопах часто советуют делать swap немного больше, чем размер оперативной памяти, чтобы при переходе в «спящий режим» (или как там оно называется?) все, что есть в оперативной памяти, поместилось в swap. Согласитесь, для роутера «спящий режим» — это бред. Так что для них действует другое правило — выделяйте побольше. 512 MiB, думаю, хватит всегда и всем! Просмотреть обьем оперативной памяти и swap можно с помощью команды free. И не забываем про uci commit.

Cтавим cjdns (если он не поместился в squashfs).

Копируем пакет с помощью scp в /tmp на роутере и устанавливаем с помощью opkg. Далее создаем конфиг cjdns. На некоторых роутерах это может длится долго. Далее добавляем в конфиг ноды, раскомментирываем раздел ETHInterface и прописываем интерфейс br-lan вместо eth0.

Настраиваем wi-fi в режиме ad-hoc.

Открываем /etc/config/wireless и добамляем секцию вроде этой:

Опция «device» должна содержать название «устройства», обозначеного в секции «wifi-device». У меня она выглядит так:

Тут есть один нюанс. Не все роутеры умеют поднимать несколько беспроводных сетей с одного физического устройства. Так что если после uci commit wireless ; /etc/init.d/wireless restart одна из сетей не поднялась, то прийдется обойтись одной. Чтобы отключить одну из сетей, достаточно установить опцию disabled в 1. Теперь проверяем, не попала ли новосозданная сеть в bridge с нашей локальной сетью. Сначала определяем, какому интерфейсу какая сеть соответствует:

Если наш ad-hoc таки слинковался с локальной сетью, идем править /etc/config/network. Ищем секцию interface с опцией «type» установленой в «bridge» вроде этой:

Для этого случая нужно убрать из «_orig_ifname» «radio0.network1», а из «ifname» — «wlan0»

Теперь прописываем нужный интерфейс в конфиге cjdns. Секция ETHInterface, кстати, может выглядеть и так:

На десктопе такое работает, но на роутере, почему-то, с таким конфигом cjdroute падает. Так что, если у вас тоже это не работает, то прописываем что-то одно.

Создаем скрипт автозапуска.

Скрипты запуска должны лежать в папке /etc/init.d/ . Создаем файл /etc/init.d/cjdns :

Подробнее о стартовых скриптах в OpenWrt можно почитать здесь: wiki.openwrt.org/doc/techref/initscripts

Фух, вроде, все. Удачной прошивки, и да не прийдется вам после нее работать паяльником!

UPD: Разработчики cjdns в последнем коммите в сборочные скрипты потерли все файлы и в README.md оставили сообщение, что отныне надо пользоваться сборочными скриптами от сиэтловцев.

UPD2: Сиэтлский вариант пакета у меня не заработал.

  1. Они решили сделать конфиг в формате uci. Это, конечно, хорошо, но ихний конвертер конфигов json-uci, написанный на LUA, не находит всех нужных библиотек, при том, что они-то как раз имелись, но немного в другом месте. Их копирование и создание линков не помогло — теперь ругается на ошибки в библиотеках.
  2. Запустить cjdroute вручную тоже не удалось. Как потом оказалось, он собирался из ветки crashey.
  3. В ихнем init-скрипте вовсю используются фичи, которые пока есть только в trunc.
  4. Все это вместе занимает много памяти. Впрочем, уменьшение занимаемого объема памяти есть в их todo.

А дальше все так же, как было описано выше.

Используемые источники:

  • https://ingodwetrust.ru/openwrt-flashing/
  • https://znaiwifi.com/nastroika-routera/openwrt-wifi.html
  • https://web-shpargalka.ru/http-downloads-openwrt-org-snapshots-trunk.php

Рейтинг автора
5
Подборку подготовил
Андрей Ульянов
Наш эксперт
Написано статей
168
Ссылка на основную публикацию
Похожие публикации