Залізо → Встановлення і налаштування OpenWrt на TP-Link WR1043ND
Нещодавно став власником роутера TP-Link WR1043ND. Обрав саме його, так як на нього можна без проблем встановити OpenWrt, а також присутній USB порт. Одразу вирішив прошивати, благо описів в інтернетах є багато. Спершу поставив backfire версію і почав конфігурування, але виявилося, що там надто старі пакети… Зокрема виникла проблема з samba сервером (не підтримує NTLMv2). Отож, нижче буде короткий опис, що і як я налаштовував. Зберу все в одному місці, аби потім знову не шукати.
Встановлення OpenWrt
Отже, якщо на роутері встановлена прошивка від виробника, потрібно:
- Відкотитися на стару версію (wr1043nv1_de_3_9_17_up_boot) стокової прошивки. У останніх заводських версіях додано зміни в бутлоадер, й після прошивки OpenWrt, WAN порт буде постійно виключеним. Можна почитати тред на linux.org.ru.
- Завантажити потрібну версію прошивки (я використовував openwrt-ar71xx-generic-tl-wr1043nd-v1-squashfs-factory.bin). Звірити md5 хеш.
- System Tools – Firmware Upgrade, вибрати файл та примінити.
- Дочекатися перезавантаження.
Оновлення з Backfire до Attitude Adjustment
Це якраз мій випадок, ібо я вже встановив Backfire. Загалом можна завантажити factory прошивку, та оновитися через веб інтерфейс, але я зробив інакше.
- Конектимось до роутера по SSH.
- Командою free перевіряємо чи у нас достатньо вільної пам’яті (оперативної), щоб записати в неї прошивку.
- Якщо пам’яті не достатньо
Видаляємо opkg пакети:rm -r /tmp/opkg-lists/
Підчищаємо кеш:
echo 3 > /proc/sys/vm/drop_caches
Видаляємо wi-fi модулі:
rm /etc/modules.d$/*80211* rm /etc/modules.d$/*ath9k*
- Додаємо в /etc/sysupgrade.conf файли і каталоги які повинні бути збережені при оновленні, я не додавав нічого.
- Завантажуємо файл прошивки і md5 сум (я ставив rc1, згодом вона стане релізною):
cd /tmp wget http://downloads.openwrt.org/attitude_adjustment/12.09-rc1/ar71xx/generic/openwrt-ar71xx-generic-tl-wr1043nd-v1-squashfs-sysupgrade.bin wget http://downloads.openwrt.org/attitude_adjustment/12.09-rc1/ar71xx/generic/md5sums
- Перевіряємо чи скачаний файл не пошкоджений:
md5sum -c md5sums
Результат повинен бути на зразок: ARNING: 195 of 196 computed checksums did NOT match
- Прошиваємося:
sysupgrade -v /tmp/openwrt-ar71xx-generic-tl-wr1043nd-v1-squashfs-sysupgrade.bin
- Все закінчується автоматичним перезавантаженням.
Налаштовуємо кнопку QSS для чогось корисного
В файлі /etc/hotplug2.rules забираємо символ ^ перед button, зразок:
$include /etc/hotplug2-common.rules SUBSYSTEM ~~ (^net$|^input$|button$|^usb$|^ieee1394$|^block$|^atm$|^zaptel$|^tty$) { exec /sbin/hotplug-call %SUBSYSTEM% } DEVICENAME == watchdog { exec /sbin/watchdog -t 5 /dev/watchdog next-event }
Далі
mkdir -p /etc/hotplug.d/button touch /etc/hotplug.d/button/buttons
У файлі /etc/hotplug.d/button/buttons пишемо:
#!/bin/sh . /etc/functions.sh do_button () { local button local action local handler local min local max config_get button $1 button config_get action $1 action config_get handler $1 handler config_get min $1 min config_get max $1 max [ "$ACTION" = "$action" -a "$BUTTON" = "$button" -a -n "$handler" ] && { [ -z "$min" -o -z "$max" ] && eval $handler [ -n "$min" -a -n "$max" ] && { [ $min -le $SEEN -a $max -ge $SEEN ] && eval $handler } } } config_load system config_foreach do_button button
Виконуємо наступні команди:
uci add system button uci set system.@button[-1].button=wps uci set system.@button[-1].action=released uci set system.@button[-1].handler='logger Timed pressed: 0-3s' uci set system.@button[-1].min=0 uci set system.@button[-1].max=3 uci add system button uci set system.@button[-1].button=wps uci set system.@button[-1].action=released uci set system.@button[-1].handler='logger Timed pressed: 5-10s' uci set system.@button[-1].min=5 uci set system.@button[-1].max=10 uci commit system
wps це назва кнопки, щоб перевірити як вона точно зветься, можна в скріпт /etc/hotplug.d/button/buttons прописати:
#!/bin/sh logger Action: $ACTION Button: $BUTTON Seen: $SEEN
й натиснути кнопку. Після цього виконати logread і подивитися назву кнопки.
Рядок handler може бути командою чи шляхом до скріпта, що повинен виконатися. З даними налаштуваннями, кнопка виконуватиме різні дії, в залежності чи її натиснули коротко (від 0 до 3 секунд), чи утримували довго (від 5 до 10 секунд).
Змінюємо порт стандартного веб інтерфейсу
В файлі /etc/config/uhttpd заміняємо
list listen_http 0.0.0.0:80
на
list listen_http 0.0.0.0:81
Встановлюємо веб сервер
Напевно це трохи збочення, ставити веб сервер на роутер (процесор не сильно потужний, пам’яті взагалі мізер), але для чогось дуже маленького — підійде.
Встановлюємо PHP5
opkg update opkg install libsqlite3 opkg install php5-fastcgi # якщо плануєте використовувати сесії opkg install php5-mod-session
У файлі /etc/php.ini можна змінити налаштування часового поясу, наприклад так
date.timezone = "Europe/Kiev"
Далі виконуємо php-cgi -v й перевіряємо, щоб не було ніяких помилок.
Встановлення самого lighttpd
opkg install lighttpd opkg install lighttpd-mod-fastcgi opkg install lighttpd-mod-simple-vhost
У файлі /etc/lighttpd/lighttpd.conf активуємо модулі
server.modules = ( # "mod_rewrite", # "mod_redirect", # "mod_alias", # "mod_auth", # "mod_status", # "mod_setenv", "mod_fastcgi", # "mod_proxy", "mod_simple_vhost", # "mod_cgi", # "mod_ssi", # "mod_usertrack", # "mod_expire", # "mod_webdav" )
Задаємо, які файли вважати індексними
index-file.names = ( "index.php", "index.html", "default.html", "index.htm", "default.htm" )
За замовчуванням server.port стоятиме 80, нічого міняти не потрібно, бо раніше ми уже перемістили веб морду роутера на інший порт.
Наступні налаштування подружать php і lighttpd
fastcgi.server = ( ".php" => ( "localhost" => ( "socket" => "/tmp/php-fastcgi.socket", "bin-path" => "/usr/bin/php-fcgi", "max-procs" => 2, "idle-timeout" => 20 ) ) )
max-procs — наразі не працює, треба буде розібратися.
Помітив, що по замовчуванню сервер працює від імені root, це як мінімум дивно і взагалі не правильно! Розкоментовуємо рядки
server.username = "www-data" server.groupname = "www-data"
Замість www-data додайте свого користувача і групу.
Корисні лінки
- Автодом Домашняя автоматизация (багато корисних статей про OpenWrt).
- Восстановление роутеров TP-Link через serial интерфейс.на примере TL-WDR4300ND и WR1043ND.
- OpenWrt Wiki.
Пінгбеки заборонені, лише коментарі.
Один комментарНапишіть відгук
Ви мусите увійти, щоби коментувати.
test ajax