2024年11月18日月曜日

SSD MSI S270 960GB における smartmontools から見える Total_LBAs_Written の単位はいったい何なのか?

 サーバ(Linux)のシステムとホームディレクトリのパーティション用に購入したSSD、MSI S270 960GB。5年保証付きなのに激安でした。

購入してから2806時間を経過したので、そろそろTBWが気になるお年頃です。

早速smartmontoolsでもって累計書き込み時間を見てみました。

smartctl -A の結果は

ID# ATTRIBUTE_NAME          FLAG     (略) RAW_VALUE
9 Power_On_Hours 0x0012 (略) 2806
(略) 241 Total_LBAs_Written 0x0012 (略) 467

467ってなんじゃい!!

RAW VALUEは生値ってくらいなのでメーカー毎にまちまちです。smartmontoolsを使う際の単位不明あるあるケースですね。

ということで単位が何なのか調べてみました。

といってもたいしてやることはありませんでした。

smartctl -l devstat で見てみると

Device Statistics (GP Log 0x04)
Page Offset Size Value Flags Description
0x01 0x010 4 2806 --- Power-on Hours (略) 0x01 0x018 6 981352770 --- Logical Sectors Written 0x01 0x028 6 4076567750 --- Logical Sectors Read

しっかりと論理セクタ書き込み回数が取得できましたので、論理セクタサイズは smartctl -a で取得すると512バイトということだったので、

981352770 * 512 ÷ 1024 ÷ 1024 ÷ 1024 = 467.9... となりました。

従いまして、MSI S270におけるTotal_LBAs_Writtenは、LBAsとはありますが実際には単純に「書き込み済み総ギガバイト数」でした。

いや、GiBだからギビバイトというべきでしょうか。

面白いですね。ストレージの容量はGB(1,000,000,000)単位なのに書き込みデータ量はGiB(1,073,741,824)単位なんですねえ。

だから何だといわれても困るのですが。。。営業と技術の部門間の考え方の乖離が垣間見える気がします。

個人的には20世紀から連綿と狂ったようにストレージへの書き込みアクセスを抑止するために最悪でもtmpfsを無理やり利用するなど散々苦労してきたことがここで目に見えて感無量です。

以上、ここまでお読みいただいてありがとうございました。

phpで文字列としての「\\n」以外の「\n」だけをLF文字(0x0A)に変換する方法

 キャリッジリターン(CR)の文字コード(0x0D)やラインフィード(LF)の文字コード(0x0A)から文字列としての"\r", "\n"に変換するのは特に問題はないと思います。

問題は逆方向で、\nという文字列をLFという文字に変換したいとき、str_replace('\\n',"\n",$text)みたいにやるとやっぱ恥ずかしいですよね。

\\nという文字列で、エスケープしたつもりのデータが埋もれているかもしれません。
\\nという文字列のつもりが0x5C(\),0x0A(LF)になってしまっては悲しいです。

そこで、とりあえず以下のようにするのはいかがでしょう。

  $text= preg_replace( '/(?<!\\\\)\\\\n/', "\n", $text );  

\マークだらけでうんざりしますね。phpで正規表現を扱う者への呪いです。

何がしたいのかというと、$text変数内に\\nという文字列でなく、\nという文字列があったらLF文字(0x0a)に変換するという祈りを込めています。

(?<!\\\\) というのは否定後読みといって\\\\というパターンがない場合にマッチします。phpでは\\\\というパターン\という「文字」にマッチします。呪いでしょう?

ついでに、\\\\nは\\\nと同じ意味を持ちます。まさに呪いです。

以上は前記事でデータベースをmysqlからsqlite3に移行した際に得たネタです。

何が恥ずかしいと言いますと、phpをたまに触って正規表現を使用するたびに\\\\のことをすっかり忘れているからです。

そこで、恥ずかしながら記録として残しておきたいと思います。とりあえずはデータベースのデータ内ではエスケープ文字としての\を特別扱いする必要はないので、この程度で申し訳ございません。

くだらない駄文をお読みいただいてありがとうございました。

mysqlからsqlite3に移行してみた際の恥ずかしい備忘録

 はるか昔(最古のデータの作成日時が1999年...)に使用していた関係で惰性で使い続けてきたmysqlでしたが、もう長いこと読み出しこそ頻繁にあるもののデータの更新はもはや月に数件というほど減少し、ちょっと大げさになっちゃったね、お役御免かな、と思っていました。

最近、CentOS7からUbuntu24に移行した際にPCから.net用のコネクタでリモート接続していたプログラムが動かなくなって、再ビルドしようとしたらvisual studio2022用では.net用のコネクタが使えなくて、見切りを付けました。

その後、最近時間ができたので、どうせならmysqlから一気にsqlite3に移行させてみることにしました。

その際の恥ずかしい作業録です。

・CREATE TABLEの UNIQUE KEY 句は KEY がいらない

KEYという文字列を削除するだけでした。

・CREATE TABLEでインデックスを作成するKEY句がない

前項とややこしいですが、mysqlのKEY句はテーブル作成時に同時にインデックスを張れます。
で、sqliteではCREATE TABLE時にはインデックスのカラムを指定できないので、テーブル作成後にCREATE INDEX文で作成する必要がありました。

・NOW()関数がない

CURRENT_TIMESTAMPに置き換えました。

そしたら・・・次の項目の問題がありました。

・sqlite3の日付関連はすべてUTC

問答無用でUTCなので潔いです。
そういえば十年以上前にある仕事で使ったときになんかあったような気が・・・。ちっとも覚えていませんでした。

既にあるデータをUTCにするのも手ですが、手抜きでCREATE TABLEでカラムのDEFAULT値に DATETIME( 'now', 'localtime' )とかやってみたら叱られました。

早速Google検索経由で先達にお伺いしたところ、仕様だアキラメロというページが最上位に出てくるのですが、さらにお伺いを立てると、かっこでくくってあげて、(DATETIME( 'now', 'localtime' ))とするとオッケーだとのありがたいお言葉で無事解決できました。ありがとうございます!

・mysqlではテキストデータではCRは\r,LFは\nと格納されるが、sqlite3ではもろそのままの文字コードで格納される。

なるほど~。って感じですね。

対策は、ちょっと長くなってしまったので、別の記事にしました。

概要としては、これまでに作成されたmysql形式に合わせてphp側(手始めに移行しているテーブルは自作のやっつけphpアプリで利用するためのテーブルなので)でキャリッジリターン(0x0a)とラインフィード(0x0d)をそれぞれ文字列としての\r, \nに相互に変換することにしました。

・sqlite3 には INSERT INTO ... SET 構文がない

これはむしろmysql方言ですね。なくても仕方がありません。

トリガーでのINSERT文でSET構文を使っていたのですが、むやみにUPSERTとか方言だらけの機能は使わないでおきたいので、標準的なSQLに書き換えるだけにしておきました。

・sqlite3にはVACUUMが必要

postgresqlを思い出すバキューム。カーがつくと途端に香しくなる不思議な言葉です。

でも、更新が月に数回なデータベースにVACUUMなんかいるわけがありません。どうしても必要なら手動でやればいいので、無視することにしました。

・複数クライアントからの同時更新ができない

最近はできるらしいのですが、特にテストをしてみようとは思いません。それが重要ならmysqlから移行する必要がありません。

万が一バッティングしたら「モウイチドヤレヨ」光線を発射して運用でカバーする予定です。

・RAND()関数がない

RANDOM()関数ならありました。

とりあえず、この程度でテスト運用を開始して、当分様子を見る予定です。

何か恥ずかしいことが起きたら、喜んで記事にしたいので起きてくれることを祈りつつ、こんな記事をお読みいただきまして、心からお詫びを申し上げる次第です。

2024年11月14日木曜日

dosparaから「Magnate-G MVW 第12世代Core/メモリ32GB搭載 2024 Intel Partner Awards受賞記念モデル」購入

 先月、またdosparaさんから1台買ってしまいました。特段ひいきにしてるわけでも何でもないのですが、なんだか縁ができちゃってるみたいです。

きっかけは家族用のPCが故障してしまったためでした。

利用目的はイラスト作成と原神とSNSだというのでその方向で探すとして、どうせ買うなら冗談でビカビカ光らせてやろうと思って探そうと思ったら、ちょうど何かの受賞キャンペーンをやっていることを知ったのでスペックを見てみました。

ざっくりとしたスペックは、

  • CPU: Core i5 12400
  • GPU: RTX4060
  • メモリ: DDR5 32GB
  • ストレージ:SSD 1TB
  • 電源: 650W 80PLUS BRONZE
  • ケース: ファン5台もついてる謎の新型

となっていて、オーバースペック気味なのですが苦情は出ないだろうということで選定しました。

まず評価した点は、まず、3月に買ったマシンよりメモリの規格や容量、SSDがアップグレードしていて、それでいて価格自体も2万円以上下がっていてとてもお得そうです。

さらに12400Fではなく12400な点も評価しました。予備のVGAアダプタを用意しておかなくてもいいのは好みです。

次に、気になった点です。
最大の関心事項はファンの数でした。
ケースファンだけで5台、電源にも1台あるだろうし、CPUファンが1台、GPUファンが1以上(購入前には数が不明でした)と、最低でも8ファンが稼働します。空に飛びそうなファン数を搭載したマシンなのでどれだけ騒音が出るのか戦々恐々というか興味津々というか、妙な期待がありました。
というのは、私が三月に買ったガレリアブランドのPC(RM5C-R46。ただし購入する時期によって同じ型番で中身がCPUもGPUもマザーもケースもまるで違うというすごく嫌なことをする会社なので型番だけでは何の意味もないのでご注意ください)はCPUファンが微妙な低周波のファンノイズをまき散らしてきわめて不愉快です。ぶっ壊してやろうかと思うことも再三なので、この機体はどうだろうという興味です。いざとなったらファンを取っ払ってやるつもりでした。

選定した時点ではOSが Windows11 Home のみで、OEM 版の Windows は Home から Pro へのアップグレードパスはなく、もしも Pro が必要になった場合は新規に購入しなおす必要があるという点です。私は XPのころから Home の運用経験がないので、何かあったらサポートするのに困るかな、という考えがよぎりましたが、それはそれで経験を積むチャンスですし、当面、 Pro である必要がある機能は家族には不要(RDPは惜しいけど)なので、無視することにしました。

次に気になった点はストレージの拡張性です。
バックアップ専用HDDとして現有のHDDを積み替えたいと考えていました。
ケースは外寸と片面が無意味にアクリル板になっているという仕様はわかったのですが、搭載可能ベイサイズと数が分かりませんでした。ケースの型番は明記されていたのですが、新型のケースらしく、肝心のその型番の仕様がどこにも掲載されていませんでした。

同じミニタワーといっても、同社のガレリアブランドで採用されているケースよりさらにサイズが小さくなっているので、追加するとしたら相当大変だろうなと思いましたが、オプションでHDDが1台追加できるカスタマイズメニューがあったので、まあ3.5インチベイが1つはありそうだし、なかったところで特に困るような使い方をする機体でもないので、どの馬の骨ともわからないSSD (3月に買ったマシンにはSOLIDIGM SSDPFKNU010TZが搭載されていました) だけは変更したいとのことだったので変更しました。

なお、ビカビカ光らせてやる装備はオプションだったので、遺憾ながら搭載を拒否されました。慙愧の念に堪えません。

さて、到着して真っ先に気になっていたノイズですが、これが全く気になりません。最も負荷が高い状態と思われるゲームを家族がプレイ中であっても全く騒音を発せず、これは大変うれしい意味で期待を裏切ってくれました。

次に悪い意味で期待通りだったのはストレージの拡張性です。具体的にはHDDを一台、こちらで追加しようとしたのですが、見た感じではどこにどうやって組み付けるやらさっぱりわかりません。
サポートに取付方法を問い合わせたら「現在マニュアルの準備中です」ときた。
「HDDの取付方法」を聞いているのに「ケースのマニュアルの準備状況」をこたえるサポート。
素晴らしい。こんなサポートがついててスゲー頼もしいです。
「マニュアルが出来上がるまでお客様にご案内するつもりはございません」なら回答になってたのに、準備状況を聞かされてもしょうがないので、今度は御社ではどうやって組み付けるのかしらと聞いたら組付け方を教えてくれました。

このケースではついに両側面だけでなく底面からもねじをつけたり外したりする必要がありました。
かなり省スペースに頑張った結果でほとほと頭が下がります。
複数台の内蔵ストレージなんて、いまどきのゲーマーにもオフィスユーザにも不要ですし、仮に増設するとしてもマザーボードにSSDスロットはたいていは2つはついている昨今です。
それにもかかわらず、さらにそこへ何とか3.5インチベイをねじ込んだ気合は評価できると思います。しかも2.5インチと共用ではあるものの3.5インチベイが2台分あるのは、SOHOというかスモールオフィスでのRAID1環境をぎりぎり実現できます。

ただし、3.5インチHDDを2台搭載した場合の排熱は・・・やはり厳しそうです。結局、これではだめです。二兎を追わず横着せずにちゃんとケースを選ぶべきだと思います。

余談ですが、FujitsuのPRIMERGYシリーズのミニタワーケースの完成度がどれだけ優秀なのかがよくわかるとか言ったらさすがに怒られちゃいますね。ごめんなさい。

あとは、搭載されていたマザーボードは ASUS の PRIME B760M-A でした。微妙によくなっています。メモリチップメーカはSamsung。SSDはカスタマイズしてWDを指定したためデフォルトの採用機材は不明です。

この機体に限ったわけでもありませんし、言うまでもないかもしれませんが、マザーがmATXなので、当然ながらGPUを搭載していながら同時にPCI Expressで拡張ボードを刺そうというのは、なかなか刺激的なチャレンジになるでしょう。熱的に。

個人的に一番驚いたのは、このマシンではなく Windows11 Home でも WBADMIN.EXEが使用できたこと(!!)でした。
これさえあればタスクスケジューラで手軽にバックアップができて、しかも何かがあってもOSの機能だけで復旧は容易なので大変助かります。
でも、これ、HomeユーザだけでなくProユーザでも皆さんが存在を知らないおかげでWindows8で消えかけたもののまだ生き残っていますが、反トラスト法がらみで米連邦取引委員会や司法省の機嫌次第ではいつ消えるか・・・

余談に流れてしまいましたが、表題のマシンについてのインプレッションというか感想は、「確かに安い」と申せましょう。横文字だとコストパフォーマンスが高いとか、まあ、そんな具合です。

とっ散らかってしまいましたが、最後までお読みいただきありがとうございました。

2024年11月7日木曜日

Philips製27インチWQHD,VAパネルのモニタ 27M2N3500NL/11 購入

 表題の27M2N3500NL/11ですが、PhilipsのEVNIAというシリーズだそうです。27インチでWQHDでVAパネルです。なぜかこの機種だけ国内ではアマゾンからでしか買えませんでした。

以前Philipsのモニタで満足を喫したので、この機種もスペックもよく価格も激安なので早速購入させてもらうことにしました。

そこで2024/10/22に-8%引きで\23,800円でアマゾンで買いました。いまは割引はありませんが\23,800円で売ってます。アマゾンあるあるですね。大人の事情ってやつですか。公取仕事してください。

届いたのは2024/10/25です。ほかの荷物と一緒に配達してもらうために調整してお急ぎ便\512円(当日じゃないのに当日お急ぎ便と同じ価格)を支払ってまで2024/10/26に届けてもらえるようにお願いしたにもかかわらず、前日に「やっぱ明日届けるわ」みたいたことを急に言い出してモニタだけ先に運送業者(ヤマト運輸)さんに持ってこさせやがってくださいました。

注文後に家族からおすそ分けされたCovid-19で高熱を発してくたばっていたのでほんとに迷惑でした。

小売業者さんは置いといて本題です。

まず、私が使用していたのは24インチのPLS(IPSの亜種)パネルの製品でした(Philips 246E)。これで信用して購入しました。接続にはDisplayPort(VGAはRTX4060)を用いました。

この製品はVAパネルを採用しているということで、IPSパネルと比べて視野角や発色、応答性能について劣るのではないかという懸念があると思います。そこら辺を留意してみていきたいと思います。

まずはドット抜け検査を兼ねて画面を真っ白/真っ黒にして目視で検査してみました(ドット抜けはこの個体にはありませんでした)。

気になるのは27インチになって画面が広くなるのでパネルの性質として端っこが暗く見えたり色が違って見えたらいやだな、という点ですが、全くの杞憂でした。発色も視認性も問題を感じません。

ここで、HDR10対応ということなのでHDRをOSとモニタの双方でenableにしてみました。HDRの設定は片方だけONにしたりOFFにしたりすると画面が白っぽくなってしまったり、逆にギラギラしたりと割と面倒くさいので要注意です。

さて、テキストの編集での見え方のテストを行いました。

主に使用している秀丸とVisual Studio,そしてnotepadをつかってみました。さらにTeraTerm ProとPuttyによる操作もテキストによる編集に近いと思いますが、どれもこれも小さい文字が見えなくなることもなく、つぶれることもありませんでした。くっきり見えます。視認性は良好です。

実は画素数が多くなるのに27インチでは文字が小さくて前期高齢者な私には老眼で見えないのではないかしら、125%拡大待ったなし?、と危惧していました。しかし、確かに文字は小さくなりましたが発色の良さとコントラストの高さでメリハリがつき、拡大率100%のまま何の支障もなく、むしろ以前より見やすくなってしまったのは想定外でした。

次にざっと動画やゲームなどで試してみました。27インチになって画面が広くなるので端っこが暗く見えたり色が違って見えたらいやだなと思っていましたが全くの杞憂でした。

動画やゲームでのテストでは、スペック表にある応答速度に異議はありませんでした。残像をまるで感じません。数値的に見るとMRTG0.5msは立派ですし、より技術的難易度が高いGtGでも1msを達成しているのは評価できるポイントだと思います。実際にも、この数値に違和感は感じませんでした。

リフレッシュレートについても180Hzは伊達じゃないです。ちゃんとぬるぬるです。ただ、私の環境ではこの性能についてはよほど軽いゲームでない限り現有のRTX4060風情では90Hzや120Hzで打ち止めで生かしきれないので、評価については降参です。ごめんなさい。

この製品に採用されているVAパネルは壁紙を見るだけでも、グっとしまった黒はかなりいい感じだし、青は青いし赤は赤いように見えます。懸念したギラギラ感もなく、かなり頑張ってると思います。

HDRを有効化することについては、さらにVAパネルの面目躍如といったところだと思います。もともと高いコントラスト比や黒のきれいさを発揮するVAパネルならではの特徴をさらに強調するような働きを齎すと思います。

HDRをON/OFFと利用シーンによって切り替えるのは、実際問題としてモニタとOSの設定と使用アプリの三者をそれぞれ切り替える必要があるので、非現実的だと思います。結局はONかOFFか、一度設定したらそのままにしておくことになるんだと思います。

私個人は普段使いでもHDRをONにしておいてもいいと思います。テキストを読むのに問題ないし、たまに猫の写真を見たり猫の動画を見たり猫のゲームをしたりする際にもきれいな猫映像を見られるので、この製品の場合はONのままで差し支えないんじゃないかと思います。

細かい点ではACアダプタがなく、モニタに電源モジュールが内蔵されているのも便利です。ACアダプタってホントに邪魔ですので助かります。

なんだか長くなってしまいましたが、価格に比して満足感は相当高い製品でした。

いろいろ褒めたい点もあるのですが、あんまり持ち上げても何なので、とりあえずこの程度でご容赦願います。

以上、ここまでお読みいただいてありがとうございました。

2024年7月29日月曜日

CentOS7からUbuntu24.04に移行してみた

 以下恥の記録です。

CentOS7がついにサポート切れなので、思い切ってUbuntu24.04に移行してみよう!ということで、とりあえずしょっぱなで出会ったトラブルをメモしてみました。
debian系をサーバとして使うのは何十年ぶりかしら。

  1. Ubuntu24.4がFujitsu TX1310 M1にインストールできない。
    なんだかわかないけどエラーが発生しましたなどと言って中断するのはやっぱり「はやくういんどうずになりたい」って感じマシマシな、実にubuntuらしいしぐさだと思いました。
    -> サーバ機のファームウェアを1.12.0にしてUEFI ONLYにしてGPTにしないとインストール不可でした。
    幸先の良い出だしです。
  2. インストーラからネットワークの設定ができない。
    netplanの定義体が4つもできました。
    -> 結局インストール完了後に手動で書き直しました。
  3. 20年来コンパイルしては使い続けてきたCプログラムがコンパイルはできるがリンカでエラーとなる
    -> MakefileのGCCに与える引数の順番を変更で通りました。
    なんだそれ~いまさらそんな変更するの?と思わず声に出ました。
  4. CentOS7のmariadbからmysqldumpでdumpしたファイルからmysqlへリストアするとテーブル作成時にtimestamp(6)関連が全部エラーになる
    -> dumpfileのtimestamp(6)から(6)を取っ払っちまえ
  5. mysqldumpでdumpしたファイルからmysqlへリストアしたあとに何かしようとするとrootでもアクセス権がどうとかでなぜか怒られる
    -> dumpファイルをrestoreした際にmysqlの管理用テーブルをdropしてdump元の古い定義でcreate tableしてしまったせい。見た目は一見正しいけどリストア先にとっては正常なデータじゃないのでエラーとなる。mysqldumpでダンプしたファイルのうち、use mysql;のテーブルをリストアしないようにする。特にmysql.columns_privやuserテーブル。
  6. 一度mysqlを全部クリアして(rm -fr /var/mysql ;mysqld --initialize )再作成したのにユーザが追加できない。
    -> select * from mysql.user;しても確かにいない(これから追加したい)ユーザーをdrop userしてからcreate userすると解決した。
  7. /var/runにあるファイルが実行できない
    ->よく見るとmount時にnoexec属性が付与されていた
    それは正しいように思いますので属性を外さずに/dev/shmに移動してみました
  8. 移動後、なぜか気づいたら /dev/shm にあるファイルの一部が消えてなくなっている
    /etc/systemd/logind.conf の RemoveIPC の値がyesなので「システムユーザー」以外のファイルが消去されることがわかりました。
    -> そのため設定を変更せずに/var配下に新規にtmpfsでmountして配置。これもIPCなはずなのにRemoveIPC がyesのままでも消されませぬ。なんと深い謎。。。
    # なお「システムユーザー」とは今どきのubuntuではuidが1000未満のユーザのことを指すらしいです。古代から引き継いでると普通のユーザのuidが100から(sunosとかそうだったっけ)だったり、比較的新しくても500だったりするので要注意。
  9. Super I/Oのカーネルモジュールが全然用意されていない
    coretempだけでいいという割り切り思想かしら。
    -> 面倒なので lm-sensorsをインストールしてsch5636を取り寄せて手動で /etc/modules-load.d/sch5636.conf ファイルを作成してロードさせるようにしました。
  10. dnsmasqを使用したいのにport53がつかまれている
    172.0.0.53が /etc/resolv.conf に定義されていて、それのあて先は systemd-resolved になっていました。
    こういうふうに小手先でごちゃごちゃやり始めているディストリの人たちからは距離を置きたいので、システムの設定を極力いじりたくありません。
    -> そこで、netplanでNICに対してDNSに自分自身のIPアドレスを指定して、あとはdnsmasqから本来のDNSに飛ばすようにしました。
    例:
    このサーバのIPアドレス: 192.168.0.100 <- netplanのDNSに指定
    DNSサーバ
    のIPアドレス: 1.2.3.4 <- dnsmasq.conf  server=1.2.3.4 を追記
    (dnsmasq.confを編集せず/etc/dnsmasq.d/配下にconfを作るとubuntuしぐさ)
  11. phpの時刻がutcとかmbstring非対応とかperlの仕様変更とか
    ->confの変更やソースの変更で対処。
    perl ってまだ枯れ切ってなかったんだなあとしみじみ。
  12. apache2の設定ファイルが細切れのぶつ切れでどこになにが定義されているのかわからない
    ->ubuntuしぐさなので仕方ありません。grep -r しまくってa2enxxxx。
    地味に時間がかかります。
    ついでに言うとapache2のlogファイル名が_logでなくて.logで、logs/でなくて絶対パス指定。こだわるエネルギーの使いどころに興味津々です。
  13. webalizerの画像内の日本語が化ける
    ->面倒なので /usr/share/locale/ja/LC_MESSAGES/webalizer.mo をrenameして英語化してごまかしました。
    テキストも化けるんですが、これはwebalizer.confで
    HTMLHead <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
    で化けなくなります。むろん画像には効果はありません。
    そこでtruetypeフォントを指定しましたがやはり化けます。
    moファイルはutf8なのですが、ビルドしたgdライブラリがsjisのみなのかな?
    なお、ちゃんとデフォルトdaccess_logでなくaccess.logを参照するように構成されている親切設計です。
  14. sambaでユーザ認証を必要とするディレクトリにアクセスできない
    -> sambaのuserのsidをwindowsからアクセスするユーザのsidと一致させるとアクセス可能となりました。
    一致させない場合、sambaでアクセスするhomedirはchmod 750にしないとアクセスできないという不思議な現象も。sidを一致させたら755でもアクセス可能になりました。当環境がSMB3だからかしら?
  15. sambaのguest userがcentos7ではnobody(99)
    ->adduserでsamba-guestユーザを作成してuid/gidが99:99のファイルをchown。
    find . -uid 99 -print | xargs chown yyはうまくいかないので -exec chown  yy {} \; を使うと吉です。
  16. sshすると/etc/motdの内容が2回表示される
    さすがにあほすぎる。。。とにかく広告を見せたくて「はやくういんどぅずになりたいでござる」病にかかってるのがよくわかります。GUIだけにしとけばいいのに
    -> 承知の上でやってきた当方としてはubuntu側をいじらずに /etc/ssh/sshd_config でPrintMotd パラメータをnoにして対処しました。
なんだかまだあったと思いますが、ざっとこんな感じです。
ありがとうCentOS7
さようならCentOS7
こんにちはUbuntu24。
以上、お恥ずかしい限りです。
ここまでお読みいただいてありがとうございました。


2024年7月20日土曜日

Western Digital WD60EZAX の IntelliPark (idle3) のタイムアウト値

 まず結論から申し上げます。10秒でした。

以上です。

以下たわごとです。

過日、12年物の東芝のD01ACA200が突然死してしまいました。よく頑張ってくれました。

そこで、代替を物色したところ、一時期に比べて価格が大幅に上がっていて驚きました。いろいろ検討しましたが、IntelliParkが切れないと評判の一品、WD60EZAX が\14,500円だったので、故障した玉とは別に予防交換用として1玉、併せて2玉購入しました。モデル名とファームウェアのバージョンは両者ともに次の通りです。

Device Model:     WDC WD60EZAX-00C8VB0
Firmware Version: 01.01A01

さっそくエージングを行うのと並行して、実際にidle3タイマの値を取得・変更できないか試してみました。

1
2
# idle3ctl -g /dev/sdb
sg16(VSC_SENDKEY) failed: Input/output error

とのことなので、値すら取れず、駄目でした。なお、idle3タイマを切れる別のWD40EZRZ (ちなみにLoad_Cycle_Countが29,441時間で534,518回) という玉で idle3ctl コマンドの有効性を確認しております。

※Load_Cycle_CountはWindowsで普及しているCrystalDiskInfoでは"ロード/アンロードサイクル回数"と表記されていますので適宜読み替えてください。

で、今回調達したWD60EZAXのうち、よく編集するファイルなどが配置されるドライブに1玉割り当ててみました。そのほうはたった24時間でLoad_Cycle_Countが140回を超えました。ファイルを編集しながらこまめにセーブするだけでどんどんLoad_Cycle_Countが上がってゆくイメージです。こういった使い方だと保証期間が2年とすると17,520時間なので、245,000回となりますので、保証期間内では問題なさそうです。

で、ついでに作業の合間にidle3のタイマー値を実測してみました。方法は次のようなスクリプトを一定時間流してLoad_Cycle_Countの値を見てみるという原始的なものです。

1
2
3
4
5
6
7
#!/bin/sh
while :; do
        smartctl -a /dev/sdb | grep Load_Cycle_Count
        #sleep 7 # OK
        sleep 9 # OK
        # sleep 11 # NG
done

結果は9秒毎にS.M.A.R.T.情報を取得した場合は増加しませんが、11秒毎だと増加が認められましたので10秒と判断した次第です。

もうひと玉は別OS下で LibreHardwaraMonitor が一秒毎に情報を更新している環境下での利用のため、つまりS.M.A.R.T.値を取得するために毎秒アクセスされるので、IntelliParkの出番はなさそうです。

以上、たわごとでした。

ここまでお読みいただいてありがとうございました。

2024年6月22日土曜日

TvRock自身によるACPI Wake Alarmの遅延補正アプリケーション

 TvRock.exeに直接スリープからの復帰(レジューム)時刻の補正を行ってもらうアプリを作り、RTMfTと名付けてgithubに公開しました。

スリープ開始時刻から録画のために復帰する予定時刻が3.5時間以上未来の場合はACPI Wake Alarmによる復帰が行われるものと見なして補正処理を行います。
なお、補正時間の計算式の根拠については先の記事をご覧ください。補正を行った場合は補正内容がログに出力されます。

おまけ機能としてTvRock頓死監視機能を付けました。まれに番組表から予約操作などをすると頓死することがあるので、手動で再起動するのが面倒な方向けですが、まず使用する必要はないとは思います。

本プログラムはDLLインジェクションという手法を用いて動作中のTvRock.exeに対してパッチを当てます。
そのため、ほかの補正用プログラムを常時起動しておくことが不要になり計算機資源の省力化を達成し、意識高い系用語でいうところのSDGsへの貢献ができるという欺瞞に満ちた満足感を得られる可能性があります。

制限事項として、このプログラムは表題のとおり、ACPI Wake Alarmによってスリープからの復帰(レジューム)を行っても遅延しない環境では復帰時刻が正常よりも早まってしまいますので使用しないでください。

また、採用した手法により、アンチウィルスソフトによる誤判定を受ける可能性が想定されます。判定の正誤はソースプログラムから自分で判断してください。判断できない場合はTvRock.sch使用版を使うという手段があります。

なお、動作可能OSはWindowsVista以後です。

先に作成したプログラムだとtvrock.schの監視が必要だし、そもそもTvRock.exe自身が補正すれば話は簡単じゃないかと思い、改めて作成しました。

基本機能の実装そのものはすぐ終わっていたのですが、8日間も38度を超える強烈な病気になってしまい、TvRock頓死対策などのおまけ機能の着手が大幅に延期されてリリースが遅れました。

だれにも求められていないアプリの記事で大変恐縮です。

以上、お読みいただいてありがとうございました。

2024年5月24日金曜日

TvRockの予約録画時のスリープからの復帰方法について

 いまさらTvRockかとお呆れのかたもございましょうが、お許しください。

(成果物だけほしい方向け: `tvrock.schから補正'版はこちら、`TvRock単体で動作`版はこちらです)

表題の件ですが、タスクスケジューラとそれ以外があります。そして、今回はそれ以外のほうのお話をさせていただきます。

その前に、まず小ネタから。

0.9t8ではTvRockDTV.x64.dllがないためにTvTestとかTSTaskの64bit版が動かないとお嘆きの方に。実は0.9u2で生成させたTvRockDTV.x64.dllをそのまま保持しておいて0.9t8に戻せばTvTestやTSTaskの64bit版が使えます。

他は64bit化したものの、TvRockだけはどうにも余人を以て代え難く、しかし0.9u2はTvRockがOSのスリープを(powercfg /requestsoverrideしてしまわない限り)阻止し続けるので使いたくないという方向けのニッチすぎる情報でした。

さて、TvRockで録画を予約するときに「復帰処理をタスクスケジューラで行う」にチェックボックスを入れていなくてもきちんとスリープから復帰して録画が開始されますが、powercfg /waketimersを行ってもスリープ状態の解除タイマーはありません。

以前から気になっていたのですが、今回こんなネタを知ったのでスリープからの復帰時間の補正をするツールを書くついでにだいたい見当はつくけど確かめてみようということでghidraを用いてバイナリを紐解いてみました。

思った通りWM_POWERBROADCASTを受けたときにwParamがPBT_APMSUSPENDのとき、つまりスリープに入る直前にSetWaitableTimerして、レジュームした直後(PBT_APMRESUMEAUTOMATIC)にCancelしてました。

そのため、普段はpowercfg /waketimersを行っても見えません。普段は登録されていないのですから当たり前です。

ここで、先のACPI Wake Alarmによる遅延のために何とかしたいとする場合は、予約前の準備時間以上スリープしないようにシステムを設定しておくのが無難でしょう。

あえてプログラムを書こうという場合、いくつかアプローチがありますが、私はtvrockと同様にWM_POWERBROADCASTでPBT_APMSUSPENDを受けたときにtvrock.schから現在時刻からの直近で4時間以上未来の録画予約があれば予想遅延時間を引いた時刻でwaitable timerを設定しています。この方法だとPBT_APMSUSPENDをもらってから2秒以内にすべてを終わらせる必要があるのでCで書きました

でもこれは物好きだからやっているだけで、普段からtvrock.schを監視しておいて、変更されたらschtasksコマンドやpowershellを使ってタスクスケジューラ経由でスリープを解除させる方法が簡単だと思います。TvRock.exeではTvRock.schを開く際はCreateFile()で排他しているので書き込み中にリードしたりといった事故は起きないと思います。

ちなみにtvrock.schのSTARTはunix epochなJSTです。

tvrockを卒業することになるかと思いきや、解決策が見つかってしまったのでまだまだ使い続けることになりそうです。やっといてなんですが、もう録画してまで見るものがないのでした。

最後で恐縮ですが、TvRock, TvTest, RecTest, TSTask, Spinel, BonDriverProxyEx, BonDriver_PT3-ST, pt2wdm の作者様方のみならず、多くの関係者の方に心から感謝しています。

以上、このような駄文を読ませてしまい、誠に申し訳ございませんでした。

ACPI Wake Alarmによるスリープからの復帰における遅延時間のデータ (ASUS PRIME B760M-AJ D4)

 表題の件ですが、Windows10や11で使用したときにn時間以上スリープさせた場合、ACPI Wake Alarmによってレジュームすると予定時刻より遅れて復帰するということを知りました。

いやあ、全然知りませんでした。11年ぶりにPCを新調したらこんな落とし穴があったなんて。

先達はあらまほしき事なり、というわけで「アルチーナの魔法の島」さんの「Intel 300シリーズチップセット以降のスリープ解除遅延問題」を読ませていただきました。大変有用な情報をありがとうございます。

UFEIでレガシーなRTCを選べれば回避できるとのことですが、当方がWindows11で運用しているASUS PRIME B760M-AJ D4には項目がありませんでした。

そこで、まずはスリープからACPI Wake Alarmによって復帰というかレジュームというか起床したケースをPower-Troubleshooterが記録したイベントログから拾って表にしてみました。当方の環境では最低でも一日に一回必ず走るジョブがあるので、スリープ時間が一日以上のデータはないのが残念です。

実スリープ
時間
期待スリープ時間遅延秒数遅延秒/時
10:44:1210:39:3028226.45817045
12:23:3812:18:0733126.90631562
6:53:4106:50:4917225.12069455
9:57:0109:52:4126026.3209696
5:38:4205:36:2613624.25443377
14:25:1814:18:4938927.1769295
8:56:1908:52:2823126.02979842
4:33:1104:31:2810322.76522593
9:10:3209:06:3423826.1267305
18:33:0918:24:4150827.59161751
6:46:1106:43:2316824.98863777
7:51:0707:47:4720025.65290198
9:03:2108:59:2723426.02650848
10:44:2010:39:3728326.54715064
5:56:1005:53:4514524.59363958
7:07:2807:04:3017825.1590106
4:32:4204:30:5810423.02866281
4:33:4504:32:0110422.93977085
4:30:2504:28:4310222.77491782
4:57:3604:55:4011623.54002255

遅延秒数とあるのは期待スリープ時間と実スリープ時間との差分で、「本来復帰すべきだった時刻よりもどの程度遅れたか」を計算した秒数です。確かに遅れまくってます。

9時間スリープさせると3.85分の遅刻で、18時間33分では8.46分遅刻する、と。

表だけだとよくわからんので、googleさんにグラフ化してもらいました。

ACPI Wake Alarmによる復帰遅延秒数グラフ

グラフの右側の目盛りは左側の目盛りが合計の遅延秒数で、右側は1時間当たりの遅延秒数です。

先の先達のブログ様では3.5時間以上の場合にACPI Wake Alarmで起床するようになるという情報でしたが、当方でも4時間未満の起床は起床させたプロセスが正しく記録されていました。

一方、一時間おきに25秒程度づつ遅延するということでしたが、こうしてみると、私のケースでは一時間当たりの遅延秒数は、スリープ時間の合計時間によって放物線を描いていて少々異なるようです。

遅延秒数のほうはきれいに値が出ているので、xをスリープから復帰する時刻までの秒数、yを遅延秒数とすると、遅延時間を計算する式はだいたいy=0.008x-27.5くらいでよさそうです。

y切片がマイナスなのですか。長時間のスリープ時はホニャララするとかしないとかの省電力がらみなんでしょうか。でも遅刻はまずいんじゃないかなあ、と思うのは日本人だからでしょうか。

誰にも役に立たない情報ですが、まずは以上です。

ここまでお読みいただいてありがとうございました。

2024年4月18日木曜日

ファイルサーバ(Sambaサーバ)がWindowsから見えないよ(いまさら)

 前回の記事に関連して、いまさら言うような話でもないのですが、Windows7や8からアップグレードを重ねてWindows11まで来てしまったりすると気づかなかったりしますし、まあちょうどよい機会ですのでメモしておきたいと思います。

 Windows10の1709あたり以後、SMB1.0がデフォルトで廃止されたためLinuxやFreeBSD上で稼働しているsambaサーバがWindowsのエクスプローラの「ネットワーク」フォルダ(ややこしい)に表示されなくなったりします。

よっぽど古いNAS製品でもない限り、sambaのバージョンが3.5(おおよそ13,4年前です)以上ならSMB2以上に対応していますから、あくまでもエクスプローラの「ネットワーク」フォルダに表示されないのが問題なので、ファイル共有自体にはSMB1.0は不要です。

で、SMB1.0が入っていないとなぜエクスプローラの「ネットワーク」フォルダに表示されないのかというと、NETBIOS over TCP/IP(NBT)という仕組みでサーバの名前をばらまいたり受け取ったりしているのですが、その仕組みがSMB1.0と抱き合わせなので、SMB1.0を削除すると名前を受け取ったりできなくなります。

sambaはNBT以外で名前を解決する機能は持っておらず、別のプログラムが必要になります。

そこで、Windows VistaからはNBTとは別の名前の解決手段も有効になっていますので、例えばWSDという機能でもってSambaサーバが稼働しているマシン名をばらまくとめでたくSMB1.0なしで(NETBIOSを使わずに)エクスプローラの「ネットワーク」フォルダにsambaマシンが表示されるようになります。

ですので、sambaマシンでWSDをしゃべるデーモンを稼働させればいいわけです。

なお、そもそもエクスプローラの「ネットワーク」フォルダに表示されなくたっていい場合は、ネットワークドライブを割り当ててしまえばいいだけです。
そのほかにも、たとえばショートカットを新規作成し、その「リンク先」に

 \\192.168.x.x\shared_folder

というようにsambaマシンのIPアドレス(hostsやDNSが正しく設定されているなら名称でもOK)を与えてやれば、それ以後はいちいち手入力しなくても共有フォルダが開けます。

さて、sambaが稼働しているサーバがLinuxかFreeBSDだった場合(Windowsだった場合はそもそも必要はありませんよね)、pythonで記述されたWSDデーモンC言語によるそれがあるのですが、python版なら様々なLinuxディストリビューションやFreeBSDでパッケージ化されているので導入が楽だと思います。

python版で一点だけ注意が必要なのは、UbuntuやCentOSなど、使用しているディストリのカーネルオプション次第ではIPv6を使用するとエラーが出ます。その際は起動オプションで明示的にIPv4だけで稼働するよう指示(-4)を与える必要があります。また、WSDで名前を案内したいLANに接続されたネットワークインターフェース名(enp2s0やeth0など)も明示的に指定(-i)する必要があります。
いうまでもありませんが、ドメイン(-d)orワークグループ(-w)、および名前(-n)の指定は必要です。

たいしたことではないのに長くなってしまいました。

以上です。ここまでお読みいただいてありがとうございました。

2024年4月17日水曜日

VLC for Androidからユーザ名とパスワードで保護されたSMBプロトコルで共有されたネットワークフォルダにアクセスする方法

 タイトルが長いです。要するにAndroid版のVLC(ver.3.5.4)でIDとパスワードで保護されたWindows10,11,Samba鯖の動画を見ようって話です。

前置きです。

この頃は光回線などで有線LANを引いている多くの方が無線LAN基地局(WIFIルータなど)を設置しておいでと思います。
とても便利ですが、対インターネット経路だけでなく、隣近所や道路からの無線によるアクセスも簡単にできるということでもあります。WPA2-PSKだのなんだので保護されているといっても、故意であるなしにかかわらず、簡便な攻撃経路が一挙に拡大した事実には相違がないわけでして、昔のようにLAN内だからといって匿名ユーザにアクセスを許すような共有をするというのは以前にもまして危険となってきました。

Windows10や11も初期設定ではセキュリティホールが大きすぎてどうにもならなくなってメンテナンスが放棄されたSMB1.0は廃止され、SMB2や3であっても匿名アクセスは原則として無効とされています。

VLC for AndroidはSMB2以上に対応しているのですが、匿名アクセスを前提としたUIになっていてアカウント名とパスワードを指定してアクセスしたいな、というときに、ちょっとややこしいです。で、その手順をメモします、という記事です。

前置きは以上です。

さて、VLCを起動して以下の画面になったとします。

ここでSERVER1はWindows11などでIDとパスワードで保護されたフォルダだったとします。それを選択すると
こんなこと言われます。
ID(アカウント)もパスワードも聞いてくれません。悲しいです。

聞いてくれないので、「お気に入り」としてサーバを指定して対応してあげる必要があります。
最初の画像の左上の三点メニューを押下すると以下のメニューが表示されます。


そして、赤丸で囲った「お気に入りにサーバーを追加」を選択しますと、以下のような画面が表示されますので、それぞれ記入します。
  • プルダウンからSMBを選択します。
  • ポート番号は空欄のまま。
  • ネットワーク共有名は共有フォルダがあるサーバのIPアドレスを。
  • フォルダーパスは空欄のまま。
  • サーバ名は何でもいいです。

まだパスワードは入れていませんが、いったんOKを押して閉じます。

すると、次の位置(緑色の矢印の先)に今作成したserver1が登録されていますので、赤丸で囲った3点メニューを選択して再度編集します。

すると以下の画面が開きますので、「ユーザー名」の欄に、ユーザ名とパスワードをコロンで区切って1行で記述してください。

昭和を髣髴とさせる設定方法ですね。

以上です。

ここまでお読みいただいてありがとうございました。

2024年4月10日水曜日

タスクマネージャ上のCPUの「速度」

 タスクマネージャでCPUの乱の下部に、こんな感じで表示される「速度」。

黄みどり色のまるで囲ったところです。
(ピンクのまるで囲った「使用率」については前回の記事で触れたところです。)

この「速度」、CPUのコアがいっぱいあって、しかもコアごとに全部周波数が違うってえのにどこの「速度」なんでしょうね、と。

実際にはコアごとの平均らしいです。

で、パフォーマンスカウンタの「Processor Information」に「% Processor Performance」というのがあって、_Totalのインスタンスから平均値を100倍した値(percentだから)が取得できます。

何に対してのパーセンテージなのかというと、茶色のまるで囲んだ「基本速度」です。
「基本速度」をプログラムから取得するなら、たとえばパフォーマンスカウンタで取得するなら「Processor Information」の「Processor Frequency」を取得するか、WQLでWMIから取得するなら、
SELECT MaxClockSpeed FROM Win32_Processor;
とかで取得して1000で割ります(取得できる値がMHz単位なので)。

で、
「% Processor Performance」/ 100 *「Processor Frequency」/ 1000

という式を計算すると、黄緑のまるで囲った値(GHz)が得られます。

自力でこれらを計算する場合はintelの場合はコアごとにIA32_APERFとIA32_MPERFとTSC周波数とで何とかするのは見当がつきますがTSC周波数の計算も面倒だし、そもそも今はやりのAMDとかになるとさっぱりわかりません。FreeBSDやLinuxのcpufreqのソースが参考になるのかな。

それだけです。
ここまでお読みいただいてありがとうございました。

2024年4月3日水曜日

WindowsでのCPU使用率の計算について

 割と知られていないようなので一応。

実はWindows界隈ではCPUの使用率の計算に二派閥あったりします。
Windows8の時代から始まって、Windows11な現在でも続いています。

一つはタスクマネージャで表示されるCPU使用率です。CPUが処理に費やした時間ではなくて作業量で使用率を計算しています。作業量を評価する基準にCPUのベースクロックを意識しているので、ベースクロックを超えて動作するターボブースト機能を搭載した近年のCPUだと高負荷時には100%を超えます。
しかし計算結果が100%を超えても表示上は100%に丸めちゃっているので、見た目だけは矛盾が出ないようになっています。

もう一つは、SysinternalsのProcess Explorerなど、管理者向けツールなどでよく使われている方法です。これはWindows7まではタスクマネージャもこの方式でした。この派閥は実時間に対するCPU時間で計算しますので、もちろん100%を超えなくなり、タスクマネージャよりも低いCPU使用率が表示されます。

とりあえず、なぜタスクマネージャのCPU負荷の値があんな高い数値なの?という疑問の答えがこれですよ、ということで。

なぜそんな面倒なことをタスクマネージャがしはじめたかのかというと、当時動的にクロックが可変(speedstepとかもう覚えてないでしょ)にできるCPUが普及したことによって、クロック数が下がったまま動作しているマシンと下がっていないマシンではCPUの使用時間が同じだからって仕事量は違うよね同じ負荷とは言えないじゃん!という考えに基づいています。

一方でクロックが落ちてようがなんだろうが、実際にかかった時間との比率こそボトルネックを探すのに便利だろ!クロックは別に監視しとけばいいだろ!!という派閥もあって、それがProcess Explorerなどのツールです。

それぞれごもっともだし、たいていの場合はどちらの方法でもシステムの負荷の監視には役立つと思いますが、違いを知っておけばボトルネックの解消時の参考になるかもしれません。

ご参考: Powershellやプログラムでタスクマネージャと同じ計算結果を得るにはパフォーマンスカウンタ( "Processor Information" の "% Processor Utility" )を参照すれば取得できます。
Process Explorer方式の方法は上記以上にAPI、WMI、パフォーマンスカウンタなどなどから容易に取得可能で、主にCPU負荷の取得という記事があったらこの方法ばかりだと思いますので特に触れません。

PCを新調したのでLinuxサーバからPCを監視する自家製エージェントを仕込む際にふと思いたって記事にしてみました。

ここまでお読みいただいてありがとうございました。

DOSPARAからi5-14500+RTX4060のBTO(RM5C-R46)を購入

 使用しているパーツを明らかにしないDospara製のBTOパソコンを買うなんてどうかしているといわれそうですが、買ってしまったので使われていたパーツを列挙することにします。
型番はガレリアというブランドのRM5C-R46です。
なんのめぐり合わせかわかりませんが、これでガレリアブランドのPCは10年強のブランクを経て3台目です。自分でもびっくりです。

昔もそうでしたが今回も出荷された機器に添付される「構成表」にすら組付けたパーツの製品名がないこの会社のBTOパソコンは同じ型番でもCPUをはじめとしてパーツを変えて販売しても型番が変わらず、型番だけ記述しても意味がないので、2024年3月25日ごろに購入したRM5C-R46の主要パーツ一覧としてお読みください。

使用パーツ変更前
マザーボードASUS PRIME B760M-AJ D4-
メモリ(2枚)Samsung M378A2K43EB1-CWE16G
CPUCore i5-14500i5-14400F
GPUZotac RTX 4060 8 GB-
SSDSOLIDIGM SSDPFKNU010TZ0.5TB
光学ドライブHL-DT-ST DVDRAM GH24NSD5追加

上記にWindows11Proへの変更と電源容量を600Wから750Wに変更してギリギリ20万円弱でした。OSは例によってOEM版です。
ちなみに10年前の同ブランドのCore i7+GTX660マシンを16万円ほどで購入し使用していました。しかし数年前からあちこち故障が続発しているのをだましだまし使っていましたが、ついに面倒になってそのマシンの代替機としての購入です。
それよりも前に買った同ブランドのCore i3機もあったのですが、そちらは不運にも数年でぶっこわれました。再び購入することになって、なんだかご縁があるようです。

今回はVGAがPalitではなかったのは意外でした。
Palitは直接サードウェーブ社自身で仕入れていてASK税がかからないはずですが、今回はたまたま思うように出荷してもらえない事情ができたのでしょうか。ZotacはASK税はかかりますが、それは客に負担させればいいのでASKがいろいろ面倒を見てくれるので調達しやすかったのかな。
それはそれとして、そもそも私にはRTX4060はオーバースペックでした。GTX660で困ってなかったのは伊達じゃなかったみたいです。

ケースについて。
DosparaのBTOパソコンに限らず、あちこちのBTOを謳うブランドに共通する点に、ミドルタワーよりちょっと小さいだけなのにストレージ搭載可能量が少ないケースが採用されている傾向があります。

本機の場合はSKMケース(MicroATX)ver.2という名称で、5インチベイ(光学ドライブ向け)が1台、3.5インチベイ(HDD向け)が2台、2.5インチベイ(SATA-SSD向け)が2台搭載可能なケースです。今日日のミニタワーとしては標準よりやや多めで、殊に5インチベイの存在は省略されがちな昨今ではうれしいです。

当然、このケース内では、仮にRAID1を同種のストレージで組むとスペアが設置できません。それでも私にとっては2台づつでも搭載できるだけありがたいのですが、しかし多くの人にとってはシステム起動用とオフィスやゲームのバイナリ置き場しかいりませんのでマザーボード上に直接設置できるSSDで十分ですから、こんな半端なストレージしか載せられないケースってむしろコスト高になるだけでうれしくないでしょう。
いずれ外部ストレージを搭載可能なケースは、一般向けにはまず見かけなくなるのかな、という気がしています。USBもLANもとても速い時代なので、タワー型のPCであってもストレージ専用機器を外部に設置する流れになるのかな。

さて、本機のケースのメンテナンス性ですが、HDDを換装する際にはケースの正面から見て左側面側からHDD本体を設置し、そのHDDにケースの正面から見て右側面(マザーボードの背面側)から配線を行う必要があり、メンテナンス性が非常に低いです。

SATA接続SSDもケースの正面から見て右側面(マザーボードの背面側)に設置するタイプなので、SATAケーブルを接続するために左側面側からSATA端子にアクセスする必要があるので、これまたやっぱりメンテナンス性が非常に低いです。

なお、意味不明にケース前面のふちがピカピカ光る機能はUEFIの設定で殺せるので安心です。

SSD(M.2)はBTOで500GBから1TBに変更してSOLIDIGM SSDPFKNU010TZが入ってました。
室温24度の部屋/アイドル時で30度。よく冷えており、普段使いでは今のところ40度に達していないです。信頼性も性能も特段いいとも悪いとも言えませんが、ECCメモリも乗らないけど普段使いにそこそこなCPUで使うにはつり合いが取れているのかなと。
ちなみにSSD(M.2)にもう一枚自分でマザーの下側のスロットに「 LEGEND 800 ALEG-800-2000GCS-DP ドスパラ限定モデル」を取り付けました。BTOとして注文したものではないのでご留意ください。添付のヒートシンク利用で室温24度の部屋/アイドル時で40度。ちょっと大きいファイルをコピーするだけですぐに75度に達します。ヒートシンクは別に調達したほうがよかったです。TBWも非公開だし、2TBで14K円だったのですぐ壊れてもいいのでこのまま使います。ネタにできる壊れ方をしてくれるといいな。
また、3.5'HDDはこれまでバックアップ先として使用していた2台を本機に移設して引き続きバックアップ先として運用しています。

冷却(静音パックまんぞくコース)について。
ちょっと負荷がかかると低いうなりが聞こえます。
CPUは室温24度でアイドル時は33~38度の間をフラフラしています。それに追従して敏感にファンの回転数が変化して音が変化しますが、それが私には地味に耳障りです。
CPU-Zを用いてすべてのコアへ高負荷をかけると、ベンチ開始直後こそ4.2GHz程度での駆動で80度強に達してファンもうるさくなりますが、すぐに3GHz程度に落ち着いて53度ほどになり、ファン回転数も1000rpmを切ります。
冷却性能としては i5 14500 自体が熱くならない石なのでこれで十分です。10年前のガレリアの i7 4770 マシンの静音パックまんぞくコースは単にCPUに付属のリテールクーラーがくっついてただけでしたが今回はなんだかヒートパイプとかくっついた謎のサイドフロー式のCPUクーラーが搭載されています。個人的には音は i7-4770 付属のインテルのリテールクーラーのほうが静かでした。
14500なのでリテールクーラーが付属しているはずですが、それは付属品としては送ってこずに没収されました。送ってこられても困るので助かります。
GPUはVGAカードのファンをそのまま使っているだけですがアイドル時は28度からほとんど動きません。
ケースファンはアイドル時は600~700rpmで、最大負荷時は2000rpm程度まで上がります。

マザーボードのPCI Express 4.0 x16 スロットについて。
VGA用のほかにPCI Expressのスロットが2本(x4とx1)搭載されているものの、x1のスロットの位置がVGAカードに近すぎて実質的には使用が困難です。よほど小さいカードでなければVGA用の冷却ファンをふさいでしまいます。
そのため、VGAを使用するならば実運用上ではx4スロットが1本しか使えません。
インターフェイスカードや録画デバイスなどPCIeに複数のカードを設置するためにITXじゃない製品を選んだのに!とか泣けるシチュエーションに陥らないようにお気を付けください。

ところで、以前のマシンではBIOSに埋め込まれている情報があれもこれもほとんどTo Be Filled By O.E.M.になっていて薄みっともない感じ全開でしたが、今回は会社名とかはとりあえず埋めてきたようです。この辺は進化したといえましょうか(とはいえ、まだまだ残ってます)。

とりあえず気づいた点を列挙しました。

以上、ここまでお読みいただいてありがとうございました。

2024年3月27日水曜日

Hyper-Vを入れてないままWindows subsystem for Linuxの2じゃないほうをインストールしたい。

なんだか巷ではWSL2 が人気みたいです。

「みんなだいすきWSL2」じゃなくて、私はWSL1がだいすきなので、Windows11にWSL2からのダウングレードではなく最初からWSL1を直接インストールする方法をメモします。

まず「Windowsの機能」画面で「Linux用Windowsサブシステム」をインストールします。


実は当記事はHyper-Vにチェックを入れてないままWSL1を入れるためのメモです。そのため、Hyper-Vにチェックされていません。

さて、OKボタンを押したら、次は昔と違って勝手にUbuntuが入ったりしないので、自分で好きなDistroを入れなくちゃいけません。

で、wsl --install -d Ubuntu とか実行すると、次のようなエラーが出て怒られた挙句にインストールに失敗したりします。

Installing, this may take a few minutes...
WslRegisterDistribution failed with error: 0x800701bc
Error: 0x800701bc WSL 2 ???????????? ??????????????????????? https://aka.ms/wsl2kernel ?????????


Press any key to continue...

とか言われます。
あー夢の21世紀でもいまだに多国語対応に失敗してても気にしない。

これはハイパーバイザがないからですから、さっきの画面でHyper-Vを入れればいいんですが、私は入れたくないんです。

そこで、wsl --installをする前に以下のコマンドを入力します。

wsl --set-default-version 1 

その後改めて、wsl --install -d Ubuntu を行うとめでたくWSL1をHyper-Vを入れずにインストールすることができます。

それだけです。

2024年1月23日火曜日

DOOGEE T30ProでWidevineのレベルがL3に

 表題の件ですが、DOOGEE T30Proを昨年購入して便利に使用していますが、もともと購入したときはL1だったWidevineが年末ごろのワイヤレスアップデートで更新した際にL3になってしまいました。 

ほっとけばいずれ修正されてワイヤレスアップデートで更新されるだろうと高をくくっていたのですが、年を越しても特に動きが見られませんでした。そこで、こちらから動いてみることにしました。

今回は購入したセラーではなく、DOOGEEのサポートに直接連絡を入れてみました。

とりあえず件名を「How to fix T30Pro to Widevine L1?」として、「L3になっちゃったんだけどL1に戻すには何をしたらいいの?」という内容のメールに、何となく必要そうになりそうな情報として、機種名と現在のアップデートバージョン(DOOGEE-T30Pro-NOEEA-Android13.0-20231127_20231127-1654)とIMEIを併記してホームページに掲載されていたGlobal After-sales Supportのメールアドレス(support-service[アットマーク]doogee.cc)あてに送ってみました。

すると、すぐに返信があったので見てみると、「SNを教えてほしい、*#06#でもみられるよ(意訳)」とのことでしたので、折り返してシリアル番号を送信すると、さらに数時間後には「Wifiで繋げてアップデートしてね」とのメールが届き、実際にワイヤレスアップデートを行ってWidevineがL3からL1に戻ったことを確認しました。

とてもフットワークの軽いサポートだったので、感銘を受けました。

余談ですが、まだ全機にアップデートを配信できるほどテストが進んでいないのか、何かライセンス上の問題があるのか事情は分かりませんが、単に古いバージョンに日付だけ差し替えて戻したわけではなく、L3になってしまった際に直されていた部分(バッテリが何によって使われているか表示ができるようになった件)も正しく機能しています。

まあ、私自身は動画を見ないのでWidevineは実は何でもいいんですが、買い替えたときなどに知り合いに譲ったりすることが多く、譲る対象になりがちな人たちがなぜかやたらと動画を見まくっているので、衝動買いする前に念のため。。。そろそろAndroid14な製品も出そうですし。。。