2008/05/31 (土)
Linux で電源を切るとき、すなわち
# shutdown -h now
コマンドを実行したあと、しばらくすると本体の電源は落ちるのにモニタの電源が切れず、
System halted.
と表示されたまま、画面が止まる現象が多く報告されているようです。
僕自身もこの問題に遭遇しました。

その多くには
「/etc/lilo.confか/boot/grub/menu.lst に acpi=on apm=offとかacpi=off apm=on を追加してください」と回答されている。
ですが、僕もそうでしたが、どうやら多くの人もこれだけでは解決しなかったようです。

それで結局、「System halted. されているんだから電源を長押しで切ればいいですよ」という結論がされているみたいです。


確かにそうなんだろうけど、個人的になんだかそれはすごく気持ち悪かったので調べました。

/etc/modulesにapmを付け加えることで解決しました。

理由はよくわかりませんが、何らかのタイミングでうまくapmが組み込まれないようです。


スポンサーサイト



2008/05/30 (金)
ネットにさえ繋がらない古いPCでLinuxを使っているわけですが、そうするとソフトウェアのインストールにも一苦労です。
というのも、インストールの方法をネットで調べても、ほとんどのサイトがネットに接続できるPCであることが前提で説明されているのでまったくわからなかったのです。


 やり方
ネットにつながるPCでdebian の公式サイト http://www.debian.org/から目的のパッケージをダウンロードします。「~.deb」形式です。

ダウンロードしたら、それをLinuxの入っているPCに移します。ここで、FDDドライブとかCDドライブがあればそれでいいですが、個人的にはUSBメモリを使うのが非常に手軽でお勧めです。
やり方はLinux で USBフラッシュメモリ を使うを参考にしてくれればいいです。

そしたら、あとはインストールするだけです。
debian 4.0r3(Etch) ローカルにあるパッケージのインストール
を参考にしてインストールしてください。

…何のことはない、これだけのことだったんですが、この方法を見つけ出すのに本屋と図書館の本を読みあさり2週間近く奮闘したのでした。


2008/05/30 (金)
Debian GNU/Linux 4.0r3(Etch) でローカルにあるパッケージのインストールの仕方です。
ネットで調べると、apt-getとかdpkgとか使うやり方がいろいろと出てきますが、最新のEtchだとこのやり方が一番良いらしいです。


あらかじめ、適当なディレクトリにインストールしたいパッケージを用意しておきます。
「~.deb」形式のやつです。
自分の場合は/root/debs/というディレクトリを作っておいて、パッケージはそこに置いています。

deb ファイルが置いてあるディレクトリに移動して
# apt-ftparchive packages . | gzip -c9 > Packages.gz
を実行する。

次に、/etc/apt/sources.listをテキストエディタ等で開いて下記の行を追加します。
deb file:(deb が置いてあるディレクトリ) ./

↓例えばこんな感じになります

deb cdrom: [Debian GNU/Linux 4.0 r3 _Etch - Official i386 CD Binary-1 2008021\7-11:50]/ etch contrib main

deb file:/root/debs/ ./

(省略)

次に
# aptitude update
を実行すると、新しくパッケージの一覧に追加されます。

試しに「aptitude search (パッケージ名に含まれる文字列))」を実行してみましょう。インストールしたいパッケージの名前が出てくるはずです。
また、「aptitude show (パッケージ名)」を実行すると説明が見れます。
(以上の2つは単に「aptitude」で実行して管理画面を表示するのもありです)

パッケージが一覧に追加されたことを確認できたら、インストールしましょう。
# aptitude install (パッケージ名)
を実行し、インストールするかどうか確かめてくるので「y」を入力。
以上でインストールされます。
依存関係にあるパッケージも自動的にインストールしてくれます。 また、依存関係で足りないパッケージがあると、これが足りないよーという旨のメッセージが表示されるのでそれも用意しましょう。インストールCDを求めてくる場合もあります。


これで終わり。ヤッター

2008/05/29 (木)
Linux でUSBフラッシュメモリを使うやり方。

自分のLinux用PCは古くてネットにさえつながらないのでUSBで接続できるフラッシュメモリが重宝する。
ちなみに自分はMP3プレイヤーで代用している。6年前くらいに買ったアルファデータの「AD-UMP」

LinuxではUSBメモリを使用するのに特にドライバは必要ない。
USBメモリを接続すると下のようなメッセージがでてくる。
usb 1-1: USB new full speed USB device using uhci_hcd and adress 1
usb 1-1: configuration #1 chosen from 1 choice
scsi1 : SCSI emulation for USB Mass Storage device
  Vendor: SigmaTel  Model: MP300F Player     Rev: 0100
  Type:   Dirrect-Access                     ANSI SCSI revision: 04
SCSI device sda: 242944 512-byte hdwr sectors (124 MB)
sda: Write Protect is off
sda: assuming drive cache: write through
SCSI device sda: 242944 512-byte hdwr sectors (124 MB)
sda: Write Protect is off
sda: assuming drive cache: write through
 sda: sda1
sd 0:0:0:0: Atttached scsi removable disk sda
↑デバイスを認識したよ、というメッセージ
USBメモリはSCSIとして認識される。下から2行目が重要でsda1がUSBメモリだということがわかる。

また、dmesgコマンドを実行すると同じようなメッセージが含まれてでてくる。
# dmesg

これだけでは、USBメモリの中身にアクセスできなくて、次にUSBメモリの中身をマウントするディレクトリを指定する。
あらかじめそれ用のディレクトリを作っておくのが普通。

/mnt に usbfm (USBフラッシュメモリの略)ディレクトリでも作っておこう
# mkdir /mnt/usbfm
↑こんな感じ

で、マウントコマンドを実行する
# mount -t vfat /dev/sda1 /mnt/usbfm/
↑メモリがWindowsで用いられているFATであること、sda1のデバイスをusbfmにマウントする、といった意味。

これで、USBメモリの中身が/mnt/usbfm/に見えるはず。


USBメモリを外すときはちゃんとアンマウントしましょう。

# umount /mnt/usbfm/
と、実行するだけ。

終わり。


初心者から上級者まで、Debian を扱う人なら必ず一度は読むであろう本
Debian GNU/Linux徹底入門第3版
2008/05/28 (水)
Linux で VAIO の電源管理を正しく動作させるのに、ものすごく苦労しました。
なので、そのまとめを書いておきます。

初めてLinuxをインストール&起動すると次のようなエラーメッセージがうっとうしく何度も出てくることがあります。
ACPI Error (psargs-0355): [\_TZ_.ATF0] Namespace lookup failure, AE_NOT_FOUND
ACPI Error (psparse-0537): Method parse/execution failed [\_SB.PCI0.ISA_.SIO_.EC_.QREC] (Node c109d374), AE_NOT_FOUND
ACPI Error (psparse-0537): Method parse/execution failed [\_SB.PCI0.ISA_.SIO_.EC_.SCID] (Node c109d374), AE_NOT_FOUND
ACPI Error (psparse-0537): Method parse/execution failed [\_GPE.E09] (Node c3fe748c), AE_NOT_FOUND

これは、電力制御がうまくできていないためです。

Linuxでは電力制御をするのに主に ACPI か APM というものが使われています。
ですが、古いノートパソコンなんかの場合は ACPI がサポートされていなくて APMしか対応していない場合があり、そういったときは ACPI を off に、 APM を on にしなければなりません。


・ブートローダーにLILOを使っている場合
/etc/lilo.conf をテキストエディタで開き、 適当なところに次の行を書き足す
append="acpi=off apm=on"

・ブートローダーにGRUBを使っている場合
/boot/grub/menu.lst をテキストエディタで開き、kernel の行にacpi=off apm=onを書き足す
例えばこんな感じになる↓
kernel /vmlinuz-2.6.18-7-486 root=/dev/mapper/debian-root ro ide2=0x180,0x386 acpi=off apm=on


あとは再起動するだけ。Vine Linux 2.6ではエラーメッセージは消えて正しく動作するようになりました。
これで電力制御がうまくいった場合は終わりです。下まで読む必要はありません。



実は、これだけではシャットダウン関係で正しく動作しない場合があります。
Debian 4.0r3 ではこうするとエラーメッセージは確かに出なくなったのですが、shutdown -h nowで電源を切ろうとするとシステム自体は停止するのに画面だけは明るいまま
System halted.
というメッセージが出たまま画面の電源が切れません!

ネットで同様の現象が多く報告されているのを読みましたが、「System halted.されているんだから電源を切ってもいいですよ」という回答がされていました。
ですが、Vine Linuxではうまくいったものがなぜ Debian では…という感じで、なんとなく気持ち悪かったので、1週間近くネットを検索&図書館でDebianの本を読みあさった結果ついにわかりました。
/etc/modulesにapmを付け加えることで解決。

理由はよくわかりませんが、デフォルトではapmが起動してなかったらしいです。またの機会に調べますw


ついでにapmdをインストールするとノートPCなんかだとバッテリーの残量がわかるようになります。
そのへんの説明もまたの機会にw