Имя: ПЛК Основан: сентябрь 2009г Версия: 0.1.0 Статус: GPL Участники: Попков Алексей Описание: Проект посвящён созданию: среды исполнения ПЛК, прошивки ПЛК и аппаратных конфигураций специализированных PLC. |
Форм-фактор модема Airplus MCD-650 USB флеш-накопитель. Модем базируется на процессоре Qualcomm MSM6500. Имеет одну встроенную 4-коленную телескопическую антенну с поворотным карданом. Отсутствует разъем для подключения внешней антенны. Красивый и многофункциональный интерфейс пользовательской программы. Тестирование SMS и голосовой связи – отлично. Поддерживает кириллицу. Емкость записной книги определяется емкостью на RUIM-карте(в модеме нет)
Все попытки установить LiveCD, LiveUSB от CentOs 5.3 и Fedora 11 ни к чему не привели. Система при попытки начать установку падает, мигая «Num Lock» «Caps Lock» «Scroll Lock». Попытки установить OpenWRT и Debian оказались куда успешней. OpenWRT — ради пробы (на нем останавливаться не будем, в силу ограниченности функционала). Debian 5.0 lenny— взят за основу.
Для этого можно использовать любой USB Drive или переносной HDD подключаемый по USB. Я пробовал и с тем и другим:
default vmlinuz
append initrd=initrd.gz root=/dev/rd/0 devfs=mount,dall rw DEBCONF_PRIORITY=medium
На этом подготовка носителя завершена.
Грузим контроллер с USB Flash Drive.
При запуске контроллера нажимаем F11 и выбираем диск с которого хотим грузиться.
Тут я особо выдумывать не стал.
Если выбрать Standard system с интернета вытянет примерно 100 мб. Если выбрать Desktop environment + Standard system вытянет примерно 700 мб.
А вот тут останавливаемся. Ядро Debian по умолчанию не загрузилось, увидим только Kernel panic. Ядро должно быть немного подпилено патчами от Vortex.
Вот.
Здесь делаем следующее:
cp /hd-media/linux-image-2.6.29.3-vortex86dx.deb /target/root/
chroot /target /bin/bash
dpkg -i /root/linux-image-2.6.29.3-vortex86dx.deb
reboot.
Загрузилось.
Для начала, то что мы теперь имеем, еще весьма мало для работы OpenSCADA, поэтому:
apt-get update
Для удобства сразу поставил ssh
apt-get install openssh-server -y
И уже по ssh остальное делам.
apt-get install autoconf libtool gettext gawk lsb-build-base3 libgd2-xpm-dev libmysqlclient15-dev libsqlite3-dev libsensors-dev portaudio19-dev byacc bison libsnmp-dev libfftw3-dev libqt4-dev make -y
В зависимости от ширины Вашего канала придется подождать. Будет тянуть много чего интересного и долго ставить. При этом будут заданы вопросы по переконфигурированию emax и т.д.
Ради проверки выносливости самого контроллера, я рискнул откомпилировать OpenSCADA прямо на нем. Пришлось конечно подождать, но процесс компиляции ничем не отличается от процесса компиляции на любом другом компьютере (поэтому скринов не оставил).
На столе выглядит это вот так:
IDE Flash у меня нету, пока, поэтому как видим все рабоет с обычного IDE HDD.
За основу взял kernel-2.6.30 так как на момент написания этой статьи самое последнее. Патчи для ядра, тянем вот от сюда (В eBox-3300 используется такая же платформа) http://www.compactpc.com.tw/drivers/eBox-3300/2_6_27_Patch.zip. Патчи запросто одеваются на kernel-2.6.27 и 2.6.29, но вот на 2.6.30 придется вручную. Смотрим в diff файл, ищем в исходниках текст и меняем. Тянем этот конфигурационный файл для ядра http://media.kelvinism.com/static/config-2.6.29.3-vortex86dx.
make menuconfig
Загружаем конфигурационный файл
Сохраняем.
Или можно mv config-2.6.29.3-vortex86dx .config
Это еще не все, нужно еще поддержку USB GPS и CDMA модемов добавить, в меню Device Drivers все это живет. Скины этого процесса грузить не стал, тут их и так достаточно. ))))
После всех наших манипуляций делаем:
make-kpkg --initrd kernel_image kernel_source kernel_headers modules_image
Процесс довольно долгий, на контроллере )))))))))))
Появились файлы:
Делаем:
dpkg -i ~linux-headers-2.6.27.3-vortex86dx_2.6.27.3-vortex86dx-10.00.Custom_i386.deb
dpkg -i ~linux-image-2.6.27.3-vortex86dx_2.6.27.3-vortex86dx-10.00.Custom_i386.deb
dpkg -i ~linux-source-2.6.27.3-vortex86dx_2.6.27.3-vortex86dx-10.00.Custom_all.deb
Для kernel-2.6.30 выглядит точно также, нету на скинах потому как снес перед тем как сфотографировать ))))))
Перегружаемся уже новым ядром.
Исполняем:
modprobe usbserial vendor=0x1011 product=0x3198
vendor и product подскажет lsusb
dmesg.
Наблюдаем успешное поднятие usbserial с нашим модемом на ttyUSB0
Теперь понадобятся пакеты pppd и wvdial
apt-get install wvdial -y
Это скрипт с которого запускается соединение.
cat skylink.sh
debian:/home/aleksey/skylink# cat skylink.sh
#!/bin/sh
mknod /dev/ppp c 108 0
DIALTIMEOUT=20
MODEM=ttyUSB0 SPEED=921600 MODEM_INIT='"AT+CRM=1;&C2" OK'
IH_IP=" ipcp-accept-local ipcp-accept-remote noipdefault debug usepeerdns user mobile mtu 1400 novj nobsdcomp novjccomp nopcomp noaccomp noauth"
LOGSCRIPT="CONNECT"
PHONE="#777"
# Перез запуском удаляем default route по окончанию восстанавливаем (это по желанию)
DR=`route -n | egrep '^0.0.0.0'| grep -v ppp | sed 's/^[^ ]* *\([^ ]*\) .*/default gw \1/'` ;
if [ -n "$DR" ] ; then
trap "echo route add $DR ; route add $DR ; exit" 2 3 9 15
route delete $DR
echo route delete $DR
fi
# Если оборвалось pppd перезапускается
while true ; do
pppd connect 'chat -v ABORT "NO DIALTONE" ABORT "NO CARRIER" ABORT BUSY "" '"$MODEM_INIT"' ATDP'$PHONE' '"$LOGSCRIPT"' ;' \
crtscts defaultroute modem -detach mru 1400 $NASH_IP:$IH_IP /dev/$MODEM $SPEED
cat /etc/ppp/resolv.conf > /etc/resolv.conf
sleep $DIALTIMEOUT
done
debian:/home/aleksey/skylink#
в /etc/ppp/pap-secrets и на всякий случай в /etc/ppp/chap-secrets прописываем логин и пароль
cat /etc/ppp/pap-secrets
mobile * internet *
cat /etc/ppp/cahp-secrets
mobile * internet *
Какой тип авторизации на skylink я не знаю, поэтому предусмотрел оба.
2-ва арианта Init Скриптов для Debian. Делались паралельно основной работе, поэтому полностью не тестировались.
Источники:
Вот вроде и все.