1. Главная страница » Компьютеры

Asus wl 520gu openwrt

Автор: | 16.12.2019

User Tools

Site Tools

Table of Contents

This device is NOT RECOMMENDED for future use with OpenWrt due to low flash/ram.
DO NOT BUY DEVICES WITH 4MB FLASH / 32MB RAM if you intend to flash an up-to-date and secure OpenWrt version (18.06 or later) onto it! See 4/32 warning for details.

1) This device does not have sufficient resources (flash and/or RAM) to provide secure and reliable operation.
This means that even setting a password or changing simple network settings might not be possible any more, rendering the device effectively useless. See OpenWrt on 4/32 devices what you can do now.

2) OpenWrt support for this device will end after 2019.
19.07 will be the last official build for 4/32 devices. After 19.07, no further OpenWrt images will be built for 4/32 devices. See OpenWrt on 4/32 devices what you can do now.

The hardware is similar to that of the WL500GPv2, and the information there is relevant to this unit too.

Hardware Highlights

SoC Ram Flash Network USB Serial JTag
Broadcom BCM5354 / 240MHz 16MiB 4MiB 4×1 Yes Yes ?

Installing OpenWrt

The boot_wait nvram variable is set by default, but a special procedure is required for uploading a new flash via tftp at boot:

Hardware

Architecture: MIPS
Vendor: Broadcom
bootloader: cfe
System-On-Chip: BCM5354KFBG
CPU/Speed: Broadcom BCM3302 / 240MHz
Flash-Chip: 4MB MX 29LV320CB
Flash size: 4 MiB
RAM: Samsung K4S281632I-UC60 / 166 MHz / 16 MiB
Wireless: Broadcom 5354 (core revision 13) 802.11b/g (integrated)
Ethernet: Switch in CPU
USB: Yes
Serial: Core supports 2 serial ports, only 1 is available on the PCB (no ready made port)
JTAG: ?
Читайте также:  On error resume next что это

Note: Above info is mostly taken from the MightyOhm site, with some from dmesg .

Flashing

Use the Asus Firmware Recovery Tool, Version 4.0.7.9, available here (select your operating system and “utilities”): http://support.asus.com/Download.aspx?SLanguage=en&m=WL-520GU&p=11&os=

Photos

Serial

Pinout: Pin 1 (white bar on silkscreen): 3.3V; Pin 2: RX; Pin 3: TX; Pin 4: GND.

If you’re using GNU screen and a USB-serial adapter, the command will look something like this (OSX):

On other OSes, you’ll need to change the path to the USB-serial device.

See port.jtag for more JTAG details.

Radio

Warning! Kernel support for the radio is broken when using the 2.6 kernel (b43 driver) via the brcm47xx target in the original Backfire (10.03) release! OpenWrt doesn’t enable the radio out of the box. If you enable it, processes get killed and the box becomes unusable. The issue is discussed here.

One option is to use the 2.4 kernel and the old proprietary broadcom driver (brcm-2.4 target). See the discussion in the WL500GP entry; note that the WL520GU is basically a WL500GP v2 with less RAM and FLASH.

Updated: As of r21470 (May 16, 2010) the stable b43 firmware is being used as the default in trunk builds and the box will work with wireless. It may not be completely stable yet but is somewhat usable. You will have to enable it in /etc/config/wireless.

Updated: In 10.03.1-rc1 (Backfire update RC1, August 2010), the b43 driver seems to work fine on the WL520GU. Hopefully this means 10.03.1 will have robust support for this router via the brcm47xx target.

Updated: as of 10.03.1-rc4 (February 2011) wifi works with brcm47xx

Updated: as of 10.03.1 (March 2012) With brcm47xx system hangs as soon as wifi enabled. Downgarded to the 2.4 kernel (still 10.03.1) using openwrt-brcm-2.4-squashfs.trx. More stable, but eventually hangs. I’m guessing that some process are dead/not responding, but I can still ping the box. Also tried a version built myself from the laest source. Same result. Much as I love openwrt (it runs well for me on 2 other boxes) I eventually gave up for this unit and switched to tomatousb (2.6), which works flawlessly for the wl-520gu.

USB requires the ohci driver. To use an external USB storage device, for example, enable the following configuration options:

See the USB storage page for more information.

As of r21428 (May 12, 2010) some broken ehci code in brcm47xx targets was fixed — essentially openwrt was brought back into sync with the linux 2.6.x mainline. USB devices can be recognized and ehci (available in the kmod-usb2 module) is not needed for USB 1.x devices. These are serviced by the ohci usb core

Specific Configuration

See MightyOhm’s discussion of installing OpenWrt, but it’s old, and probably obsolete.

Игорь Осколков

05 мая 2011

Напоминаем, что попытки повторить действия автора могут привести к потере гарантии на оборудование и даже к выходу его из строя. Материал приведен исключительно в ознакомительных целях. Если же вы собираетесь воспроизводить действия, описанные ниже, настоятельно советуем внимательно прочитать статью до конца хотя бы один раз. Редакция 3DNews не несет никакой ответственности за любые возможные последствия.

⇡#Предыстория

Для начала надо разобраться, что такое прошивка. Прошивкой принято называть часть энергонезависимой памяти практически любого цифрового устройства, в которой содержится его микропрограмма. А сам термин «прошивка» появился более полувека назад, когда в компьютерных системах стала использоваться ферритовая память. Каждая ячейка памяти в буквальном смысле прошивалась проводом. Для перепрошивки же приходилось выдёргивать старые провода и прошивать новые. Впрочем, это сильно упрощённое объяснение процесса и к современным реалиям оно никакого отношения не имеет. Сейчас же, с удешевлением памяти, всё чаще вместо классических микропрограмм прошивается полноценная ОС, хоть и в урезанном виде (например, отсутствует возможность работы с графикой). А почему бы и нет? Многие устройства принципиально не сильно отличаются от любого ПК. В них есть процессор, память, накопитель, набор различных микроконтроллеров и прочие компоненты. Тут, конечно, можно поспорить, но не будем вдаваться в вопросы терминологии, так как для конечного пользователя не так уж важно, что находится внутри коробки — лишь бы работала как надо. Ну а под альтернативными прошивками подразумеваются любые прошивки, которые не созданы разработчиками устройства.

Зачастую разработчики довольно ревностно относятся к вопросам, связанным с извлечением, изучением, модификацией прошивок с последующей их заливкой обратно в устройство. Чаще всего такие действия автоматически приводят к потере гарантии. Так что если вы решили что-нибудь перепрошить, то ознакомьтесь для начала с лицензионным соглашением. Однако потерей гарантии дело не ограничивается — нередки случаи судебных исков от компании-разработчика к энтузиастам, которые занимаются модификацией прошивок. Аналогичным образом могут караться и попытки аппаратной модификации устройств, вроде известного процесса «чипования» некоторых игровых консолей. Особо хитрые товарищи могут использовать в качестве программной базы для создания прошивок открытое ПО под свободной лицензией. В этом случае даже выкладываются исходные тексты. Однако на аппаратном уровне тем или иным образом блокируется возможность использования альтернативных прошивок. В лучшем случае вам удастся восстановить исходную прошивку, в худшем вы получите бесполезный «кирпич» (brick, «брикнутое» устройство), с которым ничего нельзя сделать, кроме как выкинуть в помойку.

Наконец, самый главный вопрос. Зачем вообще нужны альтернативные прошивки? Причин может быть множество. Как правило, такие прошивки гораздо более функциональны, позволяют задействовать заблокированные возможности устройства (такое часто бывает, например, с видеокартами), имеют более удобный интерфейс, работают намного стабильнее или лишены каких-либо недостатков оригинальных прошивок. Некоторые производители годами не хотят или не могут исправить ошибки в своём ПО, а иногда просто прекращают поддержку неплохого, в общем-то, устройства с тонким намёком, что пора бы прикупить более свежую версию «железки». В конце концов, многое в этом мире делается just for fun.

⇡#Альтернативные прошивки для ASUS WL-520GU

История альтернативных прошивок для роутеров началась с появлением легендарной серии устройств Linksys WRT54G в 2002 году. После открытия исходных кодов ПО для первого роутера этой серии на их основе была создана альтернативная прошивка OpenWrt. Вскоре появились аналогичные проекты, которые стали стремительно развиваться, и в какой-то момент для того же Linksys WRT54G существовало более 30 (!) альтернативных прошивок. Сейчас OpenWrt и другие прошивки поддерживают гораздо большее количество моделей роутеров разных производителей. Однако наиболее популярными устройствами для перепрошивки до сих пор являются роутеры той самой серии Linksys, а также устройства ASUS серий WL и RT. В качестве примера мы рассмотрим роутер ASUS WL-520GU. Те, кто уже знаком с альтернативными прошивками, ничего нового для себя не найдут. Для остальных же будет коротко рассказано о самых популярных прошивках для этой модели роутера.

Итак, что мы имеем? ASUS WL520-GU был выпущен более трёх лет назад и на тот момент являлся довольно неплохим решением для организации домашней сети за приемлемую цену. Аппаратные характеристики роутера по нынешним меркам слабоваты: чипсет Broadcom BCM5354 с частотой 240 МГц, 16 Мбайт оперативной памяти и 4 Мбайта постоянной. Из бонусов только USB-порт, предназначенный, в первую очередь, для подключения принтера к локальной сети. В общем, не особо развернёшься, но кое-что всё-таки сделать можно. Изначальная версия прошивки вызвала у пользователей множество нареканий, как это обычно и бывает с новыми продуктами. Часть претензий была удовлетворена, а некоторые пожелания — нет. Последняя стабильная версия официальной прошивки вышла более года назад, так что вряд ли стоит ждать серьёзных обновлений. К тому же линейка роутеров пополнилась свежими моделями. Если есть желание выжать побольше из старого друга, то выход один — альтернативная прошивка.

⇡#Подготовка

Перепрошиваться мы будем с помощью стандартной утилиты ASUS для восстановления прошивки роутера. Скачать её можно на сайте поддержки. Там же на всякий случай возьмём и последнюю стабильную версию оригинального ПО за номером 3.0.1.4_RU. Итак, заходим на сайт и в разделе «Главная загрузка» поэтапно выбираем «Беспроводное оборудование» → «Точка доступа» → WL520-GU и нажимаем кнопку «Поиск».

Во всплывающем окне выбираем в списке Windows 7 и нажимаем «Общий поиск».

В разделе «Программное обеспечение» находим и скачиваем последнюю прошивку (Версия 3.0.1.4_RU).

В разделе «Утилиты» скачиваем архив с программами (Версия 4.0.7.9).

Прошивку из первого архива куда-нибудь распаковываем, например на диск C:, а из второго устанавливаем программу из папки Utility. Лучше сразу же отключить брандмауэр. От роутера необходимо отсоединить все сетевые кабели, кроме одного, который надо подключить к сетевой карте ПК. По Wi-Fi перепрошиться не удастся. В настройках подключения по локальной сети в свойствах IPv4 надо вручную задать адрес из подсети 192.168.1.10/255.255.255.0.

Теперь найдём маленькую утопленную кнопку с надписью Restore на задней стенке роутера и зажмём её на несколько секунд, например с помощью стержня от ручки. Отпускаем кнопку и отсоединяем кабель питания. Снова нажимаем кнопку и, не отпуская её, подключаем кабель питания. Через несколько секунд индикатор питания роутера на передней панели начнёт медленно мигать. Теперь устройство находится в режиме восстановления, а кнопку Restore можно отпустить. В главном меню из ASUS Utility → WL-520GU Wireless Router запускаем программу Firmware Restoration. Жмём на кнопку «Обзор», выбираем файл с нужной прошивкой, нажимаем «Загрузить» и ждём, пока прошивка закачается в роутер и установится. Обычно на это уходит до 5 минут. После этого надо отключить и снова подключить кабель питания, а в настройках подключения по локальной сети выставить автоматическое получение IP-адреса. Теперь можно открыть браузер и набрать в адресной строке

для получения доступа к веб-интерфейсу обновлённой прошивки. Дальнейшие действия зависят от конкретной версии микропрограммы. Если с первого раза не получилось обновить ПО роутера, то надо ещё раз ввести его в режим восстановления и повторить все операции. Для восстановления исходной прошивки просто надо указать путь до неё в Firmware Restoration. В некоторых случаях программа может ругаться на некорректный файл. Тогда ему надо дать такое же имя, как и у оригинальной прошивки.

⇡#Прошивка от Олега

Пожалуй, наиболее известная альтернативная прошивка среди русскоязычных пользователей. Возможно, потому что разработкой этого проекта занимается наш соотечественник Олег Вдовикин. Впрочем, в других странах эти прошивки тоже популярны. К тому же проект — один из старейших и наиболее продвинутых в этой области. Интерфейс прошивки похож оформлением на официальную версию ПО для старых моделей роутеров ASUS. Кстати, по некоторым сведениям код Олега используется и в официальных прошивках. Изначально данная прошивка разрабатывалась для серии ASUS WL500g, но в тестовых версиях поддерживаются и свежие модели с индексом RT. Сейчас разработкой и поддержкой проекта занимается группа энтузиастов. Последние сборки доступны здесь.

Среди главных достоинств прошивки от Олега стоит отметить стабильность, функциональность и простоту использования. Именно эти факторы поспособствовали росту популярности этого проекта. Для перечисления всех возможностей прошивки понадобилась бы не одна страница — всё-таки за столько лет разработки было введено огромное количество функций. Ключевые среди них таковы: множество способов подключения к провайдерам, поддержка IPv6/IPTV/мультикаста, встроенный шейпер трафика, возможность создания NAS на базе роутера с помощью подключения съёмного накопителя к USB-порту и с доступом по FTP/CIFS/NFS, расширенное управление правилами доступа и планировщик для них, поддержка USB-модемов 3G/CDMA/WiMax/Dial-Up, работа с SNMP/Radius/LLTD, тонкая настройка беспроводных соединений, а также поддержка принтеров и даже веб-камер. Но это далеко не полный список. Среди полезных особенностей прошивки также стоит отметить наличие доступа по Telnet/SSH и возможность мониторинга загрузки процессора и сетевых соединений в режиме реального времени. Единственный недостаток — слабая расширяемость возможностей прошивки. В общем, это идеальный вариант для тех, кого не устраивает стандартная прошивка роутера ASUS, и тех, кто хочет просто попробовать поставить что-нибудь альтернативное.

⇡#Tomato

Изначально проект делался для роутеров серий Linksys WRT54G и Buffalo WHR-G54, но сейчас есть множество неофициальных сборок для других устройств. В том числе и для ASUS WL520-GU. На мой взгляд, это одна из самых удачных и сбалансированных по всем параметрам альтернативных прошивок. Особенностью Tomato является простой, красивый и удобный веб-интерфейс на базе AJAX.

Возможностей у Tomato чуть меньше, чем у других прошивок, но многое зависит от конкретной сборки. К тому же желающие могут скачать вполне внятный SDK для создания собственных вариантов прошивки. Помимо стандартных для любого роутера функций, есть поддержка VLAN, IGMP, Wake-On-LAN, возможность создания NAS, хороший планировщик задач, довольно лёгкая расширяемость и настраиваемость за счёт пользовательских скриптов, поддержка подключения по Telnet/SSH, работа сразу с несколькими DDNS, а также широкие возможности по настройке беспроводной точки доступа в различных режимах. В различных сборках доступны также предустановленный torrent-клиент, VPN-сервер и многое другое. С другой стороны, имеется возможность лёгкой установки дополнительных пакетов во внутреннюю память или на USB-накопитель.

Однако это далеко не всё. Tomato обладает просто великолепными возможностями по тонкой настройке QoS и шейпинга трафика, пробросу портов и поддержке большого числа одновременных соединений. Имеется также прямо-таки параноидальный набор возможностей по мониторингу всего, что происходит с роутером и передаваемым трафиком, — логи, статистика, графики и так далее. Но самое главное, что всё это «завёрнуто» в очень удобный интерфейс, с которым легко разберётся неподготовленный пользователь. Вердикт прост — если не понравилась прошивка от Олега, то смело пробуйте Tomato.

⇡#OpenWrt

Родоначальник чуть ли не всех проектов по созданию альтернативных прошивок для роутеров. Ныне позиционируется как решение не только для роутеров, но и для других встраиваемых систем, а также и более серьёзных продуктов. Для ASUS WL520-GU подходит одна из стандартных сборок. Любопытно, что релизы OpenWrt называются в честь какого-либо алкогольного коктейля. Набор базовых функций прошивки довольно стандартен, и ничего впечатляющего в нём нет. Однако надо понимать, что OpenWrt является скорее базовой платформой для построения других прошивок. Подразумевается, что пользователь самостоятельно доведёт функциональность до нужного уровня. Во многом этот процесс облегчается наличием удобного пакетного менеджера для установки дополнительных опций.

Тем не менее нельзя сказать, что это плохая или неудобная прошивка. OpenWrt вряд ли подойдёт неопытным пользователям, но для разбирающихся людей это очень гибкий и удобный вариант, который можно легко и точно подогнать под свои нужды. Веб-интерфейс по умолчанию у прошивки крайне прост, незамысловат и не очень удобен. Откровенно говоря, для управления OpenWrt гораздо предпочтительнее использовать Telnet или SSH. Впрочем, существуют и другие реализации веб-морды, более удобные. Точно так же для решения каждой задачи порой есть не один и не два пакета расширений. В целом я бы не рекомендовал на первых порах ставить «голую» прошивку OpenWrt, лучше воспользоваться какой-нибудь более удобной готовой сборкой. Благо проектов на базе этой прошивки очень много. Например, пакет надстроек X-Wrt.

⇡#Gargoyle

Gargoyle как раз является одной из наиболее простых сборок OpenWrt с не самым плохим веб-интерфейсом. Доступны также и отдельные пакеты ipkg. Gargoyle базируется на предыдущей ветке OpenWrt, а значит эта прошивка более стабильна, но чуть менее функциональна. Она сочетает в себе довольно простой интерфейс для конфигурирования роутера обычным пользователем и всю гибкость OpenWrt. В каком-то смысле Gargoyle — более гуманный способ попробовать тот же OpenWrt, так что ради эксперимента можно поставить именно эту прошивку. Она также предоставляет простые средства для мониторинга трафика.

⇡#DD-WRT

Наиболее известный проект по созданию альтернативных прошивок, к тому же поставленный на коммерческие рельсы. Есть платные варианты сборок, которые имеют чуть больше возможностей по сравнению с обычными. DD-WRT поддерживает очень большое количество устройств. Причём для каждого из них существует, как правило, далеко не одна версия прошивки. Особенностью DD-WRT является достаточно простой интерфейс, большое количество функций и возможностей для тонкой настройки роутера простым пользователем. Вместе с тем при доступе через командную строку по Telnet и SSH открывается ещё больше возможностей. Прошивка постоянно улучшается, обновляется и обрастает всё новыми функциями, сохраняя при этом стабильность работы.

Проект имеет неплохую документацию на базе Wiki, а также форум для общения пользователей. С одной стороны, это способствует более детальному описанию всех нюансов работы с прошивкой. С другой стороны, местами в документации творится полная неразбериха и найти ответ на свой вопрос или почитать полезные советы бывает крайне сложно. Для каждой модели роутера из списка поддерживаемых устройств заведена отдельная страничка, а также рекомендуется наиболее подходящая сборка прошивки. Например, для ASUS WL520-GU предлагается довольно старая версия. Можно воспользоваться и ей, но лучше взять более свежий релиз от Brainslayer. Для этого заходим сюда и выбираем самую новую версию (см. дату). Если есть сборка под какую-то конкретную модель роутера, то она помещается в папку с соответствующим именем. В нашем случае нужно перейти в папку Broadcom и скачать два файла: dd-wrt.v24_mini_asus.trx и dd-wrt.v24_usb_generic.bin.

С помощью первого файла производится базовая перепрошивка роутера по инструкции, описанной в начале статьи.

При первичном входе через веб-интерфейс DD-WRT предложит задать собственные логин и пароль для доступа к настройкам роутера. Введите их и нажмите Change password. Затем нажмите на вкладку Administration и введите во всплывающем окне только что выбранные логин с паролем. Перейдите на вкладку Firmware Upgrade, выберите второй файл и нажмите кнопку Upgrade. В течение пяти минут зальётся и установится новая прошивка. После этого вытащите и снова вставьте кабель питания, зайдите в веб-интерфейс (192.168.1.1) и снова задайте логин с паролем. Всё, теперь DD-WRT готов к работе.

Даже в базовых сборках DD-WRT есть ряд интересных функций — всё та же поддержка накопителей/принтеров, VLAN, QoS, IPv6, WOL, DDNS, 802.1x, Radius и даже VoIP. Для каждой из веток проекта существует приличное количество сборок с дополнительными или, наоборот, убранными возможностями вроде torrent-клиента или сервера/клиента VPN. Так что для любого роутера можно выбрать прошивку на свой вкус. Одним из главных достоинств DD-WRT и большинства других *WRT-проектов является расширяемость за счёт встроенного пакетного менеджера или системы Optware. В целом, DD-WRT также можно порекомендовать новичкам для перепрошивки роутера.

⇡#Заключение

В заключение хотелось бы дать несколько маленьких советов. Во-первых, выполняйте все операции по перепрошивке аккуратно и спокойно. Если соблюдать все инструкции, то шанс превратить устройство в «кирпич» минимальны. Спешить не надо, особенно когда происходит процесс заливки образа системы в роутер и непосредственно прошивка. Кстати, если вы уже установили какую-нибудь из перечисленных прошивок, то для перехода на новую или для возврата исходной, как правило, не требуется переводить роутер в режим восстановления. Достаточно воспользоваться веб-интерфейсом и стандартной функцией заливки новой прошивки. Наконец, ещё один нюанс для пользователей Windows 7. В этой ОС по умолчанию клиент Telnet не установлен. Установить его можно так: «Панель управления» → «Программы и компоненты» → «Компоненты Windows» → «Клиент Telnet».

На этом, пожалуй, всё. В статье мы коснулись только некоторых, наиболее популярных прошивок для роутеров. А ведь есть ещё и различные возможности аппаратной модификации. Но для человека, который никогда в жизни не держал в руках паяльника, это будет слишком сложно. Так что поэкспериментируйте с альтернативными прошивками. Это не очень сложно и чаще всего полезно. Удачи!

Как-то давно собирался сделать девайс для удалённого воспроизведения сетевого mp3(/ogg/aac+) потока. В частности, для использования в составе пиратского FM-передатчика, но и необязательно только для него.

Пошукав инторнеты, наткнулся на уже готовый проект http://mightyohm.com/blog/2008/10/building-a-wifi-radio-part-3-hacking-the-asus-wl-520gu/
Там в общем-то всё детально расписано, поэтому его я использовал как основу для реализации своей задачи. Но, инфа, которая там представлена, либо недописана либо протухла на текущий момент. Поэтому пришлось во всё вникать и, как обычно, действовать экспериментальным путём.

Сам девайс уже давно снят с производства, и в продаже вы его не найдёте. В поиск — либо всячески молотки.ру-авиты, либо, как в моём случае — ebay.
Я купил 2 шт. К слову, по архитектуре он довольно тормозной и древний, поэтому лучше поискать более мощный подходящий роутер (в этом можно убедиться, прочитав пост до конца. Но всё зависит от поставленных задач). Чтобы крутить mp3 поток, вполне достаточно подобного девайса. Как вариант замены, предлагают Asus RT-N10U, который я тоже заказал. Как приедет — буду тестировать его. По железу он обещает быть лучше, чем 520й. Главное, что там 8 Мб флеша, вместо 4х, что важно в нашем случае. Оперативки также в 2 раза больше (32 против 16 Мб). Более быстрый USB (2.0). Более свежая прошивка (ядро).

В принципе, для начала, 520й — весьма неплохой девайс, и довольно распространённый.

Тут будет пошагово описан процесс установки.

Для начала, прочитайте статьи на mightyohm по ссылке, приведённой выше. Прочитав, понимаем, что для успешного хакинга роутера потребуется паяльник и кабель FTDI-USB (или FTDI-RS232). В общем, конвертер из лог. уровней COM-порта в ТТЛ-уровни 0+3В. В принципе, прошить роутер можно без припаивания консольного кабеля. Но как поменять рутовый пароль после прошивки, если выпилена веб-морда, я не понял. В любом случае, для дебагинга, консольный порт всё равно лучше иметь.
Паяльник, разумеется, у меня уже был, а кабель USB-FTDI приобрёл также на ebay. Желающие могут спаять его самостоятельно на мелкосхеме MAX232 или аналогичных, схем в сети навалом.
Ну и для прошивки потребуется комп с Linux. Я использовал CentOS 6.2 i386 с последними обновлениями.
Также стоит сразу определиться с устройствами, которые вы хотите подключить. Поскольку порт всего один, потребуется USB-хаб. Этот вариант я еще не прорабатывал.
В качестве звуковой карты я взял Creative X-Fi Go! http://www.ixbt.com/multimedia/creative-xfi-go.shtml Этот свисток примечателен тем, что содержит в себе флешку на 1 Гб. Что нам очень и очень потребуется, ибо встроенной флеш-памяти в роутере для всего не хватит.

Вскрываем роутер (винты находятся под резиновыми ножками в том числе).
По-хорошему, надо напаять на плату "гребёнку" из 4х контактов. Такой у меня под рукой не оказалось, поэтому просто напаял сверху отрезки провода. Припой тугоплавкий (бессвинцовый, судя по всему), поэтому паяльник надо разогревать на 400+ градусов (У меня паяльная станция).
Подключаем кабель FTDI. Распиновку ищите в даташитах, распиновка контактов на роутере — (сверху вниз на фото) — GND, TX, RX, 3.3V. Соответственно, надо соединить землю, и RX-TX — TX-RX кабеля и роутера. 4й контакт 3.3 В подсоединять не надо.

Запускаем этот ваш любимый терминальный клиент. Я использовал PuTTY. Скорость порта нужно выставить 115200, иначе будут кракозябры вместо текста.
Если руки не слишком кривые, и все подключено верно, вы увидите окно терминала и процесс загрузки. Итак, первый этап, можно сказать, успешно пройден. Роутер не убит, COM-порт тожё, всё работает. Если загрузка всё же не идет — проверяйте настройки терминальника, либо корректность подключения кабеля. В принципе, если не так подсоедините RX-TX, ничего страшного не произойдет.

Далее, собственно про OpenWRT. Идём и вкуриваем сюда: http://wiki.openwrt.org/toh/asus/wl520gu
К сожалению, из-за древней архитектуры чипа, как и писал выше, в роутер можно прошить только ядро 2.4. Со всеми вытекающими отсюда последствиями, таковыми как трудность или невозможность компиляции современных версий пакетов под данное ядро, и тд и тп.
Прошить 2.6 вроде бы можно, но, читайте по ссылке — не будет работать WiFi, а также глюки и нестабильная работа вам обеспечены. В общем, для нормальной работы нужно 2.4 ядро.
Теперь приступим к подготовке файла прошивки.
Есть несколько способов: скачать уже готовый файл, напиханный какими-то базовыми пакетами, скомпилировать из исходников самостоятельно, либо использовать Image Generator. http://wiki.openwrt.org/doc/howto/obtain.firmware.generate
Я решил использовать последний способ, как наиболее рациональный. Убивать время на компиляцию с нуля как-то не хочется, а скачав готовый образ, потом придётся вычищать его от ненужных пакетов.

Идём по ссылке (актуально на 06.2012) http://downloads.openwrt.org/kamikaze/8.09.2/brcm-2.4/
И качаем тот самый Image Builder.
Распаковываем скачанный .tar.gz куда-либо, и теперь начинаем кастомизировать.

В принципе, по ссылке http://wiki.openwrt.org/doc/howto/obtain.firmware.generate всё достаточно хорошо описано, но чтобы не грузить вас деталями, сразу напишу, что мы меняем/добавляем.

В распакованном каталоге видим files/. Это та папка, поместив файлы в которую, мы увидим их в файловой системе на устройстве, после прошивки. Если существующие файлы уже есть в образе, они будут перезаписаны.
Таким образом, можно подменить заранее любые конфиг — и не только — файлы, что нам нужны.
Универсального совета тут не будет. Принцип таков — либо читайте доку, и подсовывайте заранее те файлы, что считаете нужными, либо берите уже настроенные конфиги из роутера, и копируйте их через scp или ещё как в эту папку. Это нужно, чтобы не похерить уже созданные файлы после перепрошивки, либо для тиражирования кастомной прошивки)

Теперь про кастомизацию пакетов.
Топаем в OpenWrt-ImageBuilder-brcm-2.4-for-Linux-i686/target/linux/brcm-2.4 и видим папку profiles. Либо копируем её, либо удаляем всё оттуда. Можно создать полностью свой файл, я использовал USBGeneric.mk как наиболее близкий. Приведу на всякий случай его вывод:

[root@localhost profiles]# cat USBGeneric.mk
#
# Copyright (C) 2008 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#

define Profile/USBGeneric
NAME:=Generic USB
PACKAGES:=kmod-brcm-wl kmod-usb-core kmod-usb-ohci kmod-usb2 wlc nas kmod-wlcompat kmod-usb-storage kmod-fs-ext3 kmod-scsi-generic kmod-nls-cp1251 kmod-nls-utf8 kmod-usb-audio kmod-sound-core kmod-alsa ntpclient
endef

define Profile/USBGeneric/Description
Package set with for Broadcom routers with USB/USB2 (OHCI/EHCI) support.
Includes the WRTSL54GS, WL-520gU, WL-500gP v2, any other BCM5354 routers
with USB.
endef
$(eval $(call Profile,USBGeneric))

Собственно говоря, в ту строку PACKAGES: вписываем имена всех тех пакетов, что нам нужны после установки. Отмечу ещё раз, что все пихать сюда не стоит — не хватит места на встроенной флеш-памяти. Однако модули ядра придется ставить на встроенную память. С USB флешки могут и не загрузиться. В общем, тут только эксперимент. Названия (и собственно список) пакетов тут: OpenWrt-ImageBuilder-brcm-2.4-for-Linux-i686/packages

На этом кастомизация прошивки, в принципе завершена. Тут всё зависит от того, что вам нужно получить. Читайте документацию 🙂

Идём в "корень" и запускаем:
[root@localhost OpenWrt-ImageBuilder-brcm-2.4-for-Linux-i686]# make image PROFILE=USBGeneric FILES=files/

Перед этим желательно очистить папку OpenWrt-ImageBuilder-brcm-2.4-for-Linux-i686/bin

PROFILE=USBGeneric как раз указывает на файл USBGeneric.mk

Дальше наблюдаем занимательный процесс сборки, тут всё зависит от скорости вашей Linux-машины.

Переходим в OpenWrt-ImageBuilder-brcm-2.4-for-Linux-i686/bin и видим готовые файлы прошивок.

Включаем наш роутер, удёрживая кнопку Reset. Дожидаемся ровного мигания индикатора Power, при этом в консоле можно наблюдать следующее:

Null Rescue Flag.
Hello!! Enter Rescue Mode: (by Force)

Reading :: TFTP Server.
Failed.: Timeout occurred
Reading :: TFTP Server.
Failed.: Timeout occurred
Reading :: TFTP Server.
Failed.: Timeout occurred
Reading :: TFTP Server.

Всё ок. Возвращаемся к Linux машине, и меняем сетевые настройки так, чтобы мы оказались в сети 192.168.1.0/24 (адрес 1.1 занят роутером, так что возьмите, например 1.10)

Находясь в bin/, вбиваем команду:

[root@localhost bin]# atftp —trace —option "timeout 1" —option "mode octet" —put —local-file

И в консоли видим процесс прошивки:
TFTP_BLKLEN!!
Done. 2101248 bytes read
Download of 0x201000 bytes completed
Write kernel and filesystem binary to FLASH (0xbfc20000)
Programming.

Нужно дождаться надписи окончания прошивки:
copysize=2101248, amtcopy=2101248
done. 2101248 bytes written

Всё, теперь перезагружаем роутер и пялимся в консоль.

Первый раз загрузка идёт долго, т.к. идёт первоначальная инициализация конфигов и форматирование встроенного flash-хранилища.

Вот теперь вроде бы готово:
jffs2_scan_eraseblock(): End of filesystem marker found at 0x0
jffs2_build_filesystem(): unlocking the mtd device. done.
jffs2_build_filesystem(): erasing all blocks after the end marker. done.
mini_fo: using base directory: /
mini_fo: using storage directory: /jffs

Жмём Enter и видим приглашение консоли:

BusyBox v1.11.2 (2009-12-02 06:19:32 UTC) built-in shell (ash)
Enter ‘help’ for a list of built-in commands.

_______ ________ __
| |.——.——.——.| | | |.—-.| |_
| — || _ | -__| || | | || _|| _|
|_______|| __|_____|__|__||________||__| |____|
|__| W I R E L E S S F R E E D O M
KAMIKAZE (8.09.2, r18961) ————————-
* 10 oz Vodka Shake well with ice and strain
* 10 oz Triple sec mixture into 10 shot glasses.
* 10 oz lime juice Salute!
—————————————————
root@OpenWrt:/#

Первым делом, наверное, стоит поменять пароль рута 🙂

Ну а дальше начинаем подготовку flash-накопителя 1 Гб, который содержится в нашей звуковухе.

Сначала убеждаемся, что сеть работает:

root@OpenWrt:/# ifconfig
br-lan Link encap:Ethernet HWaddr 00:1D:60:19:C6:43
inet addr:192.168.10.220 Bcast:192.168.10.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:850 errors:0 dropped:0 overruns:0 frame:0
TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:59784 (58.3 KiB) TX bytes:2018 (1.9 KiB)

eth0 Link encap:Ethernet HWaddr 00:1D:60:19:C6:43
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:854 errors:0 dropped:0 overruns:0 frame:0
TX packets:69 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:78766 (76.9 KiB) TX bytes:26316 (25.6 KiB)
Interrupt:4

eth0.0 Link encap:Ethernet HWaddr 00:1D:60:19:C6:43
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:850 errors:0 dropped:0 overruns:0 frame:0
TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:63184 (61.7 KiB) TX bytes:2058 (2.0 KiB)

eth0.1 Link encap:Ethernet HWaddr 00:1D:60:19:C6:43
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:59 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:23954 (23.3 KiB)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

Если нет, идем и копаем /etc/config/network либо /etc/config/wireless в случае коннекта по WiFi. К счастью, наш броадкомовский чип умеет поднимать WLAN в режиме моста, что весьма неплохо — получаем IP-адрес также, как в случае проводного подключения, никакого NAT не нужно.

ОК, сеть заработала, значит можно что-нибудь доставить:

Ставим утилиты, необходимые для работы с накопителями:
root@OpenWrt:

# opkg install fdisk e2fsprogs

Стираем всё, что есть на флешке:
root@OpenWrt:

# dd if=/dev/zero of=/dev/scsi/host0/bus0/target0/lun0/disc bs=1K count=1

Disk /dev/scsi/host0/bus0/target0/lun0/disc: 1008 MB, 1008730112 bytes
32 heads, 61 sectors/track, 1009 cylinders
Units = cylinders of 1952 * 512 = 999424 bytes
Disk identifier: 0x00000000

Disk /dev/scsi/host0/bus0/target0/lun0/disc doesn’t contain a valid partition table

Оок! Видно флешку.

Запускаем fdisk и создаем primary partition
root@OpenWrt:

# fdisk -u /dev/scsi/host0/bus0/target0/lun0/disc

Можно разбить 1 Гб на отдельные разделы, это по вашему же желанию.

Создаём файловую систему:
root@OpenWrt:

Тут будут монтироваться наши разделы (вообще шаг можно пропустить)
root@OpenWrt:

# mkdir -p /mnt/usbdisk0
root@OpenWrt:

# mkdir -p /mnt/usbdisk1

И добавляем новую точку монтирования:
root@OpenWrt:

# uci add fstab mount
root@OpenWrt:

# uci set fstab.@mount[-1].device=/dev/sda1
root@OpenWrt:

# uci set fstab.@mount[-1].options=rw,sync
root@OpenWrt:

# uci set fstab.@mount[-1].enabled_fsck=0
root@OpenWrt:

# uci set fstab.@mount[-1].enabled=1
root@OpenWrt:

# uci set fstab.@mount[-1].target=/mnt/share
root@OpenWrt:

# uci commit fstab
root@OpenWrt:

Все это хранится в /etc/config/fstab
Так что если вы заранее его подсунули при компиляции образа, нужно только отредактировать файл, задействовав шару.

И убеждаемся, что всё примонтировалось:

root@OpenWrt:/# df -h
Filesystem Size Used Available Use% Mounted on
rootfs 1.4M 1.4M 0 100% /
/dev/root 1.4M 1.4M 0 100% /rom
tmpfs 7.0M 696.0k 6.3M 10% /tmp
mini_fo:/tmp/root 1.4M 1.4M 0 100% /tmp/root
/dev/mtdblock/4 1.9M 780.0k 1.1M 41% /jffs
mini_fo:/jffs 1.4M 1.4M 0 100% /
/dev/scsi/host0/bus0/target0/lun0/part1
118.2M 5.5M 106.6M 5% /mnt/usbdisk0
/dev/scsi/host0/bus0/target0/lun0/part2
826.7M 16.9M 767.8M 2% /mnt/usbdisk1

Теперь пора отредактировать opkg.conf, чтобы получить возможность ставить пакеты на нашу флешку:

Дописываем строку:
dest usb0 /mnt/usbdisk0

Двигаем подальше fstab — у меня были проблемы с тем, что разделы на флешки не монтировались при перезагрузке.
root@OpenWrt:

# rm -f /etc/rc.d/S20fstab
root@OpenWrt:

# ln -s /etc/init.d/fstab /etc/rc.d/S42fstab

Заодно, уберем файл, отвечающий за обнаружение аудиокарт — он нам будет мешать:
root@OpenWrt:

— тут можно перезагрузить роутер —

После перезагрузки убеждаемся, что всё подмонтировалось, и сеть работает.

Для воспроизведения музыки, нам потребуются библиотеки alsa и демоны mpc + mpd.

mpd пришлось качать патченный, так как родной не воспринимал http ссылки. вот вам и очередной минус ядра 2.4. в 2.6 это уже все поправлено.

Создадим папку, куда будем качать дистрибутивы (хотя , можно хоть в /tmp)

Качаем и ставим недостающие пакеты, указав в качестве назначения внешний раздел на флешке:
root@OpenWrt:

# opkg update && opkg -dest usb0 install mpd_0.14.2-1_mipsel.ipk mpc alsa-lib alsa-utils faad2

Поскольку поставили мы все в альтернативный раздел, а не в рутовый, придется создать некоторое количетво символических ссылок:
root@OpenWrt:

# ln -s /mnt/usbdisk0/usr/share/alsa/ /usr/share/ && ln -s /mnt/usbdisk0/usr/share/terminfo/ /usr/share/
root@OpenWrt:

# ln -s /mnt/usbdisk0/usr/bin/mpc /usr/bin/mpc && ln -s /mnt/usbdisk0/usr/bin/mpd /usr/bin/mpd

Создаем нужные для работы mpd подкаталоги и бекапим настройки:

/.mpd/playlists && ln -s /mnt/usbdisk0/etc/mpd.conf /etc/mpd.conf.ex && ln -s /mnt/usbdisk0/etc/init.d/mpd /etc/init.d/mpd.ex

— тут можно перезагрузить роутер —

root@OpenWrt:/# mpd
No "audio_output" defined in config file
Attempt to detect audio output device
Attempting to detect a alsa audio device
Successfully detected a alsa audio device
root@OpenWrt:/#

Если матерится на ошибки в библиотеках — попробуйте ещё раз ребутнуть роутер.

Ну а дальше просто добавляете ссылку на интернет-станцию, и запускаете воспроизведение:

Несколько замечаний: поскольку карта полу-софтовая, то на воспроизведение звука тратится ресурс CPU роутера. Для качественного воспроизведения лучше поискать карту получше.
Поток лучше подавать в 48 кГц, а не 44.1. Так звучание на этой звуковой карте получается более насыщенным.

Во время воспроизведения можно заметить небольшие попердывания/искажения звука. Тут либо проц захлебывается, либо не хватает пропускной способности USB шины.
ААС+ у меня не получилось воспроизвести, OGG не проверял. В любом случае, надо мигрировать на ядро 2.6 и пробовать более свежую версию mpd.

Можно загрузить .m3u плейлист, насовав туда нужных станций.
Управление mpd возможно как с ПК, так и с мобильных устройств, что удобно. Под Android мне понравился BitMpc.

Не удалось поставить mpd в автозапуск устройства — чего-то не хватает.
Также, в BitMPC и аналогичных программах, не отображается исполнитель/название песни.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *