我正在编写一个用于嵌入式 CPU 的程序。为此,我尝试设置一个小型 Ubuntu。Ubuntu Minimal 看起来可以工作,但有一个问题:我需要在程序中自己进行图形显示。我可以通过帧缓冲设备在常规 Ubuntu 虚拟终端上很好地完成此操作,但 Minimal 似乎没有/dev/fb0
。
我昨天一整天都在 Google 上搜索,但仍然找不到让 Ubuntu Minimal 创建帧缓冲设备的方法。在 Ubuntu 15.04“Vivid Vervet”Minimal 上激活帧缓冲设备的技巧是什么?
我努力了:
- 将我的用户添加到
video
组中。 - 取消注释该
GRUB_GFXMODE=640x480
条目/etc/default/grub
并调用 update-grub(哦,hwinfo
似乎也不可用) - 似乎没有
/boot/grub/menu.lst
很多人建议我取消注释 sudo modprobe vesafb
说“未找到模块 vesafb”,如果我尝试,uvesafb
它说它无法运行/sbin/v86d
/etc/modprobe.de/blacklist-framebuffer.conf
是空的- 我找不到一个看起来可以包含帧缓冲区支持的 apt-get 包
- 有些地方提到使用“内核参数”做一些事情,但我找不到任何关于它们是什么以及如何设置它们的信息,每个人似乎都认为我知道它们在哪里以及如何编辑它们。
- 我也尝试添加
modeset video=uvesafb:mode_option=640x480
,GRUB_CMDLINE_LINUX_DEFAULT
但这也没有改变任何东西。
如果能提供任何线索来帮助我找到可以打开的位置fb0
,或者如何检查内核是否已编译帧缓冲区支持,我将不胜感激。
答案1
由于我当前在 VirtualBox 模拟的 VESA 兼容显卡上运行 Ubuntu Minimal,因此对于这种特殊情况,以下 3 个步骤就足够了:
- 取消
GRUB_GFXMODE=640x480
注释 中的条目/etc/default/grub
并调用sudo update-grub
。 - 执行
sudo apt-get install v86d
(上面提到的 modprobe 调用表明缺少了它)。 - 做
sudo modprobe uvesafb
感谢@psusi 让我意识到错误可能意味着它完全丢失,而不仅仅是损坏或以其他方式不足。
但是,我仍然不知道在不同的硬件上我需要做什么才能找到相同的结果,所以如果有人能给出更笼统、更不具体的解释,我很乐意听听。我只是想发布这个部分答案,这样它就不是那种“只有问题没有答案”的 SO 帖子了。