Linux on ASUS M2 Notebook
The Asus M2400 is a fine notebook, which works very good under Linux. I
still have some problems with the multimedia keys. All other Hardware is
supported and working. It was well equipped with additional, free
accesoires like an USB-mouse and a laptop-bag. This document has
nothing to do with Asus, they don't even know it exists. There is no
guarantee that the information on this page is accurate, please
don't hold me responsible if your experience is different from the
information here. |
|
What you need:
- Kernel 2.4.19 or later (they contain the i830 apgart and DRM
modules)
- XFree 4.2.0 or later
- A BIOS
Update to work around the 8mb legacy video memory problem
Overview of
installed PCI Devices
A small output
of lspci:
00:00.0 Host bridge: Intel Corp. 82830 830 Chipset
Host Bridge (rev 04)
00:02.0 VGA compatible controller: Intel Corp. 82830 CGC [Chipset
Graphics Controller] (rev 04)
00:02.1 Display controller: Intel Corp. 82830 CGC [Chipset
Graphics Controller]
00:1d.0 USB Controller: Intel Corp. 82801CA/CAM USB (Hub #1) (rev
02)
00:1d.1 USB Controller: Intel Corp. 82801CA/CAM USB (Hub #2) (rev
02)
00:1d.2 USB Controller: Intel Corp. 82801CA/CAM USB (Hub #3) (rev
02)
00:1e.0 PCI bridge: Intel Corp. 82801BAM/CAM PCI Bridge (rev 42)
00:1f.0 ISA bridge: Intel Corp. 82801CAM ISA Bridge (LPC) (rev 02)
00:1f.1 IDE interface: Intel Corp. 82801CAM IDE U100 (rev 02)
00:1f.5 Multimedia audio controller: Intel Corp. 82801CA/CAM
AC'97 Audio (rev 02)
01:06.0 FireWire (IEEE 1394): Texas Instruments TSB43AB21
IEEE-1394a-2000 Controller(PHY/Link)
01:07.0 CardBus bridge: Texas Instruments PCI1410 PC card Cardbus
Controller (rev 01)
01:0a.0 Communication controller: Conexant HSF 56k HSFi Modem
(rev 01)
01:0c.0 Ethernet controller: Realtek Semiconductor Co., Ltd.
RTL-8139/8139C/8139C+ (rev 10)
Processor:
The M2400 is
shipped with an Intel® PIII-Mobile with 1.2GHz, so
you should use the (Pentium-III/Celeron(Coppermine)) Processor family in
the kernel. I also compiled in MTRR (Memory Type Range Register) support
and enabled Plug and Play Support. In the General Setup submenu I
enabled beside PCI and Networking the support for hot-pluggable devices
and ACPI. More about this in
the appopriate sections.
Network:
The ethernet
controller is a Realtek RTL-8139 chip, so compile the 8139too module and
you should go. I haven't tried the 8139cp module yet, since it is still
in experimental stage. Don't forget to add the module into
/etc/modules.autoload
[*]
Ethernet (10 or 100Mbit)
[*] EISA, VLB, PCI
and on board controllers
<M>
RealTek RTL-8139 PCI Fast Ethernet Adapter support
Graphics:
There is a
known problem with the legacy graphic memory on the Intel i830 chipset.
Read Intels Statement aubout this issue.
The informations however seem to be not always correct. Read Manuel
Chakravartys opinion and his odyssee to
get the i830 working. When I tried to use the generic i810 driver for
xfree it provided a bad result: Only a resolution of 800x640 in 8bpp
graphics mode was possible. There a two workarounds for this problem: 1)
Use the vesa drivers instead, this will bring you at least 1024x786 at
16bpp. 2) If your manufacturer has one available - get a BIOS update
that allows you either to select the memory used for graphics or at
least provides 8mb of video memory. Luckily ASUS provides a BIOS Update
on the FTP Server
to solve this problem. The drawback however is that you need some
working copy of Windoze or MSDOS to flash the BIOS. I used the PHLASH
Utlity and it worked fine, I now have enough video memory to run the
i810 driver with 1024x786 at
32bpp.
In the character devices submenu enable APGART support, then
activate the AGP support for the GLX module and onboard support for the
i830 chipset. Do not forget the DRI support and the i830m DRM driver.
<*>
/dev/agpgart (AGP Support)
[*] Intel I810/I815/I830M
(on-board) support
[*] Intel 440LX/BX/GX and
I815/I820/I830M/I830MP/I840/I845/I850/I86
[*] Direct Rendering
Manager (XFree86 DRI support)
--- DRM 4.1 drivers
<*> Intel 830M
USB:
The notebook
contains three USB hubs but only two USB ports on the rear. The optical
mouse coming along has an USB adapter, so we need in the kernel Support
for USB and toggle following options:
<*> Support for USB
[*] Preliminary USB
device filesystem
<*> EHCI HCD
(USB 2.0) support (EXPERIMENTAL)
<*> UHCI (Intel
PIIX4, VIA, ...) support (NEW)
<*> USB Mass
Storage support
<*> USB Human
Interface Device (full HID) support
[*] HID
input layer support
Now jump into
the Input core menu and enable following options:
[*]
HID input layer support
<*> Mouse
support
(1024)
Horizontal screen resolution
(768) Vertical
screen resolution
Touchpad:
The touchpad is
a PS/2 mice, so we enable Mouse support for PS/2 devices. In XFree the
touchpad is configured as the default mice and we assign the USB mouse
as additional input device, since it may not always be plugged in. With
the following settings both devices work flawless together. The scroll
wheel is enabled with the ZAxisMapping option.
Section "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "Protocol" "PS/2"
Option "Device" "/dev/mouse"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
Identifier "Mouse2"
Driver "mouse"
Option "Protocol" "IMPS/2"
Option "Device" "/dev/input/mouse0"
Option "ZAxisMapping" "4 5"
EndSection
Section "ServerLayout"
InputDevice "Mouse1" "CorePointer"
InputDevice "Mouse2" "SendCoreEvents"
EndSection
See my XF86Config if you still have
questions.
Sound:
It's up to you
wheter you compile the Intel ICH (i8xx) module provided along with your
kernel or use the more powerful ALSA
modules like I did. Get the latest release, compile it
and add our soundcard (it's an AC'97 Audio chipset) to /etc/modules.conf
alias snd-card-0 snd-intel8x0
You
probably want to compile the alsa-tools as well to use
amixer to set the volume and toggle on the muted soundcard.
Firewire:
I have enabled
FireWire (IEEE1394) support in the kernel and from bootup it seems to
work fine with the Texas Instruments TSB43AB21
controller. But due to lack of FireWire Hardware I cannot verify this.
Please drop me a mail when you could do so.
IrDA:
Yes it is
working! Grab
the fine IrDA Utils form the Linux IrDA Project and read the
excellent IrDA Howto when you plan to use
your mobile phone as a modem. In the kernel enable IrDA subsystem
support and compile following modules:
<M>
IrDA subsystem
support
--- IrDA
protocols
<M> IrLAN
protocol
<M> IrNET
protocol
<M> IrCOMM
protocol
Infrared-port device
drivers --->
<M> IrTTY (uses Linux
serial driver)
Now run
following commands to load the modules and get your IrDA port registered
as a serial port. In Gentoo Linux I wrote a script called /etc/init.d/irda and added it to the
runlevel by issuing the command: "rc-update add irda default" Or do it
manually:
modprobe
irda
modprobe ircomm
modprobe ircomm-tty
modprobe irnet start-stop-daemon
--start --quiet --pidfile /var/run/irattach.pid
\ --startas
/usr/sbin/irattach -- /dev/ttyS1 -s
Now enable the
IrDA connection on your IrDA device (a mobile phone or Palm) and check
the /dev/ircomm0 with irdadump (Part of the IrDA Utils package) for some
reasonal output. Also use ifconfig to check for the irda device. It
should give you something like:
irda0
Protokoll:IrLAP Hardware Adresse 35:86:27:82
UP RUNNING NOARP MTU:2048 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:68012 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:8
RX bytes:0 (0.0 b) TX bytes:2127804 (2.0 Mb)
Since I'm using
my Siemens S40 mobile phone as a modem, I installed wvdial and configured it to
my mobile phone provider settings. Set /etc/wvdial.conf according your
needs and start the connection with wvdial. If you use a different phone
this howto
may be useful. I have an E.Plus Contract in Germany, so my
etc/wvdial.conf looks like this:
[Dialer
Defaults]
Modem = /dev/ircomm0
Baud = 115200
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1
&D2 +FCLASS=0
ISDN = 0
Modem Type = Analog Modem
Phone = 123100
Username = anyuser
Password = anypassword
Modem:
The built in
softmodem is a Conexant HSF 56k HSFi Modem that uses the Conexant Linux
drivers.
Unfortunately these are not open-source, but at least they are
working! Download and install these
and run hsfconfig to configure it. (Gentoo users: emerge hsflinmodem).
The modem will be accessible as /dev/ttySHSF0 but for better
consistency I symlinked it to /dev/modem. Use wvdial to connect to the
provider of your choice. In the kernel activate Network Device support,
PPP-Protocol support, Async Serial Support and PPP Deflate Compression.
ACPI:
The M2400 works
very well with the Linux ACPI. However proper ACPI support needs some
tweaking with the kernel. Grab the latest ACPI
patches and read the
installation instruction how to patch the kernel. Gentoo users just
do an "emerge acpi-sources". I also installed acpid,
a daemon for ACPI to invoke special events depending on the laptop
state. Read this fine ACPI Howto
and the official ACPI
specification sheets to get some understanding when you are new to ACPI.
After successfully applying the patch select in General Setup the
submenu ACPI support and compile in following modules:
[*]
ACPI
Support
<*> AC
Adapter
<*>
Battery
<*>
Button
<*>
Fan
<*>
Processor
<*> Thermal
Zone
I
installed autospeedstep,a little program,
running as daemon, which controls the power consumption and processor
speed depending of the CPU load. Since the M2400
notebook is equipped with an Mobile Pentium III,the Intel
Speedstep function is activated depending of the CPU load. During
a load below 70% the CPU is running at
800Mhz, otherwise it will switch back to 1,2Ghz. The function of the
daemon can be verified with a:
cat
/proc/acpi/processor/CPU0/performance
state
count:
2
active
state:
P1
states:
P0:
1200 MHz, 20000 mW, 500 uS
*P1:
800 MHz, 10000 mW, 500 uS
Framebuffer:
Coming soon.
Happy Linuxing with this fine notebook. If you have additonal infos or
something else to say, just mail me at js
AT ameds DOT de.