うつ病、双極性感情障害を抱えたけんけんのFedora、FreeBSD勉強日記。
Linux、Unixのデスクトップ用途として使う秘訣お教えします。
 since 2006年2月16日(木)

カーネル

[再発]AMD Ryzen 2400G でGNOMEロック画面が真っ黒オフにならない

※GNOME 3.34.3アップデートにより解決したっぽい?(2020年1月11日(土))
※アップデートあったがまた再発(2020年3月13日(金))

唯一の情報の出処のPhoronixの記事には明示的には書いてないですが…

久々の投稿になります。
PCの環境をリプレースして
CPU: Ryzen 2400G
マザボ: ASRock B450M Steel Legend
グラボ: Ryzen 2400G Radeon Vega 11(APU)

でご機嫌にLinuxライフしています。概ね調子よく動いてるのですが一つ困ったことが。
それは、GNOMEのロック画面が真っ黒になるけど16秒ほどですぐにロック画面の壁紙に。つまり真っ黒画面から明るくなっちゃうのです。Abrtに大量にカーネルバックトレース通知が来ていて?しかもjournalctlのログ見たら16秒ごとに同じ内容のエラーが出てるし、この通知が来ることによって明るくなっていると思う…
※スリープはする



PCと同じ部屋で寝てないですが、画面が明るくなったりしてかなりうっとおしい。

どうもマルチメディアというかデュアルディスプレイにしていると起こるようで、電源切ってからシングルディスプレイにしてる場合はロック画面での明るくなることはないっぽい。3分ほどしかみてないのですが、16秒ごとに起きてはないので問題ないのではないかと。

まあ、使わないときはディスプレイの電源は切っておけばいいものだし放っておけばいいのでしょうが。あとは、Abrtパッケージを削除とか?多分、ごっそりGNOME環境を道連れにされるのでしないほうが良いでしょう。というわけで対策求む…






【追記】
いつの間にか再発。まず、普段使いとは別の新規アカウントを作ってもこの問題は出ます。たまに画面ロック画面オフになってくれることもあるが、ごちゃごちゃ確かめてるとやはり真っ黒画面をキープせずロック画面壁紙が見える状態に。唯一ちゃんと再現よく画面真っ黒になるのは、無線マウスの電源を切ってひと呼吸おいてから【田(Windowsキー)】+【L 】を押すと画面オフになってくれます。USBの有線マウスだと引っこ抜くといける。PS/2マウスは持ってないのでわかりません。
Fedora30のUSBライブイメージで起動してそのまま画面ロックしてもこの問題はおきます。Ubuntuでもなるのか試したいけど、USBメモリにインストールは時間掛かりすぎた…
Rx460 monitors won't stay asleep [reddit] でDVI-DとDisplay Port接続がーってのが私の条件とあっているんだけど、amdgpu.dc=0すると起動しない… あっちはグラボでこっちはCPU内蔵であるAPUだからかな?

画面ロックから画面真っ暗オフしない一番簡単な解決方法はモニタの電源切れば良い話なんだけど、原因がつかめないのでスッキリしないです。FedoraだとAMDプロプライエタリのドライバは対応していないので、OSSなドライバのせいなんですかね。さあ、早く諦める決意をしよう。


以下、journalctlメッセージ
 ------------[ cut here ]------------
 1月 03 19:00:06  kernel: WARNING: CPU: 2 PID: 441 at drivers/gpu/drm/amd/amdgpu/../display/dc/calcs/dcn_calcs.c:1464 dcn_bw_update>
 1月 03 19:00:06  kernel: Modules linked in: fjes(-) amdgpu(+) amd_iommu_v2 gpu_sched i2c_algo_bit ttm drm_kms_helper uas nvme drm >
 1月 03 19:00:06  kernel: CPU: 2 PID: 441 Comm: systemd-udevd Not tainted 5.4.7-Ryzen5-rpm #1
 1月 03 19:00:06  kernel: Hardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./B450M Steel Legend, BIOS P2.90 11/27/2019
 1月 03 19:00:06  kernel: RIP: 0010:dcn_bw_update_from_pplib+0xaa/0x2f0 [amdgpu]
 1月 03 19:00:06  kernel: Code: 0c 24 85 c9 74 24 8d 71 ff 48 8d 44 24 04 48 8d 54 f4 0c eb 0d 48 83 c0 08 48 39 d0 0f 84 2e 01 00 >
 1月 03 19:00:06  kernel: RSP: 0018:ffffb92e4040b690 EFLAGS: 00010246
 1月 03 19:00:06  kernel: RAX: ffffb92e4040b694 RBX: ffff90382d3d0000 RCX: 0000000000000004
 1月 03 19:00:06  kernel: RDX: ffffb92e4040b6b4 RSI: 0000000000000003 RDI: ffff903850497900
 1月 03 19:00:06  kernel: RBP: ffffb92e4040b7d0 R08: 0000000000000000 R09: 0720072007200720
 1月 03 19:00:06  kernel: R10: 0720072007200720 R11: 0720072007200720 R12: ffffb92e4040b720
 1月 03 19:00:06  kernel: R13: ffff90384d97a380 R14: 0000000000000001 R15: ffffb92e4040b870
 1月 03 19:00:06  kernel: FS:  00007fcdfab5a940(0000) GS:ffff903850480000(0000) knlGS:0000000000000000
 1月 03 19:00:06  kernel: CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
 1月 03 19:00:06  kernel: CR2: 00007fcd35be3000 CR3: 000000036fdf2000 CR4: 00000000003406e0
 1月 03 19:00:06  kernel: Call Trace:
 1月 03 19:00:06  kernel:  dcn10_create_resource_pool+0x82c/0xb60 [amdgpu]
 1月 03 19:00:06  kernel:  ? _cond_resched+0x15/0x30
 1月 03 19:00:06  kernel:  ? dal_gpio_service_create+0x92/0x110 [amdgpu]
 1月 03 19:00:06  kernel:  dc_create_resource_pool+0xcf/0x150 [amdgpu]
 1月 03 19:00:06  kernel:  dc_create+0x23d/0x700 [amdgpu]
 1月 03 19:00:06  kernel:  ? amdgpu_cgs_create_device+0x23/0x50 [amdgpu]
 1月 03 19:00:06  kernel:  amdgpu_dm_init+0x13d/0x1c0 [amdgpu]
 1月 03 19:00:06  kernel:  ? phm_wait_for_register_unequal.part.0+0x50/0x80 [amdgpu]
 1月 03 19:00:06  kernel:  dm_hw_init+0xe/0x20 [amdgpu]
 1月 03 19:00:06  kernel:  amdgpu_device_init.cold+0x1477/0x1790 [amdgpu]
 1月 03 19:00:06  kernel:  amdgpu_driver_load_kms+0x53/0x1a0 [amdgpu]
 1月 03 19:00:06  kernel:  drm_dev_register+0x111/0x150 [drm]
 1月 03 19:00:06  kernel:  amdgpu_pci_probe+0xee/0x150 [amdgpu]
 1月 03 19:00:06  kernel:  ? __pm_runtime_resume+0x58/0x80
 1月 03 19:00:06  kernel:  local_pci_probe+0x42/0x80
 1月 03 19:00:06  kernel: RDX: ffffb92e4040b6b4 RSI: 0000000000000003 RDI: ffff903850497900
 1月 03 19:00:06  kernel: RBP: ffffb92e4040b7d0 R08: 0000000000000000 R09: 0720072007200720
 1月 03 19:00:06  kernel: R10: 0720072007200720 R11: 0720072007200720 R12: ffffb92e4040b720
 1月 03 19:00:06  kernel: R13: ffff90384d97a380 R14: 0000000000000001 R15: ffffb92e4040b870
 1月 03 19:00:06  kernel: FS:  00007fcdfab5a940(0000) GS:ffff903850480000(0000) knlGS:0000000000000000
 1月 03 19:00:06  kernel: CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
 1月 03 19:00:06  kernel: CR2: 00007fcd35be3000 CR3: 000000036fdf2000 CR4: 00000000003406e0
 1月 03 19:00:06  kernel: Call Trace:
 1月 03 19:00:06  kernel:  dcn10_create_resource_pool+0x82c/0xb60 [amdgpu]
 1月 03 19:00:06  kernel:  ? _cond_resched+0x15/0x30
 1月 03 19:00:06  kernel:  ? dal_gpio_service_create+0x92/0x110 [amdgpu]
 1月 03 19:00:06  kernel:  dc_create_resource_pool+0xcf/0x150 [amdgpu]
 1月 03 19:00:06  kernel:  dc_create+0x23d/0x700 [amdgpu]
 1月 03 19:00:06  kernel:  ? amdgpu_cgs_create_device+0x23/0x50 [amdgpu]
 1月 03 19:00:06  kernel:  amdgpu_dm_init+0x13d/0x1c0 [amdgpu]
 1月 03 19:00:06  kernel:  ? phm_wait_for_register_unequal.part.0+0x50/0x80 [amdgpu]
 1月 03 19:00:06  kernel:  dm_hw_init+0xe/0x20 [amdgpu]
 1月 03 19:00:06  kernel:  amdgpu_device_init.cold+0x1477/0x1790 [amdgpu]
 1月 03 19:00:06  kernel:  amdgpu_driver_load_kms+0x53/0x1a0 [amdgpu]
 1月 03 19:00:06  kernel:  drm_dev_register+0x111/0x150 [drm]
 1月 03 19:00:06  kernel:  amdgpu_pci_probe+0xee/0x150 [amdgpu]
 1月 03 19:00:06  kernel:  ? __pm_runtime_resume+0x58/0x80
 1月 03 19:00:06  kernel:  local_pci_probe+0x42/0x80
 1月 03 19:00:06  kernel:  pci_device_probe+0x107/0x1a0
 1月 03 19:00:06  kernel:  really_probe+0x147/0x3c0
 1月 03 19:00:06  kernel:  driver_probe_device+0xb6/0x100
 1月 03 19:00:06  kernel:  device_driver_attach+0x53/0x60
 1月 03 19:00:06  kernel:  __driver_attach+0x8a/0x150
 1月 03 19:00:06  kernel:  ? device_driver_attach+0x60/0x60
 1月 03 19:00:06  kernel:  bus_for_each_dev+0x78/0xc0
 1月 03 19:00:06  kernel:  bus_add_driver+0x14d/0x1f0
 1月 03 19:00:06  kernel:  driver_register+0x6c/0xc0
 1月 03 19:00:06  kernel:  ? 0xffffffffc0a6b000
 1月 03 19:00:06  kernel:  do_one_initcall+0x46/0x1f4
 1月 03 19:00:06  kernel:  ? _cond_resched+0x15/0x30
 1月 03 19:00:06  kernel:  ? kmem_cache_alloc_trace+0x162/0x220
 1月 03 19:00:06  kernel:  ? do_init_module+0x23/0x230
 1月 03 19:00:06  kernel:  do_init_module+0x5c/0x230
 1月 03 19:00:06  kernel:  load_module+0x28c9/0x2b20
 1月 03 19:00:06  kernel:  ? ima_post_read_file+0xf0/0x100
 1月 03 19:00:06  kernel:  ? __do_sys_finit_module+0xaa/0x110
 1月 03 19:00:06  kernel:  __do_sys_finit_module+0xaa/0x110
 1月 03 19:00:06  kernel:  do_syscall_64+0x5b/0x1a0
 1月 03 19:00:06  kernel:  entry_SYSCALL_64_after_hwframe+0x44/0xa9
 1月 03 19:00:06  kernel: RIP: 0033:0x7fcdfbb001ad
 1月 03 19:00:06  kernel: Code: 00 c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d >
 1月 03 19:00:06  kernel: RSP: 002b:00007ffd4bcfdcb8 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
 1月 03 19:00:06  kernel: RAX: ffffffffffffffda RBX: 00005563e28ea7b0 RCX: 00007fcdfbb001ad
 1月 03 19:00:06  kernel: RDX: 0000000000000000 RSI: 00007fcdfb72784d RDI: 0000000000000013
 1月 03 19:00:06  kernel: RBP: 0000000000020000 R08: 0000000000000000 R09: 0000000000000007
 1月 03 19:00:06  kernel: R10: 0000000000000013 R11: 0000000000000246 R12: 00007fcdfb72784d
 1月 03 19:00:06  kernel: R13: 0000000000000000 R14: 00005563e28ea410 R15: 00005563e28ea7b0
 1月 03 19:00:06  kernel: ---[ end trace b4501ffe4dce7d81 ]---
Abrtを見ると警告件数が8800超えてます(左上に表示)

kernel-abrt-amdgpu

高速化、軽量化が出来る!! rpmbuild,srpmを使ってカーネル再構築をする方法。 on Fedora, CentOS, ScienticLinux

カーネル再構築とは?

カーネルとは、PCが起動してからBIOSが起動し、その次に起動するプログラムです。ですが、このカーネルはLinuxディストーションをインストールした際にインストールされるカーネルは、たくさんのモジュール(部品)が同梱されています。

ですが、低スペックなパソコンだとこのカーネルは、たくさんのモジュールが含まれているためカーネルの容量が大きく、起動する歳にとても時間がかかります。 そういう場合には、使わないモジュールを同梱させないようにしたり、カーネルパラメーターを設定することで起動時間を短縮出来る可能性があります。 また、場合によってはたくさんのモジュールがあっても自分のPCのハードウェアが動かない場合もあります。その場合には、このモジュールの中に含まれるドライバなどをカーネルに組み込む必要があります。

ですが、これらの設定についてはデフォルトのカーネルを直接弄っても解決しないケースがあります。そういう場合には、カーネルを一からコンパイル(ビルド)します。この作業をカーネル再構築と言います。

Fedora 16ユーザーは要注意!! Linux 3.2.7-1.fc16.x86_64は起動に失敗する!!

2012年  2月 25日 土曜日 20:18:02 JSTにLinux 3.2.7-1.fc16.x86_64が上がってますが、
このカーネル、起動に失敗します。
LVM2のメッセージの後に止まるので、
LVMなシステムだと恐らく私と同様起動に失敗するかと思います。

対処としては、grubの画面で起動するカーネルを選び、


su -c "vim /etc/grub.d/40_custom"
とし、 そのファイルの中を
set default="2"
grub2-mkconfig -o /boot/grub2/grub2.cfg
として起動するカーネルを一番上が0番から数えて起動する番号をしてください。 ただし、grubの画面が出ない人はライブCDで修正という難しい事をしないと… ヒントとしては、マウントしたシステムの方の /boot/grub2/grub2.cfgの中の
set timeout=0
↓
set timeout=5
とすればとりあえず、ライブCD無しにgrubの画面が表示されるはずです。 カーネルが起動しないとか久々にやってくれましたねえ。Fedoraさん…

Linuxカーネル3.0でのXen Dom-0とDom-Uの最新の動向、事の成り行き。

ブログネタ
Linuxに関する運用 に参加中!

前置き

記事更新停止と言いながら、更新開始。 ただし、今までみたいに丁寧に解説しながらじゃなく、 走り書き。つまり、自分用メモ。

2016年6月12日(日)現在Xen Dom0の機能はカーネルモジュールに組み込まれておりXen仮想化機構が使えます。

Linux 3.0 Xenの取り込み

先日、Linux カーネル3.0には、仮想化ソフトウェア、 XenのDom-0及びDom-U機能がマージされると発表がありました。 RHEL6では、Xenを捨ててKVMへ推奨としていたので、 仮想化関連の情報としては、衝撃的な発表になったと思う。

2011年 7月 31日 日曜日 15:02:15 JST 現在、世界で一番早い!? Linux kernel 3.0のXen のDomain-0(Dom-0) 機能を試してみた。 [結論:動作しない]にて、実際にLinux kernel 3.0をビルドしてみたが、Domain-0としての機能を実装できておらずbootしないことを、検証した。

Xenについて

仮想化の説明は、もういいかな?最近は。 Xenとは、PC(というかCPU?)との間に仮想的なOSを実現するためのクッション材を間に挟む機能を含むハイパーバイザー型の仮想化ソフトウェアです。

で、Windowsでデスクトップ目的に仮想化するソフトウェアといえば、VMware Playerとか、Virtual Boxが有名どころでしょうけど、 Linuxでは、XenとKVMが有名かと。

そして、Xenだと、所謂仮想化を支える方のOSをホストOSというけど、Dom-0と呼び、 仮想化されている側のOSをDom-Uと呼びます。

ホスト、ゲストと呼ばないのは、ホストーゲスト型の仮想化ソフトウェアではなく、 ハイパーバイザー型だから。 しかも、VMware ESixでしたっけ?の完全ハイパーバイザー型ではない。 あくまで、Dom-Uを管理するために、Dom-0であるLinuxカーネルが必要。 よって、ホストOSは、Linuxに限定される。 CitrixのXenserverは、たぶん管理するための機能をWindowsから Dom-0を操ってるだけ。 仮想化を本当に管理しているのは、Linux。 使ってないからあくまで予測。

で、RHEL6からXenを見捨てKVMに切り替えた時代、 何故今さらXenをとりあげたかというと、 KVMでは、CPUに仮想化支援機構が実装されているものでないと使えないという弱点があるから。

そして、CPUの仮想化支援機構があるPCであってもKVMよりXenの方が高速な仮想化を実現出来る可能性があるから。

で、もう少しXenの事に触れます。 Xenには、大きく別けて2つのゲストOS(Dom-U)の扱い方があります。

それは、完全仮想化(HVM:Hardware Virtual Machine)と準仮想化(PV:para Virtulization)というモード。 (本当は、xen4系列から準仮想化をさらに強化したpvopsというのが加わる。)

完全仮想化とは、CPUの仮想化支援機構が必要ではあるが、 KVMのようにほぼどんなOSでも仮想化することができる。 (実際は、どんなOSでもとは、言えないけども。)

そして、準仮想化とは、CPUの仮想化支援機構がなくても、 仮想化を実現できるモード。 ただし、Dom−U側のカーネルに修正が必要。 (主に、Linux、BSDあたりは動作する。Windowsはほぼ不可能。準仮想化用のドライバが2008だけあったような情報を メーリングリストで見たことがある。)

ここで、ややしこいのですが、一見準仮想化の方が不利なようですが、 カーネルの修正さえ対応していれば、完全仮想化より高速に動作するということ。 (もちろん、CPUの仮想化支援機構があっても準仮想化を使えばさらに高速に動作させられる。) なので、今回のDom-Uの扱い、機能追加というのは、 主にこの準仮想化機能について恩恵が預けられる機能なのです。。

Xenの本当の動き

一番トップのリンク先を見ると、今までXenはLinuxカーネルに取り込まれていなかったのか。と 思っている方がたぶん多いと思うので、ちゃんと事の経緯を書いて起きます。

本当は、XenのDom-0機能は、2.6.37から一部Linuxカーネル本体に取り込まれることが宣言されていたし、 実際に.configにもDOM-0の項目も追加されてた。
ただし、ブートしてもkernel panicになったかなんかでうまく動かず。 Dom-0に必要な色々なドライバが含まれていないためだそう。 ソースは探してくださいませ。

さらに、 Dom-Uの機能はとっくにLinuxカーネルの本体に取り込まれているのに、 取り込まれたぞ!!とタイトルに付けられている。 xen.orgの元ソースですら。 まあ、完全じゃなかったからそう書いたのかもしれないけど。 (元記事もしっかりは読んでないし。)

Dom-Uの機能がLinux カーネル本体にいつから取り込みか忘れたけど、たぶん、Fedoraでいうとたぶんf10から。
某サーバー/os/images/xen/のディレクトリがなくなってる。 その辺もFedoraのリリースノートで確認してください。 あやふやです。

FedoraをDom-Uにするだけなら、少なくともF7の頃にはdom-U用のカーネルをビルドする必要すら無い。
CentOSも5系列、RHEL5系列とそのクローンならOKかと。 kernel-xenパッケージがDom-Uとして働く。

Linux カーネル3.0でのDom-0の最近の動向

で、一番重要なLinux 3.0でのXen Dom-0での動きをTiwtterで 自分が呟いた情報を適当に貼り付け。

私は、鯖管でもなければ、Redhatの社員でもなければ、 IT系の研究室でもなかったけど、 たぶんどこよりも早くLinux 3.0でのXen Dom-0の情報を追っかけてるはず。 ただし、あくまでwebとchangelog飲みの判断でソースコードまで読んでいない。アンドそもそも読めない。) (2011年 6月 25日 土曜日 16:58:26 JST 現在)

2011/06/25 13:45:46
Linux カーネルになんでXen のサポート強化が採用されたのかと思ったら、oracleが提案したのか。oracle vmってxenだもんね。で、推測だけど、今はxen3系列(カーネルじゃなくハイパーバイザーが)で、xen4系列が4.1.1とstableに入った。なんとかせいと
2011/06/25 10:49:22
Linux kernel 3.0にxen dom-0が正式採用ってニュース流れてたけど、changelog見る限りじゃちっとも導入されてないぞ。 #kernel #Xen
2011/06/23 20:31:53
i check changelog about Linux kernel not shown jeremy, is Dom-0 commiter。konrad is Dom-U commiter. *訳changelog見たけど、Dom-0(所謂仮想化のホストOS)の管理人jeremyの名前が見当たらない。konradさんはDom-U(ゲストOS)の管理人だし。#Xen #Linux #kernel #redhat #redhatjp
2011/06/23 20:31:14
http://t.co/rRN34KG Do Linux kernel 3.0 is really involved Xen Dom-0?  本当にLinux カーネル3.0にXen Dom-0カーネルの機能が(全て)実装されるの?#Xen #kernel #redhatjp

P.S. あれ?結局普段と変わらず割と丁寧に書いてしまった。 くれぐれもこの記事丸々を信用しないこと。 動向ばかり書いてどうこうしようと思っているの?(おやじギャグ)

Xen徹底入門 第2版 (CD-ROM付)
Xen徹底入門 第2版 (CD-ROM付)
クチコミを見る
KVM徹底入門 Linuxカーネル仮想化基盤構築ガイド
KVM徹底入門 Linuxカーネル仮想化基盤構築ガイド
クチコミを見る

Linuxカーネル2.6.34リリース!!

The Linux Kernel Archives


Linuxカーネル2.6.34がリリースされました。
Fedora 13に取り込まれる楽しみです。
カーネル再構築をチャレンジすることで導入することができます。
動かないデバイスがある方はチャレンジしてみるといいでしょう。
ブログ内の検索
Google

WWW を検索
このblog内を検索
最新コメント
コンピューター オススメ
アクセスカウンター

    はてブリスト - 現在
    • ライブドアブログ