Sharp Muramasa (PC-MM1-H3S)にFreeBSD 4.9-STABLEをインストールしたときの記録
注意
このページの内容は古くなっています.記録のために残してありますが,更新されません.
FreeBSD 4.XがEoLになり,2007年2月以降は不具合・セキュリティ・ホールへの対応は行われません. Portsのサポートも4.Xは対象外です. 急いで7.Xなどに移行しましょう.
参考) 7.2-RELEASEであれば,インストール時のBIOSの設定変更やカーネルの再構築は必要ありません. また,ACPIも問題なく利用できます.— 2009年5月30日
Muramasa(PC-MM1-H3S)へのインストールの際に注意すべきことしか書いてありません. FreeBSDのインストールの基本的な手順等は,"FreeBSD Handbook"の"Installing FreeBSD",『改訂版 FreeBSD徹底入門』(衛藤・のだ・細川他, 翔泳社, 2002), 『Absolute BSD FreeBSDシステム管理とチューニング』(Lucas, M. 佐藤 広生[訳]. 毎日コミュニケーションズ, 2004)などを参照してください.
準備
システムの復元の解除
あらかじめインストールされているWindows XP Home Editionの領域(C:10[GB])はそのままにして,D:(5[GB])にFreeBSDをインストールします. このため,Windowsの「システムのプロパティ - システムの復元」でD:の監査を停止します.
起動ディスクの作成
USB接続のCDドライブを持っていなかったので,FDD(Melco FD-USB)を使ってブートし,FTPインストールしました. まず,FreeBSDのインストールのインストールフロッピーの作成にしたがって,kern.flp, mfsroot.flpの2つのイメージ・ファイルを書き込んだ2枚のフロッピー・ディスクを作成します.
BIOSの設定変更
BIOSでPlug & Play OSが"Yes"になっていると,GENERICカーネルで内蔵の有線LANが正常に動作しません(後で説明するように,カーネルの再構築をすればPlug & Play OSを"Yes"にしたままでも,正常に動作するようになります). このため,BIOSの設定画面でPlug & Play OSを"No"にしておきます.
インストール
ブート
LANケーブルとFDDをPCに接続し,kern.flpを書き込んだフロッピー・ディスクでブートします. マシンが止まったと思うくらい遅いのですが,我慢して待っているとMFS root floppyへの交換を促す画面が表示され,入力待ちになります. mfsroot.flpを書き込んだフロッピー・ディスクを入れ,enterキーを押してインストールを続けます. “Kernel Configuration Menu"では,デフォルト(Skip kernel configuration and continue with installation)のまま,インストールを継続して問題ありません.
パーティション
FDISKパーティション・エディタでWindowsが使用していない領域(fat32と表示されていない領域)を,FreeBSDで使用することにします. 結局,ad0s1をWindows XP, ad0s2をFreeBSDで使用することになります.
スライスの設定
ディスクラベル・エディタで,FreeBSDのパーティションを設定します. 今回は,以下のように設定しました.
| Mount point | Size |
|---|---|
| / | 64[MB] |
| swap | 256[MB] |
| /tmp | 32[MB] |
| /var | 64[MB] |
| /usr | 3.7[GB](残り全て) |
配布ファイルの選択
後でカーネルの再構築を行うので,ソースもインストールしておきます.
インストール・メディアの選択
今回は,FTPインストールをするので,インストール・メディアの選択ではFTPを選択します.
その他
その他は,通常のFreeBSDインストールと同様で,特に注意することはありません.
カーネル・userlandの再構築
cvsupのインストール
CVSupを使って,カーネル・userlandのソースを最新版に更新するために,FTPサービスにリストされているFTPサーバよりcvsup-without-gui-16.1h.tgzをダウンロードし,pkg_addでインストールします.
cvsupの設定ファイルの設定
cvsupの設定ファイルを以下のように設定します(私は/etc/supfile-stableという名前で作成しました. hostで指定するホスト名は,cvsサーバの統計情報を見て,空いているホストを選びましょう).
*default host=cvsup4.jp.FreeBSD.org
*default base=/usr
*default prefix=/usr
*default release=cvs tag=RELENG_4
*default delete use-rel-suffix
src-all
カーネル・userlandソースの更新
cvsup -g /etc/supfile-stableで,カーネル・userlandソースを更新します.
make.confの設定
/etc/make.confを以下のように設定します.KERNCONFで指定しているいる名前(SARAH)は,次に作成するカーネル・コンフィグレーション・ファイルの名前です. また,IPFW2を使用することにします.
CFLAGS= -O -pipe
COPTFLAGS= -O -pipe
KERNCONF=SARAH
IPFW2=TRUE
カーネル・コンフィグレーション・ファイルの設定
/usr/src/sys/i386/conf/GENERICを,/usr/src/sys/i386/conf/SARAHとしてコピーし,これを変更して使用します.
主な変更点を,以下に挙げます.
- identでカーネルの識別名を指定します.
- options PCI_ENABLE_IO_MODESを追加します.
これで,BIOSの設定でPlag & Play OSを"Yes"としても,内蔵有線LANが正常に動作します. - IPFW(IPFW2)を有効にする.
注意: このコンフィグレーション・ファイルをそのまま使用すると,外部からのパケットを全て落とすことになるので,IPFWの設定ファイルを正しく書かないとDHCPも使用できなくなることがあります. Firewallが不要なら,該当エントリをコメント・アウトしてください.
その他は/usr/src/sys/i386/conf/LINTを見ながら,お好みで設定してください. 結局,私の/usr/src/sys/i386/conf/SARAHの内容は,以下のようになりました.
machine i386
cpu I586_CPU
ident SARAH
maxusers 0
options INET #InterNETworking
#options INET6 #IPv6 communications protocols
options FFS #Berkeley Fast Filesystem
options FFS_ROOT #FFS usable as root device [keep this!]
options SOFTUPDATES #Enable FFS soft updates support
options UFS_DIRHASH #Improve performance on big directories
options MSDOSFS #MSDOS Filesystem
options CD9660 #ISO 9660 Filesystem
options CD9660_ROOT #CD-ROM usable as root, CD9660 required
options PROCFS #Process filesystem
options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!]
options SCSI_DELAY=15000 #Delay (in ms) before probing SCSI
options UCONSOLE #Allow users to grab the console
options USERCONFIG #boot -c editor
options VISUAL_USERCONFIG #visual boot -c editor
options KTRACE #ktrace(1) support
options SYSVSHM #SYSV-style shared memory
options SYSVMSG #SYSV-style message queues
options SYSVSEM #SYSV-style semaphores
options P1003_1B #Posix P1003_1B real-time extensions
options _KPOSIX_PRIORITY_SCHEDULING
options ICMP_BANDLIM #Rate limit bad replies
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
options TCP_DROP_SYNFIN #Drop TCP SYN+FIN packets
options IPFIREWALL #Firewall
options IPFW2 #IPFW2
options IPFIREWALL_VERBOSE #Logging information about dropped packets
options IPFIREWALL_VERBOSE_LIMIT=100 #Limit verbosity
options PCI_ENABLE_IO_MODES #Enable pci resources left off by a "lazy" BIOS
device isa
device pci
# ATA and ATAPI devices
device ata0 at isa? port IO_WD1 irq 14
device ata1 at isa? port IO_WD2 irq 15
device ata
device atadisk # ATA disk drives
device atapicd # ATAPI CDROM drives
device atapifd # ATAPI floppy drives
options ATA_STATIC_ID # Static device numbering
# SCSI peripherals
device scbus # SCSI bus (required)
device da # Direct Access (disks)
device cd # CD
device pass # Passthrough device (direct SCSI access)
# atkbdc0 controls both the keyboard and the PS/2 mouse
device atkbdc0 at isa? port IO_KBD
device atkbd0 at atkbdc? irq 1 flags 0x1
device psm0 at atkbdc? irq 12
device vga0 at isa?
# splash screen/screen saver
pseudo-device splash
# syscons is the default console driver, resembling an SCO console
device sc0 at isa? flags 0x100
# Floating point support - do not disable.
device npx0 at nexus? port IO_NPX irq 13
# Power management support (see LINT for more options)
device apm0 at nexus? flags 0x20 # Advanced Power Management
# ACPI support using the Intel ACPI Component Architecture reference
# implementation.
#device acpica
# PCCARD (PCMCIA) support
device card
device pcic0 at isa? irq 0 port 0x3e0 iomem 0xd0000
# PCI Ethernet NICs that use the common MII bus controller code.
# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
device miibus # MII bus support
device rl # RealTek 8129/8139
# PRISM I IEEE 802.11b wireless NIC.
#device awi
# WaveLAN/IEEE 802.11 wireless NICs. Note: the WaveLAN/IEEE really
# exists only as a PCMCIA device, so there is no ISA attachment needed
# and resources will always be dynamically assigned by the pccard code.
device wi
# Pseudo devices - the number indicates how many units to allocate.
pseudo-device loop # Network loopback
pseudo-device ether # Ethernet support
pseudo-device tun # Packet tunnel.
pseudo-device pty # Pseudo-ttys (telnet etc)
pseudo-device vlan 1 # VLAN support
#pseudo-device gif # IPv6 and IPv4 tunneling
#pseudo-device faith 1 # IPv6-to-IPv4 relaying (translation)
# The `bpf' pseudo-device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
pseudo-device bpf #Berkeley packet filter
# USB support
device ohci # OHCI PCI->USB interface
device usb # USB Bus (required)
device ugen # Generic
device uhid # "Human Interface Devices"
device ukbd # Keyboard
device ulpt # Printer
device umass # Disks/Mass storage - Requires scbus and da
device ums # Mouse
カーネル・userlandのmakeとインストール
/usr/src/Makefileにあるように,以下の手順でカーネル・userlandのmakeと更新,および/etc/以下のファイルの更新を行います.
- cd /usr/src
- make buildworld
- make buildkernel
- make installkernel
- シングル・ユーザ・モードでreboot
- mergemaster -p
- make installworld
- mergemaster
- reboot
buildworld, buildkernelは,それぞれ2時間,30分程度かかります.
Windows XPとのデュアル・ブートの設定
FreeBSDのインストールで,ブート・マネージャをインストールしても,その後,Windows XP Home Editionを起動してしまうと,MBRが書き換えられてしまうらしく,ブート・マネージャが表示されず,デュアル・ブートができなくなってしまいます. そこで,Windows XP Home Editionのブート・マネージャから,FreeBSDをブートできるようにします.
『FIPS を使ってスライスを変更し、WindowsXPとFreeBSDのデュアルブート』のページを参考にしました.
boot1のコピー
/boot/boot1を,FTPか何かでどこかにコピーしておきます.
Windows XPのブート・マネージャの設定
まず,Windows XPを起動します.
次に,先ほどコピーしたboot1をWindows XP側に持ってきます(今回は,C:\にbootsect.bsdという名前でコピーしました).
「コントロールパネル - プリンタとその他のハードウェア - (関連項目)システム - 詳細設定 - 起動と回復」の「起動システム」で「編集」ボタンを押すと,テキスト・エディタが立ち上がるので,以下のようにFreeBSDのエントリを追加します.
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Home Edition" /fastdetect
C:\bootsect.bsd="FreeBSD"
XFree86の設定
以下のようなXFree86の設定ファイル(/etc/X11/XF86Config)で,正常に動作しています. Deviceセクションで,Option “UseBIOS” “off”としておく必要があります.
Section "ServerLayout"
Identifier "XFree86 Configured"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection
Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
ModulePath "/usr/X11R6/lib/modules"
FontPath "/usr/X11R6/lib/X11/fonts/TrueType/"
FontPath "/usr/X11R6/lib/X11/fonts/TTF/"
FontPath "/usr/X11R6/lib/X11/fonts/webfonts/"
FontPath "/usr/X11R6/lib/X11/fonts/local/"
FontPath "/usr/X11R6/lib/X11/fonts/misc/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/Type1/"
FontPath "/usr/X11R6/lib/X11/fonts/CID/"
FontPath "/usr/X11R6/lib/X11/fonts/Speedo/"
FontPath "/usr/X11R6/lib/X11/fonts/misc/"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/"
FontPath "/usr/local/share/ghostscript/fonts/"
EndSection
Section "Module"
Load "extmod"
Load "glx"
Load "dri"
Load "dbe"
Load "record"
Load "xtrap"
Load "speedo"
Load "type1"
Load "xtt"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "keyboard"
Option "XkbRules" "xfree86"
Option "XkbModel" "jp106"
Option "XkbLayout" "jp"
EndSection
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/sysmouse"
Option "Emulate3Buttons"
Option "ZAxisMapping" "4 5"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Sharp"
ModelName "PC-MM1-H3S LCD"
HorizSync 31.5 - 48.5
VertRefresh 50-70
EndSection
Section "Device"
Identifier "Card0"
Driver "siliconmotion"
VendorName "Silicon Motion, Inc."
BoardName "SM720 Lynx3DM"
BusID "PCI:0:9:0"
Option "UseBIOS" "off"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
DefaultDepth 24
SubSectionSub "Display"
Depth 24
Modes "1024x768"
EndSubSection
EndSection
その他
APM
/etc/rc.confにapm_enable=“YES”と記述しておくことで,shutdown -p nowのようにAPMを使った電源切断は可能でした.
ただし,APM経由でのバッテリの残料取得はできませんでした.
無線LAN
wi driverで問題なく使用できます.