Page 80 of 81 FirstFirst ... 307078798081 LastLast
Results 1,186 to 1,200 of 1215

Thread: "Обвязка" 3G/4G и CDMA модемов на прошивке энтузиастов

  1. #1186
    Quote Originally Posted by nataraj View Post
    Как уже сказал rss, если начать отображать существующую логику работы автодетекта через веб интерфейс, то получится полное месево. Я с ним согласен. То что эту логику невозможно невозможно нормально нарисовать в виде интерфейса говорит о том, что логика противоестетвенная.
    Возможно "нарисовать логику нормально". Но для этого надо заново создать форму, продумав всю последовательность первичной настройки и последующей подстройки. + если трогать эту форму, неплохо бы подтянуть и логи по модему, и USSD, поскольку по логике всё управление должно быть собрано.

    Отключить автодетект на определение типа модема не сложно, но честно говоря не уверен в том, что это надо. 3G и CDMA модемы различаются только в APN и login. Номера дозвона почти у всех одинаковые и редко кому приходится их изменять. Вероятность определения модема без какого либо вмешательства пользователя довольно велика и так.
    * Wiki *

  2. #1187
    Quote Originally Posted by rss View Post
    Возможно "нарисовать логику нормально". Но для этого надо заново создать форму, продумав всю последовательность первичной настройки и последующей подстройки. + если трогать эту форму, неплохо бы подтянуть и логи по модему, и USSD, поскольку по логике всё управление должно быть собрано.

    Отключить автодетект на определение типа модема не сложно, но честно говоря не уверен в том, что это надо. 3G и CDMA модемы различаются только в APN и login.
    Нет, это не так. Внутри GPRS и Co отличия действительно только в apn login и passowrd: https://git.gnome.org/browse/mobile-...eproviders.xml -- это квинтесенция знания опенсорсного мира обо всех провайдерах мобильного интернета всего мира.

    Однако между GPRS и CDMA разница очень большая: Для CDMA модема нужен принципиально другой чат скрипт. При попытке скормить CDMA модему последовательность AT команд рассчитанных на GPRS происходит ошибка. CDMA модем не понимает строку инициализации обычную для GPRS модемов и ругается. По крайней мере на части модемов. Именно по этой причине и возникла эта тема. И, надо сказать, люди начавшие тему так и не преуспели в подключении своих модемов.

    Я, в попытках понять в чем дело, разобрал несколько слоев прошивки, так и не понял отчего оно так происходит и только после этого, когда разработчики пришли в тему, мне модем настроить удалось. Далеко не все могут залезть так глубоко как я.

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

    Ну внатуре несколько людей до меня реально об это обломались. Полистайте тему, решения они не нашли.

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

    При этом появиться новая функциональность: Не внесенные в спикок CDMA модемы начнут работать при указанном в интерфейсе типе модема

    Quote Originally Posted by rss View Post
    Номера дозвона почти у всех одинаковые и редко кому приходится их изменять. Вероятность определения модема без какого либо вмешательства пользователя довольно велика и так.
    Робяты, мне реально есть чем заняться в области опенсорса, помимо споров на форуме об очевидных вещах.

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

    Но если вас устраивает, что оборудование, которое после пары ударов пальцами может работать из коробки, из коробки не работает настолько, что юзеры отчаиваются и уходят, то я пойду искать другой лунапарк. Линукс можно ломать много где...
    Last edited by nataraj; 15-01-2014 at 15:43.

  3. #1188
    Quote Originally Posted by nataraj View Post
    Нет, это не так. Внутри GPRS и Co отличия действительно только в apn login и passowrd:
    Речь шла только о форме.

    Quote Originally Posted by nataraj View Post
    Если отключить автодетект типа модема, то мы не потеряем никакой функциональности, потому что пользователи как указывали тип модема в веб интерфейсе, так и будут его указывать. Никто кроме разработчиков не знает, что этот пункт меню игнорируется и оверрайдится автоматикой, и выбирают его руками.

    При этом появиться новая функциональность: Не внесенные в спикок CDMA модемы начнут работать при указанном в интерфейсе типе модема
    Если информация о модемах будет внесена - они действительно начнут работать. А так - гарантий, что автодетект сделает всё автоматически всё равно нет. Всё равно процесс вероятностный.

    Для отключения см. http://wl500g.googlecode.com/svn/trunk/rc/usbmodem.c search_modems_in_list() - логика автодетекта при отсутствии модема в базе.

    Взаимодействие со скриптами происходит через переменную nvram wan0_type. Соответственно, можно исправить и в http://wl500g.googlecode.com/svn/tru...s/usr/ppp/dial.
    * Wiki *

  4. #1189
    Quote Originally Posted by rss View Post
    Речь шла только о форме.


    Если информация о модемах будет внесена - они действительно начнут работать. А так - гарантий, что автодетект сделает всё автоматически всё равно нет. Всё равно процесс вероятностный.
    Это понятно, что вероятностный. Но сейчас у CDMA модема просто нет шанса, если он init string от GPRS'ного есть не умеет.

    Quote Originally Posted by rss View Post
    Для отключения см. http://wl500g.googlecode.com/svn/trunk/rc/usbmodem.c search_modems_in_list() - логика автодетекта при отсутствии модема в базе.

    Взаимодействие со скриптами происходит через переменную nvram wan0_type. Соответственно, можно исправить и в http://wl500g.googlecode.com/svn/tru...s/usr/ppp/dial.
    Если сделаю, патч примите? Оформлю в соответствии с пожеланиями.
    // а то у меня уже все работает, личной надобности уже нет.

  5. #1190
    Quote Originally Posted by nataraj View Post
    Это понятно, что вероятностный. Но сейчас у CDMA модема просто нет шанса, если он init string от GPRS'ного есть не умеет.



    Если сделаю, патч примите? Оформлю в соответствии с пожеланиями.
    // а то у меня уже все работает, личной надобности уже нет.
    Если просто уберём тип модема из автодетекта, то после очередной перепрошивки и сброса настроек к заводским, что очень рекомендовано, тут же возникнет поток сообщений, что поломался доступ ко всем cdma модемам которые раньше работали из коробки.
    Вот если бы Вы предложили алгоритм как cdma от wcdma отличать в автодетекте.
    Ещё на сегодня ИМХО актуально добавить в автодетект определение провайдера со всеми его настройками по симке.
    ASUS RT-AC66U <Merlin 384.15>
    ASUS RT-N66U <Merlin>
    ASUS RT-N16 <Merlin>

    Макет нового WEB интерфейса Для iPhone/iPad

  6. #1191
    Quote Originally Posted by dlukanidin View Post
    Если просто уберём тип модема из автодетекта, то после очередной перепрошивки и сброса настроек к заводским, что очень рекомендовано, тут же возникнет поток сообщений, что поломался доступ ко всем cdma модемам которые раньше работали из коробки.
    Вот если бы Вы предложили алгоритм как cdma от wcdma отличать в автодетекте.
    Резонно.

    Тогда предлагаю так: если модема нет явным образом в списке, тип модема определяется как '?', после чего ppp/dial при выборе чат-скрипта начинает ориентироваться на выбор сделанный в веб интерфейсе.

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

    Quote Originally Posted by dlukanidin View Post
    Ещё на сегодня ИМХО актуально добавить в автодетект определение провайдера со всеми его настройками по симке.
    Тут есть минимум один подводный камень: в некоторых странах некоторые провайдеры в зависимости от apn/login начинают тарифицировать соединение по разным тарифным планам. И есть шанс, что у кого-то такая автоматика сожрет все деньги...

    Но ИМХО это пока рано обсуждать.

  7. #1192
    Quote Originally Posted by nataraj View Post
    Резонно.

    Тогда предлагаю так: если модема нет явным образом в списке, тип модема определяется как '?', после чего ppp/dial при выборе чат-скрипта начинает ориентироваться на выбор сделанный в веб интерфейсе.

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

    Тут есть минимум один подводный камень: в некоторых странах некоторые провайдеры в зависимости от apn/login начинают тарифицировать соединение по разным тарифным планам. И есть шанс, что у кого-то такая автоматика сожрет все деньги...

    Но ИМХО это пока рано обсуждать.
    А чем Ваше предложение меняет ситуацию? Все равно ведь работать перестанут.
    Ну насчет тарифного плана это уже явная ответственность пользователя указать параметры от оплаченного тарифа, а вот избавить его от обязанности искать на сайте провайдера стандартные параметры соединения для его симки было бы неплохо. Правда тут похожая коллизия возникает, автоматика будет затирать данные пользователя и вопрос как это удобно и понятно совместить друг с другом.

    P.S. Кстати Ваш модем добавлен.
    ASUS RT-AC66U <Merlin 384.15>
    ASUS RT-N66U <Merlin>
    ASUS RT-N16 <Merlin>

    Макет нового WEB интерфейса Для iPhone/iPad

  8. #1193
    Quote Originally Posted by dlukanidin View Post
    А чем Ваше предложение меняет ситуацию? Все равно ведь работать перестанут.
    0. Вообще, если сбросить на заводские настройки, то WAN Connection Type ставиться в "Automatic IP" и модем перестает работать совсем.
    Поэтому дальше пойдет речь о том, чтобы настраивалось теми же настройками что и раньше". Пойдем по кейсам:

    1. GPRS modem (и приравненные):

    В веб интерфейсе в качетстве "Modem type" по умолчанию стоит "GPRS/UMS/LTE", и если модем не известен прошивке, то будет взято именно это значение. И все продолжит работать как раньше.

    Перестанет работать только один вариант: когда модем не в списке, а человек в качестве типа модема указал CDMA. На мой взгляд в данном случае резонно было бы переложить ответсвенность на пользователя, при переконфигурации указать правильный тип модема.

    2. CDMA модем.

    Если модем в списке, то все работает как раньше

    Если модем не в списке, но без ошибок съедает инит-строку от GPRS модемов, то все продолжает работать как раньше, ибо "Modem type" по умолчанию стоит "GPRS/UMS/LTE".

    Если модем не в списке, но выдает ошибку от инит-строки от GPRS модемов, то простая установка "Modem type" в "CDMA" делает этот модем работоспособным. При этом если человек воспроизведет конфигурацию с отключенным автодетектом, то все тоже продолжит работать.


    Резюме. При добавлении для неопознанных устройств типа модема '?' который обрабатывается ppp/dial как "взять тип модема из веб интерфейса", мы получаем неработоспособоность неуказанных в списке GPRS модемов при указании типа модема CDMA, и получаем работоспособность из коробки для части CDMA модемов отсутствующих в списке, при указании только правильного типа модема, и без указания хардверных настроек которые и так автоматически определяются успешно.


    По моему одно другого стоит.

    Quote Originally Posted by dlukanidin View Post
    P.S. Кстати Ваш модем добавлен.
    Это хорошо, спасибо

  9. #1194
    Quote Originally Posted by nataraj View Post
    0. Вообще, если сбросить на заводские настройки, то WAN Connection Type ставиться в "Automatic IP" и модем перестает работать совсем.
    Поэтому дальше пойдет речь о том, чтобы настраивалось теми же настройками что и раньше". Пойдем по кейсам:

    1. GPRS modem (и приравненные):

    В веб интерфейсе в качетстве "Modem type" по умолчанию стоит "GPRS/UMS/LTE", и если модем не известен прошивке, то будет взято именно это значение. И все продолжит работать как раньше.

    Перестанет работать только один вариант: когда модем не в списке, а человек в качестве типа модема указал CDMA. На мой взгляд в данном случае резонно было бы переложить ответсвенность на пользователя, при переконфигурации указать правильный тип модема.

    2. CDMA модем.

    Если модем в списке, то все работает как раньше

    Если модем не в списке, но без ошибок съедает инит-строку от GPRS модемов, то все продолжает работать как раньше, ибо "Modem type" по умолчанию стоит "GPRS/UMS/LTE".

    Если модем не в списке, но выдает ошибку от инит-строки от GPRS модемов, то простая установка "Modem type" в "CDMA" делает этот модем работоспособным. При этом если человек воспроизведет конфигурацию с отключенным автодетектом, то все тоже продолжит работать.


    Резюме. При добавлении для неопознанных устройств типа модема '?' который обрабатывается ppp/dial как "взять тип модема из веб интерфейса", мы получаем неработоспособоность неуказанных в списке GPRS модемов при указании типа модема CDMA, и получаем работоспособность из коробки для части CDMA модемов отсутствующих в списке, при указании только правильного типа модема, и без указания хардверных настроек которые и так автоматически определяются успешно.

    По моему одно другого стоит.

    Это хорошо, спасибо
    Извините, я ничего не понял.
    Скрипт в любом случае берёт значения из nvram. Туда эти значения заносятся изначально из установленных по умолчанию в прошивке (отсутствующее значение это тоже значение) и меняются либо из морды, либо, если включена автоматика, при подключении устройства исходя из некоторой логики. При этом в автомате бОльшая часть параметров берётся из базы модемов, для неизвестных модемов делается попытка определить порт данных и всё. Никакие драйвера на тот момент ещё не загружены и общение с модемом не возможно.
    Мне понятно желание сделать недоступным для редактирования параметр типа модема, если включен автомат, в котором он устанавливается. Более того это наверное правильно.
    Считаю неправильным вывести из автомата тип модема, т.к. это существенная характеристика именно железки и без неё автоматика станет ущербной, т.к. даже для модемов из базы будет требоваться ручная настройка.

    Если у Вас есть желание что-то поменять, я бы предложил либо подготовить ваш вариант прошивки, либо изложить Ваше видение алгоритма работы этой ветки, но в более формализованом виде. Т.е. значения по умолчанию, что где когда и кто меняет по происходящим событиям. Такую развёрнутую блок схему с пояснениями.
    Приведённое Вами выше изложение ИМХО недостаточно для понимания.
    Last edited by dlukanidin; 17-01-2014 at 11:50.
    ASUS RT-AC66U <Merlin 384.15>
    ASUS RT-N66U <Merlin>
    ASUS RT-N16 <Merlin>

    Макет нового WEB интерфейса Для iPhone/iPad

  10. #1195
    Quote Originally Posted by dlukanidin View Post
    Считаю неправильным вывести из автомата тип модема, т.к. это существенная характеристика именно железки и без неё автоматика станет ущербной, т.к. даже для модемов из базы будет требоваться ручная настройка.
    Предлагается следующее:
    Для модемов _НЕ_ВХОДЯЩИХ_ в список из rc/usbmodem.h выдавать отдельный тип '?', и модифицировать скрипт ppp/dial так, чтобы при типе ? тип модема определялся по тому значению которое установлено в веб интерфейсе (если я ничего не путаю, выбор типа модема в веб интерфейсе храниться в отдельной переменной в nvram на котору автоматика не действует)

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

    Для GSM модемов не из списка будет происходить fallback к дефолтному значению W, если в nvram веб-интерфейса ничего про тип модема не сказано

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

    Quote Originally Posted by dlukanidin View Post
    Если у Вас есть желание что-то поменять, я бы предложил либо подготовить ваш вариант прошивки, либо изложить Ваше видение алгоритма работы этой ветки, но в более формализованом виде. Т.е. значения по умолчанию, что где когда и кто меняет по происходящим событиям. Такую развёрнутую блок схему с пояснениями.
    Приведённое Вами выше изложение ИМХО недостаточно для понимания.
    OMG. Хорошо попробую.

  11. #1196
    Quote Originally Posted by dlukanidin View Post
    Если у Вас есть желание что-то поменять, я бы предложил либо подготовить ваш вариант прошивки, либо изложить Ваше видение алгоритма работы этой ветки, но в более формализованом виде. Т.е. значения по умолчанию, что где когда и кто меняет по происходящим событиям. Такую развёрнутую блок схему с пояснениями.
    Приведённое Вами выше изложение ИМХО недостаточно для понимания.
    Чтобы быть максимально точным, уточняющий вопрос.
    Я в nvram вижу две переменные:
    1. wan0_modem_type
    2. wan_modem_type

    На первую из них автодетект влияет напрямую.
    Во второй записано ровно то, что выбрано в веб интерфейсе.

    Каков их идейный смысл?

  12. #1197
    Quote Originally Posted by nataraj View Post
    Чтобы быть максимально точным, уточняющий вопрос.
    Я в nvram вижу две переменные:
    1. wan0_modem_type
    2. wan_modem_type

    На первую из них автодетект влияет напрямую.
    Во второй записано ровно то, что выбрано в веб интерфейсе.

    Каков их идейный смысл?
    wan_ - настройки из интерфейса.
    wan0_ ... wan255 - конкретные каналы WAN со своими настройками.
    * Wiki *

  13. #1198
    Quote Originally Posted by rss View Post
    wan_ - настройки из интерфейса.
    wan0_ ... wan255 - конкретные каналы WAN со своими настройками.
    Можем ли мы в ppp/dial написать что-то вроде:

    Code:
    $type = get_nvram(wan[N]_modem_type)
    
    if ($type == '?') $type = get_nvram(wan_modem_type)
    // разумеется речь тут идет о неком псевдокоде, а не bash скрипте...

    Не нарушит ли это каких-то идейных моментов?

  14. #1199
    Quote Originally Posted by nataraj View Post
    Можем ли мы в ppp/dial написать что-то вроде:

    Code:
    $type = get_nvram(wan[N]_modem_type)
    
    if ($type == '?') $type = get_nvram(wan_modem_type)
    // разумеется речь тут идет о неком псевдокоде, а не bash скрипте...

    Не нарушит ли это каких-то идейных моментов?
    Причём здесь идейные моменты? У Вас есть идея, реализуйте её и представьте результат, если возможно, то и с описанием почему именно так по Вашему мнению правильно.
    А все моменты будут уже потом.
    ASUS RT-AC66U <Merlin 384.15>
    ASUS RT-N66U <Merlin>
    ASUS RT-N16 <Merlin>

    Макет нового WEB интерфейса Для iPhone/iPad

  15. #1200
    Quote Originally Posted by dlukanidin View Post
    Причём здесь идейные моменты? У Вас есть идея, реализуйте её и представьте результат, если возможно, то и с описанием почему именно так по Вашему мнению правильно.
    А все моменты будут уже потом.
    Давайте начну с описания.

    У нас есть:

    autodetected_modem_type, который определяет rc/usbmodem.c
    wan0_modem_type переменная в nvram в которую он попадает.
    wan_modem_type переменная в nvram которая отображает выбор типа модема в веб интерфейсе.

    autodetected_modem_type равен С или W для модемов в списке из rc/usbmodem.h
    и равен '?' для модемов не из списка.

    ppp/dial работает с этим следующем образом

    Code:
     $type = wan0_modem_type;
    if ($type == '?')
    {
      $type = wan_modem_type;
    }
    
    
    choose_chatscript($type)
    Таким образом для модемов из списка все будет работать как работало раньше,

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

    // На тему что будет если память была очищена и в нее ничего не было записано: условная функция choose_chatscript по факту в ppp/dial устроен так, что если туда передается не 'C' и не 'USR' то оно начинает работать как 'W'

    Далее пошел таки собирать toolchain на дебиан. Если против изложенной логики есть возражения, то поставьте меня в извеснтость.

Page 80 of 81 FirstFirst ... 307078798081 LastLast

Similar Threads

  1. Драйв - Fast NAT в прошивке энтузиастов!
    By theMIROn in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 71
    Last Post: 13-10-2016, 08:42
  2. ipset в прошивке энтузиастов
    By ryzhov_al in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 10
    Last Post: 10-02-2015, 15:40
  3. WiFidog на прошивке Олега и энтузиастов
    By semen-demon in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 10
    Last Post: 29-08-2013, 10:08
  4. Поддержка l7-filter в прошивке энтузиастов
    By severeg in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 72
    Last Post: 26-11-2012, 02:06
  5. Replies: 204
    Last Post: 28-06-2011, 20:08

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •