Автобиография
Програми
Web Blog B
 
O Y A N   B O Y C H E
V Скинове & Fonts
Книга за Гости Игри
Лични Снимки Михаел Шумахер
Моите Приятели       Връзки
Меню
   
Инфо
 
Вашето IP:
 54.196.248.93
 
Дата и час:
29 Март 2024
13:41:07
 
Последна актуализация:
04 Януари 2024
 
Вие сте посетител №:
03.2024г. 3101
(2024г.) (0)

Посетители - ботове:
03.2024г. 3101
(2024г.) (9092)

 
 

Valid XHTML 1.0 Transitional

 
Новини
OpenWrt на Toshiba WRC-1000HS
Как да се позабавлявате с вашия стар рутер?!
Вторник, 19 Януари 2010
Здравейте отново и да Ви е честитата новата 2010 година! След "кратко" прекъсване, най-накрая се реших да понапиша нещо в позамрялата ми web страница. Най-пресен ми е спомена за забавлението, което си намерих по време на Коледните празници - flash-ване на firmware-а на моя стар рутер Toshiba WRC-1000HS с OpenWrt. Казано на български - смяна на софтуера, с който работи рутера, с друг такъв с идея подобряване на бързодействието му. Не знам дали съм го обяснил точно и правилно, но поне аз така го разбирам. В тази статията няма да изпадам в големи подробности, а просто ще дам решение, което при мене заработи.

В началото стартирах с оригиналния firmware-а на Toshiba, който е инсталиран по подразбиране. За всеки случай нулирах настройките на рутера до фабричните и започнах да търся алтернативен firmware. Натъкнах се почти мигновено на OpenWrt и веднага реших, че това ще е избора ми. В последствие разбрах, че избора ми е бил силно ограничен и кажи рече не съм имал друг такъв. Първото нещо, което направих е да потърся повече информация на официалния сайт на OpenWrt за Toshiba WRC-1000HS. Такава информация почти липсваше, а малкото налична водеше основно до форума, където така и не намерих готово решение.

Страницата с поддържани устройства съдържа голям броя рутери и за моя радост WRC-1000 също е споменат, но за съжаление с информацията, че се поддържа частично или още "Partial" (http://wiki.openwrt.org/oldwiki/hardware/toshiba). Противоречиви мисли преминаха през главата ми, но бях се решил твърдо да го докарам докрай. Продължих да търся информация в Интернет и открих интересна страничка (дефакто wiki) на комшиите от южната ни страна - OpenWRT-OZOnet HowTo. Гръцкият език не ми е силна черта, затова се възползвах от помощта на Google Translate. Това бе първото ми flash-ване на рутера, смея да кажа учудващо за мене - успешно. Така след сравнително малко четене имах OpenWrt на рутера. За съжаление гореспомената страничка е доста старичка, съответно firmware-а е стар, има доста неточности и ненужна информация. Версията на OpenWrt е WHITE RUSSIAN (RC5), която използва основно настройките в nvram памета за разлика от последната текуща разновидност на OpenWrt - KAMIKAZE. KAMIKAZE (в моя случай 8.09.1 brcm-2.4) използва основно конфигурационни файлове за запаметяване на настройките на рутера. Та с WR RC5, след първоначалните настройки, рутера заработи както се очаква с изключение на безжичната карта:
Примерен код
root@hostname:~# lspci | grep -i network
01:01.0 Network controller: Intersil Corporation Prism 2.5 Wavelan chipset
(rev 01)
root@hostname:~#

Тествах всички налични kmod-hostap-pci* модули описани в гръцкото wiki, но модулите така и не пожелаха да се заредят и съответно безжичната карта бе неизползваема. Свързах се с автора на wiki-то и той ми предложи няколко по-нови firmware за тестване - след еднодневно блъскане работещ вариант не открих. В този момент реших да си помогна сам...

Още първия ми опит бе изненадващо успешен - просто свалих и инсталирах последната версия на OpenWrt Kamikaze brcm-2.4 от официалния сайт -
Kamikaze 8.09.1 brcm-2.4.

Има няколко начина за flash-ване на рутера, аз лично използвам tftp:
Примерен код
# Изключваме рутера от захранването (има бутонче за целта :)) и от компютър в същата подмрежа изпълняваме следното (192.168.10.1 е IP адреса на рутера):
tftp 192.168.10.1
binary
rexmt 1
timeout 60
trace
put openwrt-brcm-2.4-squashfs.trx
# Тук трябва да включим рутера към захранването и да изчакаме около 30 секунди - 1 минута, за да се прехвърли firmware-а.
quit

Повече информация за начина на flash-ване в линковете в края на статията.

Рутерът би трябвало да може да се ping-ва на 192.168.10.1 или 192.168.1.1. Първоначалното свързване става директно с telnet клиент (порт 23). След това задължително трябва да сменим паролата на root потребителя с командата passwd и да рестартираме рутера (команда reboot). Последващото записване на рутера се осъществява само с ssh клиент (порт 22). Основните пакети би трябвало вече да са налични и инсталирани. Може да проверите това с команда ipkg list. Важни пакети, които са ви необходими са dnsmasq и bridge. Също така е хубаво да си настроите освен мрежовите настройки и времевата зона и да си свалите пакета ntpclient, за да сте винаги точни :).

Както може да се досетите сами, безжичната карта отново не работеше, но този път решение бе намеренo:
Примерен код
root@hostname:~# ipkg install http://downloads.openwrt.org/snapshots/trunk/brcm-2.4/packages/kmod-hostap_2.4.35.4+0.4.9-brcm-2.4-1_mipsel.ipk
##### CUT - installation of the package #####
root@hostname:~#
root@hostname:~# ipkg install http://downloads.openwrt.org/snapshots/trunk/brcm-2.4/packages/kmod-hostap-pci_2.4.35.4+0.4.9-brcm-2.4-1_mipsel.ipk
##### CUT - installation of the package #####
root@hostname:~#


След рестартиране на рутера и извикване на dmesg би трябвало да видим нещо от сорта:
Цитат
##### CUT #####
hostap_crypt: registered algorithm 'NULL'
hostap_crypt: registered algorithm 'WEP'
hostap_crypt: registered algorithm 'TKIP'
hostap_crypt: registered algorithm 'CCMP'
hostap_pci: 0.4.9 - 2006-05-06 (Jouni Malinen <jkmaline@cc.hut.fi>)
PCI: Enabling device 01:01.0 (0000 -> 0002)
hostap_pci: Registered netdevice wifi0
wifi0: Original COR value: 0x0
prism2_hw_init: initialized in 230 ms
wifi0: NIC: id=0x8013 v1.0.0
wifi0: PRI: id=0x15 v1.1.1
wifi0: STA: id=0x1f v1.4.9
wifi0: defaulting to bogus WDS frame as a workaround for firmware bug in
Host AP mode WDS
wifi0: Intersil Prism2.5 PCI: mem=0x40002000, irq=6
wifi0: registered netdevice wlan0
##### CUT #####

Хуваво е в този момент да си инсталираме пакета wireless-tools (ако такъв нямаме), за да виждаме повече детайли относно безжичната карта и използваме другите възможности предоставени от него.

С помощта на lsmod и iwconfig потвърждаваме, че всичко е така както трябва:
Примерен код
root@hostname:~# lsmod | grep -i hostap
hostap_pci 45196 0 (unused)
hostap_crypt_ccmp 14604 0 (unused)
hostap_crypt_tkip 9804 0 (unused)
hostap_crypt_wep 3580 0 (unused)
hostap 105200 0 [hostap_pci hostap_crypt_ccmp
hostap_crypt_tkip hostap_crypt_wep]
root@hostname:~#
root@hostname:~#

root@hostname:~# iwconfig
lo no wireless extensions.

eth0 no wireless extensions.

eth1 no wireless extensions.

br-lan no wireless extensions.


wifi0 IEEE 802.11b ESSID:"test"
Mode:Master Access Point: Not-Associated Bit Rate:11 Mb/s
Tx-Power:-48 dBm Sensitivity=1/3
Retry min limit:8 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off

wlan0 IEEE 802.11b ESSID:"test"
Mode:Master Access Point: Not-Associated Bit Rate:11 Mb/s
Tx-Power:-48 dBm Sensitivity=1/3
Retry min limit:8 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

root@hostname:~#


Следва конфигуриране на безжичната мрежа, добавяне на MAC филтри и т.н. Накрая добавяме wlan0 безжичния мрежови интерфейс към вече съществуващия bridge - br-lan:
Примерен код
root@hostname:~# brctl addif br-lan wlan0
root@hostname:~#

root@hostname:~# brctl show
bridge name bridge id STP enabled interfaces
br-lan 8000.0090963c5abc no eth0
wlan0
root@hostname:~#

root@hostname:~# cat /etc/init.d/local
#!/bin/sh /etc/rc.common
# Copyright (C) 2006-2008 OpenWrt.org

start() {
/usr/sbin/brctl addif br-lan wlan0
}
root@hostname:~#

root@hostname:~# cd /etc/rc.d/
root@hostname:/etc/rc.d#
root@hostname:/etc/rc.d# ln -s ../init.d/local S41local
root@hostname:/etc/rc.d#

Така рутерът става почти напълно функционален. Остават други допълнителни настройки, които са по желание.

Примерно, ако искате да имате гъвкава защитна стена, трябва да си инсталирате iptables и съответните iptables модули към ядрото:
Примерен код
root@hostname:~# ipkg status iptables
Package: iptables
Version: 1.3.8-2
Status: install ok installed
Architecture: mipsel
Conffiles: /etc/firewall.config 4f8ae0dac82f7a269b6587d4c4d0b285 /etc/firewall.user f626143fa22ae40fe361eaceb69d2942

Done.
root@hostname:~#

root@hostname:~# ipkg remove iptables
Removing package iptables from root...
Done.
root@hostname:~#

root@hostname:~# ipkg install http://downloads.openwrt.org/snapshots/trunk/brcm-2.4/packages/kmod-ipt-core_2.4.35.4-brcm-2.4-1_mipsel.ipk
Downloading http://downloads.openwrt.org/snapshots/trunk/brcm-2.4/packages/kmod-ipt-core_2.4.35.4-brcm-2.4-1_mipsel.ipk
Installing kmod-ipt-core (2.4.35.4-brcm-2.4-1) to root...
Configuring kmod-ipt-core
Done.
root@hostname:~# ipkg install http://downloads.openwrt.org/snapshots/trunk/brcm-2.4/packages/libiptc_1.4.3.2-1_mipsel.ipk
Downloading http://downloads.openwrt.org/snapshots/trunk/brcm-2.4/packages/libiptc_1.4.3.2-1_mipsel.ipk
Installing libiptc (1.4.3.2-1) to root...
Configuring libiptc
Done.
root@hostname:~# ipkg install http://downloads.openwrt.org/snapshots/trunk/brcm-2.4/packages/libxtables_1.4.3.2-1_mipsel.ipk
Downloading http://downloads.openwrt.org/snapshots/trunk/brcm-2.4/packages/libxtables_1.4.3.2-1_mipsel.ipk
Installing libxtables (1.4.3.2-1) to root...
Configuring libxtables
Done.
root@hostname:~#
root@hostname:~# ipkg install http://downloads.openwrt.org/snapshots/trunk/brcm-2.4/packages/iptables_1.4.3.2-1_mipsel.ipk
Downloading http://downloads.openwrt.org/snapshots/trunk/brcm-2.4/packages/iptables_1.4.3.2-1_mipsel.ipk
Installing iptables (1.4.3.2-1) to root...
Configuring iptables
Done.
root@hostname:~#

root@hostname:~# ipkg install http://downloads.openwrt.org/snapshots/trunk/brcm-2.4/packages/kmod-ipt-conntrack_2.4.35.4-brcm-2.4-1_mipsel.ipk
Downloading http://downloads.openwrt.org/snapshots/trunk/brcm-2.4/packages/kmod-ipt-conntrack_2.4.35.4-brcm-2.4-1_mipsel.ipk
Installing kmod-ipt-conntrack (2.4.35.4-brcm-2.4-1) to root...
Configuring kmod-ipt-conntrack
Done.
root@hostname:~#
root@hostname:~# ipkg install http://downloads.openwrt.org/snapshots/trunk/brcm-2.4/packages/kmod-ipt-nat_2.4.35.4-brcm-2.4-1_mipsel.ipk
Downloading http://downloads.openwrt.org/snapshots/trunk/brcm-2.4/packages/kmod-ipt-nat_2.4.35.4-brcm-2.4-1_mipsel.ipk
Installing kmod-ipt-nat (2.4.35.4-brcm-2.4-1) to root...
Configuring kmod-ipt-nat
Done.
root@hostname:~#

root@hostname:~# lsmod
Module Size Used by Not tainted
ipt_MASQUERADE 1316 0 (unused)
iptable_nat 21000 0 [ipt_MASQUERADE]
ipt_state 408 0 (unused)
ip_conntrack 22576 0 [ipt_MASQUERADE iptable_nat ipt_state]
hostap_pci 45196 0 (unused)
hostap_crypt_ccmp 14604 0 (unused)
hostap_crypt_tkip 9804 0 (unused)
hostap_crypt_wep 3580 0 (unused)
hostap 105200 0 [hostap_pci hostap_crypt_ccmp hostap_crypt_tkip hostap_crypt_wep]
ipt_REJECT 3932 0 (unused)
ipt_TCPMSS 2316 0 (unused)
ipt_LOG 3804 0 (unused)
ipt_multiport 748 0 (unused)
ipt_mac 556 0 (unused)
ipt_limit 892 0 (unused)
iptable_mangle 2156 0 (unused)
iptable_filter 1676 0 (unused)
ip_tables 16960 13 [ipt_MASQUERADE iptable_nat ipt_state ipt_REJECT ipt_TCPMSS ipt_LOG ipt_multiport ipt_mac ipt_limit iptable_mangle iptable_filter]
switch-core 4864 0
root@hostname:~#

root@hostname:~# ipkg install http://downloads.openwrt.org/snapshots/trunk/brcm-2.4/packages/iptables-mod-nat_1.4.3.2-1_mipsel.ipk
Downloading http://downloads.openwrt.org/snapshots/trunk/brcm-2.4/packages/iptables-mod-nat_1.4.3.2-1_mipsel.ipk
Installing iptables-mod-nat (1.4.3.2-1) to root...
Configuring iptables-mod-nat
Done.
root@hostname:~#

root@hostname:~# ipkg install http://downloads.openwrt.org/snapshots/trunk/brcm-2.4/packages/iptables-mod-conntrack_1.4.3.2-1_mipsel.ipk
Downloading http://downloads.openwrt.org/snapshots/trunk/brcm-2.4/packages/iptables-mod-conntrack_1.4.3.2-1_mipsel.ipk
Installing iptables-mod-conntrack (1.4.3.2-1) to root...
Configuring iptables-mod-conntrack
Done.
root@hostname:~#


Резултатът е налице - OpenWrt Kamikaze на стария измъчен Toshiba WRC-1000HS. На всичкото отгоре РАБОТИ :)!!!

Полезни връзки по темата:

Публикувано в Лични, Софтуер, ХардуерРедактирана на 3 Февруари 2010


<< Назад
© Боян Бойчев