帧缓冲区不可用。如何在 Ubuntu 上安装设备 /dev/fb/0?

帧缓冲区不可用。如何在 Ubuntu 上安装设备 /dev/fb/0?

我正在尝试在 2.6.31-14-generic #48-Ubuntu 上运行使用帧缓冲区的应用程序。

我需要做的就是安装一个帧缓冲设备来摆脱以下错误:

/dev/fb/0: No such file or directory
framebuffer not available.
FATAL: no framebuffer available

我搜索了 Google 并找到了一些资源指示如何在 Grub2 上执行此操作 - 尽管我无缝地遵循了它们,但我什么也没得到。

有任何想法吗?

答案1

您需要激活帧缓冲区驱动程序,该驱动程序默认情况下始终处于停用状态。

我配置了这些:

echo "fbcon" | sudo tee -a /etc/initramfs-tools/modules
echo "vesafb" | sudo tee -a /etc/initramfs-tools/modules

然后我注释掉了 vesafb(这适用于我听到的所有卡片)

/etc/modprobe.d/blacklist-framebuffer.conf

然后我们更新配置:

sudo update-initramfs -u -k all

我们快完成了。现在我们需要在帧缓冲区中查找卡支持的分辨率。您可能需要安装 hwinfo

sudo hwinfo --framebuffer

您可以看到分辨率及其十六进制代码。

e现在您可以在启动时按下该键并添加vga=[hexadecimalcode](ef )或者在单词后面vga=0x346使更改永久生效。/boot/grub/menu.lstdefoptions

我发现在接触 grub 配置之前尝试e密钥以确保它能正常工作更为安全。

稍后,当您切换到ttyAlt+F1-6,它将采用您指定的分辨率。您可以使用fbi和其他实用程序。

答案2

我以为 Ubuntu 有/dev/fbX而没有/dev/fb/X设备?

$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.1 LTS"
$ ls -l /dev/fb/*
ls: cannot access 'fb/*': No such file or directory
$ ls -l /dev/fb*
crw-rw---- 1 root video 29, 0 авг 29 11:41 fb0

尝试使用其他名称运行该程序,或者,如果失败,则创建指向该文件的链接:

# mkdir /dev/fb
# ln /dev/fb0 /dev/fb/0

运行测试:

# sudo dd if=/dev/urandom of=/dev/fb/0
dd: writing to '/dev/fb/0': No space left on device
15001+0 records in
15000+0 records out
7680000 bytes (7,7 MB, 7,3 MiB) copied, 0,501639 s, 15,3 MB/s
# sudo dd if=/dev/urandom of=/dev/fb0
dd: writing to '/dev/fb0': No space left on device
15001+0 records in
15000+0 records out
7680000 bytes (7,7 MB, 7,3 MiB) copied, 0,523867 s, 14,7 MB/s

它在我的盒子上运行良好,但是 YMMV。

相关内容