ネットワークカードを交換したらeth0が使えなくなった時の対処法(Debian, Ubuntu)

Ubuntu 14.04とDebianの古いシステム(squeeze)のネットワークカードを変えたらeth0が上がってこなくなりました。
Intel純正のPCI-Eアダプタ(Intel GIGABIT CT DESKTOP ADAPTER)、オンボードのLAN(これもPCI-E接続のIntelチップ)共に上がってこないという状況でした。

つまり状況としては両OSとも

    lspci | grep Intel → PCI-Eアダプタ、オンボードのLAN共に認識されている
    lsmod | grep e1000e → loadされている
    /etc/network/interfaces → 特に問題なし

    ifconfig → loは出てくるがeth0が出てこない

という感じでした。

ググってみたら、MACアドレスとethxの対象関係は

    /etc/udev/rules.d/70-persistent-net.rules

に記述されていると分かりました。

なので、アナログな方法でネットワークカードのMACアドレスを調べて、NAME=”eth0″を付けるカードを指定し直すことで問題解決しました。
分かれば簡単でしたが、半日ほどハマりました。

参考URL:Ubuntuでネットワークカードを変更した時

NEC MultiWriter 5000N (Xerox Docuprint 2020、Brother HL-2170W) をLinuxでネットワーク上から使う

NEC MultiWriter 5000Nというモノクロレーザープリンタを、7,980円という値段に惹かれて買いました。モノクロながらレーザーかつネットワーク対応でこの値段とは驚きです。
買ったはいいのですが、Linuxで動かすのに苦労したので使用方法を書いておきます。ディストリはUbuntu 12.04 64bit (Precise Pangolin)です。CUPSの問題なので他ディストリでも同様に動くと思われます。

NEC MultiWriter 5000NはXerox Docuprint 2020やBrother HL-2170Wと製造元/構造が同じです。いわゆるOEMというやつです。なので同じドライバで動くようです。
設定は、http://localhost:631/からしました。他のGUIからやっても同様だと思われます。
予めCUPSやFoomatic (Linuxのプリンタドライバ集のようなもの)がインストールされていることを前提にします。

方法:

1. まず、Windows向け付属ソフトウェアでプリンタに固定IPアドレスを割り振る必要があります。Windows機にCDを入れて上手いこと固定IPにしてください。

2. プリンタの設定画面を開き、URLに以下を書きます。THE_PRINTER_IP はWindows機で設定したプリンタのIPアドレスです。

ipp://THE_PRINTER_IP/ipp/port1

3. メーカーは「Brother」を選択します。

4. 機種は「Brother HL-2170W Foomatic/hl1250」を選びます。recommendedなどは全て無視してください。

5. その他の設定を必要に応じてやります。

以上です。Linuxから使えなかったら買い直しだったので危ないところでした。と言っても7,980円ですけどね。

プリンタ購入/導入時の参考になれば幸いです。

参考:Tutorial on installing the Brother HL-2170W (and the HL-2140) printer with CUPS on Arch Linux.

OpenSSHを使ってRSA公開鍵認証なchroot付きSFTPサーバを立てる方法

簡単なように思えて,結構ハマったのでメモしておきます.
SSH サーバは既に稼働していることを前提に書きますので,SSH,SSHd の細かい設定は他サイト様に委ねます.

仕様および前提

sftpを許可するユーザ: ftpuser(シェルでのログイン不可)
ftpuserの所属グループ: ftpgroup
ftpuserのhome: /home/ftpuser
ftpuserに公開したいディレクトリ: /pass/to/chrooted

環境

$ lsb_release -drc
Description: Ubuntu 11.10
Release: 11.10
Codename: oneiric

$ uname -r
3.0.0-13-generic

$ ssh -v
OpenSSH_5.8p1 Debian-7ubuntu1, OpenSSL 1.0.0e 6 Sep 2011

まずサーバ側でftpgroup,ftpuser を作成します.

# groupadd ftpgroup
# useradd --create-home --home /home/ftpuser --shell /bin/false -g ftpgroup

確認

$ getent group | tail -n 1
ftpgroup:x:133:ftpuser

$ getent passwd | tail -n 1
ftpuser:x:1001:133::/home/ftpuser:/bin/false

/etc/group/etc/passwd を直接編集するという強行手段でも構わないのですが,ログオフが必要な上に結構危険です.
編集するにしても,vigrvipw という専用のコマンドがあります.

クライアント側でRSA鍵ペアを作成します.既に作成済みの場合,飛ばしてください.

$ ssh-keygen -t RSA -b 2048

できたら,エディタでもUSBメモリでもscp でも構わないので,クライアントの~/.ssh/id_rsa.pub をサーバの/home/ftpuser/.ssh/authorized_keys にコピーします. ((今回はPC1 -> PC2 へはssh可能,PC2 -> PC1 へはsftp のみ可能としたかったので,scp 使えるならsftp 要らないじゃん,というツッコミは無しで.))
通常のSSHと同じですね.
パーミッションは以下のように設定します.

/home                755   root:root (おそらくデフォルトでOK)
/home/ftpuser          755   root:root
/home/ftpuser/.ssh        700   ftpuser:ftpgroup
/home/ftpuser/authorized_keys  600   ftpuser:ftpgroup

処理系によっては,authorized_keys が700 の場合もあるようです.既にSSH ログイン可能なuser の/home/user/.ssh を確認してみてください.
ここで注意しなければならないのが,/home/ftpuser の所有者がroot だということです.とはいえ,ここまでは単にchown すればいいだけです.
問題はここからです. /passpass/to//pass/to/chrootedもそれぞれ所有者がroot かつ他ユーザの書き込み不可である必要があります.
「そうすべき」ではなく「そうする必要があります」.
これは,セキュリティの観点からルール化されたものです.詳しい背景はここに書いてあります
それじゃあ/pass/to/chrooted/media/hard_disk/ftp にしたいけど,/media/hard_disk の所有者は一般ユーザに残しておきたい・・・ということができないかというと,そんなことはありません.以下に方法例を書いておきます.と言ってもSimLink貼るだけです.

# cd /home/ftpuser
# ln -s /pass/to/chrooted ./
# chown root:root /pass/to/chrooted
# chmod 755 /pass/to/chrooted

/home/ftpuser の所有者はroot に設定してあるので,/pass/pass/to(あるいは/media/media/hard_disk)の所有者がroot である必要はなくなります.
また,/pass/to/chrooted の所有者はroot である必要があるのですが,/pass/to/chrooted/data の所有権はftpuser:ftpgroup で構いません.
普段使ってるユーザをftpgroup に加えておくか,/pass/to/chrooted/data のパーミッションを777 にでも設定すれば管理が楽でしょう.おそらく前者のほうがセキュリティ的には好ましいと思われます.

次に/etc/sshd_config をエディタで編集します

#AuthorizedKeysFile %h/.ssh/authorized_keys
AuthorizedKeysFile %h/.ssh/authorized_keys

#Subsystem sftp /usr/local/libexec/sftp-server
Subsystem sftp internal-sftp

# 最後の行に以下を追記.全角スペースは半角に変換
Match user ftpuser
 ChrootDirectory /home/ftpuser/chrooted
 AllowAgentForwarding no
 X11Forwarding no
 AllowTcpForwarding no
 ForceCommand internal-sftp

internal-sftp を使うのは,ftpuser はchroot をかけたディレクトリの外に出られないからです.
つまり,/usr/local/libexec/sftp-server にもアクセスできなくなるからです.

書けたら

/etc/init.d/ssh restart

クライアント側からサーバ(192.168.1.1)にアクセスしてみます.ssh -p-p はポートですが,sftpでは-P(大文字)です.

$ ssh -p 10000 ftpuser@192.168.1.1
Enter passphrase for key '/home/client_user/.ssh/id_rsa':
This service allows sftp connections only.
Connection to 192.168.1.1 closed.

$ sftp -P 10000 ftpuser@192.168.1.1
Enter passphrase for key '/home/client_user/.ssh/id_rsa':
Connected to 192.168.1.1.
sftp> exit

上手くいかなければssh -vsftp -v してみれば何か分かるかもしれません.
もう一度,所有権をまとめて書いておきます.

/home/ftpuser/:
drwxr-xr-x root:root .
drwxr-xr-x root:root ..
lrwxrwxrwx root:root share -> /pass/to/chrooted

/home/ftpuser/.ssh:
drwx------ ftpuser:ftpgroup .
-rw------- ftpuser:ftpgroup authorized_keys

/pass/to/chrooted
drwxr-xr-x root:root .
drwxrwxrwx ftpuser:ftpgroup data

nautilus のFile -> Connect to Server にでも登録しておくと便利かもしれません.

参考サイト
restrictive ssh problem (ForceCommand, ChrootDirectory): Write failed: Broken pipe
あるシステム管理者の日常: sftpとChrootDirectory(3)
 

Ubuntu 12.04 64bitでPT2を使う(Ubuntu 10.10〜12.04対応)

この記事は,あくまで技術上可能なことを一般論として説明したもので,PT2,カードリーダー,その他のハードウェアおよびソフトウェアの使用を推奨するものではありません.
また,この記事を読んだことにより読者に生じた一切の損害を管理人soraochiは負わないものとします.

話題にするには遅すぎる感はありますが,PT2 とB-CAS カード買ってきました.
B-CASカードのオマケでKTV-FSUSB2が付いてきましたが,これはまた今度改造します.

追記 KTV-FSUSB2(殻のほう)は友人にあげてしまいました


今回,PT2 をUbuntu 10.1011.10 64bit12.04 64bit で使ってみました.同様の記事が他ブログでも盛んに書かれていますが,中には怪しいものもあるような気がします ((あまり余所を批判したくないのですが,無条件にLNB電源をオンにすることを推奨するのは如何なものか)).
このブログも知識,手順,解決方法の面で怪しい点が多々あることは自覚しておりますが,ここはひとつ,先人の言葉を引用させていただき,開会の言葉とさせていただきます.

このページに存在するすべての間違いは、意図されていたかいなかったかに関わらず、読者のための練習問題もしくは冗談である

まずは環境紹介から.

マシンスペック

OS Ubuntu 11.10 64bit Ubuntu 12.04 64bit
CPU Core2Duo E8400
マザーボード GA-P35-DS3
ビデオカード GV-NX96T512HP

今回追加するハードウェア

主役 PT2 Rev.B
ICカードリーダー SCR3310-NTTCom (+青CAS)
予備のカードリーダー Reflex USB v2

ICカードリーダーを使えるようにしましょう.

sudo apt-get install libccid pcsc-tools libpcsclite-dev pcscd

B-CASカードの裏表に注意してください.B-CASカードの裏面が見えるように差し込むのが正解です.
これは,住基カード等では表面,B-CASカードでは裏面にICチップの接点があるのが原因だと考えられます.

できたら

sudo pcsc_scan

を実行してください.ズラズラと文字が出て,最後に

Japanese Chijou Digital B-CAS Card (pay TV)

が出たら上手くいってます.確認できたらCtrl+C で終了します.
もしマイナーなカードリーダーを使っていて,「Waiting for the first reader...」で止まってしまった場合はいるかのさんの記事を参考に/usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist を編集します.

編集したら

sudo /etc/init.d/pcscd restart

を忘れずに.

それでもダメな場合(うちがそうでした)諦めましょう・・・と言いたいところですが,昔アキバで100円で買ったカードリーダーReflex USB v2 があったので,試しに使ってみました.
買ってきたままの状態ではLinux 64bit では使えないので,ファームをアップデートしてやる必要がありました.ファームのアップデートはUbuntu 11.10 64bit からでも可能です.
Reflex v2購入->SCR331に書き換えてみるテストを参考にSCMのホームページからSCR331のファームをダウンロードして/home/user にでも展開します.ファームの当て方の例を書いておきます(バージョンによって違うと思う)

cd FWUpdate_SCR531_SCR331_linux_USB_V5.25
./install.sh
./fwupdate_v1.6

Browse からSCR531_V525.bin を選択.Reader はそれっぽいのを選択 -> Download

その後,Linux 64bit用ドライバをインストールします.ここからダウンロードできます.稀奇特にも同型のものをお持ちの場合ご利用ください.

SCMのカードリーダーは,カードが刺さった状態で正常動作しているとLEDが点滅するようです.LEDがつきっぱなしの場合,B25のデコードが上手く行かない可能性が高いです.
多くの場合,テスト録画の段階で気付くと考えられますので,対処法は後ほど書きます.

さて,次にARIB STD-B25 仕様確認テストプログラムをmake install します.
ttp://www.marumo.ne.jp/db2007_b.htm#25 から「ARIB STD-B25 仕様確認テストプログラム」の最新版をダウンロードしてコンパイルするのがスジですが,下記方法の方がmakefileが既に作られてるので楽です.
インストールされるバージョンも0.2.4 で同じですので,下記を薦めます.

sudo apt-get install build-essential
wget http://hg.honeyplanet.jp/pt1/archive/c44e16dbb0e2.zip
unzip c44e16dbb0e2.zip
cd pt1-c44e16dbb0e2/arib25
make
sudo make install

Ubuntu 11.10 ではカーネルのバージョンが異なるため,従来の方法ではchardev 版ドライバのコンパイルが通りません.また,recpt1 のBS新 チャンネルに対応させるため,sourceforge のepgrec 置き場からrecpt1 のtar.gz をダウンロードしましょう

(2011 年10 月にBS のチャンネルが再編成されました.詳しくはググってください).
2011年12月03日現在の最新版では,解凍するとディレクトリ「pt1-7662d0ecd74b」ができます.
Kernel3系だとdriverのコンパイルに失敗するため,パッチ済みのpt1_pci.c

も合わせてダウンロードしておきます.

$HOME に展開したと仮定すると

cd ~/pt1-7662d0ecd74b/recpt1
make
sudo make install
cd ../driver
make
sudo make install

これで/usr/local/bin/ にb25 およびrecpt1 がインストールされます.
PT2を刺すと,Ubuntu 10.10 からは標準ドライバ(DVB版)が使われるようになったそうです.詳しい方がDVB 版で試しているようですが

僕は成功例の多い「chardev版」を使いました.
Ubuntu 11.10 でも引き続き「chardev版」を使います.12.04でも同様にchardev版を使います。

/etc/modprobe.d/blacklist.confの最後の行にblacklist earth-pt1 を追記すればDVB版ドライバはロードされなくなります.

sudo apt-get install mercurial autoconf automake
hg clone http://hg.honeyplanet.jp/pt1 PT2
cd PT2/driver
make
sudo make install

ここで一回再起動します.既にPT2 を刺してるかたは,再起動でなく電源オフ→オンしたほうが良いです.僕はこれでハマりました.

PT2 が認識されているかは

$ lspci |grep Xilinx
06:01.0 Multimedia controller: Xilinx Corporation Device 222a (rev 01)

chardev版ドライバが使用されているかは

$ ls -lart /dev/ |grep pt1
crw-rw-rw- 1 root video 250, 3 2011-03-03 20:58 pt1video3
crw-rw-rw- 1 root video 250, 2 2011-03-03 20:58 pt1video2
crw-rw-rw- 1 root video 250, 1 2011-03-03 20:58 pt1video1
crw-rw-rw- 1 root video 250, 0 2011-03-03 20:58 pt1video0

で確認ができます.「$ ls /dev/dvb/」でadapter0〜3が出てくるときは,DVB版ドライバがロードされています.

インストールできたら

recpt1 --b25 --strip 22 30 test.ts

を試してみましょう.SSD を使ってる等の理由で,カレントディレクトリに大きなサイズのファイルを作りたくない場合,予め適宜cd してください.
東京タワーから受信している場合,TBS(22ch)が30 秒録画されるはずです.

totem test.ts

再生できたら成功です.画質がとんでもなくショボいときは,アンテナの接続を疑いましょう.ワンセグで録画されている可能性があります.

もし下記のようなエラーが出たら

Recording...
b25->put failed
b25_decode failed (code=-4). fall back to encrypted recording.

B25 のデコードができていません.どうやらOneiric(Ubuntu 11.10)のスマートカード周りにバグがあるみたいです.Marverick(10.10) のものなら正常動作する可能性があります.(参考)Ubuntu11.10 で録画用サーバ

/etc/apt/sources.listの末尾に

deb http://ftp.jaist.ac.jp/pub/Linux/ubuntu maverick main universe
deb-src http://ftp.jaist.ac.jp/pub/Linux/ubuntu maverick main universe
deb http://security.ubuntu.com/ubuntu maverick-security main universe
deb-src http://security.ubuntu.com/ubuntu maverick-security main universe

を追記後

sudo apt-get update
sudo apt-get remove pcscd libpcsclite-dev libpcsclite1 libccid libpcsc-perl pcsc-tools
sudo apt-get install pcscd=1.5.5-3ubuntu2.1 libpcsclite1=1.5.5-3ubuntu2.1 libccid=1.3.11-1

libpcsc-perl=1.4.8-1pcsc-tools=1.4.16-1 は,依存関係を解消できないらしく,簡単にはインストールできませんでした.

The following packages have unmet dependencies:
libpcsc-perl : Depends: perlapi-5.10.0

libpcsc-perl=1.4.8-1pcsc-tools=1.4.16-1 のLucid のdeb パッケージを拾ってきてインストールすると,動くには動くんですが依存関係が壊れてapt に叱られます.
それでは元も子もないので,次の方法を使いました.ただし,かなりゴリ押しな上に,メンテナに検証されていない組み合わせなのでお薦めはしません.

pcscd,libpcsclite1,libccidを,インストールしたバージョン(pcscd=1.5.5-3ubuntu2.1 libpcsclite1=1.5.5-3ubuntu2.1 libccid=1.3.11-1)で固定する.apt-get ならhold,Synaptic ならPackage -> Force version

apt-get install pcsc-tools=1.4.16-1

依存関係からlibpcsc-perl=1.4.12-1build1 がインストールされる

pcsc-tools とlibpcsc-perl のバージョンを固定する

ここで何をしているのかもう少し詳しく説明します.
まず,libpcsc-perl=1.4.8-1perlapi-5.10.0 に依存していて,pcsc-tools=1.4.16-1libpcsc-perl に依存しています.
Ubuntu 11.10 のperl5.12.4-4 なので,perl のバージョンを落とすという吹っ飛んだことをしない限りはlibpcsc-perl=1.4.8-1 はインストールできません.
しかし,pcsc-tools=1.4.16-1libpcsc-perl に依存しているにすぎず,libpcsc-perl=1.4.8-1 である必要は,少なくとも依存関係の上ではありません
ということで,libpcsc-perl のみをOneiric,他をMaverick でインストールするというゴリ押しをしたのでした.

以上の作業が終わったら,追加したmaverickのapt-lines はコメントアウトします.

次にepgrec

を使えるようにします.epgrec は,PHP で書かれた録画予約システムです.動かすには,PHP+Apache+MySQL が必要です.

sudo apt-get install apache2 php5 libapache2-mod-php5 php5-cli mysql-server php5-mysql

入っていなかった場合,インストールしたら念のため再起動しておいてください.
これでApacheがインストールされるのですが,もしセキュリティ的に気になるようであれば,/etc/apache2/apache2.conf,あるいは/etc/apache2/httpd.confにLocalからしかアクセスできない設定を記述してください.(まあ,ポートが野放しにでもなってない限り,外部からはアクセスできないと思いますが)

また,epgrec は「epgdumpr2」にも依存しています.epgdumpr2 は,「インストール前の準備」からepgdumpr2-utf8.tar.gz,あるいはepgdumpr2.tar.gzをダウンロードし,以下のようにインストールします.
epgrec およびepgdumpr2 はsourceforgeから最新版をダウンロードし,解凍しておきます.

cd epgdumpr2
make
sudo cp epgdump /usr/local/bin

test.tsのあるディレクトリで,$ epgdump test test.ts - | less を実行してズラーッっと番組名っぽいのが出てきたら成功です.

$ at を実行して The program 'at' is currently not installed が出てきたら,aptから入れてください.
また,上記サイト記載のとおり,apache2 からat を実行できるようにしておきます.

引用:

/etc/at.denyの設定
epgrecはWebサーバーのユーザーアカウント(Debian/Ubuntuはwww-data、RedHat?系ではapache)でatコマンドを実行しますが、セキュリティ上の配慮からatの使用禁止ユーザーリスト/etc/at.denyに、Webサーバーのアカウントが設定されている場合があります。
管理権限(root)で/etc/at.denyを開き、www-dataやapacheといった、Webサーバーのアカウントが含まれていないか調べ、含まれていたら、その行を必ず削除してください。

/etc/passwdの確認
一部のディストリビューションでは、セキュリティ上の配慮からWebサーバーのアカウントにnologin(ログイン不可)が設定されています。nologinのアカウントではatコマンドも利用できず、epgrecによる録画予約が機能しません。 rootアカウントで/etc/passwdを開き、Webサーバーのアカウント(apacheなど)のエントリを調べ、シェルの設定が/sbin/nologinに設定されているようなら、/bin/shに変更しておきましょう。

apache:x:48:48:Apache:/var/www:/sbin/nologin
↓下記のように変更
apache:x:48:48:Apache:/var/www:/bin/sh

以上の設定をしっかりと行っておかないと、録画予約に失敗します。

MySQLで,必要なテーブルを作っておきます.
この操作では,特段MySQLの設定をしていない場合MySQL のroot 権限が必要ですが,Ubuntu のroot 権限は要しません

mysql -u root -p

create database epg;
grant all privileges on *.* to [username]@localhost identified by '[Password]';
exit

username,password,データベース名(例ではepg)は,なんでも構いません.
よく分からなくなってしまったら,PHP もインストールしたことですし,PHPMyAdmin 使うといいです.

epgrec を

sourceforgeのreleaseページからダウンロードして展開,設定します.

tar zxvf epgrec-20100322.tar.gz -C /var/www/
cd /var/www/epgrec
cp config.php.sample config.php
cp do-record.sh.pt1 do-record.sh
gedit /var/www/epgrec/config.php

エディタでconfig.php 内のチャンネルマッピングを設定します.
物理チャンネルは,どの中継局から電波を取っているか(あるいはCATVのパススルーか,トランスモジュレーションか,集合住宅の場合U-U 変換,U-V 変換をしていないかetc・・・)によって異なります.東京タワーから電波を取っている場合,このページ記載の通りです物理チャンネルは,地上波デジタル/地上波アナログの場合,13ch〜62ch の間で設定されるチャンネルであり,リモコンのチャンネルとは一般に異なります.

設定できたら,ホームディレクトリ(あるいは大きいファイルが生成されても構わないディレクトリ)に移動し

OUTPUT=test.ts CHANNEL=22 DURATION=30 TUNER=0 MODE=0 TYPE=GR /var/www/epgrec/do-record.sh

を実行します.チャンネルは適宜変えてください.東京タワーから電波を取っている場合,上記コマンドでTBS が30 秒録画されたら成功です.上手くいかなければ,TUNER の番号(0〜3)を変えてみてください.
うまくいったら,http://localhost/epgrec/にアクセスします.言われるがままに設定してください.データベース名,パスワードはさっき設定したやつです.
もしなんらかの理由(SSD を使っている,他の大容量HDD に保存したい・・・等)で/var/www/epgrec/video/以下に録画したデータを直接置きたくない場合,この設定で相対パスを書いてもいいんですが,SimLink 貼っておくんでも大丈夫です.

ちゃんと設定したはずなのにEPG を受信できないチャンネルがある場合,電波の受信状態を確認してください.確認後,http://localhost/epgrec/getepg.phpにアクセスし,正常に取得できていればOKです.僕はここでハマりましたが,結局,分配器がショボかったのが原因でした.(分配器くらいケチらずいいものを買いましょう.あと,タコ足するならブースター付けましょう)

EPGを常に最新に保っておきたい場合,cronの設定が必要です.僕はいまのところ設定してません.必要になったらやればいいと考えてます.

EPG の自動更新は,例えば以下のように設定します.この場合,午前4時30分に更新されます.

crontab -e
30 4 * * * /var/www/epgrec/getepg.php

権限の与え方にもよるのですが,

sudo su
sudo www-data

を実行してからのほうが良いかもしれません.

あとはhttp://localhost/epgrec/にアクセスして録画予約するだけです.

・・・Ubuntu 10.10 よりはハードルが上がりましたが,できないことはないです.

参考URL
Ubuntu10.10を使って快適な地デジ録画環境を作る①〜④
epgrecのインストールと設定

追記(2012-05-05) カーネルのバージョンが変わったときは,ドライバの再インストールが必要です.aptからカーネルをアップデートした際にも必要です.

cd ~/pt1-7662d0ecd74b/driver
make
sudo make install

2011年3月  10.10版公開
2011年12月  11.10向けに全面改訂
2012年09月  12.04で動作確認.少しだけ改訂

“Adobe Flash Player Setting”に対してクリックが効かなくなった時の対処法

Ubuntu 64-bit + Firefox3.6を使っております.
Cookieの要求などで,”Adobe Flash Player Setting”が出てもクリックが効かず,かといって押せないとFlashが使えなくなるという地味に痛い不具合に当たりました.

[ubuntu] no reaction when I click on the “Adobe Flash Player Setting” panel
これと同じ状況です.しかし上記フォーラムにある通りの方法で解決いたしました.すなわち,Flash Player Helpで設定すれば,”Adobe Flash Player Setting”で設定したのと同様の効果を得られるようです.

根本的解決は成されておりませんが,僕の環境では表題の件は解決いたしました.

Ubuntu10.10(maverick)+Wacomタブレット+2画面でタカミンお絵描きチャット

表題の方法を書いておきます.

僕の環境は下記の通りです


・Ubuntu 10.10
・Wacom Bamboo Comic CTE-650
・1680x1050の液晶2台

問題は大きく分けて2つあります.

・FirefoxでJavaアプレットが使えない
・タブレットをUSBに繋いだだけの状態では,2画面に対してペンタブ1台がマッピングされていて,実質利用できる領域が狭い上にアスペクト比がおかしい

まずはFirefoxでJavaアプレットを使えるようにしましょう.


sudo add-apt-repository 'deb http://archive.canonical.com/ maverick partner'
sudo apt-get update
sudo apt-get install sun-java6-jdk sun-java6-plugin

通常使うJavaがOpenJDKになっている可能性があるので


sudo update-alternatives --config java

で,sun-javaを選びます.sun-javaのみがインストールされている場合は,次のようなメッセージが出るので次に進んでOKです.


There is only one alternative in link group java: /usr/lib/jvm/java-6-sun/jre/bin/java
Nothing to configure.

デフォルトだと,Firefoxのjavaへのパスが/usr/javaとなっているので,/usr/bin/javaに直します.Firefoxを開き,アドレスバーにabout:configと入力します.検索バーに/usr/javaと入力し,/usr/bin/javaに書き換え,Firefoxを再起動すればOKです.

次にタブレットの問題です.この方法で解決できます
日本語訳しときます(Bamboo Comic向けにソラオチが加筆修正しています)


Wacomのタブレットは今までHAL FDIで設定されてきたが,LucidからはHALが使われなくなったので,どうやって適切に設定すればいいのか私には分からないです.
でも,デフォルトのXOrg configを使ってる人なら,プライマリディスプレイだけでWacomタブレットを使うハックがあるよ.
これはあくまでBamboo Comic(注1)での例なので,自分のタブレットに合わせた設定を,コマンドを実行して探してください.

まず自分のタブレットの名前を調べます.STYLUSが含まれてる行を探しましょう.

$ xsetwacom --list -v
... Display is '(null)'.
... 'list' requested.
... Found device 'Virtual core XTEST pointer' (4).
... Found device 'Virtual core XTEST keyboard' (5).
... Found device 'Power Button' (6).
... Found device 'Power Button' (7).
... Found device 'Eleen USB Device' (8).
... Found device 'Wacom BambooFun 6x8 eraser' (9).
Wacom BambooFun 6x8 eraser ERASER
... Found device 'Wacom BambooFun 6x8 cursor' (10).
Wacom BambooFun 6x8 cursor CURSOR
... Found device 'Wacom BambooFun 6x8 pad' (11).
Wacom BambooFun 6x8 pad PAD
... Found device 'Wacom BambooFun 6x8 stylus' (12).
Wacom BambooFun 6x8 stylus STYLUS
... Found device 'Microsoft Microsoft 5-Button Mouse with IntelliEye(TM)' (13).

上の例だと「Wacom BambooFun 6x8 stylus」です.

次にタブレットのX軸解像度TXを調べます.

$ xsetwacom --get "Wacom BambooFun 6x8 stylus" BottomX
43296

この場合TX=43296です.次に,仮想デスクトップの解像度WXを調べます.

$ xsetwacom --get "Wacom BambooFun 6x8 stylus" SBottomX0
3360

この場合WX=3360です.液晶の解像度が一枚あたり1680x1050なので,1680*2の値と等しくなっています.
最後に,プライマリディスプレイのX軸解像度をSXとおきます(うちの場合SX=1680).

今回紹介するハックでは,タブレットのX軸解像度をTXを実際より大きく設定します.こうすることで,セカンドモニタを領域外に割り当てます.
まず,AX = TX * (WX / SX)という関係式からAXを求めます(うちの場合AX = 43296 * (3360 / 1680) = 86592 ).
もしカーソルがセカンドディスプレイの左側1ピクセルに飛ぶのを止めたいなら,少しAXを小さめに設定するといいですが,あくまで好みの問題です.
とにかく,AXを決めたら

$ xsetwacom --set "Wacom BambooFun 6x8 stylus" BottomX 86592

のようにタブレットのX軸解像度を設定します.

もし必要なら,Y軸についても同様に設定します.
このコマンドは再起動の度に実行する必要があるので,スクリプト(例えば~/.bashrc)に記述しておく必要があります.
定石としてはDeviceKit Rule(注2)で自動的に実行するのがいいのですが,そうしませんでした.

--------------------

注1:原文ではBamboo1という機種について書かれている

注2:/usr/share/X11/xorg.conf.d/50-wacom.conf あたりのことと思われる./usr/share/X11/xorg.conf.d/50-wacom.conf に記述する方法も別のフォーラムに書いてあったのですが,Ubuntu 10.10では上手く動かないようです.

以上で,タブレットの有効範囲をプライマリディスプレイのみにすることができます.

無事,takaminでお絵かきできるようになりました.

参考URL
[SOLVED] Configuring Xorg for dual screen, single wacom

ubuntu10.4でsun-javaを使う。Javaアプレットを見れるようにする。

Ubuntu Firefoxでアプレットを起動するとクラッシュ

Ubuntu10.10でVMware Playerが動かないときの対処法

見事に引っかかったのでメモしておきます.VMware Workstationについても同様かと思われます.

[Ubuntu][PC]VMwarePlayerが起動しない on Ubuntu 10.10

Ubuntu 10.10 and VMware Player 3.1

リンク先のスクリプトを回せば良いのですが,su,あるいはsudoを必要とするので自己責任でお願いします.
build-essentialが入っているかを確認しましょう.dist-upgrade時に消えてしまったのか,僕はこれでしばらく迷いました.

Ubuntu 10.04上でWindowsXPを動かす(仮想化)

仮想化ブームも一段落ついたところで,仮想化を試してみました.
理由は単純で,Windowsバイナリを動かせる環境が欲しかったからです.Wineによるエミュレーションも(期待度の割には)あまり良くないですし.

環境

ホストOS:Ubuntu 10.04
ゲストOS:Windows XP
CPU:E8400
グラボ:GeForce 9600GT
SSD:Intel X25-V

以下の3つを試しました

・KVM + qemu
・VirtualBOX
・VMware Player

KVM+qemu
重い.ひたすら重い.Linux上でLinuxを扱うのは速いのかもしれませんが(未検証),今回の目的では使い物になりませんでした.残念!

VirtualBOX
オープンソースなので使ってる人が多いと思われる.インターフェースも分かりやすいし挙動も素直だし,なかなか良い.
ただ,後述のVMware Playerのほうが速かった.

VMware Player
かなり古くからある商用ソフトウェア.VMware Playerは無償だが,VMware Workstationなどの有償版も提供されている.お値段は2万円から.高いのか安いのかは,僕には判断がつかない.
今回は無償版のVMware Playerを使った.機能,性能ともに十分すぎる.Windowsインストール時の煩わしい設定も勝手にやっておいてくれる.
aptから拾えなかったり,ネットワークドライブが勝手に無効になったり怪しい点もあるが,この3つの中では一番良いと僕は思う.

まとめ:

HD動画くらいなら概ね再生できます.ただ,DirectX系のアプリやゲームは,ほぼ動かないです.

時間の許す限り,自分で色々試してみるのが一番の解決策ですね.

OpenOffice.orgでLaTeXライクな数式を書く(Ubuntu 10.04版)

2009年に同様の記事を書きましたが,前回の方法ではepsが使用できなくなってしまったので書き直します.

インストールに成功した環境:Ubuntu 10.04 64bit

まずaptからインストールできるものを取ってきます

sudo apt-get install texlive imagemagick epstool

フォントをインストール


mkdir OOoLatexFonts
cd OOoLatexFonts
wget http://mesh.dl.sourceforge.net/sourceforge/ooolatex/OOoLatexFonts.zip
unzip OOoLatexFonts.zip
cd ..
sudo mv OOoLatexFonts /usr/share/fonts/truetype/.
sudo fc-cache -f /usr/share/fonts/truetype

eps関係のものをインストールする.適宜ここからダウンロードしてください.64 bit linuxの場合でも,latex2emf_Linux_i386_binary.tar.gzでOKです.


tar -xzvf latex2emf_Linux_i386_binary.tar.gz
cd latex2emf_Linux_i386_binary/
sudo ./install.sh

次にOOoLatex本体をインストールします.OOoLatex本体はここからダウンロードしてください
インストール方法は

Tools > Extension Manager > Add > Select the oxt file you’ve downloaded

です.日本語ローカライズされたOOoを使ってる方は・・・同様だと思います,たぶん.

・・・Ubuntu9.04(Jaunty)まででしたらこれで使えるようになるのですが,epsを生成しようとすると「script error : the postscript file was not converted to emf」とエラーが出てしまいます.
これは9.04(Jaunty)までは存在していた「libstdc++5」が,Karmic以降には「libstdc++6」になったことに起因する問題です.
universeからJauntyのlibstdc++5を拾ってきてインストールすればこれまでのように使えます.

下記リンクは64bit版のものです.アーキテクチャが違う場合,ここからダウンロードして差し替えてください


wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-3.3/libstdc++5_3.3.6-17ubuntu1_amd64.deb
sudo dpkg -i libstdc++5_3.3.6-17ubuntu1_amd64.deb

64bit版を使っている場合,32bit版のlibstdc++5もインストールしなければなりません.

wget http://security.ubuntu.com/ubuntu/pool/universe/i/ia32-libs/ia32-libs_2.7ubuntu6.1_amd64.deb
dpkg-deb -x ia32-libs_2.7ubuntu6.1_amd64.deb ia32-libs
sudo cp ia32-libs/usr/lib32/libstdc++.so.5.0.7 /usr/lib32/

長くなりましたが,以上で使えるようになります.

2010-09-23 追記
一つ忘れてました.上記実行したあと,次のコードも必要です.

cd /usr/lib32/
sudo ln -s libstdc++.so.5.0.7 libstdc++.so.5

2010-11-21 追記
Ubuntu 10.10でも動作を確認しました.

参考:
Install libstdc++.so.5 on Ubuntu 10.04 or 9.10

Fluxboxを使ってみた

Gnomeが重いのでFluxboxにしました.色々カスタマイズしたので,やってみたことを書いておきます.

・Why Fluxbox?
1 : 軽い
Gnome使うより,全体的に動作が軽くなります.Firefoxも軽くなります.
2 : 強力なカスタマイズ機能
細かいとこまで設定できます.
さらに,設定は~/.fluxbox以下に入っているので,USBメモリに突っ込んで展開するだけで出先でも見慣れたUIを使うことができます.

・soraochiの環境
Ubuntu 10.04

・使うための準備


sudo apt-get install fluxbox eterm fbsetbg

etermとfbsetbgは壁紙を設定するのに必要です.fluxconftというGUI設定ツールもあるんですが,使い勝手が悪いので僕は使ってないです.

・まずやっておくと便利なこと
~/.fluxbox/startupを開いて,exec fluxboxの前に


xset mouse 2.0 2.0 &
numlockx &

と書いておく.xset mouseはマウスの速度ですので適宜値を変更してください.numlockxは,NumLockをオンにするコマンドです.
つまり,~/.fluxbox/startupはfluxboxを起動する前にシェルで実行するコマンド群です

・Theme
このへんに色々あります.再起動やログオフなど面倒な作業なく変えられるので便利です

・外観
メニューバーが大抵文字化けするので,拾ってきたThemeのmenu.cfgの一番下に

toolbar.font: 好きなフォント名-12
menu.title.font: 好きなフォント名-12
menu.frame.font: 好きなフォント名-12
window.font: 好きなフォント名-12
menuFont: 好きなフォント名-12
titleFont: 好きなフォント名-12

と書いておくといいです.ついでに

toolbar.height: 20

も入れておくと見やすいです.

・右クリックのメニュー
デフォルトだととてつもなく使いづらいので,カスタマイズ必須です.

まず
cat ~/.fluxbox/menu

[begin] (fluxbox)
[include] (~/.fluxbox/mymenu)
[end]

とします.

~/.fluxbox/mymenuの上の方によく使うアプリケーションを書いておきましょう

For example:

[exec] (bash) { x-terminal-emulator -T "Bash" -e /bin/bash --login}
[exec] (Firefox) {/usr/bin/firefox}
[exec] (gedit) {/usr/bin/gedit}
[exec] (GNOME system monitor) {/usr/bin/gnome-system-monitor} <>
[exec] (X Chat) {/usr/bin/xchat}
[exec] (Pidgin) {/usr/bin/pidgin}
[exec] (Nautilus) {/usr/bin/nautilus --no-desktop --browser }
[wallpapermenu] (~/.fluxbox/wallpapers/) {fbsetbg -a}

[wallpapermenu]の項目を入れておくと,~/.fluxbox/wallpapers/以下の画像ファイルがメニューに現れ,クリックすると壁紙にできるようになります.

・ショートカット
ショートカットキーを追加する方法です.

~/.fluxbox/wallpapers/keysの下の方に

Mod4 E : Exec nautilus --no-desktop --browser
Control Shift Escape : Exec gnome-system-monitor
Mod4 X : Exec gnome-terminal

で,Win + Eでnautilis,Control + Shift + Escapeでgnome-system-monitor,Win + Xでbashが立ち上がるようにできます.

・総評
常用するつもりは全くなく,お遊びのつもりではじめたのですが,使っているうちにGnomeに戻す気がなくなりました.
おすすめ.