2012年10月09日

Android/Xperia Acroへのカーネルモジュール導入についてメモ

Linuxではカーネルの機能がモジュール化されていて、コンパイルオプションで自由にオンオフできる(静的リンク)。さらに、カーネルが起動した後でも、同じモジュールをカーネルに導入できる(動的リンク)

Linuxでは、*.koというファイルが動的リンク可能なカーネルモジュール(kernel objectファイル)になる。
動的リンクされるカーネルモジュールは再起動すれば消えるので、ちょっとやそっとでは文鎮化することが無いので安心できる。(システムファイルやハードウェアを壊すようなバグを含んでなければ)
同じバージョン・同じCPU向けのモジュールなら基本的に互換性があるので、依存関係をしっかり解決すれば、Androidメーカーの作ったカーネルにOSの基幹機能を安全に追加できる。

カーネルバージョンや端末指定で.koファイルが配布されている場合、suシェルからinsmodコマンドでロードしてシステムが壊れないか確認した後で、init.dなどの起動スクリプトで自動導入するようにすればほとんどリスクなく利用できる。
CWMなどを使えば、自動インストールも簡単。

hw_setup.shなど、起動時にrootで実行されるスクリプトにbusybox insmod hogehoge.koと入れておけば、起動時に導入されるし、アプリによってはroot権限取得してインストールしてくれるものもある。


結局自分のAcroは
http://thjap.org/android/xperia-series/2011-xperia/291.html
を参考に、
etc/init.dの 99complite  (sqlite最適化)と 09disablevsync (vsync無効化)を削除して適用

ondemand2がかなり効果があるようで、ロック中の電力消費がかなり減っている。
384MHzでも音楽再生には問題ないようだ。Bluetoothが瞬断しやすくなったかもしれないので少し増やすといいかもしれない。

Android2.3.4のXperia Acroでは、CIFSでWindowsファイル共有をマウントするために、
cifs.ko slow-work.ko(これはandroid独自?) nls_utf8.ko
が必要だった。

cifs.koはWindows共有をファイルシステムとしてマウントする機能そのもの、nls_utf8.koは、windowsのファイル名エンコーディングを、AndroidOS内部エンコーディングに変換するための機能を提供している。

試していないが同様に、USB-OTGでUSBメモリをマウントするには、usb-storage.ko が必要。ファイルシステムがNTFSなら、ntfs.ko、ext4ならext4.ko。

CIFSマウントが実用的とわかってNexus7購入を決断してしまった。
posted by ko-zu at 22:05| Comment(0) | TrackBack(0) | Android | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。