SSブログ

Pixel desktopからRetroPieを起動する [Raspberry Pi]

『そうだ,ラズパイでポータブルしよう!』のSW編の一部ですが,少々長いのと,あまり見ないネタなので,別エントリーにしてみました。


『そうだ,ラズパイでポータブルしよう!』は…

な,感じでやってます。(ました。)


Pixel desktopからRetroPieを起動する

Google先生に伺っても,良い感じのネタが少なく,少々難儀しました。
まぁ,ラズパイでレトロゲームならLakkaやRecalBoxとかあるし,こんな面倒,やる人はそうは居ないと思いますが,何かの参考にして頂ければ幸いです。


動作の概要:

  • 画面をPixel Desktop(tty7)からtty1に切り替え,ttyechoを使ってtty1上でEmulationStationを起動する。
    * この際,元のX(tty7)は終了していません。
  • EmulationStationが終了したら,Pixel Desktop(tty7)へ戻す。

条件:

  • ラズパイの設定は,初期状態で行った方が,面倒に遭遇せずにすむと思います。
    • 高速起動チューニングなどでttyを無効にしている場合,注意。
    • ラズパイのBTはUART。 などなど
  • RetroPieは,普通にセットアップする。
    • LXTerminalでgit cloneしてsudo ./retropie_setup.shしました。
      # OS ImageじゃないRetroPieは初めて触りました。

問題:

  • Pixel Desktop(X)が起動したままなので,エミュのパフォーマンスが落ちる(かも)
  • 入力系に問題が出るかも。(未確認)

手法:

  • 基本,ご参考をトレースしてます。

ご参考:


* 以下,EmulationStationをESと記述してます。


1: RPiがコンソールとして使用している"tty1"を"tty2"へ変更する。

/boot/cmdline.txtのtty1tty2へ修正。

~ console=tty2 ~

2: ttyechoを取得して設置

ttyecho は,他のコンソールへテキストを送信するソフト(らしい)
# 以下,1行で実行

curl -O "http://aoakley.com/articles/artifacts/retropie-pixel/ttyecho" && sudo mv ttyecho /usr/local/sbin && sudo chmod 755 /usr/local/sbin/ttyecho && sudo chown root.root /usr/local/sbin/ttyecho

3: RetroPie.desktopを取得して設置

Desktop Entryって,Xからソフトを起動させるファイル?
# 以下,1行で実行

curl -O "http://aoakley.com/articles/artifacts/retropie-pixel/retropie.desktop" && sudo mv retropie.desktop /usr/share/applications && sudo chmod 644 /usr/share/applications/retropie.desktop && sudo chown root.root /usr/share/applications/retropie.desktop

ちなみにダウンロードした retropie.desktop の中身は…

[Desktop Entry] Type=Application Name=RetroPie Comment=Retro video game emulators Exec=sudo su -c "systemctl stop lightdm ; ttyecho -n /dev/tty1 \"emulationstation ; sudo systemctl start lightdm\"" Icon=face-smile-big Terminal=false Categories=Application;Game;

な感じ…


4: RetroPie.desktopから呼び出すスクリプトを用意

例えば…

nano /home/pi/RetroPie/startES.sh

中身は…

#!/bin/sh sudo chvt 1 sudo su -c "ttyecho -n /dev/tty1 \"emulationstation ; chvt 7;\""

このスクリプトで,tty1へ切り替え →ttyechoでES起動 →ES終了したら,Pixel desktop(tty7)に戻るようにしています。
"ご参考"では,最後 startx ですが,これだとES終了後,tty1でXが起動してしまい,元々のデスクトップ(tty7)と2重起動状態になってしまいます。


スクリプトに実行権限をつけます。

chmod +x /home/pi/RetroPie/startES.sh

5: retropie.desktopを修正

* 事前に Retropie.icoを用意して,/home/pi/RetroPie/ 以下へ設置しておく事。
今回は,Retropie Icon | Papirus Apps Iconset | Papirus Development Teamから "ICO" ファイルをダウンロードしました。

retropie.desktopを開き

nano /home/pi/.local/share/applications/retropie.desktop

中身(Exec, Icon行)を修正

[Desktop Entry] Type=Application Name=RetroPie Comment=Retro video game emulators Exec=/home/pi/RetroPie/startES.sh Icon=/home/pi/RetroPie/Retropie.ico Terminal=true Categories=Application;Game;

注意:

  • ユーザー"pi"のデスクトップエントリーを修正していますので,他のユーザーと共用する場合は,RetroPieのフォルダを含め,色々調整が必要…

最後にReboot。。。



これで,Pixel DesktopからESを起動,ES終了でPixelに戻る事が出来ます。
しかも,Pixel Desktopを終了しないので,作業途中の物を開きっぱなしでもOK!
# でも,開きっぱなしは不安なので,一応,セーブしてからESを起動しましょう(笑



コメント(1) 
共通テーマ:趣味・カルチャー

コメント 1

松永武

記事のおかげで、うまく出来ました。(今更かも?ですが)
ありがとうございました。
RasberryPI OS 32bitでうまくいったので、64bitでもやってみた所、
「2: ttyechoを取得して設置」がダメでした。
一応、「ttyecho source」でgoogle先生にお伺いし、
以下からソースを頂き、64bit環境でmake ttyechoしたもので動きました。
https://gist.github.com/FUT/5812683
original は https://www.humbug.in/2010/utility-to-send-commands-or-data-to-other-terminals-ttypts/ みたいですが、先に見つけたのを使用

追加情報まで
by 松永武 (2023-01-08 11:11) 

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。