pslaboが試したことの記録

はてなダイヤリーからはてなブログに引っ越してきました

この日記は現在実行中の減量記録を含む個人的なメモとして始めましたが、最近はコンピュータやガジェット、ハック、セキュリティネタのほうがメインになっております。

はてなダイヤリー時代はカテゴリ分けが適当だったのですが、これはそのうち直します。


Windows上からBIOSのバージョンを確認する

HP のデスクトップ機のBIOSをアップデートしたはずなのに、HP Support Assistant からの更新プログラム通知が消えない状況が発生しました。バージョンは起動時にも確認することはできますが、たかがバージョン確認のために再起動するのは面倒なので、コマンドを実行してBIOSの情報を取得することにしました。

Linuxの場合は dmidecode コマンドでハードウェア情報を調査できますが、Windows の場合はwmic bios get /value と実行するとBIOSに関する詳細情報を確認できます。手元のPCでは、次のような結果が表示され、02.48がインストールされていることが確認できました。

C:>wmic bios get /value


BiosCharacteristics={7,8,11,12,15,16,19,26,27,28,29,32,33,40,41,42,43}
BIOSVersion={"HPQOEM - 0","N01 Ver. 02.48","HP - 20030"}
BuildNumber=
Caption=N01 Ver. 02.48
CodeSet=
CurrentLanguage=enUS
Description=N01 Ver. 02.48
EmbeddedControllerMajorVersion=5
EmbeddedControllerMinorVersion=57
IdentificationCode=
InstallableLanguages=14
InstallDate=
LanguageEdition=
ListOfLanguages={"enUS","daDK","nlNL","fiFI","frFR","deDE","itIT","jaJP","noNO","ptPT","esES","svSE","zhCN","zhTW"}
Manufacturer=HP
Name=N01 Ver. 02.48
OtherTargetOS=
PrimaryBIOS=TRUE
ReleaseDate=20200714000000.000000+000
SerialNumber=xxxxxxxxxx
SMBIOSBIOSVersion=N01 Ver. 02.48
SMBIOSMajorVersion=2
SMBIOSMinorVersion=7
SMBIOSPresent=TRUE
SoftwareElementID=N01 Ver. 02.48
SoftwareElementState=3
Status=OK
SystemBiosMajorVersion=2
SystemBiosMinorVersion=48
TargetOperatingSystem=0
Version=HPQOEM - 0

OpenWRTで追加パッケージのインストールと設定作業を自動化してRaspberry Piでトラベルルータを作る

OpenWRTでRaspberry Piをルータ化する場合、Raspberry Pi2だとUSB WiFiドングルのドライバが標準イメージに含まれていないため、個別にインストールする必要があります。 しかしRaspberry PiNICポートはデフォルトでは192.168.1.1の固定アドレスがふられていて、DHCPサーバも動作していますので、以下のように設定変更する必要があります。

  • NICポートのIPアドレスを変更し、DHCPアドレスを無効化する
  • USB WiFiドングルを装着してドライバをインストールし、利用できる状態にする
  • USB WiFiドングルをWiFi APに設定し、LAN側に設定する
  • NICポートをWAN側に変更し、DHCPクライアントやPPPoEなどの設定に変更する

この作業自体は大した手間はかかりませんが、それでも意外にめんどくさいものです。そこで、この作業を自動化するスクリプトを書いてみました。以前の記事で作成していた手順では、追加パッケージは予めサイトからダウンロードする方法を紹介していましたが、この方法の場合は事前にダウンロードしておく必要はなく、指定したパッケージをスクリプトで自動的にインストールでき、手間なく環境構築できます。

スクリプトによって行われる操作

このスクリプトは以下の操作を自動的に実施します。

  1. 追加パッケージを動的に行うためにLAN(NICポート)をDHCPクライアントに設定する。
  2. NICポートがインターネットと疎通可能な状況になり次第、パッケージの追加インストールを行う。
  3. WAN側はDHCPクライアントに設定し、NICの接続先をWANに変更する
  4. WiFi APの設定を行い、LAN側のDHCP設定を固定IPアドレス割り当て+DHCPサーバにする

このため、OpenWRTのRaspberry Pi向けイメージをmicroSDHCに焼いて起動したのち、このスクリプトを実行すればすべての設定調整が完了します。 WiFi USBドングルのドライバは BUFFALO WLI-UC-GNM2 向けのドライバを opkg install でインストールしていますが、他のドングルを使っている場合はドライバを適切なものに変更してください。 Raspberry Pi3 以降の機種ではドライバのインストールは不要ですが、luci-i18n-base-ja を入れておくとUIが日本語になるので、これだけは入れておいて良いでしょう。

作成したスクリプト

設定調整が必要な箇所はスクリプト前半にまとめてあるので、ここを適切に書き換えるだけです。これを initconfig.sh などの名前で microSDHCに焼いておけば、OpenWRT起動後に /boot/initconifig.sh を実行してNICをLANに接続するだけで、すべての設定が完了します。

#!/bin/sh -x

# 設定内容
LAN_ADDR=192.168.4.1
LAN_MASK=255.255.255.0
WIFI_SSID=[設定するSSID名]
WIFI_PASS=[WPA-PSKのパスフレーズ]

# Rapsberry PiのLANポートをDHCPクライアントにするための設定を書き込む
uci set dhcp.lan.ra_management='1'
uci del network.lan.ipaddr
uci del network.lan.netmask
uci del network.lan.ip6assign
uci set network.lan.proto='dhcp'

uci commit
/etc/init.d/network restart

# 外部向けの疎通が確保できたらパッケージのインストールを行う
while :
do
  ping -c 1 www.google.com > /dev/null 2>&1
  if [ $? == 0 ]; then
    opkg update
    opkg install \
      kmod-mac80211 \
      kmod-rt2800-lib \
      kmod-rt2800-usb \
      kmod-rt2x00-lib \
      kmod-rt2x00-usb \
      rt2800-usb-firmware \
      libusb \
      usbutils \
      luci-i18n-base-ja
    break
  fi
done

# WiFiルータにするための設定を書き込む
uci set system.@system[0].zonename='Asia/Tokyo'

uci set dropbear.@dropbear[0].Interface=lan

uci set dhcp.lan.ra_management='1'
uci set network.lan.proto='static'
uci set network.lan.ipaddr=$LAN_ADDR
uci set network.lan.netmask=$LAN_MASK
uci set network.lan.ifname='wlan0'

uci set network.wan=interface
uci set network.wan.proto='dhcp'
uci set network.wan.ifname='eth0'

uci set wireless.radio0.disabled='1'
uci set wireless.radio0.country='JP'
uci set wireless.radio0.txpower='10'
uci set wireless.default_radio0.encryption='psk2'
uci set wireless.default_radio0.network='lan'
uci set wireless.default_radio0.ssid=$WIFI_SSID
uci set wireless.default_radio0.key=$WIFI_PASS
uci set wireless.default_radio0.wpa_disable_eapol_key_retries='1'
uci delete wireless.radio0.disabled='1'

uci commit
/etc/init.d/network restart

reboot

AndroidのPASMOアプリで、PASMOカードからの移行に対応

2020/08/28付けで、AndroidPASMOアプリで、PASMOカードからの移行に対応したことが発表されました。

https://www.pasmo.co.jp/mp/press/pdf/PressRelease_Android_August28%2C2020.pdf

AndroidSuicaカードをモバイルSuicaに移行するサービスって始まってましたっけ? 始まってなかったような気がしますが、普段 AndroidSuica 使わないので、良く分からない。

移行に関する注意点は以下の通りのようです。

  • 大人用の単体の記名カード(定期券含む)のみ移行可能、その他の券種は移行できない
  • iPhone への Suica 移行のようにカードを読み取って移行するのではなく、カード番号 (PASMO ID)の入力による移行
  • 定期券部分は即座に移行できる
  • 残高は翌日午前5時以降に受け取り可能
  • PASMOカードのデポジットは窓口での返却

とりあえず、Android で物理カードからの移行がサポート開始されたということは、もうじき始まるであろう、iPhone での PASMO サポートのときも物理カードから移行する手段はある、と考えてよさそう。

Gmailで + を使ってメールアドレスを増やす方法の名前をよく忘れるのでメモとして残す

yourname@gmail.comGmail アカウントがあるときに、yourname+foo@gmail.com や yourname+bar@gmail.com でメールアドレスを増やす方法の名前をよく忘れてしまい、他の人に説明するときに困るので、ログとして残します。

下記ページの説明によると、この機能は「Gmail エイリアス」と表記されていました。

support.google.com

VMware Fusion 12 と Workstation 16 でライセンス体系が整理され、Fusion 12 には個人利用無償版も

VMware FusionmacOS で利用でき、Workstation は Windows, Linux で利用できましたが、それぞれ別のライセンスが必要でした。しかし Fursion 12, Workstation 16 でこれらが整理されるようです。

個人向けには Workstation Player は無償利用できましたが、Fusion にはそのような形態がありませんでしたが、Fusion 12 Player の提供開始により、個人利用は macOS でも無償利用可能になります。

blogs.vmware.com

内容をざっと整理すると、こういうことでしょうか。

種類 要件
Fusion Standard 廃止
Fusion Player/Workstatoin Player 個人利用は無償、商用利用は有償
Fusion Pro/Workstation Pro 有償。1ライセンスで最大3台までの Windows, Mac, Linuxで利用可

また、2020/06/25 以降に VMware Fusion 11.5 を購入したユーザ向けには、VMware Fusion 12 のライセンスが自動的に提供されるそうです。

私用の MacBook では VirtualBox を使っていますが、これはパフォーマンスが辛いので、VMware Fusion 12 Player に移行しようと思います。

VMware Fusion 12 は 2020/08/25 時点では未リリースですが、リリースが楽しみになってきました。

2020/09/10 追記

本日付けで、こういう発表がありました。ただし、2週間前と比べて新しい情報は無いように思いますし、提供を開始した分でもないようです。 www.vmware.com

OpenWRT 19.07でWPA3を使う

OpenWRT 19.07はWPA3をサポートしているという話が下記の記事にあり、設定方法も丁寧に説明されていました。

qiita.com

これをベースに、自分の環境でもWPA3サポートを追加してみることにします。

インストールするパッケージ

標準のインストール構成ではWPA3を使用しないので、パッケージを一部変更する必要があります。 目的により、次のパッケージのいずれかをインストールします。

利用目的 パッケージ
WPA3対応のAPにする hostapd-openssl
WPA3に接続するClientとして使う wpa-supplicant-openssl
AP/Clientの両方で利用する wpad-openssl

私の環境では AP/ Client の両方を試したいので、wpad-opensslをインストールすることにします。(Qiitaの元記事は802.11sのメッシュネットワークでWPA3を利用したいということで、wpad-mesh-openssl をインストールするケースを説明しています)

インストールにあたり、デフォルトの wpad-basic を削除する必要があるので、最終的に投入するコマンドは次のようになります。(Web UI から削除や追加を行ってもよいと思いますが、それは試していません)

opkg update
opkg remove wpad-basic
opkg install wpad-openssl

WiFi設定を変更する

WPA3のAPに必要なパッケージインストールが完了していると、暗号化設定でWPA3単体またはWPA2/WPA3-SAE Mixed Mode が選択できるようになります。

f:id:pslabo:20200818204504p:plain

WPA3対応クライアントから接続する

macOS 10.15 Catalina は WPA3 に対応しているので、上記の設定を行うだけで WPA3 が利用できるようになります。OpenWRT側の設定が完了していたら、MacBookを一度WiFiをオフにして、再度オンにしてみます。

WiFiの接続が回復したら option キーを押しながらメニューバーのWiFiアイコンをクリックすると、WiFiの接続状態が確認でき、ここにWPA3パーソナルの表示が確認できます。

iOS13やiPadOS13もWPA3に対応しているのですが、端末側で暗号化方式を表示する機能がないのでWPA3で接続しているかどうかは確認できませんでした。

Switchbotの電池が切れたので交換する

Switchbot で壁スイッチを操作しようとしたところ、つぎのようなメッセージが表示されることがありました。しかし数回試しても操作できず、このメッセージが表示されてしまいます。

f:id:pslabo:20200818193408j:plain

何か変だと思ってバッテリーの状態を確認してみると、どうやら消耗していて動作しない様子。

f:id:pslabo:20200818193753j:plain

電池交換の方法は次のページに表示されているので、交換用の電池 (CR2リチウム電池) を用意して交換すればよさそうです。

support.switch-bot.com

交換用電池 (CR2リチウム電池) はヨドバシカメラの通販が送料込みで300円以下と安価なので、そちらで手配することにします。 https://www.yodobashi.com/product/100000001002740685/

Amazon は1個売りではちょうどよい金額で販売されているページが見当たりませんでした。

届いたバッテリーを交換してみると、全く問題なく動作するようになりました。

というわけで、Switchbot が動作しなくなったら、バッテリーの残量を確認し、消耗していたらバッテリー交換してみましょう。

しかし、実際のところ、できれば次のように案内してくれると、利用者としてはとてもありがたいですね。

  1. バッテリーが減ってきたら、そのことを通知する。また、交換方法を説明するページにナビゲートする。交換方法の説明ページには、バッテリーの型番と推奨メーカーを記載しておく。

  2. バッテリーが消耗したら、単に「コントロールできませんでした」と表示するのではなく、バッテリーが消耗して交換が必要なことを通知する。

この内容は feature request として Switchbot のサポートにも送付しておきました。