走近科學IT版:FreeBSD系統下ThinkPad鍵盤突然按不出b和n鍵了!
很慌,以為鍵盤壞了,在控制臺無法按出b和n,但是在瀏覽器里,可以按出來。
重啟機器,結果在瀏覽器里也按不出來了....
按Ctrl+空格,切換輸入法,結果就正常了。
在寫這篇文章的過程中,又出現了無法按出n的情況,這是怎么回事呢??
檢查
acdefghijklmopqrstuvwxyz1234567890-=[]\;',.
?也就是打不出來的字符是:b n ? 和空格這四個字符。?就是/這個鍵位。
檢查當前鍵盤布局:
kbdcontrol -d
kbdcontrol: getting keymap: Inappropriate ioctl for device
沒有拿到信息...
到tty1去,kbdcontrol -d有很多信息,但是沒有關于keymap相關的信息
AI建議的幾種解決方法
1 強制重置輸入法狀態
pkill -9 fcitx; pkill -9 chsimerm -rf ~/.config/fcitx/*
2 修復鍵盤布局配置
# 備份原配置
sudo cp /etc/rc.conf /etc/rc.conf.bak
# 強制使用通用us鍵盤布局
sudo sysrc keymap="us"
# 即時生效配置
sudo kbdcontrol -l us
如果下次再碰到問題,就用方法2試試。
思考,大約是輸入法惹的禍,有可能是切換到其它文字的輸入了,沒有b和n。
先存檔。
2025.6.26日又碰到一次,這次是用關閉fcitx輸入法解決的。
2025.6.27 這次又碰到了
但是這次關閉輸入法不管用了,這次發現是n b / 和空格,向右等鍵都失靈了
dmesg看到的信息:
Jun 25 09:48:01 x250 kernel: atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
Jun 25 09:48:01 x250 kernel: atkbd0: <AT Keyboard> irq 1 on atkbdc0
Jun 27 10:29:23 x250 kernel: atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
Jun 27 10:29:23 x250 kernel: atkbd0: <AT Keyboard> irq 1 on atkbdc0
Jun 27 11:32:29 x250 kernel: atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
Jun 27 11:32:29 x250 kernel: atkbd0: <AT Keyboard> irq 1 on atkbdc0
Jun 27 11:43:28 x250 kernel: atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
Jun 27 11:43:28 x250 kernel: atkbd0: <AT Keyboard> irq 1 on atkbdc0
也沒發現啥問題。
拆卸鍵帽,清灰
問題沒有解決
問題解決
一度放棄了,都準備下單一個外置鍵盤了.....
突然感覺不能這樣放棄,應該是哪里還有問題。于是查看以前的文檔:ThinkPad X250在 FreeBSD xfce4下小紅點不能用、觸摸板不能用以及鍵盤上下左右變成其它鍵_thinkpadx250觸摸板-CSDN博客
盡管問題不完全相通,但是讓我堅定了大約是配置問題的信心。最近改了啥配置呢? 為了調試wifi,確實往rc.conf文件里寫東西了,有的是自己寫的,有的是裝了新軟件自動寫的。
打開/etc/rc.conf文件,發現最后一行是這樣的:
keymap="us"
把這句注釋掉,然后執行
sudo /etc/netstart
問題解決!
所以...這件事從頭來說,就是因為/etc/rc.conf文件中多了一句keymap="us" ??
真的是太神奇了。