Closed21

Linux note (→ NixOS 仮設定)

toyboot4etoyboot4e

さてさて

PC を組み立てました。 BIOS を更新すると、外付け SSD の NixOS が快適に動くようになりました。 OS も更新します。

$ nix-channel --add https://nixos.org/channels/nixos-22.11 latest
$ nix-channel --update
$ sudo nix-channel --add https://nixos.org/channels/nixos-22.11 nixos
$ sudo nix-channel --update
$ sudo nixos-rebuild switch
$ reboot

引き継いだ設定

以前の設定がそのまま残っています。 Linux 何も分からんという状況ですが、ブラウザとかターミナルのような箱庭の中では、以前 (mac 時代) の力を同様に振るうことができます:

  • Wifi: なぜか繋がってくれています。
  • 高 DPI: 非対応。アプリ毎に文字サイズと拡大率を変えて誤魔化しています。
  • 日本語入力: fcitix-mozc (JIS 配列)
  • i3wm
  • dmenu
  • binsh: dash
  • user shell: fish
  • home-manager: む、ローカルのパスに入っていない?
    Installation の 2 にあたる使い方をしていました。もう忘れてるよ……
  • dotfiles: symlink を貼っていました

薄々感じていること

外付け SSD ってとんでもなく便利ですね。 NixOS のように参照透過な (?) 設定ファイルが無くたって、 SSD の中身をクローンして持ち運ぶだけで十分な再現性が手に入る気がしました。 NixOS への興味・関心が薄れてしまったかも……

これから

外付け SSD の Linux を内蔵 SSD にクローンしたり、 GPU のドライバを更新したり、デバイス類の接続を試してみたり、 Linux の細かい設定を詰めていきたいと思います。

toyboot4etoyboot4e

外付け SSD → 内蔵 SSD (失敗)

今回は Linux install battle を避け、ドライブ複製でやり過ごしたいです。 Install battle はもう 1 つの SSD でやればいいのです。複製後、ちゃんと起動するかは疑問ですが……

ドライブを確認

$ lsblk
NAME    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda       8:0    0 447.1G  0 disk          # 外付け SSD
├─sda1    8:1    0   100M  0 part             # Windows (boot)
├─sda2    8:2    0 134.5G  0 part             # Windows
├─sda3    8:3    0   512M  0 part /boot       # NixOS (boot)
└─sda4    8:4    0   312G  0 part /nix/store  # NixOS
                                  /
nvme0n1 259:0    0 953.9G  0 disk          # 内臓 SSD

GParted でドライブをコピー

USB から Ubuntu の ライブイメージ を起動し、 GParted (parted の GUI) でパーティションタイプを設定、ドライブのクローンを実行します。なるほど無難そう……!

https://gihyo.jp/admin/serial/01/ubuntu-recipe/0645

Ubuntu のライブイメージを起動します。 Try or install Ubuntu を選択し、しばらく待つとデスクトップ画面が現れました。ドライバーが合っていないのか、画面が真っ赤で目に痛い。

ブートイメージ (0.5 GB) のコピーは 22 秒で完了しました。memcpy は基本 O(n) の処理らしいので、残り 100 GB のコピーには単純に 200 倍の時間がかかります。ざっと 67 分か…… (寝よう)

ワシの PC が七色に輝いておる

睡眠に支障が出るレベルだ……w

起動

SSID を変えたのは不味かった……?

複製したドライブは元のドライブと同一の UUID を持っています。何かと厄介なことが発生しそうなので、 GParterd で内臓 SSD にランダムな UUID を設定しました。ところが NixOS が Stage 1 で起動しません。 /dev/disk/by-ssid/<old-SSID> が見つからないとか。それはそう。

再び Ubuntu のライブイメージから以下のように UUID を巻き戻したものの、やはり Stage 1 で躓きます。なぜよ〜〜

$ blkid | grep UUID
..
nvme0np2 <new-UUID>
..
/dev/sda4 <old-UUID>

$ tune2fs -U "<old-UUID>" /dev/nvme0np2
$ sudo blkid -p /dev/nvme0np2
<old-SSID>

fsck を使ってみても問題なさそう

やっぱり入れ直そう

toyboot4etoyboot4e

今思うと

Ubuntu から内臓 SSD (失敗 NixOS) をマウントして、 hardware-configuration.nix (/etc/fstab) を編集してあげれば良かったのかな…… (nixos-generate-config) 。

toyboot4etoyboot4e

Tips

  • sudoedit /etc/nixos/configuration.nix
    ユーザ環境かつスーパーユーザ権限? でファイル編集 (EDITOR の設定が必要)
toyboot4etoyboot4e

NixOS install battle

SSD の複製を挫折したので、 1 から NixOS を入れ直します。前回は Gnome 版に逃げましたが、今回は Minimal installer を使います。今度こそ Wifi に接続できるはず……!

Error: shim_lock protocol not found

Manual じゃなくて wiki の方にだけ記載がありました:

UEFI boot

The EFI bootloader of the installation media is not signed and is not using a signed shim to boot. This means that Secure Boot will need to be disabled to boot.

BIOS から secure boot を無効化し、改めてインストールイメージを起動します。あっさり起動しました。

$ sudo -i
# loadkeys jp106

2.3.1 Networking in the installer

On the minimal installer, NetworkManager is not available, so configuration must be perfomed manually.

マニュアルに従います:

# systemctl start wpa_supplicant
# wpa_cli
..
Selected interface 'wlo1'

Interactive mode

シェルではないので "" を省かず入力します:

> add_network
0
> set network_0 ssid "<SSID>"
OK
> set_network 0 psk "<PASSWORD>"
OK
> set_network 0 key_mgmt WPA-PSK
OK
> enable_network 0
OK
..
> quit

どうもネットに繋がった気がします。ここから SSH で操作できるようになりますが、続行します。

2.3.2. Partitioning and formatting

複製に失敗した NixOS を上書きする形になります。まずはディスクを確認します:

# lsblk

内臓 SSD nvme0n1nvme0np1, nvme0np2 に分かれていることが確認できます。 マニュアルでは /dev/sda が使用されていますが、僕は /dev/nvme0n1 を使うことになります ね。 nvme0n1 に対して partition table を作成します:

# parted /dev/nvme0n1 -- mklabel gpt
..
Information: You may need to update /etc/fstab.

/etc/fstab を更新すべきかも、という Info は今回は無視しても良さそう。

Partition を作っていきます。スワップテーブルの推奨サイズは floor(sqrt(RAM)) ぐらいかも:

# parted /dev/nvme0n1 -- mkpart primary 512MB -8GB
Information: You may need to update /etc/fstab.

# parted /dev/nvme0n1 -- mkpart primary linux-swap -8GB 100%
Information: You may need to update /etc/fstab.

# parted /dev/nvme0n1 -- mkpart ESP fat32 1MB 512MB
Information: You may need to update /etc/fstab.


# parted /dev/nvme0n1 -- set 3 esp on
Information: You may need to update /etc/fstab.

lsblk で容量から partition の名前を確認します:

  • nvme0n1p1: その他 (デカい)
  • nvme0n1p2: スワップ
  • nvme0n1p3: ブート

2.3.2.3. Formatting

先ほど割り当てたパーティションをフォーマットします:

# # 一番容量の大きいパーティション:
# mkfs.ext4 -L nixos /dev/nvme0n1p1
mke2fs 1.46.5 (30-Dec-2021)
Discaring device blocks: done
Creating filesystem with .. blokcs and .. inodes
Filesystem UUID: ..
Supreblock backups stored in blocks:
..


# # スワップ領域:
# mkswap -L swap /dev/nvme0n1p2

# # ブート (UEFI):
# mkfs.fat -F 32 -n boot /dev/nvme0n1p1
mkfs.fat 4.2 (2021-01-31)
mkfs.fat: Warning: lowercase labels might not work properly on some systems

なんか警告が出たけれどまあいいか……。ソフトウェア RAID とかはよく分からないので飛ばします。

2.3.3 Installing

ここもマニュアル通りに行きます:

# mount /dev/disk/by-label/nixos /mnt
# mount /dev/disk/by-label/boot /mnt/boot
# nixos-generate-config --root /mnt

nixos-install する度にインストール先 NixOS の履歴が増えていきます。一旦デフォルトを書き込んでおきましょう:

# nixos-install

reboot 前の編集

設定ファイルのバックアップを取っておきます:

# cp /etc/nixos/configuration.nix{,.initial.bak}

sudo と Wifi が有効なユーザ作成

Chapter 14. Networking を参考に network manager を有効化します:

  networking.networkmanager.enable = true

また Chapter 8. User Management を参考に、 extraGroups の `wheel

users.users.alice = {
  isNormalUser = true;
  home = "/home/alice";
  description = "Alice Foobar";
  extraGroups = [ "wheel" "networkmanager" ];
  # openssh.authorizedKeys.keys = [ "ssh-dss AAAAB3Nza... alice@foobar" ];
};

また便利ツールをいくつか:

environment.systemPackages = with pkgs; [
  vimHugeX # Vim + clipboard だって自分の dotfiles に書いてあった
  wget xcpli
  bash fish tmux git gh ghq ripgrep fd exa
];

Nix の文法分からん……

reboot

fsck で起動ディスク修復

なぜか起動ディスクが壊れていたので、 fsck を使えとブートローダに言われました。怖い……

USB の NixOS から fsck を使用し、内臓 SSD の NixOS 起動ドライブを修復しました。

ログイン

まだ configuration.nix で作ったユーザにはログインできませんでした。一旦 root でログインします。

とりあえず日本語配列に:

# loadkeys jp106

ユーザのパスワード設定:

# passwd <user name>

まず Wifi が欲しいので network manager を使っていきます。これは上で利用した wpa_supplicant の wrapper だとか。コマンドとしては nmcli が対応します:

# nmcli status
wlo1: disconected
  ..

wlo1wifi(iwlwifi) だったのでこれを使います:

# nmcli dev wifi
<WiFi 一覧>

# nmcli --ask dev wifi connect <SSID>

# ping google.co.jp

ネットが繋がったので、 nixos-install で入れておいた ghq で自分の dotfiles を引っ張ってきます。やったか……?!

toyboot4etoyboot4e

経過

Secure boot 有効化

問題なく起動できました。この機能がよく分からない。

toyboot4etoyboot4e

configuration.nix の基本設定

Flakes などは置いておき、基本設定を改善します。 home-manager は一応入れます。

console

日本語キー配列を有効化します。またフォントやフォントサイズを変更します。なお、これはコンソールモード (?) の表示設定であり、 X の設定は別途必要です:

console = {
  keyMap = "jp106";
  earlySetup = true; # FIXME: not working no startup?
  packages = with pkgs; [ terminus_font ];
  font = "ter-u28n";
};

https://discourse.nixos.org/t/need-help-setting-tty-font/16295/2

X と i3

快適な WM を手に入れます。

https://nixos.wiki/wiki/I3

https://wiki.archlinux.org/title/i3

高 DPI

現状無設定です。アプリごとにフォントサイズ・拡大率を変えていこうかと……。

ただ GPU を有効化すると、フォントサイズの DPI スケーリングが有効になったように思います (後述) 。

X の設定

キー配列の設定方法が分かりませんでした。 fcitix-mozc で変更してしまいます。

i3 の設定

  • i3block
  • dmenu (rofi)

fcitix-mozc で日本語入力

fcitx-configtool で IME を設定します。 MOZC と日本語キー配列を用意し、デフォルトのキーボードも日本語キーボードにします。また IME の有効化・無効化キーは削除します:

$  fcitx-configtool

また mozc の設定を開き、mac 同様に無変換キーで IME (MOZC) を無効化、変換キーで IME (MOZC) を有効化できるようにします。

$ /run/current-system/sw/lib/mozc/mozc_tool --mode=config_dialog
  • 有効化には Direct Input, 無効化には Precomposition を使います。
  • 干渉する設定は削除します。

この画像は高 DPI 対応前に flameshot で撮りました。

CapsLock を Ctrl に変更する件は X11 の設定で

home-manager (NixOS モジュール) でパッケージ追加

systemPackages とほぼ同じですが、ユーザが自分で選んだアプリくらいのニュアンスで使用しています。

https://nixos.wiki/wiki/Home_Manager

GHCup の入れ方

普通にシェル実行して ghc の make に失敗 うーむ

自動スリープ・ディスプレイオフを禁止

flameshot でスクリーンショット

flameshot は引数なしで起動するとすぐに終了します (c.f. flameshot --help) 。 GUI はflameshot gui で起動でします:

bindsym $mod+Shift+s exec QT_SCALE_FACTOR=2 flameshot screen
bindsym $mod+Shift+g exec QT_SCALE_FACTOR=2 flameshot gui
  • キーは仮です
  • 高 DPI 対応 のため環境変数を設定しています。特に X11 自体に DPI の設定はした覚えが無かったが…
toyboot4etoyboot4e

かゆいところに手が届くように

i3blocks

i3 でタイトルバーを除去

ファイル名が分かるときもあるので、特定アプリは対象外としたいですが一旦:

for_window [class="^.*"] border pixel 0

SSH

SSH が無いと GitHub にアクセスできないので有効化します:

カーソルをデカく

デカくしたけれど解像度が……

import でウィンドウのスクリーンショットを撮る

  • #5 によると flameshot ではウィンドウのスクリーンショットが取れない
  • import で撮影するスクリプトを改良
x11-screen
#!/usr/bin/env bash
#
# Take screen shot on X11 using `imagemagick`:
# https://unix.stackexchange.com/questions/233345/how-can-i-easily-make-screenshots-of-screen-regions-on-arch-linux-with-i3-wm

set -euE
set -o pipefail

if [ $# -eq 0 ] ; then
    show_help
    exit
fi

if [ "${1}" == '-w' ] ; then
    # capture a window
    import_params="-window root"
    base_folder="${2:-$(pwd)}"
elif [ "${1}" == '-r' ] ; then
    # capture a user-selected region
    import_params=""
    base_folder="${2:-$(pwd)}"
else
    echo "specify -w (window) or -r (region" 1>&2
fi

outpath="${base_folder}/$(date '+%Y-%m-%d_%H-%M-%S').png"

import ${import_params} "${outpath}"

xclip -selection clipboard -target image/png -i < "${outpath}"

X11 のキー修正

setxkbmap で試し打ちできます。

  • CapsLock を ctrl にする
  • TODO: \_ の入れ替え
services.xserver.xkbOptions = "ctrl:nocaps, "

mozc の一部キー修正

Backspace

Backspace で変換、 Ctrl + Backspace が 1 文字削除になっていました。通常の操作感に合わせます。

Alt キーで記号入力 (mozc)

Mac 同様に『』… などを打ちやすくします。 TODO

Ctrl-A の衝突を考える

mac 風にする? TODO

ranger 用のターミナル

https://www.reddit.com/r/i3wm/comments/bk58hy/open_ranger_in_new_floating_terminal/

Floating window

i3 config:

or_window [title="ranger" class="URxvt"] floating enable

こういう設定があるなら、 Kitty ではなく別のアプリ (URxvt など) を専用に使うのが良いかもしれません。

画像のドラッグ & ドロップ

dragon (nixpkgs 上では xdragon) を単ファイル表示の GUI アプリとして使います:

map <C-d> shell dragon -a -x -s 1280 %p &

https://github.com/ranger/ranger/wiki/Drag-and-Drop

dragoni3 上のワークスペースでも表示されるようにしておきます:

# dragon (`xdragon` on nixpkgs)
for_window [class="Dragon"] sticky enable;

ターミナル上での mozc 利用

TODO Kitty で fcitx 有効化 (fcitx5 ならいける?) SKK に逃げる?

toyboot4etoyboot4e

デスクトップ環境として Mac と比較

どちらもそれなりに設定しているため、スペックや動作アプリ以外ほぼ差が無い気がします。

Pros

  • グラフィクスに強い (はず)
  • i3 が速くて快適
  • GIMP が安定

Cons

  • 動画編集ツールや音楽作成ツールに乏しい
  • Finder が無い
  • 高 DPI 完全対応ではない
  • Ctrl 関連のマップが Cocoa キーバインディングと衝突する
  • ライブ変換が無い

より有意義な考え

すべてを兼ね備えた環境は無いので、使い分けを考えます。

  • Mac (MBP) は iPad+++++++++ ぐらいの気持ちでお手軽に使います。
  • Linux はクリエイティブができない無念マシンとして使っていきます。
  • クリエイティブが必要になったら、 3 台目のパソコンを買って Windows を入れます。
toyboot4etoyboot4e

Arch や Gentoo への関心

NixOS の環境構築はかなりお膳立てされており、 Wifi が繋がればこっちのものです。これでは ** Linux install batlle 経験値が足りないのではないかと危惧しています。

  • NixOS の初期設定はあまり辛くない気がする
  • NixOS では環境が壊れることが (ほぼ) 無い
toyboot4etoyboot4e

Fallout やろうぜ!

デバイス類の設定は億劫ですが、 New Vegas だと自分を騙しつつ設定していきます。

オーディオ有効化

ALSA とついでに pulseaudio を有効化したら鳴るようになりました。あとユーザの extraGroups"audio" を追加します。

arecord -l でサウンドデバイスの一覧が見れます。イヤホン切り替えはどうやればいいかな……

Bluetooth 有効化

TODO

GPU

NVIDIA ドライバを有効化して reboot します。ログイン画面を始め、 i3blocksqutebrowser でフォントサイズの DPI スケーリングが始まりました。これ GPU 無しでも有効化できないかな……

GPU の使用状況確認

NVIDIA ドライバを有効化すると、 nvidia-smi が使えるようになりました。 nvidia-smi はワンショットのコマンドですが、 watch で繰り返し更新することもできます:

$ nvidia-smi
Sun Jan 22 17:31:41 2023       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 520.56.06    Driver Version: 520.56.06    CUDA Version: 11.8     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0  On |                  N/A |
|  0%   46C    P8    17W / 220W |    665MiB /  8192MiB |      4%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1311      G   ...xorg-server-1.20.14/bin/X      246MiB |
|    0   N/A  N/A      1637      G   ...ython3-3.10.9/bin/python3      410MiB |
|    0   N/A  N/A      2922      G   ...bm/.nix-profile/bin/kitty        6MiB |
+-----------------------------------------------------------------------------+

0 番目の GPU が GeForce ですね。 Persistence mode Off となっておりますが、 On にすると常にドライバが可動する? 前準備としては十分そうです。

Steam / Proton

Mac で 0.3 FPS だった Withcer 2 を起動してみました。 Linux でしかも NixOS なのにちゃんと動くな……しかも 4K で……!!

動画の再生中に画面の上半分と下半分が別フレームの表示になっていて、 RTX 3070 の性能限界かなという感じもしますが驚異的な、驚異的なインフラを感じます。

toyboot4etoyboot4e

ビルド環境

新環境のビルドは圧倒的に速くなって幸福を感じます。これが Core i7 12700K の力ね! ただし NixOS はパッケージ環境の強いお手軽 Linux ではなくnix-shell の使用を迫られるヤクザな OS です。 1 周間は停滞するつもりで向き合わなければなりません。

Haskell: direnv に逃げる

GHCup 経由のインストールが NixOS では上手く動きません。古いバージョンのセットアップも大変そうです。実行ファイルを手に入れて direnv でパスに入れるか……

  • stack, cabal (cabal-install): home-manager で入れました
  • ghc 8.8.3: ghcs-nix でビルドしました
  • hls 1.5.1: バイナリをダウンロードします
  • gen-hie (implicit-hie): cabal update && cabal install gen-hie で良さそう? CPU 使用率がヤバい!

Python: 無理

無理……

ゲーム開発: default.nixnix-direnv に逃げる

なんとかなった……。詳細は TODO

pkg-config とは。なぜビルドに失敗するのか

TODO

toyboot4etoyboot4e

応急処置完了

一時しのぎの設定を継ぎ接ぎし、 NixOS を普通の Linux として十分使用できる環境にしました。

  • i3wm が使用できる
  • Rust 製ゲームをビルドできる
  • Haskell で AtCoder ができる (online-judge-tools (Python) が無理)
  • 3D ゲームをプレイできる

明日から人間的な睡眠時間に戻れる……! そして Flakes など NixOS らしいところを見に行きます。

toyboot4etoyboot4e

そんなこと言うから (・ω・)

Linux が固まって、再起動からの画面が点かないコンボがキマってしまうんだよ〜〜。電源をぶち切る以外の適切な対応が知りたかった……

トラブルシーティング

なんとか BIOS は起動しました。configuration.nix ぐらい push しておけば良かった……。今度は睡眠を優先しつつ復旧します。

  • BIOS で SSD が認識されない。外付け SSD からは起動可能
  • 起動が異様に遅いのが不安。 EZ Debug LED は白 (長時間) → 緑
  • 白は位置的に GPU が無いよのエラーでした。グラフィクスカードを抜いてみても変化なし。なぜ GPU を検出しようとするのか……?
    https://www.msi.com/support/technical_details/MB_Boot_No_Display
  • M.2 SSD を抜いてみると一瞬で起動するので、やはりこれが原因ですね
  • M.2 SSD を付け直しても変化なし
  • 別の SSD スロットに付けても認識しない
  • もう 1 つの SSD を取り付けると認識する

うーむ……

toyboot4etoyboot4e

NixOS install battle (2 回目)

以下チャートをこなしていくぞ〜〜

インストールディスク

  • Wifi 有効化
  • フォーマット、パーティション作成
  • nixos-install
  • 初期設定と再びの nixos-install (pulseaudio, 初期ユーザ、 ssh, home-manager, 各種ツール)

再起動後

  • パスワード設定、 Wifi 有効化、 reboot
  • dotfiles 設置
  • GPU / steam / 各種 GUI ツールを有効化して reboot
  • X11, i3 有効化
  • xtem-24bit.terminfo 有効化、 Linux 用に dotifles リポジトリ修正
  • Mozc 有効化・設定、 Capslock の Ctrl 化 (X11)
  • home-manager 有効化
  • i3blocks 調整、 ranger / xdragon 調整、 flameshot, スクショスクリプト
  • qutebrowser 設定、 Firefox 設定
  • Haskell の AtCoder 環境用意
  • Steam 有効化

結局 4 ~ 5 時間かかりました。明日こそまともに寝るんだ……

新知識

  • GPU を接続しないと X が起動しない (そういうものか、 nvidia ドライバー有効だからか)
  • i3 では $mod + 右クリックでウィンドウをリサイズできる (resize モードも作っていますが)
  • oj のインストールどうしよう……
    • python310Packages.pip からは pip install 失敗
    • そもそも online-judge-toolsnixpkgs にあるので直接入れてしまいます
    • ojnixpkgs から入れると芋づる式で nixpkgs から ghc883 を探し出す気がします。 884 はあるっぽいんだけれど……

要した時間

5 時間程度で完了しました。 configuration.nix が完成したので、次は 2 時間かからないかも……?

toyboot4etoyboot4e

今回の設定で諦めたこと

Nix / NixOS

まずはベター Ubuntu として NixOS を使用する心積もりでしたから、 NixOS ならではの機能をおざなりにしています。

  • Nix の基本文法
  • パッケージのカスタマイズ
  • configuration.nix の分割
  • default.nixshell.nix への理解
  • Flakes と dotfiles の置き換え

Linux

NixOS が難しくて有効化できていない機能があります。また Linux 自体の知識が無さすぎます。

  • fctix5, fcitx-mozc の有効化、 Kitty での日本語入力
  • Bluetooth 有効化 (うーむ)
  • その他 DE の機能を補う設定とツール類
    • CLI
    • TUI
  • UEFI/BIOS, systemd, ibus, dbus などなど (面白そうだが、、!)
  • モニタの自動検出と映像出力の自動切り替え

その他

NixOS ならではのトラブルシューティング

  • GHCup で GHC をインストール
  • pip の使い方、 oj のインストール
  • Emacs on Kitty でクリップボード

こういうレベルに行きたい

いろいろ諦めた結果、ナード崇拝が高まりました。面白そうなのに今は手が届きません。マニュアル・ドキュメントや教科書類を Kindle Scribe に入れておきます。未来の自分なら手が届くはず……!

https://zenn.dev/nyarla/scraps/d0eeca162a780a

toyboot4etoyboot4e

最後にベンチマークをやっていこう

今度は SSD も死ななかった

たぶんフルスクリーンでゲームをプレイしながら i3wm でワークスペースを切り替えると致命的なエラーに陥ります。二度と同じ轍は踏まない……!

SSD が壊れたのは初期不良だったと思うことにします。 fsck しろって言われましたし。保証対象になるか聞いてみます。

監視系のツール

  • CPU, ファン: i3blocks で十分かも
  • GPU: watch nvidia-msi
  • メモリ: i3blocks で十分かも

CPU (geekbench5)

ビルド、ブラウザ、エディタ起動、ブログ生成、果てにはキー入力すら速くなった気がします。 Core i7 12700K の実力を少しでも実感したいと思います。

$ NIXPKGS_ALLOW_UNFREE=1 nix-shell -p geekbenck
$ geekbench5

ベンチマーク結果オンラインの情報 (?) にかなり近いですね。実力を実感したかと言うと、どんな計算が走ったのか分からない……

GPU

RTX 3070 を使っています。 4K 1 枚しか出していないし、完全にオーバースペックな気がするのですが、なんとかスペックの実感を持ちたいです。

Web 記事の内容

RTX 3070 を使うと、 FHD 解像度で 60 ~ 100 FPS で 3D ゲームをプレイできるようです。 4K だと 30 ~ 50 FPS 程度に落ちます。快適にゲームをするなら RTX 3080 を買おうということになります。

あと 4, 5 万円だったら出しても良かったかな……。まあ普段使わないのでヨシ!

FF XV

ちょっと NixOS で走らせる方法が分からない……

vkmark

nixpkgs 22.11 には vkmark がありません。自前のビルドには失敗しました。

本当は Mailbox の present mode がベンチマークに適しているようですが、動かなかったので fifo にしました。

$ vkmark --present-mode fifo
=======================================================
    vkmark 2017.08
=======================================================
    Vendor ID:      0x10DE
    Device ID:      0x2488
    Device Name:    NVIDIA GeForce RTX 3070
    Driver Version: 2181955968
    Device UUID:    28aaf2792e534abc1697326a9c194f86
=======================================================
[vertex] device-local=true: FPS: 85 FrameTime: 11.765 ms
[vertex] device-local=false: FPS: 85 FrameTime: 11.765 ms
[texture] anisotropy=0: FPS: 85 FrameTime: 11.765 ms
[texture] anisotropy=16: FPS: 85 FrameTime: 11.765 ms
[shading] shading=gouraud: FPS: 85 FrameTime: 11.765 ms
[shading] shading=blinn-phong-inf: FPS: 85 FrameTime: 11.765 ms
[shading] shading=phong: FPS: 85 FrameTime: 11.765 ms
[shading] shading=cel: FPS: 85 FrameTime: 11.765 ms
[effect2d] kernel=edge: FPS: 85 FrameTime: 11.765 ms
[effect2d] kernel=blur: FPS: 85 FrameTime: 11.765 ms
[desktop] <default>: FPS: 85 FrameTime: 11.765 ms
[cube] <default>: FPS: 85 FrameTime: 11.765 ms
[clear] <default>: FPS: 60 FrameTime: 16.667 ms
=======================================================
                                   vkmark Score: 83
=======================================================

どういう測定ができたのか分からない……

Blender benchmark

https://opendata.blender.org/

実行できなかった……

ストレージのベンチマーク

まあいいや!

このスクラップは2023/01/30にクローズされました