首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | HR | 镜像
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
搜索中心 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>linux基础>经验技巧>正文

Ubuntu 8.10 音量快捷键[Fn-KEY]错误处理

http://www.oklinux.cn  2008-11-29  ubuntu.org.cn    会员收藏  游客收藏  【 】 
您查看的文章来源于http://www.oklinux.cn

前段时间Ubuntu 8.10出来了,本人测试了一下,对偶的本本支持不是太好,特别是Fn音量快捷键问题,按下去OSD就一直显示,不返回,音量要不全开,要不慢慢全关,似乎一直按着键使的,经测试,N个笔记本都有这种现象,搜完所有国内BBS,技术支持无果后在国外BBS上苦啃E文,分析系统文件,找到原因了,估计坛子里也有兄弟使用,如果有这种问题的可以彻底解决了。

错误原因是X的输入设备驱动evdev需要key-up信号,而通常Fn键这个缺少,所以造成音量OSD窗口无法终止,进入死循环。处理办法就是重新编译evdev模块。

先备份evdev_drv.so文件,出现错误后可以用控制台命令重新copy回去。

cp /usr/lib/xorg/modules/input/evdev_drv.so ~/

方法1:

step1:下载已经修改好错误的evdev源代码:

wget http://labs.ktemkin.com/Ubuntu/evdev_fix_2.0.99.tar.gz

tar -zxvf evdev_fix_2.0.99.tar.gz

cd evdev_fix

以后步骤参见公用操作。

方法2:

step1:下载Ubuntu源代码中的evdev文件,下载地址:

http://packages.Ubuntu.com/source/intrepid/xserver-xorg-input-evdev

step2:在解开的文件包中的./src/evdev.c文件中找到下面代码:

/* filter repeat events for chording keys */

if (value == 2 &&

(ev->code == KEY_LEFTCTRL || ev->code == KEY_RIGHTCTRL ||

ev->code == KEY_LEFTSHIFT || ev->code == KEY_RIGHTSHIFT ||

ev->code == KEY_LEFTALT || ev->code == KEY_RIGHTALT ||

ev->code == KEY_LEFTMETA || ev->code == KEY_RIGHTMETA ||

ev->code == KEY_CAPSLOCK || ev->code == KEY_NUMLOCK ||

ev->code == KEY_SCROLLLOCK)) /* XXX windows keys? */

return;

step3:在下面代码下面新建一行,输入以下代码:

/* fix events for volume keys */

if(ev->code == KEY_VOLUMEDOWN || ev->code == KEY_VOLUMEUP) //MODIFY THIS LINE

{

//post a keydown and then a keyup, as media keys have no automatic key-up

xf86PostKeyboardEvent(pInfo->dev, code, 1);

xf86PostKeyboardEvent(pInfo->dev, code, 0);

return;

}

如果还有其它Fn功能键错误,则可以自行查键定义加入,如静音键

/* fix events for volume keys */

if(ev->code == KEY_VOLUMEDOWN || ev->code == KEY_VOLUMEUP || ev->code == KEY_MUTE) //MODIFY THIS LINE

{

//post a keydown and then a keyup, as media keys have no automatic key-up

xf86PostKeyboardEvent(pInfo->dev, code, 1);

xf86PostKeyboardEvent(pInfo->dev, code, 0);

return;

}

以上方法1或者方法2做完后执行下面编译过程:

step1:安装编译工具及环境:

sudo apt-get install build-essential libtool automake gcc xorg-dev

step2:编译:

./autogen.sh

make

sudo make install

setp3:拷贝驱动程序到正确的位置:

sudo cp /usr/local/lib/xorg/modules/input/evdev_drv.so /usr/lib/xorg/modules/input/

执行完后会自动重启X,如果没有自动重启应手动重启,一般情况下就OK了,如果出现不能进入X,可在开机时按ESC进入安全模式,恢复备用的模块文件。

sudo cp ~/evdev_drv.so /usr/lib/xorg/modules/input/

sudo reboot

重申,因为涉及系统基本输入模块,必须要求操作者懂点儿基本编译常识及黑屏处理方法,否则出现系统不能进入X的后果自行负责。


上一篇:局域网内Ubuntu与WinXP共享文档   下一篇:Linux救援模式rescue 的使用

收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·Linux救援模式rescue 的使用
·局域网内Ubuntu与WinXP共享文档
·Fedora 10也来个U盘安装版
·Ubuntu系统性能优化简单教程
·Ubuntu 8.10环境NVIDIA显卡无法正常工作解决方法
·Ubuntu配置CPU温度、风扇转速、硬盘温度监控
·Linux 下JDK1.4与JDK1.6的区别实例解析
·网友分享:Linux系统下的硬盘提速方案
·Linux中如何查看文件的最初创建时间
·Ubuntu搬迁:从虚拟磁盘到真实的分区
·Ubuntu 8.10竟能通过索爱手机GPRS上网
·Ubuntu 9.04 开发进程官方时间表
·Ubuntu 8.10最快的源(南方地区电信)
·Linux系统使用经验大分享
·你是否用得着?Ubuntu新版特性大盘点
·升级Ubuntu 8.10后virtualbox无法启动
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·Linux救援模式rescue 的使用
·局域网内Ubuntu与WinXP共享文档
·Fedora 10也来个U盘安装版
·Ubuntu系统性能优化简单教程
·Ubuntu 8.10环境NVIDIA显卡无法正常工
·Ubuntu配置CPU温度、风扇转速、硬盘温
·Linux 下JDK1.4与JDK1.6的区别实例解析
·网友分享:Linux系统下的硬盘提速方案
·Linux中如何查看文件的最初创建时间
·Ubuntu搬迁:从虚拟磁盘到真实的分区
·Ubuntu 8.10竟能通过索爱手机GPRS上网
·Ubuntu 9.04 开发进程官方时间表
  阅读排行
·Linux爱好者入门教程
·安装Ubuntu分区的推荐方案及方法
·Ubuntu下安装苹果MAC风格主题(图)
·Ubuntu 8.04 硬盘安装过程
·Ubuntu 3D桌面特效展示!超绚目(图)
·Fedora 9 配置yum源
·Ubuntu下安装MP3播放器Audacious
·红旗Linux桌面版6.0SP1发布及下载
·从硬盘安装RHEL 5(Red Hat Enterprise
·Windows XP虚拟机vmware中安装Linux步
·Ubuntu 8.04如何安装之完美硬盘安装法
·Linux操作系统下的串口通信学习笔记
·Ubuntu 8.04中文环境设置
·新手看招:调试工具GDB基本知识全接触
·Vmware Workstation 5.0.0使用说明
网摘收藏: