CentOS 6でやってます。Debianとかもで大丈夫かと。
今回作ったもの
・ nls_utf8.ko
・ ntfs.ko
※IS12Sではcifs, slow-work, tunなど欲しいものは意外と組み込み済みだったります。
用意するもの
- カーネルソース IS12S用は Open source archive for build 6.0.D.0.274
- Android NDK arm-eabi-4.4.0のクロスコンパイラが必要なので、最新版ではなくandroid-ndk-r5cを使用
クロスコンパイラの導入
ウチでは /optにandroid-ndk-r5c-linux-x86.tar.bz2を展開しました。# cd /opt
# tar jxvf ~huhka/android-ndk-r5c-linux-x86.tar.bz2
ソースの準備
ウチではホームディレクトリ以下に android/kernel/6_0_D_0_274を作って展開しました。※基本的には展開場所はどこでも大丈夫
$ mkdir -p /home/huhka/android/kernel/6_0_D_0_274
$ cd 6_0_D_0_274
$ tar jxvf ../6_0_D_0_274_tar.bz2
実機のカーネルバージョンにあわせるためパッチあて
パッチあて対象:kernel/arch/arm/configs/fuji_hayate_defconfig
*** fuji_hayate_defconfig.org 2012-06-13 20:00:33.000000000 +0900
--- fuji_hayate_defconfig 2012-07-15 23:37:22.000000000 +0900
***************
*** 36,42 ****
CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_CROSS_COMPILE=""
! CONFIG_LOCALVERSION="-307005"
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_HAVE_KERNEL_GZIP=y
CONFIG_HAVE_KERNEL_LZMA=y
--- 36,42 ----
CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_CROSS_COMPILE=""
! CONFIG_LOCALVERSION="-307005+"
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_HAVE_KERNEL_GZIP=y
CONFIG_HAVE_KERNEL_LZMA=y
ビルド
まずは.configを作る$ ARCH=arm CROSS_COMPILE=/opt/android-ndk-r5c/toolchains/arm-eabi-4.4.0/prebuilt/linux-x86/bin/arm-eabi- make fuji_hayate_defconfig
※実際は1行で改行なし
次はmenuconfig
$ ARCH=arm CROSS_COMPILE=/opt/android-ndk-r5c/toolchains/arm-eabi-4.4.0/prebuilt/linux-x86/bin/arm-eabi- make menuconfig
※実際は1行で改行なし
File systems → Native language support → NLS UTF-8 を"M"(モジュール)に
File systems → DOS/FAT/NT Filesystems → NTFS file system support を"M"(モジュール)に
NTFS file system support配下のものも選択
・ NTFS debugging support
・ NTFS write support
モジュール個別にビルド
$ ARCH=arm CROSS_COMPILE=/opt/android-ndk-r5c/toolchains/arm-eabi-4.4.0/prebuilt/linux-x86/bin/arm-eabi- make prepare
$ ARCH=arm CROSS_COMPILE=/opt/android-ndk-r5c/toolchains/arm-eabi-4.4.0/prebuilt/linux-x86/bin/arm-eabi- make scripts/mod/
$ ARCH=arm CROSS_COMPILE=/opt/android-ndk-r5c/toolchains/arm-eabi-4.4.0/prebuilt/linux-x86/bin/arm-eabi- make M=fs/nls/
$ ARCH=arm CROSS_COMPILE=/opt/android-ndk-r5c/toolchains/arm-eabi-4.4.0/prebuilt/linux-x86/bin/arm-eabi- make M=fs/ntfs/
※実際は各1行で改行なし
nls_utf8.koとntfs.koができたので端末に持って行って読み込ませればOK♪
# insmod nls_utf8.ko
# insmod ntfs.ko
koを読み込んだ時に
insmod: init_module 'nls_utf8.ko' failed (Exec format error)などとエラーになったら、dmesgしてみましょう♪
0 件のコメント:
コメントを投稿