Amazonや公式サイトにある情報が本当に正しいとは限らないので実地検分。
やり方
# これでCPUの情報が取れる
cat /proc/cpuinfo
# これでメモリの情報が取れる
opkg install dmidecode
dmidecode -t 17
# これでCPU, NICの情報が取れる
opkg install hwinfo
hwinfo
# これでeMMCのベンダ情報が取れる
cat /sys/class/mmc_host/mmc0/mmc0:0001/name
cat /sys/class/mmc_host/mmc0/mmc0:0001/manfid
調査ログ
CPU
cat /proc/cpuinfo
の結果から取得した情報。
model name : Intel(R) Celeron(R) N5105 @ 2.00GHz
メモリ
dmidecode -t 17
の結果から取得した情報。
MicronのLPDDR4でDDR4-3200相当であるとわかる。
Physical Memory Array
Location: System Board Or Motherboard
Use: System Memory
Error Correction Type: None
Maximum Capacity: 8 GB
Error Information Handle: Not Provided
Number Of Devices: 2Memory Device
Array Handle: 0x003A
Size: 4 GB
Form Factor: Row Of Chips
Locator: Controller0-ChannelA
Type: LPDDR4
Speed: 3200 MT/s
Manufacturer: Micron Technology
NIC(RJ45)
hwinfo
の結果から取得した情報。
pci 0x125cはI226-VなのでIntel Ethernet controller I226-V
Hardware Class: network
Model: "Intel Ethernet controller"
Vendor: pci 0x8086 "Intel Corporation"
Device: pci 0x125c
SubVendor: pci 0x8086 "Intel Corporation"
SubDevice: pci 0x0000
Revision: 0x04
Driver: "igc"
Driver Modules: "igc"
Device File: eth2
NIC(SPF+)
以前分解したときのラベルと、hwinfo
の結果から取得した以下の情報と突き合わせるとMellanox ConnectX-3 En10*2 Gigabit Ethernet CX341Aであることが分かる。
Hardware Class: network
Model: "Mellanox MT27500 Family [ConnectX-3]"
Vendor: pci 0x15b3 "Mellanox Technologies"
Device: pci 0x1003 "MT27500 Family [ConnectX-3]"
SubVendor: pci 0x15b3 "Mellanox Technologies"
SubDevice: pci 0x0113
Driver: "mlx4_core"
Driver Modules: "mlx4_core"
Device File: eth3
ストレージ(eMMC)
以下の結果から、name: SCA128, manfid: 0x0000dfであることから、メーカー不詳のSCA128という製品であることが分かる。ググってもメーカー情報は不明だった。
cat /sys/class/mmc_host/mmc0/mmc0:0001/name
cat /sys/class/mmc_host/mmc0/mmc0:0001/manfid
まとめ
公式サイト?の情報やAmazonの情報と比べると微妙に差異があり、また、書いてない情報も取れたので調べてよかったなと思った。
構成 | 製品 | 備考 |
---|---|---|
CPU | Intel Celeron N5105 | 6T6C, 2.00GHz, TDP10W |
MEM | Micron | LPDDR4-3200 4GB * 2 |
Storage | SCA128 | 128G EMMC |
NIC | Intel Ethernet controller I226-V | RJ45 2.5GbE * 3 |
NIC | Mellanox ConnectX-3 En10*2 Gigabit Ethernet CX341A | SPF+ 10GbE * 2 |
Ubuntu 24.04.3 LTSのxrdpはバグがあり、セッション管理が不安定らしいのでバージョンを上げて解決する。
事象
Windowsのリモートデスクトップから接続すると、xrdpのログイン後に画面が真っ暗になっており、毎回pkill gnome-session
を余儀なくされ面倒だった。
~/.xsession-errors
を開くと、無限にこのログが出ていた。
(tracker-extract-3:5784): GLib-GIO-WARNING **: 08:39:48.131: Error creating IO channel for /proc/self/mountinfo: 無効な引数です (g-io-error-quark, 13)
Xlib: extension "DPMS" missing on display ":10.0".
Xlib: extension "DPMS" missing on display ":10.0".
Xlib: extension "DPMS" missing on display ":10.0".
Xlib: extension "DPMS" missing on display ":10.0".
Xlib: extension "DPMS" missing on display ":10.0".
確認環境
GNOMEはxrdp的にあまりよろしくないらしいので、ついでにxfceに変えてしまった方がいい可能性がある。変える場合はUbuntu 24.04.3 LTSをGNOMEからXfceに移行するを参考にする。
Env | Ver |
---|---|
ディストリ | Ubuntu 24.04.3 LTS |
デスクトップ環境 | xfce 4.18 |
更新前 | xrdp 0.9.24-4 |
更新後 | xrdp 0.10.4.1 + lightdm 1.30.0 |
やり方
公式マニュアルに忠実にやっていく。
xrdpの依存環境のインストール
sudo apt purge xrdp
wget https://raw.githubusercontent.com/neutrinolabs/xrdp/refs/tags/v0.10.4.1/scripts/install_xrdp_build_dependencies_with_apt.sh
chmod +x install_xrdp_build_dependencies_with_apt.sh
sudo ./install_xrdp_build_dependencies_with_apt.sh max
xrdpのビルドとインストール
wget https://github.com/neutrinolabs/xrdp/releases/download/v0.10.4.1/xrdp-0.10.4.1.tar.gz
tar xvzf xrdp-0.10.4.1.tar.gz
mv xrdp-0.10.4.1 xrdp
cd xrdp
https://raw.githubusercontent.com/neutrinolabs/xrdp/refs/tags/v0.10.3/scripts/install_xrdp_build_dependencies_with_apt.sh
./bootstrap
./configure --with-systemdsystemunitdir=/usr/lib/systemd/system \
--enable-ibus --enable-ipv6 --enable-jpeg --enable-fuse --enable-mp3lame \
--enable-fdkaac --enable-opus --enable-rfxcodec --enable-painter \
--enable-pixman --enable-utmp -with-imlib2 --with-freetype2 \
--enable-tests --enable-x264 --enable-openh264 --enable-vsock
make
sudo make install
sudo ln -s /usr/local/sbin/xrdp{,-sesman} /usr/sbin
sudo adduser --system --group --no-create-home --disabled-password --disabled-login --home /run/xrdp xrdp
実行環境の整備
/etc/xrdp/xrdp.ini
を開き以下の行のコメントを外すruntime_user=xrdp runtime_group=xrdp
/etc/xrdp/sesman.ini
を開き以下の行のコメントを外すSessionSockdirGroup=xrdp
証明書を作成する
sudo chmod 640 /etc/xrdp/rsakeys.ini sudo chown root:xrdp /etc/xrdp/rsakeys.ini sudo make-ssl-cert generate-default-snakeoil sudo ln -sf /etc/ssl/certs/ssl-cert-snakeoil.pem /etc/xrdp/cert.pem sudo ln -sf /etc/ssl/private/ssl-cert-snakeoil.key /etc/xrdp/key.pem sudo usermod -a -G ssl-cert xrdp
- 以下を叩いて全部OKなのを確認
sudo /usr/local/share/xrdp/xrdp-chkpriv
- サービスの有効化
sudo systemctl enable --now xrdp xrdp-sesman
xorgxrdpのビルドとインストール
XをRDP用に差し替えるxrdpのバックエンドシステムらしい?
- ビルドとインストール
# scripts/install_xorgxrdp_build_dependencies_with_apt.shがないのでビルド時にエラーになった分を入れている sudo apt install xserver-xorg-dev libgbm-dev libepoxy-dev ./bootstrap ./configure --enable-glamor make sudo make install
/etc/xrdp/sesman.ini
を開き以下のように書き換える;param=Xorg param=/usr/lib/xorg/Xorg
ゴミ掃除と最後の設定
rm -Rf xorgxrdp xrdp xorgxrdp-0.10.4.tar.gz install_xrdp_build_dependencies_with_apt.sh xrdp-0.10.4.1.tar.gz
# GNOMEなどxfceでない場合は適宜書き換える
echo "startxfce4" > ~/.xsessionrc
トラブルシューティング
Authentication is required to create a color managed deviceというダイアログが何度も出る
Ubuntu 24からpolkitのバージョンが上がっているようで、従来の手段が通じなくなっている。
/etc/polkit-1/localauthority/50-local.d
にcolorが付いたファイルがあれば中身を確認し、関係ありそうな場合削除する- この設定ファイルは古く使われていないはずだが念のため消す
/etc/polkit-1/localauthority.conf.d/02-allow-colord.conf
がなければ作成し、以下の内容を記述polkit.addRule(function(action, subject) { if (action.id.startsWith('org.freedesktop.color-manager')) { return polkit.Result.YES; } });
sudo service polkit restart
でpolkitを再起動する
この作業をしても起動直後だけは出るので、キャンセル連打で無視すると良い。二回目以降は出なくなるはずだ。
あとがき
アップデートするとxrdpのロゴが洗練されたスタイルに変わった。今までは結構古臭かったように思う。
GNOMEは重いのでXfceに変更する。
XfceはDebianに昔あった懐かしいUIで劇的に軽くなった。
環境
Ubuntu 24.04.3 LTS
やり方
XfceのインストールとGNOMEの削除
sudo apt install xubuntu-desktop
sudo apt remove ubuntu-gnome-desktop gnome-shell
sudo apt purge ubuntu-gnome-desktop gnome-shell
sudo apt autoremove
xrdpのXfce化
echo "startxfce4" > ~/.xsessionrc
トラブルシューティング
日本語入力が出来ない
右上のタスクバーにある「JA」をクリックして「mozc」に変更すると「全角/半角」キーが使えるようになり、日本語入力が可能になる。
タスクバーを上から下に移動する
タスクバーを右クリック→パネル→パネルの設定で固定解除するとハンドルが出るのでドラッグしてもっかい固定するといい。
デフォだとパネル2がドックとしてあるが、邪魔なので消す。
前回2024/01/25に更新したサーバー機(サブマシン)だったが、今回サーバーとして運用することになったのと、将来的に10GbEを導入した時の投資としてネットワークスペックを上げるなどを目的とし、更新を実施した。
更新前後の構成
POST時にメモリエラーが出るので近日中にメモリは交換予定だ。幸い相性保険に入っていたので追加費用は出ない見込み。
構成 | 製品 | 更新後 |
---|---|---|
OS | Ubuntu 24.04.3 LTS | 変更なし |
CPU | AMD Ryzen 5 5600G | AMD Ryzen 5 8500G |
MEM | CFD W4U2666CS-16G | crucial CP2K16G60C36U5W |
M/B | ASRock A520M-ITX/ac | ASRock B850I Lightning WiFi |
CPU Cooler | Cooler Master Hyper H412R | Cooler Master Hyper 411 Nano RR-H410-25PK-R1 |
PSU | SILVERSTONE SST-ST30SF-V2 | 変更なし |
Primary SSD | Crucial P1 CT500P1SSD8JP | 変更なし |
Case | Thermaltake Core V1 | 変更なし |
Front Fan | Thermaltake Pure 20 | 変更なし |
主な更新理由
- マザボ更新によるNICの高速化
- 1Gbpsを2.5Gbpsに上げることにより将来の高速化に備える
- メインマシンが2.5GbpsなのでLAN内速度の向上
- SocketAM5への移行
- 今後新たにCPUを買うときに発生するコストの痛みを余裕のある今のうちに吸収
- DDR5への移行
- もうDDR4とかオワコンですしお寿司…
開封の儀
買ったもの。全部神戸市内で購入。というかメインマシン更新時と同じくソフマップで買ってきた。ここにしかITXマザーがなさそうだったのが理由だ。
メモリがやけにゲーミングだが、他が売り切れていたので仕方がなくこれにした。
この時はまだCPUクーラーが適合しないとは夢にも思っていなかった。何故ならAM4とAM5はCPUブラケットに互換性があるとされていたからだ。
マザボ
箱の中身。WiFiのアンテナや、温度センサ、M2SSDネジ、ケーブルバンド、SATAケーブル辺りがあった。写真には写っていないがASRockのデカいシールも入っていた。
表面。CPUソケットの主張が激しい。
AM5からはLGAに変わっているためマザボ側にトゲが生えている。ピン折れリスクの観点からPGAの方が好きだったので残念だ。
とはいえ、PGAは面積当たりのピン数の制約が強いのでスペックアップのためには仕方ないだろう。面積当たりのピン数はLGAの方が有利だろうし。
裏面。裏面NVMeスロットが復活していた。これはA320M-ITXにはあったけどA520M-ITX/acではなくなっていた要素だ。
恐らくNVMeスロットを2つにする上で仕方がなかったのだろう。確かASUSも裏面に実装していたと思う。
CPUバックプレートを差し込もうとしたところ、なんと入らなかった。寸法は同じだったが穴のサイズが合っていなかった。
更に言うとバックプレートが剥がせなくなっていた。マザーボードに完全に貼り付けてあった。
側面。2.5Gの文字がまぶしい。今回最大の目的はこれである。
CPU
右が今回買った方で、左が今まで使ってた方。なんか見た目がかっこよくなっていた。
PGAからLGAに変わった関係で背が低くなっている。ソケットアサイン用の窪みが出来た関係もあると思うが、接点の密度は左程増えていないようにも見える。むしろ減っていても不思議がない。
CPUクーラー
まさか手持ちのが使えないとは思ってなかったので、組み立て作業はこれが届くまで一時停止する。
こちらは入手困難であったため、Amazonで調達した。17時ごろに見たら翌朝配送と書かれており、私はこの時、映画を見るスケジュールで埋まっていて当日中に手に入れる手立てがなかったからだ。
翌日12時半に到着して、無事パーツを組むことが出来るようになった。エアフローをサイドフロー型向けに最適化しておきたいので、このパーツは外せなかった。なんか微妙な奴ならソフマップにもあったのだが、微妙なのは使いたくなかった。こういうものには納得が必要だ。
付属品はファンとヒートシンクにIntel用のバックパネルとリテンションキット、CPUグリス、マニュアルなどだった。
AMDのバックパネルがないのが気になったが、そのまま挿すことが出来た。これは賢いなぁと思ったが、メーカーごとに自由なバックプレートを作れないのは差別化要素を失わさせる要因にもなるため、Intelの方が多様性に資するなとは思った。
ファンの新旧比較。左が新しい方、右が古い方。新しい方が風量があり、やや五月蠅かった。古い方は風量がやや少ない代わりに静かだった。
ヒートシンクの新旧比較。銀色が古い方、黒色が新しい方。
違いとしては、まず色が違うほか、台座のヒートシンクが小さくなっているのと、台座の高さも減っていた。
また、若干ヒートシンクの角が削れており、これはドライバーでネジを占めるときのクリアランスとして便利だった。以前はヒートシンクが削れていたのでイマイチだった。
グリスはCoolerMasterのコーポレートカラーだったが、なんかキモいので拭き取って忘れることにした。実際にはNoctuaのグリスを塗った。
組み立て後
中身。ヒートシンク付きのごついゲーミングメモリが目立つが、以前と比べ黒くなった。大体CPUクーラーのせい。
外観。ぶっちゃけ変わる要素がないので、ほぼ変わっていない。変化としてはシールが増えているところだ。しかし今回はRADEONのシールがなかったので、Ryzenのシールのみとなり、シールの枚数が奇数になってしまった。
左から右にシールを増やしているが、Athlonのシールがあるマシンもそうそうなさそうなので、結構独特な存在だと思っている。
あとがき
今回の更新作業は予期せぬトラブルで自宅サーバーが予想外長時間止まってしまった。本来は16時開始17時終了でサーバーを再開する予定が、CPUクーラー手配の関係などで翌日15時まで、ずれ込んでしまった。まぁ、こういうのも、また自宅サーバーの醍醐味だろうという気はするので、特に気にしてはいないし、むしろ停止中にメンテ画面に切り替えるためのDNS変更スクリプトとかは作っておいた方がいいだろうなという気付きを得られたりもした。
またPOST時に長音ビープが3回鳴る事象が起きているが、色々抜き差しして確認したところ、モニタが刺さっていないと3回の長音ビープが鳴るようだ。このことはマニュアルには書かれておらず、ASRock公式でBEEPを調べても、3回はメモリエラーとあるので謎だ。
検証用に別のメモリ(CDF W5U5200CS-16G)を調達してきたが、そちらでも再現した。どうもASRockのマザボはAMDCPUとメモリの相性に問題があるようでBIOSの更新をし3.30から3.40に上げたものの、特に改善は見られなかった。どうしても気になる場合はダミーのHDMIを挿しておくと改善するかもしれない。
ひとまず本質的なスペックとしてはさして上がっていないと思われるが、拡張性で言えばマザボのスペックが最新鋭になり、ストレージスロットがやや増えているのもあり、将来的な拡張には耐えてくれるだろうし、この規模の更新は当面しなくて済むだろう。このベーススペックで5年、あるいはそれ以上持つことを期待したいところだ。
ただ、このマザーボードを使ってCPU(Ryzen 7 9800X3D)が壊れたとか、不具合系の話もまことしやかに聞くのでやや心配だが見守っていきたい。
adiary組み込みのLightbox2で画像をズームできないことに不満があり、代替を探していてFancyboxという非常に素晴らしい画像スライドツールを見つけたのだが、なんと有料で頭を抱えてしまった。
そこで何とかして無料で同等の機能を実現する方法がないか調べてみた。結論としてはFancybox v3.5.7を使えばよい。
欲しいもの
- 複数ギャラリー対応
- ギャラリーグループの識別が要素単位で可能
- 親タグでグループ化する方式はNG
- ドラッグ・スワイプで前後の画像に切り替えられる
- 違和感なく前後の画像に切り替えられる
- Mastodonみたいに切り替えしようとして閉じない
- UIがガタついて戻ってきたりしない
- キーボード操作をサポート
- 画面サイズより小さい画像は原寸表示
- 画面サイズより大きい画像はアスペクト比を保って縮小
- 縮小した画像をクリック・タップすると拡大・縮小
- 拡大してはみ出た画像をドラッグ可能
- 拡大した画像をドラッグした時に画面から逸脱しない
- 自動でキャプションが出せる
- 非商用利用であれば無料
- 力業で再現させるようなコードが不要
ライブラリ別まとめ
凡例
✅:要件を完全に満たす
⚠️:要件は満たさないが、類似機能がある
❌:要件を満たさない
➖:調べていない
基本的に設定を書くだけか、簡単なスクリプトで実現できるもののみ要件を満たすものとして定義している。また明らかに機能不足で興味が余り湧かなかったものは深く調べていないので情報が間違っている可能性がある。
機能 | Lightbox2 | GLightbox | PhotoSwipe | Viewer.js | Spotlight.js | lightGallery | Fancybox v6 | Fancybox v3.5.7 |
---|---|---|---|---|---|---|---|---|
クリック・タップで拡大・縮小 | ❌ | ✅ | ✅ | ❌ | ❌ | ⚠️ | ✅ | ✅ |
複数ギャラリー対応 | ✅ | ✅ | ❌ | ➖ | ➖ | ✅ | ✅ | ✅ |
ギャラリーの識別が要素単位で可能 | ✅ | ✅ | ❌ | ➖ | ➖ | ❌ | ✅ | ✅ |
ドラッグ・スワイプで前後の画像に切り替えられる | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ |
違和感なく前後の画像に切り替えられる | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
キーボード操作のサポート | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
画面サイズより小さい画像は原寸表示 | ✅ | ✅ | ❌ | ✅ | ❌ | ➖ | ✅ | ✅ |
画面サイズより大きい画像はアスペクト比を保って縮小 | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ |
拡大してはみ出た画像をドラッグ可能 | ❌ | ✅ | ✅ | ➖ | ✅ | ✅ | ✅ | ✅ |
拡大した画像をドラッグした時に画面から逸脱しない | ❌ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ |
自動でキャプションが出せる | ✅ | ✅ | ⚠️ | ✅ | ➖ | ➖ | ✅ | ✅ |
非商用利用無料 | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ |
複雑なコードが不要 | ✅ | ⚠️ | ❌ | ➖ | ➖ | ➖ | ✅ | ✅ |
各ライブラリを触ってみた雑感
Lightbox2
拡大機能がないため論外。
GLightbox
画像を開いてからウィンドウを縮小したときにズームできないのが最大の難点。またこのブログに埋め込んだ時、ドラッグで画像を左右に送ろうとしたら妙なガタツキが見られた。
また画像をドラッグすると画面外まで飛んでいくのも、あまり良くない。
他にもUIがカスタマイズ可能なのはいいが、逆に面倒である。
PhotoSwipe
全体的にコールバック関数にフックして自前で実装する要素が色濃く、実装の手間が甚大にかかる。
Lightbox2にあるようなdata-lightbox=<gallary-id>
を使ったギャラリーのグループ化が困難で、フルスクラッチでコードを書く必要があるが、Claude Opus 4.1とGPT-5に書かせて上手く行かなかったので諦めた。
lightGallery
一見するとよさそうだが、有料なので論外。
画像切り替え時にロードが入ることや、ドキュメントが読みづらく何が出来るのかイマイチ判らなかったのもマイナス。
Viewer.js
UIが独特的過ぎてみた瞬間論外だったが一応…。
PCではクリック・ドラッグで画像送りできないのがマイナスで、スマホではタップ・スワイプで可能という新しいアプローチが採用されており、開いた画像は画面内のどこにも自在配置できる機能もあった。
要するに完全に要件外だった。
Spotlight.js
アスペクト比によって画像が見切れるほか、小さい画像が全画面表示されて見づらかった。