Linux 系统中找不到/dev/fb0设备如何添加

时间:2021-03-11 11:16:54
运行程序时找不到/dev/fb0文件,听说要重新编译内核可是怎么编译能具体步骤是什么呢?现在一头雾水,希望高手指点一下。

13 个解决方案

#1


mknod /dev/fb0 c 29 0
mknod /dev/fb1 c 29 1

#2


mknod /dev/fb0 c 29 0 字符
mknod /dev/fb0 b 29 0 块.

#3


在启动时加入类似 vga=0x318 到kernel command line中。

#4


以下为ubuntu为例
1. 7.01版本

请查看http://bbs.linuxpk.com/thread-17259-1-42.html

2. 其他版本
直接修改/boot/grub/menu.lst文件

#5


要加帧缓冲支持

#6


redhat9:
修改 /boot/grub/menu.lst 文件,并在 

kernel 打头的一行添加 vga=0x0317

重启

#7


问题解决可以用
mknod /dev/fb0 c 29 0
mknod /dev/fb1 c 29 1

#8


redhat


kernel   /boot/vmlinuz-2.4.20-8   ro   root/=LABEL=/   vga=0x0314   console=/dev/null   CONSOLE=/dev/tty2   
  如果内核支持frambuffer,那么呢开机时,屏幕的左上方能看到一个LOGO—linux的标志消企鹅。   
  以前的启动信息到看不到了,(按alt+F2能看到);如果你看不到小企鹅,说明你的frambuffer没有启成成功,当然打开就有问题。

#9


呵呵,我也正在看这方面的资料,做好了我把源代码发给大家

#10


引用 7 楼 gdatasheet 的回复:
问题解决可以用
mknod /dev/fb0 c 29 0
mknod /dev/fb1 c 29 1


用这个方法后,可以找到文件了,但是显示找不到设备

#11


linux2.6.18以后udev会根据设备自动创建/dev下的设备节点,早期的linux可能需要自己手工创建。
上面的情况应该不仅仅是设备节点的问题,好像是内核配置支持问题。

#12


请问,LZ问题解决了吗
求分享
我也是这个问题
/dev/下只有fb
cat /dev/fb提示没有那个设备
启动参数我也加了,
分别4了vga=0x318
vga=0x37b
我的屏幕分辨率是1280X720,系统是32位

#13


楼主如果/dev/没有fb0设备的话,关键在于内核里面是否加载了此设备,如果加载此设备,则根据对应的主设备号使用mknod来创建设备,否则如果内核没有加载此设备即使创建100个设备节点也不顶用,需要重新编译内核;
fb0设备位于如下选项:

1.下载标准的内核代码(linux-2.6.1x或者linux-2.6.3x都行)
执行make menuconfig打开内核定制界面,根据PC的硬件定制基本设备

2.fb0位于Device Drivers->Graphics Support-->Support for frame buffer devices
根据帮助选择framebuf及VGA等选项

3.执行make && sudo make install安装内核至/boot/目录下
sudo 用于加载root权限或者直接用root用户安装

4.安装模块make modules_install

5.制作initrd文件;
sudo mkinitrd -o /boot/initrd.img-2.6.xx.gz 2.6.x

6.手动修改grub配置菜单,
/boot/grub/menu.lst

开机选择自己的内核启动,检查/dev/fb0是否存在

上述其他专家提示menu.lst的配置选项VGA=0x318等信息用于指定字符界面屏幕的分辨率

#1


mknod /dev/fb0 c 29 0
mknod /dev/fb1 c 29 1

#2


mknod /dev/fb0 c 29 0 字符
mknod /dev/fb0 b 29 0 块.

#3


在启动时加入类似 vga=0x318 到kernel command line中。

#4


以下为ubuntu为例
1. 7.01版本

请查看http://bbs.linuxpk.com/thread-17259-1-42.html

2. 其他版本
直接修改/boot/grub/menu.lst文件

#5


要加帧缓冲支持

#6


redhat9:
修改 /boot/grub/menu.lst 文件,并在 

kernel 打头的一行添加 vga=0x0317

重启

#7


问题解决可以用
mknod /dev/fb0 c 29 0
mknod /dev/fb1 c 29 1

#8


redhat


kernel   /boot/vmlinuz-2.4.20-8   ro   root/=LABEL=/   vga=0x0314   console=/dev/null   CONSOLE=/dev/tty2   
  如果内核支持frambuffer,那么呢开机时,屏幕的左上方能看到一个LOGO—linux的标志消企鹅。   
  以前的启动信息到看不到了,(按alt+F2能看到);如果你看不到小企鹅,说明你的frambuffer没有启成成功,当然打开就有问题。

#9


呵呵,我也正在看这方面的资料,做好了我把源代码发给大家

#10


引用 7 楼 gdatasheet 的回复:
问题解决可以用
mknod /dev/fb0 c 29 0
mknod /dev/fb1 c 29 1


用这个方法后,可以找到文件了,但是显示找不到设备

#11


linux2.6.18以后udev会根据设备自动创建/dev下的设备节点,早期的linux可能需要自己手工创建。
上面的情况应该不仅仅是设备节点的问题,好像是内核配置支持问题。

#12


请问,LZ问题解决了吗
求分享
我也是这个问题
/dev/下只有fb
cat /dev/fb提示没有那个设备
启动参数我也加了,
分别4了vga=0x318
vga=0x37b
我的屏幕分辨率是1280X720,系统是32位

#13


楼主如果/dev/没有fb0设备的话,关键在于内核里面是否加载了此设备,如果加载此设备,则根据对应的主设备号使用mknod来创建设备,否则如果内核没有加载此设备即使创建100个设备节点也不顶用,需要重新编译内核;
fb0设备位于如下选项:

1.下载标准的内核代码(linux-2.6.1x或者linux-2.6.3x都行)
执行make menuconfig打开内核定制界面,根据PC的硬件定制基本设备

2.fb0位于Device Drivers->Graphics Support-->Support for frame buffer devices
根据帮助选择framebuf及VGA等选项

3.执行make && sudo make install安装内核至/boot/目录下
sudo 用于加载root权限或者直接用root用户安装

4.安装模块make modules_install

5.制作initrd文件;
sudo mkinitrd -o /boot/initrd.img-2.6.xx.gz 2.6.x

6.手动修改grub配置菜单,
/boot/grub/menu.lst

开机选择自己的内核启动,检查/dev/fb0是否存在

上述其他专家提示menu.lst的配置选项VGA=0x318等信息用于指定字符界面屏幕的分辨率