いさぽん部屋(isapon.com)

ゲーム系プログラマによる特に方針のないブログ。技術系とカレー、ラーメンネタ多めだったはずが、最近はダイエットネタ多め。

Vulkan(vkcube) in FreeBSD on bhyve

目的

f:id:no-operand:20200113190735p:plain

vulkan のプログラムをテストしたいのだけど、メインPCで開発していると失敗したときにフリーズしたりしてちょっと大変なので、仮想環境の中で実行してみようという試みです。


うまくいったのでやり方をまとめておきます。


なお、nVidiaのFreeBSDドライバは vulkan をサポートしていないので、FreeBSDで試すなら AMD か Intel のGPUを使います。


動作環境

  • CPU AMD athlon 200ge (*1)
  • Memory 8G
  • AMD Radeon R7 230/340
  • NVidia GeForce 750Ti (*2)

  • Linux AMD Pro Drive not supported Vega 3 GPU.

  • Not test.

安価な AMT Athlon 200GE で組んだPCでテストしてみました。なにより、今回はあまり例の少ない RADEON を試したかったというのもあります。


準備1・PCI Passthrough

BIOS画面で SVM と IOMMU を有効にしておく。

FreeBSD 12.1

今回の実験でVMを保存しておくディレクトリは /var/vm になっています。

PCI

PCI passthrough で仮想環境内でGPUをダイレクトアクセスできるように準備します。

まずはpassthroughしたいGPUのBUSIDを調べます。テスト機には3つのGPUがありますが、Radeon R7 をテストに使います。

pciconfで調べた結果、BUSID = 6:0:0 であることがわかりました。

# pciconf -lv | grep -B3 display    # Check GPU PCIBUS
vgapci2@pci0:6:0:0:        class=0x030000 card=0xe263174b chip=0x66131002 rev=0x00 hdr=0x00
    vendor     = 'Advanced Micro Devices, Inc. [AMD/ATI]'
    device     = 'Oland PRO [Radeon R7 240/340]'
    class      = display

/boot/loader.conf

loader.conf パススルーであることを設定します。また、今回はAMDのCPUを使っているので loader.conf に hw.vmm.amdvi.enable="1" も追加しておきます。

BUSIDは : ではなく / で区切ります。

GPUは6/0/0ですが、HDMIのAudioデバイスがセットでくっついているのでそれもパススルーに追加しておきます。ほぼ間違いなく3つめの値が1です。

# AMD-VI
hw.vmm.amdvi.enable="1"

vmm_load="YES"
pptdevs="6/0/0 6/0/1"

ここで一回再起動します。

reboot

再起動したらパススルーデバイスになっているか確認します。

# pciconf -lv | grep -B3 display    # Check GPU PCIBUS
ppt0@pci0:6:0:0:        class=0x030000 card=0xe263174b chip=0x66131002 rev=0x00 hdr=0x00
    vendor     = 'Advanced Micro Devices, Inc. [AMD/ATI]'
    device     = 'Oland PRO [Radeon R7 240/340]'
    class      = display

vgapci2 が ppt0 になっています。パススルーするデバイスの数によって ppt1 だったり ppt2 だったりしますがそこは関係ないので気にしないでよいです。

準備2・Virtual Machine

仮想マシンを構築していきます。

vm-bhyve

bhyveをそのまま使うとコマンドを打つのが大変なのでvm-bhyveを使います。vm-bhyveはbhyveを簡単に呼び出すためのシェルスクリプトです。
3行目と4行目の public は仮想マシンが使う仮想ネットワークデバイスの名前です。なんでも良いのですが、多くのサンプルに合わせてpublicにします。
4行目の re0 は使用しているネットワークインターフェースの名前です。
5行目はFreeBSDのインストールメディアのダウンロードです。
6行目のvktestは仮想マシンの名前なので自分で好きなようにつけてください。

# pkg update
# pkg upgrade
# pkg install vm-bhyve
# mkdir /var/vm
# vm init
# vm switch create public
# vm swotch add public re0
# vm iso https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES/12.1/FreeBSD-12.1-RELEASE-amd64-disc1.iso
# vm create vktest

/var/vm/vktest/vktest.conf

仮想マシンの設定ファイルをいぢります。ファイルは /var/vm/vktest/vktest.conf です。vktestはさきほどの仮想マシンの名前です。
ポイントは passthru0 です。ここにパススルーしたいBUSIDを記載します。複数ある場合はpassthru0,passthru1のように書いていきます。

loader="bhyveload"
cpu=1
memory=2G
network0_type="virtio-net"
network0_switch="public"
disk0_type="virtio-blk"
disk0_name="disk0.img"
passthru0="6/0/0"
passthru1="6/0/1"
uuid="自動設定されているはず"
network0_mac="自動設定されているはず"

仮想マシン用のハードディスクはデフォルトでは20Gバイト確保されています。

# ls /var/vm/vktest
-rw-------  1 root  wheel  21474836480 Jan 13 19:40 disk0.img

自前で確保したいときは truncate コマンドを使います。以下がそのサンプルです。

# truncate -s 16G /var/vm/vktest/disk0.img

VMの起動

「vm install 仮想マシン名 ISOファイル名」でインストールモードでVMを起動できます。ちなみにISOファイルは /var/vm/.iso ディレクトリ内にあるファイル名になります。

# vm install vktest FreeBSD-12.1-RELEASE-amd64-disc1.iso
# vm list
NAME      DATASTORE  LOADER     CPU  MEMORY  VNC  AUTOSTART  STATE
vktest    default    bhyveload  2    2G      -    No         BootLoader(1751)

これで起動しているはずなので、仮想マシンのシリアルコンソールに入ります。環境によってはレイアウトがおかしなことになっていることもありますが、そこは気にせずインストール作業をしてみてください。
なお、vm consoleから抜ける方法はないのでssh経由で操作することをお勧めします。

# vm console vktest

FreeBSDを仮想マシンにインストールしたら、仮想マシン内でsshなどを起動しておくとよいでしょう。
ここからはすべて仮想マシン内での作業になります。


仮想マシン・Desktop

PCIのBUSIDを確認しておきます。
BUSID = 6:0:0 でGPUが見えているのがわかります。ちなみに、ホスト環境と異なることもあるので必ず確認しましょう。

# pciconf -lv | grep -B3 display
vgapci0@pci0:0:6:0:     class=0x030000 card=0xe263174b chip=0x66131002 rev=0x00 hdr=0x00
    vendor     = 'Advanced Micro Devices, Inc. [AMD/ATI]'
    device     = 'Oland PRO [Radeon R7 240/340]'
    class      = display

ソフトウェアのインストール

1行目は基本的なデスクトップ環境です。xorgとx11vncだけあればとりあえずテストはできますが、ウィンドウマネージャをインストールしてちょっと使いやすくしておきます。
2行目はdrm-kmodがGPUドライバ、xf86-video-amdgpuがx11からamdgpuを使うためのソフトです。

# pkg update
# pkg upgrade
# pkg install xorg mate lightdm lightdm-gtk-greeter x11vnc
# pkg install drm-kmod xf86-video-amdgpu

ドライバの読み込み

Radeonの場合はamdgpuというモジュールになります。

# kldload amdgpu
# dmesg
[drm] amdgpu: 2048M of VRAM memory ready
[drm] amdgpu: 1504M of GTT memory ready.
(略)
[drm] size 14745600
[drm] fb depth is 24
[drm]    pitch is 10240

Xの設定

今回はxorg.confを直接書きます。
/usr/local/etc/X11/xorg.conf を作成し、以下のように編集します。
ポイントは Section Device の BusID と、Section Screen の Virtual の項目です。

Section "ServerLayout"
        Identifier     "X.org Configured"
        Screen      0  "Screen0" 0 0
EndSection

Section "Module"
        Load  "glx"
EndSection


Section "Monitor"
        Identifier   "Monitor0"
EndSection

Section "Device"
        Identifier  "Card0"
        Driver      "amdgpu"
        BusID       "PCI:0:6:0"
        Option      "DRI3" "true"
        Option      "TearFree" "true"
EndSection

Section "Screen"
        Identifier      "Screen0"
        Device          "Card0"
        Monitor         "Monitor0"
        DefaultDepth    24
        SubSection "Display"
                Virtual         1280 1024
                Depth           24
        EndSubSection
EndSection

ユーザーを video グループに追加する

作業するユーザーを video グループに追加し、一般ユーザーに戻ってください。

# pw usermod USERNAME -G video

Xを起動する

今回はわかりやすいようにサービス化せずに直接Xを起動します。

% startx
もしくは
% lightdm

VNCを起動する

SSHなどで接続し、今度はx11vncを起動します。

% x11vnc -storepasswd test.passwd
VNC用パスワードを適当に決める
% x11vnc -auth guess -display :0 -rfbport 5900 -forever -loop -noxdamage -repeat -rfbauth test.passwd

VNC Viewerで接続する

Windowsなどから VNCで接続し、vulkan-toolsなどをインストールしてからvkcube を実行すればVulkanのデモが見れるはずです。

f:id:no-operand:20200113190658p:plain

ESXiとbhyve

最初はVMWare (ESXi)を使っていたのですが、どうやら PCI Passthrough に問題があるらしく…というか実際に使っていたらPCIパススルーまわりでシステムがフリーズしたり…ということが多々ありあまり使い物になりませんでした。


そこで正直あまり期待はしていなかったのですが、FreeBSD bhyve をダメもとで使ってみたところ、思った以上に使いやすい(ホスト環境側にGUIが不要)!安定している!ということで、試しにやってみました。


今後はこれで本格運用をしていこうかなと思います。

テストによさそうなものたち

ASUS AMD Radeon R7 240搭載ビデオカード 防塵ファン R7240-2GD3-L

ASUS AMD Radeon R7 240搭載ビデオカード 防塵ファン R7240-2GD3-L

  • 発売日: 2014/04/25
  • メディア: Personal Computers

AMD CPU Athlon 200GE YD200GC6FBBOX Vegaグラフィックス搭載

AMD CPU Athlon 200GE YD200GC6FBBOX Vegaグラフィックス搭載

  • 発売日: 2018/09/28
  • メディア: Personal Computers

ASRock AMD B450チップ搭載 Micro ATX マザーボード B450M Pro4

ASRock AMD B450チップ搭載 Micro ATX マザーボード B450M Pro4

  • 発売日: 2018/07/31
  • メディア: Personal Computers

お米を収穫した

地産の玄米も美味しいのですが、入荷していない時があったりするので、あまぞーんで無農薬玄米を購入してます。


そんな米ですが、食べる以外にも神棚に定期的にお供えするのにも使っていたりします。


白米じゃないのだけど、たぶん昔は玄米だったんじゃないかなーと考えると、むしろ玄米のほうがいいんじゃないか?というのとやっぱ神様にお供えするのだから無農薬がいいよね?的な。


さて、神棚にお供えしたお米は定期的に入れ替えるわけなのだけど、昨年お供えが終わったお米を試しに水につけていたら見事発芽しました。

f:id:no-operand:20190622131416j:plain

その後、発芽したお米の一部をベランダに置いてある発泡スチロールの箱に水と砂を入れて簡易田んぼもどきを作って植えてみました。

f:id:no-operand:20190729100316j:plain

そして放置

田んぼもどきはベランダに置いてあるのだけど、洗濯物を干すついでに水の量をチェックして減っていたら水を補充。


ただ、雨が降ったら雨水が勝手に補充されるので、水を補充したのは2~3回程度。ぶっちゃけずっと放置。


収穫

そんな稲も実をつけて、無事に収穫。田植えした時期がかなりズレていたのだけどそれでも少量ですが無事お米が獲れました。


人生初物のお米ということで、今年最初の神棚の手入れの時にお供えすることにしました。食べるには少なすぎるし(笑)


f:id:no-operand:20200104221052j:plain

育ててみて思ったこと

(収穫効率を考えなければ)育てること自体はすごく簡単でとても丈夫だということ。


古来日本で米が重要視されていたのもなるほどと頷ける。米がなかったら飢えに耐えられなかったのだろうなと。


あと、収穫した直後の米はとても柔らかい!試しに一粒だけ爪でもみ殻をはがして生米のまま食べてみたのだけど、普通に食べることができた。これはこれでおいしいかも?いや、少量をオヤツがわりにポリポリとかじるなら美味しいかも?というニュアンスね。


また、育ててみようかと思う。


育てた玄米

よく食べてる玄米。おいちぃ。あと今回の実験で、水に漬けたら芽が出る稲を育てることができる。というのが分かったので、それも考えると安心のお米なんじゃないかと思う。

今年もまた、育ててみよう。

headless & x11vncを自動起動にしてリモートPCにする

先日、プログラムのテストを行うための環境をEXSi上の仮想マシンに構築しました。どちらもGPUを使ったプログラムのテストをしたかったのでVNCで接続したいなー。でも毎回自分でVCNServerを起動するのは面倒だなーと思ったので、ヘッドレス化(モニタやきーぼどマウス無しで使うこと)してVNCServerを自動的に起動するようにしました。


セキュリティ的にはちょっと問題もあるのですが、閉じられた環境かつ使い捨ての環境なのでそこまで気にしなくてもよいので今回はとにかくお手軽に使えることを優先です。

headless化のための xorg.conf

まずはheadlessでXが起動できるように設定します。
ポイントはheadlessだと接続されているモニタが見つからないため、Xの初期化に失敗してしまうため「仮想スクリーンを使う」ということを指定してあげることです。

FreeBSDなら /usr/local/etx/X11/xorg.conf.d 、Linux なら /etc/X11/xorg.conf.d に自分が管理しやすい名前でファイルを作成し、以下の内容を記載してください。なお、ファイルの拡張子は .conf である必要があります(例 headless.conf など)。

# GPUを設定する。ここはPCによって異なるので注意
Section "Device"
        Identifier      "X11VncGgraphics0"
        # GPUの種類。nvidia, intel, amdgpu, radeon, modesetting などなど
        Driver          "nvidia"
        # GPUが接続されているPCIバス。
        # FreeBSDは pciconf -lv 
        # Linuxは lspci
        # で探すことができます。
        BusID           "PCI:3:0:0"        # search from pciconf(FreeBSD), lspci(Ubuntu)
EndSection

# ダミー用のモニタを定義する
Section "Monitor"
        Identifier "DummyMonitor0"
EndSection

# 使用するGPUとモニタを関連付けする
Section "Screen"
        Identifier      "Screen0"
        DefaultDepth    24
        Device          "X11VncGgraphics0"
        Monitor         "DummyMonitor0"
        SubSection      "Display"
                Depth           24
                # 仮想スクリーンサイズ。お好きな大きさに。
                Virtual         1280 720
        EndSubSection
EndSection

Section "Device" のGPU設定ですが、GPUの環境やドライバによっては Driver や BusID の項目はなくても大丈夫な時もありますし、使用している環境によって異なるので気を付けてください。FreeBSDなら pciconf -lv 、Linuxなら lspci で調べることができます。
また Identifier につける名前は管理しやすい名前で自由につけて構いません("Screen0" だけは固定のままにしておいたほうが良いです)。

これでモニタを接続しなくてもXが起動するようになります。

あとはlightdmなどのグラフィカルログインマネージャをインストールして自動起動するようにしておけばPC起動時に自動的にheadlessでXが起動するようになります。

x11vncを自動起動する

lightdmをインストールしているならlightdmのVNCServerの機能を使っても良いのですが、ここはx11vncを使ってVNCServerを起動してみます。違いについては下記のマトリックスを参考。

機能 切断時 メリット
lightdm vncserver連動 ログアウト 毎回ユーザーIDとパスワードを求められるので安全
x11vnc server自動起動 何もしない VNCを閉じても作業が中断されない

FreeBSD

Install

portsからインストールしても良いのですが時間短縮のためバイナリインストール。rootで作業します。

pkg install x11vnc

Startup script

次にスタートアップスクリプトを書きます。/usr/local/etc/rc.d/x11vnc というファイルを作成し、下記の内容を書いてください。また、chmod +x で実行権限も付け加えておくように。

#!/bin/sh

# $ FreeBSD $ 2019/12/30 Isaponsoft(Isao Shibuya)
#
# PROVIDE: x11vnc
# REQUIRE: LOGIN cleanvar moused syscons dbus lightdm
# KEYWORD: shutdown
#
. /etc/rc.subr

export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
name="x11vnc"
rcvar=x11vnc_enable

load_rc_config $name
: ${x11vnc_enable:="NO"}
: ${x11vnc_logfile="/dev/null"}
: ${x11vnc_port="5900"}
: ${x11vnc_display=":0"}
: ${x11vnc_authfile="/usr/local/etc/x11vnc.passwd"}

command="/usr/local/bin/${name}"
command_args="-auth guess -display ${x11vnc_display} -rfbport ${x11vnc_port} -forever -loop -noxdamage -repeat -rfbauth ${x11vnc_authfile} > ${x11vnc_logfile} 2>&1 &"

run_rc_command "$1"

ちょっとしたポイントなのですが、6行目が以下のようになっていますが、最後に書いてある lightdm がポイントです。この行は「このサービスを開始するにあたりどのサービスに依存しているのか」というのを指定している行です。つまり、ここに lightdm が必要であることを書き加えると、lightdm が存在する場合は lightdm より後に起動するようにスケジューリングしてくれます。

REQUIRE: LOGIN cleanvar moused syscons dbus lightdm

Service の登録と開始

あとはVNCのパスワードを設定し、先ほどのスクリプトを起動するように指定します。/etc/rc.conf に x11_enable="YES" と書き加えれば良いのですが、serviceコマンドをを使うとこのあたりを簡単に行うことができます。

x11vnc -storepasswd /usr/local/etc/x11vnc.passwd
service x11vnc enable
service x11vnc start

Service の設定

さきに作ったStartupスクリプトはrc.conf(もちろんrc.conf.localもOK)に次のような設定を書くことでポート番号やログファイル、パスワードファイルを変更できます。

x11vnc_logfile="/mylogs/x11vnc.log"
x11vnc_port="5999"
x11vnc_display=":1"
x11vnc_authfile="/root/.vnc/passwd"

Ubuntu

Install

まずはインストール。

sudo apt install x11vnc

Startup script

StartupScript を /etc/systemd/system/x11vnc.service に追加します。ファイルを作成し、以下の内容を記載してください。7行のパスワードファイルの部分は自分で作成したパスワードファイルのパスを書いてください。

[Unit]
Description=x11vnc (Remote access)
After=network-online.target

[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -auth guess -display :0 -rfbauth VNCパスワードファイル -rfbport 5900 -forever -loop -noxdamage -repeat -shared
ExecStop=/bin/kill -TERM $MAINPID
ExecReload=/bin/kill -HUP $MAINPID
KillMode=control-group
Restart=on-failure

[Install]
WantedBy=graphical.target

Service の登録と開始

パスワードファイルを作成し、x11vncをサービスとして登録&起動します。

sudo x11vnc -storepasswd VNCパスワードファイル
sudo systemctl daemon-reload
sudo systemctl enable x11vnc
sudo systemctl start x11vnc

ある意味究極のヘッドレス化

今回はあくまでも仮想スクリーンを使いましたが、下記のような仮想ディスプレイというハードウェアを使うのもありです。

[FreeBSD/Linux] GPU Driver Install - グラフィックスカードをインストール

自分用メモ。変更や追記があればこのページを更新します。 % で始まる行はコマンド入力、# で始まる行は説明文になっています。そうでない行はコマンドの出力結果の例を示します。

共通

GPUを使いたいユーザーを video グループに追加しておく必要があります。

FreeBSD 12

参考: Graphics - FreeBSD Wiki

AMD

drrm-kmodの中のamdgpuとradeonkmsという二つのドライバのどちらかを使います。前者はRADEON7000より新しいもの、後者はRADEON7000までのもの。なお、最新のGPUはドライバが対応していないことがあるので注意。

% pkg install xorg drm-kmod
% ee /boot/loader.conf
# loader.confに以下の1行を追加(※1)
hw.syscons.disable=1
% ee /etc/rc.conf
# rc.conf に以下の3行を追加
kld_list="/boot/modules/amdgpu.ko /boot/modules/radeonkms.ko"
% reboot

再起動後に nvidia-smi を呼び出すとドライバが動いているか確認できます。

※1) ドライバがロードされるまでコンソール画面が更新されなくなります。トラブルが発生したらブート画面でEscape to loader promptを選び、hw.syscons.disableを無効化してから起動してください。

Intel

drrm-kmodの中のi915kmsというドライバを使います。たぶん一番素直に動きます。

% pkg install xorg drm-kmod
% ee /boot/loader.conf
% ee /etc/rc.conf
# rc.conf に以下の3行を追加
kld_list="/boot/modules/i915kms.ko"
% reboot

nVidia

nVidiaからFreeBSD用のドライバが出ているのでそれを使います。でもVulkanは使えません(2019年12月現在)。

% pkg install xog nvidia-driver
% ee /etc/rc.conf
# rc.conf に以下の3行を追加
kld_list="/boot/modules/nvidia.ko /boot/modules/nvidia-modeset.ko"
nvidia_name="nvidia"
nvidia_modeset_name="nvidia-modeset"
% reboot

Ubuntu 18

nVidia

nVidiaのリポジトリからダウンロードできます。

% sudo add-apt-repository ppa:graphics-drivers/ppa
% sudo apt update
# 利用可能なドライバのバージョンを取得します
% ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:01.1/0000:01:00.0 ==
modalias : pci:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
vendor   : NVIDIA Corporation
model    : XXX [GeForce YYYY]
driver   : nvidia-340 - distro non-free
driver   : nvidia-driver-440 - third-party free recommended
driver   : nvidia-driver-410 - third-party free
driver   : nvidia-driver-435 - distro non-free
driver   : nvidia-driver-390 - third-party free
driver   : nvidia-driver-430 - third-party free
driver   : nvidia-driver-415 - third-party free
driver   : xserver-xorg-video-nouveau - distro free builtin
# 440のところは使用したいドライバのバージョンを指定します。
# 一番上に出ているのが推奨ドライバですが、新しいのを使ってみます。
% sudo apt install nvidia-driver-440
% sudo reboot

再起動後に nvidia-smi を呼び出すとドライバが動いているか確認できます。

I love FreeBSD.

f:id:no-operand:20191230082140p:plain

おすすめ

動作確認におすすめ。とりあえず映ればいいんだ!的な。

Windows Terminal の使い方まとめ(2019/12/17)

自分用の覚書としてWindows Terminal の使い方をまとめています。気が付いたところから追記します。あとアマゾンでお買い物をするときは右のメニューから飛んで行ってからお買い物をしてくれると、ほんのり広告代が入り、後進の励みになりますのでよろしくお願いします。


プロファイルの変更

コマンドを追加する

"profiles" に新しいプロファイルを追加し、"commandline" に起動したいコマンドを記述。例えばVisualC++を追加する場合はこんな感じ。 "startingDirectory"は無くてもOKですが、指定しておくとコマンド起動時にカレントディレクトリを変更してくれます。"guid"にはほかのプロファイルと被らないテキトーな値を設定します。ほかのプロファイルからコピーして1文字変えるだけでもOKです。

{
  "guid": "{てきとーな値}",
  "hidden": false,
  "name": "VisualC++(x64Native)",
  "commandline" : "cmd.exe C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Visual Studio 2019\\Visual Studio Tools\\VC\\x64 Native Tools Command Prompt for VS 2019",
  "startingDirectory" : "d:\\myproject"
},

フォントを変える

"fontFace" を追加し、フォント名を書きます。文字の大きさを変える場合は "fontSize" を追加します。省略時は 12 になるようです。 例えばMSゴシックに変更する場合は以下のように。MSゴシックをアンチエリアス無しで使用するのが一番目が疲れないような気がしてます(個人的感想)。

{
  "guid": "{てきとーな値}",
  "hidden": false,
  "fontFace" : "MS Gothic",
  "fontSize" : 12,
  "name": "Ubuntu",
  "source": "Windows.Terminal.Wsl"
},

アイコンを設定する

"icon" に認識可能なアイコンのリソース名を入力します。ファイル名でもOK。

{
  "guid": "{てきとーな値}",
  "hidden": false,
  "name": "Ubuntu",
  "source": "Windows.Terminal.Wsl",
  "icon" : "ms-appx:///ProfileIcons/{0caa0dad-35be-5f56-a8ff-afceeeaa6101}.png",
},

背景を透明にする

"useAcrylic" を追加する。透明度は"acrylicOpacity" で0.0~1.0で変更できます。

{
  "guid": "{てきとーな値}",
  "hidden": false,
  "name": "Ubuntu",
  "source": "Windows.Terminal.Wsl",
  "useAcrylic" : true,
  "acrylicOpacity" : 0.5
},

色の設定

色を変更する場合 schemes に色の設定を追加し、プロファイルからどの色設定を使うのかを指定する方法とプロファイルに直接書く方法があります。

プロファイルに直接書く場合

"background" を追加し、色コードを書きます。例えば真っ白にする場合はこんな感じ。

{
  "guid": "{てきとーな値}",
  "hidden": false,
  "name": "Ubuntu",
  "source": "Windows.Terminal.Wsl",
  "background" : "#ffffff"
}

スキームを使う場合

"schemes" にこんな感じで設定を追加します。複数追加可能です。 "name"には色設定の名前を任意で指定できます。ちなみに "Campbell" はデフォルトの色設定なので、nameを Campbell にするとデフォルトの色を変更できます。

"schemes": [
    {
        "name" : "Campbell",

        "background" : "#000000",
        "black" : "#0C0C0C",
        "blue" : "#0037DA",
        "brightBlack" : "#767676",
        "brightBlue" : "#3B78FF",
        "brightCyan" : "#61D6D6",
        "brightGreen" : "#16C60C",
        "brightPurple" : "#B4009E",
        "brightRed" : "#E74856",
        "brightWhite" : "#F2F2F2",
        "brightYellow" : "#F9F1A5",
        "cyan" : "#3A96DD",
        "foreground" : "#F2F2F2",
        "green" : "#13A10E",
        "purple" : "#881798",
        "red" : "#C50F1F",
        "white" : "#CCCCCC",
        "yellow" : "#C19C00" 
    }
],

スキームをプロファイルに反映させる

プロファイルに "colorScheme" という項目を追加し、schemesで追加したカラースキームの"name"の値を指定します。

{
  "guid": "{てきとーな値}",
  "hidden": false,
  "name": "Ubuntu",
  "source": "Windows.Terminal.Wsl",
  "colorScheme" : "Campbell"
}

パソコンの防塵フィルターを洗濯しよう

先日パソコンの汚れ切った防塵フィルターを洗濯しました。意外と防塵フィルターの洗濯方法を知らない人が多いようなので簡単解説。フィルターを掃除するとパソコンの寿命&性能が改善するよ!

www.isapon.com


これが洗濯前の汚れ切った防塵フィルター。撮影のためにパソコンから取り外した時にこんもりと積もっていた埃が落ちてしまったのだけど、それでもこの汚れっぷりです。

f:id:no-operand:20191212183100j:plain




そしてこちらが洗濯したあとのフィルター。すっかり元通り。よーく見るとファンガードの跡がうっすら残っています。

f:id:no-operand:20191215103250j:plain

洗濯方法

すごーく簡単。


外したフィルターを水の入った桶などで軽く揉み洗いするだけです。


ヤニなどでちょっとベタつくなーと思ったら、揉み洗いで大きな汚れを軽く取り除いた後に重曹を溶かしたぬるま湯へ1時間ほど浸けておくと良いです。


汚れ具合によるけどかなり埃が出てくるので、2~3回水を替えながら洗うと汚れを落としやすいのでお勧めです。


汚れを落としたら、洗濯ばさみなどで端っこをつまんで風通しの良いところで干しておきます。早く乾かしたいなら扇風機や空気清浄機の風を当ててあげると良いです。


やったらダメなこと

これは結構やっちゃってる人もいると思うけど、いくつかNGな事があります。


エアダスターで吹き付ける

表面についた大きな埃は多少取れますが、それ以上の埃を取る効果がほとんど期待できません。


単にエアダスターを消費するだけなのでかなり無駄な行為になってしまいます。


仮に埃が取れてもあたりに飛び散るので避けたい。


掃除機で吸い取る

これも表面についた大きな埃なら多少取れますが、目に詰まったものは取れません。


また、吸引力を上げるとフィルターの目が潰れてしまったりするのでやらないこと。


それどころか大体の場合はフィルターが掃除機に吸い込まれて、掃除機を詰まらせてしまうという悲劇に襲われます。


洗濯機で洗う・強く揉む

フィルターなんて偉そうに言っているけど、細い繊維が荒く絡み合ってるだけの脆い布切れみたいなもんなので、優しく扱ってあげましょう。


洗濯機を使うと洗濯機の中が埃まみれになる他、フィルターがちぎれたりします。


揉むときも強く揉みすぎるとやっぱりフィルターが潰れたりします。とは言っても、相当強く揉むことなんてないと思うけど。


濡れたままPCに装着する

PCの中が錆びるよ!電気がショートするよ!


しっかり乾かしてから使いましょう。


フィルターがダメになったときは

変えのフィルターがあると洗濯中でもパソコンがメンテナンスできるので便利。


自分のパソコンのファンの大きさがわからないときは大きな奴を買って、自分のパソコンに合わせてハサミでカットしてもOK

AINEX 交換用フィルター [ 大判シート ] CFF-DF270A

AINEX 交換用フィルター [ 大判シート ] CFF-DF270A

  • 発売日: 2015/05/29
  • メディア: Personal Computers

AINEX ファンフィルター [ 120mm用 ] CFF-120ZA

AINEX ファンフィルター [ 120mm用 ] CFF-120ZA

  • 発売日: 2015/05/29
  • メディア: Personal Computers

AINEX 交換用フィルター [ 120mm用 ] CFF-DF120A

AINEX 交換用フィルター [ 120mm用 ] CFF-DF120A

  • 発売日: 2015/05/29
  • メディア: Personal Computers

ダイソーの100円LANケーブルを試してみた

ことの発端

年末ということで大掃除用の消耗品を近くのダイソーに行って補充してきました。そこで見かけたのが「LANケーブル」。今やダイソーでLANケーブルも売っているのか…!?とちょっと驚き。まぁそうだよね、今や家でLANケーブルを使うなんて珍しいもんでもないもんなぁ。


そういや、先日PCのパーツがいくつかお亡くなりになって交換をしたさいにパソコン回りのケーブルを少し整理したのだけど、近い場所でも5mのLANケーブルを使っているのを思い出した。そういや、引っ越す前は長いLANケーブルを使う配置だったので、短いLANケーブルってあんま持っていなかったなぁ。


と、そんなことを思い出したのでちょっと物は試しにダイソーのLANケーブル(1m)を買ってみた。まぁ税込みでも110円だし。使えるならめっけもんだ。


というわけでどの程度使えるのか計測してみる

100円だけどLANケーブルはカテゴリー6(1Gbps対応の品質)になっているので普通に使う分には十分。さらに高品質のカテゴリー7や8は1Gbpsよりも高速なネットワーク対応になるのだが対応ハードウェアも含めてまだまだお値段高め。とりあえず一般家庭で使うなら十分ということ。


比較対象

f:id:no-operand:20191214144900j:plain
ダイソー 100円 LANケーブル

可もなく不可もないといった感じのフラットケーブル。パッケージも含めてシンプルで割と好き。ただ1色しかないのだけが難点(接続先で色を分けておくとあとでメンテナンスしやすいので)。とは言え1mなら色分けしなくてもわかるからいいか。


f:id:no-operand:20191214145600j:plain
サンワサプラ LANケーブル(極細5m)

今まで使っていたサンワサプライの5m極細ケーブル。一般的なケーブルよりかなり細いケーブル。ちょっと割高感はあるけどとても頑丈で椅子で踏んずけても大丈夫。会社など不特定多数の人がいる環境ではこの頑丈さがありがたい。


テスト方法と環境

NASに対してCrystalDiskMarkでベンチマークを取り、ベンチマークにどれだけ影響が出るかを調べる。


ネットワーク環境はこんな感じ。今回はスループット(どれだけ速度が出るか)ではなくケーブルを変えると速度にどれくらいの影響があるのかを見たいので、直接続ではなく実利用に近い構成にしています。ちなみにNASとYAMAHAのルーターは0.5mで数千円するLANケーブル2本でつないでいます。バッファローのスイッチングハブは3000円くらいの安いやつです。

この構成で、緑のライン(ハブとPC)を好感して計測してみます。

f:id:no-operand:20191214151845p:plain
ネットワーク経路構成

計測してみる

まずはサンワサプライ。

f:id:no-operand:20191214151152p:plain
サンワサプライ(5m)での実測

読み込みが117Mバイトくらい出ているので、おおむね1Gbpsに近い速度が出ています。ハブとルーターも含めてかなり優秀な結果。※右下のランダムライトについては計測中の値なので気にしないこと!


そしてダイソー。期待はしていないが期待しているぞ!

f:id:no-operand:20191214151221p:plain
ダイソー(1m)での実測

こちらも117Mバイトくらい出ている。全体的にみると気持ち早くなっている気もするけどその時のNASの状態にもよるだろうレベルの誤差の範囲。


結果

ダイソーのLANケーブルは十分な性能が出る!100円ということを考えるとむしろ相当優秀だ!


デメリット

デメリットは何かというと、ケーブルの長さの種類が少なかったり色の選択肢がないことかなーと。事務所で配線をするときは例えばルーターとハブは黄色、ハブとハブは赤、パソコンとハブは青というように色分けするとメンテナンスしやすかったりするので、事務所で使うならそのあたりの選択肢が多いパソコン周辺メーカーのものを使ったほうが良いかなーというのが個人的な感想。


おすすめ

ヤマハ ギガアクセスVPNルーター RTX810

ヤマハ ギガアクセスVPNルーター RTX810

  • 発売日: 2011/11/05
  • メディア: Personal Computers

ヤマハ ギガアクセスVPNルーター RTX1210

ヤマハ ギガアクセスVPNルーター RTX1210

  • 発売日: 2014/11/27
  • メディア: Personal Computers