новости
статьи
.hardware

использование операционной системы Linux в активных сетевых устройствах SOHO-сегмента

введение

В последнее время широкое распространение получили активные сетевые устройства, совмещающие в себе сразу несколько функций. Как пример можно привести маршрутизатор Linksys WAG200G. В этом устройстве совмещены ADSL-модем, точка доступа Wi-Fi и коммутатор на четыре порта 10/100 Mbit. В качестве операционной системы используется Linux с ядром ветки 2.4 и проприетарными драйверами для Wi-Fi и ADSL-частей.

Возникает резонный вопрос: возможно ли использование Linux и в других подобных устройствах, несмотря на то, что производитель такую возможность не предусмотрел?

аппаратная часть

Для того, чтобы выяснить, можно ли запустить ядро Linux на устройстве, необходимо детально изучить объект, над которым будут проводиться эксперименты. В моем случае таким объектом оказалась Wi-Fi точка доступа D-Link DWL-2100AP. Во время обновления прошивки пропало питание, и устройство перестало выполнять свои функции. Доступ к консоли у устройства не предусмотрен, а сетевое соединение установить было невозможно. В первую очередь была снята крышка и изучена находившаяся внутри корпуса плата. Недолгий поиск в Интернет позволил обнаружить несколько форумов, содержащих полезную информацию, в результате изучения которых были установлены следующие технические характеристики устройства:

- платформа - ar531x (Atheros);

- RAM - 16 Mb;

- Flash ROM - 4 Mb;

- тип процессора - MIPS.

На странице проекта OpenWRT была найдена информация по портам RS-232 и JTAG, распайка под которые есть на плате устройства. RS-232 используется как системная консоль, JTAG – это технологический разъем, используемый для перепрошивки памяти устройства.

Единственный способ подключиться к устройству для дальнейших экспериментов - использование RS-232 порта. Однако производитель не пожелал предоставить кому-то возможность такого доступа к устройству, и порт оказался не разведен до конца. Доработка свелась к подключению схемы преобразователя на микросхеме MAX232 для получения полнофункционального RS-232. Для этой цели можно использовать схему из технического описания микросхемы.

Далее был запущен minicom и настроены следующие параметры обмена: 9600 8N1. Затем были соединены кабелем порты устройства и компьютера и подключено питание к точке доступа. При правильном выполнении описанных выше процедур на экране должны появиться строчки, выдаваемые загрузчиком.

В случае описываемого устройства текст был следующим:

ar531x rev 0x00005850 firmware startup...
SDRAM TEST...PASSED

WAP-G02A Boot Procedure V1.0 ---------------------------------------------------------
Start ..Boot.B12..
Atheros AR5001AP default version 3.0.0.43A

0

auto-booting... Attaching to TFFS... done.


Процесс загрузки прерывается нажатием Esc, после чего можно изучить возможности, которые предоставляет загрузчик. Вот какие параметры установлены в системе по умолчанию:

[Boot]: p
boot device : tffs:
unit number : 0
processor number : 0
file name : /fl/APIMG1
inet on ethernet (e) : 192.168.1.50:0xffffff00
flags (f) : 0x0
other (o) : ae


Итак, теперь известно, где лежит образ, который содержит ПО, необходимое для работы точки. Внимательное прочтение помощи по командам загрузчика показало, что он умеет загружаться по сети, используя TFTP.

После подготовки TFTP-сервера и выкладывания на него ядра, взятого на OpenWRT, параметры загрузки необходимо изменить так, чтобы устройство начало загружаться по сети. В рассматриваемом случае изменения имели следующий вид:

$ae(1,0)tftpserver:vmlinux h=172.16.255.1 e=172.16.255.253:0xffffff00 f=0x80


Попытки устройства загрузиться по сети выглядят следующим образом:

Attached TCP/IP interface to ae1.
Attaching network interface lo0... done.
Loading...


Далее идет стандартный вывод загружающегося ядра Linux, в конце которого оно впадает в панику, не найдя корневую файловую систему. Это совершенно естественно, поскольку на TFTP находится только ядро и образа файловой системы там нет. Данный этап имеет своей целью выяснить возможность ядра без проблем загрузиться на предложенном ему оборудовании.

Проделанные с устройством эксперименты продемонстрировали, что:

- с устройством можно взаимодействовать посредством интерфейса RS-232;

- устройство может загружаться «извне» - по сети;

- платформа устройства позволяет использовать Linux после некоторых доработок.


программная часть

Можно выделить четыре части ПО, которые необходимы для работы устройства:

- загрузчик;

- ядро операционной системы;

- драйверы аппаратной части устройства;

- системное ПО.

На начальном этапе был использован загрузчик VxWorks, встроенный в систему. Для остальных частей возможна загрузка по сети. Необходимо создать образ RAM-диска, на котором будет расположено системное ПО. Сделать это можно, скачав исходный код следующим образом:

1. Создать в домашнем каталоге подкаталог (например – dwl-2100ap) и перейти в него.

2. Ввести команды:

svn co https://svn.openwrt.org/openwrt/trunk/
svn co https:// svn.openwrt.org/openwrt/packages ./trunk/feeds/packages/
cd ./trunk/
make package/symlinks
make menuconfig


По окончании конфигурирования будущей системы (при этом необходимо не забыть «встроить» образ файловой системы в ядро) выполняется команда

make world

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

заключение

Приведенные инструкции следует рассматривать не как прямое руководство к действию, а только как указание направления, в котором можно двигаться. Автор не несет ответственности за возможные повреждения устройств, над которыми будут проводиться эксперименты.

Описанная схема исследования работает для всех устройств, но поддержка конкретной модели проектом OpenWRT – вопрос личной удачи
экспериментатора.

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



Сергей Довнар, Team Leader группы Messaging solutions, СП ООО "МЦС", sergey.dovnar@gmail.com
обсудить статью
© сетевые решения
.
.