Моя видеокарта начала опасно крениться, и я понял, что пора звать подмогу. Обычные палки-подпорки выглядят скучно, поэтому решил добавить в корпус немного эстетики.
Есть два кандидата на роль держателя GPU.
Кандидат №1: Атлант Выглядит сурово и решительно. Готов вечность держать на своих плечах этот горячий кирпич с тремя вентиляторами.
Кандидат №2: Античная колонна Для тех, кто предпочитает строгую классику. Меньше пафоса, больше ионического ордера.
Вот думаю, кого ставить в сборку. С одной стороны, Атлант добавляет эпичности, с другой — колонна выглядит более аккуратно.
Сегодня компьютером на x86-совместимом процессоре едва ли можно кого-то удивить с гиковской точки зрения. Другое дело - обучающий ноутбук для детей, который работает на интересном и необычном ARM-процессоре от небезызвестной компании VIA. И хотя для запуска произвольных программ его необязательно было хакать - всем гикам известно, надо было ставить Linux!
К чему приводит давняя детская мечта об обучающем ноутбуке, что скрывается внутри устройства за 500 рублей и как на всё это накатить Linux с дуалбутом в родную систему - читайте в сегодняшней подробной статье!
❯ Предисловие
С самых ранних лет своей жизни, я так или иначе интересовался компьютерами. Когда многие мои читатели уже заканчивали университет или жили взрослой жизнью в начале-середине 2000-х годов, ваш покорный слуга всё ещё ходил в детский сад — и уже тогда мечтал о своём собственном личном компьютере.
В те годы, даже в моём провинциальном Ейске уже можно было найти за бесценок списанный с госсектора компьютер на условном 486'ом или даже Pentium MMX. Однако у моих родителей таких знакомств не было, да и друзей с личными ПК — тоже. Даже с популярными в те годы «Денди-ноутбуками» я познакомился лишь пару лет назад, несмотря на то, что аппаратный клон NES стал моей основной игровой платформой детства.
О нём я тоже писал статью. Довольно интересный гаджет, храню его в своей коллекции.
В те времена, зажиточные семьи часто покупали своим детям так называемые детские обучающие компьютеры, которые представляли из себя ничто иное, как «Brick Game» с клавиатурой и несколькими обучающими играми/программами. Примитивность и одновременная гениальность этих устройств зашкаливала: тайваньские инженеры умудрились сделать достаточно многофункциональную машину на простейшем микроконтроллере из 90-х — по типу тех, что использовались в «Тетрисе»: 4-битный процессор на 1МГц, система команд напоминающая 8051 с отдельными инструкциями для управления звукогенератором, встроенный контроллер ЖК-дисплея, 4Кб ROM-памяти и 64 байта оперативной - в общем, это маленькое инженерное чудо не могло не привлекать к себе внимание детей с гиковскими наклонностями!
Но даже такого компьютера у меня в детстве не было, оставалось лишь смотреть и облизываться на экземпляры у соседских друзей... И я думаю многие читатели знают, что такое несбывшиеся детские мечты!
К 2010 году, в Китае и Тайване случился бум мощных и недорогих систем на кристалле. Буквально каждые полгода выходили новые чипы, которые совмещали в одном корпусе практически весь компьютер: от центрального процессора, до 3D-видеоускорителя и всё это буквально за пару долларов. Среди популярных моделей вспоминаются MIPS-чипсеты от Ingenic (использовались в плеерах и игровых консолях Dingoo и Ritmix) и ARM-чипсеты от InfoTMIC, TeleChips, Rockchip (использовались в первых Android-планшетах за 100-150$, которые в те годы назывались MID). Добавьте к этому резкое удешевление NAND-памяти объёмом в 2-4ГБ и оперативной памяти типа SDRAM/DDR1 - очевидно, что предприимчивые китайские компании захотят собрать что-нибудь массовое и при этом недорогое!
Планшет с процессором в слоте DDR2-SODIMM - это самое диковинное, что вы сегодня видели :)
На волне популярности нетбуков, а конкретно — свежего Asus EeePC 700, некий китайский ODM-производитель разработал несколько очень дешевых платформ для ноутбуков, которые между собой были похожи как две капли воды, но отличались процессорами. Больше всего устройств использовало чипы разработки WonderMedia, но также встречались гаджеты на процессорах Anyka и даже Ingenic. И цена таких ноутбуков была просто невероятной: от 50$ до 100$ за штучку. Полноценный ноутбук с RJ-45, Wi-Fi модулем, 2-4ГБ встроенной памяти и лицензионной Windows всего за 2.000 рублей по тому курсу... это было что-то невероятное!
В России такие ноутбуки тоже продавались. В основном их закупали предприимчивые граждане с Таобао/Алика и затем торговали ими в павильоне на рынке или в переходе. Но были также и небольшие официальные поставки, среди которых затесался герой нашей сегодняшней статьи — некий «Бам-Бук», который стоил аж 6.500 рублей в 2010 году (~210$ по тому курсу)!
Будучи фанатом портативных гаджетов на необычных процессорах, я разместил пост о поиске подобных ноутбуков на Хабре, Пикабу и 4pda. И год спустя, Toshan с 4pda предложил мне купить тот самый «Бам-Бук» за символические 500 рублей... а мы ведь помним, что такое несбывшиеся детские мечты!
❯ Что внутри?
Ноутбук приехал в целостности и сохранности, однако Антон сразу предупредил о том, что у устройства не работает часть клавиш на клавиатуре, а также тачпад. После включения «БамБука», меня встретил рабочий стол Windows CE, но системой едва ли можно было пользоваться без клавиатуры.
Поскольку на устройстве уже были видны следы разборки, я решил его перебрать и проверить целостность шлейфов, а также пайки коннекторов. Разбирается нетбук очень просто: достаточно лишь открутить несколько винтов на поддоне, включая потайной под наклейкой EasyPC и отключить шлейф клавиатуры с тачпадом со стороны топкейса.
В процессе снятия клавиатуры, я обратил внимание на криво вставленный в коннектор шлейф. Вообще, такие устройства требуют сноровки и опыта в процессе сборки, поэтому иногда зафиксировать шлейф бывает проблематично и он начинает просто болтаться в коннекторе. Казалось бы, причина неработоспособности клавиатуры найдена!
После снятия топкейса, нас встречает «голая» в буквальном смысле плата. По сравнению с любым x86-нетбуком тех лет, это устройство выглядит таким же простым, как GameBoy по сравнению с PSP...
На плате устройства и тут и там были видны следы неотмытого флюса. Все DIP-элементы (разъёмы), а также динамики паялись вручную. Судя по маске, в плате используется не более 5-6 слоев — что очень и очень мало для ноутбука... но в чём секрет?
Переворачиваем плату устройства и всё становится предельно ясно! Дело в том, что процессор, ОЗУ и Flash-память распаяны на отдельной плате, называемой System on Module (SoM), которая припаяна к основной методом поверхностного монтажа. Такие платы служат для быстрой разработки и прототипирования устройств в условиях ограниченного техпроцесса и бюджета — по сути, на хост-плате разводят лишь питание и периферию, а используют их везде: начиная от ЧПУ-станков, заканчивая кассовыми аппаратами!
В качестве сердца устройства используется система на кристалле WonderMedia WM8505, также известная как VIA VT8505. В её основе лежит ARMv5-совместимое ядро 926EJ-S на частоте 300МГц с 16Кб кэша, кастомный 2D GPU собственной разработки VIA, контроллер DDR2-памяти, а также большое количество самой разной периферии: от шин по типу SPI, I2C и UART, до SD и USB. И всё это в миниатюрном чипе за несколько долларов!
Снизу расположилась одна банка оперативной памяти типа DDR2 объёмом в 128МБ, а справа — микросхема SPI-флэш памяти, где хранится загрузчик U-Boot (BIOS) устройства.
Многим читателям корпорация VIA знакома как производитель чипсетов, аудио-кодеков и даже x86-процессоров... кто бы мог подумать, что они будут делать и ARM-чипсеты?
Немного выше процессора расположилась микросхема NAND-памяти производства Samsung. И как мы с вами видим по характерным потертостям и следам флюса - скорее всего этот чип сдули с MP4-плеера, который когда-то сдали в утиль. В Китае эти чипы памяти продают за бесценок сразу с частями платы устройств - их даже не всегда выпаивают!
Чуть выше SoM можно обнаружить 4 пина под колодку — это диагностический UART-разъём, который можно использовать для восстановления устройства при окирпичивании.
С левой части платы расположился USB-хаб AU6256, а рядом с ним — микроконтроллер производства Holtek (и тут процессор от «Тетриса»!) в весьма необычном корпусе. Скорее всего, он выполняет функции SMC и контроллера клавиатуры одновременно — эдакий мультиконтроллер «на коленке»!
С правой стороны платы у нас расположилась схема питания на основе чарджера SUN4001S, понижающего DC-DC преобразователя APW7145 (основная шина питания) и LDO SY8088, формирующий напряжение 3.3В. Немного правее расположился аудиокодек Wolfson WM1613G - чаще в таких ноутбуках можно найти что-то от самой VIA!
И... это всё! Вся схема ноутбука настолько простая и гениальная, что буквально состоит из SoM, микроконтроллера, USB-хаба, аудиокодека и простейших питальников...
❯ Включаем...
После сборки и включения ноутбука, я обрадовался что большая часть клавиатуры заработала нормально, но одна линия матричной клавиатуры всё же была повреждена. Осмотрев её, я обнаружил что клавиатура вся погнутая и... ну в общем, здесь явно постарались шаловливые ручки. Однако это не делает данный ноутбук бесполезным!
Помимо клавиатуры, мне не удалось отремонтировать и тачпад. Не знаю, что с ним делали, но даже GPIO-кнопки мыши не работают.
С завода здесь стоит Windows CE 6.0 с различным обучающим софтом для детей, но прошлый хозяин накатил сюда универсальную кастомную прошивку для устройств на WM8505 от PC_USER. Для верности я решил переустановить образ системы (благо он сохранился здесь): для этого достаточно лишь отформатировать SD-карту в FAT и скопировать папку script из архива в корень карты памяти. Поскольку в устройстве используется U-Boot, обновление прошивки реализовано за счёт использования autoscript'ов, которые заставляют загрузчик грузить ядро Linux или Windows CE с карты памяти и уже из юзерспейса копировать себя в NAND. Путем небольших манипуляций с скриптами, можно реализовать полноценный дуалбут или даже триплбут!
После установки системы, нас встречает такой родной рабочий стол... и вендор устройства сделал всё, чтобы опыт использования такого ноутбука был максимально приближен к полноценному компьютеру. Тут есть большое количество самого разного софта: начиная от офиса, заканчивая играми. И даже есть полноценный Windows Media Player вместе с TCPMP для поддержки YouTube:
Другие ревизии этого ноутбука с Wi-Fi и Ethernet могли также свободно сёрфить интернет. Из коробки был предустановлен пока ещё не совсем бесполезный PocketIE, а с помощью небольших манипуляций можно было даже установить Opera Mobile на актуальном в те годы движке Presto:
OpenNet откроет — и этого хватит!
Помимо этого, в устройстве был предустановлен клиент ещё популярного тогда Skype. Уж не знаю как он работал на Windows CE, но учитывая что нормальный порт на Android делали года три — возможно что определенные нюансы точно в нём были.
Касательно офиса — здесь было всё необходимое: начиная от клиента почты, заканчивая эдакой вариацией на тему Excel. В целом, такие ноутбуки чаще всего и покупали для использования в качестве печатных машинок, SSH-терминалов (есть порт Putty на WinCE) и других подобных целей. Интересно что для WinCE есть частичный порт MS Office, причём даже с PowerPoint'ом, но в этой прошивке его почему-то нет.
Ну и куда-же без игр! Под ARM WinCE было достаточно много портов различной классики: начиная от эмуляторов игровых консолей, заканчивая казуалками по типу Zuma от Astraware. Однако большинство игр и программ использовали библиотеку gx.dll, которая давала прямой доступ к фреймбуферу устройства и была доступна только на коммуникаторах и КПК с PocketPC/WinMobile на борту. Энтузиаст из Германии даже разработал свою реализацию gx через GDI (заведомо более медленную), но большинство игр работает не совсем корректно, а эмуляторы по типу PocketNES банально не влезают в экран:
Внимательные читатели могли заметить, что в таскбаре запущено много программ, но при этом оперативной памяти в устройстве всего 128Мб и её всё ещё достаточно для запуска ещё нескольких приложений. В чём-же секрет? В том, что Windows CE потребляла памяти даже меньше, чем Win95, но при этом на ней был доступен .NET и часть прелестей WinAPI времен Windows XP. При этом над оптимизацией программ действительно заморачивались и поэтому софт не только экономен к ОЗУ, но ещё и шустро бегает на горяченном 300МГц ARMv5 процессоре!
Все запущенные программы в сумме занимают 30 мегабайт памяти с учетом ядра системы. Впечатляет!
❯ Ставим Linux
Эти ноутбуки появились в золотое время развития Android, когда каждый вендор чипсетов старался поддерживать все доступные на рынке операционные системы. Поскольку WonderMedia разрабатывала 8505 в том числе и для MID (планшетов), для чипсета был доступен порт Android 1.5 и исходный код ядра Linux. Имея такие вводные данные, вполне очевидно, что гики рано или поздно смогли запустить на нём какой-нибудь дистрибутив.
На WM8505 доступно два образа: с Arch и Debian Lenny. Поскольку я никогда не пользовался Арчем и всю линуксоидную жизнь я сидел либо на Debian, либо на Slackware, я решил остановиться на Дебиане. Некий добродетель выложил на archive.org уже собранное ядро + rootfs, готовое к установке: нам достаточно лишь разбить SD-карту на два раздела (первый — 32Мб, второй — остальное доступное пространство) с помощью утилиты fdisk, отформатировать первый раздел в FAT и скопировать на него папку script с ядром:
su mkfs.fat /dev/sdb1 mkdir /mnt/wmboot mount /dev/sdb1 /mnt/wmboot tar -xvf ~/fatpart.tgz sync
И отформатировать второй раздел в ext2, распаковав туда rootfs:
su mkfs.ext2 /dev/sdb2 mkdir /mnt/wmrootfs mount /dev/sdb2 /mnt/wmrootfs tar -xvf ~/extpart.tgz sync
После этого можно вставить SD-карту в ноутбук, включить его и посмотреть на надпись «Loading Windows...», которая плавно сменяется на вывод kmsg :)
Единственный нюанс — здесь собрана минимальная рутфс со всем необходимым софтом, включая dpkg и apt. Чтобы поставить XOrg и другие программы нужно искать свисток на чипе Realtek RT3070, либо же организовывать локальный файловый репозиторий на USB-флэшке (ведь в комплекте нет даже веб-сервера, который можно было бы развернуть на локалхосте)... но это мы с вами оставим уже для следующей статьи :)
В общем и целом, гиковские перспективы у таких гаджета есть. Если бы у меня было чуточку больше времени, я бы портировал в фреймбуфер эмулятор NES и SEGA, как я это делал для детского MIPS-ноутбука и мы бы с вами даже провели тесты — чьи 300МГц быстрее!
❯ Заключение
Вот такая статья об интересном детском ноутбуке у нас с вами сегодня получилось. Конечно нельзя сказать, что такой ноутбук является альтернативой старенькому ThinkPad'у с Арчем на борту, но сама концепция и понимание того, что твой гаджет работает на ARM-процессоре, как минимум достойна внимания!
А если вам интересна тематика ремонта, моддинга и программирования для гаджетов прошлых лет — подписывайтесь на мой Telegram-канал «Клуб фанатов балдежа», куда я выкладываю бэкстейджи статей, ссылки на новые статьи и видео, а также иногда выкладываю полезные посты и щитпостю. А ролики (не всегда дублирующие статьи) можно найти на моём YouTube канале.
Как вам такой ноутбук?
Что больше всего любите в моих статьях из рубрики обзоров и моддинга ретро-гаджетов?
Очень важно! Разыскиваются девайсы для будущих статей!
Друзья! Для подготовки статей с разработкой самопальных игрушек под необычные устройства, объявляется розыск телефонов и консолей! В 2000-х годах, китайцы часто делали дешевые телефоны с игровым уклоном — обычно у них было подобие геймпада (джойстика) или хотя бы две кнопки с верхней части устройства, выполняющие функцию A/B, а также предустановлены эмуляторы NES/Sega. Фишка в том, что на таких телефонах можно выполнять нативный код и портировать на них новые эмуляторы, чем я и хочу заняться и написать об этом подробную статью и записать видео! Если у вас есть телефон подобного формата и вы готовы его задонатить или продать, пожалуйста напишите мне в Telegram (@monobogdan) или в комментарии. Также интересуют смартфоны-консоли на Android (на рынке РФ точно была Func Much-01), там будет контент чуточку другого формата :)
А также я ищу старые (2010-2014) подделки на брендовые смартфоны Samsung, Apple и т. п. Они зачастую работают на весьма интересных чипсетах и поддаются хорошему моддингу, парочку статей уже вышло, но у меня ещё есть идеи по их моддингу! Также может у кого-то остались самые первые смартфоны Xiaomi (серии Mi), Meizu (ещё на Exynos) или телефоны Motorola на Linux (например, EM30, RAZR V8, ROKR Z6, ROKR E2, ROKR E5, ZINE ZN5 и т. п., о них я хотел бы подготовить специальную статью и видео т. к. на самом деле они работали на очень мощных для своих лет процессорах, поддавались серьезному моддингу и были способны запустить даже Quake!). Всем большое спасибо за донаты!
Осторожно: в статье я постарался подробно и простым языком написать об аппаратном моддинге и ковыряние в железе, хакинге Linux и обходе проприетарной оболочки, а также программировании и портировании софта с других платформ. Но есть нюанс...
Я очень большой фанат портативных гаджетов с полноценными QWERTY-клавиатурами: ноутбуков, коммуникаторов и различных хэндхелдов. Когда в мои руки попадает девайс с Linux или Windows CE в том или ином виде, я стараюсь максимально расширить функционал устройства и порой даже портирую программы с других платформ! Недавно мне удалось купить китайский детский обучающий ноутбук с MIPS-процессором и поворотным дисплеем всего за 1 000 рублей. Интересно узнать о том, как я хакнул девайс и причём здесь Dingoo A320? Тогда жду вас под катом!
❯ Предыстория
В конце 2000-х годов, цена на бюджетные ноутбуки снизилась настолько, что купить полноценный лэптоп мог почти каждый студент. Если в начале нулевых годов миниатюрность была роскошью и стоила довольно дорого по отношению к обычным 15-дюймовым бюджетникам, то с выходом Asus EEEPC в 2007 году, маленькие нетбуки с 7-дюймовыми дисплеями наоборот образовали новый сегмент рынка недорогих портативных устройств.
Сейчас мы с вами привыкли, что большинство ноутбуков работает на базе процессоров с двумя архитектурами — x86_64 и ARM. Однако в те времена, инженеры и производители активно экспериментировали и с альтернативными архитектурами — например, MIPS. В 2009 году, некая китайская компания Noah Educational Holdings, которая занималась разработкой портативных устройств для обучения дошколят и школьников младших классов, выпустила на рынок свой собственный миниатюрный обучающий ноутбук — Noah NP5000.
Обычно, когда читатель слышит «детский ноутбук», он представляет себе небольшое устройство с почти полноценной QWERTY-клавиатурой, небольшим монохромным ЖК-дисплеем и набором некоторых обучающих программ. При этом замоддить такие устройства не представляется возможным — в них используются микроконтроллеры с масочной ROM (прожигаемой на заводе), которые скорее всего являются близкими родственниками процессоров тех самых Тетрисов!
Однако в случае с NP5000 всё было совершенно по другому — дисплей здесь уже цветной, а не монохромный, вместо батареек используется полноценный аккумулятор, да и в целом девайс выглядит действительно как взрослый миниатюрный нетбук с поворотным экраном! При включении пользователя встречает заставка с логотипом компании и характерным пингвинчиком, рабочий стол, напоминающий Windows XP и определенный набор обучающих программ на китайском языке.
В один день я листал Goofish (китайский аналог Авито) в поисках интересных гаджетов, именно пингвинчик и привлёк моё внимание. Информации о том, на каком процессоре работает ноутбук, можно ли на него устанавливать сторонние приложения и что он вообще умеет в сети не было. Однако приятная цена в 1 000 рублей и желание заполучить интересный девайс в коллекцию взяли верх — и я решил рискнуть!
Мчу на своем болиде за ноутбуком для дошколят!
Когда девайс приехал ко мне, я немного поковырял его родную оболочку, попытался выйти в терминал, поставить пакеты OpenWRT — но всё тщетно, оболочка тщательно была закрыта от ушлых детских ручек! Поэтому я решил разобрать девайс и узнать, на каком процессоре он работает и есть ли у нас UART, на котором можно поискать рут-консоль или хотя-бы консоль U-Boot.
Девайс помог привезти в Россию мой подписчик Роман и сервис YouCanBuy, за что им огромное спасибо! Также этой статьи не было бы без подписчика Андрея, который занял мне определенную сумму для заказа ништячков из Китая, за что ему отдельная благодарность!
❯ Что внутри?
Разбирается маленький нетбук почти также, как и его взрослые собратья — через клавиатуру! Со стороны поддона виднеется съёмная крышка, которая на x86-устройстве должна содержать в себе место под HDD и слоты для оперативной памяти. Однако в нашем случае, здесь скрывается кое-что поинтереснее: видите характерное место под миниджек с подписанными пинами RX и TX? Это и есть UART, о котором я говорил в прошлом абзаце.
Плата ноутбука выделяется низкой плотностью монтажа и отсутствием какого либо охлаждения. Процессор, оперативная память и флэшка скрыты под большим защитным экраном на винтиках, в то время как дополнительные модули скрываются под экранами, которые припаяны к плате.
В качестве процессора используется легендарный Ingenic JZ4757! Это готовая система на кристалле, включающая в себя MIPS-ядро собственной разработки с микроархитектурой XBurst, работающее на частоте до 380МГц, видеоконтроллер с возможностью вывода картинки на дисплей или телевизор, аудиокодек, USB-хост и т. п. Слева от процессора расположились два чипа ОЗУ типа SDRAM, в сумме образующие 64Мб, а чуть ниже распаяна NAND-флэшка от компании Samsung на 2Гб. Справа снизу «спрятался» чип часов реального времени — с которого при желании можно было бы взять шину I2C!
Что странно — маркировка флэшки была наполовину затерта с завода, при том что ноутбук ни разу не разбирался... видимо использовали Б/У-накопитель?
Я не зря назвал процессоры от Ingenic легендарными. Дело в том что именно JZ'шки использовались во многих легендарных портативных гаджетах нулевых годов. Например, JZ4732 использовался в популярной эмуляторной игровой консоли Dingoo A320, а JZ4725 использовался в журнале Vogue с экранчиком и OpenHardware-ноутбуке Ben NanoNote. Ingenic славились своей открытостью к сообществу моддеров и свободно предоставляла исходный код ядра Linux, BSP для Windows CE и даже код своей проприетарной прошивки для MP4-плееров!
Далее я решил подпаяться к UART'у, дабы почитать что у нас туда пишет система. Вне зависимости от чипсета или устройства, довольно часто на UART летят логи загрузчика и ядра, а иногда на нём можно найти и рутовую консоль. Благодаря такому «бэкдору» можно попытаться хакнуть самые разные устройства: например, тонкие клиенты на процессорах Marvell или незамысловатый ТВ-бокс. В качестве USB-UART преобразователя я использую плату с ESP32 с постоянным RESET'ом на микроконтроллере (дабы не вмешивался в работу шины):
Не забываем общую массу, иначе на шине будет мусор!
❯ Хакаем
Далее я включил ноутбук, настроил Putty на свой COM-порт с бодрейтом 115200 и увидел логи. Выяснилось что в качестве загрузчика используется всеми любимый U-Boot (в котором нельзя прервать процесс загрузки), а в качестве ядра — Linux версии аж 2.6! И конечно же на этом терминале висела полноценная рут-консоль!
Далее я сразу решил проверить с какой системой мне придется иметь дело: заглянул в top, обнаружив что используется оболочка Qtopia (формальная альтернатива Xorg и DirectFB для КПК на Linux), пошерстил по папкам с бинарниками и посмотрел inittab. Наша задача — заставить ноутбук запускаться с текстовым терминалом на дисплее, а Qtopia запускать уже по желанию.
Сначала я закомментировал запуск Qtopia в скрипте автозагрузки - inittab'е. Однако если просто «прибить» оболочку — после включения ноутбука нас будет встречать пустой экран без какого либо взаимодействия. Поскольку у меня не было возможности изменить cmdline ядра и перенаправить консоль на терминал fbcon, я решил это сделать уже в юзерспейсе с помощью системного вызова TIOCCONS, однако он по каким-то причинам выдавал ошибку. Тогда пришлось немного костылить и дублировать терминал с помощью getty:
После этого у меня начал нормально работать терминал! Правда, без скроллинга... пока не знаю почему. Теперь, когда у нас есть рутовая консоль и полноценный busybox, можно немного поэкспериментировать!
❯ Портируем эмуляторы
Далее я решил попробовать портировать эмуляторы с родственной данному ноутбуку Dingoo A320. В родной системе почти никакие эмуляторы не работали даже после подкидывания всех необходимых библиотек (в том числе и uclibc с SDL), однако после chroot'а в систему от Dingoo A320 у меня запустились часть эмуляторов. Однако в этом ноутбуке используется оригинальный непропатченный кривой драйвер фреймбуфера, который постоянно сыпет ошибками и не умеет работать в виртуальном разрешении. Из-за этого, часть эмуляторов выглядело... примерно вот так:
В эмуляторе был некорректно реализован скейлинг, который портил память
А часть вот так:
Разрешение оригинальной Dingoo A320 — 240x320, а в ноутбуке — 800x480
И я понял что без патчей в исходном коде не обойтись. Для сборки программ под старые Linux-машины, кросс-компилятор из репозиториев свежих дистрибутивов не подойдет — слишком новая версия glibc. Более того, некоторые устройства могут использовать uclibc вместо glibc, как, например, та же самая динга. Поэтому может потребоваться установка уже готового тулчейна — благо для динги он сохранился в сети. Распаковываем архив в /opt/, добавляем в переменную PATH путь к папке bin/ и пробуем собирать тестовую программу. Всё работает!
Далее предстояло найти исходный код эмуляторов для динги. Часть из них можно найти на гите (в качестве портов на GCW-Zero), часть — на сайте OpenHandhelds. Первым дело я решил портировать эмулятор GameBoy Color. Поскольку эмулятор работает поверх библиотеки SDL, в первую очередь я изменил видеорежим с 240x320 на 800x480...
if (!(fbSurface = SDL_SetVideoMode(240, 320, vmode[2], flags))) die("SDL: can't set video mode: %s\n", SDL_GetError());
И ожидаемо ничего не получил, никто растягивать картинку за меня не будет! Поэтому я сначала написал простейшую функцию скейлинга картинки на флоатах с заранее посчитанным шагом интерполяции, затем оптимизировал её до fixed-point арифметики, а после и вовсе решил «запечь» координаты для сэмплинга в один большой массив.
void BlitScale(SDL_Surface* srcSurface, SDL_Surface* dstSurface, framebuffer_scale_t* scales) { int i, j;
for (i = 0; i < dstSurface->h; i++) { for (j = 0; j < dstSurface->w; j++) { framebuffer_scale_t scale = scales[i * dstSurface->w + j];
Крайний вариант был самым быстрым, однако в нативном разрешении ноутбука я получил примерно 50%-скорости от реальной консоли — т. е., по сути, не играбельно. При этом в видеорежиме 240x320 всё работало нормально и упор был явно не в скорость растягивания картинки... по каким-то причинам либо блиттер SDL работал слишком медленно, либо драйвер фреймбуфера спотыкался об преобразование форматов пикселя из-за чего всё и тормозило.
Далее я решил попробовать запустить другие эмуляторы. NES, Sega Master System и другие консоли работали отлично... пока я не устанавливал разрешение выше 240x320. Ради интереса, я запустил оболочку для Linux-консолей gmenu2x с Ben NanoNote, которая вместо SDL использует DirectFB и получил вот такую картину. Epic fail...
После этого я решил попробовать накатить всем известный Debian. В отличии от эмуляторов, здесь пересобирать ничего не нужно: достаточно лишь собрать rootfs с необходимыми пакетами, отформатировать SD-карточку и chroot'унутся в систему. Для сборки можно использовать две утилиты — debootstrap и multistrap:
Сначала я хотел накатить что-то относительно современное по типу Debian Buster или Jessie, однако вскоре выяснилось, что ядро 2.6 эти версии системы не поддерживают...
Оказалось что последней версией Debian, поддерживающей ядро 2.6, был Squeeze вышедший в далёком 2011 году. После сборки и копирования рутфс, необходимо было выполнить вторую стадию установки системы, а именно фактическую распаковку и установку пакетов:
Установка БАЗОВЫХ пакетов занимает около 20 минут!
Далее мне удалось подкинуть некоторые пакеты и даже попытаться запустить иксы (на 64Мб ОЗУ!)... но затем я погряз в зависимостях и всё таки решил попытаться подкинуть сеть. Выяснилось что в ядре есть поддержка встроенного в чипсет Ethernet-контроллера, однако PHY на плате то не распаян!
❯ Заключение
Вот такая статья о попытке превратить китайский бюджетный MIPS-ноутбук в портативную игровую консоль у нас с вами получилось. И хотя в определенном смысле мне удалось добиться успехов — выйти в рутовую консоль, накатить Debian и запустить эмуляторы в половинном разрешении, всё равно это всё таки больше Epic fail... Но по крайней мере, эти бессонные ночи были очень веселыми!
А вам надеюсь было интересно почитать мой опыт моддинга такого замечательного девайса. Пишите своё мнение в комментариях! Если вам интересна тематика ремонта, моддинга и программирования для гаджетов прошлых лет, подписывайтесь на мой Telegram-канал «Клуб фанатов балдежа», куда я публикую бэкстейджи статей, иногда полезные посты ну и немножечко щитпоста! Если вам интересны мои видео той же тематики — предлагаю подписаться на мой YouTube-канал.
Как вам девайс?
Очень важно! Разыскиваются девайсы для будущих статей!
Друзья! Для подготовки статей с разработкой самопальных игрушек под необычные устройства, объявляется розыск телефонов и консолей! В 2000-х годах, китайцы часто делали дешевые телефоны с игровым уклоном — обычно у них было подобие геймпада (джойстика) или хотя бы две кнопки с верхней части устройства, выполняющие функцию A/B, а также предустановлены эмуляторы NES/Sega. Фишка в том, что на таких телефонах можно выполнять нативный код и портировать на них новые эмуляторы, чем я и хочу заняться и написать об этом подробную статью и записать видео! Если у вас есть телефон подобного формата и вы готовы его задонатить или продать, пожалуйста напишите мне в Telegram (@monobogdan) или в комментарии. Также интересуют смартфоны-консоли на Android (на рынке РФ точно была Func Much-01), там будет контент чуточку другого формата :)
А также я ищу старые (2010-2014) подделки на брендовые смартфоны Samsung, Apple и т. п. Они зачастую работают на весьма интересных чипсетах и поддаются хорошему моддингу, парочку статей уже вышло, но у меня ещё есть идеи по их моддингу! Также может у кого-то остались самые первые смартфоны Xiaomi (серии Mi), Meizu (ещё на Exynos) или телефоны Motorola на Linux (например, EM30, RAZR V8, ROKR Z6, ROKR E2, ROKR E5, ZINE ZN5 и т.п, о них я хотел бы подготовить специальную статью и видео т. к. на самом деле они работали на очень мощных для своих лет процессорах, поддавались серьезному моддингу и были способны запустить даже Quake!). Всем большое спасибо за донаты!
А ещё я держу все свои мобилы в одной корзине при себе (в смысле, все проекты у одного облачного провайдера) — Timeweb. Потому нагло рекомендую то, чем пользуюсь сам — вэлкам:
Вчера написал пост с обзором на эту клавиатуру и указал перечень минусов, которые выявил в процессе эксплуатации. Сегодня расскажу, что в итоге я с этим сделал.
Шумоизолировать пространство между корпусом и платой.
Проложить пространство между платой и плейтом.
Заменить свитчи.
Заменить кейкапы.
Разбор клавиатуры
Процесс разборки предельно прост:
Откручиваем по кругу болты, которыми крепится металлическая окантовка, и снимаем её.
Снимаем кейкапы пуллером.
Снимаем свитчи свитч-пуллером.
Откручиваем болты, которые фиксируют плейт.
Снимаем плейт и плату.
Шумоизоляция
Основной принцип шумоизоляции — заполнение пустого пространства. Для этого используют различные материалы, начиная от ваты и заканчивая жидким силиконом. Мой выбор пал на вибро- и шумоизоляцию для автомобилей, которую мне предоставил друг.
Процесс шумоизоляции
Виброизоляция толщиной 2 мм была проложена на дно корпуса вокруг аккумулятора.
Оставшееся пространство (~11 мм) я заполнил шумоизоляцией толщиной 10 мм.
Затем установил плату и прикрутил плейт. Прокладку между ними делать не стал, так как заказал супертихие свитчи Silent Peach от Outemu.
Замена свитчей
Я выбрал Silent Peach по следующим критериям:
Хотелось попробовать линейные смазанные свитчи.
Почитал отзывы и посмотрел на цену.
Уже установленные свитчи
Купил с запасом 100 штук. Качество оказалось отличным: ни одного бракованного экземпляра, без люфтов. Свитчи действительно ОЧЕНЬ тихие, и я не пожалел, что отказался от прокладки между платой и плейтом — она тут была бы лишней, чтобы сохранить хоть какой-то звук.
Замена кейкапов
На Новый год мне подарили PBT-кейкапы от Дарк Проджект. Их дизайн пришелся мне по вкусу. Надел их — и клавиатура собрана.
Итог
После моддинга клавиатура стала тяжелее и теперь весит 1067 г. Если хочется ещё больше веса — можно добавить второй лист виброизоляции.
Ощущения от свитчей и кейкапов исключительно положительные: печатаешь, будто по облачкам, а звук — тонкая поступь котика. Именно этого я и добивался.
Для тех у кого руки чешутся и тех кому также не нравятся скучные системники, делюсь своим пк, еще не все к нему доехало, осталось декора немного и кабель менеджментом заняться. Всем добра :) На очереди второй домашний системник, если интересно могу делиться прогрессом дальше.
Всё началось ещё году в 2017, когда я решил свой первый компьютер собрать самостоятельно, а не брать сборку с магазина. Всё упиралось в бюджет и постепенное докупание компонентов.
Итого мой конфиг был таким: - Ryzen 5 1600 - мать попроще - 8 GB DDR4 - И для видеокарты RX 570 Я изначально не ставил корпус на 1 место и не ставлю сейчас.
Для начала я был готов взять любую коробку, главное, чтобы комплектующим было в нём комфортно. Наверное, с этого и началось моё хобби.
Итак, наш нулевой пациент. Корпус noname из 200x годов. Сразу попрошу не кидаться палками, т.к. это первый опыт и первое временное решение по корпусу.
За основу был взять обычный старый белый корпус, который, наверное, в каждом доме успел побывать.
Как правило, в те годы ещё никто не думал делать на корпусе передние кулеры охлаждения, поэтому сразу же я удалил пластиковую переднюю панель и сделал из листа пвх другую. Болгаркой обязательно выпилил часть скелета корпуса - передний металл. Там разместил 1 кнопку включения, 2 светодиода, 2 usb и вырезал место под 2 кулера.
Получился мой первый корч...
О первой недоработке мне сказали знакомые, у кого дорогие корпуса в стиле "вот он пыль будет сосать, что пылесос".
И тогда, после долгого изучения форумов решил воплотить идею с 1 алюминиевой сеткой под размер корпуса, 4 неодимовых магнитов и 1 женскими колготками, что мне отдала жена (сколько там Den история умалчивает).
Получилось вот такое решение
Следующим шагом я решил переделать корпус во что-то более существенное и красивое.
На просторах групп в ВК в своём регионе я сделал объявление, что ищу ненужный корпус от ПК для проекта, что возьму задаром приеду и заберу.
На объявление откликнулся человек и уже довольный, я поехал за корпусом.
По итогу наш следующий подопытный
Для нового проекта по корпусу бюджет был также невысоким, но и не нулевым.
По расходам я купил: - 3 кулера на 120мм - 1 планку портов в nix - 2 аэрозольных баллона красной и 1 чёрной краски
С этим корпусом такой спешки уже не было, было лишь желание. Первым делом я высверлил все заклёпки, разобрал «скелет» корпуса, всё зачистил и покрасил.
Так, как и с 1 случаем, было вырезано переднее железо и приступил к покраске-сушке.
По передней панели было отдельное приключение, т.к. ПВХ брать я не хотел, а взял фанеру 5мм и затянул в плёнку «Красный глянец».
Итог корпуса для пересборки МК был таким, без подсветок, но меня уже устраивало.
Внутри всем комплектующим было холодно и свободно.
Время шло, корпус я уже успел продать на Авито, и вот только недавно решился собрать корпус номер 3.
Подбор комплектующих не заставил себя долго ждать:
1. За сам скелет был взят старый корпус. Я уже как-то хотел его продать и он был никому не нужен даже за бесплатно.
В повторение 2 предыдущих корпусов в первую очередь я его разобрал полностью и начал вырезать всё лишнее.
В этот раз был полностью погружён в процесс и на руках у меня лишь итоговые фото.
О корпусе:
Передняя панель - Лист ПВХ 5мм, 2 кулера от БП 12v, добавлен резистор на 30 Ом чтобы скорость была не на максимум, и 2 сетки от БП также покрашены.
Верх - всего 1 кнопка включения Боковая крышка - лист оргстекла 2мм, аккуратно выпилено и покрашено. Основа - стандартный скелет, выкрашенный белой краской. Подсветка - RGB лента и модуль за 250 руб из DNS с пультом управления цветами. Начинка уже на ваше усмотрение.
Затраты, т.к. у меня всё было, только на краску и подсветку.
Жёсткие диски, кстати и ССД я крутил на одну сторону только. 3,5 HDD я не использовал, поэтому бояться было нечего.
По итогу
Вот такое у меня хобби, когда есть свободные выходные и хочется что-то поделать руками.
Уже несколько человек мне сказали попробовать снять видео на эту тему, но я решил начать со статьи.
Обязательно пишите, как вы считаете, стоит ли мне продолжать этим заниматься?
Третьего дня (с) встала задача собрать себе вменяемую пекарню за вменяемый прайс, фантазии хватило на скучный 2011-3 и не менее банальную рыксу 400-500 серии, но трамбовать все в скучный черный гроб из фольги с акриловой стенкой и LGBT-подсветкой не хотелось, спустя недели две ожидания с али и беготни по Авито имеем:
Спеки:
- Huananzhi QD4 (пришла с Q87 чипсетом)
- Xeon e5 2670 v3 (12 ядер 24 потока 2.3ггц, вдруг кто не знал)
- Atermiter 2х8 DDR4 2666 (работает само собой на 2133, т.к. Зеон пресекает)
все что сверху, заказывал комплектом
- RX 570 от Гигабайт на 4 гига (б/у, но не из-под майнинга, не спрашивайте, где нашел)
- БП FSP ATX-600PNR (старый но не бесполезный (С))
- Жесткие диски уже имелись в наличии, а именно Plextor 256гб сата ссд, и бучный хард на терабайт от Seagate, побывавший уже в трех комбикракстерах
- Кулек PCColer GI-X4S D, насадил крутилятор от 400 гаммакса, родной пошел на вдув в корпус
Корпус найден на местной барахолке за 300 вечнодеревянных, в неожиданно белом состоянии, видимо где-то в темноте стоял и не пожелтел, полчаса меламиновой губкой поскреб дабы вывести маркер и грязь, и фсьо, искал именно этот Inwin V500, потому что у него снимается корзина для 3.5 устройств, а в полку для бп/приводов идеально встают харды и лапша из проводов
Q: Через сколько поминать сборку/хату, вызывать пожарных?
A: Мать не самая тухлая из бюджетных, на VRM охлад вменяемый, турбобуст анлокать не буду
Q: Бп хоть и хороший, но древний, поч на нем сэкономил?
A: Напруги в допусках, чекал мультиметром под нагрузкой, кондеры не дутые, PNR жыве (не упрощенный PNR-I), за свою практику эникейщика не видел боле живучих блоков.
Q: Куда флешки/звук суешь?
A: Не так часто юзаю юсб, на крайняк вывел удлинитель, обвил вокруг ноги монитора, и норм, сейчас юзаю онли колонки, возникнет необходимость - докину объединитель-переходник микрофона/динамиков в один 4пин разъем, и буду перетыкать по мере надобности, все под правой рукой, бороться с драйвером при переключении фронт панели на задние и обратно каждый раз не хочу.
Q: Почему именно ретро корпус, тебя радиокативный дед за жепу укусил, как с продуваемостью дела обстоят?
A: Тяжесть это хорошо тяжесть это надежно (С) 0.8мм сталюга, проехался сидя на нем через весь город, ни единой вмятины, в общаге на фоне ковра и дедовских занавесок комп-светильник не сильно органично смотрится, а на белый обмылок никто глаз не положит, морда нравится своим минимализмом и отсутствием разъемов, в моддинге собственно говоря направление есть - sleeper pc, вписался по полной, буду вести счетчик удивленных лиц, вопрошающих, "как у тебя на этом киберпанк идет?" Продуваемость такая, что от 120мм на вдув, 92мм на выдув, и собственных кульков видяхи/проца по ногам несет, проц не выше 60, видяха не выше 70 в стресс-тестах.
Q: Фи, зеон
A: Не геймингом единым живем, посередине третьего десятка игровая импотенция дает о себе знать, а для рабочей нагрузки/научных расчетов мультипоток на зеоне имба за тот бюджет, который смог себе позволитб.
Q: Цифиры фпс урони
A: Монитор основной один фиг 60 герц, Киберсрак 40-50, в настройках не рылся, что игра предложила, вроде бы средние с элементами высоких, фреймтайм ровный, упор в видяху, танки на киберспортивных настройках с ограничением по герцовке успешно вывозились даже на стоковом зеоне е5450 на 775 сокете с HD6950 на средне-высоких, на этой сборке видел 70-80 на фулл-ультрах, глаза вытекли, вернул обратно на кастомные настройки.
Nvidia недавно представили свой новый инструмент для моддинга игр -
Nvidia RTX Remix. Он позволяет добавить в старые игры трассировку лучей,
увеличить размер текстур и добавить им физические свойства для корректной работы трассировки лучей, а также добавляет возможность подправлять
модели объектов или добавлять их в захваченную сцену. И всё это будет работать,
как я понял, без моддинга самой игры, то есть изменения будут включаться
на этапе отрисовки сцены. Только представьте, скольким хорошим играм можно будет дать вторую жизнь с помощью этой технологии. В обновлённый таким образом Morrowind я бы точно сыграл.
Не так давно они уже показывали модифицированную с помощью Nvidia RTX Remix первую часть Portal. Выглядит потрясно, как по мне.
Единственный вопрос у меня - будет ли это работать на более старых поколениях GPU. В рекламах везде пишут, что там используется DLSS 3, который работает только на новой 40-ой серии видеокарт. А сейчас на складах лежат горы новых видеокарт 30-ой серии, а на вторичке их и того больше. Это такой хитрый ход Nvidia, чтобы все переходили на 40-ую серию? А то если подумать, то чем им ещё завлечь народ на новую серию. Мощностей 30-ой и так хватает, а в Steam вообще до сих пор самые популярные видюхи у игроков это печки (GTX) 1060 и 1650 и небольшое количество других видюх (сам я сижу до сих пор на GTX 1070Ti).