透過moonlight串流玩PC遊戲(三):Raspberry Pi連接Xbox One S藍牙遊戲控制器、Zero 2 W編譯與安裝Moonlight Embedded

本文的Raspberry Pi Zero 2 W單板微電腦由台灣樹莓派Sosorry先生提供,特此感謝!

樹莓派Zero系列板子尺寸迷你,許多玩家用它來DIY掌上型遊戲機。下圖是一位玩家分享到Reddit網站,使用Raspberry Pi Zero加上5.5吋螢幕製作的串流掌機,透過Moonlight遊玩PC上的遊戲。本文後半將說明在樹莓派Zero W板子編譯和安裝Moonlight Embedded(透過文字命令操作的Moonlight用戶端)的步驟。

Raspberry Pi Zero掌上型遊戲機

樹莓派連接Xbox One S藍牙無線控制器

玩遊戲少不了遊戲控制器(電玩手把),樹莓派3B和Zero W以及更新的樹莓派微電腦板都有內建藍牙通訊晶片,可連接無線遊戲控制器。

樹莓派Zero 2 W和Xbox One S遊戲控制器

Xbox One S遊戲控制器採用標準藍牙無線介面,可連接個人電腦和智慧型手機。底下是在Raspberry Pi OS “bullseye”發行版連接Xbox One S遊戲控制器的操作步驟:

1. 按一下Xbox One遊戲控制器上的「配對」鈕,然後點擊樹莓派系統藍牙功能表的Add Device(新增裝置)命令:

新增藍牙裝置

2. 過一會兒,樹莓派將探索到Xbox One無線控制器。

探索到Xbox One無線控制器

3. 點選Xbox Wireless Controller(無線控制器)之後,按下Pair(配對),系統出現底下的錯誤訊息:

配對錯誤

4. 參考Tom’s Hardware網站的“How To Use Playstation and Xbox Controllers With Raspberry Pi”文章,在終端機輸入底下命令,禁用ERTM(Enhanced Re-Transmission Mode,直譯為「增強重傳模式」),因為在預設啟用ERTM模式情況下,它會阻斷Xbox One控制器和Raspberry Pi的訊號同步。

echo ‘options bluetooth disable_ertm=Y’ |  sudo tee -a /etc/modprobe.d/bluetooth.conf

5. 重新啟動樹莓派,即可在藍牙功能表看到Xbox Wireless Controller選項。

連接Xbox One S控制器

6. 選擇Connect(連線)命令,即可連線成功。

連接成功

在樹莓派Zero W板子上安裝Moonlight Embedded

為了配合目前的Moonlight Embedded版本,我安裝在Zero 2 W板子上的作業系統是舊版(Legacy),也就是Buster發行版。使用樹莓派官方的Raspberry Pi Imager映像檔燒錄工具,選擇下載“Legacy”版本。

舊版(Legacy)Raspberry Pi OS

依據moonlight-embedded的github原始碼寄存網頁的說明,在樹莓派Zero 2 W控制板安裝moonlight-embedded的步驟如下:

1. 執行下列命令,在Raspberry Pi系統中新增程式儲存庫(repository):

curl -1sLf  'https://dl.cloudsmith.io/public/moonlight-game-streaming/moonlight-embedded/setup.deb.sh'  | distro=raspbian codename=buster sudo -E bash

2. 安裝moonlight-embedded套件:

sudo apt install moonlight-embedded

3. 更新套件:

sudo apt update
sudo apt upgrade

moonlight-embedded安裝完成後,執行moonlight pair命令和指定IP位址的個人電腦配對。我分別在Zero W和Zero 2 W上執行,都無法正常運作,兩個板子回報的錯誤訊息也不同。

不合法的命令

從原始碼編譯Moonlight Embedded

後來在樹莓派Zero 2 W上,從原始碼重新編譯Moonlight Embedded。底下是編譯與安裝Moonlight Embedded的步驟,翻譯自“Full details for Compilation and Installation in Raspbian Or OSMC”這篇說明。

1. 首先執行底下命令,確保移除之前安裝的Moonlight Embedded(如果有的話):

sudo apt-get purge moonlight-embedded

2. 接著安裝必要的編譯工具:

sudo apt-get update
sudo apt-get install git libopus0 libexpat1  libasound2 libudev1 libavahi-client3 libcurl4 libevdev2 libssl-dev libopus-dev  libasound2-dev libudev-dev libavahi-client-dev libcurl4-openssl-dev  libevdev-dev libexpat1-dev libpulse-dev uuid-dev cmake gcc g++

3. 安裝樹莓派的開發工具程式庫:

sudo apt-get install libraspberrypi-dev

4. 執行底下命令下載、編譯Moonlight Embedded的原始碼並安裝:

git clone  https://github.com/moonlight-stream/moonlight-embedded.git
cd moonlight-embedded
git submodule update --init --recursive
mkdir build
cd build/
cmake ../
make -j$(nproc)
sudo make install
sudo ldconfig

5. 重新啟動樹莓派。

sudo shutdown -r now

編譯的過程沒有花費太多時間,重新啟動之後,在終端機執行moonlight pair 192.168.x.x(電腦的IP位址)跟電腦配對之後,再執行moonlight stream 192.168.x.x即可連上電腦進行串流。

不過,因為我的電腦尚未安裝Steam平台的軟體(使用圖形介面的moonlight Qt版連接PC不需要安裝Steam),所以它回報找不到Steam App。

執行Moonlight Embedded
Posts created 470

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

Related Posts

Begin typing your search term above and press enter to search. Press ESC to cancel.

Back To Top