所以我有一个 Palm Pre(原始 P100EWW)模型,我启用了开发者模式,并安装了 Debian Squeeze chroot。效果很好。我计划将它用于任何东西(bittorrent 对等点、网络服务器),但电话除外。
我注意到如果我这样做,cat /dev/urandom > /dev/fb0它实际上会将随机像素写入屏幕,直到产生No space left on device错误为止。太棒了,现在我可以使用显示器了。
那么有哪些实用程序可以 A) 让我使用 /dev/fb0 作为控制台,我可以将文本输出到或 B) 从命令行在 /dev/fb0 上呈现文本。
我还不知道要为此重新编译内核(我很想最终完全剥离 WebOS 并将其变成一个最小的 ARM 服务器),因此我要问的是用户空间工具(如果存在)。也更愿意直接渲染到 /dev/fb0 而不是使用 X。
使用 KMS,图形驱动程序被移动到内核中。由于帧缓冲区已经在内核中,我不希望这会影响帧缓冲区操作。然而,我读到 KMS 取代了 fb,增加了 fb,需要 fb,并且需要删除 fb 支持。有没有搞错?我正在寻找的答案是对 KMS 和帧缓冲区之间关系的解释。
我一直在使用 uvesafb 在 tty 上获得原始分辨率。我在这里的目的是了解这将如何在带有 KMS 的系统上工作。它也有助于涵盖诸如..使用 KMS 滚动速度更快吗?fbterm 和 fbida 等实用程序的工作方式相同吗?稳定性更好吗?
我不确定这是否是唯一可能的方法,但我读到过,为了将单个像素放在屏幕上您选择的位置,必须将一些内容写入一个名为 framebuffer 的地方。所以我开始好奇,是否有可能进入这个地方并在其中写入一些东西,以便在屏幕上的某个地方显示单个像素。
我正在尝试让 PCMCIA 调谐器卡在我的无头家庭服务器中运行,运行 Debian Squeeze。现在,由于我很难找到正确的命令行进行捕获,使用 VLC 将视频转码端流式传输到网络,因此我决定逐步进行,并首先处理本地输出。
这就是问题所在:似乎没有帧缓冲设备 (/dev/fb0) 可以访问以在附加屏幕上显示图形!事实上,我注意到我在启动时没有 Linux penguin 映像(之前没有注意,因为屏幕已连接,但始终关闭,无论如何计算机始终处于开启状态)。
由于我对Linux图形不太熟悉,我想了解:
现在一些一般信息:
关于这个问题的任何想法/评论?
我正在运行 Ubuntu 12.04 LTS 作为家庭 NAS 服务器,没有 X。最近我开始调整它以用作视频播放媒体设备。在这一点上安装 X 可能更容易,但我决定尝试使用帧缓冲播放的 mplayer。它奏效了,一切都很好。
然而,出于好奇,也许还有实际后果,我不能停止思考帧缓冲区。似乎只有一个帧缓冲设备,/dev/fb0. (顺便说一句。我正在使用 vesafs 驱动程序)如果我运行多个使用帧缓冲区的程序,就会出现混乱。例如,从 fbterm 运行 mplayer 只会使其崩溃。奇怪的是,fbi 图像查看器设法以某种方式查看图像。显然程序不能共享设备,毕竟没有窗口系统。
那么,(vesa) fb 设备的数量是否仅限于硬件显示设备?或者原则上可以有更多,比如有多个 ttys?是否会添加更多帮助同时运行使用它们的软件?我怎么能添加更多?
此外,帧缓冲区如何连接到 ttys 的逻辑对我来说也不太清楚......例如,mplayer 在每个 tty 上显示它的视频帧,但 fbi 没有。此外,Ubuntu 默认控制台 (fbcon?) 显示在视频叠加层后面,这让我感到很奇怪。这是怎么回事?
我想将我的控制台(不是 X Server)旋转 90 度(顺时针)。
下面似乎是为我工作:echo 1 > /sys/class/graphics/fbcon/rotate; 但是,我更喜欢在 Grub 中使用内核选项,而不是在/etc/rc.local脚本中包含上述内容。
该FBCON文档列出了可以传递给内核以下选项:fbcon=rotate:<n>。不幸的是,当我像这样修改/etc/default/grub和修改GRUB_CMDLINE_LINUX行时:
GRUB_CMDLINE_LINUX="fbcon=rotate_all:1"
Run Code Online (Sandbox Code Playgroud)
......它不起作用。我也在update-grub重新启动之前运行。
我也试过这个:
GRUB_CMDLINE_LINUX="fbconsole=rotate_all:1"
Run Code Online (Sandbox Code Playgroud)
依然没有。有什么想法吗?
我正在阅读“mplayer”手册页,试图仅使用控制台播放视频(我没有或不想安装 X11)。它提到我可以使用内核帧缓冲设备 fbdev2。它有效,但我不太了解“内核帧缓冲区”是什么。我可以配置吗?它的使用有限制吗?它是否使用显卡来渲染图形?另外,(我在我的笔记本电脑上集成了英特尔显卡),是否有替代方案或更好的解决方案来从不是内核帧缓冲区的控制台播放视频?
目标:我正在为帧缓冲区编写一个非常简单的图像查看器/dev/fb0(类似于fbi)。
当前状态:
/sys/class/graphics/fb0/virtual_size我的软件从(例如)中获取像素分辨率1920,1080。/dev/fb0. 这在我的一台分辨率为 1920x1080 的笔记本电脑上运行得非常好。y更准确地说:在-row x-col =>处设置一个像素,arr[y * 1920 * 4 + x * 4 + channel]其中值为channel(0,1,2,3分别为B、G、R和A)。问题:
/sys/.../virtual_size当我在旧笔记本电脑上使用( ->分辨率)尝试相同的软件时1366,768,图像未正确显示(有点倾斜)。所以我研究了像素宽度值,发现该值为1376(而不是 1366)。
问题:
QEMU 选项-display curses和-nographic -device sga(串行图形适配器)对于在图形环境之外运行 QEMU 非常方便。
(想想:远程 ssh 连接、救援系统等)
但是,这两种模式都无法与帧缓冲区文本模式一起使用。某些 Linux 发行版(例如 Fedora 25)的新默认值似乎是在启动过程中的某个时刻,帧缓冲区文本模式似乎被激活,因此-display cursesQEMU 仅显示“1024x768 图形模式”。使用 SGA 只是不打印任何内容。
因此我的问题是:如何强制内核(以及启动的其余部分)只使用老式的初始文本模式?
添加nomodeset内核参数(并删除rhgb一个)并没有什么区别。
最方便的是一些 QEMU 配置,它强制内核只检测最基本的文本模式 - 因为来宾不必修改。
设置串行控制台(例如通过将console=ttyS0内核参数添加到来宾)在我的环境中有效,但我观察到 Gnome 终端存在一些转义序列问题。此外,这对已经使用帧缓冲区的引导加载程序(例如 Fedora 25 服务器 ISO 上的那个)没有帮助 - 并且需要修改来宾。
使用 Fedora 25 作为来宾,切换到帧缓冲区发生在 initrd 运行时,一些日志消息(来自串行控制台):
[ 1.485115] Console: switching to colour frame buffer device 128x48
[ 1.493184] bochs-drm 0000:00:02.0: fb0: bochsdrmfb frame buffer device
[ 1.502492] [drm] …Run Code Online (Sandbox Code Playgroud)