Мысли об Android’е на HTC Quartz (HTC Max 4G) (часть 2)

UPD0: Разработка в этом репозитории прекращена, создан новый. Актуальная инструкция по сборке здесь.

Глядя на все это безобразие, создал я (давненько уже) на gitorious’е клон ветки портирования ядра на HTC Kovsky для разработки порта на HTC Max 4G. Пока разработки там никакой фактически нет, только добавлены файлы для платформы HTC Quartz (пока они — лишь копии соответствующих файлов HTC Kovsky). Как этим пользоваться? Приведу модифицированную под данный репозиторий инструкцию проекта XPeroid:

Для сборки ядра нам понадобится Linux. Я использую Debian Squeeze, однако подойдет практически любой дистрибутив (однако, как говориться, могут быть ньюансы)

Итак, устанавливаем необходимые пакеты (для этого, естественно, потребуются права администратора). Остальные действия можно осуществлять из-под обычного пользователя.

apt-get install git-core build-essential libncurses-dev

Создаем директорию для исходников:

mkdir $HOME/quartz-dev

Переходим в нее:

cd $HOME/quartz-dev

Загружаем исходные тексты ядра Linux при помощи системы контроля версий git (да, ее тоже нужно установить предварительно. Для debian пакет назвается, как ни странно, git). Будьте готовы, что скачается около 300 мегабайт. На диске же будет занято почти 700.

git clone git://gitorious.org/~loquens/\
linux-on-qualcomm-s-msm/linux-msm-quartz.git

Скачиваем и распаковываем кросс-компилятор. Полный URL архива не помещается в блоке, поэтому слово «ссылка» в командной строке нужно заменить на ее URL.

wget ссылка -O arm-2008q1-126-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
tar xjf arm-2008q1-126-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

Далее генерируем конфигурационный файл для ядра на основание шаблона

cd linux-msm-quartz
make htcquartz_defconfig ARCH=arm

Теперь нужно внести необходимые изменения в свежесозданный конфигурационный файл. Он представляет из себя обычный текстовый файл, и править его можно любым редактором. Итак, выполните команду

ваш_любимый_редактор .config

В конфигурационном файле нужно найти  и изменить значения следующим параметрам (или добавить их в случае отсутствия):

CONFIG_FB_MSM_REFRESH=y
CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
CONFIG_IEEE80211=y
CONFIG_IEEE80211_DEBUG=y
CONFIG_IEEE80211_CRYPT_WEP=y
CONFIG_IEEE80211_CRYPT_CCMP=y
CONFIG_IEEE80211_CRYPT_TKIP=y
CONFIG_HTC_FB_CONSOLE=y
CONFIG_HTC_FB_CONSOLE_BOOT=y

Если в дальнейшем при первом запуске компиляции будут заданы вопросы по каким-то параметрам, нужно ответить на них «Y», либо принять предлагаемое по умолчанию значение.

Теперь перейдем непосредственно к компиляции:

export PATH=$HOME/quartz-dev/arm-2008q1/bin:$PATH
make zImage ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-

Процесс займет некоторое время, в результате готовое ядро будет размещено в $HOME/quartz-dev/linux-msm-quartz/arch/arm/boot/zImage.

Да, не забудьте поменять в startup.txt параметр mtype. Для данного ядра следует использовать значение 2427. И, чтобы избежать перевернутой консоли при загрузке, также нужно изменить в этом же файле параметр ядра с «fbcon=rotate:2» на «fbcon=rotate:0» (после двоеточия — ноль)

На всякий случай еще раз повторю: на момент написания этой статьи данное ядро — лишь копия ядра HTC Kovsky, поэтому никаких принципиальных отличий в работе от ядра из сборки, описанной в предыдущем посте НЕ БУДЕТ!

  • mikky

    Уважаемый Loquens, спасибо за интересные статьи, было бы неплохо, если бы вы еще прикладывали результаты, например zImage который в итоге получается. Заранее спасибо!

  • loquens

    Пока особо не за что 🙂 Выкладывать скомпилированное ядро не стал, т.к. оно, как и написано, по функционалу не отличается от оригинального ядра Kovsky. Если будут какие-то наработки по теме, буду выкладывать уже собранные ядра для тестов.

  • mikky

    Надеюсь в ближайшем будущем увидеть ваши наработки 🙂

  • Pingback: ()

  • Radmir

    Привет всем и в частности loquens, понравилась ваша сборка, сам я сервисник HTC. Чем могу помочь вам?

    • Аноним

      Спасибо! Очень приятно 🙂 Поможет любая информация о железе HTC Max 4G, т.к. именно в отсутствии спецификаций заключается основная проблема.