いもあらい。

プログラミングや哲学などについてのメモ。

音が出た~。

2006-12-16 06:06:00 |  Gentoo...
ALSAでやっと音が出た。

いや~、長かった。
さっきのエントリもALSAで音を出す方法を探している途中で偶然見つけたものだったんだけれど、かなり苦労したなぁ^^;

で、音が出なかった原因はなんだったのか。
それは、alsamixerでの設定。
っていっても、普通いじらないようなところに原因があったんだけれど。。。

まず、自分のPCの環境について。
LaVieのLJ700/7ってやつで、
Intel Corp. 82801DB AC'97 Audio Controller (rev 03) + Analog Devices AD1981B
という感じ。

カーネルは(モジュールにしても良かったんだろうけれど)組み込みで、

 Device Drivers
->Sound
->Advanced Linux Sound Architecture
->PCI devices
<*> Analog Devices AD1889
<*> Intel/SiS/nVidia/AMD/ALi AC97 Controller


を組み込んだ感じ。
(その他は、ほとんどデフォルト。OSS Mixer API、OSS PCM APIとかを追加で組み込んだくらい?)

カーネルを再構築して再起動すると、エラーは特になし。
alsaconfをすると何も反応がないんだけれど、これはたぶん組み込んでしまっているからで、特に問題なかった。

で、

 # /etc/init.d/alsasound start


スタートさせるんだけれど、これだけだと音が出ない。

 # alsamixer


として、音量を調節する。
このとき、MasterとPCMをミュートでなくし('m'を押すことで切り替えられる)、かつ音量を0でなくする必要がある。
・・・と、ここまではどこにでも書いてある説明。
普通ならこれで音が出るんだろうけれど、Analog Devicesの場合はこれだけだとどうにも音が出ない。
自分も、ここまではちゃんとやっていたのだけれど、音が出なかった。

重要なのはここから。
alsamixerの右から2つめの項目、MExternal Amplifierというのがonになっているんだけれど、これをmを押してoffにする。
すると、あら不思議、音が出るw

ちなみに、古いALSAだとExternal Amplifier Power Downという項目になっていて、デフォルトだとoffになっているので、これをonにすると音が出るらしい。

音が出るようになったので、mpg123というのをemergeしてゆのかにをダウンロードして聞いてみたりw

けど、xmmsがmaskされてしまっていて、しかもmaskはずしてもなにやらバグがあるのかうまくコンパイルされないので、使えなくなってしまっていた。
かわりのソフトでいいものがあればいいのだけれど・・・?


デスクトップ構築中。

2006-11-06 00:59:00 |  Gentoo...
Gentooでデスクトップを構築中。

なんというか、昔出来たことが今どうやってやったらいいのかが分からなくて困るとは、なんなんだろう・・・^^;

ということで、かなり苦戦中。
以前作業をしたときに、なんのドキュメントを参考にしたのかだけでも書いておけばよかった・・・

とりあえず、すでに作業が終わっていることは、

  • Xorg(モジュール版)のインストール


  • FVWMのインストール


  • Firefoxのインストール


  • Mltermのインストール



現在進行形でやっているのは、

  • FVWMのカスタマイズ(優先順位低め)


  • Firefoxのメニュー日本語化


  • Mltermの設定ダイアログを出すためのCtrl+右クリックが有効にならないのの解消



やる必要があるものは、

  • Anthy+uimのインストール


  • pTeXのインストール



といった具合。



Xorgのインストールはこれといって問題なし。
(とか書いていると、あとになって困るんだろうなぁ・・・)
FVWMも然り。
(カスタマイズはちょっと大変そうだけど。ktermのメニューで日本語が文字化けするのをまずは直したいかな)

Firefoxでメニューを日本語化するには、/etc/make.confでLINGUASという環境変数を指定しておいてあげる必要があるっぽい。
==> /etc/make.conf (一部) <==
LINGUAS='ja'
こうしてやると、ちゃんと日本語になった。

ついでに日本語のフォントもインストール。
/etc/X11/xorg.confのFileセクションで、FontPathを追加してあげると使えるようになるっぽい。



Mlterm解決。
GUIベースの設定ツール(mlconfig)が、gtk依存(ていうのかな?)のせいで、USEフラグでgtkを入れておかないとそもそも作られないっぽい。

これに気付いたのは、Anthyとuimも入れたんだけれど、やっぱりuimのGUIベース設定ツールが起動しなくて(これについてはuimとか。で追記)、どちらもUSEフラグが-gtkとなっていたから。

ただ、Mltermのフォントが斜体になっていて、別のフォントにする必要がありそう。
設定ダイアログにフォントを選ぶのはなかったけど、どうやるんだろう・・・?

それと、w3mでなぜか画像が表示されない。
Plamoのときもこれと同じ現象があったけれど、今回は画像が表示されるスペースこそ用意されているものの、実際の画像は表示されない、というもの。
TERMが原因?



なぜか知らないけれどw3mの画像が表示されない件が解決。
/etc/make.confのUSEフラグにgtkをemerge -u --newuse --deep worldをバックグラウンドで動かしつつ、別の仮想コンソールからXを立ち上げて作業をしていたんだけれど、

 # ldd /usr/libexec/w3mimgdisplay


としてみたら、何個かのライブラリがちゃんとリンクされていなかったっぽい?(ここらへんの知識がまだあまりない・・・)
で、

 # revdep-rebuild


をやってみたら、その直後からいきなり画像が表示されるようになってた。
ついでにlddをしてみたら、ライブラリもちゃんとリンクされているっぽいから、これが原因だったのかなぁ・・・?
とりあえず、TERMには非依存であることは分かった。(linuxにしてもxtermにしてもktermにしても表示できた。)

以下、随時更新?


Kernel panic。

2006-10-27 19:28:00 |  Gentoo...
Kernel panicになった原因とその対処(+α)について。

Gentooをインストールし終わって、さっそく起動しようとして出たメッセージがこれ。
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
このメッセージが出て、止まってしまった。

まぁ、カーネルのせいなんだろうとインストールCDを使って起動しなおし、カーネルのコンフィグを見直したんだけれど、自分の力では何が悪いのか分からず、ネットを検索。
(その過程で、2chのGentooスレも見たんだけれど、なんか解決策っぽいのが書かれたスレが倉庫入りになってしまっていて見れず・・・2chブラウザを落としてみたんだけれど、見方が分からなかった。倉庫に入ったスレって、ID買わないと見れないのかなぁ・・・?)

で、見つけたのがこのエントリ。
デスクトップGentooインストール顛末(国民宿舎はらぺこ大浴場)

このエントリによれば、原因は

 Device Drivers --->
ATA/ATAPI/MFM/RLL support --->
<*> generic/default IDE chipset support


がデフォルトだとNになっているからとのこと。

早速自分の設定した奴を見てみると、Nのままになってた。
なので、Yにして、再コンパイル&インストール。
そしたら、無事起動できた^^

けれど、新しい問題が発生。
net.eth0がエラーでちゃんと動いてくれない。
調べてみると、ネットワークアダプタがカーネルに認識されていないっぽい。

ということで、またカーネルのコンフィグを見直してみたら、全部Nになってるし・・・
自分のノートのネットワークアダプタがRealtekのrtl-8139ってやつっぽいので(これはlspciで分かった)、それに対応するモジュールの8139tooをカーネルに組み込んで、再コンパイル&インストール。
(なんか、コンパイルの途中で止まってしまうので、make cleanとしてからmakeとやったらうまくいった。ここらへんのことも勉強しないとなぁ・・・)

まぁ、こんな感じでとりあえず起動はできるようになった感じ。
次はXだけど、モジュール化されているのがどう影響してくるのか・・・


Gentoo再インストール。

2006-09-27 00:12:00 |  Gentoo...
Gentooの再インストールの記録。

えっと。。。
Gentooの2006.1が出来ていたので、最近使ってなかったんだけれど一気にアップデートしようと思って、ノートパソコンの方でemergeをしまくったんですよ。
そしたら、emergeでなんかもう変にブロックをされるものだから、調べる時間も惜しかったので適当に消したり、マスクしたり、なんだりとやっていったら、ログインできなくなった(TT)
なんか、
login:
という表示は出るんだけれど、アカウント名を入れてEnterを押すと、
pass:
という表示が出ないで、しばらくしてログイン失敗のメッセージ・・・
どうしろっていうんだ^^;

で、どうすればこれが解決するのかを調べたんだけれど情報が見つからなかった(というか、このログインに関して管理しているプログラム?って何なんだろう?カーネルではないはず・・・)のと、上の過程でXも起動できなくなっていた(Xorgのヴァージョン7にしたんだけれど、(たぶん設定をしてないせいで)ちゃんと走らなかった)し、サウンドの設定なんかも出来ていなかったから、もう一度ちゃんと入れなおすことに。

それでまず最初に困ったのがISOイメージを焼く方法が分からない^^;(というか、前回はどうやって焼いたんだろう?)
ライティングソフトはバンドルされてたB's Recorder Gold Basic(Ver.7)を使っていたんだけれど、普通に焼くとISOイメージのファイルがそのまま焼かれて、全く意味無し。
で、調べたところ、ISOイメージは音楽トラックの方に登録させて焼かないといけないらしい。
まぁ、この方法でやったら無事焼けて、CDからブートも出来たので、とりあえずは一段落。
(前回は、ノートパソコンの方にインストールするとき、なぜかCDからブートできなかったので、すでにインストールされていたPlamoからかなりがんばってインストールした)

それで、よく見てみたら、ブートの途中(というか、最後のほう)に、次のような文字が出てたり。
Soundcard:
Intel Corp.|ICH4 845G/GL Chipset AC'97 Audio Controller
driver = snd-intel8x0
Videocard:
ATI Technologies Inc.|Radeon Mobility M7 LW (AGP)
えと、このドライバをちゃんと使えば問題ないのかな?

そうそう、ブートの最初の方でキーマップを選ぶ画面が出てきて、ちゃんと反映されているみたい。
前回のときは反映されなかったから、ちょっとうれしいw
(vi使うときに、操作感が変わってくるからねぇ)

だいぶ放置していたけれど、再開(以下、10月11日~12日にやったこと)。
ネットワークの設定で、ifconfigとしたらeth0がちゃんと働いていなかった。。。
ので、ハンドブックにしたがって

 # net-setup eth0


として、いくつかの質問に答えて設定終了。
そしたら、ちゃんと設定が出来てた。
(ここらへんの仕組みも勉強しなくちゃいけないんだろうなぁ・・・)

次はディスクの設定。
といっても、特に小難しい設定をするつもりは無いので、以前にインストールしたときのまま。
ちなみに、

   Device   Boot  Size    System
/dev/hda1 * 約20GB HPFS/NTFS
/dev/hda2 約40GB HPFS/NTFS
/dev/hda3 * 約17GB Linux
/dev/hda4 約1GB弱 Linux swap


という感じ。
swapはもうすでに初期化されているので、

 # swapon /dev/hda4


とだけしておいて、あとは

 # mkreiserfs /dev/hda3
# mount /dev/hda3 /mnt/gentoo


と、初期化とマウントを済ませ、次へ。

時間の設定。

 # date
Wed Oct 11 16:14:18 UTC 2006


とやっぱりUTC。
今のところUTCであわせとけ、とのことなので、

 # date 101107172006


とかとして、設定。

そのあと、stage3のtarballとportageスナップショットのtarballをlinks2で落としてきて、展開。
コンパイルオプションを決めようとしていたんだけれど、Pemtium-Mの場合はどれを使えばいいのかと悩んでネットを調べてみたら、これを見る限り、pentium-mってのを使えばいいっぽいような。
(etc/make.conf.exampleには書いてないんだけれど・・・)
ということで、

 CHOST="i686-pc-linux-gnu"
CFLAGS="-O3 -march=pentium-m -pipe"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j2"


と設定。

このあとはミラーサイトを設定して、DNS情報をコピーして、必要なものをマウントして、chroot。
そのあと、新しい環境にするコマンドを終えて、portageツリーの更新。

って、エラー出てるし。
なにやら、
Unknown module 'gentoo-portage'
だそうで。
しょうがないので、emerge-websyncを利用して更新。
(でも、これって更新したことになるのかな?)
さらに、portageのアップデートをしろ、っていうんで、

 # emerge portage


これは無事終わったんだけれど、依然としてemerge --syncはエラーが出る。。。

新しい環境に入って今まで使っていたviが使えなくなっていたので、vimのインストール。

 # emerge vim


profileの変更は特になし。
USEフラグはとりあえず

 USE="X alsa cjk dvd firefox -gnome -kde -mozilla"


位で。
あとで追加してけばいいし。

ロケールは英語と日本語を選択。
/etc/locale.gen
をいじって、そのあと

 # locale-gen


とすると、設定された。
タイムゾーンも設定完了。

やっとカーネルのインストール。

 # make menuconfig


で適当に設定して、

 # make && make modules_install


とやって、コンパイル&モジュールのインストール。

 # cp arch/i386/boot/bzImage /boot/gentoo-kernel-2.6.17-r8


って感じでカーネルイメージもコピー。

次はfstab。
特に変わったところもなく

 /dev/hda3           /           reiserfs  noatime      0 1
/dev/hda4 none swap sw 0 0
/dev/cdroms/cdrom0 /mnt/cdrom auto noauto,user 0 0
none /proc proc defaults 0 0
none /dev/shm tmpfs nodev,nosuid,noexec 0 0


ってな感じで。

あとはシステムの設定。
いじったのは、まず/etc/conf.d/hostname, /etc/conf.d/domainname, /etc/hostsの3つ(この3つはけっこう適当)
あとは、
==> /etc/conf.d/net <==
config_eth0=( "dhcp" )
==> /etc/rc.conf <==
EDITOR="/usr/bin/vim
==> /etc/conf.d/keymaps <==
KEYMAP="jp106"
==> /etc/conf.d/clock <==
CLOCK="local"
ってな感じで。

で、必要なシステムツールをemerge

 # emerge sysklogd logrotate
# emerge vixie-cron
# rc-update add sysklogd default
# rc-update add vixie-cron default


っていっても、ログの見方とか依然として勉強してないんだけれど^^;
slocateもインストール

 # emerge slocate
# slocate -u


(ちなみに最後のはデータベースの作成のつもり)
あとは

 # emerge reiserfsprogs
# emerge dhcpcd


といった具合。

最後はGRUBのインストール。
まぁ、これは適当に。。。

で、いざリブートだ、とリブートしてみたら、kernel panicで起動しない・・・
この原因と対策については、また別のエントリで。


portageのアップデート?。

2006-06-21 00:35:00 |  Gentoo...
emerge --syncとして、最後に変なメッセージが出たときの対処法。

ひさびさにGentooをいじっていたら、emerge --syncをやったあとに次のようなメッセージが出てきた:

An update to portage is available. It is _highly_ recommended
that you update portage now, before any other packages are updated.

何やらportage自体のアップデートをしなきゃいけないような感じらしく、次のようにすればこれは解消:

# emerge -avu portage

めんどいので具体的な意味は調べていないけれど、たしかにこれをやると上のようなメッセージは出なくなった。



(追記)
単純に
# emerge portage
でも大丈夫っぽかった。
オプションをつけるのとの違いは・・・?