2023年7月15日土曜日

ps4 itarch v3 メモ

■更新履歴
2024/05/05 再インストしてみて、間違ってたとこや気づいたことを修正と書き込み
2024/08/26 久々に起動してupdate。keyが違うと言われたので↓にあるように更新してupdate。1.2G 約2時間。LLVMが18になって上書きされた以外特に問題はなかった。戻す方法は下の方に書いてます
2025/04/05 ps4linuxの動作が重いことについて を一番下に追加した。他気が付いたところをちょこちょこ修正





V2からV3になりあちこち細かく変更されています。
少しでも間違えれば、すぐ吹っ飛ぶ所は変わりませんが・・

■初めに
まずはkeyを最新に合わせます。これをしないと違う人が作ったパッケージが入ってしまい、取り除くのに苦労します。
sudo pacman-key --init && sudo pacman -Sy archlinux-keyring && pacman -Syu

※V3はpacman -Syuしてはいけないらしい
https://ps4linux.com/forums/d/84-opengl-glx-extension-not-supported-by-display-psxitarch-v3
(2024/05/05)出来るようになってました。少なくともkey更新して初めの1発目だけは。
更新しようとすると容量1.3G 約2時間くらいかかりました。




■sudoコマンドのパスワード要求を無効化する
/etc/sudoers を書き換えます。
sudo leafpad でrootでメモ帳が立ち上がります。

<ユーザ名> ALL=(ALL:ALL) NOPASSWD: ALL  なので
psxita ALL=(ALL:ALL) NOPASSWD: ALL と書き込みます

WinSCPなんかはパスワードを聞いてくる設定だとうまく動かないっぽいので
いちいちパスワード入れるのもめんどいし。



■何はともあれSSH
指定したユーザのみsshによるログイン
/etc/ssh/sshd_config AllowUsers ユーザアカウント

# sshdをスタートさせる
sudo systemctl start sshd
ポート変更とユーザー指定くらいはしておこう



■スワップファイルを調べる
htop

■スワップファイルを作る
sudo fallocate -l 2G /swapfile -x
2Gもあればいいだろう
結構時間かかる。5分くらい

設定します
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

自動的に有効にする
/etc/fstab  を書き換える
/swapfile none swap sw 0 0  ← 一番下の行にこれを追加する

一度ログアウトして、htopでスワップが出来ているか見る。



■タイムゾーンの設定
sudo timedatectl set-timezone Asia/Tokyo



** ***********************************
*************************************
  ここまで出来たら、一度再起動して、起動を確認してからPS4に戻ってFTPからLinuxイメージ(/user/home/にあります)をバックアップしておく事を強く勧めます。

  archはubuntuなんかと違いとにかく壊れやすいので
*************************************
*************************************


■IgnorePkgを使って書き換えては困るパッケ−ジを除外します https://ps4linux.com/forums/d/87-how-to-update-pop-os-without-breaking-drivers-and-ps4-specific-adaptions
↑を参考にしながらIgnorePkgを書き換えます

/etc/pacman.confの中 IgnorePkg に色々書いてありますが、これがpacman で変更してはいけないパッケージです。psxitachの人が変更した部分。
しかしこれでも足りないようなので、私が調べた分を追加します。

gtk3はwindow周りです。これが更新されるとコマンドラインのwindowすらでなくなります。危険度大。

opensshはTeraTermやWinSCPだと動くのですが、visualstudioでリモートしようとすると動かないです。
どうもkeyが信頼されてない方に分類されていることや、archlinuxのwebでもdropbearの方が上に来ていることから、
使わない方が良いと推測されます。危険度中。

SDL周りも更新されると困るので除外します。危険度中。

これらに付随するパッケージ、膨大にありますが除外対象です。

 ffmpeg dolphin-emu-git。なんかしようとすると真っ先に依存関係がおかしいと言ってくるのでこれも除外対象にします。

wine消して、入れ直しただけで動かなくなった。これも何かやってるのか。除外対象にします。
以下が最終的に出来た自分のIgnorePkgです。これらに引っかかるようなら更新はしない方がいいでしょう

linux linux-headers IgnorePkg = xorg*!(xorg-xmessage|xorg-xauth) qt5* qt6* webkit* gst* sdl2* wayland* vulkan* ncurses libpcap libjpeg-turbo libelf libcap alsa-lib gtk* glib* linux-* openssh vid* libvpx libvid* ffmpeg ffmpeg4.4 lib32-mesa libdrm lib32-libdrm xf86-video-amdgpu mesa* xserver-xorg-video-amdgpu* libdrm* dolphin* libavcodec libavformat libavutil libswscale wine

※!()は除外です。例えば xorg*!(xorg-xmessage)の場合、xorgと付くやつ全てを除外したいがxorg-xmessageのみ除外(除外の除外)したいというときに使います。除外が複数あるときは|を使います
(2024/05/05) 何もしなくても行けるようになってました。少なくとも最初の1回目だけは



■日本語入力
V3になってもIMEは入ってませんでした。
fcitxがfcitx5になっているので切り替えたい所ですが、gtk周りでエラーが出るので、V2の時と同じfcitxを使います
sudo pacman -S fcitx fcitx-mozc fcitx-configtool fcitx-gtk2 fcitx-gtk3 fcitx-qt5
なんかわらわらとwarningが出ますが無視。一応動きます。

左上のメニューからlangage -> keybordlayoutを選んでjpにします
systemlangageまで日本語にするとコンソールが横長になり使いにくくなるので、そちらはそのままにしておきます。
※但しその場合、wineのwindowタイトルが文字化けします。winetricksでfontを入れてもです。つまりwineでもwindowはXで書いてるんだなぁという事

fcitxの初期設定
左上のメニューから「jwm comfig」→「config menu」を開く

行末の&はいらなくなりました

デスクトップが英語モードの時はこれでいいのですが、日本語モードにした場合は 上手く行かないので /etc/environment に
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
を加えて下さい
ってJWMのバグじゃね?だからStartupCommandを消したのか

(2014/05/05)多分こいつがわるさしてたんじゃないかなぁ・・と。警告を無視したのがいけなかったか。
fcitx5が使えるようになってた。ひゃっほい
https://qiita.com/mnishiguchi/items/2a1a485a72ff6289b32f


■visual studio のリモートデバックでwindowが表示されない
起動前コマンドに、export DISPLAY=:0 を設定する

(2024/05/07)SDL2を使ったプログラムで出なくなりました。
どうもmesaドライバが古いllvm-14を呼んでいるからみたいです。
今はllvm-17なのですが、このmesaドライバはPS4用に書き換えたみたいでIgnorePkgに入ってるので更新したらまず動かなくなります。
普通ならここでハングアップですが、ちゃんとメッセージを出してくれるのがありがたい。
という訳でhttps://archlinux.org/packages/extra/x86_64/llvm14-libs/ から落としてきて入れます。
sudo pacman -U llvm14-libs-14.0.6-4-x86_64.pkg.tar.zst

また吹っ飛ばした時の為に置いておく
LLVM14セット

sudo ln -s /usr/lib/llvm14/bin/llvm-config /usr/bin/llvm-config

参考 https://ps4linux.com/forums/d/38-winesap-os-possible-solution-to-updating-the-os-without-breaking-the-system/13


■steam
steamのゲームをやろうとして古いランタイムが見つからないと出てくる場合があります。
例) find ~/.local/share/Steam -iname "*libselinux.so*"
でstemライブラリの中でlibselinux.soを検索します。

見つけたら起動用のスクリプトを書きます。
例) これはwaywardフリー版を起動する為のスクリプト
export LD_LIBRARY_PATH=/home/psxita/.local/share/Steam/ubuntu12_32/steam-runtime/usr/lib/i386-linux-gnu/:/home/psxita/.local/share/Steam/ubuntu12_32/steam-runtime/lib/i386-linux-gnu/:$LD_LIBRARY_PATH
./wayward
こんな感じ




■steamで日本語にならない
setting --> interface --> languageを変更しようとしても無反応になる

同じインターフェース内の一番下の"enable context menu focus compatibilyty mode"をONにしてください




■wine
winecfg で初期化です。ホームに.wineを作ります。途中で回線が切れて初期化をやり直したいとかいうときは、.wineディレクトリを削除するとやり直せます。
初期化が終わったら何か適当なものを動かして、画像と音とパットが動くか確認しましょう。どれかがおかしい場合システムを破壊している可能性があります。



■ssh で sudo pacman -S 〇〇とすると エラー
こんな感じ。

参考https://ksk-log.com/posts/2023/06/10-ssh-matlab/
↑のようにsudo XAUTHORITY=~/.Xauthority pacman -S 〇〇とやってもダメです。
1回目は上手く行きますが、2回目から上手くいきません。大人しくsudoを使うときは 本体の方からやりましょう、えー。
これ1度失敗するとリモートデバックにも影響が出ます。リログしても戻らない。再起動なら復活しますが・・。うーむ・・流石謎すぎる。

参考https://askubuntu.com/questions/872792/what-is-xdg-runtime-dir
つまりsudo だとusrと同じ環境変数は使ってくれない・・と。セキュリティの為とはいえめんどいねぇ
sudo nano /usr/local/bin/update-jwm-menu.sh


■ps4 linuxが終了できない
USBメモリが刺さったままになってませんか?
コマンドラインでshutdownとやるとメッセージが出るが、左上のメニューからだと何も出ません。不親切だねぇ。



■blender
ビルド出来ました。blenderは必要なバイナリがすべて用意されているので楽でいいですな。
sqliteをupdateするだけでいけました。svnが重くてDLに1日、ビルドに3時間ほど掛かりました。コアの恩恵がかなりあるのでmake時に-j8 とするのを忘れないようにしましょう。
折角なのでメニューに登録。.jwm-gen-menuです。

こんな複雑なのも読めました。メモリ3G、スワップ800M使用。cyclesで時間2分ほど、一昔前と比べると十分早いが今のPCなら一瞬だろうなぁ。

こちらはEeveeクッソ重いですが、一応できてます













■godot

ビルドできた2時間半ほど。sconsをインストするだけで出来た。sshからビルドしようとすると途中でおかしくなるので本体から。









■krita
appimageを実行するだけ。すべてのソフトがこうなら楽だが。appimageイメージの作り方を見てみてたがやり方がよくわからん

※LuaAppMaker の AppImage を作る
https://d-alchemy.xyz/blog/article/211900136.html
あれ、前は見かけなかったぞこのページ。ちと試してみるか。









■ps4 の内臓HDDにアクセス出来ない
V2の時は自動で出来たような気がするがV3だと出来ていない。なぜ?と思ったら例のスクリプトはpython2用か? V3のシステムはpython3になっているので実行できない。とかそんな理由な気がする。 丁度V2の時に使っていた外付けHDDが残っていたので、そこからkeyをコピーしたら認識した。

※他の人はどうやってんだ?とぐぐってみると案の上発狂してる人がいた。FTPを使ってflash0イメージをwindowsにコピーしてpython2でスクリプトを実行してkeyを取るらしい。聞くだけでめんどいな。他の方法だとorbismanで行けるっぽい? あーV2の時はこれ使ったかも



■pacmanがロックしたら
sudo rm /var/lib/pacman/db.lck
https://www.archlinux.site/2019/12/arch-linuxunable-to-lock-database.html



■ruby
https://mazeltov7.hateblo.jp/entry/2013/11/18/%E3%81%95%E3%81%8F%E3%82%89VPS%EF%BC%88Debian%EF%BC%89%E3%81%ABrbenv%2Cruby%2Cmysql%2Crails%E3%82%92%E5%85%A5%E3%82%8C%E3%82%8B
この辺参考に。ただしgitの場所は変わってるのrbenv/のと、./bash_profileは./bashrcにあと最後くっついてるので 一度開いて確認する。
いつの間にか普通に入れられるようになってました。ホントいつの間に・・。
ついでにrustも入れてYJIT体験しよう。https://www.rust-lang.org/ja/tools/install
rustを入れ終わったら
sudo pacman -S rbenv ←なにはともあれ
sudo pacman -S ruby-build   ←ruby をビルドするのに必要
sudo pacman -S ruby      ←rubyをビルドするのにrubyがいるので仮初のruby
rbenv install (入れたいversion)



■cinderについて
cinder 0.9.2を入れようとしたところ変な現象が起きたので書いておく
これを使うためにはgstreamerがいるのだが、これを入れた後実行するとgstreamerでエラーが出る
どうも/usr/local/lib/にあるgstreamer関係のファイルが悪さするらしいので消しておく。
sudo rm /usr/local/lib/libgst*
同じ場所にgstreamerのディレクトリがあるがこっちが正解なので残しておく
参考 https://askubuntu.com/questions/1348145/gnome-control-center-symbol-lookup-error-lib-x86-64-linux-gnu-libgstvideo-1-0




■パズル&モナーク
https://github.com/tek-nishi/PuzzleAndMonarch
どうもaudioのデコードに失敗してるみたいでm4aをoggにして、難読化用のデータが入ってないので難読化ををoffにしたら動いた。cinderは0.9.1だとエラーが出るので0.9.2で








■ps4linuxの動作が重いことについて
  ps4linuxを動かすとなんかもっさりしていて、思ったより遅いと感じるかもしれません。市販のゲームはあんなにサクサク動いているのに。
  今まではほったらかしでしたが、気が向いたので調べてみた。
  htopを起動すると一目瞭然。CPU1番しか使われてなく100%になってる。そりゃ重いわけだ。
  んじゃ誰がそれをやってるかと調べていくと、どうも割込みが怪しいksoftir+は割り込み関係。
  更に詳しく見ていくと[irq/0-AMD-Vi] [irq/28-mmc0]の文字が・・。この2つだけでcpuの2/3以上も使ってる。
  最初のはIOMMU AIによると仮想化メモリを使うところらしい。スワップファイルとか? 
  ps4linuxは内臓HDDの場合、暗号化してあるHDDの中にlinuxイメージを置いてあるので二重に重いんだろぅなぁ。
  cryptして更にって感じだもんねぇ。本格的に使うならSSD必須。SSDに乗せ換えたい。
  2つ目はメモリーカード関係。ん、でもUSBメモリは外してるけどという事で最初のでぐぐると
  https://github.com/Ps3itaTeam/ps4-linux/blob/ps4-4.14.93/.config
  にたどり着いた。匂う、匂うぜこれは。
CONFIG_GART_IOMMU=y
# CONFIG_CALGARY_IOMMU is not set
CONFIG_SWIOTLB=y
CONFIG_IOMMU_HELPER=y
 この辺をいじって確かめたいところ。カーネルをコンパイルしないといけないとので今回はここまで。
    
で現状やれること。其の一、CPUスケジューラが入ってなかったのでインスコしてタスクを振り分ける。 sudo pacman -S irqbalance sudo systemctl enable irqbalance ←有効にするよ sudo systemctl start irqbalance  ←開始するよ sudo systemctl status irqbalance  ←動いているかチェック 赤くなってたらなんかおかしい 其の二。通信の受信割り込みも来ているようなのでこいつの許容量も上げとく。 sudo sysctl -w net.core.netdev_budget=600 1000でもいいくらい。ぐぐると4096の人もいた sudo sysctl -a でちゃんと変更されているか確認  これで結構変わった気がする ※追記 さらに調べると ip_tables カーネルモジュールが無いと出た。どうやらこれが根本の原因ポイ。 結局カーネルなのか。自分でビルドするのはめんどいので、これはupdateを待つしかないなぁ ※参考文献 https://docs.redhat.com/ja/documentation/red_hat_enterprise_linux/8/html/monitoring_and_managing_system_status_and_performance/tuning-irq-balancing_tuning-the-network-performance#increasing-the-time-softirqs-can-run-on-the-cpu_tuning-irq-balancing https://ac-as.net/kernel-parameter-performance-tuning/ https://wiki.archlinux.jp/index.php/%E3%83%91%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%B3%E3%82%B9%E3%81%AE%E5%90%91%E4%B8%8A#CPU_.E3.82.B9.E3.82.B1.E3.82.B8.E3.83.A5.E3.83.BC.E3.83.A9 https://archlinux.org/packages/extra/x86_64/irqbalance/ https://wiki.archlinux.jp/index.php/Iptables https://qiita.com/yoshuuua/items/daa9d04089d416afbf94




■SDL2のバージョンを元に戻したい
  今はSDL3だけど、SDL2を使いたい、だけど最近のSDL2はSDL2-compatとかいうのが出てて実質SDL3。
  SDL3はまだまだおかしい所があるので古いSDL2を使いたい、という事で最初のv3のイメージから持ってきて作りました
  https://mega.nz/file/RzoCDLja#wvEWScQ0BFtJRxdOtPn-6Zd_TatVlT-PMFCeu2fxOwI
  シンボリックリンクがハードリンクになっていたので修正、
  https://mega.nz/file/wvp0QZbB#oHkkMe-uiL1pkNnu16BatylIF-O4J9uJ7n5mpoftKeA
  
但しこれを使うときは必ずSDL3とSDL2とSDL2-compatiの痕跡を綺麗に消しておくこと!! でないと依存関係が壊れます
  versionは2.26です。これ以上だと内部的にSDL3を使います
  対応するSDL2_image SDL2_mixer SDL2_ttf も入れておきました
  



■CrystalMarkRetro






■systemctl statusすると反応が遅い
  ジャーナルが増えてくると遅くなるらしい、というかなった。
  sudo nano /etc/systemd/journald.conf で編集
  
  Storage=volatile    ←ジャーナルをディスクではなくメモリーに保管。なので再起動で消える
  SystemMaxUse=256M
 SystemKeepFree=512M
 MaxRetentionSec=1month
  にしてみた
  journalctl --disk-usage                   (任意)ジャーナルの使用量を確認
  sudo journalctl --vacuum-size=0           (任意)ジャーナルの削除
  sudo systemctl restart systemd-journald  でジャーナルの再起動
  sudo systemctl status sshd  で何か適当なジャーナルを見てみる。すぐ反応したら直ってる
  
  ※参考
  https://x.com/puhitaku/status/1913618097875165660
  https://wiki.archlinux.jp/index.php/Systemd/%E3%82%B8%E3%83%A3%E3%83%BC%E3%83%8A%E3%83%AB
  



■Subversion
ここがわかりやすかった
  http://svn.linux-dvr.biz/
  設定が終わったらいつもの
  sudo systemctl enable svnserve 
  sudo systemctl start svnserve 
  sudo systemctl status svnserve 
    

アドレスはフルパスで入れないと駄目なので注意



■AnimeEffects
  本家は開発終了したのか垢無くしたのか、次の人が開発を引き継いでる
  要QT6 と ffmpeg
  
  git clone https://github.com/AnimeEffectsDevs/AnimeEffects
  cd AnimeEffects
  cmake -S . -B build -G "Ninja Multi-Config"
  cmake --build build --config Release
  cd build/src/gui/Release 
  cp AnimeEffects ../../../    で/AnimeEffectsのルートに移動してやれば一応動きました
  
  
  
  ------以下はパッケージの作成だけどうまく動かないみたい--------------------------------------------
  mkdir -p appdir
  cp AnimeEffects appdir
  cp -R ../data appdir/data
  cp -R ../../../../dist appdir/dist
  cp ../../../../dist/AnimeEffects.png appdir
  find appdir/
  export APPIMAGE_EXTRACT_AND_RUN=1
  wget -c -nv "https://github.com/p-yukusai/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage"
  chmod a+x linuxdeployqt-continuous-x86_64.AppImage
    ./linuxdeployqt-continuous-x86_64.AppImage appdir/dist/AnimeEffects.desktop -extra-plugins=imageformats,multimedia,core5compat
  -appimage -verbose=2 -no-strip      
    chmod a+x AnimeEffects-x86_64.AppImage
  
  






■ecere-sdk
  久々に動かそうとしたら、わらわらとエラーが・・
  何ぞと思って調べてみると最近gcc14からgcc15になってそれが悪さしてるポイ
  仕方ないのでgccを戻す。
  
  sudo pacman -S gcc-14
  sudo cp /usr/bin/gcc-14 /usr/bin/gcc
  sudo cp /usr/bin/g++-14 /usr/bin/g++
  めんどいのでハードリンク
  
  んでecere-sdkのディレクトリで
  make CFLAGS="$(pkg-config libffi --cflags)"   DISABLE_SSL=y
  ※ ENABLE_SSL=n ではない。正確にはDISABLE_SSLに何か定義されていればオフ
  
  ecere-sdkはissueがないので報告できない。フォーラムもなくってるし、やれやれだぜ
  
  実行はecere-ide 
  SSHからなら export DISPLAY=:0;ecere-ide
  
  ついでにIgnorePkgにgccをいれとく。sudo nano /etc/pacman.conf
  自分は chromium とwineもIgnorePkgに入れてます。大して変わってないのに毎回更新かかるので
   






■VLCをupdateしたらmp4(h264)が再生されなくなった
どうも今回のupdateからプラグインは別になったポイ。
なのでプラグインセットを入れる必要がある
sudo pacman -S vlc-plugins-all
参考
https://forum.artixlinux.org/index.php/topic,8398.msg50484/topicseen.html






■gemini CLI
  ※この作業は途中でgoogleにログインする為ブラウザを開くのでSSHからはやらない方が良い
  
  最初にnpmを入れておく sudo pacman -S npm
  
  次にこれを入れる
  https://aur.archlinux.org/packages/gemini-cli
  makepkgすると?と出たまま止まるが、しばらく待つ最初は2分くらい、その後少し進んでまた止まるのでしばらく待つ5分くらい
  それで終わる
  
  パッケージが出来たらsudo pacman -U gemini-cli-0.1.12-1-x86_64.pkg.tar.zst でインスコ
  geminiでスタート
  
  始めにスタイルを聞いてくる
  

























次にgoogle垢でログインする

0 件のコメント:

コメントを投稿