Open9

また FreeBSD をインストールしようとしている私へ

あなたのマシン構成について

あなたのマシンは Dell の XPS 8930 というらしいです。 詳細は自分で調べてください。

なんか Bluetooth は仕事をしなくなってしまっています。 Bluetooth モジュールを挿し直したら機嫌を直してくれたみたいです。

ネットワークインターフェースについて

あなたのマシンについている NIC は Killer E2400 Gigabit Ethernet というものらしいです。 次のように実行すると確認できるはずです。

% dmesg | grep Ethernet
alc0: <Killer E2400 Gigabit Ethernet> port 0xd000-0xd07f mem 0xec500000-0xec53ffff at device 0.0 on pci4

OS のインストール中にネットワーク構成を DHCP で取得しようとすると通信できていないことに気付くと思います。 ひとまず頑張って手動で構成してください。

NIC を利用可能にするには /boot/loader.conf に下記を追加します。 詳細は man 4 alc を引けば書いてあります。

/boot/loader.conf
hw.alc.msix_disable="1"

グラフィックについて

なんだかよくわかりませんが、NVIDIA のグラボが載っているらしいですね。 Xorg とかを使う関係でドライバをインストールしたほうが良さそうです。 次のように実行します。

# pkg install nvidia-driver

インストール時になんか言われていると思います。 もう一度言われたいときは pkg info -D ndivia-driver を実行すると聞かせてくれるようです。 次のように実行します。

# sysrc kld_list+=nvidia-modeset
# ed /usr/local/etc/X11/xorg.conf.d/driver-nvidia.conf	# for Xorg
a
Section "Device"
	Identifier "Card0"
	Driver     "nvidia"
EndSection
.
w
q

最後に再起動してください。

日本語マニュアルについて

日本語マニュアルは ja-man-doc というパッケージをインストールすれば入ります。 しかし、これは eucJP で書かれているようなので、UTF-8 な環境で読むためには一手間必要です。 次のように実行しましょう。 lv は less と iconv を掛け合わせたような便利なやつです。

# pkg install ja-man-doc lv

さらに、設定ファイルが必要なので次のようにも実行します。

# ed /etc/manpath.config	# for jman
a
MANPATH_MAP	/bin		/usr/share/man
MANPATH_MAP	/usr/bin	/usr/share/man
MANPATH_MAP	/usr/bin	/usr/share/openssl/man
MANPATH_MAP	/usr/local/bin	/usr/local/man
MANPATH_MAP	/usr/X11R6/bin	/usr/local/man
.
w
q

最後に、cshrc にエイリアスと環境変数の設定をします (t?csh を使っているはずですよね)。

setenv	LV	-Ou8
alias	jjman	'env LC_CTYPE=ja_JP.eucJP jman -P lv'
alias	ujman	'env LC_CTYPE=ja_JP.UTF-8 jman -P lv'

ああもう、B シェルを使っているあなたはこっちです (怪しいけど)。

export LV='-Ou8'
alias jjman='LC_CTYPE=ja_JP.eucJP jman -P lv'
alias ujman='LC_CTYPE=ja_JP.UTF-8 jman -P lv'

これで jjman man とか実行すれば日本語マニュアルが読めるはずです。 jjman で文字化けするときは ujman とすれば読めるかもしれません。 虚無が表示されるときは諦めて man で横文字を読みましょう。

X Window System について

基本的なことは FreeBSD HandBook に書いてあるので参照してください。 日本語が信用ならない場合は英語版を読んでください。 ドライバについては、このスレッドのグラッフィックについて を参照してください。 X をインストールするだけなら次のように実行します。

# pkg install xorg

なお、Handbook (日本語) の 5.6.1. XDM の設定 の部分は完全に間違っています。 xdm_enable="YES" を追加する先は /etc/ttys ではなく /etc/rc.conf です (修正されると良いですね)。 修正されました。

X の日本語入力について

日本語入力には uim-skk を利用しています。 uim の SKK は ibus や fcitx のそれよりも使い易い気がします。

さて、uim-skk を利用するには uim をインストールすれば良いはずです。 しかし、qt なプログラムの上で日本語入力を利用するためには uim-qt5 のインストールが必要なようです (ここで時間を溶かした)。 ついでに uim-gtk もインストールしておきましょう。

# doas pkg install uim-gtk uim-qt5

そして、~/.xinitrc を記述します。 まずはシステムの xinitrc をコピーしてきましょう。

% cp /usr/local/etc/X11/xinit/xinitrc ~/.xinitrc

日本語入力に関する設定を記述していきます。 この設定が最適解でないことは明らかですが、動いたので良しとします。

% ed ~/.xinitrc
/twm/i
export XMODIFIERS='@im=uim'
export GTK_IM_MODULE='uim'
export QT_IM_MODULE='uim'
export XIM='uim'
export XIM_PROGRAM='uim'
uim-xim &
.
w
q

次に X window system を起動します。

% startx

そして uim の設定をします。 XTerm から次のように実行します。 GUI が使えるので簡単にできるはずです。 SKK だけを有効にしておきましょう。

% uim-pref-gtk &

これで X を再起動すれば快適な日本語生活が手に入るはずです。

印刷とプリンタについて (CUPS)

印刷には CUPS を使います。 CUPS は Common UNIX Printing System の頭字語です。 やはり基本的なことはハンドブック (英語) に書いてあります。 まずは読んでください。 CUPS をインストールするには次のように実行します。

# pkg install cups

私が使っているプリンタは HP Deskjet 3520 です。 HP のプリンタのためのパッケージもあります。 これもインストールしておきましょう (Linux を使う場合でもやはり必要ですね)。

# pkg install hplip

CUPS を有効にするために設定を記述します。 ハンドブックの指示に従います。

# sysrc cupsd_enable="YES"
# sysrc devfs_system_ruleset="system"
# service devfs restart
# service cupsd restart

CUPS の設定はウェブブラウザから行います (調べればそれ以外の方法もあるでしょう)。 631 番ポートで listen しているので突いてください。 デフォルトでは localhost からのアクセスしか受け付けていないようです。 外部から突きたい場合は次のように実行します (セキュリティに注意)。

# cupsctl --remote-admin

あとは適当に設定します。 ページにアクセスして 管理 タブから プリンターの追加 を選択します。 HP のプリンタを設定するなら AppSocket/HP JetDirect を選択し、それ以外なら適切なものを選択します。 プリンタの IP アドレスやらなんやらを設定し、プリンタ名などを設定したら完成です。 追加で用紙のサイズとかサーバのデフォルトプリンタとか適当に設定してください。

さて、ここまで設定しても lp(1) は言うことを聞きません。 未知のプリンタだと文句を付けてくるはずです。

% lp
lpr: lp: unknown printer

これは、いま実行している lp と CUPS が想定している lp が異なることによるものです。 実行されている lp/usr/bin/lp で、lpr/usr/bin/lpr でしょう。

% which lp
/usr/bin/lp
% which lpr
/usr/bin/lpr

対して、CUPS が想定している lplpr/usr/local/bin に配置されているものです。 FreeBSD Forum では /usr/bin に配置されいているコマンドを /usr/local/bin への symlink に置き換えるなんて壮大かつ勇敢なことをして対応していますが、小心者なのでユーザレベルで対応することにします。 次のように実行します。

% mkdir -p ~/.local/bin
% ln -s /usr/local/bin/lp* $HOME/.local/bin/.

そして cshrc に PATH を追加するように書き加えます。

if ( -d $HOME/.local/bin ) then
	setenv	PATH	$HOME/.local/bin:$PATH
endif

そして exec $SHELL で cshrc を読み直したり rehash でハッシュテーブルをクリアしたりすれば lp* 系のコマンドが問題なく使えるようになるはずです。

無線 LAN (Wi-Fi) について

無線 LAN を利用する方法については FreeBSD Handbook (英語) の 33.3 Wireless Networking に記述されています。

まずは無線 LAN デバイスの識別子を得るために次のように実行します。 次の例では iwn0 がデバイス識別子です。

% sysctl net.wlan.devices
net.wlan.devices: iwn0

次に SSID と PSK のペアを設定します。 /etc/wpa_supplicant.conf に次のように記述します。 複数のペアを記述することもできます。

/etc/wpa_supplicant.conf
network={
	ssid="hogehoge-ssid"
	psk="hogehoge-psk"
}
network={
	ssid="fugafuga-ssid"
	psk="fugafuga-psk"
}

そして /etc/rc.conf に設定を記述します。 iwn0 を適当な識別子に置き換える必要があります。 この設定では DHCP を利用して IP アドレス等を設定します。

/etc/rc.conf (追加)
wlans_iwn0="wlan0"
create_args_wlan0="country JP regdomain JAPAN"
ifconfig_wlan0="WPA SYNCDHCP"

最後にネットワークサービスを再起動します。 慎重になるならコンピュータを再起動してください。

# service netif restart
ログインするとコメントできます