-
Автор: MaFrance351
Многие из нас еще помнят такой стандарт связи, как AMPS. В лучшие времена он, как и другой аналоговый стандарт NMT-450, был довольно популярен на просторах России. И возможно у кого-то из нас был такой телефон.
Хотя общедоступные сети уже давно перестали функционировать, с помощью некоторого оборудования и программного обеспечения все еще можно заставить старые телефоны снова звонить.
Итак, в сегодняшней статье мы узнаем, как запустить мобильную сеть AMPS. Давайте узнаем, с какими трудностями вам придется столкнуться и как их решить. Как обычно, будет очень интересно.
❯ Суть такова
Как и у многих других любителей старой электроники, от моего внимания не ускользнули старые телефоны. Хотя мое основное увлечение в этой области по-прежнему аппаратное, а среди мобильных устройств я предпочитаю КПК, смартфоны и коммуникаторы (без привязки к стандарту связи и оператору), такие древние телефоны у меня все же были. И конечно мне всегда хотелось их запустить. И вот, спустя столько лет, мне наконец удалось купить полноценный SDR, так что теперь у меня есть возможность увидеть все это в действии. И если да, то пришло время рассказать об этом миру.
❯ Немного истории
Сети AMPS принадлежали к первому поколению мобильных сетей. Появившись в начале восьмидесятых годов, они быстро распространились в Америке (где стали первыми мобильными сетями), а позднее и в других странах мира. Многие легендарные устройства работали в этом стандарте, например, первый коммерчески доступный мобильный телефон Motorola DynaTAC или один из первых смартфонов IBM Simon. И даже был совершен первый звонок по мобильному телефону в сети этого стандарта.
В России эти сети появились в 1994 году и распространялись компанией «Вымпелком» (он же «Билайн»). Насколько нам удалось выяснить, они использовали оборудование Ericsson; телефоны в основном предлагались от одной и той же компании.
В конце 2000-х годов AMPS начал сдавать позиции и был заменен более совершенными GSM и D-AMPS (однако с «оригинальными» AMPS он имел мало общего). Последние сети в этом стандарте были деактивированы в 2008-2010 годах.
❯ Как работает AMPS
И прежде чем приступить к экспериментам, давайте выясним, как были устроены эти сети.
По принципу работы AMPS очень близок к своему предшественнику IMTS (Improved Mobile Telephone Service). Это типичная мобильная сеть с разделением аналоговых частот. Всего их 416 - 395 голосов и 21 лидер. Эти каналы распределялись автоматически, в зависимости от количества людей и силы сигнала.
В отличие от регионов NMT здесь используются так называемые System ID, которые кодируют сети операторов. Сети делятся на два типа — Система А (нечетный идентификатор) и Система Б (четный идентификатор), каждая из которых имеет свои каналы.
❯ Что нужно для запуска
Итак, давайте определимся с оборудованием. Для создания нашей сети нам понадобится примерно следующее:
-
Компьютер с ОС Linux. Машина должна быть достаточно мощной; Raspberry Pi не подойдет. Также требуется как минимум один свободный порт USB 3.0. Я настоятельно рекомендую не использовать виртуальную машину; чуть позже я покажу почему.
-
Полнодуплексный SDR, совместимый с GNU Radio. Например, подойдут LimeSDR, USRP или BladeRF.
-
Антенны, рассчитанные на частоту в диапазоне восьмисот мегагерц или антенную нагрузку (что ещё предпочтительнее)
-
Собственно сам телефон. Как нетрудно догадаться, устройство должно включиться и попытаться поймать сеть. Антенна также должна быть на месте.
Вся сложность заключается во втором пункте. Дело в том, что полнодуплексный SDR на момент написания этого поста стоит очень дорого из-за наличия в составе «толстой» ПЛИС и трансивера.
❯ Обзор оборудования
Что ж, пришло время взглянуть на аппаратную часть.
Это самый важный из всех компонентов — USRP B200-mini, также известный как полнодуплексный SDR. Железо очень крутое, просто идеальное для экспериментов с мобильными сетями. Единственное, цена такой вещи очень впечатляет.
Теперь очередь телефонов.
Это Эрикссон R300LX. У него интересная судьба: в свое время, когда отключили аналоговые мобильные сети, эти телефоны продавались очень дешево, и я купил их всего за десять рублей в станционной палатке. В начальной школе это была моя любимая игрушка. Батарея потекла и я ее сразу выбросил, поэтому запускаем аппарат от ЛБП. К счастью, в те далекие годы я припаял два провода. Позже у меня появился еще один такой телефон, и я буду использовать его в этом посте.
И это Ericsson T60D. Устройство значительно новее предыдущего. У него также была версия T60C для CDMA.
Аккумулятор тоже сдох, но подключен он через разъем, а не подпружиненные контакты, поэтому я просто откусил вздутую коробку и припаял на ее место другой аккумулятор (он был от использованного аккумулятора Lego NXT. Конечно, это не так можно будет использовать его постоянно, но для тестирования сгодится).
Самая интересная особенность этого телефона, на мой взгляд, это подсветка ELI. Если разобрать, то можно увидеть на плате характерную пленку, которая загорается при подаче на нее переменного напряжения высокой частоты. Похожая технология использовалась в телефоне Motorola RARZ V3.
Эрикссон LX588. Увы, у обоих устройств сломаны и потеряны антенны, поэтому в этих экспериментах они участвовать не будут, хотя включаются и пытаются работать.
Nokia 8260. Это мой последний аналог, если бы не отсутствие слота для SIM-карты, его было бы сложно отличить от обычного GSM-телефона.
Среди прочих устройств есть те, которые заслуживают более подробного описания. Например, Motorola MicroTAC был, на мой взгляд, одним из самых крутых устройств того времени с точки зрения дизайна (наряду со StarTAC от той же Motorola). Их модификаций было много и мне в руки попал MicroTAC Ultra Lite.
Задняя сторона. Под батареей есть краткая инструкция с перечнем основных действий.
Что примечательно, центральный разъем аккумулятора хоть и есть, но он не задействован. Он используется не для контроля состояния батареи, а для активации тестового режима.
Конечно, никелевая батарейка давно умерла. Без этой вещи телефон теряет все свое очарование, перестает удобно лежать в руке, и если бы не светодиодный экран, он выглядел бы как типичный старый аппарат от Эрикссон.
Зарядная станция. Помимо самого телефона, в нем также может находиться запасной аккумулятор. Позднее я неоднократно сталкивался с подобным решением в различных КПК.
А вот так на нем сидит аппарат.
Субпродукты. В некоторых моделях также был микроконтроллер PIC, но у меня его нет.
Установка находится в эксплуатации. Даже по нынешним меркам светодиодные матричные индикаторы выглядят очень круто и навевают мысли о старых летных приборах.
Еще одной интересной особенностью является наличие зарезервированных функций меню.
А вот и легендарный StarTAC. В целом я не люблю раскладушки, но этот аппарат мне нравится (вместе с КПК Sony.
Он сложен. Увы, аккумулятор от него давно утерян. Кстати, это единственный известный мне моллюск, где в верхней части установлена батарея.
❯ Ставим софт
В виддере Хабра я нашел эту статью (которая представляет собой перевод англоязычной статьи русскоязычного автора с Medium), в которой рассказывается о том же, чем я сейчас собираюсь заняться. А вроде бы все просто, установите софт и можно пробовать.
Обратите внимание: Apple ответит за убийство человека при помощи iPad.
Но это только во всяких мануалах, настройка настроена в шутку, и все запускается с первого раза, поэтому здесь попробую затронуть некоторые сложности.В общем, о работе с программным обеспечением, которое мы сейчас будем использовать, я уже рассказал в посте про NMT-450, поэтому настоятельно рекомендую сначала прочитать его. Хотя стандарты и оборудование сильно различаются, многие аспекты программного обеспечения идентичны.
Как и в случае с NMT, я буду использовать аналог Osmocom. В отличие от другой реализации AMPS для GNU Radio, gr-amps, это программное обеспечение гораздо проще установить и запустить.
Поэтому сначала вам необходимо установить программное обеспечение для управления SDR (UHD или LimeSuite). Выбор зависит от вашего железа, поэтому подробно описывать его не вижу смысла.
Далее вам необходимо установить библиотеку SoapySDR:
sudo apt установить libsoapysdr-dev
sudo apt установить SOAPYSDR-инструменты
Это официальная версия от разработчиков Osmocom Analog. Наткнулся на информацию, что нужно использовать только определенную версию библиотеки иначе будут проблемы с запуском, но на момент написания это вроде бы исправлено, так как у меня все началось нормально.
Если вы не хотите иметь дело с библиотеками и прочими зависимостями, рекомендую запускать всё на Dragon OS. Это известный в узких кругах дистрибутив Lubuntu, своего рода идеологический аналог Kali Linux, только если последний ориентирован на хакеров, Dragon OS предназначена для работы с SDR и радио. Там уже установлены все необходимые программы, поэтому проблем у вас точно не должно возникнуть. На всякий случай оставлю ссылку на ту версию, которую использовал я в конце статьи. Аналогично я выложу уже скомпилированный софт, которого будет достаточно только для установки и запуска.
Теперь вам нужно собрать Аналог Осмокома. Это делается очень просто:
git клон git://git.osmocom.org/osmocom-analog
аналог cd osmocom
автореконф -если
./настроить
чистый
сделать судо
установить
После сборки у вас должна остаться папка osmocom-analog, где в папках раздела src будут лежать нужные нам программы для запуска сетей. В целом этот софт можно использовать и с аналоговым трансивером (по сути все точно так же, как я описал в посте про НМТ), но найти SDR оказалось проще, чем трансивер для таких частот.
Кстати, есть и такой проект. Для меня это одна из самых крутых реализаций такой сети, а подробное описание собранного блока потребует отдельной статьи. Но обо всем этом в другой раз. Кстати, именно автор этого устройства очень помог проекту «Осмоком-Аналог» в реализации сети AMPS.
❯ Запускаем сеть
Ну что, попробуем? Подключаем SDR к компьютеру и включаем телефон.
Запустим нашу программу:
усилители --sdr-uhd -k 334 -k 320 --samplerate 512000
При первом запуске после перезагрузки (а также если на SDR была нажата кнопка RESET или он был отключен от компьютера) программа выдаст ошибку доступа к SDR. Это нормально, через несколько секунд конфигурация должна загрузиться в SDR и все заработает. Если не помогло, надо разобраться с драйверами SDR.
Остается только положить телефон рядом с антеннами и ждать чуда.
И если все было сделано правильно, телефон поймает сеть и скажет, что мы в роуминге (так как код оператора отличается от запрограммированного в него).
При этом в окне появятся логи. Здесь вы можете увидеть номер - в моем случае это 3512761234. Присвоенный номер заставляет меня задуматься о наследии старых мобильных операторов - когда-то мобильные номера выдавались только с кодом города, а не оператора (который, по кстати, отражено в моем никнейме: 351 — код города Челябинска).
Всё, можно попробовать позвонить.
❯ Итак, оно не работает
Если ваш телефон сразу нашел сеть и подключился к ней, поздравляем. Все запустилось, теперь можно попробовать позвонить.
Но, как оказалось, не все так просто, как кажется.
Если сеть не запускается, попробуйте изменить частоту дискретизации на более высокую. Однако увеличивать его тоже не стоит, так как это потратит больше ресурсов и не даст особого результата. Это значение должно быть таким, чтобы обеспечить работу всех созданных каналов.
Если появляются строки типа «SDR underrun», скорее всего, не хватает пропускной способности порта. Причин этому много, либо SDR подключен к «медленному» USB 2.0 вместо USB 3.0, либо компьютер слишком слаб, чтобы поддерживать такое количество каналов. Кстати, это одна из причин, по которой не следует запускать программное обеспечение на виртуальной машине. Своего мощного ПК с Linux на борту у меня нет, но достаточно было записать Dragon OS на флэшку и загрузиться с нее, чтобы сообщения об ошибках исчезли.
После запуска сети нужно включить телефон и подождать, пока он увидит сеть. Этот процесс не очень быстрый, использовался как основной для экспериментов Ericsson T60D, на поиск сигнала ушло около десяти минут. Если он по-прежнему не может его найти, мы пытаемся выбрать сеть вручную.
На этом же телефоне была обнаружена досадная ошибка в виде своеобразного пароля, не позволяющего совершать звонки. Проблему я решил довольно просто — позвонил по номеру 112. Поскольку общественные сети давно отключены, то о ложных звонках можно не беспокоиться. Ну а телефон, в свою очередь, не запретит звонить на этот номер, даже если есть блокировка.
причина отсутствия сети также может крыться в антеннах. В своих экспериментах я использовал те, что из комплекта от другого SDR, HackRF (эти же антенны я пробовал подключать к рациям в экспериментах с NMT). Попытки использовать антенны от рации или от другого телефона не увенчались успехом; Трубки либо не видели сеть напрямую, либо поднимали трубку, но звонок не проходил. Кстати, лучше всех в этом плане показал себя вышеупомянутый Ericsson T60D, что для меня было даже удивительно, поскольку большая часть моих надежд была связана с R300LX.
❯ Звоним
Итак, набираем номер на клавиатуре телефона и нажимаем вызов. Если устройство еще не потеряло сеть, из динамика будет слышен характерный шипящий звук, за которым последует звуковой сигнал.
При этом в окне консоли будут отображаться логи. Через несколько секунд компьютер возьмет трубку и с телефона начнет играть музыка, а затем приятный женский голос произнесет: «Ваш звонок очень важен для нас. Пожалуйста, оставайтесь на линии.».
Чтобы иметь возможность принимать звонки, вам необходимо использовать звуковую карту, аналогично тому, как это было показано в статье про NMT.
Чтобы позвонить, нужно знать номер. Вы можете увидеть это в журналах регистрации или при звонке. Затем нужно позвонить на него (если с этого телефона уже был звонок, номер будет введен автоматически) и нажать «d» на клавиатуре».
❯ Про каналы и Test mode
Для корректной работы сети важно правильно выбрать номера каналов. Если они совпадают с прописанными в телефоне, то он найдет сеть практически сразу (MicroTAC, сумевший войти в сервисное меню, сделал это за несколько секунд), иначе придется сканировать весь эфир, что занимает довольно много времени время время.
У меня есть телефон Motorola MicroTAC, который позволяет легко проводить эти эксперименты. Нет необходимости в кодах, секретных комбинациях кнопок или подключении внешнего оборудования к устройству. Достаточно просто соединить средний разъем разъема аккумулятора с массой. Если аккумулятор телефона перепакован, достаточно вставить в отверстие сверток фольги (средний контакт аккумулятора соединяется с минусом через диод), а если телефон питается от ЛПС, то необходимо подключить заземляющий провод к этому контакт. Затем необходимо включить телефон и он перейдет в тестовый режим, после чего соединение можно будет отключить. В общем, для экспериментов с AMPS советую приобретать телефон именно этой модели (StarTAC, MicroTAC, TeleTAC), из-за огромного количества функций, которые могут помочь в настройке сети.
При входе в этот режим телефон начинает отображать различную информацию по кругу, включая номера каналов. На рисунке показан пример того, как это может выглядеть. То, что появляется между этими сообщениями, не представляет интереса. Вы должны записать эти трехзначные числа и затем ввести их при запуске сети.
Конечно, помимо просмотра и настройки каналов, в этом режиме можно делать много интересного. Есть такой учебник, как Библия Моторолы. Гуру мобильного фрикинга того времени сказали бы, что все написанное там полная ерунда. За это не ручаюсь, но кое-что интересное оттуда все же можно почерпнуть. А именно номера команд и методы входа в тестовый режим для целого ряда аналоговых телефонов Motorola. Тем более в этом режиме вы сможете настроить передатчик, посмотреть серийный номер (ESN), запрограммировать код абонента (NAM) и многое другое. Описание дано для двухлинейных моделей, но и на моей многие команды запустились...
Продолжение в исходном материале. Увы, все картинки не поместились, но они суть и самые вкусные. :)
Больше интересных статей здесь: О гаджетах.
Источник статьи: Как запустить сотовую сеть стандарта AMPS при помощи SDR.