作者:wakeforest
這是折騰
CM311-1A
和
CoreELEC
的第六篇,簡單回顧下歷程:
① CM311-1A刷CoreELEC
② 配置紅外遙控按鍵等問題
③ 能不能播放原盤
④ 百兆網路升級三百兆
正文開始
之前幾篇文章留言裡,好幾個朋友都在問藍芽遙控器怎麼配置。經過一番摸索後,我這裡成功實現了藍芽遙控器的配置,可以正常使用。本文記錄下這個過程,希望能夠對關心這個問題的朋友有所幫助。
我的遙控器就是如下圖這個自帶的遙控,之前一直使用紅外。紅外也不是不能用,就是一定要對準盒子的紅外接收視窗,這款遙控器更甚,稍微偏一點就不響應。
1。 嘗試開啟藍芽
CoreELEC
先切換到【設定】【CoreELEC】【藍芽】頁面上(此刻用還是紅外模式,廢話)
SSH連上
CM311-1A
,然後在命令列依次輸入以下命令:
預設系統的藍芽服務是關閉的,所以先啟動藍芽
systemctl start bluetooth
然後將兩個檔案連結到對應位置
ln -s /lib/firmware/rtl_bt/rtl8761b_fw。bin /lib/firmware/rtlbt/rtl8761b_fw
ln -s /lib/firmware/rtl_bt/rtl8761b_config。bin /lib/firmware/rtlbt/rtl8761b_config
啟動藍芽除錯工具
rtk_hciattach -n -s 115200 ttyS1 rtk_h5
上述步驟完成後,在【設定】【CoreELEC】【藍芽】中可以看到自己的藍芽遙控裝置了。請注意下自己的藍芽遙控器名稱(我這裡是CMCC_Voice_Remote)。現在可以初步體驗下藍芽遙控了。
這就結束了嗎?不,這才剛剛開始。
上面通過幾行命令是可以讓藍芽遙控器與盒子配對,不過難道
每次
開機都要這麼一頓操作嗎?
初步體驗藍芽遙控,發現中間那個
確定鍵
失效了,需要重新對映。沒有確定鍵什麼都做不了。
以下就來解決這
兩個問題
。開始之前,先在命令列輸入reboot,讓盒子重啟,重啟後還是使用紅外遙控。
2。 開機啟動藍芽
Linux
開機啟動服務的常規辦法似乎在
CoreELEC
系統裡無法使用(也許是水平有限)。因此,打算用定時任務cron隨系統啟動執行上面的命令。具體做法:把上面的4條命令放到一個指令碼檔案裡,chmod +x賦予執行許可權,然後用crontab -e命令新增一個開機定時任務。
@reboot sh /storage/xxxx/custom_start。sh
設想是美好的,但實際上就是無法觸發這個@reboot任務。經過一番除錯,發現一般的定時任務沒有問題,就是@reboot無法觸發,所以這條路放棄了。
在網上查詢類似問題,居然在CoreELEC官網找到答案。
解決辦法:新建檔案 /storage/。config/
autostart.sh
,然後寫入如下內容:
(
sleep 2s
date >> /storage/xxx/output。txt
systemctl start bluetooth
ln -s /lib/firmware/rtl_bt/rtl8761b_fw。bin /lib/firmware/rtlbt/rtl8761b_fw
ln -s /lib/firmware/rtl_bt/rtl8761b_config。bin /lib/firmware/rtlbt/rtl8761b_config
rtk_hciattach -n -s 115200 ttyS1 rtk_h5
)&
給這個指令碼賦予執行許可權:
chmod +x autostart。sh
上面指令碼中第一行和第二行可以不要,這是我做除錯用的。第三行systemctl start必須放在這裡,是因為systemctl enable bluetooth實測沒有起作用。
這樣,每次
啟動
(注意:是指盒子上面的物理按鈕,後面會講)就會執行這個指令碼啟動藍芽。
3。 重新對映確定鍵
站內已經有先行者介紹了N1上藍芽遙控確定鍵重對映的方法,這裡用作參考,一遍透過,感謝這位作者。
3.1 安裝System Tools外掛
完成了上面的開機藍芽啟動配置,使用的仍是紅外遙控,所以此刻確定鍵還能用。(如果此時你的遙控已經是藍芽與盒子配對了,需要在命令列reboot將盒子重啟下,因為重啟後恢復紅外,確定鍵還能用,或者用鍵盤也行)
安裝
System Tools
外掛,根據介紹這個外掛包括了linux下的一些常用工具,比如htop/jq/unrar等,下面將會用到的
evtest
也在這個外掛裡。
3.2 查詢遙控器硬體標識
上步中System Tools外掛安裝完成後,
斷電(盒子上物理按鈕)
,重新
上電
,啟動系統。因為前面配置了開機自動啟動藍芽,
遙控與盒子會配對上。
再用SSH登入系統,透過下面的命令獲得藍芽遙控器裝置資訊:
cat /proc/bus/input/devices
在返回結果中找到自己的遙控器,我的是CMCC_Vocie_Remote。需要注意輸出資訊中的“Bus=0005 Vendor=0416 Product=0300 Version=0505”,下面配置會用到。
3.3 找到遙控器鍵位的鍵碼
先停止kodi和eventlircd服務:
systemctl stop kodi
systemctl stop eventlircd
再輸入命令:
evtest
,然後根據提示的裝置名輸入對應的數字
然後終端會進入等待按鍵的狀態,按下遙控器上的確定鍵,可以看到返回的鍵碼:
c0041
新建
配置檔案:/etc/udev/hwdb。d/10-btok。hwdb,寫入內容:
evdev:input:b0005v0416p0300*
KEYBOARD_KEY_c0041=enter
注意:
第一行指定裝置,格式: evdev:input:b{bus_id}v{vendor_id}p{product_id}*,bus_id/vendor_id/product_id三個值在【查詢遙控器硬體標識】小節中已獲得。
第二行對映建碼,
KEYBOARD_KEY_{key value}
開頭
有個空格,
{key value} 就是確認鍵的建碼,在【找到遙控器鍵位的鍵碼】小節中已獲得。
3.4 配置生效
重啟服務
systemd-hwdb update
udevadm trigger
systemctl start eventlircd
systemctl start kodi
輸入確定按鍵生效命令:
udevadm info /dev/input/event4 | grep KEYBOARD_KEY
完成以上各個步驟後,
開機
藍芽自動啟動,並且包括確定鍵在內的幾個常用按鍵都能正常使用。這裡【
開機
】需要說明下,指的是從盒子的物理開關機按鈕開機。從遙控器上開關機按鍵開機還是無法正常開啟藍芽,這是下步需要解決的問題。