掲示板お問い合わせランダムジャンプ



この広告は30日以上更新がないブログに表示されております。 新しい記事を書くことで広告を消すことができます。

別のblogとか

2010年09月30日
デュアルブートとcoLinux(続き)
この記事はLinuxから書いています。

coLinux側からのグラフィカル環境、うまくいきました。
Cygwin Xを
X :1 -multiwindow
で起動するようにして(:0だとなぜか起動しなかった)、PuTTYからX11 forwardingの設定を「localhost:1.0」にするようにして、そのあと.bashrcにこう書き足しておきます。
if [ -e /var/local/colinux ]; then
export DISPLAY=localhost:10.0
fi
先日作ったinit.dの設定ファイルで、coLinuxでの起動時だけ/var/local/colinuxファイルが生成されるようになっていることが前提です。
coLinuxをサービス(遅延開始)に登録して、Cygwin Xをスタートアップに登録したので、多少やりやすく。

それと、/etc/udev/rules.d/70-persistent-net.rules 問題が再発しました。
一旦単体起動すると勝手に設定されてしまうので(書き込みパーミッションを外してあるのに)、/etc/init.d/colinux を /etc/init.d/boot.d内にシンボリックリンクを張った上、そこでcoLinux起動時に
rm -f /etc/udev/rules.d/70-persistent-net.rules
するようにしてみました。

それと、Linuxに入っている方のVLCメディアプレイヤーにprojectMという可視化プラグインを導入しました。でもやり方が「MandrivaからRPMを持ち込む」という外道な方法。
vlc-plugin-projectmlibprojectm2libprojectm-dataを強行インストールしてやればできたのですが、VLC側をちょっと設定してやる必要がありました。

ところでVLCメディアプレイヤーはサウンドフォントさえ指定してやればfluidsynthでMIDIも再生できるのですが、どうもうちのLinux環境ではメモリリークしているようなのです。(MIDIを開くごとにサウンドフォントも開いていて、前のsf2を解放していない?)
[ 投稿者:芙蓉美晴 (MihailJP) at 20:29 | Linux | コメント(0) | トラックバック(0) ]

2010年09月28日
デュアルブートとcoLinuxの併用環境の構築
この記事はLinuxから書いています。

先週末にフラットLANケーブルの長いやつ(10mのが2本と延長コネクタ)を買ってきたので、前々からやりたいと思っていたデュアルブートにしてみました。10mのが2本だと余りすぎましたが。
なぜLANケーブルを買わないとダメだったのかというと、なぜか無線LANがLinuxでうまく作動しなかったからです。フラットケーブルなのはドア2枚越しの接続だったため。せっかくなのでcoLinuxと併用すること前提で。

当初はubuntuでいこうと思っていたのですが、
init: plymouth main process killed by SEGV signal
と言われてハマったので止めました。ランレベルで解決しようとしたのですがこれも失敗。と言うかubuntuのランレベルってランレベル以外の何かなんですね。
次の候補としてFedoraも考えたのですが、いざインストールしようとすると画面が乱れる。後で知ったんですがこれはドライバが入っていないからで、nomodesetをつけて起動すればうまくいくんですね(うちのグラボはGeForce GT 240)。この時はそんなこと知らなかったのでFedoraも諦めて次の候補を探したのでした。
ランレベルがうまく働かないDebian系はボツ。RPMパッケージを使うものでデスクトップ環境がKDEのもの(この辺は私の好みもある)を、という条件で探してきたのがopenSUSEというやつでした(一応FedoraもKDE spinというライブCD兼インストーラーがある)。

CDイメージを焼いてインストール…なのですが、そのまま普通にやるとやっぱり画面が乱れるので、いろいろ試したんですが画面下の「カーネル」を「安全設定」に変更するとうまくいったのでその設定でインストール開始。
途中タイムゾーンを聞かれるときに時刻がおかしいのは気にしなくていいようです。後はパーティションの自動設定で変な事言われたので手動設定したのと、GRUBの設定を修正したぐらい。
インストールが終わると再起動のあと自動設定が始まるのですがここでまた画面が乱れる。一旦リセットを押した後GRUBのメニューからFailsafeを選択すると正常に続行できました。ただ、この時設定終了後にコンソールに落ちてしまったのでrootでログインしてyastでアップデートをかけました。

自動設定が終わるとyastでアップデートをするわけですが、その前にすることはリポジトリの追加。yastのメニューからできるのですが、最優先で追加するのはコミュニティーリポジトリの「NVIDIA Repository」です。これを追加して自動更新設定に。するとyastが勝手に認識してくれるのでそのままインストール。
これで、普通に起動しても画面が乱れなくなったし、Konsoleの半透明設定も使えるようになりました。
ほかはopenSUSEビルドサービスとか、メインのうちContribのリポジトリを追加したり、これらのどこにも入っていなかった新しいバージョンのntfsprogsとntfs-3gの所在を探して設定(Factoryの別々のミラーにあった)。ntfsprogsはバージョン2.0.0で書き込みにも正式対応したとのことなので、どうしても欲しかったんです。

設定する項目はほかにも、KDE設定メニューからマルチメディアの設定でUSBサウンドポートを優先するように設定したり(オンボードのサウンド機能はBIOSで切り離してある)。あとはKonversation(IRCクライアント)の設定、Firefoxの設定、その他よく使うソフトウェアの設定。この機会に「Firefox Sync」というアドオンを入れてブックマークをWindowsとLinuxで同期できるようにしました。
ほかに入れたソフトはKeePassというパスワード管理ツールと、Timidity(ソフトウェアMIDIシンセ)とVLCクライアントですね。ほかはTwitterクライアントですが、これは「P3:PeraPeraPrv」というJavaで動くやつを使っています。
ネイティブLinux側の設定はこのぐらい。

で、coLinuxの設定ですが、ランレベル3なのに当初なぜか起動が詰まっていたので、どこで詰まったのかよく分からなかったのですが、なぜかconfirmオプションをつけて起動すると正常に起動したので、何があったのか詳しく調べてきました。/etc/init.d/bootの途中で止まっていたのですが、どこで止まっていたかというと
exec 0<> $CONSOLE 1>&0 2>&0
というところで止まっていました。
ここに載っている記述を参考にして、coLinuxの設定でCOLINUX=1をつけて起動するようにし、/etc/init.d/bootもこの様に書き換えます。
if [[ ! $COLINUX ]] ; then
exec 0<> $CONSOLE 1>&0 2>&0
fi
さらに、/etc/init.d/colinuxというファイルを作り、rc[1235S].dにシンボリックリンクを張ります。chmod +xするのを忘れないように。
#!/bin/sh
#
### BEGIN INIT INFO
# Provides: colinux
# Required-Start:
# Required-Stop:
# Default-Start: 1 2 3 5 S
# Default-Stop: 0 6
# Description: coLinux-related configuration
### END INIT INFO


if [[ $COLINUX ]]; then
SUFFIX=colinux
touch /var/local/colinux
else
SUFFIX=direct
rm -f /var/local/colinux
fi

#for conf_file in \
#"/etc/network/interfaces" \
#; do
# cp -f $conf_file-$SUFFIX $conf-file
#done

: exit 0
後半ではcoLinux用と単体起動用の設定を入れ替えるような処理ですが、結局必要なかったのでコメントアウトしています。
また、/var/local/colinuxというファイルの有無で、coLinuxか単体起動かが区別出来るようにしています。でも/var/localがなぜか無かったのでsudo mkdirすることに。

これからの課題はVNCとかCygwin Xとかを使ってcoLinux側のグラフィカル環境を構築することです。

(15:43頃追記) coLinuxで起動すると勝手にeth0をeth1に変更される(そしてcoLinuxからネットにつながらなくなる)問題が発生していましたが、/etc/udev/rules.d/70-persistent-net.rulesの中身を削除すると解決しました。
[ 投稿者:芙蓉美晴 (MihailJP) at 13:13 | Linux | コメント(0) | トラックバック(0) ]