Я живу в частном секторе и благо цивилизации - интернет, здесь доступно только в виде 3G модема (надеюсь не долго). Недавно попался мне ADSL модем SMC-7908-ISP. Модем оказался у меня "случайно" - привезла девушка из Испании. Как только я его увидел, то подумал: на него точно можно поставить Linux :)
Что из этого получилось читайте дальше.
Интернет у меня раздавал Dell GX240, вот такой:
Также он был: файл-сервером (1Tb HDD), DHCP-сервером, Wi-Fi точкой доступа, торрент качалкой и аудио-плеером (mpd). ОС - Ubuntu Server. По паспорту он потребляет максимально 180 Вт, работает очень тихо - под кроватью его не слышно вообще. После "прихода" в дом SMC-7908-ISP, функции Wi-Fi перенеслись на модем. Так все проработало месяц.
Перед новогодними праздниками появилось свободное время и я решил таки поставить на модем linux. Гугл на запрос "SMC-7908-ISP linux" первой ссылкой отправил на страницу OpenWRT. Перечитав, понял - оно. :)
По теории все просто:
1. Ставим загрузчик.
2. Ставим систему.
3. Настраиваем.
4. ??...PROFIT!
Для пробы я решил поставить систему с ветки Backfire 10.03.1, а рабочую собрать с ветки Trunk. Подключался к модему через USB-UART переходник. Программа - minicom.
Дальше буду расписывать "подводные камни" на каждом этапе.
1. Загрузчик.
На деф прошивке стоит загрузчик brnboot, через него можно поменять на U-boot. Подробнее расписано здесь.
После загрузки U-boot думал залить прошивку. В U-boot есть TFTP клиент который загружает прошивку с сервера и записывает ее в флеш. А нет, загрузка после нескольких кб падала по таймауту:
ARV4518 =>run update_openwrt
Using lq_cpe_eth device
TFTP from server 192.168.1.5; our IP address is 192.168.1.25
Filename 'ARV4518PW-squashfs.image'.
Load address: 0x80500000
Loading: ##TTT
Сменив несколько тфтп серверов и просмотрев кучу страниц гугла понял что проблема таки в загрузчике. Перепробовал штук 5 - результат тот же. На форуме наткнулся на инфу о загрузке U-boot через UART.
Включить режим UART-boot просто:
И в консоли:
Запустил обновление, работает:
ARV4518 => run update_openwrt
Using lq_cpe_eth device
TFTP from server 192.168.1.5; our IP address is 192.168.1.25
Filename 'ARV4518PW-squashfs.image'.
Load address: 0x80500000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
######
done
Bytes transferred = 2359300 (240004 hex)
..................................... done
Erased 37 sectors
Copy to Flash... 9....8....7....6....5....4....3....2....1....done
Позже я нашел U-boot с нормальным TFTP клиентом, который качал прошивку без таймаутов.
2. Прошивка.
Прошивку я собирал с ветки trunk, выкинув все ненужное для меня как: dsl драйвер, pppoe и т.д. оставив только минимум для работы.Собрал, прошил и снова проблема: загрузка падает в кернел паник:
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,4)
Лечится установкой загрузчика поновее.
3. Настройка.
Настройка у меня сводится к настройке ррр-соединения, dhcp, доступа к интернету и Wi-Fi.
1. PPP-connect(оператор InterTelecom - Украина).
Переходим в каталог /etc/ppp/
Открываем для редактирования(например vi chap-secrets) файл chap-secrets и записываем в него строку:
IT * IT
Создаем файл it-chat и записываем в него следующие строки:
ABORT BUSY
ABORT ERROR
ABORT 'NO ANSWER'
ABORT 'NO CARRIER'
ABORT 'NO DIALTONE'
ABORT 'Invalid Login'
ABORT 'Login incorrect'
TIMEOUT 5
'' '\\d'
'' '\\d'
'' '\\d'
'' '\\d'
'' '\\d'
'' AT
OK 'ATZ'
OK 'ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0'
TIMEOUT 5
OK 'ATDT#777'
CONNECT ''
TIMEOUT 5
'~--' ''
Создаем каталог peers
ipcp-accept-local
ipcp-accept-remote
noipdefault
defaultroute
usepeerdns
user IT
noauth
novj
nobsdcomp
crtscts
modem
lock
mtu 1500
mru 1500
persist
logfile /var/log/it.log
/var/log/it.log - файл лога, если вам не надо - пишем /dev/null. :)
Для автоматизации запуска pppd создаем файл /etc/init.d/pppd:
Устанавливаем права:
Создаем симлинк для автостарта:
Перезагружаемся, pppd должен запуститься автоматически.
2. DHCP.
Я сменил только стартовый IP и лимит адресов.
option start 2
option limit 15
3.Доступ к интернету.
Для раздачи интернета нужно настроить NAT:
4. Wi-Fi.
Открываем файл /etc/config/wireless и пишем:
config wifi-device wlan0
option type mac80211
option channel 5
option macaddr 00:22:15:a3:42:e9
option hwmode 11g
option disabled 0
config wifi-iface
option device wlan0
option network lan
option mode ap
option ssid MYROUTER #Имя сети
option encryption psk2+tkip #Шифрование
option key PASSWORD #Пароль
Перезагружаем модем. Все работает.
Здесь Uboot, Uboot-UART, Flash-image и config ядра. Пользуйтесь.
Что из этого получилось читайте дальше.
Интернет у меня раздавал Dell GX240, вот такой:
Также он был: файл-сервером (1Tb HDD), DHCP-сервером, Wi-Fi точкой доступа, торрент качалкой и аудио-плеером (mpd). ОС - Ubuntu Server. По паспорту он потребляет максимально 180 Вт, работает очень тихо - под кроватью его не слышно вообще. После "прихода" в дом SMC-7908-ISP, функции Wi-Fi перенеслись на модем. Так все проработало месяц.
Перед новогодними праздниками появилось свободное время и я решил таки поставить на модем linux. Гугл на запрос "SMC-7908-ISP linux" первой ссылкой отправил на страницу OpenWRT. Перечитав, понял - оно. :)
По теории все просто:
1. Ставим загрузчик.
2. Ставим систему.
3. Настраиваем.
4. ??...PROFIT!
Для пробы я решил поставить систему с ветки Backfire 10.03.1, а рабочую собрать с ветки Trunk. Подключался к модему через USB-UART переходник. Программа - minicom.
Дальше буду расписывать "подводные камни" на каждом этапе.
1. Загрузчик.
На деф прошивке стоит загрузчик brnboot, через него можно поменять на U-boot. Подробнее расписано здесь.
После загрузки U-boot думал залить прошивку. В U-boot есть TFTP клиент который загружает прошивку с сервера и записывает ее в флеш. А нет, загрузка после нескольких кб падала по таймауту:
ARV4518 =>run update_openwrt
Using lq_cpe_eth device
TFTP from server 192.168.1.5; our IP address is 192.168.1.25
Filename 'ARV4518PW-squashfs.image'.
Load address: 0x80500000
Loading: ##TTT
Сменив несколько тфтп серверов и просмотрев кучу страниц гугла понял что проблема таки в загрузчике. Перепробовал штук 5 - результат тот же. На форуме наткнулся на инфу о загрузке U-boot через UART.
Включить режим UART-boot просто:
И в консоли:
cat ./u-boot.asc >> /dev/ttyUSB0
Запустил обновление, работает:
ARV4518 => run update_openwrt
Using lq_cpe_eth device
TFTP from server 192.168.1.5; our IP address is 192.168.1.25
Filename 'ARV4518PW-squashfs.image'.
Load address: 0x80500000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
######
done
Bytes transferred = 2359300 (240004 hex)
..................................... done
Erased 37 sectors
Copy to Flash... 9....8....7....6....5....4....3....2....1....done
Позже я нашел U-boot с нормальным TFTP клиентом, который качал прошивку без таймаутов.
2. Прошивка.
Прошивку я собирал с ветки trunk, выкинув все ненужное для меня как: dsl драйвер, pppoe и т.д. оставив только минимум для работы.Собрал, прошил и снова проблема: загрузка падает в кернел паник:
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,4)
Лечится установкой загрузчика поновее.
3. Настройка.
Настройка у меня сводится к настройке ррр-соединения, dhcp, доступа к интернету и Wi-Fi.
1. PPP-connect(оператор InterTelecom - Украина).
Переходим в каталог /etc/ppp/
cd /etc/ppp/
IT * IT
Создаем файл it-chat и записываем в него следующие строки:
ABORT BUSY
ABORT ERROR
ABORT 'NO ANSWER'
ABORT 'NO CARRIER'
ABORT 'NO DIALTONE'
ABORT 'Invalid Login'
ABORT 'Login incorrect'
TIMEOUT 5
'' '\\d'
'' '\\d'
'' '\\d'
'' '\\d'
'' '\\d'
'' AT
OK 'ATZ'
OK 'ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0'
TIMEOUT 5
OK 'ATDT#777'
CONNECT ''
TIMEOUT 5
'~--' ''
Создаем каталог peers
mkdir peers
В каталоге peers создаем файл it-serial и записываем в него следующие строки:ipcp-accept-local
ipcp-accept-remote
noipdefault
defaultroute
usepeerdns
user IT
noauth
novj
nobsdcomp
crtscts
modem
lock
mtu 1500
mru 1500
persist
logfile /var/log/it.log
/var/log/it.log - файл лога, если вам не надо - пишем /dev/null. :)
Для автоматизации запуска pppd создаем файл /etc/init.d/pppd:
#!/bin/sh /etc/rc.common START=99 start() { /usr/sbin/pppd connect 'chat -f /etc/ppp/it-chat' call it-serial /dev/ttyACM0 460800 } stop() { killall pppd }
Устанавливаем права:
chmod 755 /etc/init.d/pppd
Создаем симлинк для автостарта:
ln -s /etc/init.d/pppd /etc/rc.d/S99pppd
Перезагружаемся, pppd должен запуститься автоматически.
2. DHCP.
Я сменил только стартовый IP и лимит адресов.
vi /etc/config/dhcp
option start 2
option limit 15
3.Доступ к интернету.
Для раздачи интернета нужно настроить NAT:
#/bin/sh # Clear all rule iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT iptables -F iptables -t nat -P PREROUTING ACCEPT iptables -t nat -P POSTROUTING ACCEPT iptables -t nat -P OUTPUT ACCEPT iptables -t nat -F iptables -t mangle -P PREROUTING ACCEPT iptables -t mangle -P POSTROUTING ACCEPT iptables -t mangle -P INPUT ACCEPT iptables -t mangle -P OUTPUT ACCEPT iptables -t mangle -P FORWARD ACCEPT iptables -t mangle -F # NAT iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j MASQUERADE iptables -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
4. Wi-Fi.
Открываем файл /etc/config/wireless и пишем:
config wifi-device wlan0
option type mac80211
option channel 5
option macaddr 00:22:15:a3:42:e9
option hwmode 11g
option disabled 0
config wifi-iface
option device wlan0
option network lan
option mode ap
option ssid MYROUTER #Имя сети
option encryption psk2+tkip #Шифрование
option key PASSWORD #Пароль
Перезагружаем модем. Все работает.
Здесь Uboot, Uboot-UART, Flash-image и config ядра. Пользуйтесь.
Спасибо, отличный обзор, думаю многим пригодится ваш опыт...
ОтветитьУдалитьчерез ком порт + LAN установить openwrt невозможно ?
ОтветитьУдалитьспасибо
Возможно, я так и устанавливал. На некоторых роутерах возможно установить OpenWRT из под оригинальной прошивки. У меня проблема была в том, что на загрузчике который я прошил не работал нормально TFTP клиент, потому и такие сложности с загрузкой uboot через UART.
ОтветитьУдалитьusanovil openwrt no wifi ne rabotaet.nashol soft .espanskom forume.posmatrite foto.negde ne nashol proshivka chtob bilo vsio na meste.
ОтветитьУдалитьhttp://s55.radikal.ru/i150/1309/d8/5361b580f460.jpg
http://www.mediafire.com/download/c9aiivy4gx7j5dj/openwrt-lantiq-danube-ARV4518PW-squashfs.image
spasibo...
Возможно у вас нет модуля ath5k, или он не работает. Консолью пользоватся умеете? Посмотреть бы вывод lsmod | grep ath и dmesg | grep ath. Вспомнил что у меня Wi-Fi не работал на прошивке 12.09 с сайта openwrt, собирал сам. Могу кинуть но она без веб интерфейса.
Удалитьdaite pojalusto proshivka.no bez interfeisa budit dlia menia s nastrikami trudno.ia etot router vklucfhil na cardsharinge.zapustil MPCS i rbotaet prekrasno no bez wifi ochen ploxo.
Удалитьkak nibut mojno zdelat tak chtob bil web interfeis i rabotal tolko wifi?drugie sistemi ne interesno toklo wifi i web interfeis ?
spasibo
/etc/config/wireless
ОтветитьУдалитьnastroiki pakajite pojalusto?postavil arv4518_MAC_2.bin wifi meniu vidno interfeise.
http://s018.radikal.ru/i528/1309/b4/33d0443a64cd.png
Мой конфиг:
Удалитьcat /etc/config/wireless
config wifi-device radio0
option type mac80211
option channel 11
option hwmode 11g
option path 'pci0000:00/0000:00:0e.0'
config wifi-iface
option device radio0
option network lan
option mode ap
option ssid SSID_NAME
option encryption psk2+tkip
option key SSID_PASSWORD
root@router:~#
Error opening /dev/ttyUSB0: ??????? ?? ??????? ????? ????????? ????.
ОтветитьУдалитьkupil usb komport nastroil port vkluchaiu brndumper i pishet tak.xachu votanovit router polnostiu udalil Flash.sdelal vsio kak zdes napisanno
https://forum.openwrt.org/viewtopic.php?id=15934&p=27
no brndumper ne vkluchaetsa.mojete pomoch?
Извините, никогда не работал с brndumper. А на каком чипе USB-COM переходник?
Удалитьxachu abratno zapisat vroutere fail u-boot-bootstrap.bin.brndumper vkluchil kak napisano zdes
Удалитьhttps://forum.openwrt.org/viewtopic.php?id=15934&p=27
6.1. Backup Full данных вспышкой: При этом вы можете восстановить ваш маршрутизатор в исходное состояние без проблем, всегда вы хотите. Вам нужно получить данные из 0xB0000000 к 0xb0400000.
no zapisat v flash ne smog.est drugia programi, na windows xp/win7 chtob pomog vetom dele?brndumper ne pomog ili ia ne ponial kak rabotaet etot pragrama.
spasibo!
Извините что так долго не отвечал. Как я понял brndumper делает бекап оригинальной firmware до прошивки в устройство OpenWRT. После прошивки уже нет смысла пользоватся brndumper.
Удалитьdobri vecher.
Удалитьda vsio poniatno .prosta ne mogu vostanovit router.po oshibke udalil flash.mojete nauchit kak zapisat abratno boot vo vlesh.UART perekluchatel sdelal i rabotaet.
ROM VER: 1.0.3
CFG 04
Read EEPROMX
X
UART
daite pojalusto vse faili katorie neobxodimo dlia vostanovlenie routera i skajite kakie programi nada ispolzovat ?chtob rabotala vsio na windows/xp/7.polzovatsa linuksom ne umeiu.ocehn proshu pomogite..
spasibo!
Вам нужно скачать: CnCterm - http://www.telemaster.ru/cnclab/cncterm.htm, Putty - http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe, Tftp32 - http://tftpd32.jounin.net/tftpd32.html. Так же нужен uboot-UART, он в архиве в конце статьи. В CnCterm подключаемся к com порту: Options - Port select и отправляем файл u-boot.asc: Data - Upload File. После отправки закрываем CnCterm и запускаем Putty, подключаемся к роутеру. Запускаем Tftp32 и включаем в настройках tftp server. IP адрес компьютера - статический. В Putty пишем: run update_uboot и run update_openwrt. Файлы прошивки и загрузчика должны быть в папке tftp server-a. Если будут вопросы - пишите.
Удалитьvsio sdelal tochno tak kak vi skazali no kagda vkliuchaiu Putty pishet tak rotrer i vsio ne reagiruet
УдалитьROM VER: 1.0.3
CFG 01
Read EEPROMX
X
.no,esli puskaiu fail u-boot.asc cherez terminal V1.9b.i vetom momente routere vkluchaiu perekluchaetl UART vetot moment router zagrujaetsa i rabotaet.daje mogu cherez telnet zaiti vroutere ne poimu vchom problema..vikluchaio ruoter i zanova vkluchaio i vsio pishet tak
ROM VER: 1.0.3
CFG 01
Read EEPROMX
X
est varianti chrtob udalit vsio pamiat vflash?i zanova zapisat fail u-boot.asc ..
spasibo..
u-boot.asc - RAM загрузчик, служит для востановления работы роутера когда не работает основной загрузчик. После полной загрузки u-boot.asc появится надпись "Hit any key to stop autoboot:" и 3 секунды для запуска консоли загрузчика. Тогда надо нажать любую клавишу (оправить любой символ). И в консоли загрузчика прописать run update_uboot (сначала настроить tftp server, проверить и прописать IP адреса на роутере и компьютере). Если надо то можно обновить и систему - run update_openwrt. Файлы загрузчика и прошивки должны лежать в папке tftp server-а.
Удалитьoromnoe spasibooo vsio poluchilos!!!!!!
Удалитьrouter polnostiu vostanovilsa!!
shas ostalsia vkluchit wifi.etc/config papke net fail wireles.kakieto faili ne xvataet vproshivke dlia vkluchenie wifi.dlia etogo chto nada delat mojete nauchit?
spasibo!
Надо смотреть есть ли модуль Wi-Fi (ath5) в прошивке(почти в всех прошивках есть) и правильно прописать настройки /etc/config/wireless. Я свой файл показал ранее.
Удалитьath5 iest proshivke no ne rabotaet.pervi raz kagda postavil openwrt tagda rabotal wifi patom postavil druguiu prashivku i posle etovo ne rabotaet wifi.shas uje mnogo raz pereproshival no net rezultat chto delat kak zaswtavit chtob rabotal wifi?
Удалитьspasibo!