HP Compaq nc6220

From ArchWiki
Revision as of 06:01, 4 March 2007 by TripleE (talk | contribs) (New page: Category:Laptops (English) Category:HOWTOs (English) {{stub}} ==Intro== I will do my best to give as much detail as possible. Per HP's website, this laptop is Novell Linux Desktop...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


I will do my best to give as much detail as possible. Per HP's website, this laptop is Novell Linux Desktop 9 certified.


1.2 System Specifications 1.3 What works/What doesn't 2 Video 3 Audio 4 Important Config files= The Fujitsu-Siemens P7010(D) is a neat little laptop with a 10" widescreen. It weighs little more than a kilo, has a relatively long battery life and sports many things that low-weight laptops normally lack.

System Specifications

HP Compaq nc6220 - Intel Centrino

  • Intel Pentium M processor 750 (1.86-GHz, 533-MHz FSB, 2-MB L2 cache)
  • Mobile Intel 915GM Express Chipset
  • Intel Graphics Media Accelerator 900 with up to 128 MB of shared system memory??
  • 14.1-inch TFT SXGA+ (1400 x 1050 resolution and 24 bit colors)
  • 512-MB 533-MHz DDR2 SDRAM
  • NetXtreme Gigabit PCI Express Ethernet Controller (10/100/1000 NIC)
  • Intel PRO/Wireless 2200BG 802.11 b/g WLAN
  • Dual Pointing devices – Touchpad with scroll zone and Pointstick??
  • One Type I/II PC Card Slot??
  • One Integrated Smart Card Reader??
  • One Integrated Secure Digital Slot??
  • 60-GB 5400 rpm IDE ATA Harddrive
  • Matshita UJDA775 IDE ATA 8x DVD/24x CDRW
  • ADI AC ‘97 CODEC, Integrated 16-bit Sound Blaster Pro compatible audio ??
  • 6-cell high capacity Lithium-Ion (52Wh)
  • 4.5 hour(s)
  • 12.4 in x 10.1 in x 1.1 in
  • 5.1 lbs
  • Modem??
  • 3 USB ports
  • VGA Port

Output of lshwd ??

What works/What doesn't

Pretty much everything works on this laptop except the SD-card reader. The screen needs a little tweaking to get full resolution. The preferred resolution (1280x768) isn't part of the VBIOS, and consequently the VBIOS needs to be patched with 915resolution.

??? - All below



In order to get the video working fine at 1280x768 you need to patch the VBIOS with Alain Poirier's 855resolution for which there is a PKGBUILD in the AUR. This application allows you to replace any of the modes in the VBIOS with something else. After you've compiled the package and installed it, run the following command.

855resolution 5c 1280 768

This will replace mode 5c with 1280 768. You can list the modes with

855resolution -l

which should return something like this:

855resolution version 0.4, by Alain Poirier

Chipset: 855GM (id=0x35808086)
VBIOS type: 2
VBIOS Version: 3181 

Mode 30 : 640x480, 8 bits/pixel
Mode 32 : 800x600, 8 bits/pixel
Mode 34 : 1024x768, 8 bits/pixel
Mode 38 : 1280x1024, 8 bits/pixel
Mode 3a : 1600x1200, 8 bits/pixel
Mode 3c : 1280x768, 8 bits/pixel
Mode 41 : 640x480, 16 bits/pixel
Mode 43 : 800x600, 16 bits/pixel
Mode 45 : 1024x768, 16 bits/pixel
Mode 49 : 1280x1024, 16 bits/pixel
Mode 4b : 1600x1200, 16 bits/pixel
Mode 4d : 1280x768, 16 bits/pixel
Mode 50 : 640x480, 32 bits/pixel
Mode 52 : 800x600, 32 bits/pixel
Mode 54 : 1024x768, 32 bits/pixel
Mode 58 : 1280x1024, 32 bits/pixel
Mode 5a : 1600x1200, 32 bits/pixel
Mode 5c : 1280x768, 32 bits/pixel

Before everything's set, you will also need to add the proper modelines in xorg.conf. This is done in the monitor section

Section "Monitor"
        Identifier      "InternalMonitor"
        Option  "DPMS"
        HorizSync    28.0 - 96.0
        VertRefresh  50.0 - 75.0
        Modeline "1280x768" 80.14 1280 1344 1480 1680 768 769 772 795
        Modeline "1024x768" 65.00 1024 1047 1183 1343 768 770 776 805


Template:Sn The audio is really not a big deal, at least not if you use alsa (which is the only sound system I've ever used under linux). The only weirdness is that the Master channel has no effect on the sound, you have to play around with the Headphone and PCM channels in order to set the sound.

Wireless Network

Template:Sn Wireless network is an Intel Pro Wireless 2200BG and has very good linux drivers nowadays. If you're using the stock arch kernel, all you need to do is

pacman -S ipw2200

and add the proper modules to your rc.conf (see the rc.conf section of this page) if you're not using hotplug or hwd.

Card Readers


Template:Sn As far as I've understood from other reports, the pcmcia card works as expected. I don't have one at this time, so I can't confirm it.

Compact Flash

The same goes for the Compact Flash. It's supposed to work as it uses the same interfaces as the PCMCIA does, but I can't confirm anything since I don't have a CF-card.

Secure Digital

The SD-card reader on the other hand is a pain! It uses proprietary drivers from ricoh under windows and there are no drivers under linux. I would really want this working but I think the only chance would be to reverse engineer the reader and I guess not enough coders have this device. Subsequently, there are no drivers now and there won't be in the foreseeable future...

Important Config files

Kernel Config

Throughout most of linux days I've been using morph-sources, but recently I've been starting to use archck. Here's a config file for the kernel that can be used as a base. There are doubtless changes you should do, but it's always nice to have something to start off from. [I realise that I can't post the config file since it's so large... perhaps if it could be uploaded somehow and linked to :-/]


Xorg 6.8.2 has loses direct rendering after resume from either suspend-to-disk or suspend-to-ram. I'm therefore using a snapshot of the upcoming xorg release, which has this issue solved. If you decide the to use the snapshot remember that you won't need to load the glcore module, so you can comment that in the xorg.conf.

I've been playing around a lot to get the TV-out working, but alas! (I'm actually keeping a Win-partition in order to be able to use the TV-out - it feels like a complete waste of gigabytes of my precious harddrive!). The setup you see here is for an internal monitor. If you alter the ServerLayout section so that you have InternalScreen commented instead of ExternalScreen, X should work with an external screen. There was some issue with xorg 6.8.2 that prevented it from showing image on internal and external screens simultaneously, but that is allegedly solved now. I haven't updated my xorg.conf, however, to reflect those changes.

Section "ServerLayout"
	Identifier     "Work in Progress"
#	Screen	0	"ExternalScreen" 0 0
	Screen  0	"InternalScreen" 0 0
#	Screen	1	"ExternalScreen" RightOf "InternalScreen"
	InputDevice    "Keyboard" "CoreKeyboard"
        InputDevice    "Synaptics TouchPad" "AlwaysCore"
        InputDevice    "USB Mouse" "CorePointer"

Section "ServerFlags"
	Option "AllowMouseOpenFail"  "true"
# 	Option  "BlankTime"  "7"  # Blank the screen after 10 minutes (Fake)
#	Option  "StandbyTime"  "10"  # Turn off screen after 15 minutes (DPMS)
#	Option  "SuspendTime"  "15"  # Full suspend after 20 minutes
	Option  "OffTime"  "20"  # Turn off after half an hour

Section "Files"
	RgbPath      "/usr/X11R6/lib/X11/rgb"
	ModulePath   "/usr/X11R6/lib/modules"
    FontPath 	"/usr/X11R6/lib/X11/fonts/misc:unscaled"
    FontPath 	"/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
    FontPath 	"/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
    FontPath 	"/usr/X11R6/lib/X11/fonts/cyrillic"
    FontPath 	"/usr/X11R6/lib/X11/fonts/Type1"
    FontPath 	"/usr/local/share/fonts"

Section "Module"
        Load  "ddc"  # ddc probing of monitor
	Load  "GLcore"
	Load  "dbe"
	Load  "dri"
	Load  "extmod"
	Load  "glx"
        Load  "bitmap" # bitmap-fonts
	Load  "type1"
	Load  "freetype"
	Load  "record"

Section "InputDevice"
	Identifier  "Keyboard"
	Driver      "kbd"
        Option      "CoreKeyboard"
	Option "XkbRules" "xfree86"
	Option "XkbModel" "pc105"
	Option "XkbLayout" "se"


Section "InputDevice"
        Identifier      "USB Mouse"
        Driver          "mouse"
        Option          "Device"                "/dev/input/mice"
	Option		"SendCoreEvents"	"true"
        Option          "Protocol"              "IMPS/2"
        Option          "ZAxisMapping"          "4 5"
        Option          "Buttons"               "5"

Section "InputDevice"
        Identifier      "Synaptics TouchPad"
        Driver          "synaptics"
        Option          "Device"                "/dev/psaux"
        Option          "Protocol"              "auto-dev"
        Option          "LeftEdge"              "1700"
        Option          "RightEdge"             "5300"
        Option          "TopEdge"               "1700"
        Option          "BottomEdge"            "4200"
        Option          "FingerLow"             "25"
        Option          "FingerHigh"            "30"
        Option          "MaxTapTime"            "180"
        Option          "MaxTapMove"            "220"
        Option          "VertScrollDelta"       "100"
        Option          "MinSpeed"              "0.06"
        Option          "MaxSpeed"              "0.12"
        Option          "AccelFactor"           "0.0010"
        Option          "SHMConfig"             "on"
        Option          "Repeater"              "/dev/ps2mouse"

Section "Monitor"
	Identifier	"InternalMonitor"
	Option	"DPMS"
	HorizSync    28.0 - 96.0
	VertRefresh  50.0 - 75.0
	Modeline "1280x768" 80.14 1280 1344 1480 1680 768 769 772 795
	Modeline "1024x768" 65.00 1024 1047 1183 1343 768 770 776 805

Section "Monitor"
	Identifier "ExternalMonitor"
	Option "DPMS" "true"
	HorizSync	30.0-83.0
	VertRefresh	56.0-76.0
	Modeline "1280x1024"  138.54  1280 1368 1504 1728  1024 1025 1028 1069

Section "Monitor"
  Identifier   "Television"
  HorizSync    30-68
  VertRefresh  50-120
# fbset -fb /dev/fb1 -x
  Mode "720x576"
    # D: 42.600 MHz, H: 45.127 kHz, V: 74.963 Hz
    DotClock 42.601
    HTimings 720 760 832 944
    VTimings 576 577 580 602
    Flags    "-HSync" "-VSync"

Section "Device"
	Identifier  "Intel"
	Driver      "i810"
#	BusID		"PCI:0:2:0"
#	Option		"MonitorLayout" "TV,LFP"
#	BusID       "PCI:1:0:0"
# VideoRam	65536

Section "Screen"
	Identifier "InternalScreen"
	Device     "Intel"
	Monitor    "InternalMonitor"
	DefaultColorDepth 24
	SubSection "Display"
		Depth     16
		Modes "1280x768" "1024x768" "800x600" "640x480"
	SubSection "Display"
		Depth     24
		Modes "1280x768" "1024x768" "800x600" "640x480"
		ViewPort	0 0
	SubSection "Display"
		Depth     32
		Modes "1280x768" "1024x768" "800x600" "640x480"

Section "Screen"
	Identifier	"ExternalScreen"
	Device	"Intel"
	Monitor	"ExternalMonitor"
	DefaultColorDepth 24
	SubSection "Display"
		Depth	24
		Modes "1280x1024"
		ViewPort	0 0

Section "Screen"
    Identifier  "TVScreen"
    Device      "Intel"
    Monitor     "Television"
    DefaultDepth 24
    Subsection "Display"
        Depth   24
        Modes   "768x576"
        ViewPort 0 0

Section "DRI"
	Mode 0666

Section "Extensions"
	Option "Composite" "Enable"
	Option "RENDER" "Enable"


I've had quite a hard time deciding what the best cpufreqd setup would be for me. Right now I'm using this:

# this is a comment
# you need: 1 [General] section, 
#           1 or more [Profile] sections
#	          1 or more [Rule] sections
# a section ends at the first blank line
# [Rule] sample:
#           [Rule]
#           name=sample_rule
#           ac=on                    # (on/off)
#           battery_interval=0-10
#           cpu_interval=30-60
#           programs=xine,mplayer
#           profile=sample_profile
# [Profile] sample:
#           [Profile]
#           name=sample_profile
#           minfreq=10%
#           maxfreq=100%
#           policy=performance
# see CPUFREQD.CONF(5) manpage for a complete reference

pm_type=acpi #(acpi, apm or pmu)
# Uncomment the following line to enable ACPI workaround (see cpufreqd.conf(5))
# acpi_workaround=1
verbosity=5 #(if you want a minimal logging set to 5)





# conservative mode when not AC

ac=off                   # (on/off)

# need some power

ac=off                   # (on/off)

# need big power (not if battery very low)
ac=off                   # (on/off)

full power when AC
ac=on                   # (on/off)

rc.conf (modules array)

This is just a starting point, you might want to load other modules or you might have some of these compiled into the kernel.

MODULES=(evdev \
        snd-intel8x0 snd-pcm-oss snd-mixer-oss snd-seq-oss \
        uhci-hcd ehci-hcd ohci1394 \
        ieee80211_crypt ieee80211 ipw2200 \
        i2c-i801 agp-intel i915)

Other Tweaks

I have a repository with some tweaked packages. Most noticably, there's an archck8-kernel, compiled for the lifebook p7010, as well as other packages compiled for the pentium-m processor (which could be used for other laptops too), such as a few of the KDE 3.4.3 packages, e17, and a few other things. Information on how to use my repository can be found here

External Links