您的位置: 首页 / 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),然后在终端中输入以下命令:

cat /proc/bus/input/devices

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

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

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

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

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

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,现做好备份,然后再改:

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

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

Section “InputDevice”
Identifier “Configured Mouse”
Driver “evdev”
Option “CorePointer”
Option “Device” “/dev/input/event9” #这里应该填入刚才你所指定的 event
EndSection

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

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

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

sudo apt-get install xvkbd xbindkeys

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

sudo cp click /usr/bin
chmod +x /usr/bin/click

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

gedit ~/.xbindkeysrc

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

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

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

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

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

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

echo “Setting up Logitech mouse…”
lmctl -8

保存,在终端中输入:

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

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

DELL SK-8135

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

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

sudo cp sk8135-pcm /usr/bin
chmod +x /usr/bin/sk8135-pcm
sudo apt-get install aumix

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

cat /proc/bus/input/devices

返回类似这样的结果:

I: Bus=0003 Vendor=413c Product=2010 Version=0100
N: Name=”Dell Dell USB Keyboard Hub”
P: Phys=usb-0000:00:02.0-1.1/input0
S: Sysfs=/class/input/input1
H: Handlers=kbd event1
B: EV=120003
B: KEY=10000 7 ff87207a c14057ff febeffdf ffefffff ffffffff fffffffe
B: LED=1f

I: Bus=0003 Vendor=413c Product=2010 Version=0100
N: Name=”Dell Dell USB Keyboard Hub”
P: Phys=usb-0000:00:02.0-1.1/input1
S: Sysfs=/class/input/input2
H: Handlers=kbd event2
B: EV=b
B: KEY=3878 c8015001 20000 0 0 0
B: ABS=1 0

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

sudo sk8135-pcm /dev/input/event1

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

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

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

BUS==”usb”
ID==”1-1.1:1.1″
DRIVER==”usbhid”
SYSFS{bAlternateSetting}==” 0″
SYSFS{bInterfaceClass}==”03″
SYSFS{bInterfaceNumber}==”01″
SYSFS{bInterfaceProtocol}==”00″
SYSFS{bInterfaceSubClass}==”00″
SYSFS{bNumEndpoints}==”01″
SYSFS{interface}==”Dell USB Keyboard Hub”
SYSFS{modalias}==”usb:v413Cp2010d0100dc00dsc00dp00ic03isc00ip00″

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

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

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

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

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

sudo gedit /etc/init.d/local

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

echo “Setting up Dell SK-8135 Keyboard…”
sk8135-pcm /dev/input/event10 &

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

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