Edited at

VirtualBox 5.2.18のVESAが動かない


はじめに

VirtualBox 5.2.18のVESAでfbtermが動かなかったのでvboxvideoを無効にしてみました。


VirtualBoxとVirtualBoxGuestAdditionsを更新したらfbtermでエラー発生

VirtualBoxを新しくしたところ、fbtermが動かなくなってしまいました。


fbtermを動かしたとき

BUG: unable to handle kernel paging request at ffffec8343800020

IP: [<ffffffffa71b6b6a>] fb_deferred_io_fault+0x4a/0xd0
PGD 3f7e0067
PUD 3f7df067
PMD 0

Oops: 0000 [#1] SMP
Modules linked in: vboxsf(O) joydev hid_generic crct10dif_pclmul crc32_pclmul usbhid vboxvideo(O) hid
ghash_clmulni_intel evdev intel_rapl_perf snd_intel8x0 pcspkr ac serio_raw snd_ac97_codec sg ac97_bus
battery ttm drm_kms_helper vboxguest(O) drm video snd_pcm snd_timer snd soundcore button ip_tables
x_tables autofs4 ext4 crc16 jbd2 crc32c_generic fscrypto ecb mbcache sr_mod cdrom sd_mod ata_generic
ohci_pci crc32c_intel aesni_intel aes_x86_64 glue_helper lrw gf128mul ablk_helper cryptd psmouse ahci
libahci ehci_pci ohci_hcd i2c_piix4 ehci_hcd ata_piix usbcore e1000 usb_common libata scsi_mod
CPU: 0 PID: 634 Comm: fbterm Tainted: G O 4.9.0-8-amd64 #1 Debian 4.9.110
-3+deb9u4
Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/2006
task: ffff9aa179e9b140 task.stack: ffffb8220056c000
RIP: 0010:[<ffffffffa71b6b6a>] [<ffffffffa71b6b6a>] fb_deferred_io_fault+0x4a/0xd0
RSP: 0000:ffffb8220056fdc8 EFLAGS: 00010286
RAX: ffffec8343800000 RBX: ffffb8220056fde8 RCX: ffffc00000000fff
RDX: ffffec8343800000 RSI: 0000000000000063 RDI: 0000000000000000
RBP: ffff9aa1766ad190 R08: 0000000000000000 R09: 00007ff67fe83000
R10: ffff9aa1766ad190 R11: 0000000000000001 R12: ffffec8343800000
R13: 0000000000000000 R14: ffff9aa1766ad190 R15: ffffb8220056fe70
FS: 00007ff682cd5740(0000) GS:ffff9aa17fc00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: ffffec8343800020 CR3: 000000003a85a000 CR4: 0000000000040670
Stack:
ffff9aa1766ad190 ffffb8220056fe68 0000000000000000 ffffffffa6fb4dc7
024200ca00000055 0000000000000000 00007ff67fe83000 0000000000000000
0000000000000000 ffff9aa1766ad190 26149015e51e46b1 ffff9aa1766ad190
Call Trace:
[<ffffffffa6fb4dc7>] ? __do_fault+0x87/0x170
[<ffffffffa6fb8dcd>] ? handle_mm_fault+0x58d/0x12b0
[<ffffffffa6e61185>] ? __do_page_fault+0x255/0x4f0
[<ffffffffa7417018>] ? page_fault+0x28/0x30
Code: b8 02 00 00 00 c3 41 54 55 48 89 fd 53 48 89 f3 48 8b b8 10 01 00 00 48 8b b0 f0 03 00 00 e8 fe
fe ff ff 48 85 c0 49 89 c4 74 52 <48> 8b 40 20 48 8d 78 ff a8 01 49 0f 44 fc f0 ff 47 1c 48 8b 07
RIP [<ffffffffa71b6b6a>] fb_deferred_io_fault+0x4a/0xd0
RSP <ffffb8220056fdc8>
CR2: ffffec8343800020
---[ end trace 8e50b1f11ba64ab9 ]---



やった対策

vboxvideoを動かないようにしました。

フレームバッファが遅くなるかも知れません。


vboxvideoを無効化

echo "install vboxvideo /bin/true" | sudo tee -a /etc/modprobe.d/vboxvideo.conf



他メモ (fbdevを有効にする方法と録画)

ブート時にgrubで止めて、カーネルオプションに追加してみた。

すると/dev/fb0が現れる。/dev/fb0のときは--vesa-mode=を使わない。


vesafb(grub)

video=vesafb:mtrr:3,y vga=0x311


録画もできる。vesaだと、未だ分からない。


録画(/dev/fb0)

ffmpeg -y -f fbdev -i /dev/fb0 -framerate 2 /tmp/out.gif