Linux note (→ NixOS 仮設定)

OMG
Can't type Japanese

さてさて
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 の細かい設定を詰めていきたいと思います。

外付け 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) でパーティションタイプを設定、ドライブのクローンを実行します。なるほど無難そう……!
Ubuntu のライブイメージを起動します。 Try or install Ubuntu を選択し、しばらく待つとデスクトップ画面が現れました。ドライバーが合っていないのか、画面が真っ赤で目に痛い。
ブートイメージ (0.5 GB) のコピーは 22 秒で完了しました。memcpy
は基本
ワシの 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
を使ってみても問題なさそう
やっぱり入れ直そう

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

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

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 nvme0n1
が nvme0np1
, 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
..
wlo1
が wifi(iwlwifi)
だったのでこれを使います:
# nmcli dev wifi
<WiFi 一覧>
# nmcli --ask dev wifi connect <SSID>
# ping google.co.jp
ネットが繋がったので、 nixos-install
で入れておいた ghq
で自分の dotfiles
を引っ張ってきます。やったか……?!

経過
Secure boot 有効化
問題なく起動できました。この機能がよく分からない。

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";
};
X と i3
快適な WM を手に入れます。
高 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
とほぼ同じですが、ユーザが自分で選んだアプリくらいのニュアンスで使用しています。
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 の設定はした覚えが無かったが…

かゆいところに手が届くように
i3blocks
- i3blocks-contrib + 関連依存
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
用のターミナル
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 &
dragon
は i3
上のワークスペースでも表示されるようにしておきます:
# dragon (`xdragon` on nixpkgs)
for_window [class="Dragon"] sticky enable;
ターミナル上での mozc 利用
TODO Kitty で fcitx 有効化 (fcitx5 ならいける?) SKK に逃げる?

デスクトップ環境として Mac と比較
どちらもそれなりに設定しているため、スペックや動作アプリ以外ほぼ差が無い気がします。
Pros
- グラフィクスに強い (はず)
-
i3
が速くて快適 - GIMP が安定
Cons
- 動画編集ツールや音楽作成ツールに乏しい
- Finder が無い
- 高 DPI 完全対応ではない
- Ctrl 関連のマップが Cocoa キーバインディングと衝突する
- ライブ変換が無い
より有意義な考え
すべてを兼ね備えた環境は無いので、使い分けを考えます。
- Mac (MBP) は iPad+++++++++ ぐらいの気持ちでお手軽に使います。
- Linux はクリエイティブができない無念マシンとして使っていきます。
- クリエイティブが必要になったら、 3 台目のパソコンを買って Windows を入れます。

Arch や Gentoo への関心
NixOS の環境構築はかなりお膳立てされており、 Wifi が繋がればこっちのものです。これでは **
Linux install batlle 経験値が足りないのではないかと危惧しています。
- NixOS の初期設定はあまり辛くない気がする
- NixOS では環境が壊れることが (ほぼ) 無い

Fallout やろうぜ!
デバイス類の設定は億劫ですが、 New Vegas だと自分を騙しつつ設定していきます。
オーディオ有効化
ALSA とついでに pulseaudio
を有効化したら鳴るようになりました。あとユーザの extraGroups
に "audio"
を追加します。
arecord -l
でサウンドデバイスの一覧が見れます。イヤホン切り替えはどうやればいいかな……
Bluetooth 有効化
TODO
GPU
NVIDIA ドライバを有効化して reboot
します。ログイン画面を始め、 i3blocks
や qutebrowser
でフォントサイズの 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 の性能限界かなという感じもしますが驚異的な、驚異的なインフラを感じます。

ビルド環境
新環境のビルドは圧倒的に速くなって幸福を感じます。これが Core i7 12700K の力ね! ただし NixOS はパッケージ環境の強いお手軽 Linux ではなく 、 nix-shell
の使用を迫られるヤクザな OS です。 1 周間は停滞するつもりで向き合わなければなりません。
direnv
に逃げる
Haskell: 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.nix
と nix-direnv
に逃げる
ゲーム開発: なんとかなった……。詳細は TODO
pkg-config
とは。なぜビルドに失敗するのか
TODO

応急処置完了
一時しのぎの設定を継ぎ接ぎし、 NixOS を普通の Linux として十分使用できる環境にしました。
- i3wm が使用できる
- Rust 製ゲームをビルドできる
-
Haskell で AtCoder ができる (
online-judge-tools
(Python) が無理) - 3D ゲームをプレイできる
明日から人間的な睡眠時間に戻れる……! そして Flakes など NixOS らしいところを見に行きます。

そんなこと言うから (・ω・)
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 を取り付けると認識する
うーむ……

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-tools
がnixpkgs
にあるので直接入れてしまいます-
oj
をnixpkgs
から入れると芋づる式でnixpkgs
からghc883
を探し出す気がします。884
はあるっぽいんだけれど……
-
要した時間
5 時間程度で完了しました。 configuration.nix
が完成したので、次は 2 時間かからないかも……?

その他
-
pavucontrol
= PulseAudio Volume Control: 音の GUI
https://nixos.wiki/wiki/PulseAudio -
vertex (mod manager) をビルドするための
shell.nix
:
https://github.com/Nexus-Mods/Vortex
……はビルドに失敗しますね。

今回の設定で諦めたこと
Nix / NixOS
まずはベター Ubuntu として NixOS を使用する心積もりでしたから、 NixOS ならではの機能をおざなりにしています。
- Nix の基本文法
- パッケージのカスタマイズ
-
configuration.nix
の分割 -
default.nix
とshell.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 に入れておきます。未来の自分なら手が届くはず……!

最後にベンチマークをやっていこう
今度は SSD も死ななかった
たぶんフルスクリーンでゲームをプレイしながら i3wm
でワークスペースを切り替えると致命的なエラーに陥ります。二度と同じ轍は踏まない……!
SSD が壊れたのは初期不良だったと思うことにします。 fsck
しろって言われましたし。保証対象になるか聞いてみます。
監視系のツール
- CPU, ファン:
i3blocks
で十分かも - GPU:
watch nvidia-msi
- メモリ:
i3blocks
で十分かも
geekbench5
)
CPU (ビルド、ブラウザ、エディタ起動、ブログ生成、果てにはキー入力すら速くなった気がします。 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
がありません。自前のビルドには失敗しました。
- https://gist.github.com/voidIess/59ba97e4f759c2498f81289205582e61
- https://discourse.nixos.org/t/installing-only-a-single-package-from-unstable/5598
本当は 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
実行できなかった……
ストレージのベンチマーク
まあいいや!