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


2010年7月25日日曜日

VirtualBox上でWebアプリケーションサーバ

VirtualBox上にDebian lennyを最小構成でインストールする(Bridge接続)。


  1. SunのJDKのインストール

  2. /etc/apt/source.listにnon-freeを追記。

    # aptitude update
    # aptitude install sun-java6-jdk


  3. Tomcat5.5のインストール


  4. # aptitude install tomcat5.5

    以下のようにディレクトリを新規作成する。

    # mkdir /usr/share/tomcat5.5/webapps/ROOT
    # mkdir /usr/share/tomcat5.5/webapps/ROOT/WEB-INF

    web.xmlとindex.htmlを作成する。
    /usr/share/tomcat5.5/webapps/ROOT/WEB-INF/web.xmlは下記の最小の内容で動作はする。
    <!DOCTYPE web-app PUBLIC
    “-//Sun Microsystem, Inc.//DTD Web Application 2.3//EN”
    http://java.sun.com/dtd/web-app_2_3.dtd>
    <web-app></web-app>

    /usr/share/tomcat5.5/webapps/ROOT/index.htmlは適当にry)

  5. Tomcatを80番ポートで動作させる

  6. /etc/tomcat5.5/server.xmlの以下のコメント文の下のConnector要素のport属性を80に修正する。

    <!-- Define a non-SSL HTTP/1.1 Connector on port 8180 -->
    <!-- Define an AJP 1.3 Connector on port 8009 -->

  7. TomcatのSSL設定

  8. 下記のコマンドで鍵の生成。

    # keytool –genkey –alias tomcat –keyalg RSA

    鍵生成時のユーザディレクトリに作成されるので/etc/tomcat5.5など適当な場所に移動しておく。
    ※パスワードは"changeit"
    コメント文の下のConnector要素のコメントアウトを外す。
    <!-- Define a SSL HTTP/1.1 Connector on port 8443 -->
    port属性を443に修正し、keystoreFile属性を追加する(keystoreFile=”/etc/tomcat5.5/.keystore”)。

  9. DNSサーバ

  10. dnsmasqで運用する。

    # aptitude install dnsmasq

    /etc/hostsに下記のようにサーバにドメイン名を割り付ける(192.168.0.12がサーバアドレスの場合)。
    192.168.0.12 www.debian.co.jp www

  11. Windowsクライアントの設定

  12. DNSサーバを登録してドメイン名でサーバにアクセスできるようにする。ネットワークデバイスの設定から下記のように辿り、DNSを追加する。

    1. インターネット プロトコル バージョン 4 (TCP/IPv4)

    2. プロパティ

    3. 詳細設定

    4. DNSタブ

    5. 最優先DNSとして「192.168.0.12」を追加


2010年3月18日木曜日

Debian lenny で friio

以前Ubuntuでビルドしたバイナリをそのまま転用。2.6.26-2-686では問題無く動きます。recfriioについては下記のパッケージが必要。

  • libusb-dev

  • libboost-dev

  • libboost-thread-dev

  • libboost-filesystem-dev


b25ではry)

  • libpcsclite-dev

  • pcsc-tools

  • libccid pcscd

2010年1月30日土曜日

Ubuntu 9.04 で Inkscape 0.47

jauntyのリポジトリにあるInkscapeは0.46です。gnuplotとの相性の悪さやスナップ機能、マルチウインドウでのクリップボード共有など0.47では改善されてます。ソースファイルをInkscape公式サイトからダウンロードして展開しておきます。
ビルドする前に以下のパッケージをインストールしておきます。

  • intltool

  • libpng12-dev

  • libgc-dev

  • libfreetype-dev

  • liblcms-dev

  • libgtkmm-2.4-dev

  • libxml++-dev

  • libxslt-dev

  • libgsl0-dev

  • libboost-dev

  • libpopt-dev

  • libmagick++-dev

  • libwpg-dev

  • libgnome-vfsmm-2.6-dev

  • libperl-dev


ビルドします。

# ./configure --enable-binreloc --with-python --with-perl
# make
# make install

textextを利用する場合以下のパッケージをインストールします。

  • python-lxml

  • pdf2svg


textext本体(python)をtextext公式サイトからダウンロードする。展開してtextext.pyとtextext.inxを".config/inkscape/extensions/"に移動します。
これでTeXの環境が整っていれば使用できます。
ただし、いちいち警告がでるのでここを参考にスクリプトを修正。
あとは"/usr/local/share/inkscape/keys/default.xml"の末尾のあたりに

<bind key="x" modifiers="Ctrl,Shift" action="org.ekips.filter.textext" display="true"/>
<bind key="X" modifiers="Ctrl,Shift" action="org.ekips.filter.textext" />

と書き加え、ショートカットキーを登録して完成です(ただしCtrl+Shift+xキーには元々xmlエディタみたいのが登録されてます)。

Ubuntu 9.04 で TeX

以下のパッケージをインストール。

# aptitude install latex-env-ja latex-extra-ja texlive-latex-extra

このままだとdvipdfmxがうまく動かない。

** WARNING ** Could not open config file "fontmapsx".
test.dvi -> test.pdf
[1kpathsea: Running mktexpk --mfmode / --bdpi 600 --mag 2+180/600 --dpi 1380 gbm-jis
mktexpk: don't know how to create bitmap font for gbm-jis.
kpathsea: Appending font creation commands to missfont.log.

** WARNING ** Could not locate a virtual/physical font for TFM "gbm-jis".
** WARNING ** >> There are no valid font mapping entry for this font.
** WARNING ** >> Font file name "gbm-jis" was assumed but failed to locate that font.
** ERROR ** Cannot proceed without .vf or "physical" font for PDF output...

難解なエラーが出ているが、リンクを貼り直すだけで直ります。

# ln -s /etc/texmf/dvipdfm /etc/texmf/dvipdfmx

2009年11月23日月曜日

Debian で USBオーディオ

Debian lenny LXDEの環境下での、USBオーディオデバイスをデフォルトサウンドカードとして利用する方法。

まず使用しているUSBオーディオデバイスの名前を確認。
# asoundconf list
これをデフォルトサウンドカードとして設定。
# asoundconf set-default-card hogehoge
これだけでは安定してUSBオーディオデバイスをデフォルトサウンドカードと認識しない(何度か再起動するとオンボードのサウンドカードになっていたりする)。そこでUSBオーディオデバイスを最初に認識するように以下の設定を/etc/modprobe.d/alsa-baseの最後の方に書き加える。
options snd-usb-audio index=0
もし"options snd-usb-audio"が既に記載されていたらindexの番号を0に変更する。ここで一度再起動、ログアウトした方がいい(読み込み順序、デフォルトカードの確認のため)。
この段階ではほとんどの音楽再生ソフトが動かなくなると思う。そこで変更の旨をALSAの設定ファイル"~/.asoundrc"に直接以下のように書き加える。
pcm.!default{
type hw
card 0
}

ctl.!default{
type hw
card 0
}
"card 0"という番号はAudaciousなどのメディアプレイヤで調べることができる(/proc/asound/modulesを見てもいい)。
Audacious起動->Preferences->Audio->Output Plugin Preferencesと辿り、Audio deviceのコンボボックスを展開し、USB Deviceの(hw:0,0)というところでカードの番号を確認できる(デフォルトサウンドカードをUSBオーディオデバイスに設定している場合はおそらく0になっているはず)。図のように他のオーディオデバイスが接続されている場合は(hw:1,0)、(hw:2,0)などと割り振られる。



再起動すればメディアプレイヤやflashで音声を再生できる。