General
Hardware
Specifications :
Laptop bought on the web, from France. See links section below. Common
case for Notebook, Sager 4760, Kenitec, I-Note models.
Clevo/Kapok Motherboard with Phoenix
BIOS 4.0 Release 6.0 (very few options available :-( ...). ACPI v1.0b
support.
Mandrake Official Download Edition 10.1, with 2.6.10-1mdk
custom-compiled kernel.
Hardware
Components |
Status
Under Linux |
Notes |
Pentium 4
Northwood 2,4 GHz (non-mobile processor) on mPGA 478B socket
|
works
|
No
special procedure required during installation
|
SiS
chipsets : SiS 961/2 SMBus Controller,
5513 for
IDE (ATA 133 capable),
SiS645DX for Host & Memory & AGP, SiS962 for ISA bridge
|
works |
No
special procedure required during installation.
(Try noapic, apic=no, nolapic boot parameters if you get black screen
or freeze after boot...)
|
17"
WXGA screen - 16:10 (1440x900 at 60 Hz) - SuperWide option
|
works |
Select
Generic LCD Display in Installer
|
ATI
Radeon 9000 Mobility M9 - 64 Mo DDR
(AGP 4x, 1 DDC output for dual
display, 1
S-Video)
|
works |
No
special procedure required during installation
|
SiS 7012
Audio Controller
|
works |
No
special
procedure required during installation |
2x512 Mo
DDRAM at 333 MHz
|
works |
No
special procedure required during installation
|
HITACHI-IBM
60 Go ATA 100 HDD
7200 rpm - 8 Mo cache
|
works |
No
special procedure required during installation
|
3"5
Floppy
Drive |
works |
No
special procedure required during installation
|
1 Network
RJ45 -
Realtek 8139 chip
|
works |
No
special procedure required during installation
|
Internal
56k Modem AC'97 chip
|
does not
work
|
No
special procedure required during installation |
DVD-CDRW
Drive - TEAC DW224EA - 24x speed
|
works |
No
special procedure required during installation
|
1 IrDA, 1
PCMCIA |
not tested
|
No
special procedure required during installation |
Misc
ports : 1 PS2 for mouse/keyboard, ,
1 mini-FireWire, 2 USB 1.0, 1 USB 2.0, 1 serial, 1 parallel
|
works |
No
special procedure required during installation
|
4400 mAh
LION Battery (14800 mV)
|
poor
quality
|
No
special procedure required during installation |
Z-Star
Corp.
USB camera
|
not
working
|
No
special procedure required during installation |
Basic Installation of Mandrake 10.1 :
I tried few other distros like Aurora and Slackware, but the only
one where I get the best of this hardware is Mandrake. I plan to
try Ubuntu or Debian later, but for the moment, I must admit that I
really like having the last optimizations for my boxes. So after
installation, I compile
my own kernels, and tune my box as far as technical possibilities are
offered
to me. And everybuddy knows that Linux is perfect for this (highmem
support, cpufreq, acpi, alsa etc...)
Mandrake fully recognizes many of actual hardware, even some very
recent stuff... It selects drivers during install and at next reboot,
there is nothing to do (ok
almost
nothing to do...). More, RPMs packages are an easy way to manage the
huge quantity of available free softwares. Last Mandrake 2.6 kernels
are the only ones for the moment, that are able to make my Wacom Tablet
work correctly. Official 2.6.10 sources do not work...
To obtain Mandrake distro, you can download the free Edition, buy it in
a "computer magazine", buy a Power Pack, install it from FTP site
(I tried last time, it works well, but it can be very long if you don't
have an ADSL connection...). The best and the fastest is to get files
with
BitTorrent. See in the Mandrakelinux website download section.
Installing Mandrake is pure simple. I started with a 7.2 few years ago,
and the install process is much easier each time, so that I don't have
to be there to make my friends try GNU/Linux ;-)...
A newbie will let the
STANDARD install go on, and let the partitionning and other stuff be
automatically made. The EXT3 filesystem is used by default, that's why
I always do an EXPERT install. Press F1 key at boot to get a
prompt where you can type : # expert, if you want to try...
I choose language, keyboard type, and
select my primary partition /, /home and SWAP. For / and /home I use
the
ReiserFS filesystem, my favorite one. After that, I select only basic
packages, cause I do all my updates with FTP sources, so there's no
need to
full my box...
As a bootloader, I choose LILO on MBR, as I have always done... For X
server, I use Xorg with Radeon driver, and choose Flat Panel for my TFT
screen. The native resolution 1440x900 is not present in the list, so I
take 1440x1050, it does not matter, I change it at next reboot... One
may configure network during install, but I prefer to do it "by hand"
with config files that I have backed up (ifcfg-eth0, NFS config files,
Samba
config files...)
Note that you may have problems during first steps of install, because
of APIC controller (beware not ACPI!!). In this case you'll have to try
many options like apic=off, noapic, nolapic, nofirewire, nousb, etc...
Got to find out on the web for more options...
Post-install
tweaks :
DISPLAY :
We want to use the real native resolution 1440x900
at 60 Hz (don't try to "overclock" the 60 Hz refresh rate !!).
We get the
right Modelines with
gtf
software, like this, in a console :
# gtf 1440 900 60
and it send us the correct modelines as output :
Modeline "1440x900_60.00" 106.47 1440 1520 1672 1904
900 901 904 932 -HSync +Vsync
Let's copy this line into "Monitor Section", in /etc/X11/xorg.conf (or
XF86Config if you still use XFREE 4.3...), and add Mode
"1440x900_60.00" in Screen/Display Section (See my xorg.cong file
below).
# init 3 and # init 5 to restart X server, and you have the right
resolution. You can check this with
xvidtune
soft, which will give you the resolution, and the refresh rate...
# xvidtune
HARD
DRIVE :
hdparm allow me to tweak IDE drives. I check its status and
infos with :
# hdparm -i /dev/hda (or -I option for more verbose output)
What interest me is to know about the DMA and 32 bits modes :
# hdparm -cd /dev/hda give me :
/dev/hda :
IO_support = 0 (32-bit)
using_dma = 1 (on)
and it is the same for /dev/hdc drive, so I add a line in
/etc/rc.local :
hdparm -c1 /dev/hda
/dev/hdc
to activate 32 bits mode at boot, for each drive.
ACPI :
One thing very important to check on laptop is Power Management. If you
let your system heat increase, without a functional fan, it will simply
burn. The fan must start few minutes after booting, the time it reaches
a "limit" temperature. My system is going up to 60°C, and then the
fan activate,
until it goes down to 50°C and then the fan stops... When at
60°C again, it activate again an so on...
I would say as soon as your Linux is installed, you must be sure that
either APM or ACPI is running. Type in a console :
# ps aux | grep acpi
# ps aux | grep apm to check this. If not, install
acpid (or
apmd) package. It should be started
at boot, take care of scrolling messages during boot time...
Unfortunately Power Management is not the same on each machine (some
have APM bios, some ACPI, some can use both...), and even if the
ACPI functions work on GNU/Linux systems, one must say it is not yet
very usable on many laptops, comparing other systems like W$$$ (not
this name here...!!!). We'll see this with Software Suspend tuning...
For basics, I only need to know temperature, battery level and it is ok
for me... On other machine, you can for example, get and control the
fan speed, put battery alarm ; on some Mobile
processor, you can tune processor throttling or P-states, but not in my
case...
I use ACPI instead of APM, because both work on my laptop, and ACPI
implementation offers more interface options than APM.
You can
try the use of ACPI with the option acpi=on on boot (put it in
/etc.lilo.conf
append line).
Now I always compile my kernels with ACPI on, APM off.
Modules for fan, battery, ac, thermal are loaded at
start. My fan module is not working, so I can not get and control the
fan speed (I would have liked...)
I made few aliases to be more useful... (put them in
/home/~/.bashrc file)
alias batst='cat /proc/acpi/battery/BAT0/state'
alias batinf='cat /proc/acpi/battery/BAT0/info'
I also installed
acpitool
software
which gives me :
# acpitool
Battery #1 : charged, 100.0%
AC adapter : on-line
Thermal info : ok, 58 C
I have all I need to know : temperature, AC on/off, and battery status
battery charge (in % and absolute value in mAh).
I also have an access to Cooling Mode tuning :
# cat /proc/acpi/thermal_zone/THM0/cooling_mode
gives the actual state of cooling, which can be "active" (default) or
"passive". But what are these modes...?
In big lines, I would say that active mode is for a "performance use"
of the box, with fan running like a truck, and passive mode is for a
"bit less performance" but "energy saving" use, then the fan don't need
to run too much... I tried I really think one can win some precious
minutes with passive mode.
A small alias to make it easier (to put in ./home/~/.bashrc):
alias cooling_mode='cat /proc/acpi/thermal_zone/THM0/cooling_mode'
So I thought it would be cool, to automatically go into passive mode
when on battery. We'll see this later at laptop_mode section...
URPMI :
Something I first do, when install and basic tweakings are
finished, is to define my FTP RPM sources...
It is really much easier to get softwares, kernel-sources, etc...
I use the
easyurpmi.zarb.org
website, which is very simple to use and
understand. Choose Mandrake 10.1 Official, select your FTP locations,
and
just copy the given lines into a console, to add media (main, contrib,
updates,
jpackage, plf). You can add COOKER sources, if you want to make few
tests with last xorg version for example...
Additional
features :
SOFTWARE SUSPEND :
As told beyond, Software Suspend (and now Software Suspend
2, for highmem kernels...) is not very useful for the moment, but
it can sometimes works. ACPI sleep modes 3 and 4 put my machine in kind
of "stanby mode", but never resume it, so it is a bit annoying I would
say...
The Software Suspend do a Suspend-to-disk "stanby". It writes an image
of the system (on swap partition for example), so that it can resume
later, with no long boot process time, and you come back to the state
you left the machine, with your opened consoles, softwares etc...
Coool !... but there are problems too. If you have DRI enabled in you
xorg.conf
file (wheter you use radeon or fglrx driver...), it will never
correctly resume. So if you want to use it, you will have to choose
between
DRI and Power Management : not very cool...
The same for USB. You'll have to stop usb services and restart them
after resuming, no quite pratical, when you have an USB tablet, an USB
printer etc...
I highly recommend to use special patched kernel for Mandrake at this
address :
CPUFREQ :
Even my CPU is a non-mobile processor, I can adjust frequency (and then
cool the machine). The only thing is to have a CPU which allows that
(P4, P4-Mobile, AMD Power Now...), CPUfreq options enabled in kernel
configuration (to get the right module (p4-clockmod for
mine)).
If you do not want to adjust the CPU speed on-the-fly, you can let the
system manage it with powersave, performance, or on_demand kernel
modules.
They consider the load of the processor and adjust it for more power
saving or more performance. Personally, I use a 2.6.10-1mdkcustom
kernel (HighMem, CPUfreq, ACPI, ALSA sound system), and I prefer change
my CPU speed
on-the-fly...
The comman line :
# cat
/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
gives me the frequencies at which the CPU can run, in Hz... (300 MHz to
2400 MHz, by
300 Mhz steps...)
I simply made aliases again to be able to change CPU frequency
on-the-fly (Note
that frequencies are not 300000 Hz but 299992 Hz etc...)
alias 2400='echo -n "2399940" >
/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed'
alias 2100='echo -n "2099947" >
/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed'
alias 1800='echo -n "1799955" >
/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed'
...etc... Just have to type "1200" in a console to make it work at 1200
MHz, cool...!
alias CPU_CLOCK='echo CPU Speed = $(cat
/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq) Hz' (to get CPU
speed in Hz)
The soft
radeontool is a soft
for
tuning Radeon Video Card, which allows to enable/disable DDC (DAC??)
output,
and TFT backlight, and then save a bit power. I do not use TFT
backlight option, because when I close the TFT screen,
there's a button automatically lights off backlight...
# radeontool dac
returns the actual status of DDC output
# radeontool dac on/off
activate/deactivate it...
The last alias allow me to get many infos :
alias lapinfo='echo && CPU_CLOCK && echo &&
cooling_mode && echo && acpitool && echo
&& batst && echo && radeontool dac'
So, when I type lapinfo in a console, I get CPU speed in Hz, cooling
mode, Temp,
battery/AC status, battery charge in % and mAh, DDC status. See output
here...
The only problem I noticed, is that my battery, which was 4400 mAh full
charge at
begining, is today (16 months later...) about 3200 mAh, which
represents a big loose of power.
I used to stand 1hour 50 min on battery (because of 7200 rpm HDD,
non-mobile CPU, and big TFT screen...), and today it is about 1 hour
20-30 min... It is not very important for me, as I most use it as a
desktop box, often on AC adapter. But it is important to never
forget to discharge it many times in a month, to keep it longer... One
must recognize that resellers put low quality battery in their machines
to make them cheaper... (You can not have everything working at top
level... Murphy Law ;-))
LAPTOP_MODE :
The other optimization is laptop_mode, which make HDD "idle" by
spinning down disk, to make system box cooler. And it works ! I did not
notice
any increase of battery lifetime, but the fan is not running as much as
it does when on AC adapter. The small script I made to
record temperature evolution has shown that the fan cycles are very
"spaced in time" comparing "normal use". The only thing is that disk
spinning
up and down can slow a bit the machine, but you can tune parameters to
find the best way to use it. At least you can try it, just to test...
To make it work, just download laptop-mode-tools which installs
everything for you. If it works, laptop_mode is automatically launched
when AC is offline, you can check it with :
# cat /proc/sys/vm/laptop_mode which gives you 0 or 1 (or 2) as ouptut.
0 when laptop-mode is off and 1/2 when on...
The paramaters are stored in /etc/laptop-mode/laptop-mode.conf file.
You can tell the machine what maximum CPU speed to use, idle timeout to
use, hdparm power saving options if you HDD support Power Management...
Note 1
: becareful, it seems there are different laptop_mode files :
/sbin/laptop-mode, /usr/sbin/laptop_mode, for script, and
/etc/sysconfig/laptop-mode and /etc/laptop-mode/laptop-mode.conf...
I checked mine and I use
/usr/sbin/laptop_mode
and /etc/laptop-mode/laptop-mode.conf as script and config file.
I put both in my
config files section at
the end of this page, so that
you can see my parameters...
Ok, let's go back to work. Knowing that an # echo 0 >
/proc/acpi/thermal_zone/THM0/cooling_mode
put the machine in active mode (and a 1 put in passive mode...), I just
had to had these lines in the right place of /usr/sbin/laptop_mode
file.
In the config file /etc/laptop-mode/laptop-mode.conf, there is a line
to also activate laptop_mode when TFT screen is closed :
LM_WHEN_LID_CLOSED=1.
It is the LID acpi event,
which needs the "button" acpi kernel module.
Quite interesting, but when lid is
closed, I would also like my CPU speed automatically decrease to
minimum value, so I just :
# echo 299992 >
/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed to go to this
frequency, always in the laptop_mode script.
Note 2
: I wanted the CPU speed to go back to the same it was before lid
closing
event, but the few tests I made did not work : either is stay at
minimum speed when opening again the TFT, or do not go to minimum speed
when closing. So when opening TFT again, I just have to put "by hand" :
2400 thanks to my aliases as shown in CPUFREQ section higher in this
page... sorry but I am not a coder, so if
anybudy got the soluce, thanks to send it to me...;-)
Note 3
: If laptop_mode is launched as soon as init 2 level (see with KSysv
soft), acpi lid event is not in open state, so CPU speed goes to
300MHz,
and laptop_mode is also activated. Then I removed it from level 2 init,
start it at level 3, and it works fine...
So it is very simple, I resume :
1) When on AC, laptop_mode
does not run, and we are in
active cooling mode. When I unplug the box, laptop_mode is actived,
and also passive cooling mode, for more power saving.
2) When I close the TFT screen
(either AC adapter or battery), lid event is detected, laptop_mode is
actived, and CPU speed goes down to 300 MHz. Just
have to remember, that if I want my box to compile a kernel as faster
as possible, I
must not
totally close
the TFT screen, to not push the switch acpi lid button... ;-)
Everything is commented in the files (search between words "COMMENTS"
and "END COMMENTS", and you'll see the three modified and commented
lines).
MICROCODE UPDATE :
The microcode in Intel IA32 processors can be updated. It only corrects
few internal bugs, but it is worth to do it, cause even if you
encounter problems, a reboot cancel it (it is not like a BIOS flashing)
In fact, you must load the microcode at each boot sequence. In your
kernel config, you must have the option "Processor Type & Features/
dev/cpu/microcode" enabled as module, and get the microcode update
utility at :
http://www.urbanmyth.org/microcode
You load the module with :
# modprobe microcode
then you can do the update with :
# microcode_ctl -u
That's all... You can unload the module with :
# rmmod microcode
I add these lines in /etc/rc.local, to have the updated microcode at
each boot :
modprobe microcode
microcode_ctl -u
rmmod microcode
Note that the updated microcode file /etc/microcode.dat is installed
with microcode utility
package. You also have an
/etc/init.d/microcode_ctl file to do this like a service at boot time,
but
it does not unload the module, so I prefer to deal with /etc/rc.local
file.
XORG
CONFIG :
For the touchpad, nothing to modify, it works very well... (I
don't
use it a lot actually)
My USB Graphire2 Wacom Tablet used to work very well, but with
the
first 2.6.x kernels series, it was horrible. Few geeks told about it on
web forums, but it was to hard to solve. I tried many many tests, but
it was not as usable as it used to be, so... We wait and now, Mandrake
kernels (and only them!!!) make it work again...
I just have to check
that usbmouse is not loaded at the same time that wacom module, cause
they conflict.
So I edit /etc/rc.local again and put the lines :
rmmod usbmouse wacom
modprobe wacom
and it works fine...
I put my
xorg_fglrx.conf file as an
example.
I just tried the official fglrx ATI driver, just to see if TV output
was working : it is not...
Radeon driver works fine too, and I never tried Xinerama functions.
I'll do it soon, I guess...
3D acceleration is fully ok, on both fglrx and radeon driver. 3D games
run very well and there is no display problem when gaming.
Unresolved
issues :
- For me, the problem with Supend-to-disk is the most
important, cause it is very practical to shut down and resume in few
seconds
when you work on laptop...
When it finally accepts to suspend fine, the USB and DRI resume bug is
here,
so it is still not very usable for all...
- I would like the webcam to work fine, but there is no driver (try the
spca5xx ?)
Configuration
files :
Here are some configuration
files from my box :
My lapinfo output
/etc/laptop-mode/laptop-mode.conf
/usr/sbin/laptop_mode
xorg_radeon.conf
xorg_fglrx.conf
lsmod
lspci
Contact
informations :
Links :