Wineで原神

REDMAGIC 10 Pro買ったので、ゲーム動作テストによく使われる原神とやらを入れてみるかと思ったが、PC版があるので、そいつをまずインストール。

どうせなら、LinuxでWindowsプログラムが動かせるWineを使ってやってみようとインストール開始。

苦戦させられると思いきや、あっさりインストーラーの画面が出た。

 

 

何度も落ちるけど、「ダウンロード再開のおかげで最後までリソースが読み込めた。

 

 

ゲーム画面が出るまでが、全画面表示待ちでフリーズしたかと思ったが、根気よく待つとちゃんと開始され、それなりに遊べる。

ただ、場面によっては、レンダリングがうまく動かない時があるとか、やっぱり10年前のマシンでは100%とはいかんな。

 

wine32:i386インストールで、gnome-control-centerが消える問題

会社のマシンで、wineをインストールして、SoftEther の管理ツール動かしていたが、ふと気づくと「設定」が表示されなくなってて、調べると gnome-control-centerをインストールすると良いとあった。

gnome-control-centerは設定のパッケージだが、普通、こんなのがインストールされてないという事はあり得ない。

gnome-control-center をインストールしようとすると wine32:i386が削除され、衝突状態になっているのが分かった。

検索してても中々該当する事例に巡り会えなかったが、とうとう原因を見つけた。

A clean way to solve this issue by merging all solutions would be to install the OS version of libgd3 that allows to install its i386 version alongside.

Initially, libgd3 was provided by the ondrej/php ppa (https://launchpad.net/~ondrej/+archive/ubuntu/php) (probably others PPA as well)

On Ubuntu Noble 24.04, it’s currently 2.3.3-12+ubuntu24.04.1+deb.sury.org+1

  1. Force install OS version of it sudo apt install libgd3=2.3.3-9ubuntu5
  2. Install its i386 version sudo apt install libgd3:i386
  3. Prevent libgd3 from auto updating with ondrej ppa sudo nano /etc/apt/preferences.d/libgd3-php
  4. Paste this priority to use Ubuntu sources by default

  1. Run sudo apt update, now libgd3 will no cause any problem

Hopefully it helps other people with similar wine installation problems

情報源: 22.04 – Dependency conflict: Installing libgd3:i386 leads to removal of important packages? – Ask Ubuntu

要は、PPA(Ubuntu用フリーウェアみたいなもの) の ondrej/phpで、libgd3がインストールされて、その依存関係で巻き添えを食うと。

そう言えば、会社のマシンは開発環境で、PHP5.6〜8.4まで、複数のPHPのバージョンを使うので、PPAのondrej/php を入れてたんだった。
特定環境下の問題だから、検索しても出てこなかったのか。

OS版の2.3.3-9ubuntu5のlibgd3をインストールし、libgd3:i386 をインストールして、/etc/apt/preferences.d/libgd3-php を作成して、先の内容を記述しておけば、良いらしいのでそうすると、解決した。

32bit版のパッケージインストールすると、それだけで1GB位ディスク容量食うから、wine32入れずに済むようにならんのかねぇ。

メールサーバー考

一時、メール受信のルールを厳しくして迷惑メールの受取拒否してたら、家のサーバーやVPSからのメールが受信できなくなっていた。

受取拒否だと、全く何の通知も無くメールが消えるので、とりあえず、迷惑メールのフォルダに入るように設定して様子を見ていた。

普段VPN環境でLANのプライベートアドレスでサーバーに接続していたが、IPv6での接続を試す為に、sshでログインすると、メールが飛んできた。

そういや、外部からログインしたら、メールを飛ばすってのをVPSや家のサーバーでやってたのを思い出した。

ちなみに、それぞれのサーバーは、LANのIPアドレスでログインしたら、パスワード認証が使えて、グローバルIPアドレスには証明書認証しか通さないようになっている。

従って、国家機関がスーパーコンピューターを使って解読でもしない限り、外部からログインされたというメールが飛ぶ事はほぼ無い(はずw)

最近のメールサーバーは、送信元IPアドレスが正当な送信者であるかを判定して、もし、正当でない場合は、受信拒否したり、迷惑メールフォルダに放り込んだりできる。

エックスサーバーの場合は、Return-Path: に正式なアカウントのメールアドレスが設定されてないと迷惑メールの判定になる。

例えば、root@noizumi.orgとか、noizumi@noizumi.orgとか、サーバーの設定によっては容易に Return-Path:に設定されちゃうようなアドレスだとダメ。

VPSの方は正常に届くように設定を追加して問題は無くなったが、家のサーバーはDS-Liteのゲートウェイの共用IPアドレスなので、正当な送信者として登録すると、成りすましを許してしまう事になる。

正常に送信できるVPSのメールサーバーに家のサーバーからSMTP AUTHでメールを送信するかと、せっせと設定し始めたが、よく考えたら、VPNでLANを構築してるので、postfixに192.168.0.0/16 をmynetworksに指定するだけだと気づいた。

そうすれば、LAN内のマシンなら、VPSにメールなげたら、プロバイダのサーバーへリレーしてくれる。なんでこんな簡単な事にすぐ気が付けなかったのやら。

ヤキが回ってるな 🙁

WineでSoftEther VPN Server Managerを動かす

SoftEther のVPNサーバーを弄るのに、LinuxだとGUIのツールが無くて不便だったが、LinuxでWindowsのプログラムを動かすWineを使えるというのは盲点だった。

で、irc.noizumi.org内を見ていると、そういや2つ仮想Hubがあって、一つは irc.noizumi.org で、もう一つは家のサーバーだった。

irc.noizumi.org のHUBに接続して、AbemaTVなんかのサイトに接続すると、接続元が Kagoya のVPSのIPアドレスなので、蹴られてしまう。

しかし、irc.noizumi.orgにある家の仮想HUBにつないだら、インターネットへのアクセスは家のルーターから出る事になるので、今なら povo2.0のIPアドレスでの接続になるから蹴られない。

L2TP/IPSecのユーザー名で、ユーザー名@Hub名で指定してやれば、irc.noizumi.orgに接続しても、家のネットワーク環境に接続できるという便利な機能を忘れてたな。

asahiネットが未だにログイン情報を送って来ないので、povo2.0 の週末3日感使い放題のトッピングに課金した。

なんせ期間限定で6月2日 9:00までしか申し込めないのと、24時間使い放題×5の残りがあと2つだったので、それを使ったら残り1つでもう後が無い状態だったから。

もうそろそろ1週間になるけど、bb excite とかWebで申し込んですぐ使えたのに、紙でログイン情報郵送してきて、かつNTTからも確認メールが来るなんて思っても見なかったわ 🙁

silverfox.noizumi.orgのSSL証明書更新

家のホームサーバーのCronからのメールで、silverfox.noizumi.org のSSL証明書更新に失敗したと来た。

まあ、今、家の回線は光じゃなくて、povo2.0で繋いでるが、asahiネットのIDとパスワードを記載した書類が届いていないので、未だに光回線難民なのである。

動的IPアドレスをDNSに自動登録するスクリプトを組んでるので、silverfox.noizumi.orgをDNSで引くと、povo2.0のゲートウェイのIPアドレスになっている。

携帯電話の通信事業者は、各携帯電話にグローバルIPアドレスでは無く、プライベートアドレスを割り振っていて、インターネットにはゲートウェイサーバーを経由してアクセスし、携帯電話には直接アクセスできないようになっている。

なので、今まで https://silverfox.noizumi.org/ でインターネットからアクセスできていたのができなくなった。

それではSSLの証明書の更新はどうするのか? と言えば、今まで外からWebにアクセスできるのかで存在チェックしていたのを、DNSでチェックする方式が使えるらしい。

そうすると、次の表示になる。

エックスサーバーにログインして、DNSレコード追加で、次のものを作成。

これで、certbot のPress Enter to Continueでエンターを押すと、DNSをチェックして、SSL証明書を更新してくれる。

あとは、DNSのチャレンジのレコードを削除してもOK。
noizumi.org のDNSを弄れるって事は、silverfox.noizumi.org のドメインの使用者だと分かるので、インターネットから隔絶したサーバーにもSSL証明書が発行できるという事だな。

ひとつ勉強になった 🙂

Ubuntu 24.04LTSが読み込み専用で起動して困った話

昨年末頃に内蔵ハードディスクがお亡くなりになり、Ubuntuはバックアップから外付けUSB RAID1ハードディスクに復旧して、WindowsはUSBハードディスクにインストールできないので、放置していた。

日曜にふと思い立ち、内蔵ハードディスクにWindows10をインストールし、Windows11 をISOでダウンロードして、マウントし、setup.exe /product server で強制インストールした。

Windows11 を直接インストールをしようとすると、PCが要件に合っていないので、拒否されるが、Windows10環境で、コマンドで先のセットアップを実行すると、要件チェックされないのでインストールできるのだ。

EFIのブートディスクが2つという事になるが、Ubuntuのgrubの起動メニューで、チェインロードにより、UbuntuとWindowsを選択可能にして起動できるようにする。

/etc/default/grub を編集して、GRUB_DISABLE_OS_PROBER=false を有功にし、次のコマンドを実行。

# os-prober
# grub-update

grub menu に Windows bootloader が表示されるようになった。

で、Ubuntu にて Windows 11のHDDをマウントしようとしたら、マウントできない。

Webで調べると、Windows11で高速スタートアップが有功になっていて、ディスクにゴミがある状態な為、マウントできないとの事。

ユーティリティの「ディスク」を使って、/dev/sda3 の「マウントオプションを編集……」で、「ユーザーセッションデフォルト」をOFFにしてやるとよいらしい。

そうすると、マウントはできるようにはなったのだが、ファイルをコピーしようと思ったらできない 🙁

再起動して Windows11のコントロールパネルで、高速スタートアップを無効化し、いざ、Ubuntuを起動すると、Failed to start: gdm.service とか出て起動しない。

Ctrl+Alt+F3 で端末ログインして、mount を見てみると、ルートFSが読み込み専用になってる。

こういう場合は、ディスク異常とかが定番だが、fsck しても異常なし。
/etc/fstab を見ると、さっき指定した /dev/sda3 のマウント定義が追加されているのだが、ルートのドライブ指定が消えている 🙁

そりゃ、fstab で起動ディスクの設定消えとったら、起動ディスクが read-only でマウントされて、read-write で remount されないから、読み込み専用のままだよなあ。

# mount -o rw,remount / を実行して、/etc/fstab にルートのファイルシステムの定義を追加して復旧。

何で起動ディスクの設定が消えたのかさっぱりわからんけど、かなり初見殺しなOSですな 🙂

SSL証明書の期限切れ警告

Let’s encryptからSSL証明書期限切れの警告メールが来た。
家のサーバーのSSLの証明書は cron で自動的に更新するようになっているのだが、2月の初旬に切れるようだ。

サーバーにログインして調べてみると、名前が引けないので、bind9のdaemonをリスタート。

# systemctl restart bind9.service

そして、SSLの証明書更新。
# certbot renew

これで解決。相当長期間名前が引けない状態だったみたい。

最近、プロバイダのDNSでは、特定サイトの名前解決ができないとか、制限を掛けていたりするので、家のサーバーはDNSのルートサーバーから直接情報を得て無制限に使えるようにしてるんだな。

【Raspberry Pi Zero 2 W】cron が動かない

RX-7 を監視するプログラムを Raspberry Pi Zero 2 Wで動かしている。

crontab にこう設定してあって、起動時にモニタプログラムが起動するようになっているのだが、最近、こいつが動いてない事が多い。

幸い、リモート接続は可能なので、ssh で接続して、手動で動かしているのだが、原因を調べると、どうも cron が動いてないっぽい。

systemctl status cron.service で状態を確認しても、running と出てるし、プロセスもちゃんと上がっているので、表面上異常は一切見付けられない。

うーん……

これは、モニタプログラムを /etc/rc.local 起動するしかないかな。

しかし、1分毎に動かしてる転送されていない動画を転送する処理は cron が動いていないと、問題がある。

rc.local で起動したモニタプログラムに、ログを調べて cron のログが無いようだったら、systemctl restart cron.service を実行する機能を付けねばならんか。

しかし、基幹部に欠陥があると、想定していた前提が崩壊してしまうので、こういうのは何とかならんのかのう 🙁

 

【Raspberry Pi Zero 2 W】metric 設定

車載のRaspberry Pi Zero 2 W(以降rx7pi)が、家のWiFiに繋がってる時に通信が遅くてしょうがない。

まあ、原因ははっきりしていて、ssh でログインする時に、WiFiのIPアドレスで繋ぐと応答は速いけど、パッケージ更新とかやると、metric の低い順のネットワークデバイスで通信するので、usb0 = povo 2.0 128kbps 通信となってしまう為だ。

rx7pi は dpcpcd ではなく、NetworkManager で通信を管理してるので、設定状況は次の通り。

100 usb0
600 wlan0
750 bluetooth

という順で優先されるけど、usb0 と wlan0 を入れ替えたいので、ちょこっと検索。

ネットワーク設定nmcli コマンドでルーティングメトリックを設定します。ルーティングメトリックは値が小さいほど優先順位が高いため、主回線の soracom を 500、副回線の ntt を 700 に設定します。次のコマンドを実行してください。ターミナル
sudo nmcli c m soracom ipv4.route-metric 500
sudo nmcli c m ntt ipv4.route-metric 700sudo nmcli c down soracom
sudo nmcli c down nttsudo nmcli c up soracomsudo nmcli c up ntt

情報源: ラズパイ1個で2個の4GPiを同時使用する際の、LTE回線自動切換え #RaspberryPi – Qiita

パラメータが省略してあるので、分かり辛いが、 c = connection、m = modify か。

よし、イケた。

後は、WiFi接続時に VPN のwireguard を再接続するように設定する。

$2に up とか down が入ってくるようだが、どの道VPNを再起動して良い状況なので、判別せず。

実行属性つけておくのを忘れずに。

 

パススルー対応リン酸鉄リチウムイオンモバイルバッテリこうにう

 

車載Raspberry Pi Zero 2 W(以下rx7pi)を稼働させるのに、バッテリが低電圧になるのを解決すべく、ポータブルバッテリをこうにう。

エレコムは 自社、Amazon、楽天市場のショップで同一価格なので、ポイント4倍の楽天で買うのが一番お得。

リチウムイオン電池じゃなく、ハイブリットカーのバッテリにも使用されているリン酸鉄リチウムイオン電池なので、高温になりがちな車載でも安心。

以前、ガラケーをFOMA 補助充電アダプタ03に繋ぎ、それに4.5Wソーラーパネルに接続して電力を賄っていたが、スマートフォン+GPS+rx7pi を車のバッテリに繋ぐと電圧低下で、エンジン始動できなくなる。

そこで、以前みたいに、今回買ったDE-C41-30000BKへ rx7pi 一式を接続して、入力に18Wソーラーパネルを接続して、車の電力系から独立させてみようと思った。

ソーラーパワーのみで賄えるようになったらうれしいな 🙂
まあ、できなくても、週末のみモバイルバッテリー充電すればOKの体制にはしたいなあ。