Где я подробно рассказываю о том, как реализовал клиент современного мессенджера Telegram на Android 1.5+ и выше. Таким образом, Telegram будет работать даже на самом первом Android-смартфоне в мире, T-Mobile G1, причём на стоковой прошивке!
Моддинг-сцена с разработкой и портированием кастомных прошивок для Android-устройств существует вот уже более 10 лет. В основном, энтузиасты пытаются проапгрейдить свои устройства путем портирования более свежих версий Android, чем предлагает производитель девайса. Чего уж говорить, если Galaxy S III, которому уже 12 лет стукнуло, получил неофициальный апгрейд до Android 14. Порой мне в голову приходят различные, весьма странные моддерские мысли: например, почему бы не портировать на старенький смартфон… ещё более старую версию Android, дабы посмотреть «что будет». Казалось бы «портировал и портировал», но в процессе работы я столкнулся с множеством интересных нюансов и особенностей работы Android, о которых хотел бы рассказать и вам — моим читателям! Сегодняшняя статья будет в классическом «научпоп»-стиле без кода, зато с подробными объяснениями одной из техник портирования Android-прошивок путем патчинга скриптов для конфигурации системы и подмены Board-specific библиотек, дабы система «увидела» всё необходимое железо! Интересно? Тогда жду вас под катом!
❯ Мотивация
У меня, как и у многих моих читателей, одной из первых версией Android в жизни была 2.x. Наверное, я уже никогда не смогу забыть первые впечатления от использования своего новенького, пусть и бюджетного и слабого Android-смартфона после простеньких китайских кнопочников. Эти ощущения были прекрасными: вот я разблокирую смартфон, потянув «замочек» вправо, свайпаю рабочие столы и тапаю на значок приложения браузера, выполненный в стиле скевоморфизма, загружаю полноценную страницу Википедии через GPRS-сеть (мой первый смартфон не имел 3G) и плавно скроллю страницу, не забывая смахнуть шторку вниз и проверить статус уведомлений в пока ещё совсем простенькой панели нотификаций… Это были по настоящему ламповые впечатления, которые не смог превзойти ни один современный девайс: ни AOSP, ни MIUI, ни OneUI.
Моим первым смартфоном была китайская реплика Samsung Galaxy S III Mini, купленная в самом начале 2013 года. Возможно, кто-то из вас помнит, как подобные дешевые смартфоны и планшеты «Sumsanc» можно было купить на рыночных развалах, в метро и прочих местах, где допускается торговать несертифицированными гаджетами. Даже с учётом накрутки, эти смартфоны стоили всего 2 000 рублей, что было просто «подарком» для цены абсолютно нового гаджета. Девайс был крайне простым для начала 2013 года и имел следующие характеристики:
Процессор: Spreadtrum SC6820. Одно ядро Cortex-A5 на частоте до 1ГГц, Mali400 MP в качестве GPU. Чипсет был крайне высоко-интегрированным для своих лет: в одном корпусе располагалось ARM-ядро, GPU, контроллер питания, GPS, множество периферии (например, DAC), а также Baseband-часть GSM-радиотракта. BT/Wi-Fi реализовывались в отдельном комбочипе разработки RDA.
Память: 256Мб DDR1 ОЗУ/256Мб NAND-памяти в одном чипе eMCP от Hynix. Предположительно, эти чипы остались на складах ещё со времен первых Android-смартфонов, но очень быстро потеряли актуальность и их, вероятно, отдавали «за бесценок» что позволило ещё сильнее снизить цену производства таких смартфонов.
Дисплей: безоговорочно, TFT, обычно с разрешением не выше 480x320, что для 3" дисплея было нормальным, но для 5" — уже несколько маловато. Тем не менее, сами дисплеи были нормальными и глаза от них не «вытекали». Тачскрин обычно ёмкостной, на 2 касания.
Android: 2.2, на некоторых похожих моделях встречался 2.3.
Аккумулятор: ~1.500мАч, не больше. По форм-фактору напоминает BP-4L, без проблем подходит от многих S60 смартфонов Nokia тех лет.
Не густо, да? Уже в апреле того же года вышел Galaxy S4 с Snapdragon 600, 2Гб ОЗУ и 32Гб встроенной памяти, а мы тут с одноядерным чипсетом и 256Мб ОЗУ сидим. Но мне, будучи школяром, это было за счастье — чего я на нём только не делал, и на PHP какие-то WAP-сайты динамические пытался писать и на FTP заливать, и даже ADT Bundle скачал, дабы попытаться что-то своё запилить под собственный смартфон! В общем, я был счастлив, несмотря на лаги девайса. Именно того девайса у меня уже давным-давно не осталось… но память я всё ещё храню и стараюсь дать новый дом таким китайчикам, которые в большинстве своем оказались на свалке истории в новом мире современных смартфонов!
Но на самом деле, смартфоны 10+ летней давности могут быть интересны и своим форм-фактором: в современном мире едва ли можно найти хоть какие-то телефоны с полноценной QWERTY-клавиатурой (исключение — смартфоны UniHertz, которые стоят недешево) и уж тем более, боковые слайдеры. Поэтому мой интерес к подобным девайсам очень легко объяснить!
Однако, порой мне самому хочется снова пережить эти эмоции и ещё раз походить с подобным девайсом «на каждый день», даже когда на Android 2.2 особо никакие сервисы уже не работают. Отчасти, я решаю свои проблемы сам и пишу клиенты нужных мне сервисов, если они действительно нужны, дабы рано или поздно всё таки вдохнуть новую жизнь в «старенькие» девайсы. И казалось бы, это можно списать на синдром утёнка и банальную ностальгию, но мои ощущения «ламповости» отнюдь не мимолетны и всё равно меня тянет именно на те смартфоны, с тем самым интерфейсом, которые я когда-то увидел впервые!
Пожалуй, сказать что я решил портировать старый Android на отнюдь не новый смартфон «просто так» было бы ложью. Я всё ещё верю в то, что смогу в одиночку хотя бы частично вдохнуть новую жизнь в эти девайсы и позволить им работать с современными сервисами, дабы они могли приносить пользу не только мне, но и другим людям, которые намеренно занимаются дауншифтингом или вынуждены сидеть на девайсах с старыми версиями Android! Сегодняшним нашим подопытным станет один из представителей подобных noname-смартфонов тех лет, реплика Galaxy S III Mini на том самом железе, на котором работал мой первый смартфон. Однако с завода на нём стоял Android 2.3 — слишком свежая, по моему мнению, версия системы, которую я конечно-же захотел откатить до Android 2.2!
Задача облегчалась тем, что смартфоны на этом чипсете с Android 2.2 уже выходили, что позволило мне портировать прошивку путем несложных патчей скриптов инициализации и копирования Platform-specific файлов, дабы завести все необходимые для смартфона модули. А поскольку о таком простом способе портирования свежих и старых прошивок знают далеко не все мои читатели — я решил написать об этом отдельный подробный материал! Давайте же перейдём к практической части нашей статьи.
❯ Первые шаги
Перед тем, как начать портирование системы, нам необходимо разбираться в том, как вообще происходит процесс загрузки Android и какие процессы при этом загружаются. Вкратце, описать весь процесс загрузки можно так:
Загрузчик: при включении смартфона, первичный загрузчик BootROM, аппаратно-прошитый в чипсет ещё на этапе изготовления чипа, инициализирует некоторую периферию, загружает вторичный загрузчик из NAND (коим может быть SPL — Second Program Loader, занимающийся инициализацией контроллера DDR и UART) и передаёт ему управление. Вторичный загрузчик в свою очередь передаёт управление U-Boot — в задачи которого входит также инициализация периферии, обработка устройств постоянной памяти (например, NAND или контроллер SD), загрузка ядра Linux и конфигурация самого процесса загрузки. U-Boot можно считать эдакой альтернативной UEFI/BIOS в мире не-x86 устройств. В смартфонах на базе чипов MediaTek и Qualcomm, роль U-Boot выполняет LK — маленькая ОС, в задачи которой входит инициализация периферии и передача управления ядру Linux с помощью программы aboot.
Ядро Linux: после загрузки образа ядра с initrd (небольшая файловая система, которая загружается сразу в память и содержит в себе скрипты для конфигурации всего остального) и передачи управления ядру, Linux начинает выполнение программы с PID 0 — /init, в задачи которой входит выполнение скриптов инициализации userspace-окружения системы в init.rc. При этом смартфон уже фактически готов к работе — в одной из своих статей я показывал, как можно приостановить загрузку Android и выполнять свой код, используя все ресурсы смартфона для своих целей.
zygote и app_process: помимо запуска необходимых для работы смартфона служб, динамической загрузки драйверов (с помощью insmod) и определения режима загрузки (например, если телефон подключили выключенным к зарядке — необходимо показать анимацию этой самой зарядки), init.rc запускает две программы, одна из которых необходима для функционирования системы. Первая — это bootanimation, которая проигрывает анимацию включения смартфона и app_process, который в одном из режимов работы превращается в zygote — самый важный процесс для работы Android, который предварительно при старте системы загружает системный Java-байткод, отвечающий за отрисовку интерфейса, проигрывание звука и т. п. из framework.jar и другие системные ресурсы (например темы и изображения), а затем при запуске каждого приложения просто клонирует сам себя (с уже загруженными ресурсами) и начинает выполнение байткода любого запущенного Android-приложения или службы.
Каждое запущенное приложение или служба — это отдельный app_process, в том числе и лаунчер, и Google-сервисы и клиент любого мессенджера.
Всё выглядит просто и логично, не так ли? Подытожив, можно сказать что для того, чтобы система минимально стартовала, нам необходима подходящее ядро для нашего устройства, рабочий init.rc и адекватно запускающийся init.rc. Кроме того, Android зависит от некоторых платформо-специфичных библиотек: в основном, они находятся в /lib/hardware и без них система может не запуститься или что-то может не работать. Особенно осторожно надо подходить к libhardware.so.
Как я уже сказал выше, прошивку мы будем портировать от другого смартфона на том-же чипсете и что забавно — такую же реплику, просто более-раннюю! «Из коробки», мой смартфон работает на Android 2.3, значительно более стабильной, чем изначальный порт 2.2 на эту платформу. Отличий 2.3 от 2.2 достаточно: например, на 2.2 совсем иной цвет шторки, по умолчанию стоит Light-тема, нельзя закрывать уведомления смахиванием и в целом система несколько отличается внешне. Для работы нам нужно будет два образа прошивки: ту, которую будем портировать и та, которая стоковая. Прошивки в смартфонах на платформе Spreadtrum распространяются в формате pac, однако нет никаких проблем подменить образ раздела в ResearchDownload — фирменной утилите для прошивки смартфонов на этом чипсете.
Я решил взять прошивку от FeiTeng N9300 Mini, родная для моего смартфона — M-Horse 9500 Mini. В случае моего девайса, разметка и список разделов между устройствами никак не отличалась, поэтому изначально я напрямую прошил раздел system.img, дабы посмотреть что будет с устройство. Не забывайте, что ядро и init.rc хранится в образе boot.img — поэтому прошивка раздела system безопасна!
❯ Первый запуск
После прошивки чужого раздела system, смартфон стартовал… однако работал несколько странно: во первых, у нас не было сети, во вторых не работал тачскрин (при родном то ядре), а в третьих, Android ни в какую не видел аккумулятор, вися на 0% и моментально отключаясь, если смартфон не стоит на зарядке, а при попытке воткнуть кабель — смартфон показывал индикацию зарядки, но потребление было на нуле.
Поскольку тачскрина у нас нет, root доступ через adb придется включать «ручками» — для этого нам необходимо перепаковать наш родной раздел boot. Для распаковки и запаковки образов, я пользуюсь MtkImgTool — весьма удобная «кухня» для работы. Вытаскиваем boot.img из pac, закидываем в Unpack/Image/ и распаковываем с помощью Boot -> Unpack -> boot.img
В Unpack/boot/ramdisk/default.prop нам необходимо изменить ro.debuggable на 1, а ro.secure на 0. Это даст возможность отлаживать устройство даже если Android фактически не загрузился.
Теперь у нас есть root-консоль устройства, даже если смартфон висит на заставке. Прошиваем обратно образ, пишем adb shell в консоли и смотрим, что же тут не так… Вообще, драйвер тачскрина обычно статически слинкован с ядром, но в случае устройств Spreadtrum — они вынесены в динамические модули ko, которые можно найти в папке /lib/modules/, либо /sps/. Давайте глянем init.sp6820a.init.3rdparty.rc, который отвечает за специфичную для этой модели смартфона инициализацию.
Ага, видим insmod gt868.ko? Это команда загрузки драйвера тачскрина, в нашем случае — это вышеупомянутый GT868. Иногда встречаются другие модели тачскринов, но главное отличие прошивки 2.2 от 2.3 — разные названия папок с драйверами и некоторые службы. Достаём из родного образа драйвер gt868.ko, используя всё тот-же MtkImgTools, распаковывая его как обычный ext2 раздел:
И наслаждаемся тем, что у нас теперь появился тачскрин! Android сам подхватил новое устройство ввода, поскольку драйвер тачскрина — обычное устройство в /dev/input/. Чтобы драйвер грузился при загрузке, его достаточно добавить в init.sp6820a.3rdparty.rc, предварительно закинув в раздел /system/. Перед этим, раздел нужно перемонтировать для возможности записи:
После модификации rc-скрипта, нужно обратно запаковать boot.img с помощью MtkImgTools и прошить его с помощью ResearchDownload — тачскрин будет работать даже после перезагрузки!
❯ Поднимаем зарядку и сеть
Переходим к отсутствию связи с аккумулятором и нулевым потреблением АКБ. Здесь мне пришлось несколько покопаться и почитать логи ядра с помощью команды dmesg. Я обратил внимание на то, что некая служба пишет что-то об аккумуляторе, но разобраться было несложно: в папке /system/bin я нашёл программу charge, которая, очевидно, отвечает за настройку КП для старта зарядки. Что она точно делает — мне неизвестно, возможно корректирует какие-то значения в sysfs, возможно с помощью ioctl общается с драйвером КП и даёт разрешение на старт зарядки и обновление информации в sysfs. В любом случае, после замены /system/bin/vcharged на оный из родной прошивки, зарядка заработала.
Для этого мы снова перемонтируем /system/ в режим записи и копируем vcharged, не забыв вернуть обратно необходимые права:
Перезагружаем устройство и… зарядка с индикацией появилась!
Вроде всё работает на первый взгляд: и звук, и вибро, и Wi-Fi с Bluetooth… однако сети-то нет! Девайс не определял наличие SIM, а вместо IMEI у нас был null/null:
Чтобы её поднять, нам необходимо разобраться в том, как работает подсистема взаимодействия с радиомодулем в Android, которая называется ril — Radio Interface Library. RIL предоставляет API для системы, дабы оперировать не напрямую AT-командами (которые могут быть проприетарными, а на некоторых чипсетах, как, например, Qualcomm вообще отсутствовать), а удобным набором функций — например о запросе статуса радиомодуля, начале звонка, поиска сети и т. п. RIL состоит из сервиса rild в /system/bin/ и библиотеки libril.so, которую можно найти в папке /system/lib/. При запуске системы, TelephonyManager открывает сокет с rild и опрашивает его состояние. Именно из TelephonyManager система берет информацию о силе сигнала, название оператора, IMEI и другие данные.
Путем ковыряния в dmesg я понял, что система флудит из-за невозможности запустить проприетарный сервис Spreadtrum — sprd_monitor. При попытке позвонить в 112, смартфон бесконечно пытается включить радиомодуль. Я ковырялся в UI-части исходного кода Android, дабы понять логику работы, но проблема крылась как раз в упомянутых выше службах sprd_monitor. Берём их из /system/bin/ оригинальной прошивки, закидываем их в устройство, не забыв установить права и отправляем систему в ребут:
Ошибки в dmesg пропали, IMEI появился, но устройство до сих пор не хочет никуда звонить и просто висит на экране звонка. В настройках смартфон говорит о том, что уровень сигнала недоступен, а значит, радиомодуль до сих пор не работает :(
Но и мы так просто не сдаемся! Поковыляв по файловой системе, в директории /system/opl/telephony/bin/ я нашел скрипт, отвечающий за инициализацию радиотракта, который вызывает родной 3rdparty.rc! Запускаем sh-скрипт и обнаруживаем, что сеть появилась и девайс дозвонился в 112, а также увидел SIM-карту!
Теперь всё полностью работает :) Дабы радиотракт запускался при старте устройства, я перенес часть инита из boot.img от прошивки, которую мы портировали. Для кого-то, казалось бы, это всё достаточно сложно и долго. Но у меня ушел всего один день на полную отладку и запуск такой кастомной прошивки на своем устройстве! Можно сказать, это самый базовый и краткий экскурс в такое нелегкое дело, как моддинг Android-устройств.
Но мы ведь это всё не просто так делали! Давайте глянем, как будет работать такой девайс на Android 2.2 в 2024 году — спустя 14 лет после выхода системы. Всё ли так плохо, как кажется?
❯ Знакомимся с девайсом
Думаю, многие читатели вспомнят этот ламповый интерфейс, обои с одуванчиком и лаунчеры а-ля TouchWiz на тех смартфонах, где интерфейс Samsung был не предусмотрен. А эти «бульк»… их сложно забыть!
Конечно, изначально может показаться, что устройство плохо подходит для выполнения современных задач: браузер не способен загрузить большинство страниц, а из альтернатив есть только Opera Mini, где вообще нет динамического контента, а официальные клиенты ВК, WhatsApp и YouTube уже давно не работают. Опечаленный читатель может подумать, что девайс, как и многие его ровесники уже давно превратились в звонилки…
Но это отнюдь не так! Ведь как я уже говорил, я стараюсь своими силами вдохнуть в подобные девайсы новую жизнь, реализуя на них клиенты нужных мне сервисов сам! Да, пусть примитивно и корявенько, далеко не ынтырпрайз-уровень, но эти приложения выполняют свои функции и что, немаловажно, весят очень мало (до 100Кб) и работают крайне шустро! Клиент ВКшечки просто летает, несмотря на то, что фактически реализован только мессенджер с нотификациями и музыка.
Пожалуй, многие читатели удивятся — но на таких девайсах есть YouTube! Мой самопальный клиент не поддерживает стриминг из сети (да и многие девайсы объективно не потянут), поэтому предварительно загружает видео на MicroSD-флэшку и затем уже их воспроизводит. Как приятный бонус — видео потом можно посмотреть в любой момент в галерее.
Я помню насколько было лампово слушать музыку с таких девайсов. И если претензии к основному динамику не очень актуальны, то к качеству звука в наушниках были придирки — звук был громкий, но ему не хватало низких частот, из-за чего он звучал несколько плоско, хотя мне и этого хватало — ведь я слушал музыку в наушниках по 200-300 рублей с рынка! Я всё ещё помню те времена, как качал mp3-треки по 2-3 мегабайта через 2G-интернет… слушаешь один трек — как раз загрузится другой и так по кругу наполнял свою фонотеку. Эх времена то какие были! Тем не менее, для некоторых базовых мультимедийных возможностей девайс подходит и сейчас, например в машину в качестве BT-хоста с музыкой. А ещё на таких девайсах порой клёво скачать какой-нибудь Temple Run образца 2011 года и вспомнить самое начало смартфонного гейминга тех лет… ведь далеко не все игры того времени запускаются на свежих версиях Android!
❯ Заключение
В остальном же, подобные девайсы отнюдь не бесперспективны! Несмотря на совсем не новое железо, они всё ещё могут выполнять многие задачи, стоит лишь снова запилить необходимые приложения для них! Мессенджеры, соц. сети, музыкальные сервисы и даже просмотр видео — всё это доступно даже для таких, казалось бы, «устаревших» девайсов, когда есть запал энтузиазма и жгучее желание походить именно с этим конкретным устройством как с основным!
Для кого-то это просто проявление синдрома утенка или картинки «вот кому-то делать не.»… ну а для меня — это крайне интересное, захватывающее и кайфовое времяпровождение: начиная от аппаратного ковыряния с такими девайсами и копания исходников ядер/драйверов, заканчивая написанием оптимизированных клиентских приложений, которые весят не 100-200Мб, а 100-200Кб :)
Друзья, если у вас есть подобные китайчики и вы не разделяете желания пытаться вдохнуть в них жизнь, но выбрасывать их жалко — можете задонатить их мне :) Как сами видите — девайсы попадают в хорошие руки. Из недавнего — я взял нерабочую, утопленную китайскую копию 14 Pro Max из под СЦ в качестве основного смартфона. Также у меня есть канал в Telegram, куда я выкладываю бэкстейджи статей, различные заметки о ремонте, моддинге, программировании и реверс-инжиниринге и свои мысли. Кому интересно — залетайте!
Понравилась ли вам статья? Какими были ваши первые Android-смартфоны? Пишите в комментариях, будет интересно почитать!
Велик шанс, что мобильным интернетом вы пользуетесь прямо сейчас, читая этот текст. Без него трудно представить нашу жизнь — но знаете ли вы, как именно он работает? Что означает G в 4G и почему связь называется сотовой? Сейчас вместе с МегаФоном все объясним. Да так просто, что поймет даже ребенок!
Как вообще работает сотовая связь
Сотовая вышка — это большая рация с огромной антенной, наши телефоны — рации поменьше. Между собой они связываются с помощью невидимых глазу волн. Вышка напрямую подключена к интернету с помощью толстого подземного кабеля. Так что она работает, как огромный роутер, а паролями от «Wi-Fi» служат сим-карты.
А еще у каждой вышки есть область действия. И если посмотреть на город, в котором вы живете, с высоты птичьего полета и представить, что нам видно эти области, они будут похожи на пчелиные соты. Вот почему связь называется сотовой.
Наши телефоны постоянно ищут радиосигнал, подключаясь к самому мощному. Чем ближе его источник, тем он сильнее. Когда телефон находится в зоне доступа радиовышки, он постоянно «разговаривает» с ней, обмениваясь информацией. Та получает от вас буквы и цифры, а присылает картинки, видео и музыку. А при разговоре передает ваш голос в виде единиц и нулей на телефон мамы или приятеля, где динамик превращает все это обратно в звук.
Компания, которая устанавливает вышки, и следит за тем, чтобы они исправно работали, называется оператором. Сегодня лидер по покрытию и скорости мобильного интернета в России — МегаФон*. Все благодаря тому, что компания постоянно внедряет самые современные технологии, обеспечивающие быстрый и стабильный доступ в сеть.
Что такое 4G и LTE?
G — это первая буква английского слова generation, поколение. То есть 1G — связь первого поколения, а 4G — четвертого. Чем новее поколение — тем лучше. Друг от друга все эти G отличаются количеством информации, которую может передать сотовая вышка. В эпоху 1G по телефону можно было только звонить, а звучание голоса собеседников было очень плохим. В 2G звонки стали лучше, а еще появилась СМС — сегодня уже полузабытая технология пересылки коротких сообщений. Тогда у сообщений был лимит на количество знаков, а за отправку каждого операторы брали деньги. Поэтому люди ставили точки вместо пробелов и писали русские слова латинскими буквами — так умещалось больше символов.
3G — это уже мобильный интернет: можно и сайт открыть, и эмодзи отправить, но вот видео в хорошем качестве все еще не посмотришь.
А 4G — это уже современный стандарт: классный, быстрый, надежный.
Правда, и это не предел. У МегаФона есть pre-5G — это как 4G, только круче: работает даже если вы в огромной толпе, а скорость почти как по проводу. Все благодаря умной программе на станциях оператора, которая определяет самые загруженные участки и расширяет радиоканал для тех, у кого подключена опция pre-5G в тарифном плане.
А как же LTE? Это просто название стандарта беспроводной передачи данных, входящего в четвертое поколение 4G. Если 4G — это игровая приставка, LTE в таком контексте — PlayStation или Xbox.
MIMO
Представьте, что вы направили луч фонарика в окно, чтобы осветить комнату за ним. Если перед лучом будут преграды (дерево или, скажем, ваш любопытный друг, которому интересно, что это вы такое делаете), часть света «потеряется» и освещение получится тусклым. Конечно, можно купить более мощный фонарик, но полностью проблему это не решит: препятствия ведь все так же будут блокировать лучи.
А что если поставить, скажем, два фонарика, причем так, чтобы их лучи не накладывались друг на друга, а еще взять и прорубить в стене дополнительное окно? Именно так и работает технология MIMO. Один сигнал (то есть поток из данных) одновременно отправляется вам на телефон сразу двумя антеннами. А ваш телефон принимает их своими двумя антеннами. В итоге скорость мобильного интернета увеличивается.
В сетях МегаФона используется технология Massive MIMO: «фонариков» в них не два, а гораздо, гораздо больше. Вот почему интернет оператора такой быстрый и работает там, где не получается у других.
VoLTE
Сравните две картинки:
Картинка справа вся в квадратиках из-за низкого разрешения. Выглядит ужасно, но есть и плюс: она гораздо меньше весит, а значит, быстро загрузить ее может даже самый слабый интернет. А для того, чтобы быстро показать вам красоту слева, нужна очень хорошая скорость.
Когда вы разговариваете по обычному телефону (то есть не через WhatsApp или Telegram), вы делаете это по 2G. Так что ваш голос, как и голос вашего собеседника, транслируется не в максимально возможном качестве. Кроме того, вы не можете пользоваться интернетом, пока говорите. Одни неудобства.
Вот для чего нужна VoLTE: эта технология позволяет в реальном времени транслировать речь через 4G. А это значит — идеальное звучание и минимальная задержка сигнала.
SON
Представьте, что вы — капитан парусного корабля. Но есть загвоздка: у вас нет команды, и все-все-все приходится делать самому. Крутить штурвал, выбирая направление, карабкаться на мачту, чтобы осматривать горизонт, разворачивать паруса и даже латать пробоины. Та еще задачка!
Раньше всей работой сотовых вышек в ручном режиме управляли специалисты. Им приходилось самостоятельно балансировать нагрузку на станциях, выбирать углы наклона антенн и делать еще кучу всего, чтобы у абонентов была стабильная и надежная связь.
Поэтому МегаФон внедрил у себя систему автоматической оптимизации SON. Это умная программа, которая постоянно, 24 часа в сутки и семь дней в неделю, анализирует работу станций и вышек и сама вносит нужные корректировки. Плюс она умеет устранять ошибки и сбои даже быстрее, чем человек.
В итоге специалисты МегаФона могут сосредоточиться на внедрении новых технологий и расширении возможностей сети.
Абонентам МегаФона доступны самые современные технологии мобильной связи: от быстрейшего в России LTE и pre5G до VoLTE. А еще это оператор с самым большим покрытием в стране. Подключайте тарифы МегаФона и наслаждайтесь действительно качественной связью.
* МегаФон — мобильный оператор №1 по скорости и покрытию. Основано на анализе скорости мобильного интернета и данных о покрытии сети компании Ookla ® («Оокла») в 2017–2023 годах. Карта покрытия и другие подробности — на megafon.ru.
Друзья! Многие ли из вас помнят такой телефон, как Nokia N-Gage? В начале нулевых финская компания сделала смелую попытку ворваться на рынок игровых консолей, создав устройство, которое сочетало в себе сразу две функции: полноценный смартфон на базе аппаратной платформы WD2 с Symbian на борту и игровая консоль с собственными картриджами! Год назад читатель подарил мне N-Gage QD с некоторыми аппаратными проблемами, которую я успешно оживил и подготовил подробную статью, в которой мы: узнаем историю появления N-Gage на свет и на чём он работал «под капотом», отремонтируем устройство и узнаем о самых частых аппаратных «болячках» смартфонов Nokia на платформе WD2, а также посмотрим на местную игровую библиотеку подробнее и выясним особенности разработки игр под Symbian! Интересно? Тогда добро пожаловать под кат!
❯ Что за N-Gage и как он появился?
Пожалуй, в истории мобильного подразделения Nokia, N-Gage один из самых желанных и неоднозначных устройств, когда либо разработанных компанией. Девайс прошёл долгий путь от смартфона, который ругали чуть ли не все, до легендарного устройства, которое ценится некоторыми людьми и сейчас.
По сути, N-Gage является уникальным смартфоном. За всё время существования мобильного рынка, по настоящему игровых телефонов почти и не выходило: можно вспомнить телефоны Sony Ericsson с геймпадом EGB-30,Xperia Play, японские и корейские телефоны, о которых мало кто слышал, да и китайские реплики Nokia с эмулятором NES на борту.
Я писал материал о Xperia Play год назад
В начале нулевых, рынок мобильных игр начинал активно развиваться. С ростом мощностей мобильных девайсов и появлением цветных дисплеев, стали появляться самые разные платформы для запуска мобильных приложений и продажи игр через операторские сети. Например, довольно большим успехом пользовалась перспективная платформа Mophun (Sony Ericsson T310, T610), которая использовала собственный платформо-независимый байткод. Помимо этого, в платформе были уже готовые библиотеки для упрощения разработки игр: вывод 2D спрайтов, 3D графики (программный рендеринг), звука и обработка ввода. Нельзя также не вспомнить о Qualcomm BREW — который использовался во многих CDMA-телефонах в США и была по настоящему нативной, позволяя использовать все ресурсы телефона. Но самой популярной стала, конечно же, J2ME, которая предустанавливалась на большинство телефонов до ~2014 года.
Sony Ericsson T610 - один из девайсов, поддерживающих Mophun
Само собой Nokia не могли упустить момент и не попытаться занять нишу на мобильном рынке игр. У Nokia было две основные платформы: S40, используемая в кнопочных телефонах и S60, платформа основанная на Symbian, которая использовалась в смартфонах компании. Уже в 2003 году, в платформах S40 и S60 была полноценная поддержка J2ME игр и Java показывала себя как достаточно перспективная платформа. Nokia даже реализовали свои собственные расширения для J2ME, дабы игры могли использовать больше возможностей устройства, чем предоставляет MIDP. В целом, телефоны Nokia были очень популярными, благодаря чему почти все J2ME игры имели собственную версию под S40 (а иногда и более навороченные под S60). N-Gage, который должен был объединить телефон и игровую консоль, был анонсирован ещё в ноябре 2002 года, однако вышел в свет 7 октября 2003 года.
Первая версия N-Gage
Однако N-Gage был отнюдь не первым устройством в подобном дизайне. Его предком принято считать Nokia 3300 — смартфон, который в первую очередь был ориентирован для использования в качестве мультимедийного устройства и прослушивания музыки. Тем не менее, устройство тоже поддерживало J2ME и на нём вполне можно было проходить Symbian-годноту из нулевых.
N-Gage был встречен весьма неоднозначно. В устройстве было достаточно много как аппаратных, так и программных недоработок, которые вызывали недовольство среди пользователей. Первая и пожалуй самая главная для игровой консоли — отсутствие возможности горячей смены картриджей с играми. Сами игровые картриджи были реализованы в виде обычных MMC-карт памяти, однако, судя по всему в S60 не было поддержки «горячей» замены карт памяти как таковой, из-за чего для смены игры необходимо было сначала достать аккумулятор, заменить флэшку с игрой, установить аккумулятор, включить устройство и дождаться его загрузки (секунд 15) и только потом уже начинать играть. А учитывая, что это был телефон, то довольно длительное пребывание вне сети устраивало далеко не всех пользователей.
Картриджи были проблемой и для жителей отдаленных регионов. В России, насколько мне известно, картриджи можно было купить только в Москве и СПБ, хотя возможно и ещё в каких-то больших городах. Но вот, например, у меня, жителя Ейска, едва ли была возможность купить картридж «физически» — разве что только под заказ. Другое дело Java игры, которые весили по 50-100 килобайт в те годы и без проблем скачивались даже через мобильный интернет. Впрочем, судя по всему, никакого особого DRM в N-Gage играх не было и после того, как энтузиасты научились сливать игры с MMC-карточек — на N-Gage начало процветать пиратство.
Даже с точки зрения звонков у девайса были свои нарекания. Конструктивно инженеры Nokia решили расположить слуховой динамик не с лицевой части, а с боковой. Из-за этого для разговоров приходилось переворачивать телефон боком. Выглядело это весьма необычно для прохожих, незнакомых с N-Gage. :) Тем не менее, в устройстве были и революционные решения: вспомнить хотя-бы N-Gage Arena, который объединял мобильных игроков в одну сеть с друзьями, таблицами рекордов и т. д.
Чуть меньше чем через год, в мае 2004 года вышла N-Gage QD: исправленная и доработанная версия N-Gage, в которой заметно изменили дизайн, добавили поддержку замены картриджей без выключения девайса и добавили слуховой динамик на переднюю часть корпуса. Именно эта версия N-Gage стала популярной и её чаще всего можно найти на онлайн-барахолках. И хотя N-Gage ругали за недоработки, мобильным игрокам она полюбилась за высокий уровень игр для телефонов тех лет: графика была гораздо лучше чем на GBA и была близка по уровню к PS1, геймплей разнообразнее, чем в Java-версиях, да и сами игры имели довольно большой полноценный сюжет. Это был действительно замах на уровень таких мастодонтов, как Nintendo! Приятным бонусом была полноценная поддержка Java-игр, благодаря чему на телефоне можно было гораздо удобнее проходить уже вышедшие игры для MIDP 1.0, даже если вся библиотека игр N-Gage уже была пройдена!
Не менее интересно девайс устроен и «под капотом». Как я уже говорил выше, N-Gage был построен на базе зарекомендовавшей себя платформы Nokia WD2, которая использовалась в смартфонах 3650, 3300, 3230, 6600 и.т.д. Многие годы смартфоны Nokia работали на базе чипсетов OMAP, в случае WD2 это скорее всего (не точно, есть вероятность что UPP собственной разработки — как и в случае с S40) были специализированные версии OMAP с «перевернутыми» регистрами для предотвращения портирования Linux на устройства Nokia, поскольку OMAP были доступны рядовым энтузиастам.
Характеристики N-Gage были следующими:
Процессор: ARMv4 ядро на частоте 104МГц, что было стандартом для многих телефонов в те годы (например Siemens на платформе S-Gold работали на той же частоте, а E-Gold — вдвое меньшей). Скорее всего, процессор собственной разработки Nokia.
Память: 16Мб SDRAM ОЗУ и 16Мб ПЗУ, раздельно. Иногда флэш-память изнашивалась и в СЦ её нередко меняли. Мои читатели, которые в нулевых работали в СЦ наверняка вспомнят о "бутербродах" на некоторых телефонах :)
Дисплей: 2.1" матрица с разрешением 176x208 и глубиной цвета 12-бит (4096 цветов), выполненная по технологии CSTN (хотя возможно и TN). Для тех лет, диагональ дисплея и его разрешение были оптимальными, круче были только коммуникаторы с 2.4" дисплеями 240x320. Фактически все (или почти все) смартфоны Nokia на Symbian тех лет использовали одну и ту же матрицу, с чуть разной длинной шлейфа (просто где-то её переворачивали вверх-тормашками, как на N70).
ОС: Symbian 6.1
Аудиовыход: 2.5мм джек (моно)
Как видите, ни о каком GPU и речи не шло. Вся отрисовка полагалась исключительно на процессор и результат того, что даже такие крутые 3D-игры как Tony Hawks и Tomb Raider идут на N-Gage — заслуга программистов, которые оптимизировали свои рендереры для работы на 104МГц ядре! А ведь некоторые телефоны тех лет (например, Motorola) использовали отдельные 2D GPU для ускорения отрисовки интерфейса и работы с камерой — ATI Imageon! Благодаря тому, что девайс строился на смартфонной платформе, на нем можно было не только играть, но и слушать музыку, а также смотреть видео и серфить интернет. Весьма и весьма для тех лет!
Даже спустя несколько лет после выхода телефон N-Gage, сам бренд и платформа N-Gage Arena продолжила существование на флагманских смартфонах Symbian, которые уже не имели такой игровой дизайн. Одним из N-Gage 2.0 девайсов была легендарная Nokia N95, которая в плане игровой направленности была гораздо круче, поскольку в устройстве использовался GPU PowerVR MBX Lite. Да, точно такой же, как и в iPhone 2G!
❯ Как он ко мне попал?
Конечно же, рано или поздно я и сам хотел обзавестись собственной N-Gage, с чем мне помог мой читатель, причём всё как я люблю: девайс был полурабочим и требовал некоторого ремонта. Более года назад мне написал подписчик на DTF с никнеймом «Improved white bonkle» и предложил заслать N-Gage QD и ещё одну плату под ремонт с некоторыми аппаратными проблемами: первая плата висела на белом экране, а вторая просто висела на логотипе Nokia без подсветки экрана. Помимо N-Gage, читатель положил «толстую» зарядку и флэшку на 1Гб, за что ему огромное спасибо.
Читатель рассказывал, что девайс он покупал у некого коллекционера «гаг» в России и довольно много играл на ней в эксклюзивные игры для данной платформы. После поломки устройства, девайс лежал у него какое-то время, пока он не заметил мои статьи и не решил заслать устройство под ремонт в хорошие руки. :) Ну что-ж, давайте оживим девайс!
❯ Ремонтируем устройство
Я не зря отметил то, что девайс подарили мне более года назад. Мне удалось сразу продиагностировать N-Gage и обнаружить неисправности, однако фактически отремонтировать устройство у меня не вышло: в то время я откровенно «бомжевал» и у меня даже более-менее адекватной паяльной станции не было. Дабы было понятно: тогда я перепаял коннектор АКБ, сейчас я восстановил BTEMP. На данный момент мне материально активно помогаете вы, мои читатели, поэтому за год я смог обустроить небольшое рабочее место, пригодное для проведения большинства ремонтных работ.
Разбирается девайс очень просто, как и большинство телефонов Nokia тех лет: снимается передняя часть корпуса (панелька), откручиваются винты, снимается пластиковая часть с клавиатурой, дисплей и затем плата из задней части корпуса. Кстати, панельки очень часто любили менять для придания свежего вида устройству: эдакие скины тех лет. :)
Обратите внимание на то, что некоторые детские болячки пользователь и сам мог отремонтировать. Не работает разъём ЗУ, наушники, вибромотор или динамик? Пошёл, купил за 10 рублей на ближайшем радиорынке и сам поменял! Вот уж настоящий right to repair. :)
Визуально осмотрев плату, я пришёл к выводу, что плата скорее всего не копанная китайцами: компаунд UPP'а (процессор) и Mjoelner (радиотракт) был не тронут, флэша с виду тоже в норме, все элементы стояли ровно. Однако около коннектора аккумулятора, я обнаружил следы канифоли: кто-то явно вручную перепаивал коннектор АКБ. Спросив у читателя, я получил утвердительный ответ: он действительно пытался перепаять коннектор аккумулятора с помощью советского паяльника.
Но почему же тогда устройство виснет на заставке Nokia без подсветки? Давайте взглянем на схему:
У коннектора АКБ три контакта: плюс питания, масса и BSI, который уходит напрямую в UEM (контроллер питания). Смартфоны Nokia на платформе WD2 были очень капризны к сопротивлению на BSI и UEM отказывался давать разрешение на старт при установке несовместимого аккумулятора. Казалось бы, BL-4C, BL-5C и BL-5CB по размерам почти одинаковые, но имеют разное сопротивление на BSI.
Однако даже при установке совместимого АКБ, устройство отказывалось включаться. Вывод простой: линия BSI находится в обрыве. Первым делом я сдул коннектор АКБ, перепаял его и девайс наконец-то нормально включился… ненадолго. Произошло падение в «белый экран», как и вторая плата. Причиной этому стала «стекляшка» рядом — токовый датчик LM3820: вероятно, в ходе ремонта коннектора, читатель умудрился неравномерно поплавить шары под стекляхой, из-за чего контакт нарушился. Стекляха среагировала на прогрев с флюсом и девайс снова включился…
Коннектор АКБ уже был, в скажем так, не идеальном состоянии, поэтому для точного исключения влияния коннектора я залудил контакты. Я люблю, когда платы не уколхожены, а весь ремонт близок к заводскому - поэтому коннектор "за кадром" будет заменен на норм.
Но не заряжался. :( При попытке зарядить девайс, система показывала сообщение «не заряжается» и потребление падало в ноль. Ремонт я проводил ещё тогда, когда у меня и станции нормальной не было, из-за чего я умудрился сколоть NTC-термистор прямо под коннектором аккумулятора (обычно он расположен либо с обратной стороны коннектора АКБ, либо с обратной стороны платы), прямо с пятачками.
Я знаю, что иногда меня читают опытные мастера с многолетним опытом, которые уже тянутся написать «Рукожоп! Мы в нулевых в ещё более тяжелых условиях умудрялись мобилки ремонтировать, а ты вон люкей себе не смог купить!». Но я лично считаю, что если косяк нормально исправлен, даже через год — то это не косяк. :) Поэтому лезем в схему и смотрим, куда у нас уходит BTEMP:
BTEMP идёт в UEM через обвязку в виде конденсатора C230, который расположен с обратной стороны платы, около КП. Найти его можно в Component finder'e, который можно найти в самом конце почти любой схемы на телефоны Nokia:
Подпаиваемся, включаем и девайс и… всё снова работает, в том числе и зарядка. :) На этом ремонт устройства закончен.
Отдельное слово хотелось бы сказать о дисплеях: для N-Gage обычно их принято считать достаточно редкими. Однако есть нюанс: практически все смартфоны Nokia на платформе WD2 (и пару на BB5 — например, N70) использовали одну и ту же матрицу с параллельным интерфейсом. Различия были лишь в форме шлейфа. В N70, например, этот дисплей ставился «перевернутым», однако длины шлейфа не хватало для того, чтобы поставить дисплей в N-Gage. Тем не менее, теоретически можно попробовать поставить куда менее редкий дисплей от 6630.
В процессе подготовки материала и изучения схемы, я вывел небольшой мануал по базовой диагностике N-Gage и любого телефона Nokia на платформе WD2:
Белый экран, есть звук включения и реакция кнопок. Чаще всего виноват EMIF-фильтр COM01F2: хрупкая «стекляха», которая повреждается при попадании влаги или падении устройства. Реже — обрыв сигнальных линий дисплея до коннектора дисплея, а то и отвал омапа.
Белый экран, ноль реакции: из-за бага в первых версиях прошивки, при полном заполнении внутренней памяти девайс виснул на белом экране. Реже — проблемы с питанием на OMAP, отвал процессора. Из-за попадания воды может пострадать токовый датчик.
Нет подсветки, лого Nokia: обрыв BSI или неподходящий аккумулятор.
Нет реакции на кнопку включения: замерить напряжение на входе кнопки включения (должно быть близко к VBAT), дальше смотреть в сторону UEM и его обвязки. На некоторых смартфонах Nokia (уже чуть более поздней платформы — например N70) кнопка включения идёт через EMIF-фильтр вместе с клавиатурой, из-за чего убитая стекляха может стать причиной отсутствия напряжения на PWRON.
Нет подсветки, есть изображение: проверить напряжение на C130 — если там есть 13.3В, значит бустер работает нормально. Если напряжение более 13В, то нет фидбека (т. е. катода с подсветки на самом дисплее), необходимо проверить обрыв на коннекторе дисплея. Проверить драйвер подсветки D130, при необходимости заменить (подходит с многих Nokia тех лет, иногда кустарно заменяют на драйверы подсветки с других телефонов).
❯ Знакомимся с девайсом поближе
Как я уже говорил выше, читатель задарил мне ещё и флэшку, на которой было установлено куча игр: как портов игр с других платформ, так и нативных «дампов» с картриджей, а также эмуляторов. Было ли во что поиграть на N-Gage? Давайте узнаем:
Именно на платформу N-Gage вышло не так уж и много игр: всего около 50. Однако среди них всё равно найдется во что поиграть: многие известные издатели решили рискнуть и разработать игры по собственным вселенным для N-Gage. В каких-то случаях это были порты с других платформ (например, Asphalt 2 с PSP, хотя это не совсем верно, поскольку Asphalt изначально мобильная игра), в каких-то уникальные игры, дополняющие ЛОР той или иной вселенной (например, TES Travellers). Не забываем про игры для обычных Symbian-смартфонов, порты и J2ME игры: таким образом, библиотека получается весьма и весьма обширной!
Ну и не стоит забывать и о эмуляторах! С играми для NES и SMD, игровой потенциал N-Gage увеличивается в разы. Ещё бы дисплей был чуть-чуть побольше и хотя-бы классический TN, а не немного блеклый CSTN и было бы вообще идеально.
Помимо игр, на многих Symbian-смартфонах стояли некоторые приложения, которые были must-have для тех лет: например, файловый менеджер X-Plore с диспетчером задач, а также сторонний плеер LCG JukeBox (нормальный плеер с плейлистами появился только в Symbian 8). Иногда диспетчер задач не спасал и девайс приходилось перезагружать.
Давайте же глянем на игры подробнее. Как я уже говорил ранее, все 3D-игры были софтварными: т. е. вся трансформация, обработка освещения и растеризация треугольников с текстурированием и перспективной коррекцией (если была) происходила исключительно на ЦПУ. Поскольку FPU в процессоре не было, использовались fixed-point числа.
Переходим к гоночкам. Тут у нас аж две части Asphalt, ещё тогда, когда серия не стала донатным «фритуплеем». Asphalt 2 весьма занимательная игра с оптимальной производительностью, кое-где конечно бывают просадки, но в целом более чем играбельно. Как это игралось в нулевых? Сравните скриншоты с j2me-версией, которая напоминает гоночные 2.5D игры с SMD и NES (при этом, в ней есть 3D-элементы и игра использует M3G) и версию для Symbian/PSP/NDS, думаю тут всё итак будет понятно:
Однако большинство читателей наверняка интересуют игры в известных вселенных. Взять, например, полноценный порт первой Tomb Raider. Насколько я понимаю, оригинальная TR славилась тем, что изначально разрабатывалась с расчетом на легкое портирование между разными платформами (да чего уж там говорить, игру отреверсили и переписали с нуля как минимум два раза!). Первый Pentium неплохо тянул TR в софтваре, а N-Gage справляется явно не хуже:
Не забываем и про 2D! В некоторых телефонах Motorola, Siemens и Samsung использовались внешние 2D видеоускорители ATI Imageon. В их задачи входила обработка изображения с камеры, функции контроллера дисплея, а также аппаратное ускорение некоторых 2D-операцией: блиттинг, отрисовка линий, прямоугольников и возможно ещё каких-то примитивов. Однако N-Gage, даже без помощи аппаратного блиттинга был способен выдавать приемлемый FPS и уровень графики в 2D играх. Например, в Sonic, где у нас есть параллаксовые фоны с покадровой анимацией:
Ну и нельзя не вспомнить про уникальную игру на N-Gage: TES Travels Shadowkey, которая была разработана специально для N-Gage и поиграть в неё можно только на оригинальном N-Gage, пропатченном Symbian-девайсе или EKA2L1. Вообще, это полноценная RPG от первого лица, расширяющая лор игры в Хаммерфелле и как минимум из-за этого она достойна к ознакомлению. Игра стилистически заметно напоминает Morrowind, графика близка по уровню к PS2. FPS, конечно, колеблется в районе 10, из-за чего игру можно считать пошаговой… но тем не менее, полноценная FPS RPG на мобилках — это многого стоит!
Есть также примеры отличной графики и… очень низкой производительности. Если в TES ещё можно попробовать поиграть в пошаговой манере, то как насчет шутера от первого лица в 5-6 кадров? Речь, конечно же, о Call of Duty. Игра получилась очень красочной (с трушными полигональными ландшафтами и кучей пропов), но крайне медленно работало на желез N-Gage.
❯ А как насчёт хоумбрю?
С разработкой своих приложений под N-Gage дела обстоят сложно. С одной стороны, в Symbian 6.1 ещё не было сертификатов, необходимости делать джейлбрейк и менять дату в устройстве. С другой стороны, для разработки под N-Gage требуется установка оригинального SDK для S60: приложения скомпилированные с помощью более свежих версий SDK работать не будут! Ни о каком Qt и речи не идёт и даже Carbide окажется слишком свежим для нашего устройства. Оригинальный SDK можно скачать здесь.
Кроме того, SDK использует весьма своеобразную систему сборки, написанную на Perl, которая поддерживает только древнюю версию ActiveState Perl 5.6.1 аж от 2001 года и не работает на Windows 7/8/10! С отладкой на реальном устройстве тоже возникнут проблемы: для этого необходим относительно редкий FBus-кабель (который устанавливается вместо аккумулятора и подключается к ПК через RS232-преобразователь), либо использование программатора а-ля UFS HWK. Хотите отлаживать игру на ПК? Тут есть симулятор, прямо как при разработке под iOS: однако этих симуляторов целых два (для Visual C++ 98 и CodeWarrior) и с каждым возникают проблемы при сборке (то линкер крашнется, то разработчики забудут положить часть реализации системных либ для разных симуляторов в разные версии SDK). Хотите разрабатывать игры? С симулятором об этом можно забыть — отрисовка слишком медленная. Готовьтесь писать кроссплатформенный рантайм, который под Windows будет использовать GDI, а под Symbian нативное API для графики! Программа крашнулась на реальном устройстве и инструментов для отладки у вас нет? Ничего подробнее «приложение остановлено» вы не получите!
Ну а вишенкой на торте станет весьма своеобразный сабсет C++, который используется для написания приложений. Сама система полностью построена по принципам ООП, однако ради уменьшения размера выходного кода была полностью убрана поддержка исключений: предполагается, что программист будет вручную помещать объекты на стек (для Stack unwinding'а), полностью убран RAII как концепция с введением NewL и ConstructL, где L — означает Leave (т.е исключение может выбросить только функция-фабрика, а не фактический конструктор) и кодов ошибок, а также полное отсутствие поддержки глобальных переменных (но есть частичная поддержка констант — из преинициализированных данных, судя по всему, поддерживаются только строковые литералы). Да, никакого .data и .bss, что серьёзно усложняет портирование существующих приложений под Symbian. Спасибо что есть пакет для совместимости с POSIX и реализовали часть stdlib.
Почему нет глобальных переменных?
Приложения в Symbian — это, по сути, dll-библиотеки, с которыми общается UI-фреймворк. Ради сохранения памяти, в Symbian решили сделать все загружаемые библиотеки доступными для любых процессов в системе. Поэтому Symbian и не позволяет библиотекам иметь собственную статическую память, зато можно свободно использовать динамический аллокатор. У exe таких ограничений нет, однако там свои сложности при взаимодействии с системным API. Тем не менее, с Quake поступили своеобразным грязным хаком: Приложение в меню лишь «значок», который фактически запускает соответствующий exe-файл на флэшке!
Дело улучшает кастомный SDK для хоумбрю от энтузиаста из Германии. Он портировал SDL2, Lua и адаптировал тулчейн для работы в современных системах. Но лично для меня это не трушно — нужно использовать оригинальный SDK. :)
В целом — это одно из объяснений того, почему N-Gage стала относительно провальной как платформа для игр. Конечно в своё время был жив форум разработчиков Nokia, где были как официальные сэмплы от Nokia, так и мануалы от других разработчиков, однако базовые косяки при проектировании архитектуры платформы портили всю малину. Чего уж стоит обратная совместимость: для быстрой отрисовки графики предполагалось рисовать картинку в обход графического сервера, напрямую получая указатель на фреймбуфер. В начале фреймбуфера лежала структура с описанием разных пиксельформатов, которые были отнюдь нестандартными: 12-битный, 16-битный, 18-битный. Из-за этого, игры для старых версий Symbian могли давать артефакты на 9.x, например.
Написание полноценной, пусть и небольшой игры — материал для отдельной статьи. Есть идея написать кроссплатформенную игрушку, которая работала под разными платформами кнопочных девайсов: от Motorola ROKR на Linux и китайских клонах Nokia (E71 все помнят?), до эльфов на Siemens'ах и Motorola E398. Таким образом, мы рассмотрим особенности разработки под каждую платформу (например, на моторах был 2D-ускоритель ATI Imageon).
❯ Заключение
Вот таким был легендарный N-Gage. Девайс, конечно, действительно весьма своеобразный. С одной стороны это гениальное решение: взять смартфонную платформу и сделать на её базе игровую консоль. С другой стороны, с разработкой игр под N-Gage, или, например, прямыми функциями телефона были свои проблемы. Девайс получился немного сыроватым, но лично я считаю, что концепция имеет право на жизнь, но пока ни у кого не получилось сделать действительно массовый девайс. По моему мнению, нужно сохранить как можно больше N-Gage живыми. Сложно даже представить сколько потенциально оживляемых плат уехало в чермет…
А вам понравился N-Gage?
P. S.: Друзья! Время от времени я пишу пост о поиске различных китайских девайсов (подделок, реплик, закосов на айфоны, самсунги, сони, HTC и т. п.) для будущих статей. Однако очень часто читатели пишут «где ж ты был месяц назад, мешок таких выбросил!», поэтому я решил в заключение каждой статьи вставлять объявление о поиске девайсов для контента. Есть желание что-то выкинуть или отправить в чермет? Даже нерабочую «невключайку» или полурабочую? А может, у этих девайсов есть шанс на более интересное существование! Смотрите в соответствующем посте, что я делаю с китайскими подделками на айфоны, самсунги, макбуки и айпады!
Понравился материал?
Полезная информация относительно ремонта?
У вас был N-Gage?
Понравился материал? У меня есть канал в Телеге, куда я публикую бэкстейдж со статей, всякие мысли и советы касательно ремонта и программирования под различные девайсы, а также вовремя публикую ссылки на свои новые статьи. 1-2 поста в день, никакого мусора!
Материал подготовлен при поддержке TimeWeb Cloud. Подписывайтесь на меня и @Timeweb.Cloud, дабы не пропускать новые статьи каждую неделю!
Пиво со вкусом селёдки под шубой. За 228 рублей. В составе — рыбный бульон, свёкла, уксус, вот это вот всё. Страшно представить людей, которые это пьют.
Не так уж много людей помнят о такой аббревиатуре, как КПК. Карманные персональные компьютеры появились ещё в прошлом веке и стали незаменимыми помощниками в руках бизнесменов и крутыми девайсами в руках гиков. Ух, если сейчас вспомнить, то на ум приходят как минимум несколько серий: iPaq, Axim, Zaurus, планшеты N-серии от Nokia, Tungsten, Jornada и конечно же, Cassiopeia от японской компании Casio! Сейчас функционал КПК давно переехал в любой современный смартфон, однако в те времена, портативные компьютеры работали на целом зоопарке самого разного железа и различных ОС! Недавно мой читатель из Финляндии всё же смог привезти в Россию большую посылку с подарками, где оказался и наш сегодняшний гость. Сегодня мы взглянем на одну из самых дорогих, крутых и функциональных гиковских штук из 90-х. Встречайте — Cassiopeia!
❯ КПК и какими они бывают
Карманные персональные компьютеры появились ещё в самом начале 90-х годов. Изначально эти аппараты были направлены не столько на гиков, сколько на бизнесменов, у которых была необходимости иметь доступ к редактированию документов в любом месте: например в метро, такси или, если бизнесмен достаточно крут, в лимузине. При этом важно понимать, что портативные компьютеры (в том числе и на x86) существовали и тогда, однако назывались они по другому — HPC. Основным отличием КПК было в наличии сенсорного монохромного дисплея (обычно выполненного по резистивной технологии) и рукописного ввода, который вовсю развивали производители железа тех лет. Концепция виртуальных клавиатур не была развита от слова совсем, не говоря уж о каких-то свайпах, поэтому производители предлагали писать текст прописью, который затем распознавался PDA и превращался в обычный текст.
HPC же был классом совершенно иных устройств и является эдаким предком современных смартфонов с QWERTY-клавиатурой (привет, BlackBerry!). Основным отличием этих гаджетов было наличие физической небольшой клавиатуры, с которой пользователь мог обрабатывать документы. При этом экземпляры начала 90-х годов (которые, в общем-то, можно считать HPC, но сам термин ввела Microsoft с появлением Windows CE во второй половине 90-х годов) зачастую были обычными компьютерами на базе embedded-версий x86 процессоров и работали на DOS, зачастую с какой-либо проприетарной графической оболочкой.
HP Jornada 720. Фото честно «стырил» у @dlinyj,
И по сути именно HPC на x86 оставались основным интересом для гиков — если бы, конечно, не цена. Полноценный компьютер в кармане, на котором можно Duke Nukem запустить — это тебе не хухры-мухры! Массовый интерес КПК начали представлять тогда, когда на них стало возможным запускать сторонний софт. И двумя главными лидерами в этом направлении была Palm с PalmOS и КПК Tungsten, а также Microsoft со своей новоявленной Windows CE 2.0, при этом оставаясь программно частично совместимой с настольными версиями Windows. Почему я говорю именно о CE начиная с 2.0? Потому что 1.0 — это, судя по всему, порт Win9x под MIPS и он не совместим с более популярной CE от слова совсем.
При этом под программной совместимостью подразумевается как возможность портирования десктопных приложений, благодаря довольно большой совместимости WinAPI десктопного и WinAPI CE (та же оконная система, похожее API для мультимедиа, способ обработки ввода и работы с файлами идентичен) за исключением минорных изменений — например, полная интеграция юникода и выкидывание ANSI-версий функций, так и Look n feel системы, которая была очень похожа на Windows 98 и в «сыром» виде обеспечивала практически те же ощущения от работы системы.
Palm же свободно предоставляла SDK и относительно простой API для написания собственных приложений. При этом PalmOS была однозадачной: возможности запустить сразу две программы параллельно не было. Под палм было написано довольно много софта, многие программы распространялись платно. Поэтому CE, в целом, была покруче благодаря наличию поддержки разделяемых библиотек и полноценной многозадачности.
В начале 2000х, Microsoft начнёт развивать КПК (PPC — Pocket PC), коммуникаторы (КПК с радиомодулем и возможностью звонить) и смартфоны (коммуникаторы с физической клавиатурой и зачастую без сенсорного дисплея) в отдельной ветке Windows CE под названием Windows Mobile, где сосредоточится на мобильном Look'n'feel устройств. Помимо этого, Microsoft добавит в Windows CE поддержку 3D-графики с аппаратным видео-ускорением (D3D Mobile), полноценный Windows Media Player, API для написания игр (GAPI) и портирует .NET Framework. Именно в это время появятся такие легендарные серии, как Dell Axim, HP iPaq, КПК от Samsung, устройства от HTC (QTEK, O2, i-Mate). Palm же, к сожалению, со временем разорится и последние настоящие Palm'ы будут работать на базе Windows Mobile. Увы!
Однако устройства на базе Windows Mobile мы уже успели с вами посмотреть. Но, что насчет девайсов гораздо старше? Например, Casio Cassiopeia? Читатель из Финляндии, которого зовут Antti, почти год назад написал мне на мейл и предложил поскребать по сусекам и шкафам, дабы насобирать ништяков и отправить мне большой посылкой! Я конечно же согласился. На один из его подарков мы уже посмотрели — это был ноутбук Fujitsu-Siemens 1998 г. выпуска. Помимо этого, Antti подарил мне еще один Fujitsu-Siemens, Thinkpad и куча всякого разного железа, за что ему огромное спасибо! Посылку было очень сложно доставить в РФ: на таможне с Финляндией сейчас ситуация сложная, поэтому его другу (которому тоже большое спасибо за то, что согласился с этим всем заморочиться и помочь) пришлось везти девайсы по одному, дабы не приняли за «ввоз предметов роскоши» или тем-более контрабанду!
Большое спасибо читателю за такой подгон. Это очень крутые аппараты, которые я сразу же принялся смотреть. Давайте познакомимся с Cassiopeia поближе!
❯ Оживляем красавца
Девайс был разработан и произведен Casio в Японии, о чем нам говорит соответствующая надпись. И это не редкость для японской техники тех лет: например ноутбуки Fujitsu-Siemens тоже производились в Японии!
Сам по себе девайс был полностью рабочим, однако, батарейка CR2032 (которая подпитывает ОЗУ во время отсутствия АКБ) была утеряна вместе с заглушкой. Нам необходимо было всего лишь толкнуть аккумулятор и запустить девайс. Распиновка аккумулятора простейшая: +, термистор и -, поэтому при необходимости, вы и сами сможете смастерить свой аккумулятор. Чуть более поздние КПК общались с контроллером АКБ не меньше, чем это делает свежий айфон.
У устройства присутствует порт для установки в док-станцию, при этом есть возможность зарядки от обычного Jack-подобного БП на 5в. Поскольку крэдла у меня не оказалось, изначально я растолкал аккумулятор с помощью внешнего источника питания. Для зарядки же отлично подходит БП для Sony PSP — проверено! Что занимательно: аккумулятор спустя практически 25 лет всё ещё продолжает немного держать заряд! Пусть его хватает на ~30 минут автономной работы устройства, но все же!
После включения устройства, нас встречает окно настройки устройства: поскольку все пользовательские данные в этих версиях Windows CE хранятся в ОЗУ, после полного разряда аккумулятора и батарейки CR2032, все данные с устройства были удалены.
Девайс просил меня нажать кнопку OK, но я не сразу понял где она была… а ведь оказалась она в фирменном колесике JogDial, предназначенном для быстрого скроллинга! Похожие решения использовала Samsung, Sony Ericsson и HTC.
После этого, нас встречает такой привычный рабочий стол Windows! И Microsoft предлагала работать с ним как есть — с помощью стилуса, при этом сохранялась полная концепция окон из десктопной Windows — у нас есть панель задач, панель уведомлений, мы можем открыть несколько окон на одном экране и перетаскивать их как угодно! Для тех лет это реально здорово. Не то что сейчас в Play Store выходят всякие «Windows 10 Launcher» :)
Давайте же посмотрим на характеристики устройства внимательнее:
Процессор: NEC VR4121 (MIPS R4000) на частоте аж 131МГц
ОЗУ: 32Mb RAM
Flash-память: 32Мб (в E-105), только для прошивки + слот для CompactFlash
Дисплей: 320x240 TN-матрица с резистивным тачскрином. Максимальное кол-во цветов: 65536 (RGB565), что, в целом, даже круче чем некоторые ПК тех лет, которые до сих пор использовали палитровую графику (до 255 цветов). Для тех лет выглядит очень неплохо!
Звук: 2.5мм джек + встроенный спикер + встроенный микрофон — аппарат умел работать в качестве диктофона
ОС: Windows CE 2.11
Внешние интерфейсы: UART, IrDA
Аккумулятор: 1.400мАч, литий-ионный.
Характеристики устройства околотоповые для тех лет. Несмотря на то, что полноценного порта Windows Media Player под WinCE в те года ещё не было, с помощью сторонних плееров на нём вполне можно было слушать очень пережатую музыку в MP3 (и тут вопрос в свободном месте на CF) уже в 1999 году! Вы только представьте себе этот киберпанк: в Московском метро многие едут и слушают кассетные плееры Congli, а вы слушаете музыку с настоящего КПК! Отвал башки…
Можно вспомнить трюк многих владельцев телефонов с нулевых, которые часто слушали треки в midi-версии — т. е. без вокала. Таких треков по 1-2Кб могло поместится в память КПК десятки.
В целом, процессора аппарата должно хватать и на сильно пережатые видео. Тогда просмотром видео в дороге могли похвастаться… Ну, премиум-комплектации автомобилей BMW/Mercedes/Toyota, в которых были полноценные навигационные системы с ЖК-экранами. Насколько мне известно, полностью портативных проигрывателей (не телевизоров) ещё не было. Кроме того, была встроенная софтина для записи голоса. Качество такое себе, но лично я, будучи школьником, ухищрялся с диктофоном и записывал некоторые треки на свой телефон!
Помимо мультимедийной составляющей, девайс мог запускать и сторонний софт с играми, однако вот нюанс: в прошивке нет встроенного полноценного проводника — что странно. Тем не менее, софт предполагалось устанавливать из cab-пакетов с помощью ActiveSync. Немного позже, на Windows CE портировали кучу полезного софта: Putty для удаленной работы с терминалами, эмуляторы игровых консолей и т. п. Есть порты целых игровых движков для квестов 80-х годов.
Косынка
И я бы показал этот софт, если бы у меня была док-станция. Синхронизировать КПК на Windows CE с ПК не проблема: хотя под Windows 10 совместимость с WM6.1 сломали, в виртуалке всё работает нормально. С CF без какого-либо проводника установить софт не выйдет…
ActiveSync в те годы работал не через USB, а напрямую через UART. При этом RS232 преобразователь мог быть встроен в док-станцию.
Что весьма интересно — в Windows CE был реализован полноценный сетевой стек + урезанная версия Pocket IE! Устройство можно было подключить к интернету и просматривать Web 1.0 тех лет, правда никакого Wi-Fi или BT здесь не было, так что подключение шло с помощью последовательного порта к ПК:
Вообще, тогда существовали даже некие PDA-каналы от Microsoft: поддерживаемые сайты могли делать что-то типа страниц с основной информацией, сверстанные для КПК. На первый взгляд идея напоминает WML для WAP, по факту это все еще полноценный HTML-браузер.
Остальной бизнес-функционал подразумевал полную синхронизацию с ПК. Например почту можно было синхронизировать локально и если вам приходит кучу сообщений, вы могли ответить на него сидя в курилке на обеде, а вечером прийти, подключить девайс к ПК и ActiveSync сам отправит сообщение на мейл при появлении интернета. Тоже самое и с заметками, задачами и иными бизнес-штучками!
❯ Заключение
В остальном же, Cassiopeia E-105 — крутейшая штука, которой немного не хватает возможности установки программ без ActiveSync. Карточку CF найти ещё вполне реально, а вот док-станцию для таких HPC… вопрос другой. Впрочем, без синхронизации с ПК время от времени, их никто и не предполагал использовать. Функционал из коробки достаточно близок к Palm Tungsten, однако по факту, Windows CE предлагала ещё более высокие возможности по написанию довольно сложных приложений для такого рода девайсов. Может, у вас когда-то была Cassiopeia?
Тем не менее, аппарат был отнюдь не из дешевых и недоступен многим гикам: розничная цена ~700$ давала о себе знать. Это было около 19.000 рублей: за такие деньги можно было даже автомобиль прикупить! А вам понравилась Cassiopeia?
❯ Роадмап для следующего материала
Недавно я создалTelegram-канал для тех читателей, кто хочет видеть бэкстейджи статей, анонсы и поболтать о ретро-технике в комментариях. Без откровенного мусора — посты 1-2 раза в день и только по делу! Но поскольку не всем читателям нравится концепция каналов, я решил продублировать роадмап следующих статей:
Статья об одноплатном компьютере за… 500 рублей с AliExpress. При этом одноплатник вполне можно считать System on Module, поскольку вам придется сначала его распаять на Evaluation-плате! Посмотрим, на что способно устройство с Cortex-A7 чипсетом, MIPI-DSI-интерфейсом для дисплеев, Wi-Fi и 64Мб ОЗУ «бутербродом» на борту!
Материал о 3dfx Voodoo и написание 3D-игры полностью с нуля. Пожалуй, это будет первая игра, написанная для вуду за долгие годы! Недавно я рассказывал вам о принципе работы первых 3D-ускорителей с точки зрения железа и драйверов, теперь самое время рассказать о том, как это работало с точки зрения разработчика игр!
Рассказ о программировании нативных приложений под новодельные кнопочные телефоны по 500 рублей — Из них тоже могут получится эдакие «одноплатники», которые могут стать самостоятельными сигнализациями, например. И стоят копейки!
Использование SIM900 в качестве самостоятельного микроконтроллера — многие привыкли видеть радиомодули SIMCom как отдельные устройства, с которыми можно общаться только посредством AT-команд. На самом деле, SIM800/SIM900 могут работать как самостоятельные микроконтроллеры. Как? Расскажу в одной из следующих статей!
Подписывайтесь, дабы не пропускать свежий материал почти каждую неделю!
Материал подготовлен при поддержке TimeWeb Cloud. Подписывайтесь на меня и @Timeweb.Cloud , чтобы не пропуска новый материал каждую неделю!
Думаю, многие мои читатели встречались с таким неприятным явлением, как отвал чипа. Эта поломка свойственна многим топовым и околотоповым гаджетам из нулевых: ноутбуки с «отваливающимися» видеочипами и мостами, первые ревизии Xbox 360 (три красных огня) и PlayStation 3 (жёлтый огонёк и моментальное выключение), телефоны-«ударники» и другие девайсы с достаточно горячими чипами. Недавно я листал барахолки на предмет интересных девайсов «за копейки» и наткнулся на топовый игровой ноутбук 2007 года выпуска всего за 1.000 рублей (~10$) — Toshiba <модель>, с просто дичайшими характеристиками для тех лет: GeForce GTS 7900 Go, Core Duo Txxx, 1гб DDR2 ОЗУ и аудиоподготовкой от Harman-Kardon.
Сегодня мы с вами узнаем: почему отваливаются чипы и как продлить жизнь старому топовому железу, «дунем» на видеочип, «воскресим» его на некоторое время и посмотрим, что же крутого было в топовых ноутбуках тех лет. Интересно? Тогда добро пожаловать под кат!
❯ Почему чипы «отваливаются»?
В мире производства электроники и плат есть несколько различных видов монтажа чипов на платы. Все они зависят от корпусировки того или иного элемента. Обычно, сложные микросхемы выпускаются в нескольких различных корпусах, которые отличаются маркировкой и иногда функциональностью. В современном мире принято использовать несколько самых распространенных типов корпусов:
DIP— один из самых старых и тем не менее, до сих пор распространенных видов корпусов для чипов. Для таких микросхем сверлятся отверстия в плате, а затем чипы вставляются в отверстия и припаиваются, благодаря чему чип надежно держится на плате. Плюсов у такого способа довольно много: удобство пайки, возможность лёгкой установки чипа в сокет и быстрой его замены (привет Arduino и чипы памяти с BIOS на старых материнских платах), большая надежность соединения, и вероятно, простота производства. Минусов у такого способа тоже хватает: невозможность сделать микросхему с очень большим количеством пинов, громоздкость чипа, без фена чипы с большим количеством ножек выпаять проблематично. Известные примеры: сдвиговые регистры, МК AVR, Z80, MOS6502.
QFP/QFN/SOIC— современный способ монтажа чипов с большим количество пинов на плату. По принципу все они похожи: по разным сторонам микросхемы есть выводы, которыми можно припаять чип к плате. Однако у QFP ножки «торчат» наружу, что даёт возможность легко припаять их к плате, а у QFN контакты спрятаны под пузом самого чипа, из-за чего их можно припаять только феном (если чип достаточно мал — можно попробовать паяльником). Плюсы: надежность пайки, относительная простота монтажа и демонтажа (дунул и чип слетел). Минусы: для таких чипов практически нет сокетов (на самом деле есть, но особо никакой унификации нет — чаще всего сокеты можно встретить в материнских платах и программаторах у ремонтников). SOIC немного другой тип монтажа, поскольку там ножки выводятся только по бокам чипа (как у DIP), но я не стал выносить его в отдельный типаж.
LGA/PGA/SMT— кристалл или кристаллы (пример — процессорное ядро и отдельно кэш-память на старых процессорах) распаяны на специальной небольшой плате, которая называютсяподложкой. Такие микросхемы обычно предназначаются для установки в сокет (процессоры), либо для пайки платы на плату (SIM800L). Даташит на SIM800C называет свою корпусировку какSMT, поэтому я отнесу его и различные системы на модуле («процессорные» платы с ОЗУ и ПЗУ) к LGA. Один раз я видел PGA-процессор AMD Geode, который запаивали напрямую штырями в плату — но может, меня обманывает память.
BGA— основной тип корпуса для сложных и компактных микросхем таких как SoC или видеочипы. Его суть проста: на плате и на нижней стороны чипа есть маленькие пятачки круглой формы (их размер отличается в зависимости от числа пинов, но стандартизирован), благодаря которым микросхема припаивается к плате. Такой корпус позволяет компактно вывести довольно большое количество пинов — например, SoC MediaTek MT6572 поставляется в корпусе аж с 428-шариками! С завода чипы приходят с уже накатанными шарами, в то время как работнику или машине остаётся их только припаять на плату. Несмотря на большое количество крошечных пинов, при наличии сноровки и должном оборудовании, пайка микросхем очень простая: физика всё сделает за вас и сама «притянет» чип к нужным пятачкам на плате. Это один из самых распространенных корпусов для микросхем и один из самых проблемных. Но почему? Давайте разбираться!
Отвал BGA-чипов далеко не всегда связан с термическим воздействием, как принято считать в широких кругах (от чего и идут советы по типу «погрей видяху в духовке»). Шарики достаточно сильно подвержены влиянию множества внешних факторов: попадание воды — в таком случае, шарики окисляются и со временем могут отгнить вместе с пятачками, падениям — такие устройства называются «ударниками» и шары могут дать микротрещину, что уже может сказаться на нестабильной работе устройства, и в немалой степени — термическому воздействию. Причём здесь мнение делится на два лагеря и сильно зависит от самого устройства.
Отвалы на смартфонах/планшетах в основном являются следствием неудачного падения и лечатся перекаткой уже установленного процессора, иногда — заменой на точно такой же «донорский» и с идентичной маркировкой (да, среди SoC бывают свои «подверсии»). Реже бывает срывает пятачки — тогда опытные мастера ковыряют плату и ставят перемычки вместо отвалившихся шаров (моё почтение вам!). В последнее время замена отдельных чипов на мобильных устройствах сильно затруднена: у девайсов есть жёсткая привязка между ID-процессора (прожжен на заводе в SoC), ID-процессора, записанного в флэш-памяти устройства (в специальном RPMB-разделе, доступный только для чтения, используется для Secure Boot, просчета ключей, шифрования и т. п.) и привязки к модему (насчет Android-устройств точно не могу сказать, но у iPhone такая привязка есть ещё с начала 10х годов: в один момент, после очередного апдейта iOS, многие девайсы с замененной NAND или процессором без замены всех трех чипов, висели на «сбое активации» — и в официальном сервисе такой аппарат не принимали), из-за чего при замене процессора или флэш памяти, придётся менять вообще всю пару на оный с донорского аппарата (а в случае iPhone — еще и не привязанный к iCloud).
Нормальные мастера обычно именно перекатывают чипы, т. е. снимают старые шары и накатывают с помощью трафарета новые, поскольку прогрев может поднять устройство, но это не ремонт, а лишь диагностика — такое устройство может в любой момент «отвалиться». Правда, есть и исключения.
Другой вопрос — отвалы чипов на ноутбуках и десктопах. На десктопных материнских платах отвал — не очень частое явление, поскольку отваливались обычно «горячие» северные мосты по типу nForce (которые славились довольно неплохими интегрированными GPU — тут уж попробуй не нагрейся при очень слабеньком пассивном охлаждении). Сейчас «северник» переместился в процессор, поэтому свежим десктопным материнкам это почти не грозит, однако другое дело — ноутбуки.
Система охлаждения на ноутбуках частенько подразумевает расположение ЦПУ и чипсета (а иногда и GPU) на одной теплотрубке, из-за чего тепло отводится заметно менее эффективно. А особенно ситуация плохая на тех девайсах, которые никто не чистит. И если процессор ещё может начать троттлить (занижать частоты) для того, чтобы понизить температуру ниже определенного порога — то что делать чипсету? После пары лет работы в таком режиме, девайсы внезапно начинают виснуть посередине работы, перезагружаться, выключаться или выдавать непонятные артефакты. Тем же самым когда-то страдала печально известная первая ревизия Xbox 360 — Xenon, которая выдавала три красных огня. Не обошла проблема и PS3 — вспоминаем желтые глазки и выключение устройства.
Даже если взять пример с Xbox 360, когда игрок нёс устройство в неофициальный СЦ, ему перекатывали горячий GPU от ATI (отваливался именно он) и снова припаивали к плате, включили — устройство работает и выдали обратно игроку. Игрок приходит довольный домой, играет день, месяц или даже год и… сталкивается с той же самой проблемой! Снова три красных огня, хотя девайс вроде бы чистый, шуба пыли из него не торчит, а при разборке оказывается, что система охлаждения визуально в норме и кулер работает… в чём же тогда дело?
Всё дело в том, как припаивается кристалл процессора или GPU к плате-подложке. По сути, подложка может быть любой, хоть LGA, хоть BGA: китайские умельцы как-то приноровились делать десктопные подложки для мобильных процессоров в BGA-корпусах. Но сам кристалл припаивается к подложке с помощью точно таких же BGA-шариков, как и подложка к плате, только гораздо меньших размеров. Перекатать такие шары доманевозможно, это можно сделать только в заводских условиях. Но поскольку сами кристаллы залиты компаундом (как раз таки с целью предотвратить внешнее влияние, в том числе и термическое — иначе кристаллы сдувались бы только так), а шарики достаточно маленькие — при прогреве устройства феном, в духовке (популярный когда-то метод), или даже перекатке шаровна подложке, из-за термического воздействия контакт между кристаллом и подложкой на время восстанавливался. Однако поскольку GPU Xbox 360, который я привожу в пример, очень и очень горячий сам по себе, вне зависимости от того, как хорошо от него отводится тепло, со временем контакт кристалла с подложкой снова нарушался и устройство переставало работать…
Происходило это по причине выбора неправильного типа припоя: в целях сохранения природы, использовался не совсем верный состав. Однако зная о проблеме, производители продолжали использовать его примерно до середины 2010-х годов: насколько мне известно, GeForce 1xxx серии и выше не страдают отвалами GPU вообще (но там своих болячек хватает — как минимум, те же банки памяти). Почему так происходило? Вероятнее всего, это изначально закладывание ресурса в технику. И если бюджетные ноутбуки со встроенной графикой и Celeron'ами от этого особо не страдали (их до сих пор очень много на юлито, живеньких и вполне рабочих), то топовые и дорогие устройства с горячими видеочипами отваливались только так…
Прогрев — это исключительно диагностический способ, им можно пользоваться либо в домашних условиях «для себя», либо для того, чтобы выявить неисправность одного из элементов устройства. Брать деньги за прогрев — прямой обман, но если делать просто «для себя», ради того, чтобы немного продлить жизнь крутому девайсу из прошлого — почему бы и нет? Предлагаю в практической части нашей статьи глянуть на топовый ноутбук 2007 года отToshiba, который я купил всего за 1.000 рублей (~10$). Девайс сам по себе очень крут, однако страдал отвалом GPU, который мы на время «вылечим»!
❯ Практическая часть статьи
Сегодняшнего подопытного продавала женщина на запчасти. Состояние было неизвестным: я не спрашивал её ни о симптомах поломки, ни о том, включается ли ноутбук вообще. Я списался с продавцом, договорился об условиях доставке и зарезервировал девайс себе. Через несколько дней ноутбук наконец-то приехал ко мне и я решив не медлить, сразу полез его диагностировать:
Внешне девайс очень симпатичный и сейчас — самое время его включить! Единственный нюанс: проприетарный трапецевидный разъем зарядки. Не беда: до этого я брал другой тошибовский ноутбук за… 300 рублей, который тоже оказался вполне живым, но у него были сломаны петли ( к буку за 3 доллара шёл и родной БП, который уже кто-то ремонтировал на скрутках, но он всё ещё оставался рабочим).
Включаем девайс, прощелкиваем нумпадом и видим, что реакция на него есть, однако изображения нет! Это значит, что ноутбук нормально проходит POST и висит на «CMOS Error, F1 to Continue», однако отсутствие картинки было для меня первым звоночком винить видеочип. Поскольку POST ноутбук проходил, то и реагировал на хоткей смены матрица/VGA: подключаем внешний монитор и видим…
Да, это самый классический отвал GPU. Ну а что вы хотели, GeForce 7900 это вам не шутки! Поскольку это ноутбук с дискреткой 7 серии, ни о каком UMA и речи не идет: отключить GPU и направить вывод на встроенный адаптер не получится. Вернее теоретическая возможность то есть, но линии LVDS/VGA идут с GPU, а не с хаба, как это происходит в современных ноутбуках. Девайс то может и включится, но никакой картинки вообще не будет — если устройство вообще пройдет POST.
Самое время разобрать красавца. Делается это не особо сложно: классическая разборка «с клавиатуры». Для обслуживания системы охлаждения придётся разбирать ноутбук полностью (в том числе снимать матрицу), но никаких особых проблем с этим не возникает: девайс хорошо продуман. При разборке выяснялась причина отсутствия изо на LVDS — матрицу банально отключили. Девайс явно обслуживали до меня и чистили, видимо в надежде что всё «оживет». А может и грели уже, кто его знает? :)
Да, «охлад» здесь и правда довольно серьезный: круче я видел только в ноутбуке с дискреткой ATI и… десктопным Pentium 4!
На ноутбуках тех лет частенько практиковались по настоящему съемные видеокарты. Помимо стандарта MXM (его сейчас вроде только Clevo как-то поддерживает), который предусматривает замену видеокарты в ноутбуке, некоторые вендоры придумывали свои коннекторы а-ля PCI-E. Наш девайс как раз из таких: видеокарту, при желании, можно было заменить на идентичную (возможно и какие-то другие от младших «тошиб» подходили, но мне это неизвестно).
Снимаем массивную систему охлаждения, которая отводит тепло и от GPU, и от чипов памяти и приступаем к прогреву. Для прогрева подойдет фен от паяльной станции, или даже регулируемый строительный фен (с ним осторожнее, есть шанс угреть чип). Для наглядности «дриставрации», я буду пользоваться именно строительным «интерсколом». Ставим температуру ~250 градусов (в случае строительных фенов — это погода на луне или попугаи, ну или средний режим) и осторожно греем кристалл по периметру. Для временного оживления чипа хватит дунуть секунд 15-30. Дольше не стоит — могут повылазить шары. Никаких утюгов и духовок — это кощунство!
Подсобираем ноутбук и включаем его. Ура, в биосе изображение есть и на первый взгляд всё нормально. Однако, после такой «дриставрации», проблемы могут вылезти где угодно: ошибка 43, артефакты в 3D-режиме, самопроизвольные ребуты и зависания системы. Самое время накатить систему и проверить это.
И таки да, они вылезли практически сразу, причём совершенно с неожиданной стороны. Девайс начал самопроизвольно отключаться в определенные моменты времени (обычно при старте Windows и игр), причём вне зависимости от подключения БП (отметаем версию, что АКБ не держит нагрузку) и заряда аккумулятора (отметаем, что не хватает мощности БП), а температуры судя по датчикам — в норме. Вероятнее всего, проблема в питальниках на GPU/CPU.
К сожалению, нормальные тесты при таких условиях сделать не получится — девайс нужно диагностировать дальше, но делать это с отвальным видеочипом такое себе. Но Proof of Concept есть: многие чипы вполне реагируют на прогрев и могут даже поработать какое-то время. Надолго ли?
❯ Заключение
Данный материал писался в эдаком «научпоп» стиле. Для опытных ремонтников, написанный текст отнюдь не станет каким-то откровением, но полагаю, было всё же интересно почитать о том, почему их любимые девайсы из нулевых «помирают».
Статья подготовлена при поддержке TimeWeb Cloud. Подписывайтесь на меня и @Timeweb.Cloud, , чтобы не пропускать новые статьи каждую неделю!