2011年9月19日月曜日

一般ユーザによるudisksの使用

 
最小構成からfluxbox、lxde、xfce環境を構築するような時、一般ユーザによるudisksの使用が禁止されている場合がある。
udisksの使用が制限されていると、thunar、pcmanfm、nautilusなどのファイラからのusb等のマウントができない。具体的には"Not Authorized."などのエラーが出力される。

  1. udisk、polkitのインストール
  2. 多くの場合、x、ファイラの導入時にインストールされているが、無ければ追加する。

  3. 特権ポリシーの作成
  4. 一般ユーザ(ここではplugdevグループ所属ユーザ)がudisksを使用できるようなポリシーファイルを作成する。
    /etc/polkit-1/localauthority/50-local.d/55-strage.pkla
    [Strage Permissions]
    Identity=unix-group:plugdev
    Action=org.freedesktop.udisks.filesystem-mount;org.freedesktop.udisks.drive-eject;org.freedesktop.udisks.drive-detach;org.freedesktop.udisks.luks-unlock;org.freedesktop.udisks.inhibit-polling;org.freedesktop.udisks.drive-set-spindown
    ResultAny=yes
    ResultActive=yes
    ResultInactive=no 

再起動、またはポリシー監視プロセス(polkitd)をリスタートすれば設定が有効になる。
/usr/lib/policykit-1/polkitd
     

2011年4月24日日曜日

fedora 14 64bit でfriio



  1. recfriioのソースファイルのダウンロード

  2. # wget http://2sen.dip.jp/cgi-bin/friioup/source/up0777.zip




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

  4. ・gcc、g++、boost、glib2、libpcsclite

    # yum install gcc gcc-c++ boost-devel glib2-devel pcsc-lite-devel

    ・ccid(bcasカードリーダ使用時に必要)

    # yum install ccid




  5. ソースファイルの修正

  6. ・recfriior4/recfriior4/RingBuf.hppの修正

    エラーメッセージ:
    "RingBuf.hpp:90:2: error: ‘condition’ in namespace ‘boost’ does not name a type"

    10行目(#include <boost/thread.hpp>)の下に下記のinclude文を追記する。

    #include <boost/thread/condition.hpp>


    ・recfriior4/recfriior4/Recordable.hppの修正

    エラーメッセージ:
    "Recordable.hpp:115:30: error: ‘uint8_t’ does not name a type"

    8行目(#include <vector>)の下に下記のinclude文を追記する。

    #include <inttypes.h>


    ・recfriior4/recfriior4/AbstractFriio.cppの修正

    エラーメッセージ:
    "AbstractFriio.cpp:223:26: error: ‘umask’ was not declared in this scope"

    4行目(#include <sys/file.h>)の下に下記のinclude文を追記する。

    #include <sys/stat.h>




  7. makeファイルの修正

  8. ・recfriior4/recfriior4/Makefileの修正

    エラーメッセージ:
    "/usr/bin/ld: AbstractFriio.o: undefined reference to symbol 'boost::system::system_category()'"

    22行目に下記のように「-lboost_system」を追加する。

    LIBS = -lpthread -lboost_thread-mt -lboost_filesystem -lboost_system `pkg-config --libs glib-2.0`




  9. 使用時の問題

  10. ・friioのbusy状態

    エラーメッセージ:
    Search friios from dir: /dev/bus/usb
    1 friios found:
    /dev/bus/usb/001/008: busy.
    no friio can be used.
    can't open tuner.

    friioを使用する前にdvd_usb_friioを下記のように削除することで一応対処できる。

    # rmmod dvb_usb_friio


    ・B-CASエラー

    エラーメッセージ:
    "error - failed on B_CAS_CARD::init() : code=-3"

    openctが競合しているのが原因のようです。以下のようにサービスを停止します。

    # /etc/init.d/openct stop

    自動起動も停止する場合は以下のように(ただし、ランレベル5の場合)。

    # mv /etc/rc5.d/S24openct /etc/rc5.d/S24openct