ブートマネージャ

PC-UNIX 勉強会 先達クラス資料
Centrino PC への FedoraCore4 と FreeBSD5.4 インストール
(財)松本ソフト開発センター 高砂康司
私事ですが、先日 8 年ぶりにノート PC を購入しました。その PC には Centrino というステッカーがはって
あります。インテルは昨年、その Centrino を Linux に対応させ、ドライバをオープンソースで提供しました。
これに驚いた方も結構いるのではないでしょうか? まぁ、とにかくその PC で Linux と FreeBSD を動かして
みたかったので、やってみました。その個人的備忘録をまとめたものです。
Centrino
Centrino モバイル・テクノロジはインテルの推すノート PC のためのテクノロジです。最近は少なくな
い数のノート PC に Centrino のステッカーが貼られています。「統合されたワイヤレス LAN+性能、
卓越したバッテリ持続時間、携帯性などの優れたモバイル・パフォーマンスをノート PC に搭載する
ことができる」というのがインテルの宣伝文句です。
具体的には以下の構成のノート PC となるようです。
•
Intel PentimuM プロセッサ
•
i915express あるいは i855 チップセット
•
Intel Pro/Wireless ネットワークアダプタ1
この構成の PC を Windows で使うには何の問題もありませんが、Linux や FreeBSD では次のような
問題が発生する事があります。
1. 画面解像度が LCD パネル本来のものに設定できない
2. 無線 LAN が使えない
1.の問題は、チップセット内蔵グラフィックの持つ解像度のうち、特殊なもの(1280x800 とか 1280 x
768 など)が X 上で指定できないという事で、その原因は X window system で使用される i810 ドラ
イバがビデオチップのレジスタを直接叩かずに VESA VIDEO BIOS を使っている事によるようです。
そしてその VESA VIDEO BIOS には、1280x800 とかの情報が無いので、そのような解像度に変更
できないのです。
2.は Intel Pro/Wireless がインストール時に認識されない(あるいは認識しているが動かない)ので無
線 LAN が使えないというものです。
1 Intel Pro/Wireless 2100/2100A/2200BG/2915ABG
1
PC-UNIX 勉強会 先達クラス資料
(おまけ) Windows 領域を縮小して FedoraCore,FreeBSD とトリプルブート
通常、メーカー製の PC は HDD の全領域を 1 ドライブで Windows に割り当ててある事が多いと思
います。他の OS とマルチブートにするには、まず他の OS の領域を確保する必要があります。
その為に 1CD Linux の Knoppix2が使えます。BIOS 設定をいじって CD-ROM から起動できるよう
にしたら、Knoppix で PC を起動し
ます。Knoppix 3.9 では、K メニュー
の「システム」に「QTParted」という
アプリケーションがあるので、これ
を使って Windows のパーティショ
ンを縮小します。
Knoppix のバージョンによっては、
コンソールから起動する(qtparted)
必要があるかもしれません。
あとは空けた領域に Fedora Core とか FreeBSD をインストールするわけですが、注意すべき点があ
ります。Fedora Core などの Linux は HDD の拡張パーティションから起動できますが、FreeBSD は
基本パーティションからしか起動できません。基本パーティションは HDD に 4 つまでしか作れませ
ん。パーティションをそれ以上作るには拡張パーティションを使う事になりますが、そうすると基本パー
ティションは 3 つになります。先に Fedora Core などをインストールしてしまうと、① Windows、
② Linux swap、③ Linux /、と 3 つの基本パーティションを使い切ってしまう可能性があります。そう
すると領域(拡張パーティション)は空いているのに FreeBSD をインストールできないという事態に陥
る事があります。そんな訳で、先に FreeBSD をインストールした方が良いでしょう。
また、FreeBSD のインストールの際、ブートマネージャの設定画面では None を選択します。これは、
後にインストールする Fedora Core 付属の grub をブートマネージャとして利用するためです。
FreeBSD をインストールしたのち、再起動時に Windows が起動しないかもしれません。MBR をい
じってないのに何故?と思うでしょう。これは、FreeBSD のインストーラが FreeBSD のパーティション
をアクティブ(起動可能)にしてしまったためです。パニックにならずに、再度 Knoppix の QTParted
を利用して Windows のパーティションをアクティブにします。私は fdisk を収録した Windows98 の
システムディスクを使って Windows パーティションをアクティブにしました。
Fedora Core4 のインストールは特に気を遣う事も無いでしょう。何もしなくても Windows と Fedora
Core のダブルブートの設定が grub にされるはずです。しかし、FreeBSD の起動のための設定はさ
れないので、grub.conf を変更して FreeBSD を起動できるようにします。
その為には以下のような記述を grub.conf に追加します。
2 CD のみでブート可能な Linux ディストリビューションの一つです。ドイツの Knopper さんが Debian を元に開発して
います。日本語版は http://unit.aist.go.jp/itri/knoppix/index.html から入手可能です。
2
PC-UNIX 勉強会 先達クラス資料
title FreeBSD
root (hd0,1,a)
kernel /boot/loader
hd0 は一つ目の HDD、その後の 1 は二つ目のパーティション(FreeBSD ではスライス)に FreeBSD
がインストールされており、a はその中の一つ目の BSD パーティションにルートディレクトリがある事
を示しています。
これで、次回起動時に Windows、FedoraCore、FreeBSD を選択して起動する事ができます。
3
PC-UNIX 勉強会 先達クラス資料
i855 チップセットへの対処 (画面解像度変更)
i855,i865,i915 チップセット内蔵のビデオ機能で一部のノートパソコンの特殊な解像度が使えるよう
にするために 855resolution というツールを利用します。
入手先
http://perso.wanadoo.fr/apoirier/ (Linux 用)
http://www.sigusr1.org/~kurahone/misc-hacks/ (FreeBSD 用)
圧縮書庫になっているので、解凍して make、make install します。ただし、FreeBSD の場合、make
コマンドではなく gmake を使います。インストールが終わったら、出来上がった 855resolution に-l
オプションを付けて実行します。
・実行結果例
855resolution version 0.3, by Alain Poirier
Chipset: 855GM
VBIOS type: 2
VBIOS Version: 3104
Mode
Mode
Mode
Mode
Mode
Mode
Mode
Mode
Mode
Mode
Mode
Mode
Mode
Mode
Mode
Mode
Mode
Mode
Mode
Mode
Mode
30
32
34
38
3a
3c
41
43
45
49
4b
4d
50
52
54
58
5a
5c
7c
7d
7e
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
640x480, 8 bits/pixel
800x600, 8 bits/pixel
1024x768, 8 bits/pixel
1280x1024, 8 bits/pixel
1600x1200, 8 bits/pixel
1920x1440, 8 bits/pixel
640x480, 16 bits/pixel
800x600, 16 bits/pixel
1024x768, 16 bits/pixel
1280x1024, 16 bits/pixel
1600x1200, 16 bits/pixel
1920x1440, 16 bits/pixel
640x480, 32 bits/pixel
800x600, 32 bits/pixel
1024x768, 32 bits/pixel
1280x1024, 32 bits/pixel
1600x1200, 32 bits/pixel
1920x1440, 32 bits/pixel
1280x801, 8 bits/pixel
1280x801, 16 bits/pixel
1280x801, 32 bits/pixel
この中の使わないだろうモードを、目的の解像度に書き換えます。例えば Mode 7e を書き換えます。
# 855resolution 7e 1280 800
更に、xorg.conf を書き換えます。
4
PC-UNIX 勉強会 先達クラス資料
Section "Monitor"
:
Option "dpms”
Modeline "1280x800_60.00"
801 804 828 -HSync +Vsync
:
EndSection
83.46
1280 1344 1480 1680
800
Section "Screen"
:
SubSection "Display"
Depth
Modes
EndSubSection
EndSection
24
"1280x800" "1024x768” ・・・・・
下線の引かれた部分を追加します。X を起動すれば、1280x800 の解像度になるはずです。しかし、
855resolution で変更した Mode 設定は電源を切ると元に戻ってしまうので、起動時に
855resolution が実行されるようにします。
・FedoraCore 4 の場合
/etc/rc.local ファイルにコマンドを記述する
・FreeBSD 5.4 の場合
/usr/local/etc/rc.d ディレクトリにシェルスクリプトを作成する
5
PC-UNIX 勉強会 先達クラス資料
Intel Pro/Wireless を使えるようにする
無線 LAN ネットワークアダプタ Intel Pro/Wireless 2100/2200BG/2915ABG を Fedora Core 4、
FreeBSD 5.4 で使えるようにします。
Linux の場合
以下の URL からそれぞれのドライバとファームウェアをダウンロードします。
•
Intel/Pro2100 の場合
http://ipw2100.sourceforge.net/
•
Intel/Pro2200BG/2195ABG の場合
http://ipw2200.sourceforge.net/
以下、Intel Pro/Wireless2200BG を例に説明します。上記の URL から辿れるインストール手順を書
いたドキュメント(http://ipw2200.sourceforge.net/INSTALL)では、
1. ipw2200.ko というカーネルモジュールをインストール
2. ドライバ ipw2200 をインストール
3. ファームウェア ipw2200-fw をインストール
という手順になっていましたが、Fedora Core 4 では、ipw2200.ko は既に組み込まれていました。ま
た、私の環境では 2.の手順は失敗しました。ところが、3.を実行(ファイルを展開し、できたファイル
すべてを/lib/firmware/ディレクトリにコピー)したところ何故かうまくいったようで3、Wireless Tools for
Linux(パッケージ名 wireless-tools)に付属のツール iwconfig を実行したら、きちんと認識されてい
ました。
しかし、設定ファイルが無いため、まだ NIC を起動する事はできません。もし、認識されている有線
NIC の設定ファイルなどがあれば、それをコピーして修正すると良いでしょう。例えば有線 NIC が
eth0 として認識されていて、無線 NIC を eth1 とするなら
# cp /etc/sysconfig/network-script/ifcfg-eth0 /etc/sysconfig/networkscript/ifcfg-eth1
として、コピーした ifcfg-eth1 の内容を環境に合わせて書き換えます。
USERCTL=no
PEERDNS=yes
GATEWAY=
TYPE=Wireless
DEVICE=eth1
BOOTPROTO=dhcp
NETMASK=
ONBOOT=yes
DHCP_HOSTNAME=
IPADDR=
NAME=
DOMAIN=
ESSID=
MODE=Managed
KEY=
RATE=
# 一般ユーザーがこのインタフェイスを制御できるかどうか。
# resolv.conf を DHCP からの情報で書き換えるかどうか。
# このインターフェースのタイプ。有線 LAN なら Ethernet。
# デバイス名
# DHCP を利用する。IP 固定なら none とする。
# PC 起動時に有効にするかどうか。
# インフラストラクチャモードの指定。
# WEP を使う場合、「s:WEP キー」と記述。
# 通信速度の指定。ただし、指定してもエラーが出てしまう。
3 実は FC4 の場合、ドライバまで用意されているので手順 1,2 は必要ない。
6
PC-UNIX 勉強会 先達クラス資料
FreeBSD5.4 の場合
まず、以下の URI からドライバをダウンロードします。
http://damien.bergamini.free.fr/ipw/download.html
Intel Pro/Wireless2200BG 用のドライバは iwi-freebsd-1.3.4.tgz、ファームウェアは iwi-firmware1.3.tbz です。
ドライバのインストールは tar で展開してから、make、make install です。ファームウェアの方はパッ
ケージになっているので pkg_add コマンドを使ってインストールします。
インストールしたカーネルモジュールを以下のコマンドで読み込みます。
# kldload -v if_iwi
後ほどきちんと動作する事がわかったら、このモジュールを自動で読み込むように、ファイル/
boot/loader.conf に次の記述を追加すると良いでしょう。
if_iwi_load = "YES"
dmesg の出力に iwi0 で始まる行があり、そこに正しくインターフェースの情報が表示されていれば、
取り敢えずは OK です。
次にファームウェアのバイナリイメージを Intel Pro/Wireless 2200BG にダウンロードします。インフラ
ストラクチャーモードで動かす場合は、
# iwicontrol -i iwi0 -d /usr/local/libdata/if_iwi -m bss
これでインターフェースは使えるはずです。ifconfig で確認あるいは設定してください。もし、DHCP
で IP アドレスを取得したいなら、dhclient コマンドを利用します。
7
PC-UNIX 勉強会 先達クラス資料
(おまけ) UNIX 用の LAN ドライバが無い場合
不幸にして、利用したい NIC に Linux や FreeBSD 用のドライバが無い場合でも、NIC を稼動させる事がで
きる可能性があります。NDISwrapper というソフトを利用して Windows 用のドライバで動かす方法です。
NDIS というのは、Network Driver Interface Specification の略称で 3Com と Microsoft が定めたネットワー
クドライバの標準仕様です。NIC の機能を仮想化して汎用的に利用できるようにしています。
NDISwrapper のサイト:http://ndiswrapper.sourceforge.net/
Linux では、上記サイトからソースを取得してインストールしてください。FreeBSD では、5.3 から NDIS ドライ
バが使える仕組みが用意されています。
Linux の場合
バッファローの無線 LAN カード WLI-CB-G54 を例に説明します。なお、NDISwrapper を利用する
には、kernel が 2.6.6 以上か 2.4.26 以上でカーネルソースが必要だそうです。
・NDISwrapper のインストール
$
$
$
#
#
tar zxvf ndiswrapper-1.0.tar.gz
cd ndiswrapper-1.0
su
make
make install
・NDIS ドライバの取得
まず、バッファローのサイトから WindowXP 用のドライバ(wdrv_660.exe)を取得します。
WindowsPC で展開しておくか、LinuxPC でも lha で展開できるようです。展開したファイル
のうち、必要なものはその NIC 用の INF ファイルと SYS ファイルです。件の WLI-CB-G54
では、netcbg54.inf と bcmwl5.sys です。この二つを同じディレクトリに入れておきましょう。
・NIC 用の設定の作成
# ndiswrapper -i netcbg54.inf
これで、必要なファイルが/etc/ndiswrapper にコピーされ、NIC のための設定ファイルが作
成されます。
・確認
正しくインストールされていれば、次のようになります。
$ ndiswrapper -l
Installed ndis drivers:
netcbg54
driver present, hardware present
・モジュールの読み込み
# modprobe ndiswrapper
・ネットワークの設定
無線 LAN の設定には ifconfig ではなく、iwconfig を使います。iwconfig を引数なしで実
行した結果を載せておきます。
8
PC-UNIX 勉強会 先達クラス資料
$ iwconfig
lo
no wireless exetensions.
eth0
no wireless exetensions.
wlan0
IEEE 802.11g ESSID:off/any
Mode:Managed Frequency:2.462 Ghz Access Point: 00:00:00:00:00:00
Bit Rate:54 Mb/s Tx-Power;25dBm
RTS thr:2347 B Fragment thr:2346B
Power Management:off
Link Quality:100/100 Signal level:-10dBm Noise level:-256dBm
Rx invalid mwid:0 Rx invalid crypt:0 Rx invalid flag:0
Tx excessive retries:0 Invalid misc:80 Missed beacon:0
wlan0 が無線の NIC です。iwconfig の使い方はマニュアルを参照してください。すべてき
ちんと動くことが確認できたら、設定を保存し、起動時に自動で読み込まれるようにしてお
きます。
# ndiswrapper -m
FreeBSD5.4 の場合
Windows 用のドライバの取得と展開までは Linux の場合と同じです。
・ドライバの変換
ndiscvt を使って FreeBSD 用のデータファイルに変換します。
% ndiscvt -s bcmwl5.sys -i netcbg54.inf -o ndis_driver_data.h
・カーネルモジュールの作成
% mv ndis_driver_data.h /sys/modules/if_ndis/
% cd /sys/modules/if_ndis/
% make
ローダブルカーネルモジュール if_ndis.ko ができているはずです。
・モジュールの読み込み
% su
% kldload if_ndis.ko
【情報源】
『NOBUSAN'S SQUARE』の「パーティションとその切り方」
http://nobumasa-web.hp.infoseek.co.jp/partition/partition.html
『IPW 2100/2200BG/2225BG/2915ABG drivers for *BSD - Installing iwi under FreeBSD』
http://damien.bergamini.free.fr/ipw/iwi-freebsd.html
『Installation – NDISWrapper』
http://ndiswrapper.sourceforge.net/mediawiki-1.4.6/index.php/Installation
『「すみかわ」のホームページ』の「2004/01/19: NDIS ドライバで遊ぶ」
http://www.don.to/diary/2004/0119-ndis/
『Ndiswrapper』
http://www.brunolinux.com/08+-WiFi/Ndiswrapper.html
丸地さんのデータベース
9