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な製品も出そうですし。。。