PRIME A320I-KのM2熱問題解消について

まずこのマザーはチップセットの上にM2スロットがあり、明らかにヤバそうです。実際ヤバいです。
なので、このマザーでM2SSDをなるべくお金をかけずに冷やせないかというのを試してみたのでそのレポート。

結果的には当たり前ですがチップセットから引き離せば冷えます。

熱源 on SSD

一枚目のASUSと書かれた板はチップセットのヒートシンクです。そしてその上にM2スロットがあります。

正直この配置はだめでしょーって買う前から思ってました。そしてやっぱりだめでした。

改善のために用意したもの


玄人志向のM.2(Type.M)→PCI-Express x4 変換基板を手配しました。

こいつは下手なファンステーやケースファンより安い上、チップセットから物理的に隔離できるため一番現実的かなというところですね。

実際に装着してみるとこんな感じになりました。なんか行けそうな気がしますね。

温度比較

チップセット上

アイドル51度、CrystalDiskMark中の最大温度64度。

およそヒートシンクが付いているとは思えない温度です。

拡張カード上

アイドル31度、CrystalDiskMark中の最大温度48度。

びっくりするほど温度下がりましたし、至って普通という感じの温度ですね。

この状態なら普通に運用できそうです。やはりチップセットの上にNVMeSSD乗せるのは良くなさそうです。

もしチップセットの上にNVMeSSD乗せるとしたらこれくらいはやる必要がありそうな気がしますね...。

PRIME A320I-Kを使ってみての感想

AMD SocketAM4 A320 チップセットマザー、ASUS PRIME A320I-Kを使ってみての感想です。

M2SSDが認識不能になる

このマザーは M2 スロットの真下にチップセットがあるという構造上、M2 が熱を持ちやすい特徴があり、そのためか起動ドライブにしていると M2SSD が認識不能になるケースが多々有りました。ヒートシンクなしだと運用不能なレベルだと思います。ヒートシンクがあっても冷却していないとすぐ止まります。この状態になっていると火傷するくらいの熱になっているので最悪壊れても不思議ないレベルだと思います。

ケースファンを止めたら起動中にブルスクになった挙げ句、BIOS からも認識不能に。扇風機で強制的に冷やしたら、その場はなんとかなりました。

但し調べた限り ASRock と BIOSTAR 以外の Mini-ITX 規格の SocketAM4 マザーはどれもチップセットの上にスロットを実装しているのでなかなか厳しいなと感じました。

逆に ASRock と BIOSTAR はマザー裏面にスロットがあるので、比較的冷却面ではマシではないかと思いますが、検証してないので不明です。裏にあるということはケースに SSD を密着させることで結構大きな冷却をできるのでは?という気はしてます。

因みに Crystal Disk Mark 程度の負荷では落ちなかったので、Windows 10 起動時程度の大きな負荷が必要なようでした。

この点は致命的な欠点とは言えないかもしれませんが、いつ落ちるか予想できないので厳しいですね。取り敢えずこの点はPCIeM2 拡張を買ってきて解決を図るつもりです。下手にファンステーとか買ったほうが高くなっちゃう...

因みにケースファンを回しても止まるときは止まるので、多分スロットの手前にメモリが刺さっていること、側面には PCIe スロットがあることで風の周りが良くないんでしょうね...。

たぶんこの構造でもROG Strix X570-I Gamingほどの冗談みたいなクーラーがついてれば大丈夫だとは思います。

ファンコンなどのUtilityを使うには付属DVDが必要

ASUS 公式でも AI Suite III が配布されているのですが、何故か温度モニター程度しか付属していないようです。なんでかは不明です。

付属 DVD には、上図のような Utility インストーラーが付属しており、ここからインストールすることでファンコンなどの各種 Utility の導入が可能となりました。

Pythonでラズパイ上にデーモンを作る

Pythonでデーモンを作ったので、その手順のメモ

確認環境

Env Ver
OS 2020-05-27-raspios-buster-arm64
Python 3.7.3
python3-systemd 234-2+b1

やったこと

  1. python-systemdのインストール
    1. sudo apt-get install python-systemd python3-systemd
  2. ~/foo.pyを以下の内容で作成

    from systemd import journal
    journal.send('Hello world')
    journal.send('Hello, again, world', FIELD2='Greetings!', FIELD3='Guten tag')
    journal.send('Binary message', BINARY=b'\xde\xad\xbe\xef')
    
  3. 実行権限を付与する
    1. chmod 755 ~/foo.py
  4. systemdの定義ファイルを次の要領で作成

    1. sudo nano /etc/systemd/system/foo.serviceとして以下の内容を書く
    [Unit]
    Description = Foo
    
    [Service]
    ExecStart = python3 /home/pi/foo.py
    Restart = always
    Type = simple
    
    [Install]
    WantedBy = multi-user.target
    
  5. デーモンを有効化する
    1. sudo systemctl enable foo.service
  6. デーモンを開始する
    1. sudo systemctl start foo.service
  7. ジャーナルを見る
    1. systemctl status roomenv.service
  8. なんかログが出てれば成功
    1. ExecStartにsudoを書くと動かない(root権限で動作する模様)

Surface Pro 7を数日使ってみての感想

Surface Pro 7

Surface Pro 7 PUV-00027、Core i5 1035G4 MEM 8GBモデルのお話です。

タブレットというよりノートPCとしてみた方が適切かなと言う印象です。まぁ中身は単なるWindows 10なので当然と言えばそうですね。

今の所の印象としてはラグジュアリーで長時間駆動可能なミドルエンド2in1ノートといったところです。

タブレットとして

開発機クラスの存在を持ち運べると言う意味では悪くありません。しかし敢えてSurfaceである必要があるのかと言うと今のところ明確な回答は出せないです。いわゆるタブレットととしてみるとどうしても微妙と言わざるを得ないという部分が率直な感想。

悪くはない解像度

2736 x 1824の解像度を持つディスプレイと言う事で、この点においては魅力的ですが、12.3インチしかないため初期設定のスケーリング200%で運用しています。

ちょっと大きすぎるかも

これは利点でもあるのですが、今のところ運用する上で最大のボトルネックになっているところです。

満員電車で使うのは割と憚れるサイズです。使えない事は無くはないとは思いますが後述する重量との兼ね合いで難易度は高いと感じました。

とにかく重い

重量が800g弱あるため垂直にしても水平にしても斜めにしてもどう持っても重いです。片手で持つのは辛く、両手で持つと横持ちは大きいため肩がこりました。縦持ちなら比較的マシという程度。

文字入力周りについて

ソフトウェアキーボード或いはタッチキーボードとでも呼ぶものでしょうか、要するに画面上で使うキーボードのことです。AndroidのGoogle日本語入力に慣れてると大変入力効率が悪く、取り敢えず入力が出来るレベルの代物にしか見えませんでした。

因みにタイプカバーを立って使うのはスペース的にも形状的にも難しいと思うので、あくまでタブレットとして使う場合、どうやってこのキーボードを使っていくかが鍵になりそうです。

特にIMEとキーボードが一体化している点が個人的に色々と難しいポインツで、これは知る限り切り離せません。まぁAndroidなんかもそうなので理解はできるのですが、利点かと思えばデメリットしかなく、大人しくMS-IMEを使おうとか言う内容になります。

Google 日本語入力

みんな大好きGoogle日本語入力はPCのときとよく似た振る舞いをしてくれるおかげで変換候補や入力中の文字が確認し辛い問題があります。

変換のしやすさ

変換候補が出てくる所がカーソルから離れていて見辛いです。

キーボードの種類

二種類しかなく左右分割の英字キーボードか分割なしのキーボードだけです。フリック入力などありません。

MS-IME

嫌われ者のIMEですが、こちらは入力方式に富んでいます。

まず入力中の文字や変換候補はキーボードの上側に表示されます。見やすくていいですね。

キーボードの種類も多くフリック入力からフルキーボードまで選び放題です。但しフルキーボードは平置きにしないと使いづらいと思います。

フリック入力

みんな大好きフリック入力!AndroidのGoogle日本語入力とはレイアウトが異なりますが、慣れれば十分使えそうな代物ではあります。

しかし英字モードをQWERTY方式に出来ないのは個人的にはマイナスです。

フルキーボード

ShiftやAltなどの制御キーがついており、コーディングなどで重宝しそうですが本体を持って使うには不向きに感じました。

左右分割キーボード

最初に戻ってきましたが、結局のところこれが一番マシな選択肢に思えました。肩こりますけど。両手で持って両手で叩けます。肩こりについては慣れなのかなという気もしました。

ノートPCとして

タイプカバーとマウスを使って開発をしていても8hくらいはバッテリーが持つため、ノートPCとしては優秀かなという気はします。

実業務とかにありがちな重くてまともに開発できないといったことはVSCode + MySQL + Laravelでは感じなかったです。それなりにサクサクという感じ。

Office一式が入っていることや、人によっては液タブとしても使える点とかを考慮すれば総合的なコスパはいいのかもしれませんが、ごく単純な開発機としてみた場合のコスパはあまり高くないような気もします。ぶっちゃけ開発しないならAndroidタブレットで十分でしょうし、開発するにしてもタイプカバーとマウスを含めれば1kgを超えるため余りお手軽に持ち運べる感はありません。

買って軽く数日使った程度では評価するのが難しいと悟ったので、また使い込めたらその頃になんか書きたいと思います。可能性はあるデバイスだと信じているので...。

GitHubにGPGで署名コミットする

確認環境

Windows

あらかじめgpgのパスをPATHに通しておくと良い
参考値:C:\Program Files (x86)\GnuPG\bin

Env Ver
Windows 10 Pro Build 19042.804
git 2.30.0.windows.1
VSCode 1.53.2
Kleopatra Gpg4win-3.1.15

Ubuntu

Windows側からVSCodeのRemote - SSHで接続

Env Ver
Ubuntu Desktop 20.04.2
git 2.25.1
gpg 2.2.19

手順

Windows

  1. Kleopatoraを起動
  2. ファイル> New Pair Key
  3. 個人用のOpenPGP鍵ペアを生成
    1. 期限なし、パスフレーズは適当に
  4. Exportから -----BEGIN PGP PUBLIC KEY BLOCK----- の中身を全部GitHubの GPG keys/ Add new に貼り付ける
  5. 追加後にでてきた Key ID を git config --global user.signingkey KeyID として cmd に流す
  6. 以下を流す(gpg.program はなくても動くが、あったほうが問題が起きない)
    git config --global commit.gpgsign true
    git config --global gpg.program "C:\Program Files (x86)\GnuPG\bin\gpg.exe"
    
  7. 管理者権限で cmd を起動し次のシンボリックリンクを作成
    1. mklink /D %USERPROFILE%\.gnupg %AppData%\GnuPG
  8. VSCodeで適当なリポジトリを作成
  9. なんか適当にコミットする
  10. GitHubに投げる
  11. GitHubのコミット履歴にverified signatureがついてたら成功

Ubuntu

  1. Windows側のKleopatoraから公開鍵と秘密鍵をエクスポートして持ってくる
  2. gpg --import FooBarpublic.asc で公開鍵をインポート
  3. gpg -k でインポートされていることを確認し、下記XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX相当の部分をコピペ
    pub rsa3072 2021-01-17 [SC]
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    uid [ 不明 ] Foo Bar <foobar@example.com>
    sub rsa3072 2021-01-17 [E]
    
  4. gpg --edit-key XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  5. trust
  6. 5を選ぶ
  7. quit
  8. gpg -kで信用度が[ 究極 ]になっていることを確認
  9. gpg --import FooBarSECRET.ascで秘密鍵をインポート
    1. SSHで繋いでいる時でタイムアウトする場合、GUIプロンプトからの入力になっている可能性があるので、どうにかして入力
    2. XRDP経由ならpkill gnome-sessionを叩くと入れる
  10. Windowsの時と同様に次のコマンドを流す
    1. git config --global user.signingkey KeyID
    2. git config --global commit.gpgsign true
  11. VSCodeで適当なリポジトリを作成
  12. 何か適当にコミットする
    1. コミットがコケたらXRDPから入力する
  13. GitHubに投げる
  14. GitHubのコミット履歴にverified signatureがついてたら成功
Ubuntu側でGPGキーを作る場合

以下のコマンドを叩くとウィザードが出るのでそれに沿ってやればよい。

gpg --full-generate-key
CLIからやる場合でパスフレーズを何度も打ちたくないケース

以下の手順が参考になる

UbuntuでSSHとGPGキーのパスフレーズを記憶させる

トラブルシュート

Key IDを確認したい

以下のコマンドで確認可能

gpg --list-signatures

GPGキーを消したい

GPGキーの消し方

Inappropriate ioctl for deviceとか出る

.zshrcにexport GPG_TTY=$(tty)を追記すると解消する。

GPGキーのパスフレーズを記憶させたい

毎回聞かれるのが鬱陶しい場合に記憶させる場合の手順。

Windows

  1. %USERPROFILE%/AppData/Roaming/gnupgのシンボリックリンクを%USERPROFILE%/.gnupgに作成
  2. gpg-agent.confに以下を追記する
    default-cache-ttl 34560000
    max-cache-ttl 34560000
    

Ubuntu

cat <<'EOF' | tee ~/.gnupg/gpg-agent.conf
###+++--- GPGConf ---+++###
default-cache-ttl 34560000
max-cache-ttl 34560000
EOF