コグノスケ


link 未来から過去へ表示(*)  link 過去から未来へ表示

link もっと前
2025年6月7日 >>> 2025年5月25日
link もっと後

2025年6月7日

THPを一時的に無効にする方法

目次: Linux

何か訳があってLinuxのTHP(Transparent HugePages)を一時的に無効にしたいときの方法をメモしておきます。OSを再起動すると元に戻ってしまいます。

THPを一時的に無効にする
# 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を書き込めば良いです。とても簡単でありがたいです。

khugepagedを一時的に無効にする方法
# echo 0 > /sys/kernel/mm/transparent_hugepage/khugepaged/defrag

# cat /sys/kernel/mm/transparent_hugepage/khugepaged/defrag
0

THP関連の機能はkhugepagedもいます。アイドル状態のときに動作して、まとめられそうなメモリをTHPに置き換えていくカーネルスレッドです。この機能はkhugepaged/defragで有効/無効を切り替えることができます。

編集者:すずき(2025/06/12 00:28)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2025年6月6日

新しめのRaspberry Pi OS LiteをQEMUで使う

目次: 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のイメージを書き換えて無理やりパスワードを設定する方法をご紹介したいと思います。

  • OS Liteのイメージをマウント
  • ユーザーモードQEMUをインストール
  • chrootしてパスワード設定

ざっくりいうとこんな操作をします。この操作はRaspberry Pi OS Liteだけでなく他のOSイメージにも応用できるので知っておくと割と便利です。

OS Liteのイメージをマウント

OSイメージをダウンロードします。公式サイト(Operating system images - Raspberry Pi)からダウンロードできます。パーティションの開始位置を知るためにfdiskコマンドを使います。

OSイメージの展開、パーティション位置の確認
$ 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を渡してください。

OSイメージのloopbackマウント
$ 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用ディスクイメージのマウントと読み書きができるようになりました。

ユーザーモードQEMUをインストール

まだchrootはできません、もう1つ準備が必要です。x86_64マシン上でAArch64バイナリを実行できるようにqemuをインストールし、イメージ内にコピーします。

QEMUのインストール
$ sudo apt-get install qemu-user-static

$ sudo cp /usr/bin/qemu-aarch64-static ./mntdir/bin/

これでchrootの準備ができました。

chrootしてパスワード設定

ルートディレクトリにchrootすると、Lite OS上で操作しているときとほぼ同様にイメージを変更することができます。どうやらユーザーpiが元々存在しているようなので、passwdコマンドでpiユーザーのパスワードを好きなものに変えましょう。新規にユーザーを追加しても良いと思います。

chrootしてユーザー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で実行
$ 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/11 00:49)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2025年6月2日

Watchdogを使う

目次: Linux

WatchdogもしくはWatchdog Timerなどと呼ばれますが、システムがハングアップしたときに強制的に再起動する仕組みがあります(SW実装とHW実装があります)。Linuxも対応していますので、試しに使ってみます。

今回はROCK 3Cを使って実験したいと思います。ROCK 3Cの/dev以下を見ると/dev/watchdog0がありますから、HW Watchdogが存在していることがわかります。

Linuxに認識されているWatchdogデバイス確認
$ ls /dev/watchdog*

/dev/watchdog  /dev/watchdog0

デバイスツリーのwatchdogのcompatibleを確認すると"snps,dw-wdt"でした。つまりsnps(= Synopsys社)のWatchdog IPを搭載しています。

Watchdogのcompatible
# cat /proc/device-tree/watchdog@fe600000/compatible

snps,dw-wdt

頭についているdw-はDesignWareの略でしょう。DesignWareはSynopsysが販売/提供しているIPのブランド名です。

インストール&動作確認

準備は簡単でaptなどでwatchdogパッケージをインストールするだけです。環境はDebian GNU/Linux 11 (bullseye)です。

Watchdogサービスインストール
# apt-get install watchdog

インストールしたら設定ファイル/etc/watchdog.confの最後の行にwatchdog-device設定を付け加えて、restartします。

設定ファイル/etc/watchdog.conf

# Check for a running process/daemon by its PID file. For example,
# check if rsyslogd is still running by enabling the following line:

#pidfile                = /var/run/rsyslogd.pid

watchdog-device = /dev/watchdog0
Watchdogサービスrestart
# apt-get restart watchdog

動作確認として、ソフトウェアの動作を完全に停止させて、Watchdogがハードウェア的にリセットを掛けてくれる様子を見ます。ソフトウェアを完全に止める簡単な方法は、Sysrqにcを書き込んでわざとLinuxカーネルをクラッシュさせることでしょう。他の方法でも構いません。

わざとLinuxを止めてWatchdogの動作確認
echo c > /proc/sysrq-trigger

(89秒後に再起動されるはず)

再起動されない場合は設定ファイルの書き方が間違っていると思われます。ありがちな間違いとしては、

  • デバイスファイル名の設定をwatchdog_deviceにしている(正しくはハイフンでwatchdog-device)
  • デバイスファイル名に引用符を付けている(引用符は要らない)

もし変な設定になっていたときはsystemctl status watchdogを見ると、エラーが出ているはずです。

エラーメッセージ例
#### 設定名を間違えたとき(alive=にデバイスファイル名が出ない)

rock-3c watchdog[1398]:  alive=[none] heartbeat=[none] to=root no_act=no force=no


#### デバイスファイル名を間違えたとき

rock-3c watchdog[1376]: cannot open /dev/watchdogeee (errno = 2 = 'No such file or directory')

正しく設定できているとalive=の部分にデバイスファイル名が出ます。

正しく動作しているときのメッセージ例
rock-3c watchdog[1419]:  alive=/dev/watchdog0 heartbeat=[none] to=root no_act=no force=no
rock-3c watchdog[1419]: watchdog now set to 89 seconds
rock-3c watchdog[1419]: hardware watchdog identity: Synopsys DesignWare Watchdog

どのWatchdogデバイスでも必ずそうなるのかはわからないですが、私の環境だと再起動までの秒数と、ハードウェア名(Synopsys DesignWare Watchdog)も出ていました。

編集者:すずき(2025/06/07 16:49)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2025年5月26日

メガネ注文

Newメガネを注文しました。今までどんなメガネかけてたっけ?と気になったので日記から掘り起こしてみました。古いものはいつ買ったのかすら怪しく、詳細も書き残していませんでした。メガネに関心がないことが良くわかりますね……。

  • 2004年3月 オクターボ004(筑波、パリミキ)
  • 2005年7月 999.9(北海道?詳細不明)
  • 2008年12月 AMIPARIS TR-323(西武で買った、東京メガネ?)
  • 2020年11月 増永眼鏡 GMS-831(品川、OPTIQUE PARIS MIKI)
  • 2025年5月 増永眼鏡 GREENWICH(品川、OPTIQUE PARIS MIKI)

フォーナインズ(999.9)の前にもメガネは持っていたのですが、記録がなくて何もわかりません。パリミキに行って購入記録を聞いてみたら上記のような感じでした。20年前でも残ってるんですね。

編集者:すずき(2025/06/08 23:26)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2025年5月25日

JTSA Unlimited大会参加2025

目次: 射的

JTSA Unlimitedの大会に参加しました。

「木」ステージが大失敗、「水」もダメダメで、高速ステージの「土」もいまいち振るわず、結果は75.69秒(前回は76.75秒)でした(総合82位/113人、LM 12位/21人)。70秒台前半くらいを出したかったけど無念ですね。


JTSA Unlimited練習会+大会の記録

練習会の記録を見ると自己ベストは65.81秒ですが、その後はほとんど60秒台が出ないところをみると、75〜70秒くらいが実力と思われます。最近はあまり上達している感じがしません。そろそろ週1練習の限界かもしれませんが、今後もゆるゆると続けていきます。

編集者:すずき(2025/05/25 21:53)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link もっと前
2025年6月7日 >>> 2025年5月25日
link もっと後

管理用メニュー

link 記事を新規作成

<2025>
<<<06>>>
1234567
891011121314
15161718192021
22232425262728
2930-----

最近のコメント5件

  • link 25年7月20日
    すずきさん (07/30 00:10)
    「ギクシャクするのは減速時の2速シフトダウ...」
  • link 25年7月20日
    hdkさん (07/29 07:38)
    「2速発進でギクシャクするんですか? 面白...」
  • link 25年7月20日
    すずきさん (07/28 23:16)
    「なるほど。レガシィB4のATはDレンジで...」
  • link 25年7月20日
    hdkさん (07/28 21:28)
    「MT車でも1速はギクシャクするので完全に...」
  • link 25年7月20日
    すずきさん (07/28 00:44)
    「何日か乗ってみて気づいたんですが、Dレン...」

最近の記事20件

  • link 23年5月15日
    すずき (07/30 01:37)
    「[車 - まとめリンク] 目次: 車三菱FTOの話。群馬県へのドライブ1群馬県へのドライブ2将来車を買い替えるとしたら?FTO...」
  • link 25年7月25日
    すずき (07/30 01:36)
    「[電装系が微妙なジャガーさん] 目次: 車車を買い替えてから1週間くらい経ちました。通勤路以外は幹線道路や高速をメインにしばし...」
  • link 19年9月1日
    すずき (07/30 01:36)
    「[カーナビを買いました] 目次: 車一昨年にカーナビが壊れて(2017年9月3日の日記参照)以来、カーナビを使わず過ごしていま...」
  • link 25年7月20日
    すずき (07/22 01:56)
    「[ジャガーXE Sを買いました] 目次: 車車を買い替えました。ジャガーXE Sです。マイナー車すぎて会社の人たちもあまり知ら...」
  • link 24年7月7日
    すずき (07/22 00:00)
    「[PC - まとめリンク] 目次: PC一覧が欲しくなったので作りました。 スピーカーGX-D90故障ノートPCの内蔵サウンド...」
  • link 21年4月16日
    すずき (07/21 23:59)
    「[ドキュメントスキャナーで書類を電子化] 目次: PC我が家の本棚は広い方ではないのに、ほとんど参照しない書類が幅を取っていて...」
  • link 21年4月6日
    すずき (07/21 23:58)
    「[ディスプレイアーム] 目次: PC机の奥行きが60cmのためか、ディスプレイの足がキーボードとぶつかって若干邪魔なのと、前か...」
  • link 21年2月27日
    すずき (07/21 23:56)
    「[新キーボードMajestouch購入] 目次: PC先日の在宅勤務環境改善(2021年2月12日の日記参照)にて、デュアルデ...」
  • link 21年2月28日
    すずき (07/21 23:55)
    「[JIS配列キーボードとOADG配列キーボード] 目次: PC今まで、いわゆる日本語配列のキー配列のことを漠然とJIS配列と呼...」
  • link 21年3月6日
    すずき (07/21 23:54)
    「[気に入るマウスはどれ?] 目次: PC手に合うワイヤレスマウスを探し続け、高級製品、小さい製品、お手ごろ製品と買いまくり、一...」
  • link 21年3月7日
    すずき (07/21 23:53)
    「[電源タップの雷ガード] 目次: PC在宅勤務環境を整えようと、電源タップを物色していました。電源タップを見ていると大体3つに...」
  • link 21年2月12日
    すずき (07/21 23:50)
    「[在宅勤務環境改善] 目次: PCCOVID-19が流行し始めた昨年2月ころ、在宅勤務が主となりました。当時の気持ちを正直に言...」
  • link 19年8月25日
    すずき (07/21 23:38)
    「[Superluxの安くて良いヘッドフォン] 目次: PCAKG K240に似ていることで有名(?)なSuperlux HD6...」
  • link 20年9月20日
    すずき (07/21 23:37)
    「[ヘッドフォンをaudio-technicaからSENNHEISERへ] 目次: PC以前(2012年11月8日の日記参照)買...」
  • link 21年2月16日
    すずき (07/21 23:36)
    「[一般のご家庭にPCは何台ある?] 目次: PC内閣府の「主要耐久消費財等の普及率」「主要耐久消費財の保有数量の推移」(リンク...」
  • link 21年2月14日
    すずき (07/21 23:36)
    「[USB Type-C DisplayPort Alternate mode] 目次: PC現在使っているThinkPad E...」
  • link 21年12月28日
    すずき (07/21 23:31)
    「[ゲーム - まとめリンク] 目次: ゲーム一覧が欲しくなったので作りました。Nintendo DSを買ったパネルでポンDS最...」
  • link 20年8月16日
    すずき (07/21 23:30)
    「[The Hunter: Call of the Wild] 目次: ゲームお盆休みの間、行くところも特にないのでThe Hu...」
  • link 21年5月22日
    すずき (07/20 13:42)
    「[ベンチマーク - まとめリンク] 目次: ベンチマーク一覧が欲しくなったので作りました。USB HDD RAIDのベンチマー...」
  • link 25年7月18日
    すずき (07/20 13:42)
    「[Hello, World!のサイズを削る] 目次: ベンチマーク以前(2025年2月7日の日記参照)100万回のHello,...」
link もっとみる

こんてんつ

open/close wiki
open/close Linux JM
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 2024年
open/close 2025年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報

合計:  counter total
本日:  counter today

link About www.katsuster.net
RDFファイル RSS 1.0

最終更新: 07/30 01:37