ロゴ
総アクセス数:

現在の閲覧者数:

パソコンの部屋

その7 Linux 秋の陣

2008.10.31.
2009.9.18. 更新

我が家に於ける Debian GNU/Linux の問題点とその対策

 Windows のデスクトップを見慣れている目からすると、初めて GNOME デスクトップを見たとき、なんだかとても不細工に見えた。アイコンが馬鹿でかい。文字がぼやけている。変だなと思って解像度をチェックしてみることにした。

 画面左上の「デスクトップ」をクリックして、「設定」をクリックし、プルダウンメニューの中から「画面の解像度」を選択する。そして現れた「画面の解像度の設定」の「解像度」の値を見てみると、「1024x768」になっているではないか!
『なーんだ、これじゃアイコンが馬鹿でかく見えて当然だよな。』
 と思って、その右横をクリックしてプルダウンメニューを表示させると次のようになった。

「ややや! インストールのときに設定したはずの「1280x800」が表示されてないぞ!」
 これは問題だ。私は早速、Webブラウザに付いている Google 検索を使って、「Debian 1280x800 表示させる」とか、「GNME 1280x800 表示しない」とかのキーワードで検索した結果、/etc/x11/xorg.cof というファイルの設定を変えればいいことがわかった。
 それをする前に、しなければならないことがある。それは、「mc」のインストールだ。これは、Midnght Commander の略で、GUI ではなく文字版のファイルブラウザだ。簡単なテキストエディタも付いており、気になるファイルを片っ端から開いて編集することが出来る。Linux を入れたのは、OSの中身をいじくりたいためなので、それにはとても重宝するツールなのである。
 それを得るには、まずデスクトップ左上の「アプリーケーション」「アクセサリ」と入り、「Root Terminal」か「GNOME 端末」を起動する。前者なら、プログラム起動前に root のパスワードを、後者は起動してから「su」とコマンドすると、

# su
Password:
は「Enter」キーを押すという意味)

 このようにして、やはりパスワードを要求してくるので、そのパスワードを入力する。これでルート権限が得られるので、システムファイルの修正やパッケージのインストールなどが行えるようになるのだ。
 Debian の場合、「aptitude」というコマンドを使えば、パッケージのインストールはいとも簡単に行える。

# aptitude install mc

 これだけで、「mc」というパッケージがダウンロードされて、自動的にインストールされてしまうのだ。
 ダウンロードしたファイルを解凍・展開させて、コンパイルしてインストールするといった従来の手間を考えたら、まるで魔法のようだ。しかし、その従来の方法を知っておいて損はない。何でもコンピュータ任せになることを避けて、Linux を使うようにしたのだから。
 私は早速、ダウンロードした「mc」のテキストエディタで、/etc/x11/xorg.cof を開いてみた。すると……

# /etc/X11/xorg.conf (xorg X Window System server configuration file)
#
# This file was generated by dexconf, the Debian X Configuration tool, using
# values from the debconf database.
#
# Edit this file with caution, and see the /etc/X11/xorg.conf manual page.
# (Type "man /etc/X11/xorg.conf" at the shell prompt.)
#
# This file is automatically updated on xserver-xorg package upgrades *only*
# if it has not been modified since the last upgrade of the xserver-xorg
# package.
#
# If you have edited this file but would like it to be automatically updated
# again, run the following command:
#   sudo dpkg-reconfigure -phigh xserver-xorg

		:
		:
		:

Section "Screen"
	Identifier	"Default Screen"
	Device		"Generic Video Card"
	Monitor		"Generic Monitor"
	DefaultDepth	24
	SubSection "Display"
		Depth		1
		Modes		"1280x800" "1024x768" "800x600"
	EndSubSection
	SubSection "Display"
		Depth		4
		Modes		"1280x800" "1024x768" "800x600"
	EndSubSection
	SubSection "Display"
		Depth		8
		Modes		"1280x800" "1024x768" "800x600"
	EndSubSection
	SubSection "Display"
		Depth		15
		Modes		"1280x800" "1024x768" "800x600"
	EndSubSection
	SubSection "Display"
		Depth		16
		Modes		"1280x800" "1024x768" "800x600"
	EndSubSection
	SubSection "Display"
		Depth		24
		Modes		"1280x800" "1024x768" "800x600"
	EndSubSection
EndSection

		:
		:
		:

 むむっ……、赤で示してあるように、ちゃんと設定が反映されているではないか!
 この問題の原因がもっと別のところにあると見た私は、この解決に総力を挙げて取り組むことにした。かくして、我が家の「Linux 秋の陣」の火ぶたが切って落とされたのであった。

※ご注意 お使いのハードウエアとカーネルとの関係によって、各種設定は微妙に異なってきます。ここに掲載している情報はその一例に過ぎないので、それが原因であなたのコンピュータに何らかの不具合が生じたとしても、このサイトではそれに対する責任を一切負えません。
 このような設定は、ご使用のコンピュータのことをしっかりと把握された上で、ご自分の責任において行ってください。
画面の解像度が 1280x800 にならない
マシンの主なスペック
CPUIntel Celeron 550, 2GHz (amd64 supprt)
System Memory1526MB DDR2
Hard Disc80GB
光学ドライブスーパーマルチDVD±RW(DL対応)
Video BIOSMobile Intel 965 Express Chipset Family
LCD Monitor15.4型 Ultrabright
Network/Modem10/100 Mbps Ethernet LAN
802.11b/g Wiless LAN
56K ITU V.92対応FAX Modem
Medium ManagerxDピクチャーカード、SDメモリーカード
メモリースティック、メモリースティックPro
マルチメディアカード対応
PortUSBx4, VGAx1
Oprating SystemWindows XP Home Edition

 再び、検索サイトで調べまくる日々となった。その結果、新たに次のことが判明した。

 私は早速「915resolution」をダウンロードしてインストールし、それが何者であるのか見てみることにした。

# aptitude nstall 915resolution

# 915resolution -h

 「-h」オプションはヘルプの表示だ。コマンドによっては「--h」としなければならないものもあるが、それをサポートしていなければ、どっちみちヘルプが表示されることになる。
 すると、次のように表示された。

Intel 800/900 Series VBIOS Hack : version 0.5.2

Usage: 915resolution [-f file] [-c chipset] [-l] [mode X Y] [bits/pixel] [htotal] [vtotal]
  Set the resolution to XxY for a video mode
  Bits per pixel are optional.  htotal/vtotal settings are additionally optional.
  Options:
    -f use an alternate file (THIS IS USED FOR DEBUG PURPOSES)
    -c force chipset type (THIS IS USED FOR DEBUG PURPOSES)
    -l display the modes found in the video BIOS
    -r display the modes found in the video BIOS in raw mode (THIS IS USED FOR DEBUG PURPOSES)

 なるほど。「-l」でこのコンピュータのチップセットのモードを見付けるんだな。そこで、それをコマンドしてみた。

# 915resolution -l

 すると、今度はこのように表示されたではないか!

Intel 800/900 Series VBIOS Hack : version 0.5.2

Intel chipset detected.  However, 915resolution was unable to determine the chipset type.
Chipset Id: 2a008086
Please report this problem to stomljen@yahoo.com

 要するに、インテルのチップセットは見付かったけど、そのタイプが判定出来なかったってことだ。
 ガーーーン!!! そ、そんなぁー!!!
 965 だって、立派な900シリーズのはずだぞ!
 私は、「Debian パッケージ: 915resolution」のWebページを見てみた。するとそこには、

This includes the 845G, 855G, and 865G chipsets, as well as 915G, 915GM, and 945G chipsets.

 という一文が載っていた。俺のパソコンは新し過ぎて使えないってことか?
 しかし、ここで諦めないのが田野呵々士だ。
「それなら、いちかばちか、一番近い 945G でやってみよう。」
 私は、Webで調べたものを参考にして、まず /etc/default/915resolution というファイルを開いてみた。

#
# 915resolution default
#
# find free modes by  /usr/sbin/915resolution -l
# and set it to MODE or set to 'MODE=auto'
#
# With 'auto' detection, the panel-size will be fetched from the VBE
# BIOS if possible and the highest-numbered mode in each bit-depth
# will be overwritten with the detected panel-size.
MODE=auto
#
# and set resolutions for the mode.
# e.g. use XRESO=1024 and YRESO=768
XRESO=
YRESO=
#
# We can also set the pixel mode.
# e.g. use BIT=32
# Please note that this is optional,
# you can also leave this value blank.
BIT=

 赤で示してある二行に、このようにして数値を入れた。

XRESO=1280
YRESO=800

 最後の行「BIT=」の下に、この一行を付け加えた。

PROG="/usr/sbin/915resolution -c 945G"

 そして、ファイルを保存してパソコンを再起動させた。すると……

やったー!! 1280x800 で表示されたぞーー!!!
 それならばと、また /etc/default/915resolution を開いて、最後の行にこれを付け加えた。

PROG="/usr/sbin/915resolution -c 965"

 そして、先ほどと同じことをやってみたら、結果はなんとこの通り。

 また 1024x768 に戻ってしまっている。
 ここまででわかったことは、次の通りだ。

 そこで私は、次のようなことを行った。

# 915resolution -c 965

 その結果はこうなった。

Intel 800/900 Series VBIOS Hack : version 0.5.2

Intel chipset detected.  However, 915resolution was unable to determine the chipset type.
Chipset Id: 2a008086
Please report this problem to stomljen@yahoo.com

 「-l」のときと同じだ。
 それなら、これではどうだ?

# 915resolution -c 945G

 その結果。

Intel 800/900 Series VBIOS Hack : version 0.5.2

Chipset: 945G
BIOS: TYPE 1
Mode Table Offset: $C0000 + $268
Mode Table Entries: 36

 これでは?

# 915resolution -c 965G

Intel 800/900 Series VBIOS Hack : version 0.5.2

Chipset: 965G
BIOS: TYPE 1
Mode Table Offset: $C0000 + $268
Mode Table Entries: 36

 なんと、「965G」はサポートされているのである。ということは、パッケージの説明から「965G」が漏れているか、説明文が古いかのいずれかだろう。そこで私は、/etc/default の最後の行を次のようにしてみた。

PROG="/usr/sbin/915resolution -c 965G"

 そしてファイルを保存し、システムを再起動させると、なんと「1280x800」の解像度で表示されたではないか!
 念のためにデスクトップの、「画面の解像度の設定」で確認してみる。

 結果がちゃんと GUI にも反映されている。
 ということは、「965」は「945G」としてでも「965G」としてでも動くということだ。これにて一件落着!
 念のため、設定後のファイル全文を掲載しておこう。
 /etc/default/915resolution

#
# 915resolution default
#
# find free modes by  /usr/sbin/915resolution -l
# and set it to MODE or set to 'MODE=auto'
#
# With 'auto' detection, the panel-size will be fetched from the VBE
# BIOS if possible and the highest-numbered mode in each bit-depth
# will be overwritten with the detected panel-size.
MODE=auto
#
# and set resolutions for the mode.
# e.g. use XRESO=1024 and YRESO=768
XRESO=1280
YRESO=800
#
# We can also set the pixel mode.
# e.g. use BIT=32
# Please note that this is optional,
# you can also leave this value blank.
BIT=
PROG="/usr/sbin/915resolution -c 965G"
起動するたびに画面の輝度が最大になってしまう

 このノートパソコンで Windows を使うときには、LCD 画面の明るさの調整が可能だ。「Fn + F8」で輝度の切り替えが出来るし、「Fn + ↑」で輝度を上げ、「Fn + ↓」で輝度を下げることが出来る。この設定は保存されないが、「コントロールパネル」の中にある「Intel(R) GMA Driver for Mbile」というソフトウエアを使えば、「明るさ」と「コントラスト」の設定を保存することが出来るので、システムを再起動しても、その設定はちゃんと持続している。
 ところが Debian では、「Fn + F8」「Fn + ↑」「Fn + ↓」がいずれも効かないし、明るさをを調整するツールも無い。しかも、カーネルを「2.6.18-6.i686」から「2.6.24-etchnhalf.1-amd64」に変えたら、起動するたびに LCD が最大の輝度になってしまうので、目が痛くなって困った。これは、健康に対して実害をもたらす由々しき問題だ。
 カーネルのバージョンを元に戻せば良いのだろうが、ただそれだけのためなら、問題を克服して前に進んだ方が良いに決まっている。そこでまたもや、問題解決のための調査と実験を繰り返す日々となってしまった。
 その結果、カーネル 2.6.24 は、LCD(液晶)画面の輝度を「ACPI(Advanced Configuration and Power Interfaceの略)」というシステムによってコントロールしており、その設定は /proc/acpi/video/VGA/LCD/brightness というファイルに保存されていることがわかった。早速それを開いてみる。

levels:  100 37 12 25 37 50 62 75 87 100
current: 100

 たった二行だけのファイルなので単純明快だ。なるほど、「levels:」が設定することの出来る数値で、「current:」が現在設定されている値のようだ。それなら、「current:」の値を変えてやれればいいのではないか。極めて簡単なことだ。
 私はそれを「100」から「25」に変えて、ファイルを保存しようとした。ところが、ルート権限であるにもかかわらず、何度やってもエラーが出て保存することが出来ないのである。
 こんなファイル初めてだーー! 何だこりゃーー???
 多分、現在実行中なので、編集が不可能なのだろう。
 またもや検索サイトで調査の連続。
 それで得た情報を参考にして、次のように入力してみた。

# echo 25 > /proc/acpi/video/VGA/LCD/brightness

 その途端、LCD の輝度は、見事に減少した!
 確認してみる。

# cut /proc/acpi/video/VGA/LCD/brightness
levels: 100 37 12 25 37 50 62 75 87 100
current: 25

 よしよし。設定した通りにファイルの値が変わっている。それを「37」「50」~と変えていけば、ちゃんとそれなりに明るさが変化した!!
 しかしこの設定は、再起動して間もなくは反映されているのだが、カーネルが「ACPI」を設定している最中に突然最大に戻ってしまう。LCD の輝度の値が勝手に初期化されてしまうようだ。それなら、「ACPI」を無効にしたらどうなるか? 私は、/boot/grub/menu.lst ファイルで、カーネルを読み込むための行をいじってみることにした。

title	Debian GNU/Linux, kernel 2.6.24-etchnhalf.1-amd64
root (hd0,7)
kernel	/boot/vmlinuz-2.6.24-etchnhalf.1-amd64 root=/dev/hd8 ro 
initrd	/boot/initrd.img-2.6.24-etchnhalf.1-amd64
savedefault

この赤で示した行の最後に、次のようなオプションを加えた。

acpi=off

要するに、このようにしてみたのだ。

kernel	/boot/vmlinuz-2.6.24-etchnhalf.1-amd64 root=/dev/hd8 ro acpi=off

 これを保存してパソコンを再起動すると、案の定、輝度の設定は変更されなかったのは良かったが、内蔵無線LANのスイッチや電源の管理までが無効になってしまったのには困った。それなら、このマシンの現状では、この方法で輝度を調整するしかないのだろうが、これはそれまでのカーネルには無かった機能なので、また一歩前進することとなった!

起動するたびに時計が9時間進んでしまう

 このマシンに Debian をインストールする際、最初は「debian-40r4a-i386-netinst.iso」を使っていた。カーネルは、26.6.24-etchnhalf-i386 だ。ところが、時計が勝手に9時間進んで困ったことがあった。
 例えば、2008年9月29日月曜日16時31分40秒なら、このようになってしまうのである。(は「エンターキー」を押すという意味。)

$ date
2008年 9月 30日 火曜日 1:31:40 JST
$

 再起動してBIOSの時刻を確認すると、案の定9時間進んで設定されていた。インストールの際にはちゃんと「Asia/Tokyo」に設定したのを「GMT」と勘違いしているのだろうか? いずれにせよ、頼んでもいないのに時計を勝手に進められては困る。これは問題だ。またまた検索サイトで調べまくる日々となった。
 これは、わりとよくある現象のようで、ネット上ではこの問題に関する複数の情報が交錯していた。そのため、これにはかなりの時間が掛かったが、ついに自分なりの解決策にたどり着いた。以下、その方法。

  1. /etc/init.d/hwclock ファイルをテキストエディタで開く。
    #!/bin/sh
    # hwclock.sh	Set and adjust the CMOS clock, according to the UTC
    #		setting in /etc/default/rcS (see also rcS(5)).
    #
    # Version:	@(#)hwclock.sh  2.00  14-Dec-1998  miquels@cistron.nl
    #
    # Patches:
    #		2000-01-30 Henrique M. Holschuh 
    #		 - Minor cosmetic changes in an attempt to help new
    #		   users notice something IS changing their clocks
    #		   during startup/shutdown.
    #		 - Added comments to alert users of hwclock issues
    #		   and discourage tampering without proper doc reading.
    
    # WARNING:	Please read /usr/share/doc/util-linux/README.Debian.hwclock
    #		before changing this file. You risk serious clock
    #		misbehaviour otherwise.
    
    # Set this to any options you might need to give to hwclock, such
    # as machine hardware clock type for Alphas.
    HWCLOCKPARS=
    	:
    	:
    	:
    
    赤で示した「HWCLOCKPARS=」の行に、「--directisa」という設定を加える。「--」はつながって見えるが、マイナス記号が二つだ。

    HWCLOCKPARS=--directisa

  2. ファイルを保存して、パソコンを再起動させる。
  3. BIOS 設定に入り、もし時計が9時間進んでいたら、それを修正する。

 しかも、カーネルが 26.6.24-etchnhalf-amd64 の「debian-40r4a-etchnhalf-amd64-netinst.iso」でインストールすると、このような問題は起こらなかった。
 これにてまたもや、一件落着。

内蔵無線LANアダプタを認識しない

アクセスポイントの主なスペック
対応規格IEEE802.11b, IEEE802.11g
周波数2.4GHz帯
セキュリティWEP(64/128bit)
WPA/WPA2
最高通信速度54Mbps
 さて、お次は無線LANだ。
 このパソコンには、そのクライアントとしての機能が内蔵されている。それがADSLモデムと情報を電波で遣り取りするためには、アクセスポイントという機械が必要なので、私は Planex BLW54CW3 という、安価だが個人家庭で必要な機能は備えているものを買った。Windows ではそれがちゃんと使えている。
 ノートパソコンの最大の特徴は、その機動性にある。電源コードという鎖から解放されて、あちこちへと移動することが出来るのだ。それだけでも便利なのに、その状態でインターネットが利用できるのなら尚有難い。だが、それをするためには、その無線LANとやらの機能が必要になってくるのである。
 今までずっとデスクトップ1台で済ませていたのだから、無ければ無いで何とかなるのだが、本来使えるはずのものが使えないということでは困る。これも、何とかしなければならない問題だ。またもやインターネットの検索で、あれこれと調べる日々となってしまった……。トホホ……。
 この問題は、Linux を入れた人の多くが遭遇しているらしく、その情報量の多いことに驚いた。しかし、私のようなケースは少なかった。多くの人が書いている記事を見ると、

# ifconfig

 とコマンドすれば、

eth0		:
		:
		:
		:
lo		:
		:
		:
		:
wlan0		:
		:
		:
		:

 というような答えが返って来る。これは上から順に、「イーサネット」「ローカルループバック」「無線LAN」を表している。「ローカルループバック」とは、そのコンピュータ自身に接続する機能のことだ。例えば、Webサーバーのテストをする場合、そのサーバーに接続して、同じコンピュータのWebブラウザによって、そのWebドキュメントを閲覧することが出来るのだ。
 ところがこのコンピュータの場合だと、上の二つは確実に表示されるのだが、「wlan0」だけがどうしても表示されないのである。カーネルがデバイスを全く検知していないということだ。システムファイルの設定をあれこれと変えたりして何度も試してみたが、一向に認識してくれない。
 ということは、この無線LANの Linux 用のドライバがインストールされていないということではないだろうか? しかし、有線LANの方は、わざわざインストールしなくてもちゃんと認識しているのだから不思議だ。
 まあ『物は試し』と思って、まずはインストールされているドライバを確認してみることにした。Windows の「コントロールパネル」から、「システム」「デバイスマネージャ」を開き、「ネットワークアダプタ」を展開すると、二つのデバイスが表示されている。そのうちの、「Realtek RTL8187B Wireless 802.11g 54Mbps USB 2.0 Network Adapter」という方が多分無線LANのものだろう。
 今度は、そのメーカーである「Realtek」のホームページの検索で、お目当ての「RTL8187B」をすぐに探し当てることができたが、あるのは Windows と Mac 用のものだけで、残念ながら Linux 用のものは無かった。う~ん、なかなかうまく行かないものだ。
 何かいい方法はないものかと調べていくうちに、Windows 用の無線LANドライバを、Linux で読めるようにインストールするための、Debian パッケージがあることがわかった!! 
 「ndiswrapper」だ。早速その「ndiswrapper-common」と「ndiswrapper-utils-1.9」をダウンロードしてインストールし、「ndiswrapper -h」とコマンドしてみた。すると次のように、その使い方が表示された。

install/manage Windows drivers for ndiswrapper

usage: ndiswrapper OPTION
-i inffile       install driver described by 'inffile'
-a devid driver  use installed 'driver' for 'devid' (dangerous)
-r driver        remove 'driver'
-l               list installed drivers
-m               write configuration for modprobe
-ma              write module alias configuration for all devices
-mi              write module install configuration for all devices
-v               report version information

where 'devid' is either PCIID or USBID of the form XXXX:XXXX,
as reported by 'lspci -n' or 'lsusb' for the card

 この中の「-i」オプションに「*.inf」ファイル名を付けて入力すると、そのドライバがインストールされるようだ。
 私は、先ほど REALTEK のサイトで見付けた、「RTL8187B_5_6.1135.0625.2008_Silent_Install.zip」という Windows 用のファイルをダウンロードして解凍してみた。その中の、「RTL8187B」フォルダの中の「WinXP」というフォルダの中に、「net8187b.cat」「net8187b.inf」「rtl8187B.sys」という3つのファイルがある。その「inf」という拡張子が付いたものがそれだ。「mc」を使ってこのディレクトリに入り、恐る恐る「ndiswrapper -i ./net8187b.inf」と入力してみた。すると……

installing net8187b ...
#

となったではないか! 少なくともエラーではないぞ。
 そこで私は、その結果を見るために「ndiswrapper -l」と入力してみた。すると、このような答えが返って来た。

net8187b : driver installed, device present
#

 やったー!! ドライバーがインストールされて、デバイスが認識されたようだ!!!
 そこで私は、それを確認すべく、「ifconfig」とコマンドしてみた。すると……

eth0      Link encap:Ethernet  HWaddr 00:e0:b8:8b:51:92  
          inet addr:192.168.**.**  Bcast:192.168.**.**  Mask:255.255.255.0
          inet6 addr: fe80::2e0:b8ff:fe8b:5192/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:9443 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6721 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:12654206 (12.0 MB)  TX bytes:602897 (588.7 KB)
          Interrupt:252 Base address:0xa000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:1562 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1562 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:78100 (76.2 KB)  TX bytes:78100 (76.2 KB)
** は伏せてあります。

 ぬぬぬ! 「wlan0」が認識されていないではないか! この嘘つきコンピュータめ!
 人を喜ばせておいてから裏切るのだから、なかなか巧妙な手口だ。
 冗談はさておき、私はそれが本当にインストールされているのかを見るために、「mc」を駆使して、あちこちのファイルを調べまくった。その結果、「/etc/ndiswrapper/net8187b」というフォルダが作られていて、その中に次の3つのファイルがあることが確認された。「08DA:8189.conf」「net8189.inf」「net8189.sys」。
『なんだ、ちゃんとあるじゃないか。でも、「8187」にならなきゃいけないのが、なぜか「8189」になっている。まあいいや。これで再起動したときにカーネルに読み込ませるようにすりゃいいなだな?』
 私は、あまり良くわかってはいないが、次のようにコマンドをしてみた。

# ndiswrapper -ma
module configuration information is stored in /etc/modprobe.d/ndiswrapper
# ndiswrapper -mi
module configuration information is stored in /etc/modprobe.d/ndiswrapper
# ndiswrapper -m
module configuration contains directive install usb:v0BDAp8187d*dc*dsc*dp*ic*isc*ip* /sbin/modprobe ndiswrapper
;you should delete that at /usr/sbin/ndiswrapper-1.9 line 868, ‹MODPROBE› line 80.
module configuration contains directive install usb:v0BDAp8189d*dc*dsc*dp*ic*isc*ip* /sbin/modprobe ndiswrapper
;you should delete that at /usr/sbin/ndiswrapper-1.9 line 868, ‹MODPROBE› line 81.
adding "alias wlan0 ndiswrapper" to /etc/modprobe.d/ndiswrapper ...

************************************************************************
*
* The update-modules command is deprecated and should not be used!
*
************************************************************************

うわぁ~~~っ!!! なんだこりりゃ~~~っ???
 冷静になって理解してみると、要するに、
「/usr/sbin/ndiswrapper-1.9 というファイルの868行目、「‹MODPROBE›」の80行と81行を削除せよ」
 ということか?
 よしわかった。それならそうしてやろう。素直な私は、/usr/sbin/ndiswrapper-1.9 を開いてみた。その冒頭。

#!/usr/bin/perl

#/*
#*  Copyright (C) 2005-2006 Pontus Fuchs, Giridhar Pemmasani
#*
#*
#*  This program is free software; you can redistribute it and/or modify
#*  it under the terms of the GNU General Public License as published by
#*  the Free Software Foundation; either version 2 of the License, or
#*  (at your option) any later version.
#*
#*  This program is distributed in the hope that it will be useful,
#*  but WITHOUT ANY WARRANTY; without even the implied warranty of
#*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#*  GNU General Public License for more details.
#*
#*/
	:
	:
	:

1行目を見ると、これは「Perl」という言語で書かれていることがわかる。何を隠そう、CGIのプログラミングで、私はそれをある程度把握している。
『フフフ、ちょろいもんだぜ。』
 と思ったのも束の間のことであった。その問題の868行を探してみる。

	:
	:
	:
sub add_module_alias {
    my $alias = 0;

    open(MODPROBE, "modprobe -c|") or die "couldn't run modprobe: $!";
    while (my $line = ‹MODPROBE›) {
	if ($line =~ /^alias\s.+\sndiswrapper/) {
	    printf "module configuration already contains alias directive\n\n";
	    $alias = 1;
	} elsif ($line =~ /^install\s.*ndiswrapper/) {
	    warn "module configuration contains directive $line;" .
	      "you should delete that";
	} elsif ($line =~ /^post-install\s+ndiswrapper/) {
	    warn "module configuration contains directive $line;" .
	      "you should delete that";
	}
    }
    close(MODPROBE);

    if ($alias) {
	return 0;
    }

    printf "adding \"alias wlan0 ndiswrapper\" to $modconf ...\n";
    system("echo \"alias wlan0 ndiswrapper\" >>$modconf") == 0 or
      die "couldn't add module alias: $!";
    if (-x "/sbin/update-modules") {
	system("/sbin/update-modules");
    }
    return 0;
}
	:
	:
	:

 赤で示した行がそれだ。これは正に、先ほど現れたメッセージの冒頭ではないか。
 このサブルーチンは、「modprobe」というファイルに、モジュールのエイリアスを加えるためのものだろう。ということは、そのファイルからその部分を削除すればいいんだということがわかったので、今度は「/sbin/modprobe」を開いてみた。するとそれは、わけのわからない記号や化け文字が連続している、バイナリファイルであった。
 私は、この種類のファイルをテキストエディタでいじって、システムが動かなくなったという苦い経験を Windows でしている。専門的な知識が無ければ、これを編集することは出来ないはずだが、それをしろと言うのである。
『なんだこりゃ? わけわからん。』

サスペンドとハイバネートがうまくいかない

 サスペンドとは、コンピュータで現在起動しているプログラムなどの状態をメインメモリーの中に記憶させ、スクリーンやハードディスク、ファンなどの電源を落とすことだ。それに対してハイバネートとは、その情報をハードディスクの中に保存し、コンピュータそのものの電源を完全に落としてしまう機能である。
 いずれにしても、プログラムを終了させたり再び起動させたりする手間と電力が省けるので、ノートパソコンには是非とも欲しいものだ。
 それが、Debian の「GNOME」「KDE」「xfce4」いずれのデスクトップでもうまくいかず、エラーが表示されるのだ。
 これも未解決のままだが、もうどうでもよくなってしまった。

放棄

「もうやめた。やめた! やめた!! やーーめたっ!!!
 いい加減馬鹿らしくなってきた。私はコンピュータのエンジニアやプログラマーのような専門家ではないし、衝動的でオッチョコチョイの自分には、そのような才能はないと思っている。だから、このようなことに首を突っ込んで、これ以上時間を費やすことはもう出来ない。これは専門家に任せておいて、ユーザーはユーザーなりの仕事に励むべきだ(普通の人なら、もっとずっと早くそれに気付いているはず)。
 ここでお断りしておくが、私は Debian を批判しているのではない。時間が経てば必ずこのハードウエアをサポートしているカーネルが導入されることになるのだろうと思う。またそれとは逆に、ハードウエアの技術の進歩の速さを批判するつもりも毛頭ない。ただ私は、自分が買ったパソコンの実力を、自分が必要としている部分に於いて、最大限に発揮したいだけだ。
 そのため私は、ついに Debian を断念することにした。人間しぶとさが必要なこともあるが、「諦めが肝心」だ(今の私にとっては身に滲みる言葉だ)。
 そこで私は、別のディストリビューションを導入して、パーティションを切り分けていたのだが、あるトラブルをきっかけにして Windows XP を何回かリカバリーしたところ……



ギャァーーーーーーッ!!!!!!

メニュー  客間

(C) 2004-2015 Tano Kakashi All Rights Reserved.
inserted by FC2 system