Se siete tra quanti pensano che systemd-bsod, ossia il Blue Screen Of Death implementato da Systemd, sia una cattiva idea e vi ricordate, tra l’esterrefatto ed il divertito, la faccenda dell’altro Blue Screen Of Death, stavolta scatenato dalla DRM panic infrastructure del Kernel Linux, potreste apprezzare questa “nuova diavoleria” che stiamo per raccontarvi.
Racconta infatti Phoronix di come, a partire dalla release 6.12 del Kernel Linux (nota: entro domenica potrebbe uscire la 6.11), la visualizzazione della “Death Screen”, non necessariamente blu quindi, comprenderà un grosso QR code, i cui esempi sono presenti nel repository https://github.com/kdj0c/panic_report/issues/1:
Quello che i più potrebbero chiedersi è però: QR Code significa sostanzialmente un link, e questo link a cosa punta?
Per svelare il mistero basta inquadrare il QR code in questione con un reader come quelli presenti in ormai ogni smartphone. ll risultato sarà questo output:
[ 3.319019] RPC: Registered tcp-with-tls transport module. [ 3.319019] RPC: Registered tcp NFSv4.1 backchannel transport module. [ 3.606789] NET: Registered PF_QIPCRTR protocol family [ 6.181205] rfkill: input handler disabled [ 7.416796] input: spice vdagent tablet as /devices/virtual/input/input7 [ 61.830264] sysrq: Trigger a crash [ 61.830271] Kernel panic - not syncing: sysrq triggered crash [ 61.830276] CPU: 6 PID: 2354 Comm: bash Not tainted 6.10.0-rc1+ #88 [ 61.830278] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS edk2-20240524-2.fc39 05/24/2024 [ 61.830280] Call Trace: [ 61.830282] <TASK> [ 61.830285] dump_stack_lvl+0x2d/0x90 [ 61.830294] panic+0x118/0x300 [ 61.830297] sysrq_handle_crash+0x1a/0x20 [ 61.830299] __handle_sysrq+0x130/0x140 [ 61.830302] write_sysrq_trigger+0x4c/0x80 [ 61.830304] proc_reg_write+0x68/0xb0 [ 61.830306] vfs_write+0x111/0x3e0 [ 61.830308] ? do_syscall_64+0x9a/0x170 [ 61.830310] ksys_write+0x72/0xe0 [ 61.830312] do_syscall_64+0x8e/0x170 [ 61.830314] ? do_syscall_64+0x9a/0x170 [ 61.830315] ? filp_close+0x5c/0x80 [ 61.830317] ? do_dup2+0xae/0x110 [ 61.830319] ? syscall_exit_to_user_mode+0xb0/0xd0 [ 61.830321] ? do_syscall_64+0x9a/0x170 [ 61.830323] ? __se_sys_fcntl+0x64/0xb0 [ 61.830324] ? syscall_exit_to_user_mode+0xb0/0xd0 [ 61.830326] ? do_syscall_64+0x9a/0x170 [ 61.830328] ? ptep_set_access_flags+0x27/0x40 [ 61.830330] ? _raw_spin_unlock+0xe/0x30 [ 61.830332] ? do_wp_page+0x7f4/0x1100 [ 61.830334] ? __se_sys_fcntl+0x64/0xb0 [ 61.830335] ? syscall_exit_to_user_mode+0xb0/0xd0 [ 61.830337] ? __count_memcg_events+0x6e/0x100 [ 61.830338] ? handle_mm_fault+0xa18/0x13e0 [ 61.830340] ? kmem_cache_free+0x2d/0x2e0 [ 61.830344] ? do_user_addr_fault+0x212/0x750 [ 61.830346] ? clear_bhb_loop+0x25/0x80 [ 61.830348] ? clear_bhb_loop+0x25/0x80 [ 61.830350] ? clear_bhb_loop+0x25/0x80 [ 61.830352] entry_SYSCALL_64_after_hwframe+0x76/0x7e [ 61.830356] RIP: 0033:0x7f11316cb834 [ 61.830360] Code: c7 00 16 00 00 00 b8 ff ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 f3 0f 1e fa 80 3d 15 f8 0d 00 00 74 13 b8 01 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 54 c3 0f 1f 00 55 48 89 e5 48 83 ec 20 48 89 [ 61.830361] RSP: 002b:00007ffc1b0593c8 EFLAGS: 00000202 ORIG_RAX: 0000000000000001 [ 61.830364] RAX: ffffffffffffffda RBX: 0000000000000002 RCX: 00007f11316cb834 [ 61.830365] RDX: 0000000000000002 RSI: 00005566aa3202e0 RDI: 0000000000000001 [ 61.830366] RBP: 00007ffc1b0593f0 R08: 0000000000000073 R09: 00000000ffffffff [ 61.830367] R10: 0000000000000000 R11: 0000000000000202 R12: 0000000000000002 [ 61.830368] R13: 00005566aa3202e0 R14: 00007f11317a45c0 R15: 00007f11317a1f00 [ 61.830371] </TASK> [ 61.830543] Kernel Offset: 0x3a000000 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffffbfffffff)Quindi non si tratta di alcun link, bensì quello che potremmo definire lo “stack trace” del problema verificatosi, con tutti i dettagli del caso.
Decisamente molto, ma molto più utile di una schermata blu che più che creare angoscia non fa. Un testo che può essere utilizzato per ricavare informazioni, copiare ed incollare testo per approfondire, e tutti gli utilizzi pratici che possono venire in mente in situazioni simili.
La funzionalità sarà controllata dalla variabile Kconfig chiamata DRM_PANIC_SCREEN_QR_CODE che andrà gestita in fase di compilazione e che quindi le distribuzioni potranno scegliere o meno di implementare.
Una buonissima ragione per attendere con trepidazione Linux 6.12 che magari vedremo in Ubuntu 24.10, dopo la scelta fatta da Canonical di virare sulla release upstream del Kernel Linux…
Da sempre appassionato del mondo open-source e di Linux nel 2009 ho fondato il portale Mia Mamma Usa Linux! per condividere articoli, notizie ed in generale tutto quello che riguarda il mondo del pinguino, con particolare attenzione alle tematiche di interoperabilità, HA e cloud.
E, sì, mia mamma usa Linux dal 2009.