Nokia E6 — смартфон из той эпохи, когда Symbian ещё был живой платформой. Энтузиаст под ником fluffleswaffled взялся за необычный проект: заставить этот почтенный аппарат 2011 года работать под Linux — просто потому, что это куда интереснее штатной прошивки.
Разблокированного загрузчика у E6 нет, поэтому пришлось пойти обходным путём. Symbian-приложение загружает ядро и device tree прямо в оперативную память, после чего отключаются MMU и кэши, и устройство передаёт управление Linux. Это билет в один конец: вернуться в Symbian без перезагрузки уже нельзя.
В результате на экране самого телефона появляется рабочий терминал, причём аппаратная клавиатура и сенсорный экран функционируют. За вывод изображения отвечает контроллер Broadcom VideoCore III: автор перехватил команды, которые посылал оригинальный драйвер дисплея от Nokia, и на их основе собрал собственный драйвер ядра, попросту воспроизводящий эти команды.
Есть, впрочем, и серьёзная проблема. В Linux телефон живёт недолго — он стабильно перезагружается примерно через три с половиной минуты после старта альтернативной ОС. Автор предполагает, что виноват модем (baseband): он следит за основным процессором и «убивает» систему, как только замечает, что мобильный стек Symbian перестал отвечать.
Fluffleswaffled надеется, что кто-нибудь с опытом работы с модемами Nokia или подобным железом подскажет, как обойти этот сторожевой механизм и продержаться дольше. Практической пользы от Linux на смартфоне 2011 года немного, но сам азарт и инженерная смекалка подобных экспериментов дорогого стоят.
Подобные портирования мы видели и раньше, и каждый раз любопытно узнать, что именно требуется, чтобы поднять ОС на новой платформе: от перехвата команд дисплея до борьбы с недокументированным поведением модема.















