Linux (old) Newbies

古いWindows環境からLinux環境へと移り住んだ日々の出来事

勢いでテーマも弄ってみました🤣

文字が綺麗になったら UI が気になってしまうところ。今まで使っていたテーマを一新しようと色々と探してみたものの気に入ったテーマがあるにはあるけど少し考えさせられるところもあって公開されているテーマを自分なりに改造してみることにしました。

やっぱり MAC は格好いい♪ そしてお洒落

いろいろとテーマを見て回ると結構 「MAC OSX なんたら~」 というのが見つかります。名前のとおり、その OS を模した外観を持ったテーマというところで、なかでも McOS-CTLina とかが好みに合っていました。ところがテーマを構成するファイルサイズが大きく、エフェクト類や細かなイベント対応の動作指定も多くてキーボードのショートカットで使おうとすると 「ちょっとモッサリする」 感じが否めなく、またファイルサイズも大きいことから動作時のリソースもそれなりに消費するのだろうとの予測で、もっと軽量で動作するテーマはないかと探したところ、Xfce-Simple-Dark というのが単純で気に入りました。選択候補のテーマとしては MX3 とかも気がかりで、ようするに 「フラットに近いデザインで軽くてダーク色テーマ」ってところ。

GTK2 / GTK3 向けよりは少ない Xfce 用のテーマ

仕組みがイマイチよく分からないのですが次の3つで構成されるようで
・ウィンドゥ・マネージャーに適用するテーマ
・GTKに適用するテーマ
・アイコンセットのテーマ

まぁデフォルトのテーマでも動作は問題ないのですが、やっぱり好みにカスタムしたいです。

UIをスリムに改造

Xfce-Simple-Dark の見た目はそのままで、スリム化を主に弄りました。
違いが分かるように GIF ってみました。
(選択している帯の色が青いのが改造した方です)

改造した箇所は

・背景色と文字色の調整
・窓枠のコントロールボタンを真四角に変更(24p向けのみ同梱)
・スクロールバーの幅の縮小
・スクロールバーのステップボタンを非表示
・Thuner のメニューバーとツールバーの高さを変更
・全体的なOut-Line描画の削除(各個別でのフォーカス時の枠線と重なるため)

具体的には ./gtk-3.20/gtk.css のみの変更です。
その他は変更していないので24p以外のサイズが必要な場合は
オリジナル版から移植してください。

そのままでもシンプルでいいですが
組み合わせる Xfce の側は Clearlooks Border Box Pack

www.gnome-look.org

 などが綺麗です。


ダウンロードはこちらから (Google Drive)
Xfce-Simple-Dark_(Kai) 20260325版 → スクロールバーの太さ変更
Xfce-Simple-Dark_(Kai) 20260323版 → ボタン等の選択時の枠線太さ変更
Xfce-Simple-Dark_(Kai) 20260317版 初版

とても構成ファイルサイズが小さく少ないので動作も軽いと思います。
Ubuntu + Xfce な環境の人は使ってみてください。




画面表示が落ち着きました☺️

先の投稿であれやこれやと画面設定を弄っていましたがスッキリと落ち着くに至りました。先の投稿への追記も長くなっているので別投稿にしてみます。

結局は元の設定に近くなる🤣

サブピクセル使用でのフォントレンダリングを、どうにか綺麗にと色々とやってみましたが、どうもうまい具合にピタリと決まってくれず、こっちのフォントならいいけれど、あっちのフォントだとダメダメになったり同じフォントでも大きさが違うと崩れてしまったりと、あっちを立てればこっちが立たずみたいな状況なので、もう諦めてグレースケールでいいやーってことにしました。利用するハードウェア環境によって違ってくるという結果でしょうか。まぁ実際に使ってみてBESTだと感じるという設定となりました。

具体的な設定はこんなところ

・DPI の指定は Xrandr = フォントのレンダリングにした。
・DPI の指定値は物理の値ではなく、96dpiに戻した
・MS Ui Gothic, MS Gothic, MS PGothic, MS Mincho, MS PMincho で16p 未満はAA無しでヒンティング無し
・フォントのレンダリング指定はグレースケールでヒンティング = Full
・LCDフィルタはノーマル(有効)

そんなところでビットマップ内蔵フォントでビットマップの方が具合のいいものはビットマップを使うようにしただけって感じかも。 96dpi 指定だと当然に示される画面サイズの実寸(ミリメートル)は、物理サイズとは異なりますが気にしないことにします。

とかく画面の物理サイズ = 見た目のサイズに拘って正確に DPI を合わせても微妙に合わないところの落とし所が見つからず、別に印刷業務とかをやる訳でもないから 「文字のスケーリングをDPIで調整するのをやめて適当にフォントの方のサイズを変更することにした」 という拘る部分の変更です 🤣

元の文字のサイズ (例えば 9p) を拡大して大きくするよりも、元の文字が 10p なり 11p なり大きい方を使えば元がビットマップフォントであるならば、当然に大きいビットマップのほうが綺麗でしょっていう 🤣前提がビットマップフォントならって結果ですね。

でも、まぁ色々と知ることが出来てよかったです。

思えば最初に Ubuntu (24.04) をインストールして、その直後は Wayland で稼働していて (とても綺麗だった)、色々とデスクトップ環境が変えられるんだなぁと、 Xfce に落ち着いたところで今になって 「どうして画面が汚いんだろう・・・」 と、疑問を持って弄りだしたところでした。

いまでも Ubuntu on Wayland でセッションを始めれば綺麗な画面が見られますが、どのアプリで問題が出るか予測不可なので危険が怖いです 🤣 🤣 🤣

Linux まだまだ学ぶところが沢山です。

X11の文字表示が汚い・・・を少しでも改善する

先の記事での続きで、Ubuntu (24.04) のデスクトップ上での文字表示の汚さが気になってしまい、なんとか改善しないかと色々とやってみたことを綴ってみます。

X11のデフォルトは 96 dpi だった

現在の X11 での dpi を確認

$ xdpyinfo | grep resolution
resolution: 96x96 dots per inch

何もしていないX11環境だと デフォルトの 96 dpi と表示されるはず。

これは Nvidia の設定画面でも確認することが出来ます。

この時点で使っている LCD パネルと dpi の値が違うというのが分かるので設定を変更することで文字表示が改善する(かも)

コマンドで設定する方法しかないみたいですが
毎回ログイン時に実行しているシェルスクリプトに次の一文を加えました

# 解像度の変更
xrandr --dpi 102

コマンドで設定すると Nvidia の方にも反映されます。

 

他にも dpi を指定するところがあったよね

そう、画面のフォント設定や外観のテーマのところに dpi 指定があったはず。
私の利用環境では Ubuntu + Xfce4 なので、フォントマネージャとXfceのデスクトップ設定に dpi の項目がありました。

それらの該当箇所へ dpi の値を設定してみたけれど、なんか今ひとつ変化が感じられず何気なくフォントマネージャが出力する ./config/fontconfig/conf.d/19-DisplayProperties.conf を見てみたところ

    <edit name="dpi" mode="assign" binding="strong">
      <double>102</double>
    </edit>

dpi の指定の箇所が double 指定になっているじゃないですか。
GUIからの値入力でも小数点1位まで入力できるし、直接に書き換えならdoubleだから正確にもっと詳細な値が指定できるかも。

そう思って小数点以下まで正確に設定したら良くなったような気がした😊

    <edit name="dpi" mode="assign" binding="strong">
      <double>102.419354839</double>
    </edit>

先の項での xrandr 設定も詳細な値に変更

# 解像度の変更
xrandr --dpi 102.419354839

 

詳細な dpi については、次の項を見てみてください。

 

より詳細なdpiを計算する

LCDバネル の dpi (ppi) は、製造メーカー側でカタログスペックで提示していますが「インチ毎に何個」なのでピッタリと整数になるはずがないでしょうって疑い。そこでどうやって dpi の値を得るかを調べてみました。

■ dpi の公表値が不明な場合は画面サイズより計算 (非推奨)
要するに画面サイズ 24 inch とか 27 inch とかの対角の長さを直角三角形の斜辺として残りの2辺を画面の縦横比率を元にして算出するという流れです。
ピタゴラスの定理よりa² + b² = 斜辺²
なので、組み合わせとして縦横の比率を 16 : 9 だとすると
16 : 9 : √(16²+9²) = 16 : 9 : 18.35756…
この比率で 24 inch 対角のLCDなら
24.0 × 2.54 = 60.96 cm として
横 = 60.96 × 16/18.357559… → 53.13124 cm、縦 = 60.96 × 9/18.357559… → 29.88632 cm)
という縦横実寸サイズが求められます。
このサイズから横方向のピクセル数で計算すると
HG画面として 1920 x 1080 を仮定

1920 / (53.13 / 2.54) = 91.789949181  約 92 PPI
まぁ単純に製品名で 24 inch と記されていても実際は 23.8 inch とか 24.1 inch だったりと色々とあるので正確に画面の対角サイズが分かる場合はさておき、製品名の画面サイズから計算してはダメですからね🙃

しかしながら、画面サイズ = 有効な表示サイズとほぼ同じという昔の CRT (ブラウン管)時代ではないので、この画面サイズと表示可能なピクセル数、画面の縦横比率から計算するというのは、全く正確な情報が何もないという場合のみしか使えない技でしょうね。

■ dpi の公表値が不明で有効表示面積のサイズより計算 (推奨)
パネルサイズ (24 inch とか) の他に 有効表示領域 の値が公表されている場合があります。この場合は先の「パネルサイズの斜辺から計算する」の計算式の最後の計算で、この実際に表示可能な画面サイズで計算することでより正確な値となります。

HG画面として 1920 x 1080 を仮定

1920 / (【画面の横の長さ】 / 2.54) = xx.xxxxxxx  約 xx PPI

■ パネル仕様のピクセルピッチから計算 (推奨)
ほとんどの場合でLCDパネルの「ピクセルピッチ」が公開されています。
(メーカー公開資料から分からない場合は https://www.displayspecifications.com/ など参照)
私の例だと ピクセルピッチが 0.248 x 0.248 mm 仕様なので
2.54 x 10 / 0.248 = 102.419354839 dpi となります

メーカーカタログでの ppi (dpi) の値は 単に 102 としか記されていませんが、結構小数点以下での違いが大きく影響するように感じます。

実際に精密な値を xrandr で設定したら Nvidiaの表示が・・・

縦横で dpi の数値が違って出るんだけど、いいのかなー。
まぁ、そーいう変なハンパな LCD パネルなのでしょうねー🤣🤣🤣

とにかく、正確な値を設定することで、白バックに黒文字でも目が痛くなりにくく、黒バックに白文字なら更に引き締まって見えるようになったように感じました。あとは組み合わせるフォント次第かなーってところです。

・・・Wayland ? 綺麗ですねー、でも動作するアプリが限られる。😛

縦と横で値が違うのが気になる

【 2026-03-10追記 】 先の Nvidia の設定表示で縦と横の dpi の数値が異なるのは Nvidia には何の問題もなくて、X11 側でそのような設定になってしまっているからでした。

$ xdpyinfo | grep  resolution
  resolution:    102x103 dots per inch

xrandr のコマンド解説を見ると --dpi で指定した値を使って実際の画面サイズから計算すると記されています。そう、この実際のサイズで参照されている値が実物と微妙に違っているために発生する誤差でそのようになるのではないかなーと。

$ xrandr | grep " connected "
HDMI-0 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 476mm x 268mm

この画面サイズの 縦mm と横mm が厳密なメーカー発表では 縦が 476.1mm 横が267.8mm となっていて四捨五入すれば確かに合っていますが精密ではなさそう。

そもそもメーカーが公表しているピクセルピッチの 0.248 mmというのも疑わしく思いました。(実際にカタログなどでの製品スペックと実物の仕様が異なるというのもあるらしい) そう感じたのは画面サイズと対角の長さを入力すれば dpi をサクっと計算してくれるサイトを見つけて値を見たときに、なんか自分の計算したのと結果が違ったからです。
➡️ 数値を入れると dpi を計算してくれるサイト
おそらくは画面サイズの 24 inch とかを元に計算するので実際とは違ってくるのでしょうね。

実際、メーカー公表値が合っているかピクセルピッチを計算してみると

有効表示領域から計算すると

縦 476.1 / 1920 = 0.24796875
横 267.8 / 1080 = 0.247962963

これまた小数点以下3桁で丸めると、たしかに 0.248 mm となるので正しいのだけど端数はどうするーってところです。
この端数を破棄した値を使って先述の 「ピクセルピッチを元に計算する」 というのも正確ではなさそうだと思えてきました。

最終的に納得したのは(自己満足)

【 2026-03-11追記 】計算する順番での桁落ちや値の丸めで最終結果が変わってくるなら、一気に計算すればいいのでは~と安直に考えました。
もっとも先の xrandr 内部で持っている画面サイズを元に計算される部分は変えようがないから微妙に縦横で xrandr での dpi が異なる表示となるのは解消できませんが、実際の縦横サイズ(有効表示領域)が分かっているのであれば、それを元に実寸の対角サイズを計算して何処よりも正確に結果が出せます。

今度は逆に「直角三角形の斜辺の長さは?」という計算ですね。

言葉で書くと
 表示ピクセルの対角での数 ÷ 画面の対角線の実寸(インチ)
文字で書くと
 ( √(横ピクセル² + 縦ピクセル²)) ÷ ( ( √(縦mm² + 横mm²)) ÷ (2.54 x 10))
表計算などの式で書くと
 (SQRT(横ピクセル ^ 2 + 縦ピクセル ^ 2)) / ( (SQRT(縦mm ^ 2 + 横mm ^ 2)) / (2.54 * 10))
実際の値の例だと
 (SQRT(1920 ^ 2 + 1080 ^ 2)) / ( (SQRT(476.1 ^ 2 + 267.8 ^ 2)) / (2.54 * 10))

これが途中で端数処理しないから超精密ではないかなー

でも元来、dpi の指定は整数であって、そこに小数点付き実数を設定するのは間違っているのか正解はどっちなのでしょう🤣

私は上記の一気に計算での式で算出した値にしていますが、やはりそれだと xrandr での縦横サイズが異なって見えることから、簡単に模範的な値を取るなら先の 数値を入れると dpi を計算してくれるサイト で計算した値なら少なくともメーカー公表スペックでの整数の dpi でなく、小数点2桁まで求めてくれるので有用な値となります。

Qtアプリのフォントを指定してみる

唐突にファイルマネージャなどでの文字の表示が変わってしまって調べてみたところ突然に初期状態に戻ることがあるとかないとか・・・。はっきりした原因は分かりませんでしたがグラボのドライバーが変わったりとか日々アップデートされることもあるからそういうこともあるのかなぁと。

フォントマネージャー

とりあえず見た目はフォントマネージーゃーから再度設定することで好みの感じに戻すことが出来ました。フォントマネージャーはデフォルトではインストールされていませんがほとんどの人がインストールしていると思います。

$ sudo apt install font-manager

 

XFce4のウィンドウマネージャーと外観の設定窓

こんなところにもフォントの設定が・・・


私の利用環境だと Ubuntu 24.04 + XFce4 (xUbuntu ではないです) なので、ほとんどの見た目のフォントはここまでの設定変更で変わります。 けれど Qt のフレームワークを使ったアプリのフォント設定はどうやるのかなと調べてみたら、別途に Qt6設定ツール (Qt6ct) で設定できるとのこと。

Qt6設定ツール (Qt6ct)

まずは Qt6ct のインストール

$ sudo apt install qt6ct

そのままでも起動できますが、事前に環境変数の設定が必要です。

$ export QT_QPA_PLATFORMTHEME=qt6ct
$ qt6ct

ずっとコンソールからコマンド起動で利用するなら、このまま毎回に起動前に環境変数をセットでもいいですが、常にとなると面倒だからとBASHのプロファイルに環境変数セットの一文を仕込もうかと考えましたが、それだとコンソール起動では大丈夫ですが、アプリのランチャーとして登録済みのアイコンからの起動では異なる環境となってしまうので、別途に固定で環境変数を割り当てることにしました。 (ランチャーの指定でターミナル起動にするとか、コマンドライン定義を細工するとか、起動用のスクリプトを別途とか 代替策はいろいろあります)

格納場所は /etc/environment.d/qt6.conf で
中身は QT_QPA_PLATFORMTHEME=qt6ct との一行があるだけです。
(おそらく conf のファイル名からして qt6 のアプリ全体が変わってしまうかも・・・)

とにかく、これで qt6ct を起動する際にランチャーからの起動でもコマンドライン起動でも環境変数を事前にセットする必要がなくなりました。

qt6設定ツール (qt6ct) では、フォントだけでなくアイコンセットとかクリックの間隔などUI周りの調整が出来るようです。・・・フォントの箇所以外は触ってません。

Qt6設定ツール (Qt6ct) での "fonts.conf を作成" 機能は触ると危険

qt6ct のフォントのタブに 【fonts.conf を作成】 というボタンがあって、なんとなく押してみたくなりますが、このボタンを押すと下図の設定ダイアログが出現して システム全体のフォント設定を定義する .conf を出力します。このファイルが作成されると、せっかく細かくフォントマネージャーで指定しても、こちらでの定義が使われてしまうようで厄介です。これに気づかず qt6ct で .conf を出力した後で何度かフォントマネージャーを起動して設定を変えても反映されないという症状にハマリました。😅😅😅

まぁ逆にフォントマネージャーは使わずにフォント設定は Qt6ct のオマケ機能を使うとかなら、これでもいいんでしょうね。 たしか Linux のデスクトップ環境自体が Qt のフレームワークで作成されているのもあるから、各々の利用環境をよく知ることがトラブル解決の近道。

 

結局、最終的に落ち着いた設定は個別のアンチエイリアスOFFでした

【 2026-03-03追記 】 Qt6環境のフォントやアイコンなどが再定義できるようになっても、システム全体の表示のレンダリング設定により文字にアンチエイリアスがかかって太く見えてしまうので、(それが好みの人も居るでしょうけれど、私は細い文字のほうが好き) アンチエイリアスをOFFにしてみるといい感じでした。 ところがシステム全体のレンダリングのアンチエイリアスがOFFだとWEBブラウザーでの文字表示などにも影響が出るので、どうしようかと色々と探ってみて得た結果は 「特定のフォントの特定の文字サイズだけアンチエイリアスをOFFにする」 という設定です。
Archlinux の Wikiページでそのような内容を見つけました。

wiki.archlinux.jpこれに追記するかたちで、Qt環境での UI に指定しているフォントを追加して、特定の (20p以下) だとアンチエイリアス = OFF とすることで、システム全体のアンチエイリアスは有効状態のまま特定のフォント、特定のサイズだけアンチエイリアスが OFF になり好みの表示となりました。 もっともそれが活かせるのはビットマップフォントを内蔵しているフォントのみに限られますが、昔のカッチリした細いフォントが好みの人だといい具合になると思います。

 

~/.config/fontconfig/fonts.conf で設定するのは古い?

【 2026-03-04追記 】 先の Archlinux の Wikiページ での内容をそのままだと、設定ファイルが ~/.config/fontconfig/fonts.conf となりますが、どうもそこではなくて、~/.config/fontconfig/conf.d/ 配下に各種設定を先頭に数字を付けたファイル名で設置する というのが新し目な設定方法だそうで、ファイル名先頭に付けた数字が大きいほど優先順位が高くなるとの仕組みらしい。 どおりでフォントマネージャーから設定したときは、ここに何やら書き込まれているのが用途が分かって納得です。
なので設定ファイルを ~/.config/fontconfig/conf.d/99-my-settings.conf に変更しました。

 

暫く設定を変えて使ってはみたけれど・・・

【 2026-03-06追記 】 先の Archlinux の Wikiページ での内容をそのままだと、WEBブラウザーで表示ページに欧文のフォント指定がされている場合では部分的にビットマップに置き換わってしまい妙な表示になるので本当に設定変更が必要なフォントだけに絞らないとダメな感じで、どの場合に必要になるかが今ひとつ特定できていないこともあって、とりあえず設定ファイルの ~/.config/fontconfig/conf.d/99-my-settings.conf は削除して今後にどのアプリでどのように影響があるかで対処ってことにしました。

コロコロと環境設定が変わってしまったけれど、Linux (ubuntu) でのフォントに関して得た知識も多かったです。特には X11 環境でのデフォルトの画面解像度が 96dpi であることと、Wayland での互換環境ではフォント関連の .conf は、読み込む順番で反映されるか不確定であることなど、のほほんと~そのまま使っていると気が付かないことが沢山あるけれど、細かいところまで弄れるのがLinuxっていいなーって再認識しました。

Speech dispatcher って懐い音? でもイラナイかな😑

ふとしたきっかけでタスクマネージャーにて見慣れない "speech-dispatcher" というタスクが数個起動していることに気が付きました。

ほぼCPUは使用しないのですがメモリーを少しばかり消費するので、これは何だろうと検索してみたら Arch Linux のページに詳しい解説があり、『音声合成のレイヤー』 とのこと。
インストールした覚えはないけれど何でも一通りは導入済みの ubuntu さんなので最初から入っているのでしょう。 (ちなみに使っているのは ubuntu 24.04 LTS)

wiki.archlinux.jp
OS起動時の自動起動に入っているのかとひと通り見てみたものの、それらしい記述は見当たらず、タスクマネージャーから見えるコマンドラインオプションで "-s" が付いていることから単独で誰かが起動したという状態だと分かりました。

で、誰が起動しているか?については言わずもがな殆どの検索情報で Firefox が起動していると記されていて、他にも Speech dispatcher 起動する可能性のあるアプリはあると思われますが、とりあえず Firefox 系の WEB ブラウザーで 設定を about:config から変更しました。
変更したキーは次の2つです。 (2つとも False に変更)

reader.parse-on-load.enabled
media.webspeech.synth.enabled



手打ちで Speech dispatcher に発音させてみる

先の Arch Linux での解説ページで、コマンドラインから発声させることができるとあったのでやってみました。

やはり単音でしか処理できないようで

$ spd-say "Arch Linux is the best"
$ spd-say "今日はいい天気"
 → これは文字が中国語が混ざっているとされて処理できない
$ spd-say "きょうは、いいてんき"
 → これは発音可能だけど "は" が そのままの音なので
$ spd-say "きょうわ、いいてんき"
 → 日本語として正しくないけど "わ" で代替
$ spd-say "ワレワレワ、ウチュウジンダ"
 → 片仮名も認識できた


調子に乗って遊んでみる

$ spd-say  -r -50 -p 50 "TECHNOPOLIS"
 → 速度とピッチをオプションで変えて、なんとなく😅
$ pkill -f speech-dispatcher
 → 常駐してしまうので名称指定でタスクを終了


音声合成って今時だと流暢な発音で自然なものが沢山あるけれど、Speech Dispatcher の音を聞くと、ずっと昔に Sound Blaster の添付ソフトか何かで聞いたような懐かしい音に感じました。😀



 

15年サポートのubuntu

先日に ubuntu 14.04 LTS のレガシーアドオンサポート期間が 2年 → 5年 へと延長するとの発表があり、末尾の数字から分かるとおり 2014年公開の 14.04 LTS が 2029年4月までサポート対象となり延命されました。 なお、このバージョン以降の OS は漏れなく 15年サポートです。

ubuntu.com

15年の内訳は

5年:長期サポート版 (Long-term Support = LTS)
5年:拡張セキュリティメンテナンス (Extended Security Maintenance = ESM)
5年:レガシー・サポート (Ubuntu Pro with Legacy Support add-on)

ESM は旧来で ubuntu PRO と呼ばれる有料サポートの事ですが、個人ユーザー場合は台数制限ありで無料で利用できます。

いつまで使える?

Ubuntu - Wikipedia より


いつかはサポートされなくなる時が来るのは避けられませんが充分に長い期間サポートされるのは魅力的です。

アップデートでカーネルが変わったら起動不可になった (24.04 LTS 6.14.0-24)

何気なくポチっと更新プログラムで今すぐインストールをしてみたら、やたらと更新量が多くて何だろう思ったけど今までで特にトラブルには遭遇しなかったので気にせず再起動してみたら何やら  BOOT 後に画面が真っ黒状態でした。 NVIDIA のドライバー関連も変わっていた様子だったので相性の悪い組み合わせなのかなぁと起動時にコンソールモードにすべく CTRL + ALT + F1 やら F2 やら推してみても反応が無い。 CTRL + ALT + DEL も無反応。 幸いなことに 別の OS (Windows) とデュアル BOOT 構成にしているので Grub の選択メニューは常時表示だったことから通常起動 OS (ubuntu) のスグ下にアドバンスメニューというのがあって、そこから他の(インストール済みの) カーネルが選べるのが分かって、そこにはカーネルのバージョンが
6.14.0-24
6.11.0-29
6.11.0-28
と、3つでそれぞれにリカバリーモードあり となっていました。

1つ前のカーネルなら難なく起動

Grub のメニューから 6.11.0-29 を選択することで以前と変わらず何事もなく起動できるのを確認。とりあえずは一安心です。

最新のカーネル(6.14.0-24)をリカバリーモードで起動

いろいろな読み込みが始まって起動しようとするのですが途中で止まってしまうようで何だか分からず原因不明です。特に OS のバージョンに拘りはないので原因究明は放棄して 『元に戻す』 方向で作業することに。

このままの状態でも起動時にGrubメニューから アドバンス --> 6.11.0-29 選択とすることで使えますが、毎回選択するとかありえないのでデフォルトの選択カーネルを弄るというのでも出来ますが、その場合だと現状でBootのトップメニューから0番目指定のところを1番目に変更して、さらに階層メニューで2番目の 6.11.0-29 を選ぶということになるので、指定としては現在 0 のところを "1>2" と記述するという何だか不思議な指定方法でした。

/etc/default/grub

GRUB_DEFAULT=0
これを
GRUB_DEFAULT="1>2"
と記述する

まぁそんな小細工で回避してしまうと今後にカーネルがアップデートされても常に2番目を選択起動してしまうので、後で困ることになるのは明白なので選択指定を弄るのは却下で。

最新のカーネルを削除して元に戻す

検索して調べてみると使わなくなった古いカーネルを削除というのは日常のようで沢山の記事が見つかりましたが最新のカーネルを削除して元に戻すというのは稀なのでしょうか・・・。

とりあえず apt から削除してみました

$ apt list --all-versions|grep linux-image-[0-9]|grep generic

linux-image-6.11.0-17-generic/noble-updates,now 6.11.0-17.17~24.04.2 amd64 [設定が残存]
linux-image-6.11.0-19-generic/noble-updates,noble-security,now 6.11.0-19.19~24.04.1 amd64 [設定が残存]
linux-image-6.11.0-21-generic/noble-updates,noble-security,now 6.11.0-21.21~24.04.1+1 amd64 [設定が残存]
linux-image-6.11.0-24-generic/noble-updates,noble-security,now 6.11.0-24.24~24.04.1 amd64 [設定が残存]
linux-image-6.11.0-25-generic/noble-updates,noble-security,now 6.11.0-25.25~24.04.1 amd64 [設定が残存]
linux-image-6.11.0-26-generic/noble-updates,noble-security,now 6.11.0-26.26~24.04.1 amd64 [設定が残存]
linux-image-6.11.0-28-generic/noble-updates,noble-security,now 6.11.0-28.28~24.04.1 amd64 [インストール済み、自動削除可]
linux-image-6.11.0-29-generic/noble-updates,noble-security,now 6.11.0-29.29~24.04.1 amd64 [インストール済み、自動]
linux-image-6.14.0-24-generic/noble-updates,now 6.14.0-24.24~24.04.3 amd64 [インストール済み]

このインストール済みとなっている 6.14.0-24 ですね

$ sudo apt remove linux-image-6.14.0-24-generic
[sudo] xxxxxxxx のパスワード: 
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
  amd64-microcode bpfcc-tools bpftrace ieee-data intel-microcode iucode-tool libbpfcc libclang-cpp18 libclang1-18 libllvm18
  linux-headers-6.11.0-28-generic linux-headers-generic-hwe-24.04 linux-hwe-6.11-headers-6.11.0-28 linux-hwe-6.11-tools-6.11.0-28
  linux-image-6.11.0-28-generic linux-modules-6.11.0-28-generic linux-modules-extra-6.11.0-28-generic
  linux-modules-nvidia-570-6.11.0-28-generic linux-objects-nvidia-570-6.11.0-28-generic linux-signatures-nvidia-6.11.0-28-generic
  linux-tools-6.11.0-28-generic nvidia-firmware-570-570.133.07 python3-bpfcc python3-netaddr thermald ubuntu-kernel-accessories
これを削除するには 'sudo apt autoremove' を利用してください。
以下の追加パッケージがインストールされます:
  linux-image-unsigned-6.14.0-24-generic
提案パッケージ:
  linux-hwe-6.14-tools
以下のパッケージは「削除」されます:
  linux-image-6.14.0-24-generic
以下のパッケージが新たにインストールされます:
  linux-image-unsigned-6.14.0-24-generic
アップグレード: 0 個、新規インストール: 1 個、削除: 1 個、保留: 29 個。
15.6 MB 中 0 B のアーカイブを取得する必要があります。
この操作後に追加で 56.3 kB のディスク容量が消費されます。
続行しますか? [Y/n] y

このあと、Grub の構成が自動で行われるのですが、

Sourcing file `/etc/default/grub'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-6.14.0-24-generic
Found initrd image: /boot/initrd.img-6.14.0-24-generic
Found linux image: /boot/vmlinuz-6.11.0-29-generic
Found initrd image: /boot/initrd.img-6.11.0-29-generic
Found linux image: /boot/vmlinuz-6.11.0-28-generic
Found initrd image: /boot/initrd.img-6.11.0-28-generic
Found memtest86+x64 image: /boot/memtest86+x64.bin
Warning: os-prober will be executed to detect other bootable partitions.
Its output will be used to detect bootable binaries on them and create new boot entries.
Found Windows NT/2000/XP on /dev/sda1
Adding boot menu entry for UEFI Firmware Settings ...
done

しっかり 6.14.0-24 が残ってしまっていて Grub から消えてくれない・・・
その原因は、どうやら

以下のパッケージが新たにインストールされます:
linux-image-unsigned-6.14.0-24-generic

この削除したら代わりに何か増えちゃったやつらしく、6.14..0-24 に依存する何かが他にあって削除したカーネルの代替に自動で追加されるものらしいです。

じゃ、依存しているのは何だろうと調べることに・・・

$ apt show linux-image-6.14.0-24-generic
Package: linux-image-6.14.0-24-generic
Version: 6.14.0-24.24~24.04.3
Built-Using: linux-hwe-6.14 (= 6.14.0-24.24~24.04.3)
Priority: optional
Section: kernel
Source: linux-signed-hwe-6.14
Origin: Ubuntu
Maintainer: Canonical Kernel Team <kernel-team@lists.ubuntu.com>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 15.6 MB
Provides: fuse-module, ivtv-modules, kvm-api-4, linux-image, redhat-cluster-modules, spl-dkms, spl-modules, v4l2loopback-dkms, v4l2loopback-modules, virtualbox-guest-modules, zfs-dkms, zfs-modules
Depends: kmod, linux-base (>= 4.5ubuntu1~16.04.1), linux-modules-6.14.0-24-generic
Recommends: grub-pc | grub-efi-amd64 | grub-efi-ia32 | grub | lilo, initramfs-tools | linux-initramfs-tool
Suggests: linux-hwe-6.14-tools, linux-headers-6.14.0-24-generic, linux-modules-extra-6.14.0-24-generic
Conflicts: linux-image-unsigned-6.14.0-24-generic
Download-Size: 15.3 MB
APT-Sources: http://jp.archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages
Description: Signed kernel image generic
 A kernel image for generic.  This version of it is signed with
 Canonical's signing key.

なんかごちゃごちゃと沢山表示される中で Depends: (依存する) の項目ですね。
こいつも消さないとダメらしい --> linux-modules-6.14.0-24-generic

$ sudo apt remove linux-image-6.14.0-24-generic linux-modules-6.14.0-24-generic
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
パッケージ 'linux-image-6.14.0-24-generic' はインストールされていないため削除もされません
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
  amd64-microcode bpfcc-tools bpftrace ieee-data intel-microcode iucode-tool libbpfcc libclang-cpp18 libclang1-18 libllvm18
  libnvidia-cfg1-570 libnvidia-common-570 libnvidia-decode-570 libnvidia-decode-570:i386 libnvidia-egl-wayland1 libnvidia-egl-wayland1:i386
  libnvidia-encode-570 libnvidia-encode-570:i386 libnvidia-extra-570 libnvidia-fbc1-570 libnvidia-fbc1-570:i386 libnvidia-gl-570
  libnvidia-gl-570:i386 libpkgconf3 linux-headers-6.14.0-24-generic linux-headers-generic-hwe-24.04 linux-hwe-6.14-headers-6.14.0-24
  linux-hwe-6.14-tools-6.14.0-24 linux-objects-nvidia-570-6.14.0-24-generic linux-tools-6.14.0-24-generic nvidia-compute-utils-570
  nvidia-firmware-570-570.133.07 nvidia-kernel-source-570 nvidia-prime nvidia-settings nvidia-utils-570 pkg-config pkgconf pkgconf-bin
  python3-bpfcc python3-netaddr screen-resolution-extra thermald ubuntu-kernel-accessories xserver-xorg-video-nvidia-570
これを削除するには 'sudo apt autoremove' を利用してください。
以下のパッケージは「削除」されます:
  linux-image-unsigned-6.14.0-24-generic linux-modules-6.14.0-24-generic linux-modules-extra-6.14.0-24-generic
  linux-modules-nvidia-570-6.14.0-24-generic linux-modules-nvidia-570-generic-hwe-24.04 linux-signatures-nvidia-6.14.0-24-generic
  nvidia-driver-570
アップグレード: 0 個、新規インストール: 0 個、削除: 7 個、保留: 29 個。
この操作後に 175 MB のディスク容量が解放されます。
続行しますか? [Y/n] y

こんどは Grub の対象から6.14.0-24 が消えていました

Sourcing file `/etc/default/grub'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-6.11.0-29-generic
Found initrd image: /boot/initrd.img-6.11.0-29-generic
Found linux image: /boot/vmlinuz-6.11.0-28-generic
Found initrd image: /boot/initrd.img-6.11.0-28-generic
Found memtest86+x64 image: /boot/memtest86+x64.bin
Warning: os-prober will be executed to detect other bootable partitions.
Its output will be used to detect bootable binaries on them and create new boot entries.
Found Windows NT/2000/XP on /dev/sda1
Adding boot menu entry for UEFI Firmware Settings ...
done
linux-modules-extra-6.14.0-24-generic (6.14.0-24.24~24.04.3) を削除しています ...
linux-modules-6.14.0-24-generic (6.14.0-24.24~24.04.3) を削除しています ...

あとは 6.14.0-24 に関連してインストールされたものを手動で除去

~$ apt list --all-versions|grep linux|grep generic|grep 6.14.0|grep 自動削除
linux-headers-6.14.0-24-generic/noble-updates,now 6.14.0-24.24~24.04.3 amd64 [インストール済み、自動削除可]
linux-headers-generic-hwe-24.04/noble-updates,now 6.14.0-24.24~24.04.3 amd64 [インストール済み、自動削除可]
linux-objects-nvidia-570-6.14.0-24-generic/noble-updates,now 6.14.0-24.24~24.04.3+1 amd64 [インストール済み、自動削除可]
linux-tools-6.14.0-24-generic/noble-updates,now 6.14.0-24.24~24.04.3 amd64 [インストール済み、自動削除可]

 

 

もう、更新アプリの方でアップデートするのはバージョンとか分からないから止めておこうかな・・・

このあと再起動してGrubの自動選択で 6.11.0-29 が問題なく起動するのが確認できました。

しかし Nvidia のドライバーが動作はしているものの手動インストールと判断されて更新アプリの画面からは各バージョン選択をするところが選択不可となって、どうやら何かインストール情報が破損したようなので nvidia ドライバーを apt から reinstall 指定で行ったところ無事に更新アプリからも表示できるように元に戻りました。

今後に再び同様にアップデート後で起動できない状況になっても慌てず対処できそうに思います。