お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2008-12-28 17:43:34

einundzwanzighundertsechs
メンバ
登録日: 2008-12-28

YouTube Player "PASEN" の使用報告と問題点

初めて投稿します.

PASEN という Digital Audio & AV Player http://www.hallods.co.jp/1221628579795/ を購入しました.
PASEN の SD スロットの MicroSD は自動マウントしてくれますが,
内臓ドライブは自動認識しません.

$ sudo blkid
... 中略 ...
/dev/sdb: UUID="0716-7BFC" TYPE="vfat"
/dev/sdc1: UUID="72AD-2013" TYPE="vfat"

/dev/sdb が内臓ドライブで,/dev/sdc1 が MicroSD に当たります.
内臓ドライブはパーティションなしで,全体が FAT32 になっています.ですから,
$ sudo mkdir /media/pasen
$ sudo mount -t vfat /dev/sdb /media/pasen

でマウント出来ました.自動マウントしないのは,

$ sudo /lib/udev/vol_id /dev/sdb
/dev/sdb: unknown volume type

と,udev の /lib/libvolume_id.so.0 による FAT のチェックが厳格なためです.
USB ストレージとして Windows に認識されるデバイスの幾つかは FAT の仕様を守っていないようで,
signature の一部が仕様書にある数値と異なっていたりします.
ソースコードを調べた結果 blkid はチェックが緩く,signature を全く調べていません.
mount も  Windows(!) もそうなのでしょう. 

/lib/libvolume_id.so.0 は HAL でも使われているため,自動マウントは厳しそうですが,
せめて,/etc/fstab にUUID を記述して一般ユーザでマウント出来るようにしました.

まず,/dev/disk/by-uuid にリンクを作らねばなりません.
udev の vol_id による rule ではダメなので,/lib/udev/ と /etc/udev/rules.d にファイルを追加しました.

$ ls -l /lib/udev/blk_id
-rwxr-xr-x 1 root root 105 2008-12-28 15:41 /lib/udev/blk_id

$ cat /lib/udev/blk_id
#! /bin/sh
a=`/sbin/blkid $1`
r=$?
a=`echo $a | cut -d ' ' -f 2-`
for x in $a
do
    echo $x
done
exit $r

$  ls -l /etc/udev/rules.d/61-persistent-storage-local.rules
-rw-r--r-- 1 root root 730 2008-12-28 15:39 /etc/udev/rules.d/61-persistent-storage-local.rules

$ cat /etc/udev/rules.d/61-persistent-storage-local.rules
ACTION!="add|change", GOTO="persistent_storage_local_end"
SUBSYSTEM!="block", GOTO="persistent_storage_local_end"
ENV{DEVTYPE}=="disk", IMPORT{program}="blk_id $tempnode"
ENV{DEVTYPE}=="disk", ENV{UUID}=="?*", SYMLINK+="disk/by-uuid/$env{UUID}"
LABEL="persistent_storage_local_end"

udev を再起動して,Player を接続すると,
$ ls /dev/disk/by-uuid/
0716-7BFC                             72AD-2013
... 以下略 ...

blkid の結果のように 0716-7BFC が 内臓ドライブなので,/etc/fstab に,次の様に記述して一般ユーザによるマウントを可能にしました.
$ grep 0716-7BFC /etc/fstab
UUID=0716-7BFC  /media/pasen    vfat    users,noauto    0    0

$ mount /media/pasen

$ ls /media/pasen
flash  music  picture  record  txt  video

残された問題:
1) ubuntu-eee では /bin/mount に suid ビットが立ってなくて一般ユーザによるマウントが出来ませんでした.
pmount コマンドを使うのが本筋
$ pmount /dev/disk/by-uuid/0716-7BFC pasen
の様ですが,/etc/fstab の UUID 記述を生かす方が楽なので,
$ sudo chmod u+s /bin/mount
と,してしまいました.
もう一つの ubuntu-8.04.1 では /bin/mount /bin/umount とも suid ビットが立ってました.
どちらが本筋なのでしょうか?

2) /etc/fstab には UUID を記述してあっても,
$ mount | grep pasen
/dev/sdb on /media/pasen type vfat (rw,noexec,nosuid,nodev)
$ grep /etc/mtab
/dev/sdb /media/pasen vfat rw,noexec,nosuid,nodev 0 0
となり,
$ umount /media/pasen
umount: /media/pasen は fstab と一致しないマウントです
で一般ユーザでアンマウントできません.
fedora 10 では,同じ記述で一般ユーザでアンマウント出来ます.

最後の編集者: einundzwanzighundertsechs (2008-12-28 20:01:35)

オフライン

 

#2 2009-01-17 20:37:49

firefoxmmx
メンバ
From: 眠りの森
登録日: 2009-01-17

Re: YouTube Player "PASEN" の使用報告と問題点

直接にHALを使用できませんか

オフライン

 

Board footer

Powered by FluxBB