as4.8升级内核后找不到/dev/tty0
系统是redhat as4 update8
内核版本是:2.6.36.2
.config文件不方便放上来,重新编译内核并成功安装后,用新内核启动后在keymap的时候就提示找不到/dev/tty0这个文件
网上搜了很多资料,最后试验均以失败告终。
特来CU求助,请大侠们指点,谢谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
基本上除以下功能外其他功能都正常:
1.终端鼠标支持:以前在字符界面可以用鼠标拷贝,现在不行
2.进不了x-windows,即使自己手动建立tty0也还是不行
昨天用默认配置又跑了遍,还是这个错误
tty1-9都有的,就是没tty0
我也遇到这个问题,请高手帮助!
回复 1# Cloud.D.Ace
今天正好看到这里,内核版本2.6.33。
tty0与tty1至tty$(MAX_NR_CONSOLES)虽然是同一主设备号,关联的却是不同的file_operations,注册也是分开的。tty0驱动注册失败可是会panic的,没有产生节点可能是device_create失败了。我这个版本里,device_create没有检查返回值。2.6.39里,这个地方检查返回值了,但是出错情况下并没发出什么警告信息。
2.6.33的drivers/char/vt.c,2.6.39的drivers/tty/vt/vt.c,在vty_init的开头,LZ可以看一下代码里有没有检查device_create的返回值,然后依据情况修改一下代码,在device_create失败时panic,看看是否真是这里有问题。
2.6.33:
复制代码2.6.39
复制代码
谢谢5楼,2.6.36版本相关代码
int __init vty_init(const struct file_operations *console_fops)
{
cdev_init(&vc0_cdev, console_fops);
if (cdev_add(&vc0_cdev, MKDEV(TTY_MAJOR, 0), 1) ||
register_chrdev_region(MKDEV(TTY_MAJOR, 0), 1, "/dev/vc/0" < 0)
panic("Couldn't register /dev/tty0 driver\n";
device_create(tty_class, NULL, MKDEV(TTY_MAJOR, 0), NULL, "tty0";
vcs_init();
console_driver = alloc_tty_driver(MAX_NR_CONSOLES);
if (!console_driver)
panic("Couldn't allocate console driver\n";
console_driver->owner = THIS_MODULE;
console_driver->name = "tty";
console_driver->name_base = 1;
console_driver->major = TTY_MAJOR;
console_driver->minor_start = 1;
console_driver->type = TTY_DRIVER_TYPE_CONSOLE;
console_driver->init_termios = tty_std_termios;
if (default_utf
console_driver->init_termios.c_iflag |= IUTF8;
console_driver->flags = TTY_DRIVER_REAL_RAW | TTY_DRIVER_RESET_TERMIOS;
tty_set_operations(console_driver, &con_ops);
if (tty_register_driver(console_driver))
panic("Couldn't register console driver\n";
kbd_init();
console_map_init();
#ifdef CONFIG_MDA_CONSOLE
mda_console_init();
#endif
return 0;
}
请帮看看咋修改。
本帖最后由 tempname2 于 2011-06-12 19:18 编辑
检查一下返回值。
复制代码启动以后在日志里搜索相关提示信息:
复制代码如果有结果,说明确实是这里有问题,但具体是什么问题还要进一步调试。如果没有结果。。。。那就不好说了,一时看不出其它可能出错的地方。
没有信息输出。不知道啥错。
这个问题你搞定了吗?
我的已解决,如果你还没有解决,尝试修改.config中的CONFIG_SYSFS_DEPRECATED=y
CONFIG_SYSFS_DEPRECATED_V2=y
这2项,然后重新编译
果然很对
增加
CONFIG_SYSFS_DEPRECATED=y
CONFIG_SYSFS_DEPRECATED_V2=y