armbianの初期設定項目 2022/04/21版


さすがに2017年に作った「Armbianの初期設定項目」は現状にふさわしくないので改訂

(1) armbian OSの入手について

armbian公式からダウンロードするわけだが、”Armbian 22.02 Focal”とか”Armbian 22.02 Jammy XFCE” のどちらがubuntu/debianなのかわかりにくい。

Ubuntu 14.04 LTSTrusty TahrDebian 8ベース
Ubuntu 16.04 LTSXenial XerusDebian 9ベース
Ubuntu 18.04 LTSBionic BeaverDebian 10ベース
Ubuntu 20.04 LTSFocal FossaDebian 10ベース
Ubuntu 22.04 LTSJammy JellyfishDebian 11ベース?
Ubuntu 24.04 LTSNoble Numbat
Debian 8.0jessie
Debian 9.0stretch
Debian 10.0buster
Debian 11.0bullseye
Debian 12.0bookworm

「Armbian 22.02 Focal」はUbuntu 20.04LTSベースで、「Armbian 22.02 Jammy XFCE」はUbuntu 22.04LTSベースでX-WindowのXFCE環境付き、ということが分かる。

(2) SDカードへの書き込みについて

経験則的にAllwinner SoCのOrange Pi/Nano Piなどは、microSDカードの個体差?メーカ差?なのかよくわからない原因で起動しなかったり、よくデータが飛んだりします。

起動しない場合は何度かイメージを書き直してみるといけるようになったり、違うmicroSDにすると普通に起動してきたりします。

なお、私はWindows環境でのイメージ書き込みには「Rufus」を使用しています。

Ubuntuの場合は、ddコマンドで書き込みますが、「bmaptool」で書き込むこともあります。(apt install bmap-toolsでインストールできます)

$ sudo bmaptool copy --nobmap Armbian_22.02.1_Orangepione_focal_current_5.15.25_xfce_desktop.img /dev/sde
bmaptool: info: no bmap given, copy entire image to '/dev/sde'
bmaptool: info: 100% copied
bmaptool: info: synchronizing '/dev/sde'
bmaptool: info: copying time: 10m 35.9s, copying speed 7.6 MiB/sec
$

(3) 初回起動について

初回起動時にログインユーザやパスワードの設定をします。

また、microSDのサイズにあわせたパーテーションサイズ調整も実施されます。

(4) 初期設定

まず、LocaleやTimezoneに関する設定を確認

「timedatectl」と「localectl」、「echo $LANG」を実行します。

$ timedatectl
               Local time: 木 2022-04-21 20:11:30 JST
           Universal time: 木 2022-04-21 11:11:30 UTC
                 RTC time: 木 2022-04-21 11:11:06
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no
$ localectl
   System Locale: LANG=en_US.UTF-8
       VC Keymap: n/a
      X11 Layout: us
       X11 Model: pc105
$ echo $LANG
ja_JP.UTF-8
$

基本的には初回起動時にTimezone設定してるので、そこでそれなりの設定がされていると思います。

ユーザの言語は「ja_JP.UTF-8」、システムとしての言語は「en_US.UTF-8」というのがトラブルが起きにくいとは思っています。

変更する場合、言語設定
「sudo dpkg-reconfigure locales」
タイムゾーン設定
「sudo timedatectl set-timezone Japan」と実行するか、「sudo dpkg-reconfigure tzdata」
キーボードの言語設定(キー配列)
「sudo localectl set-x11-keymap jp」「sudo dpkg-reconfigure keyboard-configuration」

(5) OSアップデート

Armbian自体の更新+Ubuntu/Debianの更新を実施
「sudo apt update」「sudo apt upgrade」

なお、locales アップデートの際に発生する「Generating locales」のプロセスにだいぶ時間が掛かります。

また、アップデート中に下記のような質問があり回答を要求されて止まりますので注意してください。

ubuntu-advantage-tools (27.7~20.04.1) を設定しています ...

設定ファイル '/etc/logrotate.d/ubuntu-advantage-tools'
 ==> これはインストールしてから (あなたかスクリプトによって) 変更されています。
 ==> パッケージ配布元が更新版を提供しています。
   どうしますか? 以下の選択肢があります:
    Y か I  : パッケージメンテナのバージョンをインストールする
    N か O  : 現在インストールされている自分のバージョンを残す
      D     : 両バージョンの差異を表示する
      Z     : 状況を調査するためにシェルを開始する
 デフォルトでは現在使っている自分のバージョンを残します。
*** ubuntu-advantage-tools (Y/I/N/O/D/Z) [デフォルト=N] ? y
新バージョンの設定ファイル /etc/logrotate.d/ubuntu-advantage-tools をインストールしています ...

(6) SBC firmwareのアップデート

一部のSBCにはfirmware アップデートがarmbianレポジトリ経由で提供されているようです。

「sudo armbian-config」で起動して「System」を選択

「Firmware」を選択

「はい」を選択

アップデートが終わるのを待ちます

再起動を選んで再起動します。

(ただ、これ、アップデートなくても再起動要求してるような気がします・・・)

(7) X-Windowの日本語文字化け解消

「sudo apt install fonts-takao-gothic」で一部残る文字化けが消えると思います。

(8) X-Windowでの音声出力先変更

Orange Piの場合、本体上に3.5φステレオ端子が存在していると標準の音声出力先もそちらに設定されていることが多いです。

この場合は、X-Windowの右上に出ているスピーカーアイコンをクリックし、[Default Sink]にある2つの「Built-in Audio Stereo 100%」を他方に切り替えてみてください。

なお、3.5φステレオ端子がない場合は1つしか表示されていないと思います。

(9) GPIO コネクタにPWM付けるファンを使うための設定

ラズパイ用のやつの絵を流用しますが・・・(出典:スイッチサイエンスのRaspberry Pi 4 用ケースファン)

これで3本で繋いだ場合の話です。

armbian-configのHardwareでpwmを有効にする感じでいけるようです

ExcelでTB/GB/MB表記混じりを計算する


容量についての記載が「10TB」「10GB」「10MB」などと単位付きとなっている場合に数値のみ表記とする手法のメモ書き

単位なし表記の場合に*1をしているが、これをしないと文字扱いになるため、数値扱いを強制するために入れている

↓はA1に値が入っている場合の処理

MBだけど単位なし表記にする場合

=IF(RIGHT(A1,2)="TB",LEFT(A1,LEN(A1)-2)*1024*1024, IF(RIGHT(A1,2)="GB",LEFT(A1,LEN(A1)-2)*1024, IF(RIGHT(A1,2)="MB",LEFT(A1,LEN(A1)-2)*1)))

MB表記で統一する場合

=IF(RIGHT(A1,2)="TB",LEFT(A1,LEN(A1)-2)*1024*1024&"MB", IF(RIGHT(A1,2)="GB",LEFT(A1,LEN(A1)-2)*1024&"MB", IF(RIGHT(A1,2)="MB",A1)))

転送レート計算の例

A1:データ量(??MBか??GB)、B1:時間(hh:mm:ss表記)の時に、1時間あたりのデータ量をGB/hとして表示する

=(IF(RIGHT(A1,2)="GB",LEFT(A1,LEN(A1)-2)*1024, IF(RIGHT(A1,2)="MB",LEFT(A1,LEN(A1)-2))) / TEXT(B1,"[ss]"))/(3600*1024)

GBだけど単位なし表記

=IF(RIGHT(A1,2)="TB",LEFT(A1,LEN(A1)-2)*1024, IF(RIGHT(A1,2)="GB",LEFT(A1,LEN(A1)-2)*1, IF(RIGHT(A1,2)="MB",LEFT(A1,LEN(A1)-2)/1024)))

GBだけど単位なし表記で、MB/KBについても計算してくれるもの

=IF(RIGHT(A1,2)="TB",LEFT(A1,LEN(A1)-2)*1024, IF(RIGHT(A1,2)="GB",LEFT(A1,LEN(A1)-2)*1,IF(RIGHT(A1,2)="MB",LEFT(A1,LEN(A1)-2)/1024,IF(RIGHT(A1,2)="KB",LEFT(A1,LEN(A1)-2)/1024/1024))))

GB単位表記

=IF(RIGHT(A1,2)="TB",LEFT(A1,LEN(A1)-2)*1024&"GB",  IF(RIGHT(A1,2)="GB",A1, IF(RIGHT(A1,2)="MB",LEFT(A1,LEN(A1)-2)/1024&"GB"))

WiFi経由でNTP時刻合わせをする時計ムーブメント CH899WiFi


2024/10/09 ニトリ製品について記載
2024/10/10 NTPサーバの指定先について追加
2024/10/15 ニトリ版のNTPサーバについて追加
2024/11/07 ニトリ版販売終息とノア精密製品について追加

このページで紹介しているCH899WiFiですが、ニトリから発売された「Wi-Fiで時間を合わせる掛け時計 (SW WH 009TG)」で採用され、2024年10月上旬から3990円で販売開始されていました。

ただ、どうやら初回出荷分で終了してしまったようで、2024年11月7日現在、再入荷が未定となっているようです。

そんななか、2024年11月6日 ノア精密から「MAG無線LANアナログ掛時計シグナルキーパー W-811 WH-Z」という新製品が7678円で登場しました。詳細説明ページ, マニュアルPDF

ノア精密版は設定UIが高機能になっていて、NTPサーバの指定、NTP受信時間、秒針停止時間を手動で設定できる他、固定IPアドレス設定まで可能となっているようです。


それに対して、ニトリ版は 取扱説明書記載の裏面に「CH-899」と下にある写真そのままに載っていました。説明書内容を見る限りではCH899WiFiとほぼ同じ動作をしている模様です。

特徴

・2.4GHz WiFi専用機器
・一度設定した内容は変更できず、再設定は初期化必須
・NTPの時計あわせは1日1回のみで、それ以外の時間帯WiFi部分はスリープし応答がない
・NTPサーバとして何が登録されているかは未公開(pool.ntp.org, time.pool.aliyun.com, cn.ntp.org.cn を見てる可能性が高い)
・秒針がスムースに回る静音タイプと呼ばれるもの
・秒針が動かない時間帯がある(ニトリ説明書では”夜間0~6時は秒針が動かない”)
・初期設定時のTimeZoneは日本時間で使用する場合は「GMT+9」を指定すること
・電池交換で設定が消えたりはしない

NTPサーバについて設定画面上未公開となっていますが、2024/02にCH899のパケット解析をした記事「NTP対応アナログ掛け時計をDIYする」によると pool.ntp.org と time.pool.aliyun.com をNTPサーバとして指定していると思われれる動作をしていたとのことです。

ニトリ版を確認した方のツイート によると cn.ntp.org.cn, time.pool.aliyun.com, pool.ntp.org を確認した、とのことです。

使用上の注意点として、特徴にあげたように、この装置は1回設定してしまうと設定変更のためのUIを用意していません。設定に失敗した場合は、M.SETボタンを3秒押し続けて初期化して再設定する必要があります。

また、使用中に運用状況を確認するためのUIも用意していませんし、1日1回の時計あわせの時以外はスリープしているようでパケット応答もしていないようです。

特徴説明のところで「ニトリ説明書では”夜間0~6時は秒針が動かない”」としているのは、こちらで確認したCH-899WiFiでは、針が止まる場所は不定で、止まる時間帯もよくわからない、昼間も秒針が止まっていることがある、という動作をしていたためです。
設定UIにあった中国語表記が消えたりしているようなので、2年の間でいくつかバグが修正されているんだと思います。

(ニトリ版を購入された方のレポートでは、Web UIに日本語表記が追加されている、とのことです)

なお、国内認証は工事設計認証として通していました。

申請資料のPDFを見てみたら、WiFi部分の実体は Ai-Thinker ESP-01F(ESP8285) モジュールを使っていました。

ESP8285なので直接配線してプログラムイメージを読み出す、ということもできるんじゃないかと思います。


2024/11/07追記

なお、 ノア精密製造 から “W-572 CH899-ゆっくり振子 “、”CH899-RCstep-z”といったシリーズが出ていますが、単3乾電池1本で動く「CH899」は40kHz/60kHzを受信する普通の電波時計です。WiFi接続するノア精密の時計は単3電池2本で動くもので、「MAG無線LANアナログ掛時計シグナルキーパー」「無線LANでネットと接続し時刻を同期できる掛け時計W-811 WH-Z」「無線 LAN アナログ時計 TC-R1-z-2406」といった名称であることに注意してください。


ここから下は、2022年に入手したCH-899WiFiに関する記述です。

2024年10月時点では、上記のニトリのものがお手軽に買えますし、動作も改善しているようなのでそちらがお勧めです。


aliexpressでWiFi経由でNTP時刻合わせをする時計のムーブメントが売っているのを発見。

時計の針が1種類で$16.14の「DIY Smart Wifi Clock Movement Automatic Time Adjustment Mute Movement Home Decorations Accessory」と、時計の針が3種類で$17.20の「DIY Smart Wifi Clock Movement Automatic Time Adjustment Mute Movement Kits Home Clocks Decorations Accessory」を買ってみた。

ちなみに、違うセラーだと$10.60+送料$4.46 で売ってるのも発見した。

資料を探してみるとメーカに近いと思われるところのページを発見

Dongguan Heng-Rong Hardware Electonic Technology社の「Clock Movement:CH899 14.5mm Wifi Controlled Clock Movement」「智能钟表机芯轴长14.5mm 扫描WiFi钟机芯

使い方については英語ページの方が詳細となっている。

さて、発注から約3週間で到着

まずは12時方向で針を取り付ける。

取り付け後に裏側にあるピンを引き抜く。ちょっと思い切って抜かないと駄目かも

で、電池を入れると原点調整が始まる。

赤枠のところの左側に赤LED、右側に青LEDがあり、時計設定用のWiFiが動いている時は左側の赤LEDが点滅する。

このタイミングでスマホのWiFi一覧を見ると「Wifi-Clock_XXXXXX」というSSIDが登場しているので、そこに接続する。

そうすると自動的にブラウザが開いて設定画面が表示される。

検索されたSSID一覧から接続するものを1つ選択

SSIDのパスワードを入力し、日本であれば「TimeZone: GMT+9」を選択して「save」をクリックして、設定を保存します。

指定したSSIDに接続できるとWifi-clockのSSIDはなくなり、青LEDが3回光って消灯します。(赤LEDも消灯)

針がしばらーく自働で動いて現在時刻になったら設定完了です。

なお、針が現在時刻を指していない場合は、裏側のRECとある青ボタンを押します。

WIFI movement function book

上記の画像だと「Pointer to the zero button」とあるボタンです。これを3秒程度押し続けると、針が急激に動き始めて止まります。

止まったら針を一度取り外して12時に揃えて取り付けます。

取り付け終わったらREC青ボタンを再び3秒程度押すと時刻合わせが開始されます。

これでちゃんとした時刻を表示してくれることでしょう

さて・・・100円ショップで買ってきた安い時計を解体

ムーブメントのサイズが違います

無理矢理下側を除去

取り付け

この状態で使用しています

ちなみに単3電池2本で約7ヶ月使えていました。

dnfコマンドで”Less than 1000 bytes/sec transferred the last 30 seconds”を言われるのを無視したい


openEuler 20.03 LTS環境のメンテナンスのため、久しぶりに起動して「dnf update」を実行した。

すると、大きめのファイルのダウンロードで「Less than 1000 bytes/sec transferred the last 30 seconds」と言われていた。

しかし、単純に中国サーバなので遅いだけなので、この速度制限をどうにかしたい。

/etc/dnf/dnf.conf の[main]セクションに「minrate=1」を追加することで、最低速度が1bytesとなり速度制限が実質解除となった。

また、openeular 20.03lts sp2環境でアップデートしたらfuse3関連でエラーとなった。

[root@openeuler ~]# dnf check-update
Last metadata expiration check: 0:12:39 ago on Fri 15 Apr 2022 05:08:37 PM JST.
Obsoleting Packages
fuse.x86_64                             2.9.9-3.oe1                   OS
    fuse.x86_64                         2.9.9-4.oe1                   @update
fuse.x86_64                             2.9.9-3.oe1                   OS
    fuse-common.x86_64                  3.9.2-4.oe1                   @update
fuse.x86_64                             2.9.9-3.oe1                   everything
    fuse.x86_64                         2.9.9-4.oe1                   @update
fuse.x86_64                             2.9.9-3.oe1                   everything
    fuse-common.x86_64                  3.9.2-4.oe1                   @update
fuse3.x86_64                            3.9.2-3.oe1                   everything
    fuse-common.x86_64                  3.9.2-4.oe1                   @update
Security: kernel-4.19.90-2203.5.0.0143.oe1.x86_64 is an installed security update
Security: kernel-4.19.90-2110.3.0.0116.oe1.x86_64 is the currently running version
[root@openeuler ~]# dnf update -y
Last metadata expiration check: 0:12:44 ago on Fri 15 Apr 2022 05:08:37 PM JST.
Error:
 Problem: cannot install both fuse-2.9.9-3.oe1.x86_64 and fuse-2.9.9-4.oe1.x86_64
  - cannot install the best update candidate for package fuse-common-3.9.2-4.oe1.x86_64
  - cannot install the best update candidate for package fuse-2.9.9-4.oe1.x86_64
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
[root@openeuler ~]#

調べて見ると公式FAQに記載があった。

ただ、文字が抜けてたりして実行できない

[root@openeuler ~]# dnf fuse fuse3 fuse-common
No such command: fuse. Please use /usr/bin/dnf --help
It could be a DNF plugin command, try: "dnf install 'dnf-command(fuse)'"
[root@openeuler ~]# dnf upgrade fuse fuse3 fuse-common
Last metadata expiration check: 0:14:02 ago on Fri 15 Apr 2022 05:08:37 PM JST.
Package fuse3 available, but not installed.
No match for argument: fuse3
Error:
 Problem: cannot install both fuse-2.9.9-3.oe1.x86_64 and fuse-2.9.9-4.oe1.x86_64
  - cannot install the best update candidate for package fuse-common-3.9.2-4.oe1.x86_64
  - cannot install the best update candidate for package fuse-2.9.9-4.oe1.x86_64
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
[root@openeuler ~]#

こちらではどうか?

[root@openeuler ~]# dnf downgrade fuse
Last metadata expiration check: 0:15:07 ago on Fri 15 Apr 2022 05:08:37 PM JST.
Dependencies resolved.
================================================================================
 Package           Architecture   Version              Repository          Size
================================================================================
Installing dependencies:
 fuse3             x86_64         3.9.2-3.oe1          everything         113 k
     replacing  fuse-common.x86_64 3.9.2-4.oe1
Downgrading:
 fuse              x86_64         2.9.9-3.oe1          OS                 139 k
     replacing  fuse-common.x86_64 3.9.2-4.oe1
 fuse-help         x86_64         2.9.9-3.oe1          OS                  20 k

Transaction Summary
================================================================================
Install    1 Package
Downgrade  2 Packages

Total download size: 272 k
Is this ok [y/N]: y
Downloading Packages:
(1/3): fuse-help-2.9.9-3.oe1.x86_64.rpm          63 kB/s |  20 kB     00:00
(2/3): fuse3-3.9.2-3.oe1.x86_64.rpm             196 kB/s | 113 kB     00:00
(3/3): fuse-2.9.9-3.oe1.x86_64.rpm               89 kB/s | 139 kB     00:01
--------------------------------------------------------------------------------
Total                                           173 kB/s | 272 kB     00:01
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1
  Downgrading      : fuse-help-2.9.9-3.oe1.x86_64                           1/6
  Downgrading      : fuse-2.9.9-3.oe1.x86_64                                2/6
  Running scriptlet: fuse-2.9.9-3.oe1.x86_64                                2/6
  Installing       : fuse3-3.9.2-3.oe1.x86_64                               3/6
  Running scriptlet: fuse3-3.9.2-3.oe1.x86_64                               3/6
  Cleanup          : fuse-2.9.9-4.oe1.x86_64                                4/6
  Running scriptlet: fuse-2.9.9-4.oe1.x86_64                                4/6
  Obsoleting       : fuse-common-3.9.2-4.oe1.x86_64                         5/6
  Cleanup          : fuse-help-2.9.9-4.oe1.x86_64                           6/6
  Running scriptlet: fuse-help-2.9.9-4.oe1.x86_64                           6/6
  Verifying        : fuse-2.9.9-3.oe1.x86_64                                1/6
  Verifying        : fuse-2.9.9-4.oe1.x86_64                                2/6
  Verifying        : fuse-common-3.9.2-4.oe1.x86_64                         3/6
  Verifying        : fuse-help-2.9.9-3.oe1.x86_64                           4/6
  Verifying        : fuse-help-2.9.9-4.oe1.x86_64                           5/6
  Verifying        : fuse3-3.9.2-3.oe1.x86_64                               6/6

Downgraded:
  fuse-2.9.9-3.oe1.x86_64              fuse-help-2.9.9-3.oe1.x86_64

Installed:
  fuse3-3.9.2-3.oe1.x86_64

Complete!
[root@openeuler ~]# dnf check-update
Last metadata expiration check: 0:15:17 ago on Fri 15 Apr 2022 05:08:37 PM JST.

fuse.x86_64                            2.9.9-4.oe1                        update
fuse-help.x86_64                       2.9.9-4.oe1                        update
fuse3.x86_64                           3.9.2-4.oe1                        update
Security: kernel-4.19.90-2203.5.0.0143.oe1.x86_64 is an installed security update
Security: kernel-4.19.90-2110.3.0.0116.oe1.x86_64 is the currently running version
[root@openeuler ~]#

で、もう1回アップデートをかけてみたら成功した

[root@openeuler ~]# dnf update -y
Last metadata expiration check: 0:16:25 ago on Fri 15 Apr 2022 05:08:37 PM JST.
Dependencies resolved.
================================================================================
 Package             Architecture   Version                Repository      Size
================================================================================
Upgrading:
 fuse                x86_64         2.9.9-4.oe1            update         136 k
 fuse-help           x86_64         2.9.9-4.oe1            update          13 k
 fuse3               x86_64         3.9.2-4.oe1            update         112 k
Installing dependencies:
 fuse-common         x86_64         3.9.2-4.oe1            update         9.2 k
Installing weak dependencies:
 fuse3-help          x86_64         3.9.2-4.oe1            update          14 k

Transaction Summary
================================================================================
Install  2 Packages
Upgrade  3 Packages

Total download size: 284 k
Downloading Packages:
(1/5): fuse-common-3.9.2-4.oe1.x86_64.rpm        19 kB/s | 9.2 kB     00:00
(2/5): fuse3-help-3.9.2-4.oe1.x86_64.rpm         28 kB/s |  14 kB     00:00
(3/5): fuse-help-2.9.9-4.oe1.x86_64.rpm          81 kB/s |  13 kB     00:00
(4/5): fuse-2.9.9-4.oe1.x86_64.rpm              190 kB/s | 136 kB     00:00
(5/5): fuse3-3.9.2-4.oe1.x86_64.rpm             271 kB/s | 112 kB     00:00
--------------------------------------------------------------------------------
Total                                           308 kB/s | 284 kB     00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1
  Installing       : fuse-common-3.9.2-4.oe1.x86_64                         1/8
  Upgrading        : fuse-help-2.9.9-4.oe1.x86_64                           2/8
  Installing       : fuse3-help-3.9.2-4.oe1.x86_64                          3/8
  Upgrading        : fuse3-3.9.2-4.oe1.x86_64                               4/8
  Running scriptlet: fuse3-3.9.2-4.oe1.x86_64                               4/8
  Upgrading        : fuse-2.9.9-4.oe1.x86_64                                5/8
  Running scriptlet: fuse-2.9.9-4.oe1.x86_64                                5/8
  Cleanup          : fuse-2.9.9-3.oe1.x86_64                                6/8
  Running scriptlet: fuse-2.9.9-3.oe1.x86_64                                6/8
  Cleanup          : fuse-help-2.9.9-3.oe1.x86_64                           7/8
  Cleanup          : fuse3-3.9.2-3.oe1.x86_64                               8/8
  Running scriptlet: fuse3-3.9.2-3.oe1.x86_64                               8/8
  Verifying        : fuse-common-3.9.2-4.oe1.x86_64                         1/8
  Verifying        : fuse3-help-3.9.2-4.oe1.x86_64                          2/8
  Verifying        : fuse-2.9.9-4.oe1.x86_64                                3/8
  Verifying        : fuse-2.9.9-3.oe1.x86_64                                4/8
  Verifying        : fuse-help-2.9.9-4.oe1.x86_64                           5/8
  Verifying        : fuse-help-2.9.9-3.oe1.x86_64                           6/8
  Verifying        : fuse3-3.9.2-4.oe1.x86_64                               7/8
  Verifying        : fuse3-3.9.2-3.oe1.x86_64                               8/8

Upgraded:
  fuse-2.9.9-4.oe1.x86_64 fuse-help-2.9.9-4.oe1.x86_64 fuse3-3.9.2-4.oe1.x86_64

Installed:
  fuse-common-3.9.2-4.oe1.x86_64          fuse3-help-3.9.2-4.oe1.x86_64

Complete!
[root@openeuler ~]# rpm -qa|grep fuse
fuse3-3.9.2-4.oe1.x86_64
fuse-common-3.9.2-4.oe1.x86_64
fuse3-help-3.9.2-4.oe1.x86_64
fuse-2.9.9-4.oe1.x86_64
fuse-help-2.9.9-4.oe1.x86_64
[root@openeuler ~]#

ただ・・・もう1回「dnf check-update」を実行するとこうなるんだけど、なんなんだ・・・

[root@openeuler ~]# dnf check-update
Last metadata expiration check: 0:17:13 ago on Fri 15 Apr 2022 05:08:37 PM JST.
Obsoleting Packages
fuse.x86_64                             2.9.9-3.oe1                   OS
    fuse.x86_64                         2.9.9-4.oe1                   @update
fuse.x86_64                             2.9.9-3.oe1                   OS
    fuse-common.x86_64                  3.9.2-4.oe1                   @update
fuse.x86_64                             2.9.9-3.oe1                   everything
    fuse.x86_64                         2.9.9-4.oe1                   @update
fuse.x86_64                             2.9.9-3.oe1                   everything
    fuse-common.x86_64                  3.9.2-4.oe1                   @update
fuse3.x86_64                            3.9.2-3.oe1                   everything
    fuse-common.x86_64                  3.9.2-4.oe1                   @update
fuse3.x86_64                            3.9.2-3.oe1                   everything
    fuse3.x86_64                        3.9.2-4.oe1                   @update
Security: kernel-4.19.90-2203.5.0.0143.oe1.x86_64 is an installed security update
Security: kernel-4.19.90-2110.3.0.0116.oe1.x86_64 is the currently running version
[root@openeuler ~]#

うーん???

[root@openeuler ~]# rpm -qa|grep fuse
fuse3-3.9.2-4.oe1.x86_64
fuse-common-3.9.2-4.oe1.x86_64
fuse3-help-3.9.2-4.oe1.x86_64
fuse-2.9.9-4.oe1.x86_64
fuse-help-2.9.9-4.oe1.x86_64
[root@openeuler ~]# dnf remove fuse3-3.9.2-4.oe1.x86_64 fuse3-help-3.9.2-4.oe1.x86_64
Dependencies resolved.
================================================================================
 Package            Architecture   Version                Repository       Size
================================================================================
Removing:
 fuse3              x86_64         3.9.2-4.oe1            @update         377 k
 fuse3-help         x86_64         3.9.2-4.oe1            @update         5.0 k

Transaction Summary
================================================================================
Remove  2 Packages

Freed space: 382 k
Is this ok [y/N]: y
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1
  Erasing          : fuse3-3.9.2-4.oe1.x86_64                               1/2
  Running scriptlet: fuse3-3.9.2-4.oe1.x86_64                               1/2
  Erasing          : fuse3-help-3.9.2-4.oe1.x86_64                          2/2
  Running scriptlet: fuse3-help-3.9.2-4.oe1.x86_64                          2/2
  Verifying        : fuse3-3.9.2-4.oe1.x86_64                               1/2
  Verifying        : fuse3-help-3.9.2-4.oe1.x86_64                          2/2

Removed:
  fuse3-3.9.2-4.oe1.x86_64             fuse3-help-3.9.2-4.oe1.x86_64

Complete!
[root@openeuler ~]# rpm -qa|grep fuse
fuse-common-3.9.2-4.oe1.x86_64
fuse-2.9.9-4.oe1.x86_64
fuse-help-2.9.9-4.oe1.x86_64
[root@openeuler ~]#

fuseは2.9.9-3.oe1があるけどfuse-commonにはない

[root@openeuler ~]# dnf downgrade fuse-help-2.9.9-3.oe1 fuse-2.9.9-3.oe1 fuse-common-2.9.9-3.oe1
Last metadata expiration check: 0:24:30 ago on Fri 15 Apr 2022 05:08:37 PM JST.
No package fuse-common-2.9.9-3.oe1 available.
Dependencies resolved.
================================================================================
 Package           Architecture   Version              Repository          Size
================================================================================
Installing dependencies:
 fuse3             x86_64         3.9.2-3.oe1          everything         113 k
     replacing  fuse-common.x86_64 3.9.2-4.oe1
Downgrading:
 fuse              x86_64         2.9.9-3.oe1          OS                 139 k
     replacing  fuse-common.x86_64 3.9.2-4.oe1
 fuse-help         x86_64         2.9.9-3.oe1          OS                  20 k

Transaction Summary
================================================================================
Install    1 Package
Downgrade  2 Packages

Total download size: 272 k
Is this ok [y/N]: n
Operation aborted.
[root@openeuler ~]#
[root@openeuler ~]# dnf --showduplicates list fuse-common
Last metadata expiration check: 0:25:15 ago on Fri 15 Apr 2022 05:08:37 PM JST.
Installed Packages
fuse-common.x86_64                      3.9.2-4.oe1                      @update
Available Packages
fuse-common.x86_64                      3.9.2-4.oe1                      update
[root@openeuler ~]# dnf --showduplicates list fuse
Last metadata expiration check: 0:25:24 ago on Fri 15 Apr 2022 05:08:37 PM JST.
Installed Packages
fuse.x86_64                        2.9.9-4.oe1                        @update
Available Packages
fuse.src                           2.9.9-3.oe1                        source
fuse.x86_64                        2.9.9-3.oe1                        OS
fuse.x86_64                        2.9.9-3.oe1                        everything
fuse.x86_64                        2.9.9-4.oe1                        update
[root@openeuler ~]#

解決できなさそうだなぁ・・・

PowerShellにパスワード文字列を直接書かない手法


PowerShellで用意されているGet-Credential 関連を駆使して、PowerShellスクリプト内に直接パスワードを書かないで済む手法でスクリプトを作成した。

スクリプトを配置したディレクトリにscript.cred というファイルを作り、そこに暗号化されたパスワード文字列を配置する、という仕組み。

$authfile=$PSScriptRoot+".\script.cred"
$username="admin" #ユーザ名
$passwdstr="" # この変数にパスワード文字列が入る。
if((Test-Path $authfile) -eq $false){
    $creds = Get-Credential -UserName $username -Message $($username+"ユーザのパスワードを入力してください")
    $creds.Password | ConvertFrom-SecureString | Set-Content -Path $authfile | Out-Null
    $passwdstr=[Runtime.InteropServices.Marshal]::PtrToStringBSTR([Runtime.InteropServices.Marshal]::SecureStringToBSTR($creds.Password))
}else{
    $passwdstr=[Runtime.InteropServices.Marshal]::PtrToStringBSTR([Runtime.InteropServices.Marshal]::SecureStringToBSTR($(Get-Content $authfile | ConvertTo-SecureString)))
}

# この段階の $passwdstr には暗号化されていないパスワード文字列が入っている

なお、メモリ上の$passwdstr には暗号化されていない文字列が保存されているため、そこは注意が必要。