❯ Предыстория
Идея создания телефона, который будет полностью открытым во всех отношениях — и в плане железа и в плане софта, витала в воздухе задолго до появления PinePhone или даже Google Nexus (его к открытым телефонам можно причислить лишь отчасти). Например, Motorola делала значительный вклад в развитие Linux на телефонах, таких как Moto RAZR v8 или A1200. Я не знаю, где сегодня можно найти исходный код ядра для этих смартфонов, но полагаю, Motorola предоставляла его по первому требованию. Однако такое решение было профитным во всех смыслах: была единая программная платформа, для портирования которой необходимо было лишь портировать Linux под конкретный BSP, а коммьюнити поддерживала эти телефоны ещё долгое время, умудрившись запустить на них даже OpenMoko:
Не была в стороне и TrollTech, тогдашний владелец и разработчик фреймворка Qt, который представил свой телефон (к слову, очень сильно напоминающий Sony Ericsson тех лет и был скорее девкитом, нежели полноценным устройством) GreenPhone, работающий на Linux и использующий интерфейс Qtopia, который был построен на базе Qt.
В какой-то момент TrollTech прекратили разработку GreenPhone, а его наработки передали сообществу OpenMoko, который и стал основной сегодняшнего аппарата.
Выделялась и Nokia, регулярно представлявшая новые модели в своей линейке интернет-планшетов (да, тогда они назывались именно так) под названием N. Работала она на базе собственной ОС Nokia — Maemo и имела корни от классического Debian. Несколько позже Nokia выпустит легендарный N900 — смартфон с большим на тот момент дисплеем, выдвижной клавиатурой и классическим Linux на борту.
К сожалению, как закончилась история для Nokia, мы уже с вами знаем: компания попыталась развивать свою новую Linux платформу MeeGo, но — пришёл дяденька из Microsoft на место CEO и резко сменил вектор развития компании с Linux смартфонов на устройства с Windows Phone. Однако старые гаджеты этой компании всё ещё ценятся на вторичном рынке, в том числе и планшеты серии N.
Кроме TrollTech, Motorola и Nokia, в Linux-сообщество смартфонов активно пыталась влиться и Google, причём изначально это были не коммуникаторы с тачскрином, а стандартные QWERTY смартфоны. Несколько лет назад на американской барахолке всплыло объявление о продаже вот таких девкитов от Google, которые работали на самых первых версиях Android, ещё до первой публично доступной 1.5, не имевшие даже тачскрина. Этот прототип был разработан в кооперации с настоящим мастодонтом мира коммуникаторов — HTC, который ещё долго помогал Google с дальнейшим развитием платформы.
Но всё же, устройства представленные выше, имели исходный код ядра (без бинарных блобов драйверов). Вероятно, также имели исходный код оболочки, однако они всё ещё оставались закрытыми проприетарными устройствами. И тут приходит тайваньская компания FIC — First International Computer, которая вместе с сообществом OpenMoko представляет первый полностью открытый смартфон. И имя этому первенцу: Neo 1973 (GTA-01)! Но что в данном контексте означает открытый? В чём было отличие от Motorola A1200?
Отличие в том, что производитель публично предоставлял всю документацию и исходный код на своё устройство. Она включала в себя: схему платы, разводку, исходный код загрузчика (изначально U-Boot, затем Qi), исходный код ядра почти со всеми драйверами, исходный код оболочки. И всё это под открытой лицензией сообщества. Например: если бы Motorola захотела производить свой Neo FreeRunner, она смогла бы это сделать без каких либо проблем или отчислений FIC. Всего было 4 итерации — GTA-01, GTA-02, GTA-03 и финальная, разработанная сообществом GTA-04.
Работали Neo 1973 и FreeRunner на базе чипсета Samsung S3C2442 с тактовой частотой 400Мгц (это было очень популярное решение для недорогих коммуникаторов, но чип уходил корнями в 2003), имела 64мб встроенной памяти и 128мб ОЗУ, встроенный GPS, Wi-Fi и даже OTG!
К сожалению, проект прожил всего лишь два года. В 2009 году OpenMoko прекратило работу над проектом и остались лишь сторонние разработчики, время от времени выпускавшие обновления и кастомные прошивки для своих устройств. В России официально устройство не продавалось, оно было слишком нишевым, но компания «Линуксцентр» завезла партию, которую распродала интересующимся энтузиастам. Кроме того, я видел ветку на ЛОРе (профильный российский форум о GNU/Linux), где люди хотели скооперироваться и вручную заказать партию устройств. Цена была равна 399$, что по тому курсу примерно 12 тысяч рублей.
И сегодняшнее устройство ко мне попало тоже не просто так, я не зря сказал что оно очень редкое. Маловероятно, что вы найдёте его на онлайн-барахолках. Мне было интересно посмотреть и пощупать это устройство вживую, своими руками, поэтому в один момент я решил создать топик с поиском данного девайса на linux.org.ru и купить его специально для статьи. Пожалуйста, не воспринимайте ссылку на ЛОР как рекламу, это один из самых популярных *nix форумов в РФ и в рекламе он не нуждается (специально для тех, кто читает данную статью не на Хабре).
Откликнулся пользователь id0, который предложил бесплатно подарить мне данное устройство, с моей стороны необходимо было оплатить автобус до отделения почты и пересылку. Сказано — сделано, доставка оплачена, а гаджет выслан, за что говорим id0 большое спасибо! В день, когда устройство было доставлено, ко мне пришла ещё и Nokia N70 в родной коробочке, которую вы можете видеть на видео.
Смартфон вышел почти 15 лет назад, но от него сохранился даже родной аккумулятор. И даже здесь FIC пошли в сторону унификации: местный аккумулятор — вольная вариация на тему BL-4C/BL-5C и сюда отлично подходит аккумулятор от большинства кнопочных Nokia. Неудивительно, что родной аккумулятор уже не держит, поэтому сюда отправляется мой любимый BL-6C!
Включаем устройство и хоба! В отличии от красивых бутанимаций этих ваших андроидов, здесь обычная консоль linux. И именно благодаря ей, я смог найти причину kernel panic, когда оживлял это устройство (Android при panic либо виснет, либо уходит в ребут, при этом dmesg никто не покажет).
Я почти уверен, что в своё время такая картина вызывала изумление, а возможно и восторженный возглас со стороны юниксовода! Конечно были проекты по портированию Linux на обычные коммуникаторы (например, на IPaq HX4700), но тут это всё из коробки!
Но всё было не так гладко, к сожалению, устройство было в состоянии кирпича. Система загружалась, но висла на этапе загрузки оболочки и система, как бы это правильно выразить, сама себя заряжала.
❯ Ремонт
Смартфон нужно было перепрошивать. Вики OpenMoko всё ещё работает, но все ссылки давно уже не рабочие и найти рабочий образ родной системы практически нереально. Система на OpenMoko устроена так: у нас есть загрузчик, это либо U-Boot, либо Qi (есть возможность менять их), есть ядро Linux и есть сама система — rootfs. И дистрибутивы тоже предлагались отдельно: отдельно скачивай u-boot, отдельно ядро, отдельно rootfs. И к сожалению ссылки на них давно не работают, даже в веб-архиве их нет! Увы.
Но в вики можно найти упоминания кастомных прошивок: GameRunner, QtMoko и SHR. И образ rootfs SHR мне удалось найти в закромах веб-архива! Для прошивки у нас есть два пути: загрузка с карточки micro-sd (да, прямо из коробки!) и прошивка образа в внутреннюю память с помощью режима dfu (это не тот же самый режим dfu, что в iPhone), и утилиты dfu-util.
Эта утилита умеет и дампить память, но заставить её работать на Windows у меня не вышло. Однако я заказал EEEPC для экспериментов за целых 700 российских рублей (~10$), куда я скорее всего поставлю Ubuntu и уже там постараюсь восстановить оригинальную прошивку. Поэтому наш сегодняшний путь — это установка на MicroSD флэшку. Я опишу мини-гайд по установке системы на MicroSD, а в конце предоставлю полный образ флэшки, который можно записать с помощью Win32DiskImager. Тут стоит понимать, что скорость NAND памяти смартфона не сильно выше скорости типичной MicroSD флэшки, поэтому на производительности это не скажется. А вот когда я переносил Android на MicroSD флэшку, там система откровенно думала!
Итак, для работы системы, флэшку необходимо разбить на два раздела: первый это FAT, второй EXT2/EXT3/JFFS. Под Windows этого сделать не выйдет: ставьте виртуальную машину (у меня, как назло, нормально не работала ни puppy, ни dsl), либо поступите как я.
Когда функций кардридера в хабе мне не хватает, я прибегаю к использованию одного из своих смартфонов, на котором у меня стоит TWRP с ROOT доступом через adb. В этом случае, для работ я использовал его, но все команды в статье должны работать под любым десктопным linux дистрибутивом. Только поменяйте имена разделов с /dev/block/mmc, на /dev/sdb или /dev/sdc. На этом смартфоне потихоньку помирает флэш-память и именно на нём я переносил систему на MicroSD! Использовать мы будем флэшку на 2гб, но обязательно либо SD, либо SDHC. SDXC Neo FreeRunner навряд-ли поддерживает.
Вставляем флэшку в слот MicroSD, загружаем вспомогательное устройство в рекавери, заходим в консоль и пишем adb shell. Теперь пишем:
fdisk /dev/block/mmcblk1
Удаляем существующие разделы с помощью d и создаём два раздела: один будет служить хранилищем для ядра и ваших личных данных, произвольного размера и второй под rootfs, на него нужно примерно 500 мегабайт. Записываем таблицу разделов и при необходимости перезагружаем устройство (на некоторых устройствах ioctl с требованием обновить таблицу разделов не проходит). Теперь форматируем первый раздел в FAT:
mkfs.fat /dev/block/mmcblk1p1
А второй в ext:
mke2fs -t ext2 /dev/block/mmcblk1p2
Под Windows закинуть ядро в FAT раздел не получится, он обязательно ломает суперблок второго раздела по какой-то причине! Поэтому создаём две точки монтирования:
mkdir /a/
mkdir /b/
И закидываем в них linux и рутфс. Ядро должно называться uImage.bin и должно находится в корне первого раздела. Рутфс необходимо распаковать из tar.gz. Делаем это так:
adb push uImage.bin /a/
adb push rootfs.tgz /b/
cd /b/
tar -xvf rootfs.tgz
Готово. Выключаем устройство, вытаскиваем флэшку, вставляем в Neo FreeRunner и зажимаем кнопку включения с кнопкой AUX. Появится меню загрузчика. Нам нужно выбрать загрузку с SD карты и перед нами будет такая картина (извиняюсь за грязь на устройстве, у него софттач покрытие, которое со временем начинает собирать на себя вообще всё подряд. Нужно оттереть спиртом):
Устройство загрузилось и работает, а система мимикрирует под iOS своим локскрином! Вообще, это кастомная прошивка, поэтому оценивать юзабилити устройство именно по ней не совсем корректно, но всё же прошивке есть что предложить.
❯ Обзор
Итак, это именно Linux, в качестве оконной системы здесь настоящие «иксы» и есть полноценная многозадачность, с возможностью расположить несколько окон на одном экране. Система работает очень нешустро, полная загрузка проходит примерно за полторы-две минуты, а звонилка открывается примерно секунды две, но возможно это издержки кастомной прошивки и на стоковой прошивке всё было хорошо. Во время написании статьи, мне один раз даже пришлось перезагружать устройство!
Вот так в этой прошивке выглядит главное меню. И это практически весь доступный софт: клиент pidgin, плеер, видеоплеер, целых два терминала, настройки, wifi, заметки и это практически всё! Открытие приложений занимает несколько секунд, но, полагаю, на OpenMoko дела обстояли гораздо лучше. Там таких тормозов не было, а SHR кроме GTA-02, работал ещё и на GTA-04 и HTC Hero вроде-бы.
Несмотря на наличие Wi-Fi модуля, подключится к домашней сети мне не удалось. Со стоковой прошивки, устройство к Wi-Fi подключалось. Надеюсь, хотя-бы GPRS тут работал!
Зато здесь куча настроек: темы, твики, настройки масштабирования, есть практически всё. Загрузка каждого подпункта занимает около секунды.
Но у устройства достаточно высокое разрешение экрана. Такое же, было, например у Nokia 5800, которая вышла в том же году.
Здесь есть аудиоплеер с эквалайзером, но даже он не умеет сам искать музыку хотя бы в домашней директории! Нужно руками добавлять папки. Выглядит не очень удобно.
Ну а ещё здесь, конечно же, есть терминал. По сути, это чуть ли не основной способ управления устройством, но виртуальная клавиатура очень неудобная. Если бы у этого устройства была бы QWERTY клавиатура, всё заиграло бы иными красками. Если систему грузить не с флэшки, то есть возможность передать в commandline ядра перенаправление консоли на usb, что позволит управлять мобилкой с ПК.
И это все приложения, что есть в данной прошивке. Я серьёзно! Однако статья уже получилась достаточно объёмной, поэтому Quake мы сюда собирать не будем!
❯ Заключение
Устройство имело перспективы, но было достаточно сырым. Скорее это была достаточно дорогая игрушка, ведь те, кто хотел себе коммуникатор, покупали в первую очередь решения на WinMobile. Те, кто хотел себе смартфон, брали устройства на Symbian. Те, кто хотел себе телефон, брали простую звонилку. Несколько более допиленной вышла небезызвестная Nokia N900, работавшая на ОС Maemo, но в ней из коробки даже поддержки USSD не было. Но вот, спустя столько лет вышел PinePhone и есть pmOS. Осталось ли его юзабилити на таком же уровне или всё стало гораздо лучше!? А какое ваше мнение?
Комментарии (15)
MaFrance351
22.12.2022 14:51+2Кстати, этот девайс — ещё и один из тех, что может быть использован в проекте Osmocom помимо Motorola на базе TI Calypso.
steanlab
23.12.2022 00:15Почитал про Osmocom, что-то нереальное конечно.
Но в плане телефона под это дело на барахолках наверное проще какой SE K100 найтиMantikor_WRX_STi
23.12.2022 13:44Моторол С115 и иже должно быть валом на вторичке, если конечно в мусорку, как мои не пошли. В свое время таскали их тысячами.
MaFrance351
23.12.2022 19:14Сам ради этого проекта купил C115 и два C118. В одном лоте за полторы тыщи были эти три штуки и ещё парочка трубок на CDMA.
gmk1
23.12.2022 23:03Вот в столе что нашел. Тоже достаточно редкий аппарат.Слева обычный сименс SXG75, а справа уже отладочный аппарат. Кабель мне в свое время не достался. Кусок платы что торчит, это плата телефона. Она не сьемная. Так сделано изначально. Для отладки.
bodyawm Автор
23.12.2022 23:11Я уже почти матом написал, но вспомнил что на хабре))
ппц вам повезло, это очень, очень редкие и крутые ништяки! Даже не думал, что таким образом жтаг вывели!
daggert
24.12.2022 08:46Вот я смотрю на него сейчас и понимаю что опять хочу его себе, как и …ять лет назад. Там еще и линукс стоит какой-то, прям мечта извращенца.
gmk1
23.12.2022 23:24+1Аппарат раньше был живой, уже не помню чем он отличался внутри от обычного. Надо найти акб. И включить.
Есть еще прототип как бы модульного телефона, и его серийный вариант. Так что модульность это давняя фишка. Когда то даже начал писать небольшую статью об этом курьезе. Но бросил. Так как узнал что сюда статьи про ретро не особо пропускают.
gmk1
23.12.2022 23:36В свое время их патчил вдоль и поперек. Да и там были сыли фишки когда запорешь, перерезать дорожку на третьем слое платы, и тд. Если лень или нечем проц поднимать.
вот прародитель hpc. Неизвестной модели, неизвестного производителя. Предназначем для теста аппаратной части. Проц затерт. Помимо последовательного порта, выведен порт с надписью дебуг. Снизу блок дип переключателей. И в одной из комбинаций выдает такую забавную картинку.
steanlab
не устройство, а прям пирожок какой-то. жалко что огромная редкость.
p.s. через какой сервис вы так симпатично вставили видео-ролики с малышом?
DaemonGloom
Ролики — просто встроенное html5 видео. Автор их хранит на leonardo.osnova.io, но вообще место хранения не критично — лишь бы сервис мог отдавать именно файл, а не пытаться рисовать плеер.
bodyawm Автор
Леонардо - cdn сайтов ИА Комитет (DTF, vc.ru, tj ранее)