Kay's pages

Article Index


I took a configuration file from the Ubuntu installation I still had on my notebook. You can find it here . On Sarge there is no driver for the i810 or i915 graphics card included. The only way to get it running is the VESA driver in combination with the 855resolution tool (see basic installation section). You have to patch a mode to 1400x1050 resolution. Change the configuration file /etc/default/855resolution to MODE=5a, XRESO=1400 and YRESO=1050. Otherwise you can only get 1280x1024. This is also OK, but I want to use the full resolution and all lower resolutions are a little bit unsharp.
But now the performance is very poor and there is no DPMS support to disable the back light when xscreensaver is running. To add i810 and i915 support to XFree I downloaded the newest driver (20050621) from http://dri.freedesktop.org/snapshots/. Normally these packages are for the Xorg server, but they also work for XFree. The installation is very easy. Just run install.sh. If compiling of the kernel modules fails, don't worry. If you use my kernel configuration, you already have a proper kernel module in place. The install script just adds support for this kernel module to XFree. Now you can use the i810 driver in X. It automatically switches to the i915 kernel module. Now there is DPMS support under X and the performance is much better. Especially movies are running much better. With the Vesa driver you can't watch movies in full screen mode.

I still have a problem with the external VGA output. When I start the notebook in my docking station, I don't get the correct resolution on my external TFT (1280x1024). There is still the 1400x1050 resolution used (BIOS, Linux console and X) and only a section is shown on the screen. I played around a lot with the X configuration to be able to use at least X. But I wasn't successful. I get 1400x1050 pixels or just 640x480.
Accidentally I pressed Fn + F4 in the Grub screen. After that I had the correct resolution on my external screen and the internal TFT got black. Now it is also possible to get the correct X resolution on the external screen. It seems to be a VGA BIOS problem. I will send a support request to HP these days. This trick doesn't work, if I use a longer cable or a KVM switch between external screen and notebook. I don't know why.
I don't know whether the TV output works under Linux. No time to check that yet.

For the touch pad I installed the package xfree86-driver-synaptics. The touch pad is working very well with it and you have support for the scroll area.

Update 18.08.2005
I now had contact to the HP support concerning the external VGA problem a few days ago. From my point of view this is definitely a BIOS problem. But HP only answered that this is normal behaviour and I should use Windows XP. Great, does this guy know that his company wants to sell this notebook with Linux installed??? I don't think so. Maybe I will try it with a phone call later.
What I'm doing now is to connect the notebook to the docking station, open the display and press the power button. When the first picture appears, I press Fn + F4 two times (not too fast) so that the internal screen gets black and the external screen shows a picture. Now you can work with the external Monitor. But don't close the laptop!! Otherwise you get the wrong resolution on the external screen again. By the way, the support guy told me, that the docking station (PA286A) is no docking station. It's just a port replicator. That's why the notebook doesn't get a docking signal.
Anyway, I think the notebook should use the correct resolution for the external screen if you switch it on while it is closed. Maybe some more people have to complain about that. And maybe somebody should ask, why this port replicator has a power button if you have to open the notebook anyway. Any why is it called docking station on the HP website?????

Update 09.01.2007
With the recent Xorg server version in Debian testing it is possible to run the X-Server with two displays. I have two configurations, one using Xinerama and two different resolutions (1280x1024 for extern and 1400x1050 for intern) but no 3D acceleration. The other one just uses the internal display and provides 3D acceleration.

Update 10.11.2007
The Intel i810 driver was updated in the latest Xorg server version. It provides much better support for the i915 graphics of the NC6120. The 855resolution tool is not necessary any more, the driver has native support for all resolutions. Unfortunately the Xinerama configuration does not work any more by using the xorg.conf from above. With my new configuration, you can set the Xinerama mode by using the following command:

xrandr --output LVDS --right-of VGA

I did not find a way to set this automatically yet. My only idea is to put the command above into the .xinitrc file.

Update 15.11.2007
I now found a web page with some explanations regarding Xrandr settings in the xorg.conf file. So it is not necessary to call the command above manually any more. You can find my new configuration here. The instructions came from http://wiki.debian.org/XStrikeForce/HowToRandR12.

Power management

ACPI is working good on the NC6120. Suspend to RAM and suspend to disk are working. Standby does nothing and I don't know what it should do. But for me it is not as important as suspend to RAM/disk.
Install the vbetool package for the suspend scripts. It can save and restore the BIOS of the i915 graphics card and is necessary to resume properly.

Suspend to disk

I use the Software Suspend 2 patch to run suspend to disk. How to apply this patch can be read in the updated part of the kernel section.
To run suspend to disk you need the hibernate script. There is an old version included in Sarge, but I use the current version (1.10). Just run install.sh out of the tar.gz package to install it. My configuration for hibernate is here . It is not fully tested and optimized yet. But it successfully restores the X session and everything else I am using at the moment. I think you should read at least the HowTo from the Suspend 2 website to be familiar with possible problems. There are some pitfalls which might result in corrupted data.
After installing and configuring everything you can run hibernate as root or sudo hibernate as normal user. Pressing the power button will resume the Linux session (if you choose the correct kernel to boot).

Suspend to RAM

For suspend to RAM you don't need very much. I wrote a small script to go to suspend and modified the powerbtn.sh script in /etc/acpi. If you don't modify the powerbtn.sh script, it will shut down your notebook after resuming. If you press the power button to resume the notebook, an ACPI event is generated. Since it is a power button event, the powerbtn.sh script is called and shuts down the notebook.

Frequency scaling

Frequency scaling is working. Everything is prepared in my kernel configuration. I normally use the conservative scaling governor. Before I used the ondemand governor. I don't see a big difference between these two. But for me they are the best solution to save power and have speed when you need it. It is not possible to set one of these governors as default in the kernel configuration. You have to write a small init script which makes an "echo conservative > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor".


Thanks to a visitor of my web pages, I got a hint to try Linux-PHC . It is a tool to undervolt the processor for each frequency it can run. This results in a cooler CPU and thus in less noise and less power consumption. It is really great! After the patch for Linux-PHC is applied, you have to search for each frequency for the lowest voltage ID (VID) you can use without a crash. On my notebook, the default VIDs for the 5 different frequencies were set as follows:

Frequency (kHz) 1.867.000 1.600.000 1.333.000 1.067.000 800.000
orig. VID 41 36 30 24 18
orig. Voltage (V) 1,3560 1,2760 1,1800 1,0840 0,9880
my VID 19 13 7 2 0
my Voltage (V) 1.0040 0.9080 0,8120 0,7320 0,7000

This works stable as far as I tested it. Now, even under full load with the highest frequency, the fan only runs with very low speed.