Вадим Павлович Яницкий @axilirator
Программист, коллекционирую старые телефоны
Информация
- В рейтинге
- Не участвует
- Откуда
- Новосибирск, Новосибирская обл., Россия
- Дата рождения
- Зарегистрирован
- Активность
Специализация
Software Developer, Pentester
Программист, коллекционирую старые телефоны
Чтобы не было путаницы, можно использовать термины Uplink (от клиента) и Downlink (к клиенту). Они и в проводных и беспроводных (например, мобильных) сетях широко используются.
Я таки запамятовал. 2.8 В на самом деле. Цитирую https://www.freecalypso.org/pub/GSM/FreeCalypso/duart28-userman-latest.pdf: "All UART output signals from DUART28 drive at 2.8 V logic levels, as opposed to more common 3.3 V; this slightly lower I/O voltage is native to Calypso and other mobile phone chipsets from that era".
Спасибо за статью! Пара дополнений с моей стороны.
На C113/C115/C118/C123 слишком мало памяти. Там будет работать только урезанная версия прошивки без UI и GPRS/CSD. Вот тут можно почитать подробнее: https://www.freecalypso.org/hg/fc-am-toolkit/file/tip/doc/FC-aftermarket-intro. И вот тут: https://www.freecalypso.org/hg/fc-magnetite/file/tip/doc/Voice-pseudo-modem.
Я прошил один Motorola C118 вариантом VPM, ради интереса. Вот теперь лежит в кладовке :)
На самом деле, UART там вообще кушает 1.2 В. Официальный DUART28, который для FCDEV3B, как раз работает на 1.2 В. Но 3.3 В оно тоже кушает, еще ни у кого не сгорало от этого, вроде бы.
https://www.freecalypso.org/hg/fc-magnetite/ - это один из вариантов прошивки. Там есть еще https://www.freecalypso.org/hg/fc-selenite/, https://www.freecalypso.org/hg/freecalypso-citrine/, и https://www.freecalypso.org/hg/fc-tourmaline/. В них должно быть меньше блобов. https://www.freecalypso.org/hg/fc-tourmaline/, если память не изменяет, должен быть самым свежим из всех проектом.
Вот именно. Никто не писал эту прошивку с нуля. FreeCalypso берет за основу утекшие исходники, и ни капли этого не стесняется. Что не обесценивает работу автора проекта, ведь там и правда была проведена большая работа по де-блоббингу и пересадке/интеграции компонентов из разных билдов/утечек в единое целое. Ну и тулинг для всего этого - тоже заслуживает уважения.
Пропустил слово "рассмотренных", каюсь. Но даже у поддерживаемых моделей компоненты радиотракта могут отличаться.
Не совсем. Бывают разные виды трансиверов (TRF6151C, TRF6151CJ, Si4210 AeroII). А еще разные виды PA (усилителей). Интерфейсы/команды у них отличаются. Именно поэтому есть немало телефонов на TI Calypso, которые ни FreeCalypso, ни osmocom-bb полноценно не поддерживают.
Тут проблема гораздо банальнее: объем памяти и размер экрана. У моделей вроде C123/C118/C115/... всего 2 MiB флеш памяти, и туда просто не помещается GPRS/CSD и UI. Для них есть упрощенная конфигурация, которая называется Voice-pseudo-modem. Без UI, без GPRS/CSD, только AT-команды.
Звучит очень высокомерно. Даже удивительно, что этот самый электорат Ваш комментарий не заминусовал. Я не стану говорить за всю аудиторию хабра, но здесь определенно есть люди, которые неплохо понимают в телекоме и пишут неплохие статьи.
Экспериментальная/неполная поддержка bladeRF в osmo-trx есть (https://gerrit.osmocom.org/c/osmo-trx/+/30413). Собирайте с флагом --with-bladerf и пробуйте. Правда, судя по COMMIT_MSG, вряд ли это будет работать стабильно.
Нет, не пользовался. Нет подходящего оборудования. Там, ЕМНИП, bladeRF и USRP1 поддерживаются только. Поэтому и подсказать не смогу.
Впервые слышу про "один телефон - передатчик, второй - приемник". Оно не будет работать как "чисто передатчик", потому-что TDMA быстро начнет плыть и передаваемые биты не будут попадать в нужные окошки на стороне базовой станции. Только если как-нибудь хардварно соединить два телефона, чтобы у них общий clock был (как это с rtl-sdr делают).
Есть ветка jolly/testing, есть моя fixeria/trx, которая основана на первой. Там можно подключить две моторолы: одна будет принимать и передавать на TS0, а вторая - на TS1. Если поковырять код, то, наверное, можно и больше моторол подцепить.
Поддержка CSD появилась на уровне BTS и выше (BSC + MSC). Для трансивера нет разницы CSD это или голос, поэтому работать должно и с CalypsoBTS. Как собрать бинарник transceiver описано в wiki проекта (https://osmocom.org/projects/baseband/wiki/Transceiver).
Именно так. Но упор там был скорее на создание открытого смартфона, а не открытого телефона/модема. К идее открытого телефона/модема ближе всех проект FreeCalypso со своей платой FCDEV3B. DSP там по-прежнему остается черным ящиком, а вот остальную часть прошивки вполне можно собрать из когда-то утекших, а ныне неслабо переработанных исходников.
Взаимодействие с модемом там было реализовано точно также, как сегодня оно реализовано в современных смартфонах: отдельный black-box чип с UART'ом, своей операционной системой (Nucleus RTOS) и интерпретатором AT-команд. Вот тут можно почитать: https://wiki.openmoko.org/wiki/TI_Calypso_D751992AZHH. Запустить там osmocom-bb можно было, но только если так, поиграться. Сама прошивка osmocom-bb не использовала и просто посылала АТ-команды.
На некоторых 4G USB-модемах есть UFL сокет для подключения внешней антенны.
Расстояние до вышки может играть важную роль. У B200/B210/B205mini выходная мощность до ~16 дБм (~40 мВт), в то время как телефоны/модемы могут выдавать до 23 дБм (~200 мВт). У меня работало только с одним оператором, у которого вышки были максимально близко.
А вот передатчик SDR без фильтров вполне себе может. На выходе, помимо полезного сигнала, будут гармоники.
Вот с этим патчем https://gerrit.osmocom.org/c/docker-playground/+/36366 apt снова работает, и образ собирается. Работает ли OpenBTS-UMTS из этого образа - не знаю, проверить возможности нет.
Если использовать только srsRAN, то да. Но это неудивительно, ведь у них основной фокус именно на радио, и немалый фокус именно на UE (все наоборот, в отличие от Osmocom). Вместе с srsRAN можно использовать open5gs (бывший nextEPC), там фокус именно на core network. Если повозиться, можно завести CSFB, и телефон будет уходить на 2G для звонков и SMS. Вроде бы, и VoLTE завести можно: https://open5gs.org/open5gs/docs/tutorial/02-VoLTE-setup/