最近のノートPCは「モダンスタンバイ」あるいは「スタンバイ (S0低電力)」という、CPU はS0(非スリープ)だが低消費電力で動き続けるという仕様になっている。これに伴ってか、スリープから時間が経過すると休止(ハイバネート)状態になるハイブリッドスリープをユーザ側でオフにできないらしい。

がいろいろ試した結果この挙動をある程度制御できることがわかった。

powercfg

コントロールパネルの電源オプションはコマンドラインからだと powercfg というコマンドで設定できる。上の画像はデスクトップPCの電源オプションで、「次の時間が経過後休止状態にする」という項目が表示されているが、ノートPCだと表示されないことがある。

powercfg で設定状況をすべて表示するには以下のようにする。

powercfg /q

HIBERNATEIDLE

休止状態に入るまでの時間は HIBERNATEIDLEという項目に設定されている。

単位秒 0x12c (300) がDC電源だとデフォルトだった。AC電源だと0で、休止に入らない設定になっていた。

48時間に設定する

powercfg -setdcvalueindex  381b4222-f694-41f0-9685-ff5bb260df2e 238c9fa8-0aad-41ed-83f4-97be242c8f20 9d7815a6-7ee4-497e-8888-515a05f02364 172800

デフォルトに戻す場合 (5分で休止)

powercfg -setdcvalueindex  381b4222-f694-41f0-9685-ff5bb260df2e 238c9fa8-0aad-41ed-83f4-97be242c8f20 9d7815a6-7ee4-497e-8888-515a05f02364 300

この設定をしていても、バッテリー残量が規定量減ると別途休止に入る制御が入っているようだが、ここからは特に設定が見えないのでよくわからない。

  1. トップ
  2. tech
  3. モダンスタンバイ環境のハイブリッドスリープを制御する

3Dプリンタでロータリーエンコーダやボリュームのノブをプリントする場合、プレスフィット設計だとうまくいかないことが多くて面倒くさい。確実に固定したい場合、ヒートセットナットを埋めてセットスクリューで固定するのが楽。

https://www.thingiverse.com/thing:6194

これを使うと楽そう。特にヒートセットナット専用のものではない。

setscrew_dia = setscrew_nut_w = 3.9 や 4.2 (ヒートセットの下穴経) をいれ、setscrew_nut_t = 0 にする。これで丸穴になるので、あとは好きなように形を設定する。

  1. トップ
  2. tech
  3. ヒートセットナットを使うノブ

そんなに複雑なことをしたいわけではないつもりだが、結果的に若干複雑なので記録しておく。

Notepad-8FX のわかりにくいところ

このミキサに限らないが、どこの信号がどこに入るのかわかりにくい。

USB に関してはドライバを入れると、USB Input 1+2 (ステレオライン入力として認識される) にくる信号をいくつか選べる

  • Mic Input 1+2 (1ch / 2ch がそれぞれ L/R になって入力される)
    • 当然 1ch にだけマイクを繋ぐとLchだけの信号となる。
    • ハイパスフィルタのあと、イコライザやFXの前
  • Stereo Input 3+4 (LINE 3/4 入力)
  • Stereo Input 5+6 (LINE 5/6 入力)
    • トリムの後
  • Mix L+R
    • Master ミックス後・フェーダー前
    • Mic Input はモノラルとしてPANにしたがいL/Rに振られるので、マイク音はL/Rチャンネル両方にくる

USB Out は 7/8ch として Master にミックスされるため、USB 出力を Notepad に設定した場合、Mix L+R はループバックということになる。(この機種はループバックできるできないという情報が混在してるが結論からいえばドライバいれればできる)

AUXとFX

AUXとFXはつまみは共有しているが信号としては独立している。ややこしい。

そもそもAUXとは何か?

  • Master とは別系統のもう1つの auxiliary (補助) 出力
    • モニターなどの用途が想定されている
  • この出力のミックスレベルは各チャンネルの AUX/FX つまみで決まる
  • AUX出力にはFXはかからない

FXは何か?

  • 内蔵エフェクト(リバーブなど)
  • 各チャンネルのAUX/FXで送る量を決められる
  • 効果のパラメータを PARAMETER つまみで決められる (全ch共通)
  • FXを通った結果は Master へミックスされる
    • 元の信号のMasterボリュームがゼロでないなら、元の信号に追加でミックスされる

FXの利用とAUXの利用は排他と考えたほうがすっきりする。というか、FXを使う場合、AUX 出力は FX を通る前の信号のモニタリングという用途に限定される。

ループバックしつつ、デスクトップ音量をコントロールする

自分はデスクトップ音とマイクのモニター音を常に聞くが、マイク入力には基本的にはマイク音しか入れない。ということをしたい場合、2通りの方法がある

  1. USB Input 1+2 を Mic Input 1+2 にし、Master mix を聞く
    • シンプルだがマイク入力しか入れることができない
    • マイク入力もミキサ上のイコライザを通した音にはならない
  2. USB Input 1+2 を Mix LR にし、AUX を聞く
    • イコライザなどミキサ上の設定が反映される
    • デスクトップ音のループバックができる
    • 他のチャンネルに入力した信号もコントロールして USB 入力にできる

後者のほうが自由度が高いので後者で考える。

やりたいこと

一旦 Mic1 + USB Out だけを考える。(Mic 2, LINE 3/4, LINE 5/6 は使わない)

ヘッドフォンOUTにヘッドフォンを接続して

  • マイク(1ch)をモニター
  • デスクトップ音(7/8ch)をモニター

かつ、USB 入力としては

  • マイク(1ch)を入れる
  • デスクトップ音(7/8ch)は入れない (というよりコントローラブルにする)

としたい。

この場合出力したいミックス系統がUSB入力音とモニター音とで2つあるため、Master 出力と AUX 出力を使うことになる。USB 入力できるのは Master 出力なため、AUX がモニター音になる。

運用方法

USB Input 1+2 を Mix L+R (ループバック) にしつつ、Notepad 側で 7/8ch の Master Level を調整する。

1ch と 7/8ch を AUX に送るようにする。

MASTER/AUX スイッチでヘッドフォンOUTに出力される音を MASTER と AUX で切り替えられる。つまりデスクトップ音を入れたマイク音と、実際にPCに入力されているマイク音を切り替えられる。

Master のフェーダーはUSB入力には影響しないので基本的に使わない。がPC側の入力ゲインとLEDの点灯が近いようにゲイン調整するとミキサ側で状態がわかりやすい。

問題点: FXは使えない。FX に送る信号量は前述の通り AUX ノブと共通なので、デスクトップ音を AUX に送っていると FX をオンにしたとき Master に FX 経由の音が漏れてきてしまう。

あとPC側でモニタ音を入れてはいけない。

ゲイン調整

マイクゲインが一番融通きかないのでここからはじめる。イコライザを中点にし、100Hzのハイパスフィルタを入れてゲインを3時ぐらいまで上げる。

イコライザは下から12kHz shelf, 2kHz bell, 80Hz shelf。

  1. トップ
  2. tech
  3. Notepad-8FX の運用方法メモ

ThinkPad X13 Gen 3 AMD を買った。2022-10-06 に購入して、何度か出荷予定が伸び、2022-12-02 に届いた。

一応セットアップしつつ、それほどノートPCを使うケースがなかったので数日に一度しか開いてなかったが、その過程でスリープの挙動がおかしいことに気付いた。

具体的には

  • スリープして数分ぐらいなら正常に復帰する(スリープと復帰自体は可能)
  • スリープしてしばらくすると休止状態からの復帰になる (lenovo ロゴから起動)
  • スリープして長い時間放置するとすると電源が切れメモリ状態が失われる
    • ゼロからの起動になる。イベントマネージャで Kernel-Power を確認したとき操作していない時間に不正終了の記録が残る
    • おそらくモダンスタンバイ中だけの現象。電源に接続しているときだけ発生する

スリープして長い時間放置した場合に電源が落ちるのは完全におかしい。タイミングはよくわからないので再現させるのが難しいが度々再現した。

結論からいうと結局 Lenovo に送り、システムボードの交換になった。修理センター着後すぐ修理され「『スリープ進行後異常終了となる』および『タイマーによるスリープ進行しないことがある』を確認」と書いてある修理票と共に戻ってきた。

頻繁に使用したり起動しっぱなしの場合まず気付かないし、確実に再現する問題ではないので実際に起きていても気のせいと思ってしまうかもしれない。数日モダンスタンバイで放置しておかしくないか気にしたほうがよいようだ……

  1. トップ
  2. tech
  3. ThinkPad X13 Gen 3 AMD の購入とスリープ後不正終了する問題

5年に一度リフレッシュ休暇10日というのが付与されるので、年末年始に有給消化と繋げて取得した。結論からいうとこの取得方法は完全に失敗であった。

年末年始は何かと忙しい上に、子どもが冬休みに入って家にいることが多いので精神的な自由度が低かった。

一ヶ月ぐらい休んだらもっと元気になるかと思ったがそうでもなかった。多少はマシだと思うけど仕事が疲弊の直接的原因ではないのかもしれない。

もっと遠くに一人で旅行でも行くかとも思っていたが結局ほとんど外出しなかった。もともと出不精だけど、思いつきで遠くにいけるほど感染状況が落ち着いているともいえないし、外出して嫌なこと起きるぐらいなら外出しないほうがマシという気持ちになってしまった。

しばらくコンテンツ消費する気力もわかず見てない作品が多かったので一気にみた

  • ぼっち・ざ・ろっく! 12話
    • きらら系だけど「この子が可愛い」みたいなのがない
    • 1ミリも悪い人出てこないのに世界が悪意に満ちあふれている感じがする
  • カッコウの許嫁 24話
    • 幸が可愛い。青い人がかなりいけすかない
    • 割とあからさまに演出で印象を操作されているメタな感覚があり複雑な気分になる
  • 4人はそれぞれウソをつく 11話
    • 翼(剛)の絶妙な孤独感がよかった。主人公不在の六畳間の侵略者みたいな趣がある
  • 五等分の花嫁 12+12+1
    • 絵的に見てなかったけど見続けたら気にならなくなった。2期はそもそも制作会社変わってて結構絵が違う。
    • ヒロインによって主人公に好意が向くまで長くて飽きにくい。2期の最後までいっても明確に好意が描かれないヒロインがいる。
  • 異世界おじさん 12話
    • まだ最終話がなくてわらった。テンポいいし女の子が異様に可愛い

dtoverlay=gpio-poweroff 使うのが確実っぽいが若干クセがある。

https://github.com/raspberrypi/firmware/blob/master/boot/overlays/README

dtoverlay=gpio-poweroff,gpiopin=26,active_low=1,timeout_ms=60000

timeout_ms はデフォルトだと3秒になっている。別にこれでもいいのだが、仕様上、timeout_ms 以内に電源断しなければカーネルがWARNを吐いて未定義動作になるとされている (別にそうなったからといってほぼ問題ないだろうが)。理想的にはraspiへの電源供給をしている電源のEN端子とかに繋ぐんだろう。

raspi は1ピンあたりの絶対最大定格電流は3.3Vだと17mA程度となっているので、LED を直接繋ぐ場合10mA程度に収めるほうが良いだろうと思う。高輝度LEDなら十分明るい。

  1. トップ
  2. tech
  3. raspi で確実に電源断できるタイミングをLEDで知る

dig lowreal.net type65 で存在は確認できるがパースしてくれない。dns.google 使うのが簡単っぽい。JSON でパース済みの結果をかえしてくれる (ただし設定されている値そのままではなく、パースした結果を再構成したものが表示される)

https://dns.google/resolve?name=lowreal.net&type=HTTPS

  1. トップ
  2. tech
  3. DNS HTTPS レコードを確認する

https://lowreal.net/2018/08/02/2 ecdsa 521bit を使っているが ed25519 (256bit固定) のほうが安全性もパフォーマンスも良いらしい。一方で 2014年1月の OpenSSH 6.5 から導入されたため古い実装で使えない

ssh-keygen -t ed25519
  1. トップ
  2. tech
  3. ssh-keygen