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入れずに済むようにならんのかねぇ。

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証明書が発行できるという事だな。

ひとつ勉強になった 🙂

SSL証明書の期限切れ警告

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

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

# systemctl restart bind9.service

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

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

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

【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】警戒プログラム変更

Raspberry Pi Zero 2 Wは 4コアなので、並列処理した方が速くなる為、本体プログラムと bluetooth のチェックを分けた。

【メイン処理】

【bluetoothチェック処理】

【GPS関連処理】

今までは USBテザリングで通信していたが、セキュリティの為か、携帯電話の画面ロックを解除した状態にしないと接続できなかった。

しかし、bluetooth テザリングは、一度ペアリングすれば、接続要求によって簡単に繋がるので、画面ロック解除しなくても良くなった。

以前試行した時は、bluetooth テザリングに、 bt-pan というプログラム使ってたけど、接続できなくて sleep 1 で回してても負荷が無茶苦茶高かった記憶がある。

問題は最大3Mbps程度の通信スピードになるが、povo 2.0 の非課金速度が128kbps なので、ボトルネックになる事は無い。

今は、NetworkManagerを導入したおかげで、sudo nmcli dev connect [MACアドレス] で接続できるので、負荷が非常に低く、load avarage も

こんな感じで非常に低負荷で済んでいる。

【SoftEther VPN server】バージョンアップ

オープンソース版: SoftEther VPN 4.42 Build 9798 RTM (2023/06/30)

製品版: PacketiX VPN 4.42 Build 9798 RTM

米国 Cisco Systems, Inc. による高度なコードレビューと技術協力の結果、CVE-2023-27395 等の 6 件の脆弱性を修正しました。今回修正したいずれの脆弱性も、通常の使用方法と使用環境においては、不正侵入等のセキュリティ侵害に悪用されるリスクは比較的低く、実際の攻撃は容易ではありませんが、将来発見される可能性がある複数の脆弱性が組み合わさると攻撃に悪用される可能性もあるため、できるだけ、アップデートをお勧めします。

情報源: バージョン更新履歴 (ChangeLog) – SoftEther VPN プロジェクト

「アップデートをお勧めします」なんて書かれてるとやらざるを得ない。

SoftEther VPN Server は定期的にバージョンアップを実施する必要があります。放置しているとセキュリティホールを突かれて不正アクセスに繋がります。バージョンアップは容易に実施できるので手順を押さえましょう。

情報源: SoftEther VPN Server バージョンアップ手順 | りんか ネット

こちらを参考にまず、家のサーバーのRaspberry Pi 4のアップデート作業から始める。

要は、vpn_server.config のファイルをコピーすればいいだけだな。

ごちゃっとしてるけど、手順メモ(笑)

SoftEther VPN ダウンロードのページから、最新版のARM 64bit のファイルをダウンロードして、/user/local に設置。

旧バージョンに戻せるようにそれぞれフォルダ名にバージョン名を含め、systemd のスクリプトで矛盾が無いように vpnserver のシンボリックリンクを最新バージョンに張る。

具体的には、
/usr/local/vpnserver → /usr/local/vpnserver-v4.38
/usr/local/vpnserver のシンボリックリンクを /usr/local/vpnserver-v4.42 に張る。

そういや、SoftEther vpnserver 設置に試行錯誤で苦労した覚えがあるが、作業記録を全然残して無かったな(汗

systemd のスクリプトが次の通り。

[/etc/systemd/system/multi-user.target.wants/softether-vpnserver.service]

linux は vpnサーバーに接続すると、クライアントから vpn サーバーに ssh ログインできないという問題がある。

Unnumbered eth0 に br0 のブリッジで、IPアドレス振って、SoftEther VPN側から tap デバイスで br0 にローカルブリッジ設定してやると vpn接続後に、ssh 192.168.11.254 とか、サーバーのIPアドレス指定でログインできるようになる。

この辺、無茶苦茶苦労したのに全然記録に残してない(滝汗

なんせ、家のサーバーで br0 のブリッジデバイス作成に失敗して、完全通信途絶したので、USB キーボード&マウスとHDMIでディスプレイ繋いで、ローカル端末で修正しなくてはいけなかった。

ちなみにRaspberry Pi 4には、マウスとキーボードが一つのレシーバーで使えるELECOM TK-FDM063BKとかが便利。

わしはこれをNTT西日本のポイントで貰い、使い途に困ってたがRaspberry Piに使った時に、「コレだ!」っておもっちゃいました。 🙂

Kagoya VPS の irc.noizumi.org なんかは、通信途絶したらどうしようと冷や汗もので設定した。多分、通信途絶しても、VPS管理画面のコンソールだけは使えるだろうから大丈夫だとは思うけど。

後は、irc.noizumi.org のSoftEther vpnserverをアップデートすればいいけど、Intel x64版をダウンロードして、vpn_server.configコピーするだけだからすぐ済むな 🙂

停電

朝停電があったが、クーラー停止、電話器が「電話回線に接続してください」連呼、SoftEther VPNの接続不良と散々だった。

姉が押し付けて来た SANYOのコードレス電話だが、電話回線休止状態なので、接続する事ができず、デモモードになって延々と保留音のレパートリーを披露してくれる状態。

取説探したけど無いので、別の機種の取説見ると、電話回線のトーン、パルスの手動設定方法は無いようなので、電源ブチ切り。内線だけ使ってたけど、別の手段にしなくてはならない。

SoftEther VPN はServer Manager で見てみると、Kagoya VPSへ接続されているが、ローカルネットで設定した 192.168.30.254 やL3スイッチに設定している、192.168.11.253、192.168.30.253 へ ping が通らない。

家のサーバーリブートしても直らない。

とやったら直った。うーん……、何だったんだろう。

【irc.noizumi.org】AAAAレコード設定

XSERVERの案内メールで、AAAAレコードが設定できるとあったので、irc.noizumi.org の設定をやった。

とは言え、わしの家の環境はIPv4なので、ping 打っても応答しない。

一応、nslookup だと IPv6のアドレス表示されるので、ちゃんと設定されてるっぽいな。

【Raspberry Pi Zero 2 W】bluetooth ヘッドフォン接続不良

Raspberry Pi Zero 2 Wで以前、bluetooth ヘッドフォンを接続していたが、10→11にアップデートしてからは、接続が安定しない。

そういや、10の時に、sap server がどーたらで何か設定を変更した憶えがある。
次のページに解決法が書いてあったので実施。

情報源: Raspberry Pi 4のBluetoothから音を鳴らす呪い | hixの日記 | スラド

確か前にこういう設定をした憶えがあったけど、このブログに記録がねーんだよなあ。

bluetoothd を再起動して、接続テストしたら、切断されず、接続が維持できた。

bluetooth ヘッドフォンの接続をトリガーに、rx7pi の動体検知や、GPSの位置チェックを止めるという処理をしていたが、これで万事OK 🙂

【Raspberry Pi Zero2 W】通信カードで、iijmioに繋がった。

raspberry pi zero2 Wにて、NetworkManager のモバイルブロードバンド設定で iijmio 設定したら、無事、起動して即LTE回線接続するようにできた。

EM7430の通信カードで、povo2.0 のSIMだとダメだけど、iijmio の eSIMを eSIM.me の物理SIMカードに焼いた奴を挿したらいけた。

eSIMだから、月額440円で2GBまでの契約なんだが、もう一枚か……うーん。

eSIM.meのブランクカード余ってるから、もう一枚 eSIM契約でいけるし、今使ってる携帯電話の OPPO Reno7 Aは eSIM対応してるから、eSIM.me に焼かなくてもそれに使えばいいという話もある。

正直、通信速度が128kbpsでも事足りるから、iijmioのスペックは過剰で、povo2.0が使えていれば、丸く収まってたのに、色々と悩むなあ。