TOPに戻る
鬱るんです
躁鬱病のITエンジニア「はまー」が心と体の模様を記した雑記帳。 大手IT企業で心身ともにぼろぼろになり退職した後、ほそぼそと働いたり事業を立ち上げようとして頓挫したり、作業所に通ったり障害者雇用で働いたりと紆余曲折したが、今は無職な毎日。

昨日も22時半頃就寝。早く寝つけて夜中も目を覚まさず熟睡したと思う。7時の目覚ましが鳴って止めたが、起きることができなかった。体が重くて起き上がれない。結局8時半くらいに起床。起きてみれば体は重くない。いや、体重が体重だけに重いことは重い。

昨日買った本を読み進める。PHPの基本的な説明の後は、サンプルプログラムを使った文法やら基本的な関数などの解説が延々と続く。どうやらプログラミング初心者も想定に入れて書いてあるようだが、私にとってはそんな説明はいらないので流し読み。まあ、とりあえずプログラムをがりがり書いてみる、と言うよりいろいろなサンプルプログラムのソースを追っかけていった方が早道だろう。PHPのライブラリ集であるPEARの本も昨日買ってきたし、そっちから責めていった方がいいかもしれない。

昼食を食べたあと、買い物に行ってからまたLinuxを起動。PHPの勉強はいったん置いて、また別件でLinuxと格闘していた。実はLinuxではまだPCから音が出ないのだ。それを解決しようといろいろ調べていた。

どうやらLinuxで音を出すには、ALSA(Advanced Linux Sound Architecture)という仕組みをインストールすればいいらしい。さっそくドライバーとライブラリ、それとユーティリティをダウンロードしてインストール。インストールと言ってもバイナリで配布されているわけでなく、それぞれソースをダウンロードしてConfigureしてmakeしなければならない。そのときに、自分のPCのサウンドボードの種類をオプションで指定するのだ。サウンドボードと言ってもオンボードなのでintel8x0というやつだった。

そしていきなりはまった。コンパイルが通らない。最初にいきなりOSのバージョンを定義してあるVersion.hというヘッダファイルがないとのこと。なんじゃらほい、と思って調べたら、なんとカーネルのソースは入ってないではないか。DVDからOSをインストールしても、ソースは入ってないのだ。さっそくカーネルのソースをダウンロードした。

しかし、まだコンパイルが通らない。やはりVersion.hというファイルがないという。include/linux/Version.h というファイルがあるはずなのに、それがない。なんでなんで?と思いつつ検索してあれこれ試したが、よくわからん。わからんからmake include/linux/Version.h とやるとすんなりできた。やれやれ。

その後もつまづいてなかなか進まない。やはりコンパイルの途中でエラーで落ちる。単純な文法エラーだと仰るが、どう見ても間違ってない。これも四苦八苦して検索しまくったところ、ダウンロードしたALSA自体のバージョンが古いことが判明。なぜ古いのをダウンロードしたのか。FTPサイトには古いバージョンのものも含めてたくさんのファイルがあった。それで、一番下にあるのが最新だろうと思ってダウンロードしたのがバージョン1.0.9だったのだが、最新版は1.0.11だったのだ。そのファイルはずっと上にあった。そう、ファイル名で昇順に並んでいたんだよ、ふふふ。くそっ、やられた。

気を取り直して最新版をダウンロードして再びコンパイル。また落ちた。さっきのところは通ったようなのだが別のところでまたエラー発生。どうもOS自体のモジュールが足りないようなのだ。なんで?これまた検索してみると、カーネルを普通にmakeすると自動的にできるモジュールらしいのだが、なんでないのだろう。そのモジュールをターゲットにmakeしてみようとしたが通らず。う〜んと考え込んで、えいや、とカーネルをmakeした。ちょうどソースもダウンロードしたし、まだOS自体インストールしたばかりだから、今のうちにやりたい放題しておくのだ。

時間がかかったけどカーネルのmakeが終わって、再びALSAのコンパイル。するとあっけなく正常終了。ドライバー、ライブラリー、ユーティリティを全てインストールしたら、やっとこさ音が出るようになった。う〜ん、なんだかんだ言って4時間くらい費やしたぞ。こういうのをいじくりだすと、時間が経つのを忘れてしまう。

その後はLinux上からNTFSでフォーマットされたディスクを見れるツールを入れて、Windowsのファイルが見えることも確認。今日はここまでにしておこう。しかし、一発で動かずになんだかんだ調べるはめになるのは、それはそれで楽しい。宝探しをしているようだ。


コメントする

メールアドレスは公開されません

*は必須項目です