編輯嚴選
樹莓派 (Raspberry Pi) tty 以 Fbterm 和 fcitx 輸入中文

2021/01/13閱讀時間約 5 分鐘
tty 無法顯示中文

背景

在 Linux 預設情況下有提供六個命名為 tty1~tty6 的「文字介面」供使用者登入,切換的方式是按:[Crtl] + [Alt] + [F1~F6],在 Raspberry Pi OS 也承襲的這樣的設定,其中 tty1 會自動登入 (預設為pi),而 [Crtl] + [Alt] + [F7] 則是切換回「圖形介面」
然而,雖然現行版本的樹莓派 OS 圖形介面中顯示繁體中文 (zh_TW.UTF-8) 沒有任何問題, 但在 tty1~tty6 等文字介面中卻無法正常顯示及輸入中文

原因

上網找了一下原因,原來是因為預設的 tty 只能顯示一個位元組,不支援 UTF-8 多位元組,所以僅能顯示英文沒辦法使用漢字。為此,我們可以藉由運行 FBTerm 環境獲得一個支持顯示 UTF-8 字體的純終端,而且 FBTerm 目標是與 Linux 核心終端一樣迅速,除此之外,FBTerm 還可以自訂配置字型樣式及大小、預設前/背景色,讓視覺使用上更加舒服,同時也避免孩子 (使用者) 因為字太小而過於靠近螢幕,而造成近視或不良坐姿問題。
另外,據網路資料顯示, fcitx 系統的輸入法在 FBTerm 上比較正常,所以一併進行 fcitx 中文注音輸入法的安裝。

以下紀錄我的安裝步驟:

FBTerm

安裝

sudo apt-get install fbterm

執行

fbterm -s 20
安裝好之後就可以執行一下測試看看。參數 s 表示 font-size。
在 FBTerm 環境成功顯示中文字型
若出現顯示:
can't open buffer frame device!
mmap /dev/zero: Operation not permitted
Using VESA requires root privilege
表示當前登入的使用者沒有在 video群組中,所以必須以 root 權限執行。若想將非root的使用者能使用fbterm,則將該帳號名稱,如user_name加入video群組 ( /dev/fb0 所屬群組):
$ sudo adduser [ user_name ] video
而針對成功執行 FBTerm 出現的錯誤訊息:
[input] can't change kernel keymap table, all shortcuts will NOT work! ...
則是輸入下方指令,使其能使用系統快捷鍵資源
$ sudo setcap 'cap_sys_tty_config+ep' /usr/bin/fbterm

編輯 FBTerm 設定檔

FBTerm 除了 font-size 以外還有許多參數可以設定,但若是每次都要重新 key in 未免也太累人了,不如把相關設定寫入設定檔保存起來。
設定檔存放的位置在 ~/.fbtermrc 。可以用 nano 開啟修改其中參數進行設定
$ nano ~/.fbtermrc
fbtermrc

登入 tty 後自動執行 FBTerm

偷懶就要極致~目前 tty 登入後還要 key in “fbterm” 才會啟動 FBTerm,能不能讓它登入後就自動執行呢?當然可以
$ sudo nano ~/.profile
在最後面加入:
# 確認如果在 tty 底下就執行 fbterm
if [ “$TERM” = “linux” ] ; then
fbterm
fi
搞定!!
如果目的只是要能在 tty 顯示中文,到這裡就OK了;
但如果還想要輸入中文就要繼續下面 fcitx 安裝的步驟

Fcitx 輸入法

安裝

$ sudo apt-get install fcitx fcitx-chewing fcitx-frontend-fbterm
fcitx        fcitx 輸入法主程式
fcitx-chewing    新酷音輸入法;類似微軟新注音的輸入法
fcitx-frontend-fbterm 使 fcitx 在 fbterm 下執行
安裝完成後,重新啟動樹莓派
重新啟動後,若看到桌面右上角的狀態列中多了一個小鍵盤圖示,就表是安裝成功了
Fcitx 圖示

Fcitx 設定

點選桌面左上角[開始選單]>[偏好設定]>[ Fcitx 設定]啟動設定程式
Fcitx 設定
打開設定程式後,在「輸入法」頁籤中可以看到已經安裝好的「新酷音」輸入法。
若有安裝其他輸入法,可以在此頁中調整輸入法順序
在「全域設定」頁籤,可以設定啟動輸入法的快捷鍵,預設的快捷鍵跟 Windows 作業系統一樣都是按 Ctrl + 空白鍵 啟動。
其餘設定這邊就不在贅述,大家就自己試試看唄~

啟用 Fctix 輸入法

使用 FBTerm 時,如果沒有啟用 Fctix 的話,按下 Ctrl + 空白鍵 依然是不會有任何效果的。因此,最後一步便是設定 FBTerm 預設啟用 Fctix 輸入法
開啟 FBTerm 設定檔
$ nano ~/.fbtermrc
修改 input method
input-method=fcitx-fbterm
按 Ctrl + S 存擋後離開 ( Ctrl + X )
如此,便完成了所有的 Fcitx & Fbterm 安裝及設定
可以在樹莓派文字介面 ( tty ) 中,舒服地顯示及輸入中文囉~

參考資料

  1. http://fygul.blogspot.com/2019/05/tty-fbterm-yong.html
  2. http://www.renn999.cc/archives/926/
為什麼會看到廣告
大樹爸爸
大樹爸爸
留言0
查看全部
發表第一個留言支持創作者!