Introduction
|
|
起動時に自動実行されるプログラムや環境の設定を行う。
FreeBSDでは起動時にいくつかの設定ファイルが読み込まれ、
そこに定義された値が有効となる様になっている。
ここではそれらの定義ファイルの設定値を変更する。
|
s30
|
|
まずは s30 固有の設定を行う。
標準の状態では起動時に AC/Battery の状態を取得できないので、
ACPI 用の aml ファイルにパッチを適用し、起動時に load するよう設定する。
既にコンパイルされた aml ファイルが公開されていたので、
amlファイルを取得し使用する。
acpi_dsdt.amlファイルを /bootに格納し、
/boot/loader.conf に以下の記述を追加する。
acpi_load
|
"YES"
|
acpi_dsdt_load
|
"YES"
|
この aml ファイルも加藤さんが作成・公開して下さいました。
本当にありがとうございます。
次に suspend 時に vga の電源を off にするカーネルモジュールを組み込むために、
/usr/src/sysディレクトリで
vga_pci-20020228.tar.gzファイルを展開して
makeする。
作成された vga_pci.koファイルを /boot/modulesにコピーし、
/boot/loader.confに以下の記述を追加する。
vga_pci_load
|
"YES"
|
acpi_dsdt_load
|
"YES"
|
このカーネルモジュールは岩崎さんが作成・公開されています。
本当にありがとうございます。
本来は /boot/kernel にコピーする必要があるが、
/boot/kernelにコピーするとカーネル再構築の度に
vga_pci.ko をコピーする必要があるので、
暫定的に/boot/modulesにコピーする。
カーネルの構成ファイルを変更したら良いとは思うのだが、
そこまで調査しきれていない。
|
boot
|
|
Welcome to FreeBSD!
1. Boot FreeBSD [default]
2. Boot FreeBSD with ACPI disabled
3. Boot FreeBSD in Safe Mode
4. Boot FreeBSD in single user mode
5. Boot FreeBSD with verbose logging
6. Escape to loader prompt
7. Reboot
Select option, [Enter] for default
or [Space] to pause timer 5
|
起動時に表示される daemon 君の ascii art は可愛いのだが、
同時に表示されるメニューと相まって慣れると煩く感じるので
従来通りの boot 画面が表示される様にし、
また、起動時に表示されるメッセージの待ち時間を短くするために
/boot/loader.confに以下の設定を追加する。
autoboot_delay
|
"5"
|
beastie_disable
|
"YES"
|
|
keyboard
|
|
CtrlとCapsLockの位置を入れ替えるだけであれば、
jp.106xというキーボードマップを使用すれば良い。
しかしCapsLockはそもそも不要なので、
キーボードマップを多少変更してCtrlキーもCapsLockキーも
Ctrlキーとして動作する様変更する。
/usr/share/sysconf/keymap/jp.106x.kbdを
jp.106y.kbdにコピーし、
029の行を変更。
029
|
lctrl
|
lctrl
|
lctrl
|
lctrl
|
lctrl
|
lctrl
|
lctrl
|
lctrl
|
|
作成したキーマップを有効にするために、/etc/rc.confに以下の設定を追加する。
|
sysctl.conf
|
|
ACPI による電源管理が可能となったので、
suspend swtich(Fn + F4)押下時の動作や、
電源スイッチ押下時の動作設定を行うため /etc/sysctl.confに以下の設定を追加する。
hw.acpi.lid_switch_state=NONE
|
ディスプレイを閉じた時は何もしない
|
hw.acpi.standby_state=S3
|
スタンバイ(apm -Z実行時)は s3 状態に設定
|
hw.acpi.suspend_state=S3
|
サスペンド(apm -z実行時)は s3 状態に設定
|
hw.acpi.power_button_state=S3
|
電源スイッチ押下時は s3 状態に移行
|
hw.acpi.sleep_button_state=S3
|
スリープボタン(Fn + F4)押下時は s3 状態に移行
|
hw.acpi.thermal.min_runtime=300
|
|
hw.acpi.battery.info_expire=30
|
電源状態の取得は CPU へ負荷がかかるので 30秒毎とする
|
|
devfs.conf
|
|
5.1-RELEASE からはdevfs(8) が必須となったので、
新しいデバイスを追加する時に、
従来の様にMAKEDEV(8) を実行する必要は無くなった。
これは非常に便利であるが、一部の古いプログラムが動作しない事がある。
例えばkon(1)は/dev/vga を参照するので
/etc/devfs.confで/dev/vga への
シンボリックリンク作成を指示する。
link ttyv0 vga
|
ttyv? へのシンボリックリンクを作成する
|
|
moused
|
|
mousedを使用するとコンソール画面でもマウスを利用した
カット&ペーストが利用可能であり、
X Window上ではホイールマウスと内蔵のトラックポイントを同時使用可能となる。
mousedを使用してホイールマウスを活用するために /etc/rc.confに以下の設定を追加する。
moused_enable
|
YES
|
moused_flags
|
-z 4
|
moused_type
|
auto
|
moused_port
|
/dev/psm0
|
|
Memory Disk
|
|
アクセスが頻繁に発生するディレクトリをメモリディスクにすると、
アクセスが高速になり体感速度が飛躍的に向上するので、
/tmpをメモリディスクにする様に設定する。
メモリディスクを使用するためには カーネルの設定で
MDが有効になっている必要がある。
起動時に/tmpをメモリディスクとして利用するために、
/etc/fstabに以下の設定を追加する。
md
|
/tmp
|
mfs
|
rw,-s256m
|
0
|
0
|
|
-sオプションはswapデバイスの容量を指定する。
|
Auto Mount Daemon
|
|
auto mount daemon(amd)を使用するとCD-ROMやUSB Memory-key、
Windows/DOSで使用しているディスクを参照する際に
mount(8)/umount(8)を自動で実行してくれる。
amdを使用する前に、それぞれのデバイスのマウントポイントを作成し、
mountしてアクセス可能な様設定する必要がある。
各デバイスをmountするために /etc/fstabに以下の設定を追加する
/dev/ad0s1
|
/usr/mnt/win
|
ntfs
|
ro,noauto
|
0
|
0
|
|
Windows領域
|
/dev/ad6s1
|
/usr/mnt/flash
|
msdos
|
rw,noauto
|
0
|
0
|
|
Compact Flash
|
/dev/cd0a
|
/usr/mnt/cdrom
|
cd9660
|
ro,noauto
|
0
|
0
|
|
CD-ROM
|
/dev/da0s1
|
/usr/mnt/usb
|
msdos
|
rw,noauto
|
0
|
0
|
|
Memory-key
|
デバイスは環境に合わせて変更する必要がある。
/mnt以下の各ディレクトリに参照が発生した場合に自動的に
/usr/mnt以下のマウントポイントにデバイスをmount(8)し、
/mntにシンボリックリンクを作成する。
amdの動作を定義するために/etc/amd.mapに以下の設定を追加する。
win
|
type:=program;fs:=/usr/mnt/win;\
|
mount:="/sbin/mount mount /usr/mnt/win";\
|
unmount:="/sbin/umount umount /usr/mnt/win";
|
|
Windows領域
|
flash
|
type:=program;fs:=/usr/mnt/flash;\
|
mount:="/sbin/mount mount /usr/mnt/flash";\
|
unmount:="/sbin/umount umount /usr/mnt/flash";
|
|
Compact Flash
|
cdrom
|
type:=program;fs:=/usr/mnt/cdrom;\
|
mount:="/sbin/mount mount /usr/mnt/cdrom";\
|
unmount:="/sbin/umount umount /usr/mnt/cdrom";
|
|
CD-ROM
|
usb
|
type:=program;fs:=/usr/mnt/usb;\
|
mount:="/sbin/mount mount /usr/mnt/usb";\
|
unmount:="/sbin/umount umount /usr/mnt/usb";
|
|
Memory-key
|
起動時からamdを使用するために/etc/rc.confに以下の設定を追加する。
amd_enable
|
"YES"
|
amd_flags
|
"-l syslog -c 30 /mnt /etc/amd.map"
|
|
MS Windows のファイルシステムの日本語表示
|
|
FreeBSD-users-jp MLでntfs、msdosfs、
cd9660ファイルシステムの日本語を表示させるパッチを見掛けたので
早速(でもないか?)インストール。
まずは
5.1-RELEASE 用のパッチをダウンロードして、
/usr/srcディレクトリでパッチ適用。
find(1) を使用してリジェクトの有無を確認した後は
make world して終了。
mergemaster(8) は基本的に不要
mount_ntfs (8)、mount_msdosfs (8)コマンドを実行して
日本語の表示を確認した後は、/etc/fstabに以下の設定を追加して完了。
ntfs
|
ro,noauto,-C=eucJP
|
msdosfs
|
rw,noauto,-L=ja_jp.eucJP,-D=CP932
|
cd9660
|
ro,noauto,-C=eucJP
|
|
USB Memory-key
|
|
USB接続の大容量(って程の容量ではないが…)メモリーキーを使用するために、
カーネルに以下のパッチを適用してカーネルの再構築を行う。
これは FreeBSD 4.8-RELEASE のkern.cam.da.no_6_byteと同等な設定である。
|
ホストデータベースの検索順序
|
|
FreeBSD 5.0 からnddispatch(3) が NetBSD より移植されたので、
/etc/host.conf は /etc/nsswitch.conに変更となる。
/etc/nsswitch.confは以下に示すデータベースの検索に影響する。
group
|
getgrent()
|
hosts
|
gethostbyname()
|
networks
|
getnetbyname()
|
passwd
|
getpwent()
|
shells
|
getusershell()
|
ホスト名の検索順序を /etc/hosts→DNSの順に設定する場合は、
/etc/nsswitch.conに以下の記述を追加すると、
起動時に /etc/host.confが自動的に生成される。
|