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
- kbc-developers/proprietary_vendor_htc (cm-11.0) を取得し $ANDROID_ROOT/vendor/htc に配置
- 以下の差分を適用
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
- kbc-developers/android_kernel_htc_msm8960 (cm-11.0) を $ANDROID_ROOT/kernel/htc/valentewx に配置
- 以下の差分を適用
- td2skや絶対パスやらが含まれている部分は適宜
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
その他
- libMTVMFCls.so を削除するとlogcatがすっきりして見やすい
- CM11のハードウェア周り取得部分は不要?
Android L preview for HTC J 作業メモ
Qiitaで記事を書いてみた
なぜか vim の話
NeoBundle周りを自動化する
次は emacs 版を書かねば
CM11 for J メモ
ちゃんとしたマージには時間がかかる。
手抜きマージでも adb 動作まではできたので、とりあえず作業メモ。
置換
GPIO
- board-valente_wx.h
- GPIO, PMGPIO のポート番号定義を Jのソースコードのものに置換
ここまでやれば、最低限の動作に必要な処理は完了
後はコンパイルエラーになる部分を適宜修正していく
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 |
というわけで初期設定をメモる。
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
- 出版社/メーカー: シリコンパワー
- 発売日: 2016/08/01
- メディア: 付属品
- 購入: 24人 クリック: 18回
- この商品を含むブログを見る