HP_Compaq_2710p
Contents |
Hardware
My model has:
- Intel Core 2 Duo ULV U7600, 1200 MHz
- Intel Corporation Mobile Integrated Graphics Controller [I965GM]
- Intel Corporation 82801H (ICH8 Family) HD Audio Controller
- Intel Corporation 82801H (ICH8 Family) USB UHCI Contoller
- Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller
- Broadcom Corporation BCM4312 802.11a/b/g
- Intel Corporation 82566MM Gigabit Network Connection
- Ricoh Co Ltd R5C832 IEEE 1394 Controller
- Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter
- TOSHIBA MK6008GAH 4200rpm 60GB Hard Drive
- Wacom active digitizer screen
- 2 Button PS/2 Trackstick
- Modem (unknown type)
- Fingerprint Sensor (Internal USB device, AuthenTec AES2501)
I also bought the docking station, with
- USB, Ethernet, VGA, Audio, Modem port replicators, and power supply pass through
- MATSHITA DVD-RAM UJ-844S 1.03
Status
| Feature | Status | Notes |
|---|---|---|
| Suspend to RAM | Working | |
| Suspend to disk | Working | |
| Video | Working | |
| Ethernet | Working | |
| Wireless | Working | |
| Stylus | Working | Pad buttons don't work |
| Docking Station | Working | |
| SD Card Reader | Working | |
| Firewire | Untested | |
| Fingerprint Reader | Working | |
| Modem | Untested | |
| Camera | Working | |
| Bluetooth | Working |
Kernel Config
You can download my kernel configurations from my website. Hardware issues are as follows:
- 2.6.23 kernels
- Flawless wireless support through ndiswrapper
- No native wireless support.
- ACPI bug in gentoo-sources-2.6.23-r8, which causes kacpid to hog 6% of your CPU continuously, once you convert the computer to a tablet.
- 2.6.24 kernels
- Flawless wireless support through ndiswrapper
- Buggy native wireless support, with kernel patch.
- Minor ACPI issues (screen brightness, acpid).
- 2.6.25 kernels
- Flawless wireless support through ndiswrapper
- Flawless native wireless support
- Almost no ACPI issues!!
For 23/24 kernels, be sure you do CONFIG_USB_LIBUSUAL=n, otherwise usb_storage will go crazy when you attach your docking station kernels.
ACPI
Read as much of ACPI/Fix common problems as you care to. Then deassemble your DSDT into /usr/src/dsdt/dsdt.dsl. Recompiling gives
| Command: iasl -tc dsdt.dsl |
Intel ACPI Component Architecture ASL Optimizing Compiler version 20060912 [Mar 17 2008] Copyright (C) 2000 - 2006 Intel Corporation Supports ACPI Specification Revision 3.0a dsdt.dsl 8472: Return (Package (0x02) Warning 1098 - Statement is unreachable ^ dsdt.dsl 8589: Wait (\_SB.C1AD, 0x10) Warning 1103 - Possible operator timeout is ignored ^ dsdt.dsl 15568: CreateByteField (C268, \_SB.C003.C004._Y06._LEN, C0AE) Error 4062 - Object does not exist ^ (\_SB.C003.C004._Y06._LEN) ASL Input: dsdt.dsl - 16074 lines, 576914 bytes, 7697 keywords Compilation complete. 1 Errors, 2 Warnings, 0 Remarks, 2529 Optimizations |
I fixed it by making the following changes:
| Command: diff -u dsdt.dsl dsdt-fixed.dsl |
--- dsdt.dsl 2008-03-17 17:47:30.000000000 -0700
+++ dsdt-fixed.dsl 2008-03-17 16:42:16.000000000 -0700
@@ -8469,11 +8469,11 @@
}
Return (Local0)
- Return (Package (0x02)
- {
- 0x04,
- 0x00
- })
+ // Return (Package (0x02) // Unreachable code.
+ // {
+ // 0x04,
+ // 0x00
+ // })
}
Method (C2D3, 1, NotSerialized)
@@ -8586,7 +8586,7 @@
Store (0x01, Index (DerefOf (Index (Local0, 0x02)), 0x01))
If (And (C05C, 0x40))
{
- Wait (\_SB.C1AD, 0x10)
+ Wait (\_SB.C1AD, 0xffff) // Changed 0x10 to 0xffff to remove error message. See http://ubuntuforums.org/showthread.php?t=659027&page=2
}
Store (\_SB.C073, Index (DerefOf (Index (Local0, 0x02)), 0x02))
@@ -15565,7 +15565,7 @@
{
If (LEqual (\_SB.C003.C004.C27B._STA (), 0x0F))
{
- CreateByteField (C268, \_SB.C003.C004._Y06._LEN, C0AE)
+ CreateByteField (C268, \_SB.C003.C004.C3C5._Y06._LEN, C0AE) // Added device C3C5 from a few lines above, to remove error message.
Store (0x60, C0AE)
}
|
and recompile:
| Command: iasl -tc dsdt-fixed.dsl |
Intel ACPI Component Architecture ASL Optimizing Compiler version 20060912 [Mar 17 2008] Copyright (C) 2000 - 2006 Intel Corporation Supports ACPI Specification Revision 3.0a ASL Input: dsdt-fixed.dsl - 16074 lines, 577137 bytes, 7696 keywords AML Output: dsdt.aml - 71665 bytes 1198 named objects 6498 executable opcodes Compilation complete. 0 Errors, 0 Warnings, 0 Remarks, 2529 Optimizations |
Finally, recompile your your kernel with
| Linux Kernel Configuration: Enable the custom DSDT |
Power management options (ACPI, APM) --->
ACPI (Advanced Configuration and Power Interface) Support --->
[*] Include Custom DSDT
(/usr/src/dsdt/dsdt-fixed.hex) Custom DSDT Table file to include
|
Graphics
See this guide.
xorg-server-1.3 and xf86-video-i810-2.1.1
Do NOT use this unless you absolutely have to. There are two issues:
- Screen rotation doesn't work with DRI enabled.
- Secondly, the 2.1.1 driver doesn't handle ACPI events too well, and resets your screen brightness at will.
Both these can be worked around, but since everything is flawless with xorg-server-1.4, I'm not going to include the setup details here.
xorg-server-1.4 and >=xf86-video-i810-2.2.1
Screen rotation, and the brightness work correctly with xorg-server-1.4.0.90 and >=x11-drivers/xf86-video-i810-2.2.1.
- Use >=x11-base/xorg-server-1.4.0.90-r4. (See Bug 214233.)
- Use >=x11-drivers/xf86-input-mouse-1.3.0. (See 194055)
- If you use xournal, then use >=app-text/xournal-0.4.2.1. (See SourceForge 1891727)
- Use >=x11-drivers/linuxwacom-0.8.0-r1. (See 221117. Be sure you disable quirk rescaling, either via the ebuild in the bug report, or a USE flag if there is one in the current version in portage)
- The calibration part of the wacomcpl broke with this version of the driver, so I wrote my own calibration script (look on my website).
| File: /etc/portage/package.keywords |
# 2008-03-02: For DRM on xf86-video-i810-2.2.1. (2.2.1 handles screen # brightness correctly on switching) # 2008-03-02: xorg-server-1.4.0.90-r3 crashes on first load. # 2008-03-21: The crash is because of the wacom 0.7.8 drivers. Does not crash # with linuxwacom-0.7.9. x11-proto/renderproto x11-libs/xtrans x11-libs/libXrender x11-drivers/xf86-input-keyboard x11-drivers/linuxwacom x11-base/xorg-server =x11-base/xorg-x11-7.3 x11-libs/pixman x11-drivers/xf86-video-i810 # 2008-05-09: Scaling pointer events in xorg-server-1.4.0.90-r4 =x11-base/xorg-server-1.4.0.90-r4 ** # 2008-05-09: Avoid middle click on VT switch =x11-drivers/xf86-input-mouse-1.3.0 # 2008-03-16: glxgears crashes if maximized (xorg-server-1.3.0.0-r5, # mesa-6.5.2). However things are OK on mesa-7.0.2. =media-libs/mesa-7.0.2* |
| Code: Shell commands to upgrade xorg-server |
emerge -1av xorg-server emerge -1av `qlist -IC x11-drivers` dispatch-conf |
Brightness and Rotation
The LCD brightness is adjustable via software, or using the hardware keys provided. For software brightness controls, do CONFIG_ACPI_VIDEO=m and say yes (or m) to all the backlight options. Now you should be able to "echo" the brightness level into /proc/acpi/video/C09A/C1AF/brightness. See the authors website for a few scripts that help.
Rotation of the input devices can be done via
| Code: Shell commands to set screen rotation |
xrandr --output LVDS --rotate right xsetwacom set stylus Rotate CW xsetwacom set eraser Rotate CW |
Audio
Works out of the box. (Enable it via CONFIG_SND_HDA_INTEL=y in the kernel).
PC Speaker
Bug: PC Speaker doesn't work
The PC speaker only works when the alsa module is not loaded, or when the sound card is powered down (e.g. after resume). This is because the ALSA module (AD1981) doesn't yet have support for the beeper device (see ALSA Bug 3716).
If you want your PC speaker to work (I find it quite useful), you can try using xbelld (ebuild), which can use ALSA to emulate a configurable PC speaker beep under X. Alternately you can try one of the methods listed in HOWTO Virtual PC Speaker. Unfortunately as of 2008-04-18, the fancy beeper daemon solution listed there will not work on 2.6.24/25 kernels, which are the ones you need on this computer anyway.
Ethernet
| Linux Kernel Configuration: Ethernet (2.6.25) |
Device Drivers ---> [*] Network device support ---> [*] Ethernet (1000 Mbit) ---> <M> Intel(R) PRO/1000 Gigabit Ethernet support <M> Intel(R) PRO/1000 PCI-Express Gigabit Ethernet support |
Enabling Wake on Lan (optional)
Use echo C139 > /proc/acpi/wakeup to enable wake on lan. You can check if Wake on Lan is enabled by catting /proc/acpi/wakeup:
| Command: cat /proc/acpi/wakeup |
Device S-state Status Sysfs node C0B2 S5 disabled pci:0000:00:1e.0 C10A S3 disabled pci:0000:00:1d.0 C112 S3 disabled pci:0000:00:1d.2 C113 S3 enabled pci:0000:00:1d.7 C11B S3 disabled pci:0000:00:1a.0 C11D S3 enabled pci:0000:00:1a.7 C133 S5 disabled pci:0000:00:1c.1 C2A1 S5 disabled pci:0000:10:00.0 C134 S5 disabled pci:0000:00:1c.2 C2A2 S5 disabled C139 S5 enabled pci:0000:00:19.0 C23E S5 disabled |
Wireless
Broadcom 4312
See the Broadcom 43xx article. See also the Talk:HP_Compaq_2710p#Wireless section.
Intel 4965AGN
The Intel 4965AGN works well with the kernel module from the 2.6.25 kernel. Additionally you need the ucode for this wireless card which is not included in the kernel. See Iwlwifi for more information.
Tablet / stylus
| Linux Kernel Configuration: Tablet configuration (2.6.25-gentoo-r5) |
Device Drivers --->
Character devices --->
Serial drivers --->
<M> 8250/16550 and compatible serial support
<M> 8250/16550 PNP device support
|
and add wacom to INPUT_DEVICES in /etc/make.conf.
| File: /etc/X11/xorg.conf |
Section "InputDevice" Driver "wacom" Identifier "stylus" Option "Device" "/dev/ttyS0" # SERIAL ONLY Option "Type" "stylus" Option "ForceDevice" "ISDV4" # Tablet PC ONLY EndSection Section "InputDevice" Driver "wacom" Identifier "eraser" Option "Device" "/dev/ttyS0" # SERIAL ONLY Option "Type" "eraser" Option "ForceDevice" "ISDV4" # Tablet PC ONLY EndSection Section "ServerLayout" Identifier "X.org Configured" Screen 0 "Screen0" 0 0 InputDevice "Mouse0" "CorePointer" InputDevice "Keyboard0" "CoreKeyboard" InputDevice "stylus" "SendCoreEvents" # Add these three lines InputDevice "eraser" "SendCoreEvents" EndSection |
Then emerge something like app-text/xournal to use your stylus.
Special keys
There are a few non-standard keys on this Laptop: The volume control / mute buttons, presentation button (leftmost button on the volume control slider), brightness (Function F9/F10), sleep (Function F3), display (Function F4), and battery (Function F8). All these have keycodes which are recognized by default, except for the presentation and battery buttons.
| Code: Generating a keycode for the presentation and battery buttons |
setkeycodes e008 120 setkeycodes e009 121 |
Under X, these will generate a keycodes of 139 and 134 respectively (not 120 & 121) for these key. You need the above command to be run every time you reboot your machine. One way of doing this is to put the above line in /etc/conf.d/local.start, and adding local to the default run level.
(Optional) Generating KeySym's for special keys
Most of these keys do not produce a KeySym under X. My window manager x11-wm/fvwm requires KeySyms (and not keycodes) to bind hotkeys, so I generated KeySym's using x11-apps/xmodmap:
| File: ~/.xmodmaprc |
keycode 174 = XF86AudioLowerVolume keycode 176 = XF86AudioRaiseVolume keycode 160 = XF86AudioMute keycode 101 = SunVideoLowerBrightness keycode 212 = SunVideoRaiseBrightness keycode 223 = XF86Sleep keycode 139 = XF86Launch0 keycode 134 = XF86Launch1 |
Run xmodmap ~/.xmodmaprc when you start X. Now map these to your desired actions using your window manager / hotkey manager.
(Optional) Swapping Page up / Page down etc.
If you're a long time app-editors/vim user then you'll probably find that the page up and page down keys are placed wrongly. If you'd like to swap them, then do the following:
| File: ~/.swap_pgup_pgdn.xmodmaprc |
! Swap Page up and page down (stupidly placed) keysym Next = Prior keysym Prior = Next |
| Code: Swapping Page-up and Page-Down |
xmodmap ~/.swap_pgup_pgdn.xmodmap |
The above command will swap page up and page down. Running it a second time will restore the original behaviour.
Hibernation
Install sys-power/hibernate-script, and add the lines
SwitchToTextMode yes UserFunc # If you use the brightness scriptlet below
in /etc/hibernate/common.conf. I recommend using >=sys-kernel/2.6.25-gentoo-sources-r4. I could not get anything working with the sys-kernel/tuxonice-sources, and the 2.6.24* kernels have buggy hibernation.
The brightness gets messed up after resuming: The initial brightness after resuming is correct, however as soon as you increase / decrease the brightness it changes to an unexpected value. If this bothers you, then do the following:
| File: /etc/hibernate/scriptlets.d/userfuncs |
AddConfigHandler userFuncOptions
function userFuncSaveBrightness()
{
userFuncAcpiFile=/proc/acpi/video/C09A/C1AF/brightness
if [[ -f $userFuncAcpiFile ]]; then
userFuncAcpiBrightness=$(egrep ^current: $userFuncAcpiFile \
| cut -d ' ' -f 2)
vecho 3 "Got ACPI brightness $userFuncAcpiBrightness"
fi
}
function userFuncRestoreBrightness()
{
if [[ -e "$userFuncAcpiFile" && -n "$userFuncAcpiBrightness" ]]; then
vecho 3 "Setting brightness to $userFuncAcpiBrightness"
echo $userFuncAcpiBrightness > $userFuncAcpiFile
else
vecho 3 "Could not restore brightness (level $userFuncAcpiBrightness)"
fi
}
function userFuncOptions()
{
case $1 in
userfunc)
if [[ -z $USERFUNC_HOOKED ]]; then
# Should be before xhacks
AddSuspendHook 84 userFuncSaveBrightness
AddResumeHook 84 userFuncRestoreBrightness
USERFUNC_HOOKED=1
fi
return 0;;
*)
return 1;;
esac
}
|
MMC/SD Card
Do CONFIG_MMC_SDHCI=m and CONFIG_MMC_RICOH_MMC=m (or you can say y). Then new SD cards show up in /dev/mmcblk??.
This card has both an SD controller, and an MMC controller on the same card, and the MMC controller takes control of your SD cards, rendering them useless. To use your SD cards, you need to first disable the MMC controller:
| Code: Disabling the MMC controller |
modprobe -iv ricoh_mmc |
Now the SD cards you insert show up as block devices.
If you use hibernation, then do
| File: /etc/hibernate/common.conf |
UnloadModules ricoh_mmc |
Fingerprint Reader
Use fprint. Get the ebuilds here. If you install pam_fprint, you can login / sudo / etc. based on your fingerprint (or optionally fall back to a password).
Camera
Model: USB device - Chicony 04f2:b017
lsusb: Bus 002 Device 004: ID 04f2:b017 Chicony Electronics Co., Ltd
| Linux Kernel Configuration: Webcam (2.6.25-gentoo-r4) |
Device Drivers --->
Multimedia Devices --->
<M> Video For Linux
[*] Enable Video For Linux API 1 (DEPRECATED)
-*- Enable Video For Linux API 1 compatible Layer
[*] Video capture adapters --->
[*] Autoselect pertinent encoders/decoders and other helper chips
[*] V4L USB devices --->
|
Them emerge media-video/linux-uvc. Reboot. Should Work.
Bluetooth
Bluetooth works, when it is switched on. I had it switched off first, and then had to got back into windows to enable it. The Gentoo Bluetooth Guide ( http://www.gentoo.org/doc/en/bluetooth-guide.xml ) explains pretty much everything. This results in the following kernel:
| Linux Kernel Configuration: Bluetooth (2.6.25-r4) |
Networking --->
<*> Bluetooth subsystem support --->
--- Bluetooth subsystem support
<M> L2CAP protocol support
<M> SCO links support
<M> RFCOMM protocol support
[*] RFCOMM TTY support
<M> BNEP protocol support
[*] Multicast filter support
[*] Protocol filter support
<M> HIDP protocol support
Bluetooth device drivers --->
<M> HCI USB driver
[*] SCO (voice) support
<M> HCI UART driver
[*] UART (H4) protocol support
[*] BCSP protocol support
[*] Transmit CRC with every BCSP packet
<M> HCI BCM203x USB driver
<M> HCI BPA10x USB driver
<M> HCI BlueFRITZ! USB driver
USB support --->
<*> Support for Host-side USB
--- USB Host Controller Drivers
<M> EHCI HCD (USB 2.0) support
[ ] Full speed ISO transactions (EXPERIMENTAL)
[ ] Root Hub Transaction Translators (EXPERIMENTAL)
<*> OHCI HCD support
<*> UHCI HCD (most Intel and VIA) support
< > SL811HS HCD support
|
I am not exactly sure whether all of these drivers are needed but I was too lazy for testing them all ;-). It works for me this way. Enjoy.
Docking Station
Works out of the box. Be sure you do CONFIG_USB_STORAGE=y, because the CD drive is detected as a USB device. The VGA, ethernet pass through flawlessly, and can safely be connected / disconnected when on or hibernating. (I have not yet tested DVD burning)
Software
- Note taking applications
- My favourite: Xournal (ebuild)
- gournal (Requires Gnome. ebuild)
- jarnal (Java based. ebuild)
- NoteLab (Java based)
- On screen keyboards
- xvkbd (Small and light! Be sure to set the repeat delay to something higher than the default otherwise this is pretty much useless. See Bug 214353.)
- gok (ugh, and requires Gnome (double ugh))
- onBoard (Nice, but requires Gnome (ugh). The latest release (0.91.2) does not run with xorg-server-1.* ebuild)
- cellwriter (Small app that provides an online keyboard as well as a handwriting recognition tool based on cells. ebuild)
- Other useful stuff
External Links
- Some scripts, kernel config etc. can be downloaded from the authors website.
Created by NickStallman.net, Luxury Homes Australia
Real estate agents should be using interactive floor plans and list their apartments, townhouses and units.
