mete0r / psmouse-alps-730264-imps-emulation

Acer Aspire One 753 / Ubuntu Lucid / 2.6.32

Home Page:https://bugs.launchpad.net/ubuntu/+source/linux/+bug/550625

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

0. 현재 lucid의 linux-image는 linux-image-generic -> linux-2.6.32-*로 이어지고 있음. 현재(110206)는 2.6.32.28이 설치됨.
maverick은 linux-2.6.35 기반 커널을 쓰는데, #550625의 Andrew Skalski의 2.5.35-alps-730264-imps-emulation.patch를 적용하였을떄는 psmouse vert-scroll이 성공한 바 있음.

henk의 작업은 dell Precision 4500의 모델일 경우에 특정한 방법을 쓰는 듯. (델 공식 제공 패치?)
Andrew Skalski의 작업은 0xEC Memory Access Protocol을 리버스엔지니어링해서 구현한 것. (alps-730264-imps-emulation.patch)

henk의 패치와 Andrew Skalski의 작업은 둘 다 동일한 signature {0x73, 0x02, 0x64}를 디텍팅하고 있음. 따라서 두 패치가 같이 적용되면 안될 것으로 보임.

1. 커널 2.6.32-28-generic에서 henk가 제공하는 psmouse-dkms 패키지로는 vertical scrolling이 되지 않는다.

xinput list:

⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ Macintosh mouse button emulation        	id=12	[slave  pointer  (2)]
⎜   ↳ PS/2 Mouse                              	id=11	[slave  pointer  (2)]
⎜   ↳ AlpsPS/2 ALPS GlidePoint                	id=13	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Power Button                            	id=6	[slave  keyboard (3)]
    ↳ Video Bus                               	id=7	[slave  keyboard (3)]
    ↳ Sleep Button                            	id=8	[slave  keyboard (3)]
    ↳ 1.3M WebCam                             	id=9	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=10	[slave  keyboard (3)]

2. Andrew Skalski는 다음 두 패치를 만들었음.

- alps-730264-imps-emulation.patch : for 2.6.32
- 2.6.35-alps-730264-imps-emulation.patch : for 2.6.35

그런데 둘은 단지 적용되는 커널 버젼만 다른 것이 아니고, 전자에 비해 후자는 psmouse-base.c를 수정하지 않고 수정 사항이 alps.{c,h} 및 psmouse.h에 국한된다.

그래서 후자를 현재의 2.6.32 커널로 백포팅하였음. (현재 이 글을 쓰는 중 uname -r: 2.6.32-28-generic)

이후 커널 업그레이드 등을 위해 dkms 패키지로 만들었음. dkms 패키지 이름은 psmouse-alps-730264-imps-emulation이고 현재 버젼은 0.1임.
이것을 설치하려면 /usr/src/{MODULE_NAME}-{VERSION_NUMBER}에 디렉토리를 놓은 뒤

sudo dpkg add -m {MODULE_NAME} -v {VERSION_NUMBER}
sudo dpkg build -m {MODULE_NAME} -v {VERSION_NUMBER}
sudo dpkg install -m {MODULE_NAME} -v {VERSION_NUMBER}

을 실행시켜야 함.

소스 관리를 위해 ~/launchpad-550625/psmouse-alps-730264-imps-emulation 에 git 저장소를 만들었으며, /usr/src 의 dkms 소스 디렉토리는 이 저장소로부터 clone한 것임.

3. DKMS 자동 설치에 관해

새로운 커널이 설치될 때 자동으로 dkms 패키지들이 설치되려면 해당 커널의 헤더 패키지인 linux-headers-$(KERNEL_VERSION)가 함께 설치되어야 한다. 수동으로 커널 이미지 설치시엔 헤더 패키지도 함께 설치한다.
다만 lucid 메인 커널 자동 업데이트의 경우 linux-image -> linux-image->generic -> linux-image-$(KERNEL_VERSION)의 의존성에 의해 커널 이미지 패키지가 설치될 것인데, 해당 헤더 페키지도 아마 linux-headers-generic에 의해 자동으로 설치될 듯 하다. (다음번 커널 업데이트 시 확인 필요)

4. 기타

http://www.projectosx.com/forum/index.php?showtopic=1937&pid=11905&mode=threaded&start=#entry11905
Andrew Skalski와 비슷한 리버스 엔지니어링으로 Mac OSX용 드라이버를 만드는 듯. VoodooPS2?

About

Acer Aspire One 753 / Ubuntu Lucid / 2.6.32

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/550625


Languages

Language:C 100.0%