また 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
を引けば書いてあります。
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 を再起動すれば快適な日本語生活が手に入るはずです。
追加(2024-07-27)
記事になりました: 日本語入力に SKK を使ってみる話
印刷とプリンタについて (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 が想定している lp と lpr は /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 に次のように記述します。 複数のペアを記述することもできます。
network={
ssid="hogehoge-ssid"
psk="hogehoge-psk"
}
network={
ssid="fugafuga-ssid"
psk="fugafuga-psk"
}
そして /etc/rc.conf に設定を記述します。 iwn0
を適当な識別子に置き換える必要があります。 この設定では DHCP を利用して IP アドレス等を設定します。
wlans_iwn0="wlan0"
create_args_wlan0="country JP regdomain JAPAN"
ifconfig_wlan0="WPA SYNCDHCP"
最後にネットワークサービスを再起動します。 慎重になるならコンピュータを再起動してください。
# service netif restart
Apache について
そもそも私が FreeBSD に興味を持ったきっかけはくいなちゃんのツイートにあったのでした。
まずは Apache 2.4.x をインストールします。
# pkg install apache24
そして /usr/local/etc/apache24/httpd.conf コメントアウトされている行を有効にし、適当なサーバ名を設定します。
# ed /usr/local/etc/apache24/httpd.conf
/#ServerName/s/^#//
w
q
Apache を起動するために rc.conf に設定を追加する必要があります。 accept(2) の挙動を変化させるキショいオプションも有効にしておきます。
# sysrc apache24_enable=YES
# sysrc apache24_http_accept_enable=YES
Apache を再起動したり設定ファイルを検証したりするには apachectl
コマンドを使います。
# apachectl restart
# apachectl configtest
デフォルトのドキュメントルートは /usr/local/www/apache24/data です。
CPU 温度を調べる
まずは coretemp モジュールを読み込む必要があります。 AMD の CPU を使っているなら amdtemp モジュールを読み込むようです。 一時的に読み込むだけなら kldload(8) を使うと良いです。
# kldload coretemp
CPU の温度は sysctl(8) で確認できます。
% sysctl -a dev.cpu | grep temperature
dev.cpu.3.temperature: 74.0C
dev.cpu.2.temperature: 71.0C
dev.cpu.1.temperature: 72.0C
dev.cpu.0.temperature: 71.0C
ディスクイメージをマウントする
Linux では loop デバイスを勝手に作ってよしなにしてくれるんですけどね。
FreeBSD でディスクイメージをマウントするには md(4) を利用します。 md デバイスは GENERIC カーネルに組込まれているように思われます。
まず、仮想のデバイスであるメモリディスク md0 を /dev の配下に生やします。mdconfig のオプション -u の引数の数字を変えるとデバイスファイルの番号が変わります。 メモリディスクをマウントすれば、ディスクイメージに格納されているファイルにアクセスできます。
# mdconfig -a -t vnode -f disk.img -u 0
# mount -t msdosfs /dev/md0 /mnt
アンマウントしたのち、メモリディスクも削除するのが良い考えでしょう。
# umount /mnt
# mdconfig -d -u 0
X11 で CapsLock を Ctrl にする
CapsLock に深い恨みがあるわけではないですが、不意に押下するとやはり厄介なのです。
FreeBSD に X11 をインストールしたときについてくるデフォルトの xinitrc は $HOME/.Xmodmap の存在を調べ、存在する場合にこれを読み込むように働きかけてくれますから、この仕組みを利用します。
clear lock
keycode 66 = Control_L
add control = Control_L Control_R
や、もしかしたらなんか自動で読み込まれないかもしれないですね、これ。手動で読み込めば良いのです。
% xmodmap ~/.Xmodmap
PCManFM: X11 のファイルマネージャ
良いですよ。