LINUX.ORG.RU

OpenSource в железе для Skylink


1

1

Выложен исходный код и прошивка для роутеров CNU-550pro

Это небольшой роутер на SoC S3C2510A в который встроен USB EVDO модем работающий в сетях Скайлинк. Роутер имеет 1 Ethernet порт, 4 Мб Flash, 16 Мб RAM. Процессор не имеет MMU.

Скайлинк официально продаёт данное устройство, но упорно продолжает нарушать GPL не выкладывая исходники прошивки, которую он распространяет вместе с CNU-550pro.

"Родная" прошивка данного устройства содержит ядро Linux и некоторое количество очень криво собранных утилит, как GPL так и проприетарных. В частности, одна из проприетарных утилит занималась тем, что следила за криво собранной бета-версией pppd-2.4.2 и когда ppp падал (а он падал постоянно), то она запускала pppd вновь. Это маленький штришок к "качеству" ПО которое поставляет Скайлинк пользователям.

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

В итоге, была создана более-менее нормальная прошивка для CNU-550pro, включающая в себя помимо нормального, не падающего pppd-2.4.4, busybox, несколько полезных утилит а также SIP-proxy siproxd, который позволяет нормально работать через роутер нескольким SIP-телефонам одновременно.

Возможно, прошивка ещё сыровата, но она уже имеет больше возможностей и работает всяко стабильнее "родных" прошивок.

Исходники и сама прошивка, а так же вся история со Скайлинком и его выкрутасами - по ссылке.

>>> Подробности

★★★★★

Проверено: hibou ()
Ответ на: комментарий от Anonymous

> На всякий случай приведу любимую цитату из ответа Минэкономразвития России на запрос Президенту:

О, спасибо! Вещь.

Stanson ★★★★★
() автор топика
Ответ на: комментарий от e_val

> Вот-вот. Как Вы этого добиваетесь без watchdog'а?

Опция persist. При обрыве всё стандартно - либо peer terminated либо можно заставить по LCP echo отваливаться, однако это почти не имеет смысла. Специфика CDMA модемов. Watchdog не сильно помогает - что толку если я узнаю, что где-то там в недрах скайлинка затык? Хоть 10 раз переконнекться, пока скайлинк не прочухается, пакеты всё равно не пойдут.

maxfail поможет если базовая станция надолго отвалилась и более 10 попыток _подряд_ pppd не может установить соединение.

При обычных обрывах (которые собственно и достали) - всё происходит мгновенно и ни о каких 10 попытках речь даже не идёт.

Stanson ★★★★★
() автор топика
Ответ на: комментарий от Stanson

Так вот в том-то и дело - хочется совместить две противоположных вещи: чтобы при отваливании соединения надолго pppd не крутился в цикле, как белка, и чтобы после появления связи он быстро переподключался.

(если пропустили первое сообщение - у меня не Скайлинк, а связка pppd/pptp, причем канала до PPTP-сервера может умирать несколько раз на дню)

e_val ★★★
()
Ответ на: комментарий от e_val

> Так вот в том-то и дело - хочется совместить две противоположных вещи: чтобы при отваливании соединения надолго pppd не крутился в цикле, как белка, и чтобы после появления связи он быстро переподключался.

Ну тут задача тогда другая - сама линия по которой ppp ходит пропадает. pppd пусть крутится в цикле, а нам надо как можно быстрее поднять линию для pppd. В случае модема - это можно, например, решить передёргиванием питания (ну типа завис он и rs232 перестал работать - нет линии) А вот в случае ppptp нужно заставить его переконнектится с сервером. man pptp видимо. какой-нибудь SIGHUP наверно. Опять же вопрос - А сервер-то в момент проблем доступен? Если недоступен - то надо именно эту проблему и решать. Часто pptpd отваливается при наличии потерь до сервера.

Вообще, насколько я помню, сам pptpd кривовато написан - он pppd сам запускает и даёт ему stdin/stdout, а не предоставляет для pppd устройство - последовательный порт. Если переделать pptpd под второй вариант - то pppd и pptpd станут независимыми и каждый будет заниматься своим делом - pppd будет на линии организовывать IP, а pptpd предоставлять устройство для pppd.

Stanson ★★★★★
() автор топика
Ответ на: комментарий от e_val

>чтобы при отваливании соединения надолго pppd не крутился в цикле, как белка, и чтобы после появления связи он быстро переподключался.

На первый взгляд, это видится примерно так:
pppd задаётся maxfail, допустим 10, а сам pppd заворачивается во врапер, который запускает его, допустим через минуту.

qwe ★★★
()
Ответ на: комментарий от v0rbis

раньше много лет пользовался безлимитным скайлинком. Забодало то что при душевном разговоре с подругой в эфир влез радиолюбитель и начал рассуждать на какие мы необычные темы беседуем :)

feudor
()
Ответ на: комментарий от e_val

Нет ничего плохого в том, что pppd/pptp будет пытаться раз в несколько секунд пытаться возобновить соединение. Никакой лишней нагрузки это не создаст.

kilolife ★★★★★
()
Ответ на: комментарий от Stanson

> Ну тут задача тогда другая - сама линия по которой ppp ходит пропадает.

Здесь точно такая же - но я посмотрел еще раз и подумал, что holdoff 30 меня вполне спасает. Попробую.

> А сервер-то в момент проблем доступен? Если недоступен - то надо именно эту проблему и решать.

Да нет, конечно, в том-то и проблема - до него коннект периодически пропадает (нет, починить нельзя - не моя зона ответственности :-). Поэтому и крутится вотчдог, который в случае обрыва связи его пингует, и как только пинг проходит, поднимает pppd. Но, наверное, maxfail 0 holdoff 30 создаст не большую нагрузку.

e_val ★★★
()
Ответ на: комментарий от feudor

> раньше много лет пользовался безлимитным скайлинком. Забодало то что при душевном разговоре с подругой в эфир влез радиолюбитель и начал рассуждать на какие мы необычные темы беседуем :)

o_O товарищ, ты ничего не путаешь? радиолюбитель вмешался в разговор двух абонентов ская? или я чего не понял?

cache ★★
()
Ответ на: комментарий от cache

> o_O товарищ, ты ничего не путаешь? радиолюбитель вмешался в разговор двух абонентов ская? или я чего не понял?

Путает :) Скайлинка тогда ещё не было, была МСС которая потом вместе с Сонетом стала Скайлинком.

Stanson ★★★★★
() автор топика
Ответ на: комментарий от Stanson

> Путает :) Скайлинка тогда ещё не было, была МСС которая потом вместе с Сонетом стала Скайлинком.

От и я о том же ж. :) А МСС (точнее, КСС - калужский филиал) я и сам по малолетству слушал хулиганских побуждений ради.

cache ★★
()
Ответ на: комментарий от Orlusha

> КАК ЖЕ ЯКОБЫ СЕРТИФИЦИРОВАННЫЕ ФСБ ТОЛЬКО ПОД ВЕНДУ ОБЯЗАТЕЛЬНЫЕ СРЕДСТВА ШИФРОВАНИЯ???

В теории оные средства сертифицировались не только под венду, судя по заявлениям авторов.

sv75 ★★★★★
()
Ответ на: комментарий от Stanson

>он pppd сам запускает и даёт ему stdin/stdout, а не предоставляет для pppd устройство - последовательный порт

Не правильно. См. опцию pty в man pppd. И кстати, pptpd - это сервер. А клиент называется pptp.

Самое простое и безгиморное решение для pppd - это запуск в режиме demand с проверкой линка с помощью LCP echo как на сервере, так и на клиенте. Слава Богам, цискин PPP это дело поддерживает. Насчет RAS - не в курсе. Единственный недостаток - для первого PPP интерфейса адреса могут быть только статическими. Если это - не проблема, то все OK. В системе будет ppp интерфейс (первого демона) с настроенными рутингами и прочей хренью и как только на него идет пакет (от того же pptp), то pppd попытается (пере)установить соединение.

Намного сложнее, когда действуют два демона. Здесь стратегия такая. По ip-up первого демона запускать второй, соответственно по ip-down первого демона прибивать второй, благо есть PID файл (не пропусти опции linkname и ipparam).

Вот как-то так.

Macil ★★★★★
()
Ответ на: комментарий от Macil

И вот еще, если на модеме есть вход RESET - обязательно задействовать. Хоть от LPT порта, хоть от чего угодно... Сей хак, несмотря на свою феерическую грязность дает просто волшебные результаты, причем совершенно задаром, в отличие от всяких разных watchdog'ов.

Macil ★★★★★
()
Ответ на: комментарий от Macil

> И вот еще, если на модеме есть вход RESET - обязательно задействовать.

В данном случае есть вещь лучше ресета - управление питанием модема через вывод GPIO0 SoC. gpio -c 0 - выключить питание gpio -s 0 - включить питание

Правда пока ни разу не требовалась с новой прошивкой. Модем ведёт себя вполне адекватно.

Хотя по большому счёту было бы неплохо чтобы при реконнекте тот же pppd проверял работу устройства (наличие /dev/ttyACM0, положительный результат работы chap), и если что не так - то дёргал модему питание. Видимо эту фичу сделаю в следующей версии. Главное - найти правильное место для этого кода.

Stanson ★★★★★
() автор топика
Ответ на: комментарий от Stanson

> Что до "нельзя претензии предъявлять торговцу" - это не так. Попробуйте торговать ноутбуками с нелицензионной виндой. Никто не будет выяснять, чьи это ноутбуки и кто их изготавливает. Здесь то же самое - Скайлинк продаёт (распространяет) железо с нелицензионным ПО (ибо нарушает лицензию) - поэтому Скайлинк нарушает закон.

Разница, видимо, в том, что против нелицензионной винды - фирма с большим количеством бабла. А против нарушений GPL силы куда более скромные.

Ведь по сути говоря, GetTheFacts - это тоже прямое нарушение Закона о рекламе. Нельзя рекламировать свой товар, охаивая конкурента. И что, где хотя бы один судебный процесс?

hobbit ★★★★★
()
Ответ на: комментарий от Anonymous

Ну дадут они свободную часть прошивки без проприетарных перезапускальщиков демонов и проверяльщиков контрольных сумм. Сильно легче от этого станет? Если бы не было бага в проверяльщике контрольной суммы, то вообще толку было бы ноль от такого выкладывания.

Reset ★★★★★
()

И, к сожалению, таких - масса.

PS: Авторы, учите русский язык! Ставьте запятые там, где они _должны_ быть. Читать невозможно!

SySAlex
()
Ответ на: комментарий от Reset

> Ну дадут они свободную часть прошивки без проприетарных перезапускальщиков демонов и проверяльщиков контрольных сумм. Сильно легче от этого станет?

Да. На самом деле больше всего нужны исходники ядра изменённые именно под эту конфигурацию. Какие GPIO в какое состояние привести, как всякую периферию настроить и т.п. Это всё - в ядре. И что они там наменяли и как должно быть - без исходников как-то муторно выяснять. Хорошо если ядро от Гигабайта сразу заведётся. А если нет?

А что до прошивки - так для этого jtag есть по большому счёту. И совершенно наплевать на все контрольные суммы. А чтоб через вебморду - так это больше для удобства. Кроме того, в РФ никто не запрещает разобрать проприетарную софтину для прошивки flash и посмотреть как она считает и сравнивает эту КС. Я разобрал и посмотрел - никак не сравнивает. Хотя считает. Как именно - не стал разбираться, ибо оказалось незачем.

Stanson ★★★★★
() автор топика

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

sinister666 ★★
()

Скайлинк - решето!

AnDoR ★★★★★
()

гм, вспоминаются мои попытки выковырять смску из adu-300a (http://www.linux.org.ru/view-message.jsp?msgid=3786231)

в офисе на вопрос "где можно взять спеки?" дядька ответил что-то типа "у нас такой информации нет, и дать ее я не имею права"

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

EqX
()
Ответ на: комментарий от Stanson

> Это всё - в ядре.

не факт, они могут менять регистры железа через ioctl из закрытой userspace утилиты и фиг тогда ты что узнаешь

Reset ★★★★★
()
Ответ на: комментарий от Reset

> не факт, они могут менять регистры железа через ioctl из закрытой userspace утилиты и фиг тогда ты что узнаешь

Могут. Но не меняют. Поэтому нужны исходники ядра. В конце-концов они обязаны их отдать. Кстати, ioctl там не нужен. Там MMU нет - так что можно тупо писать *(0xF0030001) = 1234;

Stanson ★★★★★
() автор топика
Ответ на: комментарий от EqX

> гм, вспоминаются мои попытки выковырять смску из adu-300a

Ну в данном случае чтение СМС я всё-же сделал. Помогли команды AT$$READALLMT AT$$RDAUSMS Возможно для adu300 - другие команды, можно попробовать IS-707 AT Commands

Stanson ★★★★★
() автор топика

>некоторое количество очень криво собранных утилит
безмерно доставляют подобные фразы
как их можно собрать "криво"?
у них какойто свой гцц который "криво" собирает?

TERRANZ ★★★★
()
Ответ на: комментарий от TERRANZ

> безмерно доставляют подобные фразы > как их можно собрать "криво"? > у них какойто свой гцц который "криво" собирает?

Очень просто. Например можно забыть при сборке указать опцию -fpic И будет сгенерён кривой код, который не будет работать. Можно указать не тот процессор - и в коде будут команды, которые на другом железе отсутствуют или выполняются иначе. Можно собрать программу тупо взяв исходники и не удосужившись подправить их с учётом отсутствия MMU и наличия uClibc - и программа не будет форкать нужный для правильной работы процесс. Да и гцц может быть старым и генерировать ошибочный код на некоторых участках кода. Вариантов - миллион.

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

Stanson ★★★★★
() автор топика
Ответ на: комментарий от EqX

>> AT$$READALLMT AT$$RDAUSMS

> оба раза ERROR в ответ


>> IS-707 AT Commands


> пробовал, то же самое


А что-нибудь типа
AT+RDMT
или
AT+RDMT=0
?

MT - Mobile Terminated
MO - Mobile Originated
Соответсвенно попробовать всякие вариации на тему сокращений от Read, get и т.д. Плюс всякие плюсики-баксики которыми обычно вендороспецифичные команды славятся.

Часто модемы выдают справку если написать
ATкоманда?
или
ATкоманда=?

Всякие такие бумажки поглядеть ещё можно - http://www.canarysystems.com/nsupport/CDMA_AT_Commands.pdf

Stanson ★★★★★
() автор топика
Ответ на: комментарий от anc

>БАНКОМАТЫ? НЕ ПОД ВЕНДОЙ???????

для того и берут mini-ITX чтобы маленькие роутеры делать которые пихаются внутрь банкоматов вместе с собственно банкоматовской начинкой

и так получается гораздо гибче и дешевле чем брать дорогие про модемы всякие

к энидате очень мало атшных команд подходят ни смски не посмотришь не поотправляешь ни даже пинкод не повводишь

проприетарная виндовая тулза ищет в реестре ком порт на котором сидит устройство(там их два она ищет именно тот который проприетарный (неАТшный)). пока на этом закончились мои попытки её под вайном запустить. Теоритически можно чтонибудь в реестр вайновский записать чтобы ей подсунуть /dev/ttyUSB1

van
()
Ответ на: комментарий от Anonymous

> PS куда смотрит http://gpl-violations.org/ ? хотя действительно чуток обидно, что когда Скайлинк вынудят выполнять лицензии они фактически окажутся в выигрыше...

Да куда бы он не смотрел, Скайлинк не ведет своих разработок по железу, чисто ОЕМят чужое и им плевать, что внутри этого железа. Нужно не к Скайлинку претензии предъявлять, а к тому, кто это железо выпускает и пишет к нему софт, обычно к китайцам. Скайлинку предъявлять какие либо претензии бесполезно, это все равно что предъявить претензии магазину, что он вам исходники в коробку с устройством не засунул.

McMCC ★★★
()
Ответ на: комментарий от McMCC

> Нужно не к Скайлинку претензии предъявлять

Ну давайте начнём с простого. Вопрос:

Тот, кто продаёт или другим образом распространяет нелицензионное ПО - нарушает закон или нет?

Stanson ★★★★★
() автор топика
Ответ на: комментарий от Stanson

>Ну давайте начнём с простого. Вопрос:
Тот, кто продаёт или другим образом распространяет нелицензионное ПО - нарушает закон или нет?

А магазины нарушают закон или нет? С такой логикой можно всех обвинить в нарушении законов, в том числе и вас....

McMCC ★★★
()
Ответ на: комментарий от McMCC

На вопрос ответьте:

Тот, кто продаёт или другим образом распространяет нелицензионное ПО - нарушает закон или нет?

Stanson ★★★★★
() автор топика
Ответ на: комментарий от Stanson

> Тот, кто продаёт или другим образом распространяет нелицензионное ПО - нарушает закон или нет?

И я вам про тоже, у вас доказательства есть? Вы соглашение при покупке железа читали? Если купили, значит читали! Следуя вашей логики, вас тоже можно уличить в нарушении закона по нескольким пунктам, а именно, покупка не лицензионного ПО, вы же не будете отрицать того факта, что вы купили это устройство преднамеренно? Если вы не знали, то за это тоже сажают, но шутки всторону :). Второе, наверное самое главное и единственное, это нарушение соглашения, в котором четко прописан запрет "вскрывать" железо и нарушать авторские права и патенты компании Cmotech, а не Скайлинк, чем собственно ввели в заблуждение аудиторию, перекладывая ответственность на Скайлинк. И третье, хотелось бы услышать, что именно нарушил Скайлинк и как это можно привязать к нашим законам? Если вы собираетесь судиться со Скайлинком, то у вас нет шансов и закон будет на стороне Скайлинка, а вот вас как раз можно "посадить", советую прочесть законы и поймете почему, только не устраивайте тут истерик.

McMCC ★★★
()
Ответ на: комментарий от McMCC

Не надо этих дешёвеньких приёмчиков. Со мной это не проходит. Ответьте на вопрос:

Тот, кто продаёт или другим образом распространяет нелицензионное ПО - нарушает закон или нет?

Stanson ★★★★★
() автор топика
Ответ на: комментарий от Stanson

Почему дешевых? Вам светят статьи 146 и 147 УК РФ, а вы все ответа ждете :)

McMCC ★★★
()
Ответ на: комментарий от Stanson

> Тот, кто продаёт или другим образом распространяет нелицензионное ПО - нарушает закон или нет?

Конечно нарушает, так же как нарушает тот, кто покупает! Я еще раз повторю свой вопрос, у вас доказательства есть, что Скайлинк нарушает законы? Если да, то какие законы? А пока что нарушаете законы вы, и я вам выше на пальцах объяснил, какие именно...

McMCC ★★★
()
Ответ на: комментарий от McMCC

> Конечно нарушает

Отлично.
Следующий вопрос - если на ПО нарушена лицензия - оно нелицензионное?

Stanson ★★★★★
() автор топика
Ответ на: комментарий от Stanson

> Следующий вопрос - если на ПО нарушена лицензия - оно нелицензионное?

Это смотря как посмотреть. На всякий случай сообщаю, что GPL в РФ не имеет юридической силы, ни один суд в РФ не примет во внимание, что написано в этой лицензии. Суд примет во внимание заявления от компании Cmotech, которое поступит сразу, как вы только подадите в суд на Скайлинк, т.е. встречный иск. Почему? Да потому, что вы нарушили соглашение об авторском праве компании Cmotech, даже если оно смежное, это соглашение вы приняли, когда покупали устройство и не важно, что устройство работает по большей части на GPL софте, суд так же примет во внимание заявления авторов, чьи компоненты и исходный код используется в прошивках этого устройства, да и то, если это будет доказано, и уж точно ни когда не примет во внимание текста GPL лицензии и вашего личного мнения. Все это может потянуть на статьи 146 и 147 УК РФ, а если сильно постараются, то вам могут в довесок припаять статьи 272 и 273, за распространение вредоносного кода и попробуйте доказать, что это не так. Я ясно выразился? Есть желание доказать, что софт "не лицензионный"? Желаю удачи...

McMCC ★★★
()
Ответ на: комментарий от McMCC

Ещё раз повторяю вопрос:

> если на ПО нарушена лицензия - оно нелицензионное?


И оставьте уже свой словесный понос с глупыми домыслами про какие-то там "соглашения при покупке", авторском праве Cmotech которого вообще нет, разве только на корпус устройства, или про запреты покупателю компьютера разбирать его и менять на нём софт - на меня это не действует и речь сейчас не об этом, не тратьте моё время.

Stanson ★★★★★
() автор топика
Ответ на: комментарий от Stanson

> И оставьте уже свой словесный понос с глупыми домыслами про какие-то там "соглашения при покупке", авторском праве Cmotech которого вообще нет, разве только на корпус устройства, или про запреты покупателю компьютера разбирать его и менять на нём софт - на меня это не действует и речь сейчас не об этом, не тратьте моё время.

Я же вас просил не устраивать истерик... Авторские права есть у всех, про нарушение законов вы должны доказывать не тут, а в суде, или для вас слова "презумпция невиновности" ни чего не значат? Выше, я вам коротко описал, как будет действовать любой суд в РФ, материалов по подобным делам полно, и все они не в пользу GPL, а уж как будет действовать Скайлинк, известно только их юристам, в любом случае, ваша тактика не верная и полная каша в голове! Нужно писать в GPL Violations на Cmotech, а не на Скайлинк, просто с последним у вас нет шансов, зато на Cmotech могут надавить за то, что не выложили исходники и это все. Только не надо доказывать про лицензионность или не лицензионность оборудования с софтом распространяемого Скайлинком, вам любой юрист в РФ докажет, что эта версия обречена на провал.

McMCC ★★★
()
Ответ на: комментарий от Stanson

> не тратьте моё время.

Судя по тому, что вы активно отвечаете, его у вас до фига...

McMCC ★★★
()
Ответ на: комментарий от McMCC

Ну что ж.
Добро пожаловать в мой игнор лист, McMCC, я смотрю вы даже не собираетесь вести дискуссию честно, без всяких глупых приёмов типа "увод от темы" или "обвини собеседника во всех грехах".

И передайте папе или маме, или кто там у вас в Скайлинке работает, что они выбрали плохое место для работы.

Можете не трудиться отвечать, ваших сообщений я больше не увижу.

Stanson ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.