GhostBSD 24.07.3の環境構築(その7;日本語の入力)

Linuxの日本語環境だと大抵の場合は日本語はすぐに入力できたりしますが,さすがはBSDだけあって簡単ではありません。そもそもFreeBSDではemacs上でしか日本語は扱わないことにして,それ以外は全部,macOSを使うという逃げをうってきたので最近のUNIX系での日本語入力環境についてはさっぱりわかていないというのもあります。

rootになって

pkg install ja-ibus-mozc

とやると関連ファイルもまとめてインストールしてくれます。pkgが終了するときにja-ibus-mozcからのメッセージということで.xinitrcにあれこれ記入するように,という指示が表示されます。しかし,当然ですが,それを追加しても正しく動きません。私のやり方が悪いだけかもしれませんが。

ここに書かれているとおり,メッセージが示す設定はどうやら,.xprofileに書くのがよさそうです。.xprofileの最後に以下を追記します。これらが何を意味しているかはまったく分かってません。

export QT_IM_MODULE=xim
export XMODIFIERS=@im=ibus
/usr/local/bin/mozc start
ibus-daemon -r --daemonize --xim

これでOSを再起動をしておきます(しなくてもよい気もする)。システム -- 設定 -- その他 -- iBusの設定とたどって設定します。

「一般」タブで「次の入力メソッド」はshift+spaceに設定しました。「入力メソッド」タブでは英語-英語(US)だけしか表示されていないので追加ボタンをおして「日本語」「Mozc」と押していくと「日本語-Mozc」というのが追加されます。ここまでやったらもう一回再起動します。

再起動すると上部のタスクバーにMozcが表示されます。クリックすると英語か日本語-Mozcが選べます。日本語を選ぶとMozcに切り替わります。これで,shift + spaceを叩くと英数字と日本語が切り替わるのかと思うとなぜかうまくいきません。Mozcに切り替わっている状態でタスクバーのMozcの部分をクリックするとメニューが表示されるので「入力モード」を選びます。「直接入力」が選ばれているので,「ひらがな」を選びます。これでShift + Spaceで日本語と英数字を切り替えられるようになります。とりあえず,Xtermとfirefoxで日本語が入力できることを確認しました。

普段使いへの道のりはまだまだ遠いです。

GhostBSD 24.07.3の環境構築(その6;フォントの設定)

前回までの手順でとりあえず,GhostBSDでリモートのXアプリを起動してローカルのGhostBSDの画面に表示することはできるようになりました。

しかし,GhostBSDのメニューでアプリケーション -- システムツール -- XTermとたどってxtermを起動すると,.xsession-errorsに,

xterm: cannot load font "-misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1"

などというメッセージが残っていて,ホームディレクトリでlsなどとすると,トーフ(白い四角)の文字が表示されます。本当は「ダウンロード」とか「デスクトップ」などというような日本語のディレクトリ名が表示されなくてはなりません。明らかにフォントにアクセスできていません。Xのフォントの設定なんて何百年か前にやって以来,近年ではなんでも自動でやってくれるようになったのでまったく頭から抜けていました。

上でロードできないと言われたフォントは,/usr/local/share/fonts/misc/の下にちゃんとインストールされています。/usr/local/etc/share/fonts/misc/fonts.dirの中を見てみると

6x13.pcf.gz -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1

という行があって,同じディレクトリには6x13.pcf.gzというファイルが存在しています。要するに,xtermがこのフォントを見つけられていない,ということがトーフの原因だとわかります。同様に,リモートのXアプリであるEtermを起動してフォントがない,といって起動できないのもfonts/misc/以下のフォントにアクセスできていないことが原因だと思われます。

というわけで,今更のようにXのフォント設定の方法を調べてみると,例えばここにX windowの設定方法などが書かれているのを見つけました。ありがたいことです。

xset q

として現在の設定を表示させると,

Font Path:
/usr/local/share/fonts/TTF/,/usr/local/share/fonts/OTF/,catalogue:/usr/local/etc/X11/fontpath.d,....

というような表示がでてきます。この表示のなかには,確かに/usr/local/share/fonts/misc/は含まれていません。一方,アプリケーション -- システムツール -- MATE端末を開いてxset qとやると/usr/local/share/fonts/misc/が含まれています。Font PathのセクションでxtermとMATE端末の違いはこの部分だけです。そこで,xterm上で,

xset +fp /usr/local/share/fonts/misc/

としてフォントパスを追加しました。xset qで確認すると確かに追加されていることがわかります。

これで,ホームディレクトリでlsをするとちゃんと日本語のディレクトリ名が表示されました。

再起動してもxterm上で日本語が表示されました。文字コードはUTF-8です。また,リモートのEtermを起動してもちゃんと起動してlessでファイルの中身を見るとちゃんと日本語も表示されました。こちらは文字コードをEUCに設定していますのでややこしいことこの上ないのですが,GhostBSDの日本語環境をEUCに変える気力がなくて,もうこのまま成り行きにまかせてしまうことにしました。いや,本当はEUCで揃えたいのですが,もうそこでがんばる気力がないので,当面は文字コードの取り扱いは放置です。ええんか?

GhostBSD 24.07.3の環境構築(その5;再インストール)

いったい何回目の再インストールかわからないレベルになってきましたが,SSDを撤去して日立の2TBのHDDを2台いれて,ミラーリングで動かすことにします。バラしたついでにマザーボードを確認したらASRockのB550M Steel Legendでした。ネットワークに繋がらないと不便すぎるのでUSB接続の適当なネットワークアダプタ(Apple純正の100Mbpsのネットワークインターフェースを使ったらue0として認識した)を突っ込んでインストールをはじめました。

それにしても方針が定まりません。

1. GhostBSDのオフィシャル版をUSBメディアから起動。
2. デスクトップ上のInstall GhostBSDというアイコンをダブルクリックしてインストーラを起動
3. 言語を選択(日本語)
4. キーボードを選択(Englis (US) -- Generic 101-key PC)
5. Time Zoneを選択(Asia -- Tokyo)
6. Installation Typeは何も考えずにFull disk configuration
7. ZFS ConfigurationはPool Typeを2 disk mirrorとしてada0とada1にチェック。Swap Sizeをメインメモリと同じ65536MBに変更
8. Boot OptionはデフォルトのFreeBSD UEFI loader only
9. Userの設定では適当なユーザを設定しておきます。自分用の本番設定はインストールをしてからadduserコマンドで設定します。そうしないとUIDとかGIDを勝手に割り振られてややこしいことになるので。ここで設定したユーザーは自分用のアカウントでrootになれることを確認すれば消してしまいます。
10. インストールがはじまる。
11. インストールが終わったら再起動するかどうか聞かれるのでそのまま再起動してUSBスティックを抜く。

12. 再起動したら適当に作ったアカウントでログイン
13. アプリケーション--システムツール--MATE端末とたどってターミナルを起動
14. suでrootになる。そのとき,適当に作ったユーザーのパスワードを入力するとrootになれる。
15. pciconf -lvとするとRTL8125がnone0となっていてドライバが動いていないことがわかる。
16. pkg install realtek-re-kmodとしてRTL8125用のドライバをインストールする。
17. /boot/loader.confに以下を追記。
if_re_load="YES"
if_re_name="/boot/modules/if_re.ko"
18. /etc/rc.confに設定を追記
ifconfig_re0="inet 192.168.xxx.yyy netmask 255.255.255.0"
defaultrouter="192.168.xxx.1"
hostname="hoge.fuga.jp"
ntpdate_enable="YES"
ntpdate_flags="-b 192.168.xxx.zzz"
sshd_enable="YES"
ntpdはローカルのntpサーバーとちゃんと接続できないのでntpd_*のエントリーはコメントアウト。
ローカルの環境なのでipfw_enableとfirewall_enableもコメントアウト。
19. ここまで設定したらちゃんとネットワークアダプタが認識されるか確認するために再起動。

20. ログインしてpciconf -lvとするとちゃんとRTL8125がre0として認識されていることがわかる。
21. ネットワークケーブルをre0のポートに接続してifconfigを叩くとちゃんと2500Base-Tで接続していることが確認できる。
22. パッケージのアップデート
pkg update
pkg upgrade
23. グループの追加
自分用ユーザーはUIDとGIDを昔から使ってきたものを使いたい。/etc/groupを編集して,100, 200, 300, 400のGIDを手動で追加。
24. 自分用ユーザの設定
adduserと叩いてユーザーを追加する。UIDは以前から使ってきた番号を設定。groupは以前から使ってきたGIDである100を/etc/gourpに設定した名前を入力。追加のグループとしてwheelとoperatorを半角の空白を区切り文字にして追加する。これらのグループに入っていればrootになれる。
25. インストール時に適当に作ったユーザのパスワードがrootのパスワードになっているので,suでrootになって,passwdコマンドでrootのパスワードを変更しておく。
26. /etc/ssh/sshd_configのX11Forwardingのコメントをはずしてyesに修正。
27. /etc/ssh/ssh_configのForwardX11のコメントをはずしてyesに修正。
28. /usr/local/etc/lightdm/lighdm.confのかなり下の方にある[Seat:*]セクションのなかの6行目のxerver-command=Xのコメントをはずして右辺をX -listen tcpに修正。その4行下のxserver-allow-tcpのコメントをはずしてtrueに修正。
29. ここまでの設定が正しいか確認するために再起動

30. 再起動するとログイン画面ではなぜかユーザーが最初に「適当に設定したユーザー」が表示されていてパスワード待ちになっています。新しく作ったユーザーでログインできない,という恐ろしい状態になってました。sshdが起動していて,かつ新しい自分用ユーザーにリモートからログインしてsuでスーパーユーザーになれることを確認してからvipwで「適当に設定したユーザー」をすっぱり削除します。また,rootのシェルがfishで鬱陶しいのでrootのシェルを/sbin/tcshに変更しておきます。
31. これでもう一度再起動。

32. 今度はログイン画面でユーザー名を入力する画面になっていて,自分用のアカウントを入力してからパスワードを入力する,という当たり前の儀式ができるようになりました。
33. 2画面で使っているのですが,モニタの左右を入れ替えないと使いにくいので(右の画面でマウスを右に動かすと左の画面の左端に移動する!),システム -- コントロールセンターと辿って「ディスプレイ」でモニタの表示位置を設定。プライマリモニタも右側のモニタに変更。
34. 同じコントロールセンターで「ウィンドウ」を起動して「マウスが移動した先のウィンドウを選択する」にチェック。「場所」タブの「新規ウィンドウを中央に配置する」のチェックを外す。
35. さらに「スクリーン・セーバ」でスクリーン・セーバの設定をします。しなくてもデフォルトのブランク画面で全然問題ないけど。
36. モニタの左右を入れ替えても背景が入れ替わらなくて気持ち悪いのでここでいったん再起動。

37. 時刻同期をするようにntpdのかわりにchronyをインストール。
pkg install chrony
cd /usr/local/etc/
mv chrony.conf chrony.conf.org
vi chrony.conf
として新たにchrony.confを作成し,

makestep 1000 10
rtcsync
server 192.168.XXX.YYY

とだけ書き込み,/etc/rc.confにchronyd_enable="YES"を追記。/usr/local/etc/rc.d/chronyd startで起動させ,chronyc sourcesで同期の状態を確認。
38. なぜかxhostがインストールされていないので,
pkg install xorg
としてxorg一式をインストール。これでxhost +としてからssh -X hogeとやってリモートに接続するとリモートのXアプリを手元に表示できるようになります。でも,日本語フォントを使うEtermを起動すると,k14などいろいろなフォントが足りない,とかいろいろと苦情を言われて起動しません。だめじゃん。再インストールする前はちゃんと動いていたんだけどなぁ。フォントの扱いは次回に続く。

乞うご期待,って誰も期待してないし。