HARDWARE HP Compaq 6710b
From Gentoo Linux Wiki
| Laptops • TV Tuner Cards • Wireless • Servers • Storage • Other Hardware • Motherboards • Related |
Contents |
[edit] Barbecue issue with 2007.0 and older
This old ACPI does not handle thermal_zones of HP 6710b and that's why the fan is always LOW on spinning (temperatures rise above 60 °C)! (you will be harmed, unless you have a loud fan problem (http://flyerman.org), but in this case -- my condolences about loud fan then..) Solutions:
- Do not select any `heavy' packages (xorg-x11, gnome, kde), which cause hundreds of packages to be emerged -- do it after restart into the fresh-kerneled system
- Choose other installation method:
- Put your laptop in the fridge
- Always compile your own kernel (2.6.21 has normal handling of thermal zones, laptop fans start spinning normally and temperatures decrease to 50 °C. For another point in why compiling custom kernel is good, see The Installation part
- Try to minimize the amount of packages to compile while you are sitting on <=2.6.19 and reboot your system ASAP on the fresher =>2.6.21 to continue your emerges
- Get some thoughts from http://www.gentoo.org/doc/en/altinstall.xml
- Note on 6710s (same as 6710b without some HW such as card reader and firewire): The barbecue issue does not seem to matter -- I've just compiled 2.6.22 kernel (15 Aug 2007 - from 2007.0 amd64 LiveCD) and the fans began rotating at higher speed when they should (a few times during kernel compilation).
Otherwise you may end up close to this barbecue stuff: Cope with pentiumM Problems
You can also try during install: "/etc/init.d/acpid start" to start the acpi deamon. Then add the needed modules: "modprobe fan" and "modprobe thermal".
[edit] The Hardware
Hands on Santa Rosa! This laptop compiles things like crazy! Here is the hardware configuration:
HP GB891EA#ABB Business Notebook with Corporate Package 6710b Series Notebook Intel Core 2 Duo T7300 2.0Ghz 4MB cache 800Mhz FSB Mobile Intel 965GM Express Chipset 1024MB DDR2-667 SO-Dimm 160GB SATA 5400rpm HDD DVD+-RW SuperMulti Double Layer writer 15.4" WSXGA+ (1680 x 1050) Intel Graphics Media Accelerator X3100 up to 384MB shared graphics Intel 802.11 a/b/g Wireless LAN (ipw3945) Bluetooth 56k modem 10/100/1000 Ethernet LAN Fingerprint reader & TPM
I will be updating this page heavily, installing Gentoo, Ubuntu and Foresight, so stay tuned within contents and links provided.
[edit] The Installation (2007.0 LiveCD)
[edit] make.conf
With hardware-based USE flags (add yours to your taste):
| File: /etc/make.conf |
CHOST="i686-pc-linux-gnu" MAKEOPTS="-j3" USE="acpi alsa battery bluetooth cdr dvd dvdnav dvdr dvdread ieee1394 pcmcia sound usb wifi" INPUT_DEVICES="keyboard mouse synaptics" VIDEO_CARDS="i810 vesa" |
[edit] Kernel Configuration
I recommend kernel >=2.6.21 as it handles your barbecue problem with newer ACPI.
| Linux Kernel Configuration: Processor type and features |
Processor family (Core 2/newer Xeon) ---> |
You need ATA/IDE for your DVD+R/W:
| Linux Kernel Configuration: Device Drivers:ATA/ATAPI/MFM/RLL support |
<*> ATA/ATAPI/MFM/RLL support <*> Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support --- Please see Documentation/ide.txt for help/info on IDE drives [ ] Support for SATA (deprecated; conflicts with libata SATA driver) [ ] Use old disk-only driver on primary interface <*> Include IDE/ATA-2 DISK support [ ] Use multi-mode by default < > PCMCIA IDE support < > Cardbus IDE support (Delkin/ASKA/Workbit) <*> Include IDE/ATAPI CDROM support < > Include IDE/ATAPI TAPE support (EXPERIMENTAL) < > Include IDE/ATAPI FLOPPY support <*> SCSI emulation support [*] Generic PCI bus-master DMA support [ ] Force enable legacy 2.0.X HOSTS to use DMA [ ] Enable DMA only for disks <...> <*> Intel PIIXn chipsets support <...> |
And SATA for HDD:
| Linux Kernel Configuration: Device Drivers:Serial ATA (prod) and Parallel ATA (experimental) drivers |
<*> ATA device support <*> AHCI SATA support (NEW) < > ServerWorks Frodo / Apple K2 SATA support (NEW) < > Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support < > Marvell SATA support (HIGHLY EXPERIMENTAL) (NEW) < > NVIDIA SATA support (NEW) <...> |
To view your laptop temperatures, use this command (with >=2.6.21):
cat /proc/acpi/thermal_zone/TZ?/temperature
[edit] ncurses-based text mode install
Just use it. And/or read the handbook (especially for alternative install, or solutions to avoid barbecue problem)
[edit] GUI installation aspects
For me the GUI installation failed on ~100th of 500 packages, because I chose not to compile my own kernel and so it failed on emerging cryptsetup-luks or it will fail for you for any package which requires custom-compiled kernel.
And there was no way to resume it later after reboot, because GUI does NOT `emerge package_1 package_2 ... package_500' --- instead it does `emerge package_1 && emerge package_2 ...' so there is no way to emerge --resume <-- you have been warned!
If you still want to go for GUI Install, remember the barbecue issue, think twice and choose another laptop to encounter yourself with new bugs of GUI Installer ;) And read this: For those, who do not RTFM (count me in :)), in Local Mounts section of a GUI installer, when you fill in Device, Type and Mount Point, do not press Add button again, but press Update: this one will enter your mount into the list, whilst Add just clears the fields -- quite not intuitive this `Update' button ;)
[edit] Miscellaneous
[edit] Enabling Wireless in a LiveCD
To have your device node (/dev/eth2) created, issue the following commands:
sudo mkdir /var/run/ipw3945d sudo chown ipw3945d /var/run sudo /sbin/ipw3945d &
Wait for ~10 seconds before you can see the wi-fi device appeared in `ifconfig eth2' If this above will not work for you, issue
sudo modprobe -r ipw3945; sudo modprobe ipw3945
and repeat the above procedure. If you will wish to restart ipw3945d, then first to kill it:
sudo killall ipw3945d sudo rm /var/run/ipw3945d.pid
and repeat the up-most commands
[edit] Post-install
[edit] Graphics
See this HowTo.
[edit] Framebuffer with Gensplash
The graphics BIOS contains only standard modes and results in black bars on the right and left side of your screen. The next part describes how to install a framebuffer console on a HP 6710s series notebook with 1280x800 resolution. If you have a higher resolution (HP6710b) just replace the numbers. Kernel:
| Linux Kernel Configuration: Device Drivers:Graphics Support |
[*] Backlight & LCD device support --->
< > Frontpath ProGear Backlight Driver
Display device support --->
<*> Support for frame buffer devices
[ ] Enable firmware EDID
--- Enable Video Mode Handling Helpers
[ ] Enable Tile Blitting Support
--- Frame buffer hardware drivers
<...>
<M> VESA VGA graphics support
VESA driver type (vesafb-tng) --->
(1280x800@60) VESA default mode
<...>
[ ] Bootup logo --->
[*] Support for the framebuffer splash
|
| Linux Kernel Configuration: Device Drivers:Graphics Support:Console display driver support |
--- VGA text console [ ] Enable Scrollback Buffer in System RAM [*] Video mode selection support <*> Framebuffer Console support [ ] Framebuffer Console Rotation [*] Select compiled-in fonts [ ] VGA 8x8 font [*] VGA 8x16 font <...> |
Install sys-libs/lrmi, media-gfx/splashutils and optionally media-gfx/splash-themes-gentoo for example.
Needs => sys-apps/915resolution:
echo "sys-apps/915resolution-0.5.3-r1 ~x86" >> /etc/portage/package.keywords
When I installed 915resolution it couldn't detect my graphics chip which is a 965GM. You can either stop the ebuild and apply the patch or compile it by hand. There is now a bug report that contains a new ebuild and the patch.
| Code: 915resolution.patch |
--- /home/david/915resolution-0.5.3/915resolution.c_orig 2007-04-15 12:46:56.000000000 +0200
+++ 915resolution.c 2007-07-15 21:21:05.000000000 +0200
@@ -56,12 +56,12 @@
typedef enum {
CT_UNKWN, CT_830, CT_845G, CT_855GM, CT_865G, CT_915G, CT_915GM, CT_945G, CT_945GM,
- CT_946GZ, CT_G965, CT_Q965
+ CT_946GZ, CT_G965, CT_Q965, CT_965GM
} chipset_type;
char * chipset_type_names[] = {
"UNKNOWN", "830", "845G", "855GM", "865G", "915G", "915GM", "945G", "945GM",
- "946GZ", "G965", "Q965"
+ "946GZ", "G965", "Q965", "965GM"
};
typedef enum {
@@ -225,6 +225,10 @@
type = CT_Q965;
break;
+ case 0x2a008086:
+ type = CT_965GM;
+ break;
+
default:
type = CT_UNKWN;
break;
@@ -511,6 +515,7 @@
case CT_946GZ:
case CT_G965:
case CT_Q965:
+ case CT_965GM:
outl(0x80000090, 0xcf8);
map->b1 = inb(0xcfd);
map->b2 = inb(0xcfe);
@@ -551,6 +556,7 @@
case CT_946GZ:
case CT_G965:
case CT_Q965:
+ case CT_965GM:
outl(0x80000090, 0xcf8);
outb(map->b1, 0xcfd);
outb(map->b2, 0xcfe);
@@ -809,6 +815,9 @@
else if (!strcmp(argv[index], "G965")) {
*forced_chipset = CT_G965;
}
+ else if (!strcmp(argv[index], "965GM")) {
+ *forced_chipset = CT_965GM;
+ }
else if (!strcmp(argv[index], "Q965")) {
*forced_chipset = CT_Q965;
}
|
Now you have to replace a BIOS video mode with a new modeline. On my computer vbetest shows:
| Code: vbetest |
dyas ~ # vbetest VBE Version 3.0 Intel(r)Crestline Graphics Chip Accelerated VGA BIOS [261] 1024x768 (256 color palette) [279] 1024x768 (5:6:5) [280] 1024x768 (8:8:8) [274] 640x480 (8:8:8) [276] 800x600 (5:6:5) [277] 800x600 (8:8:8) [257] 640x480 (256 color palette) [259] 800x600 (256 color palette) [273] 640x480 (5:6:5) Type a mode number, or 'q' to quit - q |
Decide which mode you want to replace by the new resolution. 5c is the "table row" that you use. You can select a number when you have the output of 915resolution.
Use the resolution that suits your notebooks' screen.
| Code: 915resolution |
|
dyas ~ # 915resolution 5c 1280 800 |
If your new compiled kernel is running and you use already a framebuffer console you can switch now to the new resolution by selecting the number:
| Code: vbetest |
dyas ~ # vbetest VBE Version 3.0 Intel(r)Crestline Graphics Chip Accelerated VGA BIOS [316] 1280x800 (256 color palette) [333] 1280x800 (5:6:5) [348] 1280x800 (8:8:8) [261] 1024x768 (256 color palette) ... Type a mode number, or 'q' to quit - q |
Now it is possible to load the module with the correct framebuffer mode:
| Code: Load the module |
dyas ~ # modprobe vesa-tng vbemode=348 |
Provided that you already have installed and configured a splash theme you can start the /etc/init.d/splash and should have a themed framebuffer console.
If you want a framebuffer splash screen during the boot process you have to replace the modeline shortly after the kernel started. I used IvanMajhen's Howto.
[edit] Wireless (Intel Pro/Wireless 3945ABG)
Kernel 2.6.22:
| Linux Kernel Configuration: Networking:Network Support:Wireless |
< > Improved wireless configuration API --- Wireless extensions < > Generic IEEE 802.11 Networking Stack (mac80211) <x> Generic IEEE 802.11 Networking Stack [ ] Enable full debugging output (NEW) < > IEEE 802.11 WEP encryption (802.1x) (NEW) <x> IEEE 802.11i CCMP support <x> IEEE 802.11i TKIP encryption |
emerge ipw3945
Make sure your radio kill switch is off (touch the wireless-button on your laptop for it to light up). If it does not light up, on next reboot you will not get it working (try removing/adding module: modprobe -r ipw3945 && modprobe ipw3945, as ipw3945d restart won't help), but you at least will be able to light the switch on and reboot again. If you already got your kernel recompiled, there's no need to reboot:
modprobe ipw3945
For me the device got named eth2 for some reasons, but I have renamed it to wlan0 in /etc/udev/rules.d/70-persistent-net.rules
| File: /etc/conf.d/net |
preferred_aps=( "ap_name" )
modules=( "dhclient" "wpa_supplicant" )
wpa_supplicant_wlan0="-Dwext -w -B -c /etc/wpa_supplicant/wpa_supplicant.conf"
config_wlan0=( "dhcp" )
dhcp_wlan0="-t 10"
depend_wlan0()
{
need ipw3945d
}
preup() {
if [[${IFACE} = "wlan0"]] ; then
sleep 3
fi
return 0
}
|
ln -s /etc/init.d/net.lo /etc/init.d/net.wlan0 /etc/init.d/net.wlan0 start
[edit] Wireless (BCM4312 802.11a/b/g)
See the Broadcom 43xx article.
[edit] Audio (Intel HD ICH8)
Now, using the kernel-2.6.22 driver, I got problems (got feedback that other 6710 have the same problem): if I touch the Mute button, after a while it turns off and I get the unwanted sound back. If I mute it via alsamixer or GNOME Sound Manager, everything's ok, but then I cannot turn the Mute off with a touch-button. In addition to problems, alsaconf does not detect any devices, maybe it still does not properly support the device with that of Kernel Driver.
Should try alsa-driver-9999 or so, to check upon such problems. Maybe it would as well enable the Mic playback (at least external Mic amplified playback), as even in Windows Vista I cannot amplify my guitar :( Has anyone tried?
For now, the Kernel drivers:
| Linux Kernel Configuration: Device Drivers:Sound |
<x> Sound card support
Advanced Linux Sound Architecture --->
<x> Advanced Linux Sound Architecture
PCI devices --->
<x> Intel HD Audio
|
emerge alsa-utils
[edit] TPM & Fingerprint reader
Hardware: AuthenTec AES2501 Fingerprint reader works with fprint.
It's available via layman from Wolfram Schlich's overlay (HOWTO) and can be plugged to PAM for system auth (HOWTO).
[edit] Multimedia keys
Keymaps for them work, so we just need to assign them with xmodmap.
- Requirements:
x11-apps/xmodmap x11-misc/xbindkeys
- Create ~/.Xmodmap with keymapping definitions
| File: ~/.Xmodmap |
keycode 222 = XF86PowerOff keycode 223 = XF86Sleep keycode 174 = XF86AudioLowerVolume keycode 176 = XF86AudioRaiseVolume |
- Execute keymapping & binding start after login. ( for example )
| File: .kde/Autostart/xbindkeys.sh |
#!/bin/bash killall xbindkeys &>/dev/null # Get rid of old instances killall xmodmap &>/dev/null [ -f ~/.Xmodmap ] && xmodmap ~/.Xmodmap exec xbindkeys |
[edit] Volume controls
- Requirements
media-sound/alsa-utils
- Append audio key bindings to ~/.xbindkeysrc
| File: ~/.xbindkeysrc |
"amixer -q set Master 1- unmute" XF86AudioLowerVolume "amixer -q set Master 1+ unmute" XF86AudioRaiseVolume |
[edit] Hibernation and Sleep controls
- Requirements
app-admin/sudo sys-apps/vbetool sys-power/hibernate-script sys-kernel/tuxonice-sources # With suspend support enabled
- Make hibernate accessible for users via sudo
su root # Needs root access visudo
- Append following line and save file (grants access to hibernate scripts to users)
%users ALL=(ALL) NOPASSWD: /usr/sbin/hibernate-ram, /usr/sbin/hibernate, /usr/sbin/vbetool
- Create wrappers for hibernate/hibernate-ram:
| File: /usr/local/bin/hibernate |
#!/bin/bash sudo /usr/sbin/hibernate |
| File: /usr/local/bin/hibernate-ram |
#!/bin/bash sudo /usr/sbin/hibernate-ram |
chmod +x /usr/local/bin/hibernate* # Make them executable
- Now assign the keybindings to wrappers
* XF86PowerOff - power button * XF86Sleep - fn + f3
| File: ~/.xbindkeysrc |
... "hibernate-ram" XF86Sleep "hibernate" XF86PowerOff |
[edit] Hibernation and Suspend to RAM
The notebook supports both suspend to ram and to disk. I'm currently using the standard gentoo-sources but I guess suspend2-sources should work too, maybe even better.
In order to get the suspend functionality one must configure the kernel with suspend support(it depends on which kernel flavor you're using), and them emerge the hibernate-script utility.
The default suspend configuration doesn't handle correctly all the features after reload, especially the wlan, so you must tweak it a little bit by editing the /etc/hibernate/common.conf file. Also you must uncomment the ipw3945 driver in the blacklisted modules file.
some settings from my /etc/hibernate/common.conf:
Distribution gentoo UnloadModules ipw3945 UnloadBlacklistedModules yes LoadModules auto GentooModulesAutoload yes DownInterfaces eth0 wlan0 UpInterfaces auto EnableNMReconnect yes StopServices ipw3945d RestartServices net.eth0 net.wlan0 ntp-client ntpd SwitchToTextMode yes #gets you inside X after resume
[edit] lspci listing
00:00.0 Host bridge: Intel Corporation Mobile Memory Controller Hub (rev 0c) 00:02.0 VGA compatible controller: Intel Corporation Mobile Integrated Graphics Controller (rev 0c) 00:02.1 Display controller: Intel Corporation Mobile Integrated Graphics Controller (rev 0c) 00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Contoller #4 (rev 03) 00:1a.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #5 (rev 03) 00:1a.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #2 (rev 03) 00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 03) 00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (rev 03) 00:1c.1 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 2 (rev 03) 00:1c.2 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 3 (rev 03) 00:1c.4 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 5 (rev 03) 00:1d.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #1 (rev 03) 00:1d.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #2 (rev 03) 00:1d.2 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #3 (rev 03) 00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #1 (rev 03) 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev f3) 00:1f.0 ISA bridge: Intel Corporation Mobile LPC Interface Controller (rev 03) 00:1f.1 IDE interface: Intel Corporation Mobile IDE Controller (rev 03) 00:1f.2 SATA controller: Intel Corporation Mobile SATA AHCI Controller (rev 03) 02:04.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev b6) 02:04.1 FireWire (IEEE 1394): Ricoh Co Ltd R5C832 IEEE 1394 Controller (rev 02) 10:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG Network Connection (rev 02) 18:00.0 Ethernet controller: Broadcom Corporation NetLink BCM5787M Gigabit Ethernet PCI Express (rev 02)
