https://github.com/dorssel/usbipd-win

WSL2 内ではホストの USB デバイスを使うことができないという大きな欠点がある。WSL2 のベースとなる Hyper-V 基盤は USB の仮想化というのがないので、すぐにサポートされることはないだろうという見込み。

そこで USB IP という USB プロトコルを IP に乗せネットワーク経由にする技術がある。usbipd-win はこの USB IP のホストを Windows 上で実現するソフトウェアの1つでOSS。MS の公式 YouTube で紹介されていて知った。

USB IP 系のあれこれはドライバの関係で secure boot と相性がわるかったりするが…… これはどうだろう。現状よくわかってない (Secure Boot していないので)

インストール

winget install --exact dorssel.usbipd-win

この状態で Administrator 権限の PowerShell をひらき、usbipd.exe list が実行できることを確認する

$ sudo /usr/lib/linux-tools/5.4.0-77-generic/usbip list --remote=172.18.48.1
Exportable USB devices
======================
 - 172.18.48.1
        4-3: STMicroelectronics : ST-LINK/V2 (0483:3748)
           : USB\VID_0483&PID_3748\6&19CA3885&0&3
           : (Defined at Interface level) (00/00/00)
           :  0 - Vendor Specific Class / Vendor Specific Subclass / Vendor Specific Protocol (ff/ff/ff)
 lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 0483:3748 STMicroelectronics ST-LINK/V2
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

一応 認識して使えてはいるっぽい。

 sudo openocd -f interface/stlink-v2.cfg -f target/stm32f0x.cfg
Open On-Chip Debugger 0.10.0
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
Info : auto-selecting first available session transport "hla_swd". To override use 'transport select <transport>'.
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
adapter speed: 1000 kHz
adapter_nsrst_delay: 100
none separate
Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : clock speed 950 kHz
Info : STLINK v2 JTAG v34 API v2 SWIM v7 VID 0x0483 PID 0x3748
Info : using stlink api v2
Info : Target voltage: 3.262724
Warn : UNEXPECTED idcode: 0x2ba01477
Error: expected 1 of 1: 0x0bb11477
in procedure 'init'
in procedure 'ocd_bouncer'

チェックするポイント

  • usbipd attach するのはホスト側
  • Administrator 権限の PowerShell (またはコマンドプロンプト) で実行すること
  • Window Defender Firewall で詰まる。usbipd wsl attach または Ubuntu 側で usbip attach --remote=... したときに刺さる場合、Firewall にひっかかっている可能性がある。mmc.exe で usbipd.exe がブロックされていないか確認する

usbipd.exe のデバッグ方法

うまくいかないときにどうやってデバッグするか。原因をさぐるか。

Visual Studio Community でいいので VS で .sln を開けばビルドできる。既に usbipd をインストール済みの場合、windows のサービスで起動している usbipd は止めておく。

Administrator 権限の PowerShell でサーバ側 (サービスとして起動しているプロセスと同様)

usbipd.exe server

さらに別タブで

usbipd.exe list

とすればいい。

WSL2 内からは

sudo /usr/lib/linux-tools/5.4.0-77-generic/usbip list --remote=172.18.48.1

のようにホストの IP アドレスを指定して usbip コマンドを実行する。ホストの IP アドレスは /etc/resolv.conf の nameserver を見るのがてっとりばやい。

usbipd wsl ... コマンドは wsl 内でいい感じに usbip コマンドも実行してくれるというだけ

エラー (workaround が適用ずみ)

xCORE USB Audio 2.0 という audio device が

PS C:\Users\test> usbipd list
Unhandled exception. System.AggregateException: One or more errors occurred. (An item with the same key has already been added. Key: [1, UsbIpServer.UsbConfigurationDescriptors+UsbConfiguration])
 ---> System.ArgumentException: An item with the same key has already been added. Key: [1, UsbIpServer.UsbConfigurationDescriptors+UsbConfiguration]
   at System.Collections.Generic.TreeSet`1.AddIfNotPresent(T item)
   at System.Collections.Generic.SortedSet`1.Add(T item)
   at System.Collections.Generic.SortedDictionary`2.Add(TKey key, TValue value)
   at UsbIpServer.UsbConfigurationDescriptors.AddDescriptor(ReadOnlySpan`1 descriptor) in D:\a\usbipd-win\usbipd-win\UsbIpServer\UsbConfigurationDescriptors.cs:line 96
   at UsbIpServer.ExportedDevice.GetConfigurationDescriptor(DeviceFile hub, UInt16 connectionIndex, Byte numConfigurations)
   at UsbIpServer.ExportedDevice.GetDevice(SafeDeviceInfoSetHandle deviceInfoSet, SP_DEVINFO_DATA devInfoData, CancellationToken cancellationToken) in D:\a\usbipd-win\usbipd-win\UsbIpServer\ExportedDevice.cs:line 202
   at UsbIpServer.ExportedDevice.GetAll(CancellationToken cancellationToken) in D:\a\usbipd-win\usbipd-win\UsbIpServer\ExportedDevice.cs:line 239
   at UsbIpServer.Program.<>c.<<Main>b__19_9>d.MoveNext() in D:\a\usbipd-win\usbipd-win\UsbIpServer\Program.cs:line 234
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
   at System.Threading.Tasks.Task`1.get_Result()
   at Microsoft.Extensions.CommandLineUtils.CommandLineApplication.<>c__DisplayClass79_0.<OnExecute>b__0()
   at Microsoft.Extensions.CommandLineUtils.CommandLineApplication.Execute(String[] args)
   at UsbIpServer.Program.Main(String[] args) in D:\a\usbipd-win\usbipd-win\UsbIpServer\Program.cs:line 555

usbview.exe による

       ---===>Device Information<===---
English product name: "xCORE USB Audio 2.0"

ConnectionStatus:
Current Config Value:              0x01  -> Device Bus Speed: High (is not SuperSpeed or higher capable)
Device Address:                    0x0A
Open Pipes:                           2

          ===>Device Descriptor<===
bLength:                           0x12
bDescriptorType:                   0x01
bcdUSB:                          0x0200
bDeviceClass:                      0xEF  -> This is a Multi-interface Function Code Device
bDeviceSubClass:                   0x02  -> This is the Common Class Sub Class
bDeviceProtocol:                   0x01  -> This is the Interface Association Descriptor protocol
bMaxPacketSize0:                   0x40 = (64) Bytes
idVendor:                        0x20B1 = XMOS Ltd.
idProduct:                       0x000A
bcdDevice:                       0x06C5
iManufacturer:                     0x01
     English (United States)  "XMOS"
iProduct:                          0x03
     English (United States)  "xCORE USB Audio 2.0"
iSerialNumber:                     0x00
bNumConfigurations:                0x02
*!*CAUTION:    Most host controllers will only work with one configuration per speed

とでていてこれが問題らしい。#61 というパッチを送ってとりあえずなおしてもらった。

  1. トップ
  2. tech
  3. WSL2 で USB (usbipd-win)

apt では入らないので以下の arm のサイトから該当するものをダウンロードする

https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads

自分の環境では ~/app/xxx に sdk いれることが多いので

wget https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.10/gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2
tar xvf gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2
mv gcc-arm-none-eabi-10.3-2021.10 ~/app/
cd ~/app
ln -sf gcc-arm-none-eabi-10.3-2021.10 gcc-arm-none-eabi

して、.zshrc で ~/app/gcc-arm-none-eabi/bin にパスを通す

  1. トップ
  2. tech
  3. WSL2 の Ubuntu に gcc-arm-none-eabi

スピードキュービングしたいわけじゃないとか書いてたけど、一旦揃えらえるようになると、もっと早く揃えられるようになりたい、という欲が出てしまった。n-look OLL + 2-look PLL ぐらいで1分切れる中級者ぐらいなら現実的かな?と思い、いくつか手順を覚えた。

覚えた順

以下OLLはメガハウスの説明書で覚えたやつ。最初に揃えれるようになった段階ではPLLの手順は覚えておらず、U R U' R を使う別の方法で揃えてた。

  1. OLL45 (クロス用) 実際は側面を見ながら F (R U R' U')*n F' と連続で回している
  2. OLL26 (クロスから完全OLL Anti-sune と呼ばれる手順らしい)

以下PLLはトリボのLBL for beginnersで覚えたやつ。6種類で 2-look できるとのこと

コーナーPLL

(どちらも純粋なコーナーPLL=Aパームではないので先にやる必要がある)

  1. Tパーム (とても回しやすい! 数回回すだけで手に馴染む)
  2. Yパーム (まだ馴染んでないのでこのケースでちょっと嫌な気分になる)

エッジPLL

  1. Uaパーム
  2. Hパーム
  3. Ubパーム
  4. Zパーム

ここまでで n-look OLL + 2-look PLL ができて嬉しい感じ。Uパームだけで n-look PLL はできるが……

十字OLL

OLL で何度も同じ手順をまわすのが嫌になり十字OLLを覚える気力が湧いた。以下の順で1日に1つ程度覚えるようにすすめた。十字つくるまでは簡単な手順のn-lookでやってる。

OLL27 (26と対で手順が簡単 sune と呼ばれる手順らしい)
OLL25/24 (対で手順がわかりやすい)
OLL22 (動きがわかりやすい)
OLL23 (覚えにくいけどOLL24と形が似ててよく出てくる気がしてしまう)
OLL21 (十字型で一番確率低い)

F2L

F2L は原理と数パターンの動きだけ覚えてるけど手が勝手に動くレベルにはなっていない。

タイムで60秒切るにはF2L不要みたいなのも見たけど、F2Lが面白いポイントだと思ってるからこれはやりたいところ。

EO (エッジオリエンテーション) という概念があり、EO が適切なら持ち替え(y y')せずに、右側のスロットなら (手前でも奥でも) 右手 (RU) で、左側のスロットなら左手 (LU) で入れることができるということみたい。持ち替えが必要かどうかはエッジパーツにだけ依存している。とりあえずF面B面の色がU面に出ているエッジはEOがあっているので持ち替え不要という原則を知っていれば、裏に入れるのも手順が限られるので自然と入っておもしろい。

D面クロス

下を白にしたときオレンジ→青→赤→緑の関係を覚える。とりあえず前を青に固定して、左オレンジ右赤、奥緑にしてみる。固定するとよくないかも?だけど頭は混乱しにくい。

スクランブルして白面を見たら入ってるピースはそのままに (2個以上入ってる場合、背面優先)、基本的は中段にエッジを落としてUwでグルグルして該当箇所に落とすイメージ、連鎖して入るならそういう手を読む。

めんどうくさくなって回すまえに完璧に読めてない。

その他

EパームはOLL25と24を連続してやるだけなので、見分けさえつけれれば1-look で回せる。が判断が意外と難しい…… 同色が揃っているのを縦に並べるイメージ

OLL33 は OLL45 と上面の形が一緒。そしてこれはYパームの後半の動き (Yパーム回すと途中でこのOLL型が出てくる)なので、それだけ知ってれば回せる。なおYパームの前半の動きは OLL37 (つまりYパーム==OLL37+OLL33)

OLL44 は OLL45 の F を Fw にしただけなので、すぐ回せる。そして OLL2 (点で左1列側面が黄) は OLL45→OLL44と連続して回すだけ。

指づかい

回転記号にはどう持って回しはじめれば回しやすいかは書いてないので、自分で考えて試行錯誤するより最初からうまい人の回しかたの動画見たりしたほうが良い。PLL21種はトリボのYouTubeチャンネルに全手順の動画があるので、トリボのチートシート見ながらの場合はこれがよさそう。

OLL は動画がなかったので今のところ雰囲気で回してる。

なんかのタイミングで hakobe さんと話してたら、もうちょっといい (スピードキュービング的な意味で) キューブが欲しくなったので買ってしまった。

Cubing Classroom RS3M 値段的には Rubik's のやつより安いが圧倒的に回しやすい……

こういう回転パズルはトリボが国内最大手らしく、買うともらえる LBL for beginners と CFOP のチートシート、および YouTube の動画などがよくでてきてて、やる気が湧いたので 2-look PLL の T, Y, Ua, Ub, H, Z パームをそれぞれざっくり覚えた。回転記号だと長手順に見えても回しかたがわかればそうでもない手順が多い気付きがあった (行って操作して戻ってくる、という手順が多いので)。

2x2

子どもは結局 3x3x1 しかできず、あんまりそれ以上興味が湧かないみたいだったので、2x2 も買ってみたが、これも案外手順をしらないと難しいのでちょっと触っただけになってしまった。

2x2 は事実上、理屈はよくわからないが 3x3 とほぼ同様の手順が通用するみたいだ。コーナーのみの3x3と考えればいいのか? エッジに副作用がある操作がどういうことになるかよく理解してない。

RS3M 内部の金属音

青軸を回したときだけバネのようなカラカラした音がして不思議だった。しかしこのモデルはバネを使っていない(トーラス磁石2個でバネの代用をしている) ようなので、原因はバネではない。

で、結論からいえば隣接パーツの磁石がしっかり固定されておらず、これが青軸を回したときだけカタカタ動いていた。該当箇所を特定して、キューブを開いて磁石を瞬間接着剤で固定したら鳴らなくなった。めでたし。実際に鳴っていたのは青ではなくオレンジ白のエッジキューブだった。

+ Fping6
binary = /usr/bin/fping6 

上記のように指定するとうまくいかない。どうやら fping6 -6 host のような形式で実行されるようで、"fping6: can't specify both -4 and -6" というエラーになっている。

解決は簡単で、単に binary = /usr/bin/fping にすれば良い

  1. トップ
  2. tech
  3. smokeping + fping6

一度も触ったことがなかったし、子どもも触るかと期待して買ってみた。ただ、まったく揃えられるようになる気がしなかったため、3×3×1 の簡単そうなやつも同時に買った。

3×3×1 はめちゃくちゃ簡単で適当にいじってると揃う。けど意外な形が作れて結構おもしろい。立体状態を戻すのはちょっと難しい。

3×3×3 完全6面

買ったのは普通のオフィシャルなルービックキューブ (スピードキューブとかじゃない) 。説明書がついてきて LBL 法による解きかたが載っていたので、それを見ながらなら確実に元に戻せることがわかった。

元に戻せるなら自由に崩せるので、クロス→完全1面→2層→上面の色揃え (OLLの手順1) までは割とスムーズに覚えられた。が、その後の手順(PLL)が複雑で覚える気がどうにも起きず、単調な手順を繰り返すだけの別解を YouTube で探して30分ぐらいで覚えて、何も見ずに完全6面を揃えられるようになった。

上面クロスまでは公式のLBLの方法で、その後エッジキューブを先に完全に揃えてからコーナーキューブを色を併せながら順番に入れるみたいな組合せ。

回転記号が覚えられてないので正確な手順を説明できない。

F2L

そもそもスピードキュービングしたいわけじゃないので、OLL/PLL を覚える気にあまりなれないが、F2L はやってて楽しいので若干覚えた。考えて入れてるので早くはならないけどスコっとスロットインする感じが良い。

/etc/prometheus/snmp.yml がまったく設定されていない (ライセンス上の問題らしい) ので以下のようにデフォルトをつっこんでやる必要がある。

wget https://raw.githubusercontent.com/prometheus/snmp_exporter/main/snmp.yml
sudo mv snmp.yml /etc/prometheus/snmp.yml

version=0.14.0+ds だと最新の snmp.yml を読めないので以下のようにタグ指定でとってくると良い

wget https://raw.githubusercontent.com/prometheus/snmp_exporter/v0.14.0/snmp.yml
sudo mv snmp.yml /etc/prometheus/snmp.yml
  1. トップ
  2. tech
  3. Ubuntu (Debian) の prometheus-snmp-exporter パッケージはそのままでは動かない

メインの Raspi という存在が自宅にはあるのだが、だいぶ前にセットアップしていろいろ秘伝のタレのような状態になっていたうえに、ろくに apt-update もしていなかったため古すぎて厳しい状態になっていた。

古いほうは Wi-Fi とかがない Raspberry Pi 2 B。新しいほうは Raspberry Pi 4 B 8GB。メモリは少ないモデルで良かったんだけど、売ってなかったので 8GB 版を買ってしまった。

構成

  • センサー類が GPIO に繋がっている
    • co2 (gpio pwm 読みこみ)
    • 気圧 (i2c)
    • 温湿度 (i2c)
  • bluetooth 経由で3Dプリンタのフィラメントのドライボックスの温湿度を監視している
  • unbound https://lowreal.net/2018/07/18/2
  • node_exporter
  • prometheus
    • LAN 内のメトリクスを集めている (このホスト自身・QNAP・GPSDOなど)
  • pushprox (client)
    • LAN 内のメトリクスを VPS にある prometheus から federate したいので pushprox を使っている

ハマりポイント

 -

4.0 / 5.0

選んだケース (というかヒートシンク?) と GPIO ピンヘッダに挿すコネクタが干渉して繋げられなかった…… というのはケースの製造者も認識済みで、 GPIO ピンヘッダを延長する追加のコネクタが付属するのだが、どうもこれを使うと部分的に接触不良が起きて I2C の接続ができなかったりしてダメだった。

もともと使っていたコネクタとの相性があるんだと思うがなかなか原因がわからず (こういう単純で見えない不具合が一番むずかしい) 大変だった。

結局手元にあった別のピンヘッダを使って延長したら解決した。

  1. トップ
  2. tech
  3. おうちのメインRaspberryPiの入れ替え

no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1

と言われて接続できない。最近の ssh がデフォルトサポートをやめた形式のため、~/.ssh/config で設定してあげれば繋ぐことができる

Host 192.168.0.1
KexAlgorithms +diffie-hellman-group1-sha1

備考

$ ssh -V
OpenSSH_8.2p1 Ubuntu-4ubuntu0.1, OpenSSL 1.1.1f  31 Mar 2020
  1. トップ
  2. tech
  3. 最近の ssh では YAMAHA RTX1200 に接続できない

Pixel 3 XL から機種変。Pixel 3 XL は型落ちで1年前ぐらいに買ったので値段的にもスペック的にもそれほど大きく変わらず、大きさもあまり変わらず。カメラが良くなったぐらいかな? 昨今の状況だとカメラ使う機会も減ってるのであんまり機種変してどうって感じもない。

毎回機種変すると躓きポイントがあるので、なかなか旧機種を初期化するのは勇気がいる。

今のところは仕事で使っている2段階認証アプリの移行に元機種が必要だったぐらいかな。元機種がなくなると手動でワークフロー通しなおす必要があって面倒そうだった。

Authy はすんなりすべて移行できてよかった。

  1. トップ
  2. tech
  3. Pixel 5a (5G)

もともとはロシア製のポータブルSDRらしいがオリジナルはほとんど見掛けることはなく、いろんなバージョンのクローンが存在する。出来不出来にたいへん差があるようで、製品ガチャといえそう。

購入したのは割と最近出始めたもののよう。スペック的には

Name: Receiver
Material: plastics
Color: black
Recharge: Type-C cable(not included)
Battery: 1 * built-in battery, 4.2V, 2020mAh(included)
Item size: 102 * 74 * 29mm / 4.02 * 2.91 * 1.14in
Item weight: 240g / 8.47ounce
Package size: 150 * 100 * 50mm / 5.91 * 3.94 * 1.97in
Package weight: 260g / 9.17ounce

と書いてあったが、だいたい間違えてるのでアテにならない。筐体は plastics ではなくアルミ製で、いろいろあるバージョンの中では一番デキが良くみえる。LCD も綺麗に接着されフラットケーブルが伸びている。

バッテリーは 2020mAh のリチウムポリマー。入ってた箱に「Due to the trial version of the machine, the battery may be overused. Please pay attention to the charging of the battery, or choose to use the registered version」と書いあって不穏。

充電用 Type-C ケーブルは not included と書いてあるが、ついてきた。

周波数の範囲は 50kHz~200MHz、ただ 200MHz に設定すると挙動が変。

ディスプレイはタッチパネル(静電容量式)。操作がむずかしいがファームのせいなのかハードのせいなのか判断つかず。

軽く試してみる

7MHz の SSB、CW(LSBモード) や、80MHz WFM (FM放送) は普通に聴くことができた。

プリアンプのON/OFFは効いているようにみえる。

エンコーダーのできはよくなくてパルスが飛ぶことが多い。

調べてみると組込まれているファームウェアはデモ版らしく、$55 でフル機能版を買うみたいなプロセスがあるらしい (販売ページには特にそういったアナウンスはなく、ただ売ってるだけ)。が、ちょっとさすがにちゃんとハード互換あるのかよくわからないのでやらなくてもいいかなー

  1. トップ
  2. tech
  3. Malachite SDR?

1回目

  • 9時46分に接種 1回目
  • 8時間後ぐらいまではまったく痛みがなく、本当に打たれたのか?生理食塩水だったのでは? レベル
  • 10時間後ぐらいから接種箇所が若干痛い
  • 1日後の朝ぐらいから接種箇所が割りと痛め。腕は上げられる。左肋骨下側も痛む (関係あるか?) 肩とかは痛くない。
  • 1日後の夜は接種箇所は手を上げると結構痛いので上げたくないぐらい。安静にしていれば痛くない。左肋骨下側は呼吸とかでも動くと結構痛くてこちらのほうが難儀。体温は37.1℃でほんのすこし高め。若干だるい。
  • 2日後の朝、接種箇所は痛いが前日ほどではない。肋骨は変わらず痛い
  • 2日後の昼、接種箇所は痛いが若干の筋肉痛程度。肋骨が痛いのが急に減ってきた。

2回目

  • 9時45分に接種
  • (+6時間) 16時ごろに接種箇所が痛みはじめる。
  • (+7時間) 17時ごろから若干だるい。熱はない
  • (+12時間) 22時ごろ37.4。熱はそうでもないが、だいぶだるい
  • (+13時間) 23時ごろ37.7
  • (+13時間) 23時10分ごろ37.9 カロナール 急激に上がる
  • (+14時間) 0時40分ごろ37.4
  • (+17.5時間) 3時30分ごろ37.7 カロナール
  • (+20.5時間) 6時30分ごろ37.4
  • (+21時間) 7時ごろ37.7 カロナール
  • (+29時間) 15時ごろ37.7カロナール
  • (+33時間) 19時ごろ37.4
  • (+36時間) 22時ごろ37.1
  • (+42時間) 翌4時 37.1 頭痛が残ってる
  • (+44時間) 8時 37.1 頭痛。カロナール
  • (+48時間)12時 36.8 再度寝たら頭痛がほぼ解消

37.7 まで上がったら解熱剤飲むぞと決めておいた。カロナールは毎回200mg*2

「熱は高いが元気」みたいになるかと思ってたけどそんなことはなく、普通に風邪ひいたぐらいの辛さ。

職域接種に対するモヤモヤ

自分はモデルナを職域で打ってもらった。矛盾があるが今回の職域接種のすすめかたには疑問がある。

ワクチンは国が優先順位 (重症化しやすく医療資源を食いやすい順) をつけて接種開始された。これは医療資源という社会共有資源に対するワクチンの効果を高めようという施策なので全員に恩恵がある方針であると理解している。この方針について自分は良いと思っている。

しかし実際には国が定めた優先順位は、特に職域接種 (および五輪接種) では守られていない。ガイドライン上は優先をつけろと書いてあるが職域という性質上、65歳以上はほぼいないし、身近な職域接種の案内で基礎疾患などに優先順位をつけている例はみてない。

そしてモデルナワクチンは自治体の大規模接種会場でも使われている。自治体の接種は優先順位に従っている。

ワクチンが足りているなら、打てる人からどんどん打っていけばいいのだが、モデルナワクチンは供給が当初の予定よりも減ることが職域接種などがはじまって供給が安定しなくなってから発表されている。そしてこの供給減は職域接種の申し込みが始まるよりも以前にわかっていたことだった。

これにより、本来であれば自治体大規模接種で接種できたはずの、優先順位が高い人に行き渡らなくなってしまったのではないか。足りていないなら国が自分で決めた優先順位で打っていけばいいだけだったのに、職域接種を始めたせいでおかしなことになった。