Автор Kit
Собираем бесшумный и экономичный сервер для трансляции ads-b.
Средства необходимые для достижения нашей цели:
Synology USB Station 2 - 1шт. (см. фото)
Приемник microADSB - (c) Miro - 1шт.
Все переключатели опустить на off и больше их не трогать!
USB флэшка любая от 500 мб и выше. - 1шт.
Руки - 2шт :)
1. Для начала нужно определится как будущий сервер будет подключаться к домашней сети.
Если вы будете использовать Ethernet lan - можете смело пропустить следующий абзац.
Дело в том, что производители "позаботились" о нас и установили в коробочке только два usb порта. Один порт у нас займет приемник, второй флэшка. А вы например, хотите соединить коробочку с сеткой с помощью usb wi-fi адаптера. (Список поддерживаемых адаптеров см. на сайте производителя.) Что делать? Можно конечно обтыкаться usb хабами, но это некрасиво и ненадежно. Поэтому я сделал небольшой мод.
Итак вскрываем коробку. И видим там чудесную микросхему Genesys GL850G. В которой есть аж четыре порта usb. Два выведены на заднюю панель. Один распаян внутри на странный порт мини usb без питания. А вот один висит совсем неподключенный. Его мы и заберем себе под флэшку.
Смотрим рисунок:
Припаиваем гнездо на проводках и приклеиваем его на дно коробочки. Вставляем флэшку.
Закрываем коробочку. Включаем.
Надеюсь к этому времени вы уже разобрались с веб мордой и настроили сеть.
2. Находим во внешних устройствах нашу "встроенную" флэшку и форматируем ее в ext4:
3. Следующий этап - перешивка нашей коробочки альтернативной прошивкой от nico-tlse.
Огромное ему спасибо кстати за компиляцию модуля cdc-acm.
Идем по данной ссылке http://synology.itolosa.com/ качаем Unofficial DSM 3.1-1742 FW for US2 (84 Мб).
Заходим в веб морде Панель управления - Обновление DSM
И жмем Обновление DSM вручную
Выбираем скачанный нами файл DSM_USB_Station_2_31_1742_iTLS.pat
Сидим ждем, не паникуем. Ничего не трогаем. Пока снова не появится окно входа в систему.
4. Соединяемся с коробочкой по SSH.
Входим. Идем в пункт Панель управления - пользователь и устанавливаем пароль для пользователя admin. Далее идем в Панель управления -терминал. Ставим галку Включить службу ssh. Устанавливаем время.
Теперь нам нужна терминальная программа. Я советую Xshell 4. Скачать ее можно тут: http://www.netsarang.com/download/software.html
Обратите внимание - логин у вас будет root, а пароль тот, что вы указали для пользователя admin.
Дальше все операции производим в окне терминала. К этому времени на коробке уже должен быть интернет. Проверить это просто - даем в командной строке ping www.ya.ru.
Пингуется? Значит интернет есть :) Прервать - CTRL+C.
Команды вводим аккуратно. Смотрим на ошибки. Не паникуем.
5. Устанавливаем IPKG.
Команды набираемые Вами выделены жирным шрифтом.
Переходим в каталог volume1:
USBStation> cd/volume1 USBStation> ls -l dr-xr-xr-x 4 root root 1024 Jan 12 02:45 @misc drwxr-xr-x 4 root root 52 Jan 12 00:56 @resources -r-xr-xr-x 1 root root 78 Jan 12 04:05 install-ipkg lrwxrwxrwx 1 root root 13 Jan 12 00:48 readme.txt -> ../readme.txt USBStation>
Видим там скрипт install-ipkg
Запускаем его:
USBStation> ./install-ipkg Optware Bootstrap for syno-mvkw. Extracting archive... please wait bootstrap/ bootstrap/bootstrap.sh bootstrap/ipkg-opt.ipk bootstrap/ipkg.sh bootstrap/optware-bootstrap.ipk bootstrap/wget.ipk 1232+1 records in 1232+1 records out Creating temporary ipkg repository... Installing optware-bootstrap package... Unpacking optware-bootstrap.ipk...Done. Configuring optware-bootstrap.ipk...Done. Installing ipkg... Unpacking ipkg-opt.ipk...Done. Configuring ipkg-opt.ipk...WARNING: can't open config file: /usr/syno/ssl/openssl.cnf Done. Removing temporary ipkg repository... Installing wget... Installing wget (1.12-2) to root... Configuring wget Successfully terminated. Creating /opt/etc/ipkg/cross-feed.conf... Setup complete. BusyBox v1.16.1 (2010-12-24 03:09:45 CST) built-in shell (ash) Enter 'help' for a list of built-in commands. USBStation>
IPKG встал.
Смотрим содержимое папки volume1, оно стало таким:
USBStation> cd /volume1 USBStation> ls -l dr-xr-xr-x 4 root root 1024 Jan 12 02:45 @misc drwxr-xr-x 9 root root 1024 Jan 16 13:00 @optware drwxr-xr-x 4 root root 52 Jan 12 00:56 @resources -r-xr-xr-x 1 root root 78 Jan 12 04:05 install-ipkg lrwxrwxrwx 1 root root 13 Jan 12 00:48 readme.txt -> ../readme.txt USBStation>
Отключаем IPKG:
USBStation>cd /etc USBStation>mv rc.local rc.local-save
Перезагружаем коробку:
USBStation>reboot
После перезагрузки снова коннектимся к коробке.
6. Скопируем ipkg на нашу встроенную флэшку:
USBStation> cp -r /volume1/@optware /volumeUSB1/usbshare
Создаем ссылку со старой папки в новую:
USBStation>cd /volume1 USBStation>rm -r @optware USBStation>ln -s /volumeUSB1/usbshare/@optware
Смотрим:
USBStation> ls -l lrwxrwxrwx 1 root root 20 Jan 16 13:59 000000000000060| -> /volumeUSB1/usbshare lrwxrwxrwx 1 root root 20 Jan 16 13:59 000000000000061| -> /volumeUSB2/usbshare dr-xr-xr-x 4 root root 1024 Jan 12 02:45 @misc lrwxrwxrwx 1 root root 29 Jan 16 14:02 @optware -> /volumeUSB1/usbshare/@optware drwxr-xr-x 4 root root 52 Jan 12 00:56 @resources -r-xr-xr-x 1 root root 78 Jan 12 04:05 install-ipkg lrwxrwxrwx 1 root root 13 Jan 12 00:48 readme.txt -> ../readme.txt USBStation>
Воскрешаем IPKG и перезагружаемся:
USBStation>cd /etc USBStation>mv rc.local-save rc.local USBStation>reboot
7. Обновляем ipkg:
USBStation>ipkg update Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/Pac... Inflating http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/Pac... Updated list of available packages in /opt/lib/ipkg/lists/cross Successfully terminated. USBStation>
7.1 Устанавливаем текстовый редактор nano – пригодится:
USBStation>ipkg install nano
8. Отредактируем файл rc.local (Просто добавим sleep 2):
USBStation>nano /etc/rc.local #!/bin/sh sleep 2 # Optware setup [ -x /etc/rc.optware ] && /etc/rc.optware start exit 0
Далее: Сохранение файла - CTRL+O. Выход: CTRL+X.
9. Следующий шаг устанавливаем php. Он нам нужен для трансляции на fr24.
USBStation>ipkg install php Installing php (5.2.14-1) to root... Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/php... Installing bzip2 (1.0.6-1) to root... Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/bzi... Installing openssl (0.9.8p-1) to root... Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/ope... Installing libxml2 (2.7.7-2) to root... Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/lib... Installing libxslt (1.1.26-1) to root... Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/lib... Installing gdbm (1.8.3-2) to root... Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/gdb... Installing libdb (4.2.52-3) to root... Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/lib... Installing pcre (8.10-1) to root... Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/pcr... Installing cyrus-sasl-libs (2.1.23-2) to root... Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/cyr... Installing psmisc (22.13-1) to root... Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/psm... Installing openldap-libs (2.3.43-2) to root... Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/ope... Configuring bzip2 update-alternatives: Linking //opt/bin/bzip2 to /opt/bin/bzip2-bzip2 Configuring cyrus-sasl-libs Configuring gdbm Configuring libdb Configuring libxml2 Configuring libxslt Configuring openldap-libs Configuring openssl Configuring pcre Configuring php Configuring psmisc update-alternatives: Linking //opt/bin/killall to /opt/bin/psmisc-killall update-alternatives: Linking //opt/bin/pidof to /opt/bin/psmisc-killall Successfully terminated.
Смотрим чтобы небыло ошибок. Проверяем php.
USBStation>which php /opt/bin/php USBStation>
Обратите внимание на путь - он должен быть таким: /opt/bin/php
10. Далее, с помощью вебморды создаем папку adsb. См. рисунок:
И в нее ложим папочку adsbox. В ней находится программа для декодирования, которую вы должны собрать из исходников с помощью кросскомпилятора на компьютере под линуксом. Страшно? Расслабтесь :) - я ее уже собрал (см. архив).
В папке fr24 должны быть файлы sbs1station.php, uploader.php, config.ini из набора присланного flightradar24.com.
А также ложим файл cdc-acm.ko (см. архив)
Переходим в консоль ssh.
Скопируем драйвер виртуального порта
USBStation> cp /volumeUSB1/usbshare/cdc-acm.ko /volume1/@misc/drivers/usb
Создадим файл порта:
USBStation> mknod /dev/ttyACM0 c 166 0
Создадим файл автозагрузки драйвера:
USBStation> nano /opt/etc/init.d/S01modul
Вводим текст:
#!/bin/sh insmod /volumeUSB1/usbshare/cdc-acm.ko
Сохраняем и выходим из nano: Сохранение файла - CTRL+O, Выход - CTRL+X
Делаем файл исполняемым:
USBStation> chmod +x /opt/etc/init.d/S01modul
11. Создадим файл автозагрузки adsbox:
USBStation> nano /opt/etc/init.d/S02adsbox
Вбиваем текст:
#!/bin/sh /volumeUSB1/usbshare/adsb/adsbox/adsbox -d -s /dev/ttyACM0 -l 60.0 -g 28.0
Обратите внимание вместо -l 60.0 -g 28.0 вы должны указать свою долготу и широту.
Сохранение файла - CTRL+O. Выход - CTRL+X.
Делаем файл исполняемым:
USBStation>chmod +x /opt/etc/init.d/S02adsbox
12. Вставляем приемник в нижний usb порт и перезагружаем коробку.
USBStation>reboot
Снова коннектимся к коробке и проверяем что у нас вышло:
USBStation> lsmod
Смотрим ответ системы, если видим такую строчку:
Module Size Used by Tainted: P appletalk 24230 18 cdc_acm 12691 2 ---- !!!!!!!!!!!!!!!!
Значит модуль cdc-acm.ko подгрузился.
Далее даем команду ps
USBStation> ps
И ищем в процессах такую строчку:
2059 root 51652 S /volumeUSB1/usbshare/adsb/adsbox/adsbox -d -s /dev/ttyACM0 -l 60.0 -g 28.0
Если есть, то программа adsbox стартанула.
Если все нормально. То можно смело коннектится к коробке PlanePlotterr'om или чем предпочитаете, на порт 30003.
13. Если все работает, осталось настроить трансляцию на FR24.
Создадим следующий скрипт:
USBStation> nano /volumeUSB1/usbshare/adsb/fr24/fr24.sh
Вбиваем содержание:
#!/bin/sh cd /volumeUSB1/usbshare/adsb/fr24 /opt/bin/php /volumeUSB1/usbshare/adsb/fr24/sbs1station.php & /opt/bin/php /volumeUSB1/usbshare/adsb/fr24/uploader.php
Сохранение файла - CTRL+O. Выход - CTRL+X.
Делаем скрипт исполняемым:
USBStation> chmod +x /volumeUSB1/usbshare/adsb/fr24/fr24.sh
Делаем файл автозагрузки скриптов:
USBStation> nano /opt/etc/init.d/S03fr
следующего содержания:
#!/bin/sh /volumeUSB1/usbshare/adsb/fr24/fr24.sh > /dev/null 2>&1 &
Сохранение файла - CTRL+O, Выход - CTRL+X.
Делаем скрипт исполняемым:
USBStation> chmod +x /opt/etc/init.d/S03fr
Перезагружаемся:
USBStation>reboot
Смотрим процессы:
USBStation> ps
Ищем там:
2105 root 2924 S /bin/sh /volumeUSB1/usbshare/adsb/fr24/fr24.sh 2136 root 13888 S /opt/bin/php /volumeUSB1/usbshare/adsb/fr24/sbs1station.php 2137 root 13684 S /opt/bin/php /volumeUSB1/usbshare/adsb/fr24/uploader.php
Если есть, то скрипты загрузились.
Идем на http://radar.piopawlu.net/radars и смотрим статус своего радара.
Если данные идут - он зелененький.
На этом вроде все!
Отдельное спасибо Роману за программу ADSBox. И помощь во всем этом безобразии :)
http://diseqc.org.ua/projects/hard/adsb/index.html
Используемые ресурсы:
http://diseqc.org.ua/projects/hard/adsb/index.html
http://syno.haeflinger.com/index.php/USBStation2#Firmware_Alternatif_.26_Installation_IPKG
24.06.2011
Andrey Kumernikov