[GALAXY Tab] Windowsファイル共有をマウントする(Mount Manager)

2011/02/10PDA::Android

GALAXY Tabからcifsファイルサーバー*1で公開されているディレクトリをGALAXY Tabにマウントできるようにします。
これにより、cifsファイルサーバーで公開されている各種ファイルをGALAXY Tabへコピーすることなく、直接扱えるようになります。具体的には、ファイルサーバー上にある動画ファイルを直接再生したりできるようになります。

注: root奪取が必須です。適用は自己責任でお願いします。

*1 : Windowsファイル共有

環境

  • SUMSUNG GALAXY Tab (SC-01C) root奪取環境
  • cifsサーバー
    • Debian 4.0/i386
      • samba 3.0.24-6etch10
    • Debian 5.0/x86_64
      • samba 3.2.5-4lenny13
  • cifsクライアントソフトウェア
    • Mount Manger 1.0.25

準備

カーネルモジュールをGALAXY Tabへ転送する

  1. xda-developersにて公開されているcifsを扱うカーネルモジュールをダウンロードします。
  2. cifs_gtab.zipに含まれるcifs.ko, slow-work.koをGALAXY Tabの任意のディレクトリにコピーします。
    • 例: /sdcard/data/hack/cifs_gtab/以下にコピー
      (以降、/sdcard/data/hack/cifs_gtab/以下に格納されているものとして説明しますので、該当部分は自身の環境に読み替えてください)

Mount Managerを導入する

Androidマーケットより"Mount Manager"をインストールし、以下の要領でMount Managerを設定します。

Mount Managerの設定

1. ロードするカーネルモジュールを設定する

Mount Managerを起動し、上部アイコンの右から2番目の箱型のアイコン(Modulesアイコン)をタップします。

sc-01c_MountManager00.png

Module設定画面になるので、"Add Module"をタップします。

sc-01c_MountManager02a.png

slow-work.ko, cifs.koに対して以下のように設定します。

  • slow-work.ko
    • Module Path: /sdcard/data/hack/cifs_gtab/slow-work.ko
    • Load Order: 0
    • Load Module: Yes
  • cifs.ko
    • Module Path: /sdcard/data/hack/cifs_gtab/cifs.ko
    • Load Order: 0
    • Load Module: Yes
sc-01c_MountManager03.png

sc-01c_MountManager02b.png

2. カーネルモジュールのロードするタイミングを設定する

初期画面に戻り、上部アイコンの右から3番目の歯車のアイコン(Preferencesアイコン)をタップします。
Preferences設定画面になるので、[Modules]の項目を設定しモジュールがロードされるようにします。好みに合わせて設定してください。私は[Load Modules]をオンにしています。

sc-01c_MountManager04a.png

  • [Force Loading of Modules]をタップする: 設定したモジュールをロードします
  • [Load Modules]をオンにする: 以降、アプリケーションの起動時に設定したモジュールをロードします
  • [Load on Boot]をオンにする: 以降、デバイスの起動時に設定したモジュールをロードします

設定した後、[Force Loading of Modules]をタップするなどし、モジュールをロードします。[Loaded Module]にて以下のようにcifsとslow_workがロード(表示)されていれば、cifsマウントに必要なモジュールが組み込まれています。

sc-01c_MountManager04b.png

3. マウントの設定

初期画面に戻り、上部アイコンの左から2番目のドライブに+が付いているアイコン(Add Mountアイコン)をタップします。
Add Mountの設定画面になるので、以下のように設定します。

  • Share Path: [//IPアドレス/共有名]もしくは[//コンピュータ名/共有名]で設定します
  • Mount Point: GALAXY Tab上のどのディレクトリにマウントするかを設定します。/sdcard以下のディレクトリをマウントポイントとして設定することで、"マイファイル"アプリケーションから操作することができます。
  • Mount Type: Windowsファイルサーバーであればcifsとなります。
  • Auto Mount: 自動的にマウントされるようになります(Preferencesにて、自動マウントする設定が必要です)
  • Options: マウントオプションを設定します。後述。

マウントオプションは環境に合わせて設定する必要がありますが、通常の環境であれば以下が必要となります。

  • Username: cifsサーバー側で資格情報を取得するユーザー名
  • Password: Usernameにて指定したユーザーに対応するパスワード

その他、マルチバイト文字を正しく扱えるようにするために以下を追加します。

  • codepage: cp932
  • iocharset: utf8

cifsサーバーがCIFS Unix Extensionをサポートしている場合(sambaサーバーなど)、パーミッションがxx0などのファイルがGALAXY Tab上で表示されません。この場合、nopermオプションを設定します。設定はNameを空にし、Valueにnopermを設定します。

sc-01c_MountManager05.png

その他のマウントオプションはmount.cifsのオンラインマニュアルを参考にしてください。

4. マウントする

自動マウントしない設定の場合、初期画面でマウントの設定をタップすることでマウントされます。
以下のように容量が表示されれば成功です。

sc-01c_MountManager06.png

以上で、cifsファイルサーバーのファイルを操作できるようになります。

[GALAXY Tab] root奪取・adhoc接続有効化・シャッター無音化

2011/02/10PDA::Android

GALAXY Tabではデフォルトではadhocでの接続ができません。
これではHYBRID W-ZERO3のWiFiSnapへ接続することができないことになります。
と、いうことでroot奪取してこの制限を外すことにしました。

GALAXY Tab root奪取

Androidマーケットから"z4root"というアプリケーションが配布されており、それを用いることでroot奪取が簡単にできたようですが、11/02/10現在、Androidマーケットから"z4root"を導入することができませんでした。
このため、xda-developersで配布されているz4root.1.3.0.apkをインストールすることにします。

USBもしくはmicroSD経由でz4root.1.3.0.apkをGALAXY Tabに送り込み、"マイファイル"アプリケーションからz4root.1.3.0.apkをタップすることでインストールできます。

インストールしたらz4rootを起動し、"Permanent Root"をタップするだけでroot奪取は完了です。

sc-01c_z4root01.png

Windows環境設定

Linux環境上にGALAXY Tabへ接続する環境を構築してもよかったのですが、面倒だったので今回はWindows XP Pro SP3上で接続する環境をつくることにします。

まずは以下のアプリケーションをWindows環境上にインストールします。

インストールが完了したら、GALAXY TabでUSBデバッグモードで接続します。
USBデバッグモードは"設定"->"アプリケーション"->"開発"->"USBデバッグ"をオンにすることで設定が可能です。

adb shellでの接続方法

コマンドプロンプトにてAndroid SDKのplatform-toolsフォルダをカレントディレクトリとして解説します。

adb shellへの接続

> adb shell
$ ←のような表記になればadb shellへの接続が確立しています

rootになる

$ su
#

adb shellからsuを実行するとGALAXY Tab側でsuへのアクセス許可を求めている旨が表示されるので許可します。

adb shellの終了

# exit
$ exit
>

コマンドプロンプトの表示が">"になればadb shellから抜けている状態になります。

GALAXY Tab adhocでの接続有効化

xda-developtersからadhoc対応のwpa_supplicantファイルをダウンロードし、GALAXY Tabへ転送しておきます。
ここでは/sdcard/data/hack/wpa_supplicantに配置したとします。

続けてadb shell上でのファイルの差し替え操作を実行します。

> adb shell
$ su
オリジナルファイルのバックアップ
# busybox cp /system/system/bin/wpa_supplicant /sdcard/data/hack/wpa_supplicatnt.org
/systemをrw可能で再マウント
# busybox mount -o remount,rw /system
ファイルを差し替える
# busybox cp /sdcard/data/hack/wpa_supplicant /system/bin/wpa_supplicant
再起動
# reboot

これで再起動が完了すればadhocのSSIDが表示されるようになります。

sc-01c_adhoc.png

シャッター音無音化

/system/build.propのパラメータを変更することでシャッター音を無音化できるようです。ついでですのでやってみました。

> adb pull /system/build.prop

adb.exeが格納されているフォルダにbuild.propが格納されているので、改行コードがLFで編集可能なエディタ*1で編集します。

37行目の

ro.camera.sound.forced=1

を以下のように変更

ro.camera.sound.forced=0

この編集済みのファイルを/sdcard/data/hack/build.propに保存し、差し替えます。

> adb shell
$ su
オリジナルファイルのバックアップ
# busybox cp /system/build.prop /sdcard/data/hack/build.prop.org
/systemをrw可能で再マウント
# busybox mount -o remount,rw /system
ファイルを差し替える
# busybox cp /sdcard/data/hack/build.prop /system/build.prop
再起動
# reboot

再起動後、シャッター音が消えていれば成功らしいです。……というか、無音化する前にカメラ機能を使ったことがなかったのでどう変わったのかがわからない(汗

*1 : 私はサクラエディタを利用しました

参考

Kubuntu 10.10/i386 on ThinkPad X41 環境構築メモ

2011/02/08PC::Linux/BSD

環境

  • IBM ThinkPad X41
    • CPU: Intel Pentium M 778 (1.6GHz)
    • RAM: 1.5GB
    • HDD: 1.8" 60GB HDD
  • OS: Kubuntu 10.10/i386

日本語PPAの追加

$ wget -q https://www.ubuntulinux.jp/ubuntu-ja-archive-keyring.gpg -O- | sudo apt-key add -
$ wget -q https://www.ubuntulinux.jp/ubuntu-jp-ppa-keyring.gpg -O- | sudo apt-key add -
$ sudo wget https://www.ubuntulinux.jp/sources.list.d/maverick.list -O /etc/apt/sources.list.d/ubuntu-ja.list
$ sudo apt-get update 

Kubuntuの既知の不具合の対応

Ubuntu Wiki - MaverickMeerkat/ReleaseNotes/jaにて記載されている既知の不具合の対応を行う。

ログアウト時にXサーバーがクラッシュしてKDMに戻らない

/etc/kde4/kdm/kdmrc

#TerminateServer=true

上記部分のコメントアウトを外す

TerminateServer=true

デスクトップ効果が再ログイン時に無効になる

[KDEシステム設定] - [デスクトップ効果] - [詳細]タブ から[機能チェックを無効にする]にチェックを入れる

日本語入力環境の構築

フロントエンドにiBus, バックエンドにGoogle日本語入力のオープンソース版であるMozcを用いた日本語入力環境を構築します。

必要パッケージのインストール

ibus-mozcパッケージを導入することで日本語入力環境に必要なパッケージが導入されます。

$ sudo apt-get install ibus-mozc

導入されるパッケージ

  • ibus-mozc
  • libcurl3
  • libprotobuf6
  • mozc-server
  • mozc-utils-gui

インプットメソッドの設定

iBusの言語パネルはデフォルトでは隠されているため、表示されるように設定を変更します。
また、デフォルトではシステムトレイにiBusのアイコンが2つ表示されるため、1つのみ表示されるように変更します。
[設定] - [Keyboard Input Method] - [一般]タブ

  • 言語パネルの表示: 常に表示する
  • システムトレイにアイコンを表示する: オフ
iBusが利用するインプットメソッドの設定

[設定] - [Keyboard Input Method] - [インプットメソッド]タブ

[日本語 - Anthy]を削除し、[日本語 - Mozc]を追加する

iBusの言語パネルのテーマ設定

iBusの起動タイミングが早すぎるためか、[KDEシステム設定]の[GTK+の外観]にてウィジットスタイルを変更してもGTK+のデフォルトテーマ*1であるReleighテーマで表示されてしまいます。
他のGTK+アプリケーションと同様にQtCurveテーマで表示されるようにgtk-chthemeにてGTK+テーマを設定します。

gtk-chthemeのインストール

$ sudo apt-get install gtk-chtheme

gtk-chthemeがインストールされたらgtk-chthemeを起動し、QtCurveを選択し適用する。
これで再ログイン時にはiBusの言語パネルがQtCurveテーマで表示されるようになります。

*1 : だと思います

GUIフォントの変更

UbuntuフォントよりもVLゴシックフォントが好きなので、VLゴシックフォントで表示されるように変更。

必要パッケージのインストール

$ sudo apt-get install ttf-vlgothic

ttf-vlgothicをインストール後に、[KDEシステム設定] - [アプリケーションの外観] - [フォント]よりVLゴシックに変更する。

キーバインドの変更

左CtrlはAの隣になければ嫌な人なので。

$ xmodmap -pke > .Xmodmap

~/.Xmodmap に以下を追加

! CapsLockとControlの入れ替え
! 2回適用すると元に戻る
remove Lock = Caps_Lock
remove Control = Control_L
keysym Control_L = Caps_Lock
keysym Caps_Lock = Control_L
add Lock = Caps_Lock
add Control = Control_L

トラックポイントで操作する

/usr/share/X11/xorg.conf.d/20-trackpoint.conf を作成する

Section "InputClass"
        Identifier      "IBM TrackPoint"
        MatchProduct    "TrackPoint"
        MatchDevicePath "/dev/input/event*"
        Driver          "evdev"
        # ホイールエミュレートする
        Option          "EmulateWheel" "true"
        # ホイールエミュレートに使用するボタン番号
        Option          "EmulateWheelButton" "2"
        # 1ノッチに対応するカーソル移動量?
        Option          "EmulateIntrtia" "20"
        # ホイールエミュレートのタイムアウト時間(ms)
        Option          "EmulateWheelTimeout" "100"
        # 3ボタンエミュレートをしない
        # 3ボタンエミュレートは、従来の2ボタンマウスを同時押し(確か)することで
        # センターボタン押下をエミュレートする機能
        Option          "Emulate3Buttons" "false"
        # ホイールエミュレート中のX方向の移動に対する発生するイベント
        #(ボタン番号)を定義
        # 第2引数はそれぞれ、左(マイナス)方向、右(プラス)方向
        Option          "XAxisMapping" "6 7"
        # ホイールエミュレート中のY方向の移動に対する発生するイベント
        #(ボタン番号)を定義
        # 第2引数はそれぞれ、下(マイナス)方向、上(プラス)方向
        Option          "YAxisMapping" "4 5"
        
        # Option        "ZAxisMapping" "A B C D"
        # ZAxisMappingはホイールエミュレート中のそれぞれの移動に対して
        # 発生するイベント(ボタン番号)を定義
        # A: 垂直マイナス, B: 垂直プラス, C: 水平マイナス, D: 水平プラス
EndSection

スワップの設定

X41のHDDは1.8インチで遅いため、通常使用時にはHDDへスワップアウトしないようにし、ハイバネーション時のみスワップパーティションが利用されるように設定する。

スワップパーティションが利用されないようにする

/etc/fstabの変更

# swap was on /dev/sda3 during installation
UUID=UUID値 none            swap    sw              0       0

上記スワップパーティションのオプションを以下のように変更

# swap was on /dev/sda3 during installation
UUID=UUID値 none            swap    sw,noauto       0       0

ハイバネーション時にのみスワップが有効化されるようにする

/etc/pm/sleep.d/05_swapctl

#!/bin/bash
#/etc/pm/sleep.d/20_swapctl
case "$1" in
        hibernate|suspend)
        swapon UUID=スワップパーティションのUUID値
                ;;
        thaw|resume)
                swapoff -a
                ;;
        *)
                ;;
esac

GTK+アプリケーションの日本語化

GIMPなどのアプリケーションが英語で表示されるため、日本語で表示されるようにする

$ sudo apt-get install language-pack-gnome-ja

導入されるパッケージ

  • language-pack-gnome-ja
  • language-pack-gnome-ja-base

pulseaudioの削除

これまでの経験からPulseAudioは重い印象を受けていたので削除。

$ sudo apt-get purge pulseaudio

削除されるパッケージ

  • pulseaudio*
  • pulseaudio-esound-compat*
  • pulseaudio-module-bluetooth*
  • pulseaudio-module-x11*