Приветствую всех!

Последние годы довольно часто обсуждаются проекты open-source телефонов. В основном это всякие смартфоны на Linux, иногда припоминают и всякую экзотику типа OpenMoko. Но есть одна проблема — baseband, процессор модема, который непосредственно отвечает за всё его взаимодействие с сетями. Эти чипы исполняют проприетарный код, исходники которого распространяются под строгими NDA и недоступны практически никому.

Как насчёт того, чтобы создать открытый GSM-телефон? Именно об этом мы сегодня и поговорим, а заодно и попробуем запустить такой экземпляр.



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

Суть такова


У всех на слуху такие девайсы как PinePhone или Fairphone. Это довольно интересные устройства, но сегодня речь пойдёт не о них. Если у упомянутых телефонов основной упор сделан на операционную систему, ремонтопригодность и тому подобные параметры, то проект, который мы рассмотрим сейчас, касается радиочастотной части: модема, DSP и взаимодействия с сотовой сетью на низком уровне. Во всех ранее представленных экземплярах используется уже готовый модуль модема, тогда как тут всё практически полностью открыто, а прошивка собирается из исходников и лишена блобов.

Сразу предупреждаю: то, что есть сейчас — всего лишь концепт, до полноценного использования девайса как телефона ещё далеко. Тем не менее, это хороший пример того, как при помощи доступного даже простому школьнику железа получить открытый (ну почти) GSM-телефон.

TI Calypso


Давным-давно, где-то в самом начале двухтысячных, в Texas Instruments придумали чипсет Calypso.



Он предназначался для построения на нём бюджетных кнопочных телефонов и использовался целым рядом компаний, в частности, Motorola, Sony Ericsson и Siemens.



На самом деле практически никто не занимался разработкой и производством телефонов, все эти задачи были отданы на откуп тайваньской Compal, у которой просто закупали огромными партиями дешёвые ODM-трубки. Таких телефонов, использующих данный чипсет, по факту было ещё больше, чем может показаться. И, казалось бы, девайсы не были примечательны что для пользователей, что для энтузиастов, если бы не один примечательный факт. В 2008 году на сайте cryptome.org была выложена слитая документация на данный чипсет. Это вызвало поистине небывалый интерес в узких кругах, позже с использованием этих наработок было создано немало интересных проектов, в том числе во всех смыслах легендарный OsmocomBB. Но сегодня речь пойдёт не о нём, а о прямо противоположном устройстве. Раз есть базовая станция с открытым ПО, то почему бы и не быть такому телефону? Именно о нём мы сейчас и поговорим.

FreeCalypso


Именно благодаря упомянутой утечке был создан проект FreeCalypso — открытая альтернативная прошивка для телефонов на таком чипсете. Для её использования понадобится только телефон из числа совместимых (их мы затронем чуть позже) и шнурок для подключения подопытного к компьютеру.

Несмотря на то, что прошивка цифрового сигнального процессора (он же DSP) так и остаётся «чёрным ящиком», можно с уверенностью сказать, что FreeCalypso наиболее близок к идее открытого GSM-телефона. На момент написания статьи ближе находятся только решения с использованием SDR, но простым пользователям они практически недоступны ввиду крайне высокой цены таких приборов, тогда как старый телефон на опыты может себе позволить практически каждый.

Обзор оборудования


Итак, для того, чтобы повторить у себя этот проект, понадобится всего-ничего: совместимый телефон, кабель для прошивки и компьютер с Linux.



А вот и подопытный телефон. Это Motorola C139. Подойдут также C113, C115, C118, C155, но лично я с ними не пробовал. Под другие телефоны альтернативной прошивки нет.



Как и в C118, тут тоже есть сервисное меню, код для его входа такой же: **16379#. Тут можно включить трассировку, которую он будет отправлять в последовательный порт.



Интерфейс также очень похож на другие телефоны Motorola на чипсете TI Calypso. Ну а если достать C118, сомнения о том, что это телефоны из одной линейки, пропадают сразу же.



Для прошивки понадобится некий «T191 unlock cable», служащий для связи телефона с компьютером.

image

На практике его можно заменить переходником на базе CP2102 (или любым другим, у которого есть поддержка уровней 3,3 В. Не используйте переходники с пятивольтовыми уровнями. Спалите телефон). Как его спаять, я уже описывал тут. Подключать его надо к ПК с Linux, виртуалка не подойдёт. Возможно, у вас дела будут обстоять иначе, но на практике я столкнулся с тем, что при подключении такой штуки к ВМ начинается периодический пропуск байтов.

Чуть-чуть об устройстве GSM-телефона


Немного затронем то, из чего вообще состоят обычные телефоны.
Сейчас нас интересуют именно кнопочные экземпляры, причём именно «традиционные», без какой-то пользовательской ОС и прочих наворотов. В отличие от смартфонов и коммуникаторов, где основной процессор общается с внешним модемом, здесь что пользовательские функции, что взаимодействие с сетью выполняются одним и тем же процессором, в нашем случае это тот самый TI Calypso.



Вот структурная схема телефона на таком чипсете. TI Calypso имеет в своём составе тот самый необходимый для работы сети DSP, процессорное ядро (ARM7TDMI) и аппаратные контроллеры интерфейса. К нему подключается радиочастотная часть: чип трансивера, высокостабильный генератор (тот самый, погрешности которого нам тогда не хватало, чтобы поднять свою БС без приёма синхросигнала от другой), антенна, фильтр, смеситель и антенный переключатель. Последний позволяет использовать одну антенну для приёма и передачи. Поскольку в GSM используется временно́е разделение, между кадрами на приём и передачу есть определённая задержка (равная длительности трёх кадров), так что этот чип представляет собой не частотно-разделительный фильтр, как в аналоговых телефонах (AMPS, TACS, NMT), а просто коммутатор, подключающий антенну то к приёмнику, то к передатчику.

Эти аналоговые сигналы обрабатывает DSP, прошивка и описание которого не разглашается даже производителям телефонов (тем же компаниям, которые и продают трубки, либо тем, кто выпускает ODM-телефоны, закупаемые предыдущими брендами).

Другими компонентами baseband являются аппаратный шифратор (реализующий те самые алгоритмы A5/1 и A5/2), ПЗУ с прошивкой DSP, аудиокодек, а также различные контроллеры — UART, дисплея, клавиатуры, ISO7816 (для чтения SIM-карты) и прочей периферии.

Что же до телефонов с двумя симками, то тут есть два варианта. Первый ныне практически полностью ушёл в историю — там используется один модем, а симки подключаются к нему через обычный мультиплексор. Таким образом, единовременно может быть доступна в сети только одна карта. Такая схема использовалась в первых таких телефонах (обычно это были дешёвые китайские трубки). Второй вариант сложнее — по сути это два полноценных модема, размещённых в одном корпусе. Так устроены ну практически все современные телефоны, начиная от стареньких Samsung Duos и заканчивая нынешними смартфонами.

Ставим софт


Переходим к опытам. Для загрузки альтернативной прошивки нужна сама прошивка под нужный нам телефон, а также софт для этого. Всё это можно скачать тут. Нас интересуют архивы c1xx-fcmag-latest.tar.bz2 и fc-host-tools-latest.tar.bz2. Первый содержит прошивку и сопутствующие файлы, второй — утилиты для её загрузки.

Если прошивка поставляется собранной вместе с исходниками, то софт необходимо компилировать самому. Для этого распаковываем архив в папку, заходим в неё и традиционным для линукса образом собираем софт:

make
sudo make install

После непродолжительной сборки (я пробовал на Linux Mint и на Lubuntu, проблем не возникло) всё нужное ПО будет готово.

Сливаем прошивку


Перед началом прошивки необходимо сделать резервную копию Flash. Она нужна на случай, если придётся вернуться к изначальной прошивке или если в процессе загрузки новой что-то пойдёт не так.

Итак, заходим в папку loadtools и запускаем софт:

sudo ./fc-loadtool -h compal -c 1003 /dev/ttyUSB0

Само собой, порт нужно заменить на тот, который соответствует вашему переходнику. Если у вас не C139, то команду следует выполнить со следующими параметрами:

C11x/12x: fc-loadtool -h compal /dev/ttyXXX
C139/140: fc-loadtool -h compal -c 1004 /dev/ttyXXX
C155/156: fc-loadtool -h c155 /dev/ttyXXX
Если всё сделано верно, в консоли появится примерно следующее:



Коротко жмякаем кнопку питания. Удерживать её не надо, это приведёт к обычной загрузке, что нам пока что не требуется. Также не стоит пытаться делать это с подключенным зарядником — в это время загрузчик не работает.



Если подключение успешно, отобразится консоль loadtool. Вводим следующую команду:

flash dump2bin backup.bin



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



По окончании в папке с программой будет создан файл с штатной прошивкой телефона.

Калибровка


Компоненты, использованные в радиочастотной части телефона, неидеальны, а ручная подгонка их номиналов привела бы к непомерному удорожанию телефона. Поэтому поступают проще: собранный телефон подключается к тестовому стенду, после чего полученные поправки и коэффициенты записываются на Flash.



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



На старых телефонах всё было именно так. Вот, например, такое подключение на Motorola M3688. На новых же трубках этот разъём служит исключительно для тестирования на заводе или в сервисе, никакие пользовательские аксессуары в него не втыкаются.



Более того, кустарные попытки что-то туда воткнуть, скорее всего, приведут к тому, что не самый распространённый в других областях разъём сломается и телефон перестанет ловить сеть.



Тестирование обычно происходит при помощи специальных (ориентированных именно на мобильные сети) анализаторов стоимостью как квартира в центре столицы нашей страны.

Так вот. После того, как нужные настройки радиочастотной части получены, их загружают в память телефона, где они лежат в одном из скрытых каталогов файловой системы. Если просто установить свою прошивку (а FreeCalypso затирает всю Flash), то эти данные будут утеряны и телефон превратится в электронный органайзер. Поэтому их надо оттуда извлечь. Для этого предназначена специальная утилита c1xx-calextr, лежащая в папке ./ffstools/caltools.



Выполняем следующую команду:

./c1xx-calextr -b rfbin backup.bin 0x3FC000

Здесь backup.bin — файл дампа Flash, 0x3FC000 — смещение. Оно определяется следующим образом. Если размер Flash равен двум МБ, то смещение равно 0x1FC000, если четырём, то 0x3FC000. Размер этот очень легко определить по самому файлу дампа — 2097152 байт для маленькой версии и 4194304 байт для большой. После выполнения команды создастся папка rfbin, содержащая в себе все необходимые файлы с параметрами.

Аккумулятор


Теперь очередь контроллера питания. Для него тоже есть свои параметры, если их не задать, то телефон не будет заряжаться. В инструкциях FreeCalypso упоминается вот эта ссылка, но она нерабочая. В реальности нужные нам файлы лежат тут. Нам понадобится standard следующего содержания:

# This is the "standard" charging config for Mot C1xx phones running
# FreeCalypso fw.  The key points are:
#
# 1) The battery is charged to the full 4.2 V, not a lower voltage,
# for traditional mobile phone usage patterns in which the user charges
# the battery fully before going out.
#
# 2) The start threshold is set fairly high on the reasoning that if
# the user connects the charging power source (which is not USB and thus
# not required for computer connection), it means that she actually intends
# to charge the battery, but it is set to 4100 mV instead of "always"
# so that if the battery is really full, an explicit AT@CHG=1 command
# or a future UI equivalent will be needed to force a charging start.
#
# 3) The restart threshold is a reasonable setting so if the phone is left
# plugged into the charger for a long time, the user won't be surprised
# with a battery that has run down significantly after the completion
# of the initial charging cycle.

start-threshold			4100	# mV
restart-threshold		3900	# mV

# Constant Voltage charging parameters mostly copied from Pirelli

ci2cv-threshold			4245	# mV, lowered from Pirelli's 4250
cv-initial-setpoint		4220	# mV
cv-ctrl-loop-high		4236	# mV
cv-ctrl-loop-low		4170	# mV, bumped up from Pirelli's 4160
cv-dac-max-incr			8	# DAC units
cv-dac-max-decr			50	# DAC units
cv-ctrl-loop-sample-count	6	# our logic is simpler than Pirelli's
overvoltage			4280	# mV, bumped up from Pirelli's 4270

# For the current settings, keep in mind that C1xx phones use a current
# measurement resistor of 0.15R instead of TI's "canonical" value of 0.20R,
# hence the conversion factor between mA and ADC/DAC numbers changes
# accordingly.  The CI current setting is based on what Motorola's fw
# has been observed to set, but the end current setting is our own,
# chosen empirically.

ci-current			280	# DAC units, about 320 mA
end-current			60	# ADC units, about 68 mA
ichg-max-spike			26	# ADC units, about 30 mA
ichg-low-samples-needed		30	# sample count

# The apppropriate charging time limit and restart delay have yet to be
# determined; for now we give it a super-generous 6 h charging time limit
# and 2 h restart delay.

charging-time-limit		21600
restart-delay			7200

# Motorola's fw does not seem to use the I2V offset mechanism,
# but we use the same setting as Pirelli.

i2v-offset			0x18	# register setting

Где-то может упоминаться вот такой файл. Не используйте его, с ним работать не будет.
# This is the "standard" charging config for Mot C1xx phones running
# FreeCalypso fw.  The start threshold is set to "always" on the reasoning
# that if the user connects the charging power source (which is not USB
# and thus not required for computer connection), it means that she
# actually intends to charge the battery, the charge-to voltage is the
# full charge (charge the battery fully before going out), and the
# restart threshold is a reasonable setting so if the phone is left
# plugged into the charger for a long time, the user won't be surprised
# with a battery that has run down significantly after the completion
# of the initial charging cycle.

start-threshold		always
restart-threshold	3900	# mV
charge-to-voltage	4200	# mV
overvoltage		4280	# mV

# For the current settings, keep in mind that C1xx phones use a current
# measurement resistor of 0.15R instead of TI's "canonical" value of 0.20R,
# hence the conversion factor between mA and ADC/DAC numbers changes
# accordingly.  The CI current setting is based on what Motorola's fw
# has been observed to set, but the end current setting is our own.

ci-current		280	# DAC units, about 320 mA
end-current		88	# ADC units, about 100 mA

# Motorola's fw does not seem to use the I2V offset mechanism,
# but we use the same setting as Pirelli.

i2v-offset		0x18	# register setting


Ну что же, можно перейти к самому важному этапу.

Загрузчик


Теперь самый ответственный момент — перезапись загрузчика Motorola на тот, который будет запускать софт FreeCalypso.

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

Перед началом данного предприятия заряжаем телефон «под завязку», затем подключаем его к компьютеру. Если аккумулятор дохлый, то запускаем от ЛБП, для верности. Симку, если она была вставлена, необходимо вытащить. Из архива с прошивкой извлекаем compal-flash-boot-for-fc.bin. После этого запускаем софт для прошивки, ранее описанным образом запускаем на телефоне загрузчик и выполняем следующую команду:

flash erase-program-boot compal-flash-boot-for-fc.bin



Если всё было сделано правильно, загрузчик будет успешно записан.

Освобождение «Калипсо»


Теперь, если загрузчик записан, можно приступать к самой прошивке. В архиве нас интересует папка build-c139-hybrid-ui-vo. В ней и находится интересующая нас прошивка. И тут есть один нюанс: в качестве «полноценного» телефона подойдёт только Motorola C139. Под другие телефоны прошивки тоже имеются, но они реализуют функционал голосового модема, а не полностью самостоятельного телефона. Это тоже необходимо учесть, если вы хотите использовать иной телефон.

Итак, идём в эту папку и закидываем содержимое туда, где у нас лежит софт для загрузки. Далее вводим команду:

exec flash-script



Прошивка начинается со стирания памяти.



Далее произойдёт загрузка самой прошивки.



И, после нескольких минут томительного ожидания, программа выдаст нечто вроде этого.



Затираем участок Flash, выделенный под системные файлы, для чего вводим команду:

flash erase 0x3C0000 0x30000

Первое число — смещение. Оно также отличается в зависимости от объёма памяти: 0x1C0000 для 2 МБ, 0x3C0000 для 4 МБ, 0x700000 для 8 МБ. Второе число — количество байт: 0x30000 для 2 и 4 МБ, 0xD0000 для 8 МБ.
С fc-loadtool по сути всё. Выходим, набрав exit.

IMEI


Поскольку Flash была затёрта, необходимо восстановить IMEI. Не будем заморачиваться с тем, какой взять, а просто вернём обратно тот, какой был изначально. В память телефона записывается не IMEI, а IMEISV, содержащий в себе также версию прошивки, поэтому это число придётся несколько модифицировать.



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

Файловая система


Сразу после загрузки прошивки телефон не готов к работе. Необходимо инициализировать ФС и залить ранее упомянутые параметры.

Для этого идём в папку rvinterf/lowlevel, где выполняем команду:

sudo ./rvinterf /dev/ttyUSB0

После её выполнения ничего произойти не должно.



Коротко жмякаем красную трубочку на телефоне. После этого телефон крякнет, а в окне быстро посыпятся логи.



При этом на дисплее отобразится «Insert SIM».



Далее идём в rvinterf/etmsync, где выполняем:

sudo ./fc-fsio

Это и есть та самая утилита для работы с файловой системой.
После этого помещаем в папку файл конфигурации зарядки аккумулятора standard и папку rfbin. После этого вводим следующие команды:

format /
mk-std-dirs
set-imeisv fc XXXXXXXX-YYYYYY-SV
set-rfcap dual-eu
upload-subtree rfbin /gsm/rf
write-charging-config standard

В ходе их выполнения происходит восстановление структуры каталогов, а также восстанавливается ранее затёртый IMEI. Само собой, нужно подставить те значения, которые мы тогда получили.
Теперь точно всё. Можно выходить.

Что же получилось?


Включаем телефон.



Нас встречает вот такая заставка с логотипом TI.



Если в телефоне есть симка, то он напишет «No Network», а затем начнёт пытаться искать сеть.





Откроем меню.



Поддерживается даже SIM Toolkit.



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



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



Приложения дадут постоять в сторонке любому нынешнему мобильнику с претензией на минимализм — тут только калькулятор и диктофон. Последний умеет записывать только непрерывное «Кхрррр» на максимальной громкости, с чем это связано, мне неведомо. Никаких игр тоже не предусмотрено.



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



Предусмотрена куча мелодий звонка, но, равно как и в пиратских восьмибитных картриджах «9999 в одном», какая бы ни была выбрана, звучать всё равно будет одна и та же.

Можно ли по нему звонить?


Перейдём к тестированию самой главной его функции.



Чтобы выяснить это, берём рабочую симку и вставляем её в телефон. После запуска трубка нашла сеть, а на экране появился «замочек» активного шифрования.



Набираем номер, и телефон начинает звонить.



Звонит, однако!



И можно принять вызов и попробовать поговорить. Само собой, качество связи ничем от обычного мобильника не отличается.

Что же ещё?


Одной лишь прошивкой FreeCalypso не ограничилась. И у них даже есть несколько аппаратных продуктов.



Самый главный — FCDEV3B, по сути отладочная плата на таком чипсете. Что характерно, во FreeCalypso говорят, что она не предназначена для запуска на ней софта Osmocom и будет лишена гарантии, если будет замечено, что на ней проводилось именно это (например, если с её помощью поднимали БС, для чего перепаивали фильтры).



FreeCalypso Tango, некий GSM-модем, но с их открытой прошивкой.



Community SIM, программируемая симка, ориентированная специально на работу в сетях 2G.

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


Для чего же всё это надо? Разумеется, большинству из нас будет куда проще просто пойти и купить какой-то кнопочный телефон, не заморачиваясь с поиском и прошивкой Motorola C139. И для большинства таких пользователей он будет успешно справляться со всеми необходимыми задачами (если, конечно, сам не окажется с подвохом).

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

Ссылки





Возможно, захочется почитать и это:

Новости, обзоры продуктов и конкурсы от команды Timeweb.Cloud — в нашем Telegram-канале

Комментарии (58)


  1. Javian
    04.06.2024 08:32
    +2

    Трамвай Челябинск,71-619КТ № 2043. Интересно почему номер не носится сбоку кузова.


    1. MaFrance351 Автор
      04.06.2024 08:32
      +1

      У нас вместо этого наклейка на одном из окон.


      1. Javian
        04.06.2024 08:32
        +1

        Сейчас более внимательно осмотрел и еле разглядел. Стекла затемненные.


        1. MaFrance351 Автор
          04.06.2024 08:32

          У нас так на всём электротранспорте.


        1. vesowoma
          04.06.2024 08:32
          +4

          прочел как "уралеи" и подумал что самая первая буква отклеилась )


          1. Javian
            04.06.2024 08:32
            +1

            А что там написано? Так и читаю ""уралей".


            1. MaFrance351 Автор
              04.06.2024 08:32
              +2

              Уралец.


              1. Javian
                04.06.2024 08:32
                +1

                Дизайнеры переиграли сами себя.


                1. MaFrance351 Автор
                  04.06.2024 08:32
                  +1

                  Кстати, это был не единственный тематический трамвай в Челябинске...

                  Причём все тоже были 71-619КТ.


              1. vesowoma
                04.06.2024 08:32
                +1

                полный уралéц


            1. snuk182
              04.06.2024 08:32
              +3

              Я прочел "урапей". Монморанси вступил в неравный бой со шрифтами и проиграл.


              1. MaFrance351 Автор
                04.06.2024 08:32
                +2

                Вот как теперь развидеть?


  1. Neitr
    04.06.2024 08:32

    так я не понял...после прошивки можно позвонить с одного сотового на другой без базовой станции?


    1. MaFrance351 Автор
      04.06.2024 08:32

      Неа. А вот функционал обычного телефона сохраняется.


  1. NutsUnderline
    04.06.2024 08:32

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

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


    1. MaFrance351 Автор
      04.06.2024 08:32
      +1

      Уверен, не обошлось без реверса оригинальной. Неспроста полноценную прошивку сделали под единственную модель.

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


      1. Nick0las
        04.06.2024 08:32

        Я подозреваю, что реверсить что-то в железе каждой модели сложно. И вероятно у автора этой прошивки есть эта единственная модель. Во времена патчей для сименс наличие тех или иных патчей на те или иные телефоны тоже определялось наличием тех или иных телефонов у автора.


        1. MaFrance351 Автор
          04.06.2024 08:32
          +2

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

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


          1. Nick0las
            04.06.2024 08:32

            Платформ мало но бывают разные нюансы, даже если основной SOC один. Бывало наоборот, что модель для пользователя одна а вот материнские платы бывают разных ревизий, с разным именованием и даже физически разными разъемами дисплея. С Siemens ME45 так было.

            Вообще странно, что они сделали отладочную плату но не сделали опенсорсный кнопочник с корпусом. При том что кнопочник силами сообщества можно двоести до удобного в использовании вида.


            1. MaFrance351 Автор
              04.06.2024 08:32

              Мне это напомнило некоторые Wi-Fi адаптеры от TP-Link. В первых версиях ставили чипсет от Realtek, а в поздних заменили на Atheros, отчего с AirSlax работать они перестали.

              У Motorola такой проблемы нет, это всё одни и те же ODM, отличий минимум. По сути у всех рассмотренных телефонов на Calypso отличие только в периферии (дисплей, матрица кнопок, контроллер питания, чип MIDI-синтезатора...).

              А вот почему не сделали открытый телефон, увы, неведомо. Но тоже интересно...


              1. vorphalack
                04.06.2024 08:32
                +1

                потому что открытый телефон тебе ни один регулирующий орган в жизни не пропустит. FCC, OFCOM, ГРЧЦ, кто там еще есть - все торжественно спросят are you okhueli tam?
                RF Baseband должен быть закрыт и точка. а без него смысл открытости остальной части прошивки торжественно исчезает.


                1. FelixTheMagnificent
                  04.06.2024 08:32

                  Почему это? В домашних модемах DOCSIS как бы код трансивера тоже закрыт. Как и прошивка Wi-Fi адаптера.
                  Объясните мне, неразумному, что дает открытая прошивка ВЧ части, пожалуйста :)

                  Лично мне, например, хотелось бы иметь не-гиковски выглядящий телефон с открытой ОС, и стоящий не космических денег.


                  1. vorphalack
                    04.06.2024 08:32
                    +2

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


  1. Nick0las
    04.06.2024 08:32
    +1

    Спасибо за статью. Опенсорсный кнопочный телефон - звучит интересно. Будет время попробую скачать репу и собрать. Хотя заниматься софтом под физически старый девайс не особо хочтеся. Вот если бы авторы этого проекта кроме плат отладочных еще и телефон выпустили, было бы круто.


    1. MaFrance351 Автор
      04.06.2024 08:32

      Вот это тоже удивительно. Но у меня ощущение, что они больше ориентированы на модемы, чем на самодостаточные телефоны.


      1. NutsUnderline
        04.06.2024 08:32
        +1

        а мне что то кажется это вопросы лицензирования всякого


        1. MaFrance351 Автор
          04.06.2024 08:32

          Что нельзя закупить партию чипсетов без отчислений TI? Или что всякие FCC голову оторвут за производство такого?


          1. strvv
            04.06.2024 08:32

            возможно второе.


          1. Nick0las
            04.06.2024 08:32

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


            1. MaFrance351 Автор
              04.06.2024 08:32

              Хотя вот смартфоны на Linux довольно популярны в узких кругах. Уверен, и такие девайсы нашли бы покупателя.


              1. NutsUnderline
                04.06.2024 08:32

                Полагаю что на такое должна быть сертификация ассоциации GSM или как ее там. Смартфоны на линукс (хотя формально это практически все смартфоны и на андройде и на авроре) тоже используют блобы, например вытянутые из андройда (Helium и производные). насчет совсем совсем открытых телефонов не знаю пока надо почитать, ноя прям не уверен


                1. MaFrance351 Автор
                  04.06.2024 08:32

                  Если честно, насчёт реализации совсем открытых телефонов мало что смотрел. Но уверен, что вы правы.


                1. dvrpd
                  04.06.2024 08:32
                  +1

                  У Librem 5 и PinePhone обычный проприетарный модем, изолированный от остальной обвязки телефона, общение с которым идёт AT-командами. Блобов конкретно для него вроде нет.


                  1. MaFrance351 Автор
                    04.06.2024 08:32

                    Модем сам по себе - отдельное устройство со своим процессором, памятью, DSP и периферией. И вот его-то прошивка точно закрыта.

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


                    1. Nick0las
                      04.06.2024 08:32

                      Менять имей не такая и проблема на старых телефонах. На сименсах 45й серии можно через анлок прописать любой. На более новых там есть сверка с OTP но ее можно патчем отключить. И можно написать патч который генерит случайный имей при включении. Я сам такой делал, причем судя по комментам в интернете, я не один такой. Хотя сейчас наверное мало кто знает, зачем нужно менять имей.


          1. vorphalack
            04.06.2024 08:32
            +1

            кстати, и чипсетов тоже - точнее, сам кремний вам продадут, если и не сам Ti, то какой-нить маузер. а вот доки, SDK и прочее - простите, сначала станьте платино-иридиевым партнером, а потом еще и лицензии ходите получайте на продажу оных устройств по всем рынкам сбыта.


            и в случае с FCC, например, это девять кругов ада - ты не можешь, например, взять референсную платку со всеми регалиями и прикрутить к малинке. потому что когда ты ее прикрутишь - получится ДРУГОЕ устройство, требующее повторной сертификации целиком.


            1. Heggi
              04.06.2024 08:32

              В DIY (и не только) бывает используют GSM-модули типа SIM900, по сути встраивая их в собственное устройство. Никаких сертификаций и т.п. это не требует (я не слышал ничего такого).


              1. NutsUnderline
                04.06.2024 08:32

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


                1. Heggi
                  04.06.2024 08:32

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


                  1. NutsUnderline
                    04.06.2024 08:32

                    Хороший вопрос, я даже погуглил. У таких штук есть минимум "Декларация о соответствии требованиям Евразийского экономического союза " - а в ней внутри ссылка на ГОСТы по электромагнитной совместимости. Плюс сертификация МВД на сигналки. Так что уже да.

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

                    как например кто попало без лицензии не может писать обозначения HDMI и всякие такие. Пишут HD


  1. andi123
    04.06.2024 08:32
    +1

    Подключать его надо к ПК с Linux, виртуалка не подойдёт. Возможно, у вас
    дела будут обстоять иначе, но на практике я столкнулся с тем, что при
    подключении такой штуки к ВМ начинается периодический пропуск байтов.

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


    1. MaFrance351 Автор
      04.06.2024 08:32

      Надо попробовать. Но, насколько помню из опытов с OsmocomBB, там свои нюансы.


    1. Nick0las
      04.06.2024 08:32

      Это может зависеть и от системы виртуализации и от хоста. Вначале хотел возразить, а потом вспомнил, что хоть я и очень много работал на виртуалках (VirtualBox), но наружу пробрасывал либо stlink, либо сетевой интерфейс, либо USB флэшку. А консоль как правило в putty открыта. Но с USB в виртуалках проблемы случаются. Иногда приходится придумывать хаки вплоть до передергивания кабеля во время работы некого скрипта. А чтобы пробросить RS232 хоста в виртуалку надо, чтобы он был. А это нынче редкость.


      1. andi123
        04.06.2024 08:32

        Не понял, чего хотели сказать. Фраза "наружу пробрасывал stlink" - вообще ставит в ступор. Может доступ к программатору stlink пробрасывали внутрь гостевой системы?

        Я хотел лишь сказать, что работа драйвера usb-устройства внтури виртуалки (когда туда пробрасывается доступ к usb-устройству) намного хуже, чем вариант когда драйвер работает на хосте, а в виртуалку пробрасывается абстрактный канал передачи данных. В случае с преобразователем usb-uart это канонический пример.


        1. Nick0las
          04.06.2024 08:32

          Может доступ к программатору stlink пробрасывали внутрь гостевой системы?

          Да, физический stlink снаружи а драйвер в гостевой системе.

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

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


      1. Heggi
        04.06.2024 08:32

        RS232 на современных мамках есть до сих пор, но не выведен наружу (впрочем купить планку вроде никогда проблемой не было). Вот с ноутбуками там да, засада.


  1. ak-vic
    04.06.2024 08:32

    Я на этой неделе тоже что-то увлёкся схемотехникой кнопочных 2G-телефонов (не на форках андроид). Просто думал, чем заменить мой подуставший нокиа 3310 (версии 2017 года), только мне надо, чтобы и камера 2МП там была, и опера мини, так что пока что альтернатив не вижу по описанным параметрам. Статья очень интересная, жаль нет времени на воплощение подобного...


    1. MaFrance351 Автор
      04.06.2024 08:32

      Если не смущает б/у, то посмотрите флагманы конца нулевых. Там всё, что вам надо, есть.

      мой подуставший нокиа 3310 (версии 2017 года)

      Кстати, как он вам? Много раз про него слышал, но даже в руках не держал.


      1. ak-vic
        04.06.2024 08:32
        +1

        Если не смущает б/у, то посмотрите флагманы конца нулевых. Там всё, что вам надо, есть.

        Хочется новый.

        Кстати, как он вам? Много раз про него слышал, но даже в руках не держал.

        Пользуюсь с 2019 года постоянно. Где-то через год использования стал самопроизвольно выключаться при использовании проводной гарнитуры. До ремонта руки так и не дошли... Вобщем, минимальный набор функций у него есть, даже можно через оперу мини авторизоваться в яндексе и читать почту. Отправлять не пробовал.


        1. NutsUnderline
          04.06.2024 08:32
          +1

          ну тогда можно взять смартфон на авроре и включить в нем 2G only. размеры не те но как бы повышенной прочности и работает долго. почта вообще штатным клиентом. браузер там недалеко от оперы мини ушел :) можно поднять свой прокси-сервер с компрессией примерно как @bodyawmделает

          кнопочники на андройд тоже есть и полноценном и урезанном. прочность не та, но работают довольно долго


          1. ak-vic
            04.06.2024 08:32

            2G only - хм, интересно, спасибо, посмотрю)


            1. NutsUnderline
              04.06.2024 08:32

              мне ali уже подбросил "свежие" (не знаю - реплика, рефаб) 3310


              1. MaFrance351 Автор
                04.06.2024 08:32

                Скорее, второе.


  1. ak-vic
    04.06.2024 08:32
    +1

    спасибо вам, что нашли такой классный сайт https://www.freecalypso.org. Мне тоже близка эта философия отказа от смартфонов в пользу 2G. Сам бы вряд ли нашёл такой сайт. Уже захотелось сделать свой кнопочный телефон)


    1. MaFrance351 Автор
      04.06.2024 08:32

      Не за что.


  1. NutsUnderline
    04.06.2024 08:32

    не сразу отыскал самой прошивки исходники https://www.freecalypso.org/hg/fc-magnetite/ папка blobs там большая и без dsp - много lib и obj, очень много исходников от ti и коммерческих разработчиков. в общем говорить что тут кто-то по документации все восстановил, что тут все прям открытое - не приходится. Хотя даже конфигурации прописать и все это в прошивку собрать тоже дело нешуточное


  1. NutsUnderline
    04.06.2024 08:32
    +1

    в архиве утилит есть target-utils которые рассчитаны для запуска на самом телефоне и собираются кросскомпилятором arm-elf-gcc (его тоже предлагается собрать вручную).

    Есть там тест аппаратуры с139explorer, есть проигрыватель мелодий на биппере (такого @shiru8bit вроде еще не делал?)


    1. MaFrance351 Автор
      04.06.2024 08:32

      Помню, что они отдельно ковыряли чипы MIDI-синтезаторов. Но не со всеми получилось.