td2sk の日記

技術メモとかゲームとか

HTCJ CM12 ビルド方法

(11/23更新) より新しい手順を公開しました。

取り急ぎ共有まで。
不要な差分とか絶対パス()は適宜修正してください。

バイス固有ファイル

git clone http://github.com/kbc-developers/android_device_htc_valentewx -b cm.11.0 $ANDROID_ROOT/device/htc/valentewx
git clone http://github.com/kbc-developers/android_device_htc_msm8960-common -b cm.11.0 $ANDROID_ROOT/device/htc/valentewx
git clone http://github.com/kbc-developers/android_device_htc_s4-common -b cm.11.0 $ANDROID_ROOT/device/htc/valentewx
git clone http://github.com/kbc-developers/android_kernel_htc_msm8960 -b cm-11.0 $ANDROID_ROOT/kernel/htc/valentewx
git clone http://github.com/kbc-developers/proprietary_vendor_htc -b cm-11.0 $ANDROID_ROOT/vendor/htc

Android L for J 作業ログ

概要

下記手順でビルドすると

  • android ロゴ表示
  • adb で接続可能
  • AndroidRuntime が非業の死からの輪廻転生

まで動く。

完成品はこちら

作業途中のため、

  • 手順漏れ
  • 不要手順
  • 絶対パス(ユーザ名入り)

などなど散々なメモなので注意。ただいま簡略化中。

ハードウェア部分取得

proprietary

diff --git a/valentewx/valentewx-vendor-blobs.mk b/valentewx/valentewx-vendor-blobs.mk
index f526d00..7a0d51f 100644
--- a/valentewx/valentewx-vendor-blobs.mk
+++ b/valentewx/valentewx-vendor-blobs.mk
@@ -56,10 +56,4 @@ PRODUCT_COPY_FILES += \
        vendor/htc/valentewx/proprietary/bin/felica_startup:/system/bin/felica_startup \
        vendor/htc/valentewx/proprietary/etc/felica/common.cfg:/system/etc/felica/common.cfg \
        vendor/htc/valentewx/proprietary/etc/felica/mfm.cfg:/system/etc/felica/mfm.cfg \
-       vendor/htc/valentewx/proprietary/etc/felica/mfs.cfg:/system/etc/felica/mfs.cfg \
-       vendor/htc/valentewx/proprietary/app/GMobileTV.apk:/system/app/GMobileTV.apk \
-        vendor/htc/valentewx/proprietary/app/KDDI_Felicalock.apk:/system/app/KDDI_Felicalock.apk \
-        vendor/htc/valentewx/proprietary/app/MobileFeliCaClient.apk:/system/app/MobileFeliCaClient.apk \
-        vendor/htc/valentewx/proprietary/app/MobileFeliCaMenuApp.apk:/system/app/MobileFeliCaMenuApp.apk \
-        vendor/htc/valentewx/proprietary/app/MobileFeliCaSettingApp.apk:/system/app/MobileFeliCaSettingApp.apk \
-        vendor/htc/valentewx/proprietary/app/MobileFeliCaWebPluginBoot.apk:/system/app/MobileFeliCaWebPluginBoot.apk
+       vendor/htc/valentewx/proprietary/etc/felica/mfs.cfg:/system/etc/felica/mfs.cfg

kernel

diff --git a/AndroidKernel.mk b/AndroidKernel.mk
index 36c139e..51c366c 100644
--- a/AndroidKernel.mk
+++ b/AndroidKernel.mk
@@ -3,7 +3,7 @@ PERL            = perl
 
 ifeq ($(TARGET_PREBUILT_KERNEL),)
 
-KERNEL_OUT := $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ
+KERNEL_OUT := /home/td2sk/aosp/out/target/product/valentewx/obj/KERNEL_OBJ
 KERNEL_CONFIG := $(KERNEL_OUT)/.config
 TARGET_PREBUILT_INT_KERNEL := $(KERNEL_OUT)/arch/arm/boot/zImage
 KERNEL_HEADERS_INSTALL := $(KERNEL_OUT)/usr
@@ -62,30 +62,30 @@ $(KERNEL_OUT):
        mkdir -p $(KERNEL_OUT)
 
 $(KERNEL_CONFIG): $(KERNEL_OUT)
-       $(MAKE) -C kernel O=../$(KERNEL_OUT) ARCH=arm CROSS_COMPILE=arm-eabi- $(KERNEL_DEFCONFIG)
+       $(MAKE) -C kernel/htc/valentewx O=../$(KERNEL_OUT) ARCH=arm CROSS_COMPILE=arm-eabi- $(KERNEL_DEFCONFIG)
 
 $(KERNEL_OUT)/piggy : $(TARGET_PREBUILT_INT_KERNEL)
        $(hide) gunzip -c $(KERNEL_OUT)/arch/arm/boot/compressed/piggy.gzip > $(KERNEL_OUT)/piggy
 
 $(TARGET_PREBUILT_INT_KERNEL): $(KERNEL_OUT) $(KERNEL_CONFIG) $(KERNEL_HEADERS_INSTALL)
-       $(MAKE) -C kernel O=../$(KERNEL_OUT) ARCH=arm CROSS_COMPILE=arm-eabi-
-       $(MAKE) -C kernel O=../$(KERNEL_OUT) ARCH=arm CROSS_COMPILE=arm-eabi- modules
-       $(MAKE) -C kernel O=../$(KERNEL_OUT) INSTALL_MOD_PATH=../../$(KERNEL_MODULES_INSTALL) INSTALL_MOD_STRIP=1 ARCH=arm CR+       $(MAKE) -C kernel/htc/valentewx O=../$(KERNEL_OUT) ARCH=arm CROSS_COMPILE=arm-eabi-
+       $(MAKE) -C kernel/htc/valentewx O=../$(KERNEL_OUT) ARCH=arm CROSS_COMPILE=arm-eabi- modules
+       $(MAKE) -C kernel/htc/valentewx O=../$(KERNEL_OUT) INSTALL_MOD_PATH=../../$(KERNEL_MODULES_INSTALL) INSTALL_MOD_STRIP        $(mv-modules)
        $(clean-module-folder)
        $(append-dtb)
 
 $(KERNEL_HEADERS_INSTALL): $(KERNEL_OUT) $(KERNEL_CONFIG)
-       $(MAKE) -C kernel O=../$(KERNEL_OUT) ARCH=arm CROSS_COMPILE=arm-eabi- headers_install
+       $(MAKE) -C kernel/htc/valentewx O=../$(KERNEL_OUT) ARCH=arm CROSS_COMPILE=arm-eabi- headers_install

その他

Android L preview for HTC J 作業メモ

現状

  • adb shellで接続可能
  • 一定周期で砂嵐表示、ブートせず
    • copybitなど画面系の初期化で失敗

コード取得手順

コード編集概要

  • Makefileのリネーム
  • gps, librilなどビルドがコケるモジュールの削除
  • 存在しないヘッダを適当にコピー
  • 未定義定数を適当に修正

感想

手抜き移植で動けばいいやと思ったけれど、それほど簡単じゃなかった

CM11 for J メモ

ちゃんとしたマージには時間がかかる。
手抜きマージでも adb 動作まではできたので、とりあえず作業メモ。

置換

  • arch/arm/ 以下のファイル名 ville を、すべて valente_wx にリネーム
  • 以下 sed で置換
    • VILLE_SAMSUNG -> VALENTE_SAMSUNG
    • VILLE -> VALENTE_WX
    • ville -> valente_wx

GPIO

  • board-valente_wx.h

ここまでやれば、最低限の動作に必要な処理は完了
後はコンパイルエラーになる部分を適宜修正していく

GPIO

  • board-valente_wx.h
    • GPIO の定義部分について VALENTE_WX -> VALENTE_WX_GPIO に置換
    • PMGPIO の定義部分について、 VALENTE_WX -> VALENTE_WX_PMGPIO に置換
    • SDA -> DAT,SCL -> CKL など、postfix を適宜置換

PMGPIO -> GPIO

  • PMGPIO に定義されているが GPIO で定数参照されているもの
    • M8921_GPIO_PM_TO_SYS(pmgpio) でPMGPIO -> GPIO に変換

その他

バイス定義ファイル

  • ville -> valente_wx
  • あと適当

それでもエラーが出るところ

  • 適当に頑張る

Raspberry pi に Arch Linux を入れる

    _ /⌒ヽ
 / /  ̄ `ヽ
/  (リ从 リ),)ヽ
l | |  . ' .Y |
(  " ヮ " ねんがんの Raspberry pi B を 手に入れたぞ
 ヽ`>、_ .ノ_ノ
l (⌒) [水] l
l / └n/l二二二.l
リ/ `ー-`// sagawa /)

というわけで初期設定をメモる。

OSの準備

Downloads | Raspberry Pi
上のリンクからArch Linuxのイメージをダウンロードする。
WindowsならWin32DiskImager、Linuxならddを使って、SDカードにイメージを書き込む。

SDカードの準備ができたら、適当な入出力機器をつないで電源投入。
初期ID/password は root/root。

パーティションの拡張

標準のイメージは2GBのSDカードに合わせて作られている。
より大きいSDカードを用いる場合は、領域をフルに使えるようパーティションを切り直す。

$ fdisk /dev/mmcblk0
# パーティションを確認
> p

# 以下、一度パーティションを削除し、元と同じ配置で切り直す
# ブロック開始/終了位置をデフォルトにすることで
# 元のパーティションの内容を維持したまま、最大容量に拡大できる

# mmcblk0p2 を削除
> d
> 2
> (以降デフォルト値)

# mmcblk0p2 をextendで作成
> n
> e
> (以降デフォルト値)
# mmcblk0p5 をlogicalで作成
> n
> l
> (以降デフォルト値)

# 保存
> w

$ reboot

# 再起動後、パーティション情報を更新する
$ resize2fs /dev/mmcblk0p5

アップデート

pacman -Syu 実行後に起動しなくなる現象が発生。
関係あるかは不明だが、 filesystem のみ後回しにすることで正常にアップデートできた。

$ pacman -Syu --ignore filesystem
$ reboot

# 再起動後
$ pacman -S --force filesystem

おまけ

1000円で買える、16GB class10のmicroSDHC + アダプタセット

シリコンパワー microSDHCカード 16GB class10 アダプタ付 永久保証 ブラック SP016GBSTH010V10SP

シリコンパワー microSDHCカード 16GB class10 アダプタ付 永久保証 ブラック SP016GBSTH010V10SP