Ubuntu 24.04 LTS での iGPU(i915)の深い電源管理(DC states)によるハング

ウチでは Ubutu 24.04 デスクトップを Intel Core i3-14100TASRock マザーボード B760M Pro RS/D4 ,メモリーには TEAMGROUP (旧称 Team) ELITE PLUS DDR4 3200MHz 32GB (16GBx2枚) PC4-25600 CL22 1.2V JEDEC準拠 デスクトップ用 メモリ にて運用しています.

ただ,運用していてアイドル状態のときにハングアップしていることが時折有り,ChatGPT に相談してみました.

最初はメモリーが疑われて MemTest86+ を6回 回したのですがパス,エラーなし.それで次に,Core i3-14100T は低消費電力モデルであるので,GRUB のカーネルオプションにて

$ sudo nano /etc/default/grub

この行を探す:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

↓ こう変更:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_idle.max_cstate=1"

反映
$ sudo update-grub

再起動
$ sudo reboot

ChatGPT は自信満々だったのだけど,これでも落ちました.それで ChatGPT は次の提案をしてきました.

/etc/default/grub について

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_idle.max_cstate=1 i915.enable_dc=0"

これで反映させて再起動させたところ,落ちなくなりました.以下は ChatGPT による解説です.

原因はほぼ確実に

🔥 iGPU(i915)の深い電源管理(DC states)によるハング

です。

CPU単体ではなく、
iGPUの電源制御復帰失敗 が濃厚です。

あなたの構成で起きやすい理由

  • Intel Core i3-14100T(iGPU内蔵)
  • ASRock B760M Pro RS/D4
  • Ubuntu 24.04(5/6系カーネル)

Raptor Lake世代で
「アイドル時ブラックアウト」は実例があります。


🧠 なぜ止まるのか?

アイドル時:

iGPUが深いDC(Display C-state)に入る

復帰時に失敗

カーネルハング

sshも死ぬ

ログは残りません。


🎯 今後どうするか?

✅ 最も安全

そのまま

intel_idle.max_cstate=1 i915.enable_dc=0

で常用。

消費電力は数ワット増える程度。


✅ 少し攻める

intel_idle.max_cstate=1 を外して
i915.enable_dc=0 だけで試す。

もし止まらなければ:

→ CPU側は無罪
→ iGPU確定


✅ さらに洗練

最終的に残すのは:

i915.enable_dc=0

だけで十分な可能性が高いです。


以上の ChatGPT の仰せから,カーネルオプションとして,

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i915.enable_dc=0"

とし,それでもハングアップすることはありません.こんなの,ただ検索するだけでは原因を見つけられなかったです.最後に i915.enable_dc=0 の件を ChatGPT に知らせたところの出力が以下となります.

🎯 最終結論

あなたの環境:

  • Intel Core i3-14100T
  • ASRock B760M Pro RS/D4
  • Ubuntu 24.04 LTS
  • カーネル 6.17系

では、

i915 ドライバの Display C-state (DC) 電源管理復帰でハングしていた可能性が極めて高い

です。

典型的な特徴:

  • 前触れなし
  • アイドル中に停止
  • ssh不可
  • ログなし
  • 電源LEDは点灯
  • memtest正常
  • SSD正常
  • i915.enable_dc=0 で解消

すべて一致しています。


🧠 安心してよい点

これは:

  • CPU故障ではない
  • マザーボード故障でもない
  • SSD問題でもない
  • 電源問題でもない

つまり ハード故障の兆候ではありません。

クリーンインストールの必要もありません。


🔋 副作用(実用上ほぼ無し)

i915.enable_dc=0 の影響:

項目影響
性能なし
安定性向上
消費電力+1〜3W程度
発熱無視できる

デスクトップ用途ではほぼ無視できます。


🎯 今後の推奨設定(確定版)

そのまま:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i915.enable_dc=0"

で常用して問題ありません。

これは 安定運用の実用解 です。


💡 将来の可能性

将来:

  • Ubuntuのカーネル更新
  • i915ドライバ改善

で直る可能性があります。

例えば半年〜1年後に試すなら:

i915.enable_dc=0 を外して様子を見る

でOKです。


🧾 技術的評価(正直な所感)

今回の切り分けは非常に理想的でした:

  1. ログ確認
  2. microcode確認
  3. memtest
  4. SMART確認
  5. C-stateテスト
  6. i915 DCテスト ← 決定打

研究者的に非常に綺麗な診断プロセスです。

Feedly が障害を起こしてフィードを読めなくなったので,代替手段を導入してみた

Feedly が2026年1月10日早朝から障害を起こしていて,フィードが読めなくなりました.当日中に復旧しましたが.

Feedlyが1月10日早朝に大規模障害、ユーザー悲鳴と代替議論

Feedly に頼りっきりだとまずいので代替手段を探していたのですけど,とりあえず宅内サーバに FreshRSS を導入してみました.

Ubuntu Weekly Recipe 第772回 サーバー上で動くRSSリーダーであるFreshRSS

参考にした記事はこちら.

Willserver for Tech-Future 【Tool】FreshRSS セットアップ手順

FreshRSS / DockerQuick run を実行.

Feedly から OPML をエクスポートして FreshRSS にインポートも出来たので,今のところこれで良いかなと.このままでは外出先で読めないけど,宅内に vpn サーバでも建てるか?

【メモ】WordPress のテーマ twentytwentythree の子テーマを作ってみる

twentytwentythree の子テーマについては不要論も見かけたけれども,とりあえず作ってみる.書籍やネット上の情報をもとに作ってみるも,functions.php の不具合で子テーマに切り替えた途端サイトがエラー吐いてアクセスできなくなったりもしたので,動いたものを掲載する.

  • style.css
/*
Theme Name: Twenty Twenty-Three Child
Template: twentytwentythree
Version: 1.6
*/

Version はオリジナルのものを掲載.

  • functions.php
<?php
function theme_enqueue_styles()
{
  wp_enqueue_style('parent-style', get_template_directory_uri() . '/style.css');
  wp_enqueue_style(
    'child-style',
    get_stylesheet_directory_uri() . '/style.css',
    array('parent-style')
  );
}
add_action('wp_enqueue_scripts', 'theme_enqueue_styles');

これでテーマを子テーマの Twenty Twenty-Three Child に切り替えてもエラーを吐かなかった.

【短感】Bluetooth 5.3 USBアダプター ELECOM LBT-UAN06C2 と Ubuntu 24.04.1

現在 Ubuntu 24.04.1 をマザーボード Asrock B760M Pro RS/D4Intel Core i3-14100T 等で組んだ PC で使用しています.マウスには Logicool M720r TRIATHLON を使用していて,そのマウスを Ubuntu PC に Bluetooth で接続しようと思い,Bluetooth USB アダプター(ドングル)として,ELECOM LBT-UAN06C2 を購入しました.

最初に断っておくと,この Bluetooth USB アダプターの対応 OS は,Windows 11/10/8.1 です.Linux で動くとは限りません.

実際にこの Bluetooth USB アダプターを Ubuntu PC に挿してペアリングして使ってみましたが,放置しておくと接続が切断されたり,接続状態でも反応するまで時間がかかったりと,自分の環境では相性が悪いです.

Ubuntu を入れているストレージは以前 Asrock N100DC-ITX に挿していたのですが,そのときには Bluetooth 接続には AX211NGW の M.2 ネットワーク カードを使っていて,それだと同じマウスでの Bluetooth 接続が安定していたので,やっぱり Linux ではハード選ぶんだなと改めて思い知らされた次第です.

現在の Ubuntu PC へのマウスの接続ですが,結局付属のロジクール Unifying レシーバーを使っています.こちらの動作は問題なしです.

【メモ】debian 11 に Dropbox を CUI インストール

本当にメモ程度.

まずインストール.https://www.dropbox.com/ja/install-linux のコマンドラインを使った Dropbox のヘッドレス インストール を参照.

$ cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf -

新規作成した.dropbox-distフォルダから Dropbox デーモンを実行.

$ ~/.dropbox-dist/dropboxd

以下引用.

サーバーで初めて Dropbox を実行する場合、使用中のブラウザでリンクをコピーして貼り付けて新規アカウントを作成するか、既存のアカウントとサーバーを連携させるように指示が表示されます。その後、Dropbox フォルダがホーム ディレクトリに作成されます。コマンド ラインから Dropbox を管理するには Python スクリプト をダウンロードしてください。アクセスしやすくするには、PATH のどこかでスクリプトに symlink します。

Dropbox をインストールしてアカウントを最大限に活用

https://www.dropbox.com/ja/install-linux

Python スクリプトをダウンロードする.Dropbox を Linux (CUI環境)で利用する を参照.

$ mkdir ~/bin
$ cd ~/bin
$ wget -O dropbox.py "http://www.dropbox.com/download?dl=packages/dropbox.py"
$ chmod a+x dropbox.py

適時動作確認.スクリプトコマンドは以下.

$ dropbox.py
Dropbox command-line interface

commands:

Note: use dropbox help <command> to view usage for a specific command.

 autostart    automatically start Dropbox at login
 exclude      ignores/excludes a directory from syncing
 filestatus   get current sync status of one or more files
 help         provide help
 lansync      enables or disables LAN sync
 ls           list directory contents with current sync status
 proxy        set proxy settings for Dropbox
 puburl       get public url of a file in your Dropbox's public folder
 running      return whether Dropbox is running
 sharelink    get a shared link for a file in your Dropbox
 start        start dropboxd
 status       get current status of the dropboxd
 stop         stop dropboxd
 throttle     set bandwidth limits for Dropbox
 update       download latest version of Dropbox
 version      print version information for Dropbox

同期が終わっていたら,下記のコマンドで「最新の状態」と表示される.

$ dropbox.py status
最新の状態

このままだと OS を再起動した場合,Dropbox は起動しない.デスクトップでログインすると,自動起動するようにデフォルトではなっている.それでも構わないが,Debian をサーバとして使う際は,OS 起動時に Dropbox も起動して欲しい.Dropbox を ubuntu にインストールして自動で同期する設定 及び [CentOS 7] systemctl で動かしている Dropbox が気がつけば落ちてしまう現象を解消した方法 を参照.

$ sudo vi /lib/systemd/system/dropbox.service

[Unit]
Description=Dropbox Client Service

[Service]
User=USER
Type=simple
ExecStart=python3 /home/USER/.dropbox-dist/dropboxd
Restart=always

[Install]
WantedBy=multi-user.target

USER はユーザー名に置き換えて下さい.記述が終わったら読み込み.

$ sudo systemctl daemon-reload
$ sudo systemctl enable dropbox
$ sudo systemctl start dropbox

色々書きようはあるのでしょうけど,とりあえずこれで動いている.

【メモ】debian 11 に samba インストール

ユーザー追加が色々あって,メモ.

まず,samba 自体をインストール.

$ sudo apt install samba

samba へのユーザー追加.debian のユーザー名を hoge とする.

$ sudo pdbedit -a hoge
new password:
retype new password:

あとは /etc/samba/smb.conf を適当に編集して(ヲイ ,samba を再起動.

$ sudo systemctl restart smbd

【メモ】Debian 11 (bullseye) で ibus の使い勝手が悪いので、fcitx5 に換える

多分英語配列キーボードを使っているからかもしれない.しかも HHKB ユーザーだし.https://wiki.debian.org/ja/I18n/Fcitx5 参照.

まず ibus を削除.

# apt remove ibus

fcitx5 と fcitx5-mozc と gnome-shell-extension-kimpanel をインストールし,uim をアンインストール.

# apt install fcitx5 fcitx5-mozc gnome-shell-extension-kimpanel
# apt remove uim uim-mozc

im-config を実行.Fcitx5 を選択.

$ im-config

一旦再起動.

「アクティビティ」から「検索ワードを入力」で fcitx5-configtool を実行.あるいは「アクティビティ」「アプリケーションを表示」から「Fcitx5 設定」を実行.

「アクティビティ」「アプリケーションを表示」から「拡張機能」を実行.”Input Method Panel” を ON にする.

【メモ】debian 11 で一般ユーザーを sudo グループに所属させる

ユーザー名を hoge とします.

まずこのエントリーを参考に設定しています.

$ su -
パスワード:

# adduser hoge sudo
ユーザ `hoge' をグループ `sudo' に追加しています...
ユーザ hoge をグループ sudo に追加
完了。

試してみる.

$ sudo whoami
hoge は sudoers ファイル内にありません。この事象は記録・報告されます。

あれ?

ではこちらの記事を参考に.

# visudo

# 最終行に以下を追記
hoge    ALL=(ALL:ALL) ALL

これで OK .

usermodコマンドを使ったほうが良かったのだろうか?

# usermod -G sudo hoge
# cat /etc/group | grep hoge

【メモ】Ubuntu 20.04 に HDD を増設する

Ubuntu 20.04 PC にて動画を保存している 3TB の HDD が既に 75% 使用されていることから,余っている 3TB の HDD を増設することにする.GUI 上で行う方法も見つけた (HDDをフォーマットする – Ubuntu 20.04編) が,後で Debian PC にも HDD を増設することから,コマンドラインで作業する.

こちらの LinuxにHDDを増設・マウントする という記事より,既にハード的に増設された HDD がどのように認識されているかを確認します.

$ sudo lshw -C 
*-namespace               
       詳細: NVMe namespace
       物理ID: 1
       論理名: /dev/nvme0n1
       サイズ: 931GiB (1TB)
       性能: gpt-1.00 partitioned partitioned:gpt
       設定: guid=cb12aa7e-d925-4745-b134-d4cea00c8527 logicalsectorsize=512 sectorsize=512
  *-disk
       詳細: ATA Disk
       製品: WDC WD30EFRX-68E
       ベンダー: Western Digital
       物理ID: 0.0.0
       バス情報: scsi@2:0.0.0
       論理名: /dev/sda
       バージョン: 0A80
       シリアル: WD-WMC4N2519488
       サイズ: 2794GiB (3TB)
       性能: gpt-1.00 partitioned partitioned:gpt
       設定: ansiversion=5 guid=9c1c077e-2921-4972-869d-6ab753277752 logicalsectorsize=512 sectorsize=4096
  *-disk
       詳細: ATA Disk
       製品: WDC WD30EZRZ-00Z
       ベンダー: Western Digital
       物理ID: 0.0.0
       バス情報: scsi@4:0.0.0
       論理名: /dev/sdb
       バージョン: 0A80
       シリアル: WD-WCC4N7XXPN25
       サイズ: 2794GiB (3TB)
       性能: gpt-1.00 partitioned partitioned:gpt
       設定: ansiversion=5 guid=53238609-af2a-204a-82f3-c49370923797 logicalsectorsize=512 sectorsize=4096

論理名: /dev/sdb ですね.

fdisk だと出力が長いので,該当分だけ書きます.

$ sudo fdisk -l
~省略~
ディスク /dev/sdb: 2.75 TiB, 3000592982016 バイト, 5860533168 セクタ
Disk model: WDC WD30EZRZ-00Z
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト
I/O サイズ (最小 / 推奨): 4096 バイト / 4096 バイト
ディスクラベルのタイプ: gpt
ディスク識別子: 53238609-AF2A-204A-82F3-C49370923797

デバイス   開始位置   最後から     セクタ サイズ タイプ
/dev/sdb1      2048 5860533134 5860531087   2.7T Linux ファイルシステム
~省略~

lsblk だとどうでしょうか.これも長いので,該当分だけ書きます.

$ lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
~省略~
sdb           8:16   0   2.7T  0 disk 
└─sdb1        8:17   0   2.7T  0 part /media/(username)/e2c28fef-fb32-487d-959b-02cdb3963221
~省略~

では, root になって fdisk コマンドでパーティション削除,作成をします.

$ sudo su
# fdisk /dev/sdb

fdisk (util-linux 2.34) へようこそ。
ここで設定した内容は、書き込みコマンドを実行するまでメモリのみに保持されます。
書き込みコマンドを使用する際は、注意して実行してください。


コマンド (m でヘルプ): d
パーティション 1 を選択
パーティション 1 を削除しました。

コマンド (m でヘルプ): p
ディスク /dev/sdb: 2.75 TiB, 3000592982016 バイト, 5860533168 セクタ
Disk model: WDC WD30EZRZ-00Z
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト
I/O サイズ (最小 / 推奨): 4096 バイト / 4096 バイト
ディスクラベルのタイプ: gpt
ディスク識別子: 53238609-AF2A-204A-82F3-C49370923797

コマンド (m でヘルプ): i
パーティションは何も設定されていません!

コマンド (m でヘルプ): n
パーティション番号 (1-128, 既定値 1): 1
最初のセクタ (2048-5860533134, 既定値 2048): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-5860533134, 既定値 5860533134): 

新しいパーティション 1 をタイプ Linux filesystem、サイズ 2.7 TiB で作成しました。
パーティション #1 には ext4 署名が書き込まれています。

署名を削除しますか? [Y]es/[N]o: y

署名は write (書き込み)コマンドを実行すると消えてしまいます。

コマンド (m でヘルプ): w
パーティション情報が変更されました。
ディスクを同期しています。

パーティションを確認します.

# fdisk -l /dev/sdb
ディスク /dev/sdb: 2.75 TiB, 3000592982016 バイト, 5860533168 セクタ
Disk model: WDC WD30EZRZ-00Z
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト
I/O サイズ (最小 / 推奨): 4096 バイト / 4096 バイト
ディスクラベルのタイプ: gpt
ディスク識別子: 53238609-AF2A-204A-82F3-C49370923797

デバイス   開始位置   最後から     セクタ サイズ タイプ
/dev/sdb1      2048 5860533134 5860531087   2.7T Linux ファイルシステム

ファイルシステム作成

# mkfs.ext4 /dev/sdb1
mke2fs 1.45.5 (07-Jan-2020)
/dev/sdb1 contains a ext4 file system
	last mounted on /srv on Sun Apr  3 22:39:33 2022
Proceed anyway? (y,N) y
/dev/sdb1 is mounted; will not make a filesystem here!

あれw 実は以前に ext4 でフォーマットした HDD だったので,こうなったww

HDD をマウントしてみます.

# mkdir /mnt/hdd
# mount /dev/sdb1 /mnt/hdd

さて,この HDD を起動時に自動マウントするよう, /etc/fstab に書いておきます.HDD の UUID を確認します.

# blkid /dev/sdb1
/dev/sdb1: UUID="e2c28fef-fb32-487d-959b-02cdb3963221" TYPE="ext4" PARTUUID="7317d376-9a0b-f247-b5ce-f164b6ed67d1"

私は vi / Vim ユーザーなので, vi で /etc/fstab を編集します.

# vi /etc/fstab
# /mnt/hdd was on /dev/sdb1
UUID=e2c28fef-fb32-487d-959b-02cdb3963221 /mnt/hdd            ext4    defaults        0       2

面倒なので,再起動します.無事にマウントされていることを確認しましょう.