您的位置: 首页 / Experiences, Software / Ubuntu 6.06 上驱动 Dell SK-8135 键盘和 Logitech MX500 鼠标

Ubuntu 6.06 上驱动 Dell SK-8135 键盘和 Logitech MX500 鼠标

Published at Jul 28, 12pm / Keywords: , , , , , ,

DELL SK-8135最近看了很多 XGL 的演示录像,心里实在是痒痒。最终在昨天装上了 Ubuntu Dapper Drake 6.06。Ubuntu 以前我就用过,基于 Debian,安装和配置都很容易。

Logitech MX500

装上系统后,问题就来了。首先是鼠标上除了左右键和滚轮外,其他的按键都不管用了。我的鼠标是罗技 MX500,我常用的前进后退键不管用实在是无法忍受呀,于是上网查相关的解决方案,最终在 Ubuntu Forum 上查到一篇文章解决了问题。鉴于中文资料几乎没有,我就在这里写一下具体过程,英文好的朋友可以去看原文:

原理就不讲了,主要是用 evdev,具体做法如下,

首先插入鼠标(USB),然后在终端中输入以下命令:

  1. cat /proc/bus/input/devices

你会得到类似这样的结果:

  1. I: Bus=0003 Vendor=046d Product=c025 Version=1800
  2. N: Name="Logitech USB-PS/2 Optical Mouse"
  3. P: Phys=usb-0000:00:1d.1-1/input0
  4. S: Sysfs=/class/input/input1
  5. H: Handlers=mouse0 event1 ts0
  6. B: EV=7
  7. B: KEY=ff0000 0 0 0 0 0 0 0 0
  8. B: REL=103

当然你的结果不一定和我的完全一样,主要是 Name 那一行,对于我用的 MX500 是 Logitech USB-PS/2 Optical Mouse,如果你用的是 MX700 或 MX1000 那样的无线鼠标的话可能是 Logitech USB Receiver。记下这行,然后在终端中键入下面命令写一条 udev 信息:

  1. sudo gedit /etc/udev/rules.d/19-local.rules

在文本编辑器中写入以下 udev 规则:

  1. KERNEL=="event[0-9]*", SYSFS{../name}=="Logitech USB-PS/2 Optical Mouse", NAME="input/event9"

注意,其中的 Logitech USB-PS/2 Optical Mouse 应该改为你刚才记下的 NAME 那行,而 input/event9 应该将 event9 改为一个没有被使用的 event。
修改 Xorg.conf,现做好备份,然后再改:

  1. sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak
  2. sudo gedit /etc/X11/xorg.conf

找到鼠标配置的那一节,改成如下代码:

  1. Section "InputDevice"
  2. Identifier "Configured Mouse"
  3. Driver "evdev"
  4. Option "CorePointer"
  5. Option "Device" "/dev/input/event9" #这里应该填入刚才你所指定的 event
  6. EndSection

保存,退出 gedit。保存您所有的工作,然后按下 Ctrl+Alt+Backspace 重新启动 X。
如果失败了,无法启动 X 的话,可以通过下面的命令简单恢复:

  1. sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf-logi
  2. sudo mv /etc/X11/xorg.conf.bak /etc/X11/xorg.conf
  3. sudo /etc/init.d/gdm restart

准备工作就算完成了,下面我们要配置按键。我们需要 xvkbd 和 xbindkeys,在终端中输入下面的命令:

  1. sudo apt-get install xvkbd xbindkeys

为了模拟滚轮,我们还需要 click,这个软件没有在 ubuntu 软件库中,需要我们自己下载源码编译,我这里有一份编译好的,您直接下载即可。下载后:

  1. sudo cp click /usr/bin
  2. chmod +x /usr/bin/click

以上都完成后,输入以下命令,写入 xbindkeys 规则:

  1. gedit ~/.xbindkeysrc

然后贴入如下代码,当然你可以根据你的具体情况改改它,这样可以实现对每一个按键的定义:

  1. "/usr/bin/xvkbd -xsendevent -text "\[Alt_L]\[Left]""
  2.   m:0x0 + b:6
  3. "/usr/bin/xvkbd -xsendevent -text "\[Alt_L]\[Right]""
  4.   m:0x0 + b:7
  5. "~/click/click 4"
  6.   m:0x0 + b:9
  7. "~/click/click 5"
  8.   m:0x0 + b:10
  9. "gnome-terminal"
  10.   m:0x0 + b:8

对于 MX500 MX700 鼠标,9 是向上滚动按键,10 是向下滚动按键,8 是快速切换任务的按键,5 是前进 6 是后退。你可以通过 xev 来得到这些信息。
最后,在“系统:首选项:会话:启动程序”中添加 xbindkeys。重新启动 GNOME(注销后重新登录),你的 MX500 上所有按键都可以使用了。

下面这些操作可以让你的 MX500,MX518,MX700 等切换到 800cpi 工作,默认是 400cpi。打开终端输入命令:

  1. wget http://www.bedroomlan.org/~alexios/files/SOFTWARE/lmctl/lmctl_0.3.2_i386.deb
  2. sudo dpkg -i lmctl_0.3.2_i386.deb
  3. sudo gedit /etc/init.d/local

在编辑器中粘贴下面的代码:

  1. echo "Setting up Logitech mouse..."
  2. lmctl -8

保存,在终端中输入:

  1. sudo chmod 755 /etc/init.d/local
  2. sudo update-rc.d local defaults

重新启动计算机,你的鼠标已经工作在 800cpi 上了。

DELL SK-8135

对于键盘来说,由于 GNOME 已经内置了 XKB 扩展,基本上所有的功能键都可以使用了。对于 DELL SK-8135 来说,唯一不能用的就是那个音量调节旋钮。Google 了半天,最终在一个法语网站上找到了答案,当然作者显然是高手,只给出了一个程序,具体解决方案一字未提,真是苦了我这样的菜鸟了。不过经过摸索,还是勉强解决了这个问题,下面是我的方法:

首先要得到我们需要的程序 sk8135-pcm 和 aumix,前者就是那个法国人写的程序,我已经将它编译好,您可以从这里下载,后者在 ubuntu 软件仓库里面有:

  1. sudo cp sk8135-pcm /usr/bin
  2. chmod +x /usr/bin/sk8135-pcm
  3. sudo apt-get install aumix

然后我们模仿鼠标的方法,给键盘添加一个 event。首先要查找我们书写 udev 规则所需的标识,因为 Dell SK8135 键盘上集成 USB-hub,因此在系统中会有两个 USB 设备,最要命的是他们都叫 Dell USB Keyboard Hub,我们先要用这样的命令找到这两个设备的 event:

  1. cat /proc/bus/input/devices

返回类似这样的结果:

  1. I: Bus=0003 Vendor=413c Product=2010 Version=0100
  2. N: Name="Dell Dell USB Keyboard Hub"
  3. P: Phys=usb-0000:00:02.0-1.1/input0
  4. S: Sysfs=/class/input/input1
  5. H: Handlers=kbd event1
  6. B: EV=120003
  7. B: KEY=10000 7 ff87207a c14057ff febeffdf ffefffff ffffffff fffffffe
  8. B: LED=1f
  9.  
  10. I: Bus=0003 Vendor=413c Product=2010 Version=0100
  11. N: Name="Dell Dell USB Keyboard Hub"
  12. P: Phys=usb-0000:00:02.0-1.1/input1
  13. S: Sysfs=/class/input/input2
  14. H: Handlers=kbd event2
  15. B: EV=b
  16. B: KEY=3878 c8015001 20000 0 0 0
  17. B: ABS=1 0

是 event1 和 event2,我们需要试验一下到底是哪一个。现打开一个音乐播放器,放个音乐,然后在终端中执行:

  1. sudo sk8135-pcm /dev/input/event1

然后调节音量控制旋钮,如果音量会改变的话就是这个 event 了,如果不能调节的话可以试试另一个 event。找到后暗 Ctrl+C 结束程序,在终端中输入以下命令,假设我们找到的是 event1:

  1. udevinfo -a -p $(udevinfo -q path -n /dev/input/event1)

记下第一个SYSFS{modalias},比如我这里为:

  1. BUS=="usb"
  2.     ID=="1-1.1:1.1"
  3.     DRIVER=="usbhid"
  4.     SYSFS{bAlternateSetting}==" 0"
  5.     SYSFS{bInterfaceClass}=="03"
  6.     SYSFS{bInterfaceNumber}=="01"
  7.     SYSFS{bInterfaceProtocol}=="00"
  8.     SYSFS{bInterfaceSubClass}=="00"
  9.     SYSFS{bNumEndpoints}=="01"
  10.     SYSFS{interface}=="Dell USB Keyboard Hub"
  11.     SYSFS{modalias}=="usb:v413Cp2010d0100dc00dsc00dp00ic03isc00ip00"

在终端中键入下面命令写一条 udev 信息:

  1. sudo gedit /etc/udev/rules.d/19-local.rules

在文本编辑器中写入以下 udev 规则:

  1. KERNEL=="event[0-9]*", SYSFS{modalias}=="usb:v413Cp2010d0100dc00dsc00dp00ic03isc00ip00", NAME="input/event10"

然后修改 /etc/init.d/local:

  1. sudo gedit /etc/init.d/local

在编辑器中粘贴下面的代码:

  1. echo "Setting up Dell SK-8135 Keyboard..."
  2. sk8135-pcm /dev/input/event10 &

保存,退出。重新启动计算机后,你的音量旋钮就起作用了。

发表您的观点或推荐本文 Loading...

18 Responses

  1. Jul 30, 8pm / LINK / REPLY
    Gravatar

    :smile: 基本上看不懂:(

  2. Aug 1, 8am / LINK / REPLY
    Gravatar

    800dpi吧

  3. Aug 3, 11am / LINK / REPLY
    Gravatar

    手头暂时没有6.06,在用5.10。声卡有问题,网络配置有问题。sudo pppoeconf出的结果有问题……嘻~~

  4. Aug 3, 2pm / LINK / REPLY
    Gravatar

    to 小天: 有一个版本的内核好像声音有问题,我升级后也没声音又换回来了。
    pppoeconf 我这里一切顺利,没法帮你了。

  5. Aug 6, 7pm / LINK / REPLY
    Gravatar

    侧栏都被代码挤跑了啊……
    另外就是感觉 coComment 还是不那么友好,好像只要安装了就必须跟踪,能够选择的只有是否链接到用户id。你这里的 coComment 怎么实现的?

  6. Marcos
    Aug 19, 10am / LINK / REPLY
    Gravatar

    Hey, could you help me ?
    I’m mexican and is dificult for me to understand this language
    Thank’s a lot
    kind regards !

  7. Aug 28, 1pm / LINK / REPLY
    Gravatar

    修改完 rule 之后重启 X 还不够,应该是需要重启系统,或者是重启 udev?
    不然 /dev/imput/event9这个文件没有建立阿。

  8. Aug 28, 1pm / LINK / REPLY
    Gravatar

    有一个问题,xvkbd 怎么模拟 ctrl + alt + right 这样的按键呢?似乎只能模仿两个按钮同时按下阿。。。

  9. raven
    Dec 7, 5pm / LINK / REPLY
    Gravatar

    请问楼主配置成功了吗?
    我用的是 Ubuntu 6.06LTS,鼠标也是Logitech-MX500
    但是按照文章所说的方法无法实现,修改xorg.conf以后无法进去X。

  10. Dec 8, 11pm / LINK / REPLY
    Gravatar

    to raven: 我写这篇文章时用的是 Ubuntu 5.10,不过在 Ubuntu 6.06 LTS 上同样的方法也可以使用。

  11. ddr9334
    May 4, 3pm / LINK / REPLY
    Gravatar

    好文~~受益匪浅~~
    我的MX500在feisty下配置成功 用起来舒服多了

  12. Oct 19, 4am / LINK / REPLY
    Gravatar

    这里是另一个DELL键盘的音量旋钮驱动程序,原理上应该和sk8135-pcm是一样的,但是更简单,不需要修改udev配置就可以用。受它启发,我写了个驱动Creative XMod音量旋钮的小程序,有XMod的朋友可以去我的网站下载源程序,在feisty下调试通过。

  13. Oct 19, 4am / LINK / REPLY
    Gravatar

    这里是另一个DELL键盘的音量旋钮驱动程序,原理上应该和sk8135-pcm是一样的,但是更简单,不需要修改udev配置就可以用。受它启发,我写了个驱动Creative XMod音量旋钮的小程序,有XMod的朋友可以去我的网站下载源程序。

  14. yu
    Jan 15, 11am / LINK / REPLY
    Gravatar

    你好!我想做一个prototpye,利用8135上的旋转按钮做些其它控制,不知道您知道如何在c#程序中获得音量旋转按钮的数据不?能麻烦你和我email联系下吗?

  15. yu
    Jan 15, 11am / LINK / REPLY
    Gravatar

    我的email地址是:v-yuguo@microsoft.com
    谢谢:)

  16. CDECKER
    Jan 23, 1am / LINK / REPLY
    Gravatar

    CAN ANYONE HELP ME TRYING TO GET THE MULTIMEDIA KEYS TO WORK ON MY SK-8135
    THANKS CHRIS
    CHRIS1733@LIVE.COM

Now, It's your Turn!

BACK TO Article / Comments