目次: ゲーム
Switch 2の抽選4回目で当選してました。わーい。今回も落選だった場合は抽選5回目となるかと思いきや、今までのように次の抽選に自動移行するのはやめるらしいです。生産が追いついてきたのでしょうか?
抽選販売といえばCOVID-19のときSHARPのマスク購入抽選を申し込みましたが、全く当選せず流行が終わったことを思い出しますね。2020年とかマスクが超余ってる時代になっても、ずっと当選通知が送られてきていました。高いのもあって結局1回しか買わなかった、ごめんね……。
この記事にコメントする
目次: Linux
何か訳があってLinuxのTHP(Transparent HugePages)を一時的に無効にしたいときの方法をメモしておきます。OSを再起動すると元に戻ってしまいます。
# echo never > /sys/kernel/mm/transparent_hugepage/enabled # cat /sys/kernel/mm/transparent_hugepage/enabled always madvise [never] # echo never > /sys/kernel/mm/transparent_hugepage/defrag # cat /sys/kernel/mm/transparent_hugepage/defrag always defer defer+madvise madvise [never]
やり方は/sys/kernel/mm/transparent_hugepageにあるenabledやdefragに値neverを書き込むことで無効化できます。有効化するには値alwaysやmadviseを書き込めば良いです。とても簡単でありがたいです。
# echo 0 > /sys/kernel/mm/transparent_hugepage/khugepaged/defrag # cat /sys/kernel/mm/transparent_hugepage/khugepaged/defrag 0
THP関連の機能はkhugepagedもいます。アイドル状態のときに動作して、まとめられそうなメモリをTHPに置き換えていくカーネルスレッドです。この機能はkhugepaged/defragで有効/無効を切り替えることができます。
この記事にコメントする
目次: Linux
以前(2022年2月2日の日記参照)、ARMやAArch64系のQEMUで動作確認するためのイメージとしてRaspberry Pi OS Liteを使いました。正しい方法ではありませんがとりあえず動作するので便利でした。
しかしRaspberry Pi OSの実装が変わって、デフォルトユーザー(ユーザー名: pi、パスワード: raspberry)がなくなってしまいました(参考: Changing the default login user from pi - Raspberry Pi Forums)。QEMUで起動してもログインできなくて困ってしまいました。
素直に別のrootfs(buildrootなど)を使うのも一つの方法ですが、今回はRaspberry Pi OS Liteのイメージを書き換えて無理やりパスワードを設定する方法をご紹介したいと思います。
ざっくりいうとこんな操作をします。この操作はRaspberry Pi OS Liteだけでなく他のOSイメージにも応用できるので知っておくと割と便利です。
OSイメージをダウンロードします。公式サイト(Operating system images - Raspberry Pi)からダウンロードできます。パーティションの開始位置を知るためにfdiskコマンドを使います。
$ xz -d 2025-05-13-raspios-bookworm-arm64-lite.img.xz $ /sbin/fdisk 2025-05-13-raspios-bookworm-arm64-lite.img Welcome to fdisk (util-linux 2.40.4). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): p Disk 2025-05-13-raspios-bookworm-arm64-lite.img: 2.57 GiB, 2759852032 bytes, 5390336 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xd9c86127 Device Boot Start End Sectors Size Id Type 2025-05-13-raspios-bookworm-arm64-lite.img1 16384 1064959 1048576 512M c W95 FAT32 (LBA) 2025-05-13-raspios-bookworm-arm64-lite.img2 1064960 5390335 4325376 2.1G 83 Linux
開始位置(セクタ単位)はStartの列に書いてあります。1つ目のパーティションはブート用なので放っておいて、2つ目のパーティションをloopbackファイルシステムでマウントします。オプションoffsetにはパーティションの開始位置(バイト単位)を指定します。開始位置(セクタ単位) * 512 = 1064960 * 512 = 545259520を渡してください。
$ mkdir mntdir $ sudo mount -o loop,offset=545259520 2025-05-13-raspios-bookworm-arm64-lite.img ./mntdir/ $ ls mntdir/ bin boot dev etc home lib lost+found media mnt opt proc root run sbin srv sys tmp usr var
これでRaspberry Pi用ディスクイメージのマウントと読み書きができるようになりました。
まだchrootはできません、もう1つ準備が必要です。x86_64マシン上でAArch64バイナリを実行できるようにqemuをインストールし、イメージ内にコピーします。
$ sudo apt-get install qemu-user-static $ sudo cp /usr/bin/qemu-aarch64-static ./mntdir/bin/
これでchrootの準備ができました。
ルートディレクトリにchrootすると、Lite OS上で操作しているときとほぼ同様にイメージを変更することができます。どうやらユーザーpiが元々存在しているようなので、passwdコマンドでpiユーザーのパスワードを好きなものに変えましょう。新規にユーザーを追加しても良いと思います。
$ sudo chroot ./mntdir/ # passwd pi New password: pi Retype new password: pi passwd: password updated successfully $ sudo umount ./mntdir/
このとき実行しているのは全てAArch64用のバイナリです。コンピュータがわかる人ほど不思議に思うんじゃないでしょうか。x86_64上で他アーキテクチャのバイナリを実行する仕組みは、昔に簡単な紹介(2024年8月6日の日記参照)をしていますので、興味があればご覧ください。
QEMUで動作確認しましょう。linuxのビルド方法は以前の日記(2022年2月2日の日記参照)などをご参照ください。
$ qemu-system-aarch64 \
-machine virt \
-cpu cortex-a53
-smp 1 \ \
-m 4G \
-serial stdio \
-kernel arch/arm64/boot/Image \
-append "rw root=/dev/vda2" \
-drive file=2025-05-13-raspios-bookworm-arm64-lite.img,format=raw,if=virtio
[ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[ 0.000000] Linux version 6.15.0-next-20250605-00001-g34bdb989e513 (katsuhiro@blackbird) (aarch64-unknown-linux-gnu-gcc (crosstool-NG 1.24.0.501_5bf4485) 11.2.0, GNU ld (crosstool-NG 1.24.0.501_5bf4485) 2.37) #94 SMP PREEMPT Tue Jun 10 01:53:41 JST 2025
[ 0.000000] random: crng init done
[ 0.000000] Machine model: linux,dummy-virt
[ 0.000000] efi: UEFI not found.
[ 0.000000] OF: reserved mem: Reserved memory: No reserved-memory node in the DT
...
[ OK ] Started NetworkManager-dis…Manager Script Dispatcher Service.
[ OK ] Finished NetworkManager-wa…[0m - Network Manager Wait Online.
[ OK ] Reached target network-online.target - Network is Online.
Starting rpc-statd-notify.…- Notify NFS peers of a restart...
Debian GNU/Linux 12 raspberrypi ttyAMA0
My IP address is 10.0.2.15 fec0::a5fc:71ea:fb56:5aee
raspberrypi login: pi
Password: pi
Linux raspberrypi 6.15.0-next-20250605-00001-g34bdb989e513 #94 SMP PREEMPT Tue Jun 10 01:53:41 JST 2025 aarch64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
pi@raspberrypi:~$
ログインできました。良かった。
この記事にコメントする
| < | 2025 | > | ||||
| << | < | 06 | > | >> | ||
| 日 | 月 | 火 | 水 | 木 | 金 | 土 |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | - | - | - | - | - |
25年10月6日
25年10月6日
25年9月29日
25年9月29日
20年8月24日
20年8月24日
16年2月14日
16年2月14日
25年7月20日
25年7月20日
25年7月20日
25年7月20日
25年7月20日
25年7月20日
20年8月16日
20年8月16日
20年8月16日
20年8月16日
24年6月17日
24年6月17日
wiki
Linux JM
Java API
2002年
2003年
2004年
2005年
2006年
2007年
2008年
2009年
2010年
2011年
2012年
2013年
2014年
2015年
2016年
2017年
2018年
2019年
2020年
2021年
2022年
2023年
2024年
2025年
過去日記について
アクセス統計
サーバ一覧
サイトの情報合計:
本日: