[Kubuntu] Amarokでメディアの接続/切断機能を利用する

2008/09/21PC::Linux/BSD

KubuntuのAmarokではメディアデバイスの接続や、接続状態の切断を行う機能が備わっていますが、そのままでは利用できません。これらの機能を使えるようにしたときのメモ。

環境

  • Kubuntu 8.04.1 日本語ローカライズド
  • KDE 3.5.9
  • Amarok 1.4.9.1
  • メディアデバイス: iPod shuffle 1G (512MB)

デフォルトの状態

amarok-mount.jpg

Amarokで利用可能なメディアデバイスを物理的に接続後、Amarokで「接続」ボタンを押しても図のようなエラーが発生し、マウント及びAmarokでアクセスすることができません。

Amarokから接続/切断ができるようにするには

/etc/fstabを編集する

[KDE] FAT32ファイルシステムをログイン時に自動マウントするを参考に以下の要件を満たす様に編集します。

  • デバイスはUUIDなりLABELで指定する*1
  • 特定のマウントポイントにマウントできる
  • 一般ユーザが書き込み権限を持つ状態で自由にマウントできる
実装例
  • デバイス: iPod shuffle 1G (512MB)
  • ラベル: KaedePod
  • マウントポイント: /media/ipod

上記の場合/etc/fstabを以下の様に編集します。

# iPod shuffle
#<file system> <mount point> <type> <options>                                  <dump> <pass>
LABEL=KaedePod /media/ipod vfat user,rw,noauto,codepage=932,iocharset=utf8  0  0

Amarokからマウントできるように設定する

amarok-mount2.jpg
Amarokにメディアデバイスを接続した状態で設定ボタン(歯車のアイコン)をクリックし、以下の様に設定を行います。

接続前のコマンド
mount /media/ipod
接続切断後のコマンド
umount /media/ipod

これでAmarokからメディアデバイスの接続/切断が可能となります。

*1 : メディアデバイスがUSB機器などの場合状況によって/dev/sddや、/dev/sdeなどに変わってしまうため

[KDE] FAT32ファイルシステムをログイン時に自動マウントする

2008/09/20PC::Linux/BSD

X41のWindows XP領域とKubuntu領域両方で利用できるストレージとして、FAT32ファイルシステムのパーティションを用意しています。が、Kubuntuから自動マウントさせても所有者がrootとなってしまうため、root以外のユーザが自由にファイル等を書き込むことに制限が生じてしまっています。それを解決したときのメモ。

環境

  • Kubuntu 8.04.1 日本語ローカライズド
  • FAT32共有領域: /dev/sda8
  • マウントポイント: /mnt/fat32

自動マウントできるようになるまで

UUIDを調べる

/etc/fstabで上記のFAT32共有領域を指定するためにUUIDを調べます。
以下は/dev/sda8のUUIDを調べる場合は以下の通り。

$ ls -la /dev/disk/by-uuid | grep sda8

その他、tune2fs, blkid, vol_idなどの方法で調べることが出来るようです。→ubulog: UUIDを調べる方法

/etc/fstabの編集

一般ユーザでも書込権限付きでマウントできるように/dev/sda8を編集する

# /dev/sda8
<file system>        <mount point> <type> <options>                                           <dump> <pass>
UUID=調べたsda8のUUID  /mnt/fat32  vfat user,rw,noauto,exec,codepage=932,iocharset=utf8        0       0

これで、任意のユーザで書込権限付きでマウントするための準備が整いました。

自動マウントする

KDE環境ではログイン時に~/.kde/Autostart/以下に配置したスクリプト等を自動実行してくれるので、ここに以下の様なシェルスクリプトを作成します。

#!/bin/sh
mount /mnt/fat32

シェルスクリプトの名前は自由なので、自分がわかりやすい名前をつけるといいでしょう。*1シェルスクリプトを作成したら実行権限を付けることを忘れないで下さい。

$ chmod 755 ./automount.sh

*1 : ちなみに、かえでは"automount.sh"としています

参考

LinuxにおけるFAT32フォーマットの方法

2008/09/12PC::Linux/BSD

Linuxであっても、リムーバブルメディアの類を利用する場合はFAT/FAT32のフォーマットを行う必要があります*1。その際のメモ。

*1 : 理想を言えば、ジャーナリングを採用したファイルシステム(NTFS/ext3等)を用いたいところである。が、NTFSはMSが詳細仕様を公開していないためにLinuxの読み書きは危険とされており、筆者のようなLinux環境をメインで使用する場合には推奨されない。一方、ext3などのファイルシステムでは世の大半を占めるWindows環境では標準で読み込むことが出来ない。このため、仕方なくFAT32で運用している。MSは仕様を公開しるー。FAT32じゃファイルが壊れやすいんじゃー

環境

OS
Kubuntu 8.04.1 日本語ローカライズド
リムーバブルメディア
SONY POCKETBIT (8GB)*2

POCKETBIT (8GB)の詳細

$ sudo fdisk /dev/sde
コマンド (m でヘルプ): p

Disk /dev/sde: 8119 MB, 8119648256 bytes
250 heads, 62 sectors/track, 1023 cylinders
Units = シリンダ数 of 15500 * 512 = 7936000 bytes
Disk identifier: 0x********

*2 : 容量と値段に惹かれて購入したUSBメモリ。同一の価格で東芝製のものがあったのだが、デザインで選んでしまい今非常に後悔している。その一番の理由が読み書きのパフォーマンスが非常に悪い。せっかくある8GBの領域のほとんどが無駄となってしまっている。ReadyBoost対応を謳っている東芝製ならこんな事にはならなかっただろう(TT) もう二度とSONYのUSBメモリには手を出しません

作ってみる

1. パーティション分割

まずはパーティション分割から。通常、市販のUSBメモリなどを購入した場合は基本パーティションが1つだけあるような状態となっているはずですので、特に問題がない場合はそのまま運用します。

ちなみにWindowsではUSBメモリのパーティションを分割することは出来ませんが、Linuxのfdiskでは通常のディスクと同じように扱うことが可能です。

2. 領域タイプの設定

以下の様な場合を例とする

デバイス Boot      Start         End      Blocks   Id  System
/dev/sde1               1        1023     7928219   83  Linux

fdiskでパーティションを分割したときの新規パーティションの領域タイプは0x83(Linux)となる。このため、今回の様にFAT32でフォーマットし運用する場合はこの領域タイプを変更する必要がある。

FAT32を表す領域タイプとして0x0B(FAT32)、0x0C(FAT32 (LBA))がある。これらの使い分けは以下の通り。

0x0B (FAT32)
パーティションの終了シリンダが1023、ディスクの先頭から8GBまでの領域にパーティションが収まる場合に利用してもよい。
0x0C (FAT32 (LBA))
LBA対応版。パーティションが終了シリンダが1023を超える場合にこちらを利用する。

3. フォーマット

実際にmkfsコマンドを利用してフォーマットする。

$ sudo mkfs.vfat -v -c -F 32 /dev/sde1

後はまったりとフォーマットが完了するまで待つだけです。

オプションの解説
-v
詳細な進捗を表示
-c
不良ブロックの精査を行う
-F 32
FAT32形式でのフォーマットの指定。-FだとFAT(16)となる。

参考

[Debian/Apache2] mod_rewriteを有効にする

2008/08/19PC::Linux/BSD

adiaryでmod_rewriteを利用しようとしたところ、mod_rewriteが有効になっていないみたいだったので調べてみた。

環境

  • Debian GNU/Linux 4.0r3 (etch)
  • apache 2.2.3
  • adiary 2.002

mod_rewriteを有効にする

a2enmodを利用しmod_rewriteを有効にする。

# a2enmod rewrite

apache2のDirectoryディレクティブを以下のように設定する

AllowOverride FileInfo

apacheを再起動する。

adiary側の設定(.htaccess)

adiary設置ディレクトリに.htaccessを作成し以下のように記述*1

<IfModule mod_rewrite.c>
    RewriteEngine  On
    RewriteBase    /
    RewriteCond    %{REQUEST_FILENAME}	!-f
    RewriteRule    ^(.*)$	   	adiary.cgi/$1	[L]
</IfModule>

これでadiary.cgiなしでアクセスできるはず。

*1 : RewriteBaseなどの設定は個々の環境に合わせて変更する必要がある

参考

特殊なマウスを使う

2008/08/17PC::Linux/BSD

X環境で以下のポインティングデバイスを利用する方法について調べてみた。

  • 5ボタンマウス
  • トラックポイント

環境

OS
Kubuntu 8.04.1 日本語ローカライズド
Window Manager
KDE 3.5.9
5ボタンマウス
Microsoft Wireless IntelliMouse Explorer 2.0 (USB)
トラックポイント
IBM Space Saver II Keyboard
Firefox
3.0.1 (Ubuntuパッケージ版)

5ボタンマウスを利用する

Kubuntuデフォルトの設定では5ボタンマウスの第4、第5ボタンが機能しません。これらを利用可能とするには/etc/X11/xorg.confをのマウスに関するセクションを以下のように編集します。

Section "InputDevice"
    Identifier    "Mouse0"
    Driver        "mouse"
    Option        "Protocol" "auto"
    Option        "Device" "/dev/psaux"
    Option        "Emulate3Buttons" "no"
    Option        "ZAxisMapping" "4 5"
EndSection

ちなみに、このマウスのセクションはnVidia Settingsが吐き出すものです。

トラックポイントを利用する

トラックポイント4ではセンターボタンを押下時にポインタを動かすことにより、スクロールさせる機能が備わっています。これをLinux上で利用する場合のメモ。

xorg.confの設定

こちらの記事を参考に、5ボタンマウスを利用する場合と同様に以下のように/etc/X11/xorg.confのマウスのセクションを変更します。

Section "InputDevice"
    Identifier    "Mouse0"
    Driver        "mouse"
    Option        "Device" "/dev/input/mice"
    Option        "Protocol" "ImPS/2"
    Option        "Emulate3Buttons" "on"
    Option        "Emulate3Timeout" "50"
    Option        "ZAxisMapping" "4 5"
    # スクロール機能の有効化
    Option        "EmulateWheel" "on"
    # センターボタン押下時にスクロールボタン機能を割り当て
    Option        "EmulateWheelButton" "2"
    Option        "EmulateInertia" "50"
    # 横スクロール機能の有効化
    Option        "XAxisMapping" "6 7"
EndSection

Firefox側の設定

Firefoxにて横スクロール機能を利用する場兄はabout:configにて以下の項目を設定する必要がある。

  • mousewheel.horizscroll.withnokey.action = 0
  • mousewheel.horizscroll.withnokey.numlines = 1

設定の効果

センターボタンをホールド時にはスクロールボタンとして機能することとなり、Windows環境でのトラックポイントのように利用することが出来ます。なお、Windowsのトラックポイントドライバはセンターボタンを常にスクロールボタンとして機能させていますが、上記の設定の場合、センターボタンクリック時には通常のセンターボタンとして動作するため、FirefoxでCtrl+クリックで新しいタブに開いていたところをセンターボタンクリックのみで実現できます。

また、この設定を通常の3ボタンマウス*1に適用することでトラックポイントライクな操作性を実現することが出来ます。

*1 : ホイールではない純粋な3ボタンマウス。いや、ホイールタイプのマウスでも同様に動作しますけど、ホイールタイプなら素直にホイール回せ、と(苦笑

5ボタンマウス+トラックポイントの組み合わせの場合

これまでの設定を参考に、私の環境である5ボタンマウス+トラックポイントの組み合わせの場合を記述してみた。

Section "InputDevice"
    Identifier    "Mouse0"
    Driver        "mouse"
    Option        "CorePointer"
    Option        "Device" "/dev/input/mice"
    Option        "Protocol" "ExplorerPS/2"
    # マウスのボタンの数
    # 5ボタン+上下スクロール+チルトスクロールで9つ
    Option        "Buttons" "9"
    # マウスのボタンのマッピング
    # 第4ボタン: 8(Firefoxで「戻る」ボタン)
    # 第5ボタン: 9(Firefoxで「進む」ボタン)
    Option        "ButtonMapping "1 2 3 8 9"
    Option        "Emulate3Buttons" "false"
    Option        "Emulate3Timeout" "50"
    Option        "ZAxisMapping" "4 5"
    # スクロール機能の有効化
    Option        "EmulateWheel" "on"
    # センターボタン押下時にスクロールボタン機能を割り当て
    Option        "EmulateWheelButton" "2"
    Option        "EmulateInertia" "50"
    # 横スクロール機能の有効化
    Option        "XAxisMapping" "6 7"
EndSection

ちゃんとした設定を行うにはxorg.conf(5)を読まないといけないのだが、日本語化されたものがないのが辛い。そのうち読むつもりはあるが、とりあえず意図した通りに動いているのでよしとする。