Oracle CloudのFree Tier(メモリ1GB)でdnfが死ぬ件でswapサイズを調べた

Oracle Cloud(OCI)にある無料枠(Free Tier)、x86_64ベースのやつはメモリが1GBとなっている。

Oracle Linux 7時代は特に問題なかった。

Oracle Linux 8も最初は特に問題なかったのだが、最近、dnfコマンドを実行するとOOM Killerでプロセスが殺されることが増えてきた。

Oracle Linux 9になると、OOM Killer発動するまで長時間かかりdnfコマンドの応答が返ってこないままフリーズしてるようにみえる、という状況が続く、というなかなかめんどくさいことになっていた。

Oracle Linux 9でtopコマンド実行しながら、dnf updateを実行して観察していると、レポジトリのファイル容量が80MBを超えているとdnfコマンド内部処理中にswapが1000MB以上使われているというのが見えた。

インスタンスとしては3GB~4GBぐらいのスワップ領域があるとよさそう、という感じである。

で、運用している環境で起きたりおきてなかったりするのはなぜなんだろう?と各インスタンスの設定状況を調べていくと、swap領域の設定がOCIイメージの作成時期によって違う、というめんどくさい状態であることが判明した。

特にOracle Linux 8の容量のかわりようが結構謎である・・・

ディストリビューションOCIイメージ名swap容量swap path
Oracle Linux 7 x86_64Oracle-Linux-7.7-2019.08.28-08G/dev/sda2
Oracle Linux 7 x86_64Oracle-Autonomous-Linux-7.8-2020.05-08G/dev/sda2
Oracle Linux 8 x86_64Oracle-Linux-8.7-2023.01.31-31.9G/.swapfile
Oracle Linux 8 aarch64Oracle-Linux-8.3-aarch64-2021.05.12-04G/.swapfile
Oracle Linux 8 aarch64Oracle-Linux-8.4-aarch64-2021.10.25-08G/.swapfile
Oracle Linux 8 aarch64Oracle-Linux-8.5-aarch64-2022.03.17-14G/.swapfile
Oracle Linux 8 aarch64Oracle-Linux-8.6-aarch64-2022.05.30-04G/.swapfile
Oracle Linux 9 x86_64Oracle-Linux-9.3-2024.04.22-0948M/.swapfile
Oracle Linux 9 x86_64Oracle-Linux-9.4-Minimal-2024.07.29-0なしなし

で、状況を総合的に考えると、Oracle CloudのFree TierでRHEL8.x/9.x系を使う場合は、swapを4GB確保していくべき、と判断でき、その運用を行っています。


2024/09/26 追加

Oracle Linux 9 Minimalで構築したところ、こちらはなんとswapなし設定でした。

メモ Nutanix AHVの管理画面で仮想マシンにClient certificatesのエラーがでていた

時々テスト用に起動することがあるNutanix環境がある。

テスト用なのでNutanix Community Editionで構築したのだがしばらくアップデートが出てなかったので結構古い。

確認することがあったのでWindows仮想マシンとLinux仮想マシンを作って、Windows側にNutanix Guest Toolsをインストールしてみたところエラーが・・・

Summary
Client certificates for VM <仮想マシン名> with uuid 33dd4645-3dcf-4efc-b837-0b1cb3a8d7d9 are expiring in -19717 days and need to be regenerated.Upon Certificate expiry, the CVM-Guest VM communication will be broken.

Possible Cause
Description
NGT Client certificates have definite expiry period of 1000 days based on ISO standards.

Recommendation
NGT Client certificates need to be regenerated on the guest VMs. Refer to KB 10075 for further details

KB 10075「NCC Health Check: ngt_client_cert_expiry_check

AOS 5.19.1以降と、AOS 5.19.1より前とで対処が違う模様。

2020.09.16はAOS5.18らしいので、より前なので対処策は KB-8120のようなのだが、Community Edition権限では読めない・・・

で・・・アップデートが出てないと思ってたNutanix Community Editionについて2023年3月に新しいバージョンが出ていたとは・・・

smzklab「[2023令和最新版]Nutanix Community Edition 2.0

ダウンロード場所「Download Community Edition

それはさておき、問題の対処方法を捜索

インフラ屋とアプリ屋のあいだ「NGTによる仮想マシンの識別方法と証明書の更新方法について」を見ると、期限が切れてる場合はNGTとの通信が出来ていない模様

しかしうちの環境だと「NGT Enabled:true」で「Communication Link Active:true」とNGTと通信はできている模様

nutanix@NTNX-20190b89-A-CVM:172.17.44.22:~$ ncli ngt get vm-id=<UUID>

    VM Id                     : <UUID>
    VM Name                   : <仮想マシン名>
    NGT Enabled               : true
    Tools ISO Mounted         : false
    Vss Snapshot              : true
    File Level Restore        : false
    Communication Link Active : true
nutanix@NTNX-20190b89-A-CVM:172.17.44.22:~$

とりあえず、書いてある証明書更新を実施してみる

「ncli vm list」でUUID確認

「ncli ngt get vm-id=<UUID>」で現状のステータス確認

「nutanix_guest_tools_cli query_vm_tools_entity <UUID>」でNGTと通信して内容が取れるか確認(うちの環境では取れた)

いまの環境のNGT versionは「ngt_version: “2.0”」となっていた。

「nutanix_guest_tools_cli delete_vm_tools_entity <UUID>」で登録を削除。最後は「result_vec: kNoError」と出る

「nutanix_guest_tools_cli query_vm_tools_entity <UUID>」でNGTと通信して内容を確認すると、ログが流れたあとjsonっぽい出力はなくすぐに「result_vec: kNonExistent」と出たので登録は削除されている

「nutanix_guest_tools_cli create_vm_tools_entity <UUID>」で登録を実施。最後は「result_vec: kNoError」と出る

「nutanix_guest_tools_cli query_vm_tools_entity <UUID>」でNGTと通信して内容を確認すると、ログが流れたあとjsonっぽい出力があれば再登録

Nutanix管理画面からMount Nutanix Guest Toolsを実行した後、仮想マシンを再起動、とあるので、それを行う(nutanix_guest_tools_cli mount_guest_tools <UUID>でもいいらしい)

仮想マシン再起動後、「ncli ngt get vm-id=<UUID>」を実行し、NGTの状態確認

結果変わらず。

今回、Linux仮想マシンだったので/usr/local/nutanix/ngt/config/にあるpem拡張子のファイルが更新されている。

# ls -l /usr/local/nutanix/ngt/config/
合計 20
-rwxr-x---. 1 root root 3988 12月 28 15:50 ca-cert.pem
-rwxr-x---. 1 root root 1854 12月 28 15:50 client-cert.pem
-rwxr-x---. 1 root root 1704 12月 28 15:50 client-key.pem
-r-xr-x---. 1 root root  118 12月 28 15:50 ngt_config.json
-rw-r--r--. 1 root root    0 12月 28 14:53 ngt_marker
-r-xr-x---. 1 root root  379 12月 28 14:53 script_execution_config.json
#

client-cert.pemを確認すると、発行日 2023/12/28 と更新されていることを確認

# openssl x509 -text -noout -in /usr/local/nutanix/ngt/config/client-cert.pem
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 4105 (0x1009)
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: C = US, ST = CA, O = Nutanix, OU = NGT, CN = intermediate-ca
        Validity
            Not Before: Dec 28 06:45:42 2023 GMT
            Not After : Sep 23 06:45:42 2026 GMT
        Subject: C = US, ST = CA, L = San Jose, O = Nutanix, OU = Nutanix Guest Tools, CN = ngt-uuid=bbcae76c-bcc2-4da5-bb80-1ed6fb2d6045
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    <略>
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Basic Constraints:
                CA:FALSE
            Netscape Cert Type:
                SSL Client, S/MIME
            Netscape Comment:
                OpenSSL Generated Client Certificate
            X509v3 Subject Key Identifier:
                58:DD:30:0E:E9:FD:5E:5C:A0:68:5B:13:B4:34:4E:B5:10:43:D5:D1
            X509v3 Authority Key Identifier:
                16:EE:D1:30:0D:AC:E9:CE:CA:E9:69:D8:F1:8A:B6:7D:2B:46:45:F6
            X509v3 Key Usage: critical
                Digital Signature, Non Repudiation, Key Encipherment
            X509v3 Extended Key Usage:
                TLS Web Client Authentication, E-mail Protection
    Signature Algorithm: sha256WithRSAEncryption
    Signature Value:
        <略>
#

ca-cert.pem 側は2019/11/12発行だけど、有効期限が2029年までになっている状態

# openssl x509 -text -noout -in /usr/local/nutanix/ngt/config/ca-cert.pem
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 4096 (0x1000)
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: C = US, ST = CA, L = San Jose, O = Nutanix, OU = NGT, CN = root-ca
        Validity
            Not Before: Nov 12 08:12:48 2019 GMT
            Not After : Nov  9 08:12:48 2029 GMT
        Subject: C = US, ST = CA, O = Nutanix, OU = NGT, CN = intermediate-ca
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (4096 bit)
                Modulus:
                    <略>
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Subject Key Identifier:
                16:EE:D1:30:0D:AC:E9:CE:CA:E9:69:D8:F1:8A:B6:7D:2B:46:45:F6
            X509v3 Authority Key Identifier:
                AA:F6:89:7E:3B:F9:42:7E:15:D0:42:27:54:A8:65:2B:3E:5C:7F:B6
            X509v3 Basic Constraints: critical
                CA:TRUE, pathlen:0
            X509v3 Key Usage: critical
                Digital Signature, Certificate Sign, CRL Sign
    Signature Algorithm: sha256WithRSAEncryption
    Signature Value:
        <略>
#

….ca-certの有効期限が10年であることが問題?

そうするとNutanix側のCA証明書を再生成する必要があるのが「AOS < 5.19.1: Rrefer to KB 8120 for instructions on re-generating the certificates.」の内容ということなのか?

とりあえずよくわからないけど、NGTが使えていないわけではないので一旦放置、とした

Xperia XZsにGSIイメージを書き込んだ

秋葉原でXperia XZs G8232を4400円で入手した。

調べて見るとGSIイメージを書き込むという手法があるようでFIRE & TECH「Xperia XZs の ROM 焼き」で紹介されていた。

ファイルの配布元はxda-forumの「[10.0] Project Treble for Xperia XZs [2020.03.18]」で、どういうことをやっているのかは「Fake Treble for Xperia XZ」に書かれている。

まずはXperia XZsのbootloader unlockをするために、設定画面から「OEMロック解除」を有効にする。

で、IMEI調べて、sonyの「Unlock Bootloader」でbootloader unlockのコードを申請して入手。

電源オフ状態でボリューム↑ボタンを押しながらUSBケーブルでパソコンに接続すると、fastbootモードで起動します。

起動するとXZs左上のランプが青く点灯し、パソコンから「fastboot devices」を実行するとデバイスが表示されます。

C:\Program Files (x86)\Android\android-sdk\platform-tools>fastboot.exe devices
BH9011Gxxxx      fastboot

C:\Program Files (x86)\Android\android-sdk\platform-tools>

続いて申請して表示された文字列の先頭に0xを付け加えて「fastboot oem unlock 0x~」と入力します。

最初間違えて0xをつけないで実行してしまったのでエラーになっています。

C:\Program Files (x86)\Android\android-sdk\platform-tools>fastboot oem unlock 570C856D14FAxxxx
                                                   FAILED (remote: 'Incorrect format for unlock data. Should be on the form "0x')
fastboot: error: Command failed

C:\Program Files (x86)\Android\android-sdk\platform-tools>fastboot oem unlock 0x570C856D14FAxxxx
                                                   OKAY [  2.055s]
Finished. Total time: 2.059s

C:\Program Files (x86)\Android\android-sdk\platform-tools>

Treble-10.0-keyaki-4.9-sjll-V2.10.zipのHow-to-flash.txtは下記の様に書いてあります。

Format Data
fastboot flash oem vendor.img
fastboot flash boot boot.img
fastboot flash system <GSI Image>

GSI should be A/B type, Never use A-Only!

For XZs, you can use the twrp of X Performance or XZ's.

NEVER, NEVER flash Sony Open devices oem image!!!!!!

まずは「Format Data」ということで「fastboot -w」(Wipe)を実行します。

C:\Program Files (x86)\Android\android-sdk\platform-tools>fastboot -w
Erasing 'userdata'                                 OKAY [  0.385s]
mke2fs 1.45.4 (23-Sep-2019)
Creating filesystem with 13089792 4k blocks and 3276800 inodes
Filesystem UUID: f9136b0e-0b12-11ec-a6fc-fda6154f283e
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424

Allocating group tables: done
Writing inode tables: done
Creating journal (65536 blocks): done
Writing superblocks and filesystem accounting information: done

Sending 'userdata' (4396 KB)                       OKAY [  0.144s]
Writing 'userdata'                                 OKAY [  0.059s]
Erasing 'cache'                                    OKAY [  0.026s]
mke2fs 1.45.4 (23-Sep-2019)
Creating filesystem with 65536 4k blocks and 65536 inodes
Filesystem UUID: f96341ce-0b12-11ec-b52e-2ff551a4869a
Superblock backups stored on blocks:
        32768

Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

Sending 'cache' (120 KB)                           OKAY [  0.025s]
Writing 'cache'                                    OKAY [  0.026s]
Finished. Total time: 1.213s

C:\Program Files (x86)\Android\android-sdk\platform-tools>

続いて Treble-10.0-keyaki-4.9-sjll-V2.10.zipの vendor.imgをOEM領域に書き込みます。

C:\Program Files (x86)\Android\android-sdk\platform-tools>fastboot flash oem F:\download\android\xperia-xzs\vendor.img
Sending 'oem' (248608 KB)                          OKAY [  6.827s]
Writing 'oem'                                      OKAY [  1.871s]
Finished. Total time: 8.853s

C:\Program Files (x86)\Android\android-sdk\platform-tools>

Treble-10.0-keyaki-4.9-sjll-V2.10.zipのHow-to-flash.txt の boot.imgをboot領域に書き込みます。

C:\Program Files (x86)\Android\android-sdk\platform-tools>fastboot flash boot F:\download\android\xperia-xzs\boot.img
Sending 'boot' (12368 KB)                          OKAY [  0.366s]
Writing 'boot'                                     OKAY [  0.110s]
Finished. Total time: 0.530s

C:\Program Files (x86)\Android\android-sdk\platform-tools>

最後にGSIイメージをsystem領域に書き込みます。

C:\Program Files (x86)\Android\android-sdk\platform-tools>fastboot flash system F:\download\android\xperia-xzs\GSI-Android10\system-quack-arm64-ab-gapps_v222.img
Invalid sparse file format at header magic
error: write_sparse_skip_chunk: don't care size 480526784 is not a multiple of the block size 4096
error: write_sparse_skip_chunk: don't care size 212095424 is not a multiple of the block size 4096
Sending sparse 'system' 1/3 (262140 KB)            error: write_sparse_skip_chunk: don't care size 480526784 is not a multiple of the block size 4096
error: write_sparse_skip_chunk: don't care size 480526784 is not a multiple of the block size 4096
OKAY [  7.512s]
Writing 'system'                                   FAILED (remote: 'buffer overreads occured due to invalid sparse header')
fastboot: error: Command failed

C:\Program Files (x86)\Android\android-sdk\platform-tools>

エラーとなりました。

よく調べてみたところ、img.xzのはずなのですが、imgとしてファイルが保存されていたための問題でした。

xzファイルを展開して再チャレンジ

C:\Program Files (x86)\Android\android-sdk\platform-tools>fastboot flash system F:\download\android\xperia-xzs\GSI-Android10\system-quack-arm64-ab-gapps_v222.img
Sending sparse 'system' 1/9 (262140 KB)            OKAY [  7.497s]
Writing 'system'                                   OKAY [  2.023s]
Sending sparse 'system' 2/9 (262140 KB)            OKAY [  7.572s]
Writing 'system'                                   OKAY [  2.050s]
Sending sparse 'system' 3/9 (262140 KB)            OKAY [  7.548s]
Writing 'system'                                   OKAY [  2.035s]
Sending sparse 'system' 4/9 (262140 KB)            OKAY [  7.650s]
Writing 'system'                                   OKAY [  2.101s]
Sending sparse 'system' 5/9 (262140 KB)            OKAY [  7.672s]
Writing 'system'                                   OKAY [  2.102s]
Sending sparse 'system' 6/9 (262140 KB)            OKAY [  7.673s]
Writing 'system'                                   OKAY [  2.060s]
Sending sparse 'system' 7/9 (262140 KB)            OKAY [  7.645s]
Writing 'system'                                   OKAY [  1.984s]
Sending sparse 'system' 8/9 (262140 KB)            OKAY [  7.641s]
Writing 'system'                                   OKAY [  2.068s]
Sending sparse 'system' 9/9 (183260 KB)            OKAY [  5.354s]
Writing 'system'                                   OKAY [  1.434s]
Finished. Total time: 91.779s

C:\Program Files (x86)\Android\android-sdk\platform-tools>

今度は成功です。

再起動します。

C:\Program Files (x86)\Android\android-sdk\platform-tools>fastboot reboot
Rebooting                                          OKAY [  0.002s]
Finished. Total time: 0.003s

C:\Program Files (x86)\Android\android-sdk\platform-tools>

で・・・Android 10で起動しました。

続いて、Android 11のGSIが使えるのか確認。

「fastboot -w」でフォーマット

C:\Program Files (x86)\Android\android-sdk\platform-tools>fastboot devices
BH9011Gxxx      fastboot

C:\Program Files (x86)\Android\android-sdk\platform-tools>fastboot -w
Erasing 'userdata'                                 OKAY [  1.073s]
mke2fs 1.45.4 (23-Sep-2019)
Creating filesystem with 13089792 4k blocks and 3276800 inodes
Filesystem UUID: 4150c0de-0b17-11ec-9cae-af9c3c428626
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424

Allocating group tables: done
Writing inode tables: done
Creating journal (65536 blocks): done
Writing superblocks and filesystem accounting information: done

Sending 'userdata' (4396 KB)                       OKAY [  0.156s]
Writing 'userdata'                                 OKAY [  0.061s]
Erasing 'cache'                                    OKAY [  0.030s]
mke2fs 1.45.4 (23-Sep-2019)
Creating filesystem with 65536 4k blocks and 65536 inodes
Filesystem UUID: 41a1c326-0b17-11ec-a365-bd86ad12ab05
Superblock backups stored on blocks:
        32768

Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

Sending 'cache' (120 KB)                           OKAY [  0.022s]
Writing 'cache'                                    OKAY [  0.024s]
Finished. Total time: 1.819s

C:\Program Files (x86)\Android\android-sdk\platform-tools>

続いてGSIをsystem領域に書き込みます。

C:\Program Files (x86)\Android\android-sdk\platform-tools>fastboot flash system F:\download\android\xperia-xzs\GSI-Android11\system-roar-arm-ab-gogapps_v312.img
Sending sparse 'system' 1/6 (262140 KB)            OKAY [  7.562s]
Writing 'system'                                   OKAY [  1.975s]
Sending sparse 'system' 2/6 (262140 KB)            OKAY [  7.591s]
Writing 'system'                                   OKAY [  2.083s]
Sending sparse 'system' 3/6 (262140 KB)            OKAY [  7.653s]
Writing 'system'                                   OKAY [  2.028s]
Sending sparse 'system' 4/6 (262140 KB)            OKAY [  7.713s]
Writing 'system'                                   OKAY [  2.085s]
Sending sparse 'system' 5/6 (262140 KB)            OKAY [  7.679s]
Writing 'system'                                   OKAY [  2.018s]
Sending sparse 'system' 6/6 (243672 KB)            OKAY [  7.158s]
Writing 'system'                                   OKAY [  1.923s]
Finished. Total time: 61.099s

C:\Program Files (x86)\Android\android-sdk\platform-tools>

再起動

C:\Program Files (x86)\Android\android-sdk\platform-tools>fastboot reboot
Rebooting                                          OKAY [  0.010s]
Finished. Total time: 0.013s

C:\Program Files (x86)\Android\android-sdk\platform-tools>

Xperiaロゴが出たあと、電源が切れ、再びfastbootモードになってしまいました。

今度は省略したところも全て再実行

C:\Program Files (x86)\Android\android-sdk\platform-tools>fastboot -w
Erasing ‘userdata’ OKAY [ 1.073s]
mke2fs 1.45.4 (23-Sep-2019)
Creating filesystem with 13089792 4k blocks and 3276800 inodes
Filesystem UUID: 4150c0de-0b17-11ec-9cae-af9c3c428626
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424

Allocating group tables: done
Writing inode tables: done
Creating journal (65536 blocks): done
Writing superblocks and filesystem accounting information: done

Sending ‘userdata’ (4396 KB) OKAY [ 0.156s]
Writing ‘userdata’ OKAY [ 0.061s]
Erasing ‘cache’ OKAY [ 0.030s]
mke2fs 1.45.4 (23-Sep-2019)
Creating filesystem with 65536 4k blocks and 65536 inodes
Filesystem UUID: 41a1c326-0b17-11ec-a365-bd86ad12ab05
Superblock backups stored on blocks:
32768

Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

Sending ‘cache’ (120 KB) OKAY [ 0.022s]
Writing ‘cache’ OKAY [ 0.024s]
Finished. Total time: 1.819s

C:\Program Files (x86)\Android\android-sdk\platform-tools>
C:\Program Files (x86)\Android\android-sdk\platform-tools>fastboot flash system F:\download\android\xperia-xzs\GSI-Android11\system-roar-arm-ab-gogapps_v312.img
Sending sparse ‘system’ 1/6 (262140 KB) OKAY [ 7.562s]
Writing ‘system’ OKAY [ 1.975s]
Sending sparse ‘system’ 2/6 (262140 KB) OKAY [ 7.591s]
Writing ‘system’ OKAY [ 2.083s]
Sending sparse ‘system’ 3/6 (262140 KB) OKAY [ 7.653s]
Writing ‘system’ OKAY [ 2.028s]
Sending sparse ‘system’ 4/6 (262140 KB) OKAY [ 7.713s]
Writing ‘system’ OKAY [ 2.085s]
Sending sparse ‘system’ 5/6 (262140 KB) OKAY [ 7.679s]
Writing ‘system’ OKAY [ 2.018s]
Sending sparse ‘system’ 6/6 (243672 KB) OKAY [ 7.158s]
Writing ‘system’ OKAY [ 1.923s]
Finished. Total time: 61.099s

C:\Program Files (x86)\Android\android-sdk\platform-tools>
C:\Program Files (x86)\Android\android-sdk\platform-tools>fastboot reboot
Rebooting OKAY [ 0.010s]
Finished. Total time: 0.013s

C:\Program Files (x86)\Android\android-sdk\platform-tools>fastboot devices
BH9011G172 fastboot

C:\Program Files (x86)\Android\android-sdk\platform-tools>fastboot -w
Erasing ‘userdata’ OKAY [ 0.722s]
mke2fs 1.45.4 (23-Sep-2019)
Creating filesystem with 13089792 4k blocks and 3276800 inodes
Filesystem UUID: e9ea269a-0b17-11ec-8cba-a17b44c778c4
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424

Allocating group tables: done
Writing inode tables: done
Creating journal (65536 blocks): done
Writing superblocks and filesystem accounting information: done

Sending ‘userdata’ (4396 KB) OKAY [ 0.145s]
Writing ‘userdata’ OKAY [ 0.061s]
Erasing ‘cache’ OKAY [ 0.026s]
mke2fs 1.45.4 (23-Sep-2019)
Creating filesystem with 65536 4k blocks and 65536 inodes
Filesystem UUID: ea381fe4-0b17-11ec-b1f1-f1b13df9e489
Superblock backups stored on blocks:
32768

Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

Sending ‘cache’ (120 KB) OKAY [ 0.023s]
Writing ‘cache’ OKAY [ 0.026s]
Finished. Total time: 1.443s

C:\Program Files (x86)\Android\android-sdk\platform-tools>fastboot flash oem F:\download\android\xperia-xzs\vendor.img
Sending ‘oem’ (248608 KB) OKAY [ 6.746s]
Writing ‘oem’ OKAY [ 1.910s]
Finished. Total time: 8.825s

C:\Program Files (x86)\Android\android-sdk\platform-tools>fastboot flash boot F:\download\android\xperia-xzs\boot.img
Sending ‘boot’ (12368 KB) OKAY [ 0.426s]
Writing ‘boot’ OKAY [ 0.116s]
Finished. Total time: 1.085s

C:\Program Files (x86)\Android\android-sdk\platform-tools>fastboot flash system F:\download\android\xperia-xzs\GSI-Android11\system-roar-arm-ab-gogapps_v312.img
Sending sparse ‘system’ 1/6 (262140 KB) OKAY [ 7.523s]
Writing ‘system’ OKAY [ 2.121s]
Sending sparse ‘system’ 2/6 (262140 KB) OKAY [ 7.584s]
Writing ‘system’ OKAY [ 2.055s]
Sending sparse ‘system’ 3/6 (262140 KB) OKAY [ 7.543s]
Writing ‘system’ OKAY [ 2.071s]
Sending sparse ‘system’ 4/6 (262140 KB) OKAY [ 8.527s]
Writing ‘system’ OKAY [ 2.036s]
Sending sparse ‘system’ 5/6 (262140 KB) OKAY [ 7.556s]
Writing ‘system’ OKAY [ 2.058s]
Sending sparse ‘system’ 6/6 (243672 KB) OKAY [ 7.044s]
Writing ‘system’ OKAY [ 1.945s]
Finished. Total time: 61.023s

C:\Program Files (x86)\Android\android-sdk\platform-tools>fastboot reboot
Rebooting OKAY [ 0.002s]
Finished. Total time: 0.005s

C:\Program Files (x86)\Android\android-sdk\platform-tools>

….やっぱりダメですね。

2021/09/04追記:よく見たらarmイメージを書き込んでいました。arm64じゃん・・・

Google配布のAndroid 12のGSIイメージを書き込めるかもチャレンジ

C:\Program Files (x86)\Android\android-sdk\platform-tools>fastboot flash system F:\download\android\xperia-xzs\GSI-Android12\system.img
Invalid sparse file format at header magic
Sending sparse 'system' 1/10 (262104 KB)           OKAY [  7.717s]
Writing 'system'                                   OKAY [  2.124s]
Sending sparse 'system' 2/10 (262128 KB)           OKAY [  7.544s]
Writing 'system'                                   OKAY [  2.070s]
Sending sparse 'system' 3/10 (262112 KB)           OKAY [  7.527s]
Writing 'system'                                   OKAY [  2.053s]
Sending sparse 'system' 4/10 (262128 KB)           OKAY [  7.672s]
Writing 'system'                                   OKAY [  2.073s]
Sending sparse 'system' 5/10 (262124 KB)           OKAY [  7.563s]
Writing 'system'                                   OKAY [  2.073s]
Sending sparse 'system' 6/10 (262124 KB)           OKAY [  7.524s]
Writing 'system'                                   OKAY [  2.021s]
Sending sparse 'system' 7/10 (262116 KB)           OKAY [  7.516s]
Writing 'system'                                   OKAY [  2.044s]
Sending sparse 'system' 8/10 (262084 KB)           OKAY [  7.550s]
Writing 'system'                                   OKAY [  2.147s]
Sending sparse 'system' 9/10 (262128 KB)           OKAY [  7.798s]
Writing 'system'                                   OKAY [  2.051s]
Sending sparse 'system' 10/10 (126492 KB)          OKAY [  3.675s]
Writing 'system'                                   OKAY [  6.845s]
Finished. Total time: 104.423s

C:\Program Files (x86)\Android\android-sdk\platform-tools>fastboot reboot
Rebooting                                          OKAY [  0.003s]
Finished. Total time: 0.007s

C:\Program Files (x86)\Android\android-sdk\platform-tools>

SONYロゴのままハングアップ。電源ボタン長押しでのoffも出来なくなりました。

ということで、Xperia XZsのfake GSIで使えるのはAndroid 10のみということですね。


TWRPを書き込めるか確認:twrp-q-V1.img

fastbootモードにしてからrecovery領域に書き込んだ。

C:\Program Files (x86)\Android\android-sdk\platform-tools>fastboot flash recovery F:\download\android\xperia-xzs\twrp-q-V1.img
Sending 'recovery' (20056 KB)                      OKAY [  0.706s]
Writing 'recovery'                                 OKAY [  0.158s]
Finished. Total time: 1.418s

C:\Program Files (x86)\Android\android-sdk\platform-tools>

Androidが起動してからadb reboot recoveryでTWRPが起動することを確認

C:\Program Files (x86)\Android\android-sdk\platform-tools>adb reboot recovery

C:\Program Files (x86)\Android\android-sdk\platform-tools>

なお、ボリューム↓+電源ボタンで起動してもTWRPが起動する。

Andy Yan’s personal builds // GSI にあるLineageOS 17.1のテストと、GAppが書き込めるか確認

きちんと書き込めて、TWRP経由でNikGAppsのNikGapps-stock-arm64-10-20210815-signed.zipを書き込み、Lineage OS 17.1上でGappsが使えることを確認しました。


Android 11 Custom Rom for the Xperia XZs に下記のAndroid11を試した、という話が書かれていた。
 Pixel Experience Plus and non-Plus
 Corvus OS
 Havoc OS

開発者向け資料のGeneric System Imageを確認すると、/system/etc/ld.config.数字.txt 内の[vendor]セクションで「namespace.default.isolated=true」となっていれば、いいらしい。

Vendor Native Development Kit(VNDK)のバージョンは 下記の様に26~29 で定義されていた。

keyaki:/ $ ls -l /system/etc/ld*
-rw-r--r-- 1 root root 34755 2020-08-06 05:16 /system/etc/ld.config.26.txt
-rw-r--r-- 1 root root 39324 2020-08-06 05:16 /system/etc/ld.config.27.txt
-rw-r--r-- 1 root root 39844 2020-08-06 05:16 /system/etc/ld.config.28.txt
-rw-r--r-- 1 root root 40252 2020-08-06 05:16 /system/etc/ld.config.29.txt
-rw-r--r-- 1 root root 27897 2020-08-06 05:16 /system/etc/ld.config.vndk_lite.txt
keyaki:/ $

一番新しい 29 というのはAndroid 10ということらしい。このため、少なくともAndroid 10のGSIは使える、ということになる。

それ以降のバージョンを使えるかを /system/etc/ld.config.29.txt の該当部分を確認すると下記のようになっていた。

<略>
[vendor]
additional.namespaces = runtime,system,vndk

###############################################################################
# "default" namespace
#
# This is the default linker namespace for a vendor process (a process started
# from /vendor/bin/*). The main executable and the libs under /vendor/lib[64]
# are loaded directly into this namespace. However, other libs under the system
# partition (VNDK and LLNDK libraries) are not loaded here but from the
# separate namespace 'system'. The delegation to the system namespace is done
# via the 'namespace.default.link.system.shared_libs' property below.
#
# '#VNDK27#' TAG is only for building ld.config.27.txt for backward
# compatibility. (TODO:b/123390078) Move them to a separate file.
###############################################################################
namespace.default.isolated = true
namespace.default.visible = true
<略>

namespace.default.isolated = true となっているので、使えてもおかしくはないはず、ということになりそうだ。

次に、こちらでは Phhusson’s AOSP で試したが、動いたとしているGSIは Pixel Experience Plus and non-Plus, Corvus OS, Havoc OSとの差を考察してみる。

Pixel Experience Plus and non-Plus はPhhusson’s AOSPをベースとしているが配布イメージに vndkliteとついているバージョンがある。


Corvus OS にもvndkliteバージョンがある。

Havoc OSにはvndkliteバージョンがない。そして2020/12/30と更新が古い。

違い?と想定されるVNDK Liteについて調べると、開発者向け資料に記載があった。

Android10については今回使用しているvendorイメージがAndroid 10向けに作成したものなのでVNDKイメージが使用できているが、それ以外については、元々はXperia XZsはAndroid 8.xデバイスなのでVNDK Lite構成でないと動かない、ということではないか、という仮説を立てた。

はたして?

GoProのような形状のアクションカメラ スペック表

Aliexpressで見かける4KとかサポートしているGo Proみたいな形状をしたアクションカメラをリストアップしてみました。

先日秋葉で販売が確認された「4K対応/無線LAN搭載で実売9,980円のアクションカメラが販売中」は、EKEN H9です。

スペック表で埋まってない項目は確定した情報が確認できなかったところです。