【OneMix3】休止復帰でフリーズはWindows10のせいだった

最近、休止から復帰させると、SSDの存在が消える現象が頻発していた。

電源とスリープの設定で、ハードディスクの電源をOFFの設定を無効にすると、休止から復帰した際にSSDが見えなくなる現象が出なくなったので、恐らく、SSD復帰処理に不具合がある。

ハードが原因で無いのなら、現象を確認したのが、10/14頃なので、その頃のWindows Updateがあやしい。

そして、Windows Updateを遡って削除していくと、10/5にインストールしたKB4576754を削除したら、SSDが見えなくなる現象が出なくなった。

ハードディスクの電源OFFを1分に設定して、何度か蓋の開け閉めしてもSSDが見えなくなる現象は発生しなくなったので、これで大丈夫かな?

再び、KB4576754がインストールされるとマズいので、このページに書かれているマイクロソフトのツールをダウンロードして除外しようと思ったが、リストアップされないので指定できない。

とりあえず、削除した最近のアップデートがインストールされたら、また出てくるのかな?

Windows Updateでクリティカルな目に遭わされるなんて初めてだ。

【OneMix3】EFIのShellになった原因判明

【OneMix3】指紋センサー死亡?

今朝、電車に乗る前に、蓋を開けると、またブルーバックでバーコードが一瞬表示されてEFI Shellが起動。

起動順序変更しようと、BIOS画面にすると、EFI Shellしか選べない???

更に再起動すると、SSDのパーティションが見えるようになったが、つまり、休止から復帰した時に、SSDが見えなくなっていてEFIの起動順序がEFI Shellになり、SSDが見えるようになっても、EFI Shellのままという事だな。

今回は指紋センサーが認識しなくなる事はなかった。

画面半分ブラックアウトの修理するまではこんな症状出てなかったが、輸送の衝撃で、プリント基板のSSDの接触が悪くなったのかのう。

なんかいや〜んな感じ。

【One Mix 3】Ubuntu 20.04 で電池バカ喰い

Windows 10 だと、持って帰ってきて充電せずにスリープ状態でまた持っていっても充分使えるだけの電池は残っていた。

しかし、Ubuntu 20.04でスリープ状態にしたら、出掛けて電車で起動しようとしたら動かず、電源長押しで落として、再び電源ONにしたらほぼ電池ゼロだった。

うーん……、やっぱりスリープでの節電がうまくできてないようで、これはちょっと使い方を考える必要があるなあ。

【One Mix 3】Ubuntu 20.04 ssd用設定

Windows 10 だとそれなりにSSDに配慮した設定になっているとは思うが、LinuxはSSDに配慮されていないので、ちゃんと防護策を講じておく必要がある。

ネタ的には拙ブログ次の記事の応用

raspberry pi3 ログをramdisk化

監視カメラとして24時間稼働で、SDカードで運用していた raspberry pi3 は 2年位でSDカードが壊れた。/var/log/syslog とか頻繁に書き込むから、1年365日動かしていれば、2年位で万単位の書き込みになるだろう。

OneMix3 はサーバー運用しないから、そんなに神経質になる必要も無いのだろうが、やるだけはやっておこうという事で、その時に使ったramdisklog というスクリプトを入れる。

だが、困った事に Ubuntu 20.04 では、SysVInit から systemd への移行が進んでいるのか、既に insserv が存在しない。

systemd の作法に基づいて、サービス化してみたのだが、起動途中で止まる。
[/etc/systemd/system/ramdisklog.service] ×ダメな例

[Unit]
Use ramdisk log tmp 
After=local-fs.target

[Service]
ExecStart=/opt/bin/ramdisklog start
ExecStop=/opt/bin/ramdisklog stop
RemainAfterExit=yes
Type=oneshot
Restart=no
KillMode=none

[Install]
WantedBy=multi-user.target

プログラムの性質上、ramdisk OK → /var/log /var/tmp /tmpをramdisk化→rsyslogd 起動 の様になっているので、エラーがログに記録されておらず、何で躓いているのかさっぱり分からん。

grub の設定で起動時の quiet を止めたら見えるかもしれないが、(‘A`)マンドクセ
そもそも、わしは「さあ、Ubuntuを無事起動することができるのか!?」ってゲームやってんじゃなくて、ramdisk化したいだけなんだよ!

/etc/init.d/ramdisklog と配置して、
# update-rc.d ramdisklog defaults

再起動して df -h してみると、

/dev/shm        3.9G  3.9M  3.9G   1% /tmp
/dev/shm        3.9G     0  3.9G   0% /var/tmp
/dev/shm        3.9G  290M  3.6G   8% /var/log

無事イケましたな 🙂

他には、ファイルシステムに noatime 追加

[/etc/fstab]

UUID=45a0be02-ab80-4034-90ac-16292f6afc2d /               ext4    noatime,errors=remount-ro 0       1

SSDは、trim がどーたらという話を聞いた事があるが、

root@onemix3:~# hdparm -I /dev/nvme0

/dev/nvme0:
 HDIO_DRIVE_CMD(identify) failed: Inappropriate ioctl for device

こんな有様なので、そしーてぼくは途方に暮れる〜♪

“hdparm -I /dev/nvme0” で検索したら、
NVMe ストレージの揮発性内部キャッシュ – 誰かの役に立てばいいブログ」を発見。

NVMe というのは PCIe バスに直接つないでデータを保存できるストレージの共通規格で、nvmexpress.org で仕様が公開されています。最新の仕様は rev. 1.3です。

HDD や SSD のようなものではあるんですが、hdparm コマンドで設定することはできず、ベンダが提供するツールか、NVMe 仕様に基づいてコントロールする OSS の github.com/linux-nvme/nvme-cli を使って設定します。この記事では OSS の nvme-cli を使っています。

なるほど PCIe接続だから、hdparmでは情報が取れんのか。
“nvme-cli” というキーワードを得たので、

root@onemix3:~# apt-cache search nvme
nvme-cli - userspace tooling to control NVMe drives

ありましたな 🙂

しかし、インストールしてもコマンドが存在せぬ???
dpkg -L nvme-cli でファイル見たら、マニュアルとかサービスとかのファイルだけで、コマンドが無い。

うーん…。大元の github に色々書いてあるので、読んでみるか。

【One Mix 3】Ubuntu 20.4 LTSをインストール

200%拡大が入ってるので、見た目の解像度が低そうに見えるが、2560×1600で、わしが今使ってるデスクトップよりも広い。

Data D: 50GBとリカバリーの領域を解放してUbuntu 20.4LTSをインストール。

一番最初に買った時は、DataのD: は100GBだったような気がするが、今のonenetbookのサイトに置いてあるインストールメディアだと、180GBと50GBに切られるんだな。

画面が上下逆になってしまうので苦労したが、SSDなので、30分位でサクッと入った。

yoga の laptop にはこの画面逆転現象がよくあるようだが、自動起動するプログラムで、xrandr と xinput により、画面とタッチパネルを回転させてやれば、普通のノートPCとして使える。

[~/bin/scc.sh]

#!/bin/sh
sleep 3
xrandr -o left
xinput set-prop “GXTP7386:00 27C6:0113” ‘Coordinate Transformation Matrix’ 0 -1 1 1 0 0 0 0 1

折りたたんでタブレットにはしてないけど、多分、センサーで画面が回転してダメだろうな。

【OneMix3】指紋センサー死亡?

なんか、休止から復帰後に、艦これ操作してたら、画面がチラチラしだして、段々暗転して一切の入力を受け付けなくなるという現象になった。

電源ボタン長押しして、電源を落とし、いざ起動させてみるも、ログイン画面がPIN入力になっていて指紋認証とならない。指紋センサーが死んだ?

ログインして、デバイスマネージャ見てもハード的には正常。ログアウトしてセンサーにタッチすると、青い画面とバーコードのエラー画面が一瞬出てそのまま再起動。

そしてUEFI shellが起動???リセットしてもUEFI shellが起動するので、起動ロゴでDELキー連打すると、Windows 10の起動順位がなぜか二番目に???

一番目に変えて起動すると、無事Windows 10は起動したが、指紋認証は相変わらずできない。

Google先生で色々しらべると、サムスンのPCの指紋認証がおかしくなった場合の説明の英語のページを見つけた。一旦、PINを削除すると良い???

PINと指紋認証が連動してるって……ちっとも論理的じゃないがとりあえず、PIN削除してみると、指紋認証登録画面が…

どうやら、Windows 10によくある不具合のようだが、Windows 10 ってやっぱり頭おかしい系だな。 🙁

OneMix3 帰還

タブレットモードで頻繁に使用してたら、画面の半分がブラックアウト状態になるようになったOneMix3が修理から戻ってきた。

化粧箱が破損してて、マステで修理されてた(笑)。
液晶保護フィルムが剥がされてるので、また買わないといけない。

起動してみると、パスワードと指紋認証設定してたWindows 10 が綺麗さっぱり消えてて、123とかいうアカウントで、ノーパスワードで起動するようになっていた。

回復で、初期状態に戻そうとするも、「メディアがない」とかで初期化できず。
リカバリーメディア領域が6GB切られているけど、最近のWindwos 10 って8GB位使うから、最早入らなくなってるんだろうなあ。

「onemix3 windows 10 初期化」で検索して出てきたページを読みながら初期化。
インストールメディア作って、インストールして……

12個のエクスクラメーションマークが確認できました。また、!マークはついてないもののディスプレイドライバも入っていませんでした。これらをdouble driver を使って入れていきます

なにそり?どうやらやる前にドライバのバックアップを取っておかないといけないらしい。
そんなもん、一番最初に書いとけや!

ドライバが消えてしまったのは取り返しが付かないので、Onenetbook 公式サイトへ行ってドライバをダウンロードして、インストールしてみたが、角度変更センサーと、タッチパネルが有効にならず。

OSをダウンロードして、
cat OneMIX3.zip.* > OneMix3/OneMIX3.zip
で、ファイルをくっつけて展開して、NTFSフォーマットしたUSBにコピー。

それをOneMix3で起動したら、やっと復活。
元々、保存しなければいけないデータは保存していないので、Microsfot アカウントでログイン設定したら、skypeの設定とか要らん設定をそれなりに回復してくれるので、よし。

SSDなので、電源&休止関係で、「休止状態」になるやつを軒並みオフ。
ハイバネーションされると、ディスクゴリゴリアクセスして、SSDの寿命が縮むからね。
使用する時は、スリープか電源OFFのみ。バッテリ切れで休止状態になるのはまあ、許そう。

それと、タブレットモードでの使用時はよく電源ボタンに触れてスリープ状態になってたので、電源ボタン無効もやっておいた方がいいな。

あと、Google chrome は同期したら、Linuxで使ってる環境を復元してくれるので、ブラウザゲームやるには全く問題なし。

故障は多分、タブレットモードを多用したので、ヒンジ部分のケーブルが断線したのだと思うが、今後はノートPCとして使うかのう。

艦これの部隊生還

イベントのE5のゲージ1 やってて、よそ見してて、皐月改二が大破してるのに進軍してしまった。

戦闘中は攻撃されても何とか避けてたが、最後の雷撃喰らって撃沈。
即座にウインドウ閉じて封印し、イベント終了の今日まで放置。

イベント海域は期間限定なので、母港へ強制帰還が発生した時に、存在しない海域にいる艦隊はそのままどんな状態でも生還する。

皐月改二も 0/28 で撃沈マークが付いてるけど、修理したら「ふぁ~、ボク、マジで死ぬかと思ったぁ~。」ってセリフ。死んどるやんけ!とツッコミつつ生還。

大発×3とBofors 40mm四連装機関砲を失わずに済んだから、よかった。

OneMix3 EMSで発送。

OneMix3画面ブラックアウト

毎日タブレット状態にして使っていて、恐らくヒンジの配線が破損したせいで、タブレット状態にすると、画面半分がブラックアウトするようになってしまったので、5月に修理を依頼した。

しかしながら、支那向けEMSが止まっていたので、送れなかったが7月1日よりEMSの配達が再開されたから、早速郵便局へ持っていって発送した。

買って1年経ってないから、無料修理だったらいいなあ。

Let’s encryptでおウチサーバーの証明書取得

家のサーバーは X server のDNS設定をいじるスクリプトを組んで、サブドメインである irc.noizumi.orgが家のIPアドレスを向くようにDDNSモドキになっている。

HTTPは、監視カメラの zoneminder を外から見れるように元々、ルーターでポート10080番→80番としていて、加えてAUTH DIGESTを掛けているから、外から見放題にはなってなかった。

さて、果たしてポート80番が解放されている必要のある Let’s encrypt で、DIGEST認証が掛かっている httpd の証明書が作れるのか?
まあ、作れるのでこの記事を書いている訳だが 🙂

Let’s encryptは外部からアクセス可能かの判定に、/.well-known ってディレクトリを掘って、そこのファイルを外部から読み出し可能かどうかで、証明書作成者がドメインを使用可能で、有効かを判定している。

ちなみに、もう一つの懸念事項として、Let’s encrypt の certbot が動いているマシンから irc.noizumi.org にアクセスする場合、ルーターが IP masquerade を使用していて、繋げられないというのがある。

確か、iptables になって、POSTROUTING を使用すれば、LANからルーターが接続したPPPoEのグローバルIPアドレスに接続しても、いい感じにプライベートアドレスに変換してアクセス可能にできたはずなのだが、安物ルーターだと仕方がないか。

話はそれたが、DIGEST認証に穴を作って、/.well-known/* のアクセスがあったら、認証しないという設定にしてやる。

[/etc/apache2/conf-available/auth_digest.conf]

<Location />
    AuthType Digest
    AuthName "irc.noizumi.org"
    AuthUserFile /etc/apache2/.htdigest
    SetEnvIf Request_URI "^/.well-known/*" valid-url
    <RequireAny>
      Require valid-user
      Require ip 192.168.
      Require env valid-url
    </RequireAny>
</Location>

他にも .htdigest ファイルを作ってるけど、それは割愛。

# a2enconf auth_digest で有効化
わしの場合は元々有効になっているので、auth_digest.conf を弄るだけ。

そして、サーバーへ Let’s encrypt をインストール
# apt install certbot python-certbot-apache

# certbot –apache

参考:Certbot を使い3分で無料の SSL 証明書を取得する

nginx を apache に読み替えて設定。幸い、certbot から直接 irc.noizumi.org へのアクセスは無いようで、問題なく設定できた。

証明書の確認や、自動更新、テストなどは次のサイトが参考になる。

参考:Let’sEncryptの取得&自動更新設定してみた

さすがプロだけあって、論理的で分かりやすい。

ついでに、irc もSSLを稼働。ngircd の設定にちょっと躓いたりもしたが、

[Global]
Ports = 6667

[SSL]
CertFile = /etc/ngircd/cert/fullchain.pem
KeyFile = /etc/ngircd/cert/privkey.pem
Ports = 6697, 9999

を追加する事でいけた。
ルーターのポートフォワードは、非SSLが6667、SSLが6697で、9999はフォワードしてないので、外部からは繋げられない。

Let’s encryptが作成した証明書ファイルは、所有者が root:root で、privkey.pem は root 権限のみ読めるファイルなので、ircの権限で動作するngircdには読む事ができない。

そこで、/etc/ngircd/cert にコピーして、irc:irc の所有者にした。

証明書の自動更新の設定もしたが、ngircd の証明書もコピーするようにしてある。cp の上書きなので、所有者の再設定をしなくてもいいはず。