goo blog サービス終了のお知らせ 
goo

音が出ない・・・。

2006-04-24 01:33:00 | Gentoo...
現在ALSAと格闘中。

やっぱり音がでないとさびしいということで、音を出したいわけですが、さっぱり音が出てくれない。
Gentoo Linux ALSAガイドの通りにやっているはずなのになぁ。

なんか音を出すためだけに数十時間使っていて(誇張でもなく、実際に。今日だけでも6~7時間はいじったり調べたりしてるし。)、しかもそれでなお出せていないから、さすがに嫌になってくる。

どうやら、使っているパソコンのサウンドカード(と言ってしまって良いのかはよく分からないけれど)は、オンボードのもので、
# lspci |grep audio
00:1f.5 Multimedia audio controller: Intel Corporation 828011EB/ER (ICH5/ICH5R) AC'97 Audio Controller (rev 02)
っていう感じなんですね。
同じものを使っている人がやっぱりいて、そのひとたちは普通にsnd_intel8x0というモジュールをを使ってうまくいっているみたいなんですが・・・

カーネルも何度か再構築したりしたんですよ。
Gentoo-sourcesの最新のもの(2.6.16-r3)にして、必要なモジュールも入れたはず。
# lsmod

 Modules           Size   Used by
snd_intel8x0 29252 -
snd_ac97_codec 91208 -
snd_ac97_bus 1640 -
wacom 14920 -


と、ちゃんと読み込まれてるしなぁ・・・

alsaconfがちゃんと動かなかったりしたんですが、これはモジュールとしてでなく組み込みでカーネルをコンパイルしちゃったからで、モジュールとしてやればちゃんと動く感じ。
ここもでちゃんと検出されていて、(ただし、他のlegacyっていうのも検出されている・・・?)うまくいっているはず、、、

alsamixerをするとなぜかMasterのところは音量があげられないんだけれど、MasterMonoというところは音量があげられて、他もあげられるところはあげたんだけれど、反応なし、、、
ここらへんをどう対処したらいいものかもよく分からない・・・

/var/log/kern.logとかを見てみると、(いまだにlogの見方がよく分からない^^;)4月23日(つまり今日)の17:55の起動では
ALSA device list:

 #0: Intel ICH5 with CM19739 at 0xf4181000. irp 16


てなっているかと思えば、4月23日(だから今日)の18:04以降の起動では
ALSA device list:

 No soundcards found.


とかってなっるし。
う~ん、、、いずれにしろ音は出ていないんだけど(^^;

気になったのでもう一度再起動、、、やっぱり

 No soundcars found.


になってる。
(けど、ALSAはちゃんと動いた?起動スクリプト?の出力では、たしかに[OK]ってな表示が・・・?

まったく意味不明なんだけれど、考えられる原因として、スピーカーがUSBスピーカーだということ。
サウンドの仕組みがよくわかっていないんだけど、そこにちゃんと出力が回されていないとかっていうのはないのかなぁ・・・
ただ、普通のスピーカー端子にヘッドホンをつないで試してもやっぱり音が出ないから、それが原因だとは考えづらいというのも・・・

誰かアドバイスを、、、

goo | コメント ( 0 ) | トラックバック ( 0 )

すけすけ。

2006-04-15 14:21:00 | Gentoo...
背景の透過について。

タイトルが微妙にエロい(^^;
まぁ、それはおいといて、Gentoo(というかX)で背景を透過させる方法について。

ウィンドウマネージャのサイトとか見てるとかっこいいスクリーンショットがたくさんあって、特に目をみはるのが、背景が透き通って見える(=ウィンドウが(半)透明になっている)スクリーンショット。
こいつを実現してみたいなぁ、と思うわけです。

ちなみにそういうのを行っていないデフォルトの状態は、例えばこんな感じ
志摩子さんがいたりするけど、気にしないw

背景を透過させるのによく使われるのは、atermやeterm、あるいはmltermといったターミナル。
つまり、個々のアプリケーションレベルでしかそういったのは実現されていないんですよねぇ。
ついでに言うと、あくまでも「背景」(=壁紙、Mac風ならデスクトップピクチャ)を透過させるので、そうでないアプリケーションといっしょに使うと変な感じに・・・
mltermを使って背景を透過させたのがこんな感じ
下になっているウィンドウの文字は表示されないし、透過されていないFirefoxは変な感じになってしまっていますね。

なお、自分は壁紙をImageMagikのdisplayコマンドを使って設定しているのですが、この場合mltermを単に動かして設定するだけだとちゃんと背景が透過されない・・・(xsetrootで設定されたものが背景とみなされてしまう)
これを解決するのにすごい時間がかかりました。
なにやらxsetptransというのをバックグラウンドで動かしている必要があるっぽいです。
上のサイトからtarボールを落としてきて、
# tar zxvf xsetptrans*.tar.gz
# cd xsetptrans*/
# make
# cp xsetptrans /usr/local/bin
(※*はバージョンとか。あと、/usr/local/binはただここをインストール先にしただけ。)
とかって手動でインストールして、.xinitrcにでも
xsetptrans &
というのを入れておけばOK。

閑話休題。
で、実はさっきのみたいな「擬似的な」(半)透明でなく、「本当に」(半)透明にすることがXの拡張を使うことで出来たりします。(重いけど)

方法は比較的簡単で、まず/etc/X11/xorg.confに以下のセクションを追加。
==> /etc/X11/xorg.conf(一部) <==
Section "Extensions"

    Option  "Composite" "true"


EndSection
そうしたら、Xを再起動。

次に、xcompmgrとtranssetをemerge。
# emerge xcompmgr transset
transsetの方はマスクがかかっているかもしれないから、もしかかっていたら、
# echo "x11-misc/transset ~x86" >>/etc/portage/package.keywords
とでもしてマスクを解除しておくこと。

両方ともemerge出来たら、ウィンドウをどれくらい透明にするのかをtranssetを使って設定していきます。
とりあえず透明にしたいウィンドウをクリックできるようにしておいてから、
# transset .8
(.8は0.8の意味で、ここには0(=完全に透明)から1(=完全に不透明)を指定する。)
とすると、マウスカーソルが+の形になるから、それで透明にしたいウィンドウをクリック。
こうすると、ウィンドウの透明度が設定されます。

(後で変えることも出来るけれど)一通り設定が終わったら、
# xcompmgr &
とすると、設定した透明度に従ってウィンドウが透明になります。
このxcompmgrを動かすときに、オプションとして-cを指定するとボヤっとした影が、-sを指定するとシャキっとした影がつきます。
ただ、薄暗くなってしまう感じが否めないので、あまりおすすめは・・・
あと、さっきのxsetptransを動かしていないと、激しくひどい画面になります。
それと、もしエラーがめちゃくちゃ流れてくるようだったら、
# xcompmgr 1>/dev/null 2>&1 &
とリダイレクトして、エラーは捨てちゃってください。

この結果がこんな感じ
ちゃんと下のウィンドウの文字も透けて見えます。
Firefoxといっしょに使うとこんな感じ
ただ、Firefoxは透明化すると見にくいですね(^^;
ということで、transsetでFirefoxは完全に不透明にしたのがこれ
これはなかなかよさげ。

ただ、やっぱり重いのが・・・(^^;
Firefoxの画面をスクロールするのに、ネットワーク越しで操作しているような重さがあります。

ちなみにtranssetで志摩子さんを指定するとすけs(ry
いやいや、幽霊みたいに薄くなるだけですw
(ついでに言うと、指定したときの背景の一部が背後霊みたいに憑いてきますw)

goo | コメント ( 0 ) | トラックバック ( 0 )

uimとか。

2006-04-15 00:54:00 | Gentoo...
Xでの日本語入力で、FEPにuimを使う方法について。

ゼミの発表も一段落して(といっても全部終わらなかったから来週もやるのですが)、Gentooのデスクトップ環境を整えたいな、と思い、やっぱり日本語の入力環境がよくないので試しにuim+anthyというのを入れてみました。

そもそも、Xの日本語入力っていうのが・・・
日本語入力するよ、っていうのがXアプリケーションからFEPに伝えられると(ってことで、そもそもそれを伝えることができないアプリケーションは日本語入力できない・・・)、FEPが入力をかな文字列にして、さらにFEPに変換の命令が出されるとFEPはその文字列を変換サーバに送って、変換された漢字を受け取ってそれをアプリケーションに渡す、みたいな感じなんですよね。(あってる?)
で、FEPも変換サーバも自分で選べるんだけれど、設定の仕方が分からないから使いにくい使いにくい・・・
まぁ、ドキュメントをちゃんと読めって話なのかもしれないけれど、これじゃあ普及しないよ・・・

まぁ、愚痴はこの程度にしておいて。
いままではkinput2+cannaという組合せを使っていたのだけれど、いちばん困ったのがShift+SpaceでFEPの切替えが起こってしまうということ。(あと、半角/全角キーでFEPの切替えが行えなかったこと。)
もちろん、ちゃんと設定すれば大丈夫なんだけれど、それもめんどいので、uim+anthyという組合せを入れてみました。(ちなみにanthyは変換サーバじゃなくてライブラリだとか。んでもって少女革命ウテナの姫宮アンシうわ、なにをfjdska;f;dsa)

まずはemerge。
# emerge anthy uim
この順じゃないとダメらしい。
んで、~/.xinitrcに次のようなのをいれてあげる。

==> ~/.xinitrc(一部) <==
export GTK_IM_MODULE=uim
export QT_IM_MODULE=uim
uim-xim &
export XMODIFIERS="@im=uim"

これでFEPがuimにセットされる。

で、Xを立ち上げて(ちなみに.xinitrcにうっかり日本語を入れてしまって、何度かエラーを起こした^^;)、uimの設定。
# uim-pref-gtk
こうするとGUIを使って設定ができるから非常に楽。
この設定ツールの
全体設定→入力方式の利用準備
で、"デフォルトの入力方式を指定する"にチェックを入れて、デフォルトの入力方式のプルダウンメニューからAnthyを選べば、変換がAnthyで行われるように。
あとはキー設定とかをいじっておくと楽かも。

使ってみた感じでは、断然MacやWinに近い使い心地で、うれしい。
MacやWinとちがうのは、日本語モードのときに適当なアルファベットを打っても、ちゃんとかなになるものでなければ入力として扱われない、ということ。
たとえば、日本語モードで'oyaptu'と入力しても、'おやつ'とpは無視されてしまう。(Winなら'おやpつ'となる)
あと、'・'を打つために'/'のキーを押しても、/となってしまって・にならないのがめんどい(たぶん、これも設定でどうにかなりそう。ならなきゃAnthy側でいじれば・・・)
Anthyの方も'、'を','、'。'を'.'に変換してしまう癖が最初あったけれど、使っているうちに学習して直ってきた感じ。

あとは辞書への登録の仕方とか細かい設定の仕方とかを調べていければな、って感じです。



追記(2006.11.06)。
USEフラグでgtkを指定しておかないと、uim-pref-gtkが使えないっぽい・・・(あたりまえ?)

goo | コメント ( 0 ) | トラックバック ( 0 )

Portage。

2006-04-07 14:37:00 | Gentoo...
Portageに関するメモ。

Java入れたりFirefox入れたりとかで、いろいろとぶつかって学んだことがあるので、そのメモ。

まず、基本としてemergeのやり方。

emerge --sync

Portageツリーの同期


emerge -s foo

fooという文字列を含むパッケージの検索


emerge -S foo

fooという文字列をコメントに含むパッケージの検索


emerge package

packageというパッケージをインストール


emerge -u package

packageというパッケージをアップデート


emerge -p package

実際にはインストールせずに様子を見る


emerge --unmerge package

packageというパッケージをアンインストール


emerge system

核となるアプリケーションを一括アップデート


emerge world

インストールしたパッケージ全てを一括アップデート



ここらへんは基礎。

あと、覚えておきたいものとして、

emerge -u --newuse package

packageを新しいUSE変数の元でアップデート


emerge -u --deep package

packageが依存しているパッケージについてアップデート


emerge --depclean

unmergeした後、依存されなくなったものをアンインストール


revdep-rebuild

gentoolkitのコマンドで、動的リンクを再構築する



といったところ。

パッケージの名前は
category/package-version
という構造をしていて、通常は
package
category/package
と指定すると、そのパッケージが指定されたことになる。
versionまで指定したいときには
=category/package-version
と、先頭に=をつける。
あるversion以上(より上)を指定したいときには、

 >=category/package-version


(あるいは>category/package-version)
とする。

アーキテクチャごとに基本となる仕様があって、それは
/usr/portage/profiles/default-linux/default-linux/
以下にあったりして、/etc/make.profileによって指し示されている。
ここをいじるのは推奨されていなくて(同期を取ると元に戻ってしまうから)、かわりに/etc/make.confや/etc/portage/以下のファイルをいじることになる。

/etc/make.confはグローバルなPortageの変数を指定するのに使う。
/etc/portage/以下のファイルは個々のパッケージに対しての指定を行い、ファイルは以下のような感じ。

/etc/portage/package.use

パッケージごとのUSE変数を指定


/etc/portage/package.mask

マスクをかける(=インストールできないようにさせる)パッケージを指定


/etc/portage/package.unmask

マスクを解除するパッケージを指定


/etc/portage/package.keywords

パッケージごとにACCEPT_KEYWORDS(~x86とか)を指定する



設定ファイルをどうしていくのかはetc-updateを使って操作していく感じで。

goo | コメント ( 0 ) | トラックバック ( 0 )

configuration error。

2006-04-06 17:01:00 | Gentoo...
ログインしようとすると出る
configuration error...
というエラーについて。

インストールも出来たし、システム全部をemergeしようかなぁ、と
# emerge -u --newuse world
としたわけです。
まぁ、えらく時間がかかったわけですが、一応終わりました(groffが依存関係で1.9を削除して1.8を入れたりとかしましたが。確か。)
で、一回ログアウトしてまたログインする段になったら、次のような出力になったわけです。

login: xxxx
configuration error - unknown item 'FAILLOG_ENAB' (notify administrator)
configuration error - unknown item 'LASTLOG_ENAB' (notify administrator)
configuration error - unknown item 'MOTD_FILE' (notify administrator)
configuration error - unknown item 'FTMP_FILE' (notify administrator)
configuration error - unknown item 'ENV_PATH' (notify administrator)
configuration error - unknown item 'ENV_ROOTPATH' (notify administrator)
configuration error - unknown item 'ENV_SUPATH' (notify administrator)
configuration error - unknown item 'PASS_MIN_LEN' (notify administrator)
configuration error - unknown item 'CHFN_AUTH' (notify administrator)
pass:

xxxxはユーザ名で、列挙したitemは手元にあるものではないので検索で出てきたものから引っ張ってきました。

一応ログインは出来るのですが、ログインするたびにこれが出ては気持ち悪いので検索したところ、やはりemerge worldを行った後からこんなのが出るようになったという人がいて、次のようなアドバイスがされていました。

You should always check for block/upgrade dependencies when upgrading your entire system
# emerge -av
The -av allows the user to see the dependencies, the installed version and the upgraded version.
I think you might have axed something important during the upgrade. could be the reason why your internet is not working either.



(意訳)システム全体をアップグレードするときにはいつも依存関係をチェックすべき。
# emerge -av
avオプションは依存関係とインストールされているバージョン、アップグレードされるバージョンをユーザに見せるようにしてくれる。
思うに、アップグレードの途中に大切なものを中断してしまったんじゃないかな?
回線が切れていたりしたのかもしれない。

I had this issue. During emerge default behaviour is not to overwrite configuration files.
The following command will give info on this:
# emerge --help config
In my case I found emerge had not overwritten /etc/login.defs and had added /etc/._cfg0000_login.defs
Simply overwriting login.defs with ./_cfg000_login.defs fixed the problem.



(意訳)私もこの問題があった。emergeのデフォルトの振る舞いではコンフィグレーションファイルは上書きされない。
次のコマンドがこれについての情報を与えるかもしれない。
# emerge --help config
私の場合、emergeが/etc/login.defsを上書きしていなくて、かつ/etc/._cfg0000_login.defsを付け加えていた。
単にlogin.defsを._cfg0000_login.defsで上書きしたらこの問題は解決した。

試してないですが、2番目の方法で大丈夫そうですねぇ・・・(なんか、Gentoo的には怪しそうだけど。)

で、マニュアル見てみたら、このあと依存関係云々の作業をしなくちゃいけなかったみたいです。

システム全体を新しいUSEフラグに対応させる。
システム全体を再構築
# emerge --update --deep --newuse world
不要なパッケージを削除
# emerge --depclean
動的リンクの再構築
# revdep-rebuild
(これはgentoolkitに入っているので、emergeするのを忘れずに)



が、これをやってもエラーが出る感じ。
いろいろやってみたけれど、やっぱりetc-updateを使うのが正解っぽいです。

etc-updateは._cfg0000_<name>ファイルのマージを手助けしてくれるツールです。それは対話式のマージセットアップを提供しますし、普通の変更を自動的にマージすることもできます。._cfg0000_<name>ファイルは、PortageがCONFIG_PROTECT変数に保護されているディレクトリにファイルを上書きするときに作成されます。
etc-updateを実行するには何も付けずにこうします。
# etc-update



本当はいけないんだろうけれど、面倒だったので全部アップデート後の設定ファイルで上書き。
けれど、これでエラーが出ることはなくなりました。

goo | コメント ( 0 ) | トラックバック ( 0 )