2010-12-14

Huawei E173 + Ubuntu. Часть 3 - или кое что надо делать быстро..

На основе метода тыка нашёл такой почти 100% способ конвертнуть его.
1. Отключаем модем.
2. Делаем
sudo rmmod option
sudo rmmod usbserial
sudo rmmod usb_storage
(последнее необязательно вроде)

3. Подключаем модем и БЫСТРО (без паузы - в течении не более 2-3 секунд)
начинаем запускать:
sudo usb_modeswitch -I -c /etc/usb_modeswitch.d/12d1\:1446
после нескольких:

Looking for target devices ...
No devices in target mode or class found
Looking for default devices ...
No default device found. Is it connected? Bye.

появляется корректный экран - а чуть позже появляются /dev/ttyUSB{0,3}
Если опоздать что-то случается..
Видимо что-то не то с модемом делает udev..
Может быть сидюк успевает замонтироваться (автозапуск вылезает).

ttyUSB0 отзывается на AT комманды,
ttyUSB3 отзывается на AT комманды и засылает RSSI коды (как и в E1550 были ttyUSB0/1 соответственно).

Что делают ttyUSB1 и ttyUSB2 - пока не придумал. На них тишина в ответ на AT.

ну и понеслось.
AT+CPIN="0000" (с включенной симкой)
ATI (получаем IMEI)
вынимаем симку - повторяем процедуру "стыковки"
получаем код разблокировки по IMEI тут (не то чтобы я против Мегафона, но чувство свободы..)
AT^CARDLOCK="123456"

AT+CGDCONT=1,"IP","internet"
ATDT*99#

Вот мой wvdial.conf - если кому пригодится (dns я сам настраиваю - потому тут отключен) :)
Звоним как:
sudo wvdial mc
или (если нужен pin-код)
sudo wvdial mc pin
или (если звонить будем через bluetooth - как настроить другой вопрос)
sudo vwdial mc bt

[Dialer defaults]
Modem = /dev/ttyUSB0

[Dialer bt]
Modem = /dev/ttyRFCOMM0

[Dialer mc]
Baud = 115200
Init2 = AT+CGDCONT=1,"IP","internet"
Phone = *99***1#
Username = *
Password = *
Stupid Mode = 1
New PPPD = yes
Auto DNS = 0

[Dialer pin]
Baud = 115200
Init1 = AT+CPIN=1234

Huawei E173

Приобрёл таки себе "Мегафон три-джи-модем" который 173 с поддержкой HSUPA (а не только HSDPA - буковки думаю от Upload/Download).

В винде завелось из коробки (ибо уже 1550 был настроенный когда-то - братов он).

В линухе не шага без сюрпризов. Не помню момента переезда с 8.04 на 10.04 - когда я настраивал этот 1550 - то ли уже проапгрейдился - то ли нет. Вроде уже переехал - и 1550 в системе настроен.
Но модем при установке сам не "обернулся" модемом - так и остался CDROM.

Ага. Модем видится как:
Bus 001 Device 008: ID 12d1:1446 Huawei Technologies Co., Ltd.

Настройки те-же. Но не прокатило. Заново повторяем процесс с начала.
Берём свежий modeswitch и modeswitch-data:
https://launchpad.net/ubuntu/+source/usb-modeswitch/
https://launchpad.net/ubuntu/+source/usb-modeswitch-data/
На момент написания под lucid 10.04/i386 взял соответственно пакеты: usb-modeswitch_1.1.0-2_i386.deb и usb-modeswitch-data_20100826-1_all.deb.
Судя по логам у меня был старый: usb-modeswitch-data 20100127-1
А поддержка E173 появилась только спустя пол-года в версии 20100623-1

Ладно. Поставил. заменил при установке /etc/usb_modeswitch.d/12d1:1446
что радовало. Ага. Модем вытащил-воткнул - ничего вроде не произошло. сделал вручную..
(Предварительно "на всякий пожарный" вынув симку - может быть это важно :))

sudo ln -s usb_modeswitch.d/12d1:1446 /etc/usb-modeswitch.conf
sudo /usr/sbin/usb_modeswitch
Ага. Что-то ожило:

Looking for target devices ...
No devices in target mode or class found
Looking for default devices ...
Found default devices (1)
Accessing device 008 on bus 001 ...
Using endpoints 0x01 (out) and 0x81 (in)
Inquiring device details; driver will be detached ...
Looking for active driver ...
No driver found. Either detached before or never attached

SCSI inquiry data (for identification)
-------------------------
Vendor String: ���8
Model String: ����|� �
Revision String: |�
-------------------------

USB description data (for identification)
-------------------------
Manufacturer: HUAWEI Technology
Product: HUAWEI Mobile
Serial No.: not provided
-------------------------
Setting up communication with interface 0 ...
Trying to send the message to endpoint 0x01 ...
OK, message successfully sent
Device is gone, skipping any further commands

Checking for mode switch (max. 20 times, once per second) ...
Original device is gone already, not checking
Searching for target devices ...
Searching for target devices ...
Searching for target devices ...
Searching for target devices ...
Searching for target devices ...
Found correct target device

Mode switch succeeded. Bye.

lsusb даёт:
Bus 001 Device 009: ID 12d1:140c Huawei Technologies Co., Ltd.
ls /dev/ttyUSB*
даёт богатый перечень:
ttyUSB0 ttyUSB1 ttyUSB2 ttyUSB3
Уже что-то. Копаем дальше :)

Часть 2.
Вытащил-воткнул. Чуда не случилось. Всё тот же "старый" 12d1:1446.
Только теперь не срабатывает sudo /usr/sbin/usb_modeswitch
Висит на сообщении:
Looking for target devices ...
No devices in target mode or class found
Looking for default devices ...
Found default devices (1)
Accessing device 010 on bus 001 ...
Using endpoints 0x01 (out) and 0x81 (in)
Inquiring device details; driver will be detached ...
Looking for active driver ...
No driver found. Either detached before or never attached
^C

Накопал интересные строчки в файлике: /lib/udev/rules.d/40-usb_modeswitch.rules

# Huawei, newer modems
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1446", RUN+="usb_modeswitch '%b/%k'"

# Huawei E173
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1557", RUN+="usb_modeswitch '%b/%k'"

На всякий случай делаю так:
sudo rmmod option
sudo rmmod usbserial
sudo usb_modeswitch -I -c /etc/usb-modeswitch.conf
теперь заканчивается мессаджем:

Looking for target devices ...
No devices in target mode or class found
Looking for default devices ...
Found default devices (1)
Accessing device 011 on bus 001 ...

USB description data (for identification)
-------------------------
Manufacturer: HUAWEI Technology
Product: HUAWEI Mobile
Serial No.: not provided
-------------------------
Looking for active driver ...
No driver found. Either detached before or never attached
Setting up communication with interface 0 ...
Trying to send the message to endpoint 0x01 ...
Sending the message returned error -110. Trying to continue

Checking for mode switch (max. 20 times, once per second) ...
Waiting for original device to vanish ...
Waiting for original device to vanish ...
Waiting for original device to vanish ...
Waiting for original device to vanish ...
Waiting for original device to vanish ...
^C

Снова вынимает-втыкаем:
sudo usb_modeswitch -I -c /etc/usb-modeswitch.conf

Looking for target devices ...
No devices in target mode or class found
Looking for default devices ...
Found default devices (1)
Accessing device 012 on bus 001 ...

USB description data (for identification)
-------------------------
Manufacturer: HUAWEI Technology
Product: HUAWEI Mobile
Serial No.: not provided
-------------------------
Looking for active driver ...
OK, driver found ("usbfs")
OK, driver "usbfs" detached
Setting up communication with interface 0 ...
Trying to send the message to endpoint 0x01 ...
OK, message successfully sent
Device is gone, skipping any further commands

Checking for mode switch (max. 20 times, once per second) ...
Original device is gone already, not checking
Searching for target devices ...
Searching for target devices ...
Searching for target devices ...
Searching for target devices ...
Searching for target devices ...
Found correct target device

Mode switch succeeded. Bye.
Ага. Думаем дальше.

2010-12-04

Ретрекер в локалке Домолинк

Сервер http://torrents.mydomolink.ru/ уже неделю не доступен. И в блоге bevice про это ни строчки.

Пока единственной альтернативой для поиска локальных пиров остаётся ретрекер.
(в дополнение к DHT и "родным" трекерам).
Это была преамбула.

Зачем это всё нужно. Ретрекер позволяет быстрее находить "локальных" пиров, с которых скорость скачивания, как правило, намного выше, чем с "внешних". То есть позволит быстрее скачать популярные файлы. Также он может служить "резервным" трекером на время недоступности "основных".

Полезен мой ретрекер будет для абонентов Рязанского Домолинка (а в связи с тестированием широкополостного локального трафика внутри всего ЦФО Центртелекома ("скорость между всеми клиентами ЦФО будет выше тарифной") - то возможно скоро будет актуален для других городов тоже).
Никакого отношения к официальному ЦТ я не имею - это лишь трекер xbt запущенный в "публичном режиме" на моём компьютере.

Чуть-чуть теории. Чтобы находить локальных пиров должны выполнятся несколько условий.
1. Торрент должен содержать адрес ретрекера: http://retracker.local/announce
Этот адрес добавляют многие торрент-сайты где разрешены "публичные" торренты (например rutracker.org). Но никто не запретит вам добавить в список трекеров раздачи мой ретрекер.
Не важно - приватный ли торрент или открытый. Как и что лучше добавлять к раздаче - об этом позже.

2. Ваш торрент клиент должен знать адрес retracker.local
Это может быть сделано на стороне провайдера (думаю дождёмся нескоро) или в файле hosts (или множеством других способов, если у вас интернет настроен через squid+dnscache/bind которыми вы можете управлять).
Попробуйте зайти по ссылке: http://retracker.local/stat
Если страничка открылась в браузере без ошибок - вам ничего делать не надо.

Теперь о том, как поправить файл hosts. Учитывайте то, что адрес динамический - но меняется он пока реже чем раз в месяц - но возможно придётся процедуру иногда повторять.

0. Проверяете работоспособность моего ретрекера. Жмёте ссылку http://bt.pwned.ru/stat - и в браузере должны увидеть статистику его использования. Если что-то не так - то или у вас неверные настройки браузера/dns - либо мой ретрекер отключен, надеюсь что временно - если ретрекер не откроется и через пару дней - то новость уже неактуальна - ищите другой ретрекер. На данный момент (декабрь 2010) я пока не вижу причин его отключать.

В windows системах.
1. Скачиваете скрипт: vgimly_retracker-2_03.zip (зеркало тут) - на авторство не претендую - скрипт найден в сети - но внесено много существенных проверок, улучшающих работу скрипта.
2. Распаковываете его хоть на рабочий стол. Запускаете (в Vista/Win7 необходимо сделать это с правами администратора - в XP и ранее - просто запускаете).
3. Закрываете окно скрипта - проверив, на отсутствие сообщений об ошибках.



В windows системах - ручной режим (если не доверяете чужим скриптам).
1. Узнаёте адрес bt.pwned.ru (ping bt.pwned.ru или nslookup bt.pwned.ru ).
2. Открываете блокнот или любой другой текстовый редактор (в vista/win7 - с правами администратора) и открываете на редактирование файл hosts.
notepad %systemroot%\system32\drivers\etc\hosts
3. Вносите запись аналогичную для linux (удаляя другие упоминания retracker.local)
95.106.xx.xx retracker.local bt

В linux системах (скрипта не делал - ибо очевидно - если надо - напишите в комменте).
1. Узнаёте адрес ретрекера (в консоли: host bt.pwned.ru и копируете полученный адрес 95.106.хх.хх).
2. Открываете gksudo gedit /etc/hosts
и добавляете строчку (удаляя другие упоминания адреса retracker.local, если есть):
95.106.xx.xx retracker.local bt

3. Сохраняете и закрываете редактор.

4. Общее для всех систем. Проверяете работоспособность изменений:
http://retracker.local/stat

Всё. В случае если заметите как-то что ретрекер слетел - проделайте всю процедуру заново.
Возможно просто сменился адрес. Теперь об адресе ретрекера.
Предыдущие записи о ретрекере попутно добавляют короткое имя "bt" - поэтому можно обращаться к серверу через него. Также работают udp анонсы на мой ретрекер - можете использовать такой короткий адрес ретрекера: udp://bt:3 . Рекомендуемые настройки для внесения в торренты ретрекера такие (размещайте их в одной группе - не разделяя друг от друга пробелами - как показано на картинке внизу):
http://retracker.local/announce
udp://bt.pwned.ru:3
http://bt.pwned.ru/announce


2010-10-22

К вопросу о словарях Chrome

Где-то в начале года заметил радикальное ухудшение проверки орфографии в системе.
Сначала думал на обновление c Харди 8.04 на Люсид 10.04 - но беглая проверка показала - что системная проверка орфографии, которая прикручена в том же Лисе - вполне на высоте..
А хром упорно не знал до 70% всех слов которые вводишь в полях ввода.
И отключить это хоть и можно (но непросто - с непривычки то), только покопайся в гугль-ответах.
Но ведь проверка орфографии в основном системном инструменте штука незаменимая..
Кто-ж за очепятками следить то следить то будет.
Вдвойне обидно когда приходится жить без этой функции - на системе, где она вообще системная :)

Хром обновлялся - о наличии похожих проблем я видел на форумах - однако проблема не оставалась.
И тут нечаянно (см. предыдущий пост) ковыряясь в хроме залез я в папку
~/.config/google-chrome/Dictionaries
и там лицезрел пачку файлов *.bdic - похожих на словари "непонятной этимологии" :)
Снёс я их - и (о, чудо!) словари в Хроме стали радикально (нет, просто Радикально) лучше.

Удалите файлы и будет вам счастье :)
После перезапуска хрома появился новый словарь
2063530 2010-10-21 10:14 ru-RU-2-0.bdic
А предыдущий был:
1016392 2010-08-19 21:12 ru-RU-2-0.bdic
Как говорится:
ПэЖэ жив, и я счастлив!

P.S.
Но счастье моё не полное, ибо Хром не знает многого, что знает системный словарь myspell - (особенно букву "Ё" не уважает).
Эх, была бы галочка в Хроме "использовать системный словарь"..
Но мы тут Гуглю не указ..

Хром и реклама на oper.ru

Вчерась ковыряясь в кешах - с целью прибить надоедливый спам-ролик, появляющийся в любых видео от Гоблина на oper.ru - тот который про сайты для малого и среднего от 7000 - случайно наткнулся на способ радикально "поправить" качество словарей в Хроме (но об этом позже) :)

Вчера сумел вычислить его адрес, порезал на проксе - но кеш Хрома его уверенно "спасал" -
то есть не обращаясь к проксе - вынимал и показывал из кеша.
Найти файлы в кеше почему-то не удавалось, а весь кеш чистить не хотелось.
Зато с утра - файлик в кеше нашёлся за 10 секунд и был уничтожен аж сразу в трёх экземплярах..

Сигнатура url для бана:
oper.ru/video/intro/mega-small.flv
Файлик спама следует искать и прибивать в папке:
~/.cache/google-chrome/Cache
по размеру 124159 байт.

2010-09-13

nginx@bridge bug?

Что с "сервером" bridge не так ума не приложу.
Один и тот же rtorrent.

Регулятрно падает на bridge (каждую ночь) - но тот же rtorrent на mine - имеет аптайм с момента переустановки сервера (правда ядро ещё старое - всё никак не дойду перезагрузить его).

Теперь вот с nginx столкнулся.
Мой старый пост на почтовый туннель до черезчур бдительного/жадного провайдера
(разблокирует доступ из внешки на локальные pop3 ящики только за деньги) - не сработал.

Тот же конфиг. Та же версия nginx. На майне работает - на бридже нет.
Выдаёт в логах:
socket() failed (97: Address family not supported by protocol) while in http auth state, client: 127.0.0.1, server: 0.0.0.0:110, login: "xxx"
Ну оно и понятно - по strace он вызывает
socket(0x2058, SOCKET_STREAM,0) - что естественно EAFNOSUPPORT
(хм. версия 0.7.65 "из коробки" выдавала другое число: 0x55c8 - сейчас версия 0.8.50)

Прокинул натом 110 порт через туннель на mine.. Но это не дело..
Отлаживать попробовал - удалённо даже разобрался в gdb как -
но как-то не впечатляет пока отладка в консоли :)

2010-09-10

rtorrent with screen под супервайзером

rtorrent из svn стал падать на быстром канале чаще чем никогда.
Соответственно возникла задача его супервайзить.
Работающие супервайзеры от DJB способствовали.

Но поскольку rtorrent на ncurses - да ещё и под screen - чтобы можно было детач-аттач делать,
то встал вопрос как мониторить живость процесса.

(pidof / ps ax) && sleep - некошерно.
cron - то же и некошерно.
Даже мониторить живость сокета screen через inotify. Всё равно много телодвижений.
Сделал так (после стандартной отправки в бекграунд с screen -dm):

exec strace -s 16 -p `pidof -sc SCREEN` &> /dev/null
велосипед, однако достаточно надёжно и мало ресурсоёмко :)
Пойдёт любой супервайзер runit, daemontools, и даже, наверно, upstart..

2010-09-09

IPv6 && aptitude

Доигрался. Скоростной интернет канал которым разжился на прошлой неделе начали ограничивать ipv6 туннели.

Нативной поддержки у провайдера ipv6 адресов не планируется - а внешний туннель даёт от силы 1 мегабит.

Это пол беды. apt-get update && install настроены на внешнее зеркало ru.archive.ubuntu.com
которое в числе прочих даёт ipv6 адрес 2a02:6b8:0:201::1
Вот только аптитьюд (или libc) не рандомизирует список адресов - точнее порядок следования ipv6 и ipv4 адресов. И выдаёт видимо сначала ipv6. Что вынуждает аптитюд лезть в интернет через медленный ipv6 туннель. round-robin не заработал :)
Блокируем роутинг на неугодный адрес - и скорость обновления-установки взлетает с 1 мегабита до 1 мегабайта - что есть гуд :)

ip -6 route add 2a02:6b8:0:201::1 dev lo

2010-08-26

Амазон и xBox

"Неожиданно" обнаружилось что лимит почтовых посылок из-за некогда железного занавеса (давно сданного на металлолом китайцам )
теперь составляет "аж" 1000 евров. Что существенно выше прежних 10 килорублей (аж почти в 4 раза).
Всё работает на поставках не чаще 1 раза в 30 дней на одного физика.

Кстати..
Жёны/любовницы, братья и дети малые считаются как отдельные физические лица
Посылки международные хоть и на фамилию выписываются - однако нефига не заказные в понимании нашей почты - у них нет "обратной" бумажки..
Так что с высокой долей вероятности никто вашим паспортом на почте интересоваться не должен..
Кстати - недавно был на главпочтамте - сходите кто давно там не был.. Видно сколько баблища потратили на ЭТО..
Ох уж эти электронные очереди и матюгальниг говорящий тёткиным голосом номера выигравших билетиков..

Радостно залез на амазон.де - и обнаружил что тот же самсунг galaxy S стоит там "всего" 462 евро.
(страшно становится если расшифровывать у.е. - причём "е" - нефига не как енотов - настоящий немецкий трудовой лагерь выходит..)
В пересчёте на эти наши кровные - всего 18к выходит.
Наши доблестные перепродавцы хотят за него же 28+ аналогичных бумажек.

Но радость была не долгой - ибо немецкие амазонки в Russische Föderation всё подряд (уже) не шлют.
А шлют они очевидно только то, в чём наши доблестные почтари сами уже не нуждаются..

Это DVD, VHS, книги и игрушки.

Первые два решаются рутрекером юнионгангом и здесь. Книжки есть на флибусте и либрусеке.

А вот на игрушках можно поподробнее..

Оказывается xbox 360 это тоже игрушка.. Как и ps3 и другие консольки.
Так что можно немного попробовать съекономить на подарках дитяткам на новый год
(меньше месяца даже не ждите - а в ноябре-декабре будет поздно ибо Христмас - даже у Мусульманского большинства)..
Детально с переводом кнопочек есть тут..

Приятно радует что доставка из зоны .de до любого населённого пункта нашей необъятной стоит фиксированную мзду - 6 евров.
Также радует что от и так довольно радостной суммы покупки вычитаем 16% немецкого НДС.

Итак например. Xbox 360 - Konsole Slim 250 GB
Предлагают за 244,90 EUR
Вычитаем 16% ндс = 205,72 EUR
Добавляем доставку +6 = 211,72 EUR
итого конечную сумму с доставкой (видимо немного округляя) амазон предлагает 211,80 EUR

Я спросил у гуголя, гуголь мне ответил 8 277,8715 российских рубля..
Можно было сразу у гуголя спросить вот так: (244,90*(1-16%)+6) euro
То есть получилось где-то 8 300 рублей + комиссия банка-эмитента вашей кредитки 0-3% - на конвертации или как
(например можно завести "виртуальную визу" в шайтан-машинах конторы Киви)..

У нас этот слим стоит от 12 начиная..
Вот такая вот экономия на бумаге выходит.. Говорят, вроде даже что-то по почте и доходит
Большой плюс амазона - что можно будет повторить заказ (если не дойдёт через 31 рабочий день - и осчастливить ещё одного ребёнка почтового работника)
- или вернуть деньги когда все амазонские крестики наконец кончатся..

2010-07-14

Долбанный ms.help v1.0

В MSDEV 2010 мелкомягковцы решили отказаться от старой монолитной системы помощи..
Пускают мелкий http сервер (они таки решили что IIS 7.0 для html справок - это слишком круто) - который раздаёт локальную справку..
В трее иконка - и.. ну многое сделано через ж@пу - и вообще. например
ссылки там имеют вид http://127.0.0.1:47873/help/1-6072/ms.help?мусор - где номер порта и адрес хоста - статические - а 6072 - это номер процесса. Зачем это они сделали - на их совести. Я уж молчу что они извратили идею http - пути и т.п. - всё в динамике? в запросе. что не позволит нормально использовать html.. но этим страдают многие. Но номер процесса в пути???
С внешки можно подключаться к этому же порту - но на все вопросы - "Bad Host" - как если не угадать номер процесса ..

Так вот. К вопросу хелпа *msdev 2010. Примеры кода там имеют удобный интерфейс - где разные языки заключены в разные "табы". Выбираешь таб - он пишется в куку - и все остальные запросы автоматом этот язык потом будут показывать "по умолчанию".
Реализатору респект К тому же код грамотный при первом взгляде - поддержка разных браузеров (разве что копирование в буфер обмена для хрома без анализа версий или чего-то там добавили). Хотя это мог какой-то исправлятор отсебятину наваять. Но локализаторы или кто там потом порылся.. Проблема в том, что есть язык C#, C++, F#, JScript. А вот бейсиков - оказывается два.
Первый - называется VB - и он идёт первым в списке (оно и понятно - тайную любовь БГ к языку своей молодости в мелкомягкой корпорации возвели в ранг всеобщей любимицы). Ну да оно не страшно в связи с краткостью и памятью на табы. Но вот тот "умник" что ковырялся "после" - добавил ещё одну вкладку - дубликат языка "VB" который так и называется - "Язык Visual Basic". Кроме всего прочего - он показывается отдельной вкладкой Оторвать бы этому ковыряльщику его ковырялки..

Пришлось ковырять "C:\Program Files\Microsoft Help Viewer\v1.0\dev10.mshc" (zip - архив - что также показывает грамотность "родного" автора поделия - не cab какой-то) и править файлик branding.js - и вот такая вот у меня получилась функция:

function addSpecificTextLanguageTagSet(codesnippetid)
{
for (var i = 1;i < 6;i++)
{
var snippetObj = document.getElementById(codesnippetid + "_tab" + i);
if (snippetObj == null) break;

var tagSet = getDevLangFromCodeSnippet(snippetObj.innerHTML);
if (!allLanguageTagSets.hasObject(tagSet))
allLanguageTagSets.push(tagSet);
}

if (!snippetIdSets.hasObject(codesnippetid))
snippetIdSets.push(codesnippetid);
else
{
var obj1 = document.getElementById(codesnippetid);
var obj2= obj1.nextSibling.nextSibling;
if (obj2.id == codesnippetid) obj2.style.display = 'none';
}
}

2010-06-10

Сила NAT

Вот оно как. Связь с "домашним роутером" потерялась, хозяева уехали на две недели и контора сидела с понедельника на сухом пайке. То есть интернет у особо избранных (читай меня) или если придти и хорошо попросить обратно у меня :)

Однако оказалось, что модем живёт и отзывается на SSH :)
Старые попытки поюзать его линукс закончились неудачей.
Отзывается модем о себе так:
BusyBox v0.61.pre (2006.04.28-16:02+0000) Built-in shell (ash)
Linux version 2.4.17_mvl21-malta-mips_fp_le (root@Leachy) (gcc version 2.95.3 20010315 (release/MontaVista)) #87 Fri Apr 28 23:52:07 CST 2006
cpu model: MIPS 4KEc V4.8
Что-то вроде D-LINK 504T или как то так..

Ну попытался на него собрать бинарники openvpn в среде openembedded.
И вроде собралось - только не пускалось. Ибо там не libc - а uClibc.
Попытался собрать на uClibc - openembedded ругнулся на hash-style в binutils.
Ох уж эта crosscompile для mipsel..
Вот если бы собрать openvpn под него.. ммм..

И тут с утра меня осенило :) iptables тут вполне нормальные..
Одна строчка:
iptables -t nat -A PREROUTING -s 95.106.MY.IP -p tcp --dport 55000:56000 -j DNAT --to MY.VPS.IP.ADDR
И всё. Роутер готов :)
На vps настраиваем прокси (его урезанность не позволила пустить OpenVPN) - и заставляем прокси ломиться на роутер как будто он и есть VPS.. Все счастливы.
Интернет в конторе ожил а биллинг провайдера считает трафик правильно (сиречь локально-безлимитно) - что есть гуд.
И так 50% месячного лимита в 300 МБ за три для выбрали - это с одного компа то :)
Страшно посчитать сколько вы расходуем трафика в будние дни то..
Ээх. Когда же дойдёт до "простых смертных" эта кабелизация-оптоволоконизация то есть FTTx..
Осчастливили, изверги, в двух микрорайонах пару десятков домов во всём городе - и хватит.

Вот она сила NAT - в одной строчке iptables :)

2010-06-03

Кодировки GSM модемов

Ужас, сколько всего :)
На самом деле строчка "*100#" превращается такими командами (слегка попортив GSM::PDA код)

$_='AA180C3602';
print;
$_=unpack'b*',pack"H*",$_;
s/([01]{7})/${1}0/g;
$_=pack 'b*',$_;

print "'$_'";

$_=unpack 'b*',$_;
s/([01]{7})0/$1/g;
print unpack"H*", pack'b*',$_;
# aa180c360200

Декодировка. Упаковать в lsb-бинарную строчку (младший бит первый):
AA => 01010101
18 => 00011000
0c => 00110000
36 => 01101100
02 => 01000000
Собираем в кучу:
0101010100011000001100000110110001000000
Нарезаем по 7 бит (я просто добавил по биту после каждого 7-го - а потом снова порезал на 8)
и декодируем.

bits = 01010100 10001100 00001100 00001100 11000100
septet = 0101010
septet = 1000110
septet = 0000110
septet = 0000110
septet = 1100010
Получили '*100#'

Ответ в UCS2 или UTF-16BE..
И ещё интересно:
at+cscs=?
+CSCS: ("IRA","GSM","UCS2")
Хотя at+cscs="GSM" выдаёт ОК и ничего не меняется :)

Да. И всё отправляется и принимается чудненько через консольку ttyUSB1.
Не надо писать в одну и читать в другую :)

Хайвей и все-все-все

Дали тут 3g-модемчик потестировать-настроить :)
Местного Мегафона-Центр который.

ubuntu 10.04
На корпусе нацарапано
Модель: E1550
HSDPA USB Stick
HUAWEI TECHNOLOGIES CO., LTD.

Статей про него много :)
lspci писал про него что он 12d1:1446 и CDROM с "дровами" да microSD картридер виделись.
Вот что dmesg писал:
[ 5296.452028] usb 3-1: new full speed USB device using ohci_hcd and address 2
[ 5296.679200] usb 3-1: configuration #1 chosen from 1 choice
[ 5296.688975] scsi9 : SCSI emulation for USB Mass Storage devices
[ 5296.689247] usb-storage: device found at 2
[ 5296.689249] usb-storage: waiting for device to settle before scanning
[ 5296.689433] scsi10 : SCSI emulation for USB Mass Storage devices
[ 5296.689595] usb-storage: device found at 2
[ 5296.689597] usb-storage: waiting for device to settle before scanning
[ 5301.690339] usb-storage: device scan complete
[ 5301.692309] usb-storage: device scan complete
[ 5301.696945] scsi 9:0:0:0: CD-ROM HUAWEI Mass Storage 2.31 PQ: 0 ANSI: 2
[ 5301.702443] scsi 10:0:0:0: Direct-Access HUAWEI MMC Storage 2.31 PQ: 0 ANSI: 2
[ 5301.751308] sr0: scsi-1 drive
[ 5301.751315] Uniform CD-ROM driver Revision: 3.20
[ 5301.751482] sr 9:0:0:0: Attached scsi CD-ROM sr0
[ 5301.751580] sr 9:0:0:0: Attached scsi generic sg6 type 5
[ 5301.751957] sd 10:0:0:0: Attached scsi generic sg7 type 0
[ 5301.800325] sd 10:0:0:0: [sdg] Attached SCSI removable disk
[ 5314.054935] ISO 9660 Extensions: Microsoft Joliet Level 1
[ 5314.101926] ISOFS: changing to secondary root

Ладно. Нам цэ-дэ не нужен. Надо его из ЦэДэ в модем превратить (что с цэ-дэ сотворить - потом думать буду).

"Лучший способ" пока - прописать
sudoedit /etc/udev/rules.d/15-huawei-155x.rules
SUBSYSTEM=="usb",
ATTRS{idProduct}=="1446",
ATTRS{idVendor}=="12d1",
RUN+="/lib/udev/modem-modeswitch --vendor 0x$attr{idVendor} --product 0x$attr{idProduct} --type option-zerocd"

Хм. Странно. Циферки не совпали. Перетыкаем донгл - получаем через несколько секунд вот такой девайс:
12d1:1003 Huawei Technologies Co., Ltd. E220 HSDPA Modem / E270 HSDPA/HSUPA Modem
tty не появились (кажется).
sudo modprobe usbserial vendor=0x12d1 product=0x1003
И вот у нас по dmesg появились консольные устройства:

[ 8865.063521] usbserial_generic 3-1:1.0: generic converter detected
[ 8865.063680] usb 3-1: generic converter now attached to ttyUSB0
[ 8865.067561] usbserial_generic 3-1:1.1: generic converter detected
[ 8865.067742] usb 3-1: generic converter now attached to ttyUSB1

Странно что два порта :)
ttyUSB0 - отвечает на AT команды.
и ttyUSB1 тоже отвечает на AT команды - только тут регулярно валятся всякие непонятные сообщения. Вроде:
^RSSI:20
^BOOT:37205608,0,0,0,87
^RSSI:20
^RSSI:20
^RSSI:20
^RSSI:22
^RSSI:18
^BOOT:37205608,0,0,0,87
^RSSI:18
^RSSI:18
^RSSI:18

Ужас. Разбираться лень :)

пишем конфиг /etc/wvdial.conf У меня заработал такой (Рязанский Мегафон):
[Dialer defaults]
Modem = /dev/ttyUSB0

[Dialer mc]
Modem = /dev/ttyUSB0
Baud = 115200
Init2 = AT+CGDCONT=1,"IP","internet"
Phone = *99***1#
Username = *
Password = *
Stupid Mode = 1
New PPPD = yes
Auto DNS = 1

[Dialer pin]
Modem = /dev/ttyUSB0
Baud = 115200
Init1 = AT+CPIN=1234

Пин-код вроде не нужен :)
ну да ладно - пригггадитттсся.
Попытки коннектиться на ttyUSB1 не увенчались успехом :)
CARRIER LOST и всё тут :)
wvdial -n mc
и понеслось :) Ну роутинг там прописать и т.п. - думаю справитесь.
Ага. Попутно появились всякие статейки как слать и принимать USSD :) Занятненько..
Взял отсюда программульку.. http://linux007.livejournal.com/82330.html
./ussd '*100#'
мусор всякий пишеть.. Ладно. Но пишеть же? Значит что-то тут не так :)
выводим в отладку то что у нас ушло в порт и что вернулось.
ушло: AT+CUSD=1,AA180C3602,15
вернулось:00320035002E00340032044004430431002E0421043C043E04420440043800200032003500200422041200
2D043A0430043D0430043B043E0432002C002004420440043004440438043A0020043104350441043F043B002E0021002004170432043E043D04380020002A0035003000360023002000380440002F04340435043D044C
Эти 04ХХ ничего не напоминают? Сообщения то пишутся на русском. а это галимый utf-16 из винды. То есть utf-16be если что (или UCS2 некоторые называют). А никак не utf-7..
проверяем нашу догадку..
В конце файлика комментарим перекодировку и делаем свою:

#$decoded_ussd_reply = Device::Gsm::Pdu::decode_text7('00'.$ussd_reply);
use Encode;
$decoded_ussd_reply = pack "H*",$ussd_reply;
Encode::from_to($decoded_ussd_reply,'UTF-16BE','UTF-8');
(консолька то у нас линуксовая - и utf8 понимает только :)

Вуаля! Вот и наш ответ со спамом:
USSD REPLY: 25.42руб.Смотри 25 ТВ-каналов, трафик беспл.! Звони *506# 8р/день
Пока всё.. будем пилить дальше..

2010-05-26

Terminal Services Interact with User parameter path

Сделал бутлог processmon - смотрел где terminal services for XP смотрит эти параметры.
Нужно чтобы включить управление сессией без запроса - в частности проуправлять отключенными сеансами.. Бухгалтера неисправимы - и требуют что-то у себя исправить не давая разрешения на управление..

Ставим везде: fInheritShadow=0, Shadow=2 (а не Shadow=1 как обычно стоит)

Попробуем перезагрузиться и проуправлять :)
HKLM\ (да, да, именно в корне HKLM - видимо какой-то глюк в winlogon)
HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services\ (только Shadow)
HKLM\System\CurrentControlSet\Control\Terminal Server\DefaultUserConfiguration\
HKLM\System\CurrentControlSet\Control\Terminal Server\WinStations\Console\
HKLM\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\

Вот ещё ссылочку с объяснениями параметров TS нашёл..

2010-05-21

SOCKS proxy v2

Туннель оборвался.. Openvpn выживает - но tcp соединения через него иногда рвутся - что заставило умереть мой ssh прокси :)
Дубль два. Тоже всё просто.
Для туннеля нужно:
1. iptables-based DNAT. Также как и раньше.
2. "правильный" netcat-openbsd с поддержкой SOCKS (ключиком -x):
sudo apt-get install netcat-openbsd
3. SOCKS сервер. Я использую danted - долгие кривые непонятные настройки. Но когда-то успешно настроенный на внешнем сервере. Можно поискать внешние - или пользоваться соксом от ssh -D :)
4. xinetd
Вот его примерный конфиг:
service yaru
{
type = UNLISTED
flags = REUSE
socket_type = stream
wait = no
protocol = tcp
# interface = 127.0.0.1
user = nobody
disable = no
log_type = FILE /var/log/redirect.log
log_on_success += HOST DURATION USERID
log_on_failure = HOST ATTEMPT USERID
only_from = 192.168.0.0/16 127.0/8

port = 5226
server = /bin/nc
server_args = -x 10.8.0.6:1080 93.158.134.48 5222

# log_on_success += TRAFFIC
# redirect = 192.168.1.10 1234
# server = /bin/false
}

Теперь даже если туннель и порвётся - то клиенты просто переподключатся и всё..

2010-04-30

Прозрачный SOCKS

Всё просто. Тупой Empathy не умеет соединяться с jabber через прокси.
Хм.
Прямые соединения на роутере "наружу" закрыты.
Делаем "прозрачный" ssh туннель.
На одном из серверов, через который проходят соединения делаем так:
ssh -g -v user@bridge.local -L 5225:209.85.137.125:5222 -L 5226:93.158.134.48:5222
Можно убрать ключики -v и добавить что-то вроде -n и -f (не помню) чтобы отправить "в фон" без экрана :) Ключик -g важен чтобы внешние компы могли через этот "туннель" проходить..

Это для одного из серверов гмыла и для яндекса соответственно.
dig srv _xmpp-client._tcp.gmail.com
dig srv _xmpp-client._tcp.ya.ru
чтобы получить нужные адреса :)

Всё. Туннель есть.

Теперь засовываем траффик в туннель :)
iptables -t nat -A PREROUTING -p tcp -d 209.85.137.125 --dport 5222 -j REDIRECT --to-port 5225
iptables -t nat -A PREROUTING -p tcp -d 93.158.134.48 --dport 5222 -j REDIRECT --to-port 5226

Проверяем:
nc -vv xmpp.yandex.ru 5222
Open!

2010-04-27

Launchpad

М-да. Несколько дней до релиза 10.04. Точнее всего два.
Фриз и релиз кандидат в действии. А грабли всё те же.
Когда-то пытался скачать серверную 8.04 через JIGSAW.

Да, вроде всё нормально качалось. Да, куча всего не обнаружилось в моей локальной репке. Но на то и APT-PROXY аналог у меня построен на perl+apache..
Лучше его переписать на fcgi+nginx или вообще сделать планировщик закачек :)

Но да разговор не о нём. Когда качал, выяснилось - что некоторых файлов нет не только в моей репке - но и на официальной репке arcihve.ubuntu.com. Что-то гугль послал качать на раритетные зеркала (файлы эти в репках были - но потом пропали) - так что и на зеркалах их не нашлось. Однако нашлось что все обновления и хоть когда-то сверкнувшие версии с патчами и т.п. - хранятся на лаунчпаде..

Но на него не всегда приводит гугль и даже сам лаунчпад в поиске иногда лажается и не находит что надо. Но всё чётко можно найти формируя URL "на лету".
Нужны тогда были пару файлов - что я успешно скачал и успокоился.
Обматерив про себя столь недолговечное хранение файлов в зеркалах..

Оказалось те же грабли у свежего релиз-кандидата люси..
Скачал как обычно образ сидюка с alternatives - перекинул папку pool в свою репку - разложил network-install куда положено в tftp.. Ан-нет.
Вот захотел установщик скачать lsb-release-udeb_5.0.0ubuntu19_all.udeb
А нету его ни на дисках - ни в archives.ubuntu.com.
И так пару десятков файлов. Подумал что что-то не так - перекачал initram.gz с сервера - он оказался чуток по-свежее чем был на диске и размером другим..

Только файлы некоторые всё равно не находит. Так и пришлось каждый руками искать и докачивать в репку.. Автоматом тяжко будет эту процедуру делать.. Наверное :)

Ээх. Опенсурс-опенсурс..

2010-02-16

Французская война

Публикую тут свой пост на внутреннем форуме домолинка. Подумать..

17-Дек-2009 21:14

Ну если ребёнок в сша начитанный (или посмотрел фильм Бесславные Ублюдки), то он должен знать про всемирную историю главное
Например про то, что в прошлом веке, сша участвовали в достаточно примечательной (не понятно почему про неё столько фильмов наснимали) Французской войне.

Франция - это страна такая где-то в европе.

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

Соседней страной Германией руководил всё время до французской войны диктатор Гитлер.
Который люто ненавидел всех евреев. Все евреи из Германии, которых Гитлер не успел убить (и съесть) сбежали в США. И тогда решил этот Гитлер напасть на соседнюю Францию, чтобы там евреев поубивать.
Что он в общем то и сделал.

Конечно, американские евреи не смогли спокойно смотреть на такой беспредел - и послали сначала небольшую стайку евреев, которые так нещадно стали уничтожали немцев, (способных, как известно, только убивать беззащитных детей и женщин), что все немцы - а особенно сам Гитлер - тут же забоялись.

Эта кучка евреев, совершив немало подвигов, в итоге таки добралась до Гитлера и геройски убила его.

А потом (как говорится в куче других фильмов), американские войска высадились во франции (на лодках - под шквальным немецким огнём с берега) и освободили её,
хоть и потеряли очень многих бесстрашных своих воинов - но зато принеся свой уникальный опыт подлинной демократии в отсталую европу

Вот так и закончилась французская война - на радость всем евреям мира

А ещё было ещё много войн против тёмных сил - японская против япи, корейская и вьетнамская (разве это не одна страна??) против комми - которую остановил Джон Леннон и хиппи - повезло тогда комми - а то бы их ещё тогда бы победили..