Home

SuSE 9.1 on Asus M6700N (M6N)

This is a report about my attempt to install SuSE Linux on my Asus M6700N Centrino widescreen laptop.

News

It seems that Asus has fixed the battery related problem with BIOS version 0214a for M6N. Thank you everyone for signing the petition.

Intro

I bought this notebook because:

Hardware

Asus M6700N (sometimes just called M6N). It does NOT have:

Here is the output of hwinfo --short. Note that the reported Mobile Disk, Flash Disk and the AnyCom ECO Card do not come with this laptop.

It was shiped together with

The laptop has a plastic case, but nice looking. Stupid stickers like Centrino or ATI sticker can be removed with help of a hair-dryer. Take care not to damage the plastic case if you use a knife.

Noise level

For office work or internet you will rarely hear the notebook. The fan will be switched off. The hard disk is smooth.

On full load (e.g. compilation) the fan will switch on and is clearly audible. CD drive can be louder. Spin down the drive with eject -x 10, if you only want to read documents on CD.

Linux Distribution

Suse 9.1 Professional, immediately updated with online-update. SuSE Germany, SuSE USA

X11

sax2 recognises a 1024x768 VESA monitor and driver ATI RV360 NP. I don't need 3D or any fancy stuff. So I took this driver, but changed the resolution:
In sax2 I changed the monitor to VESA 1280x1024@60HZ. That's too big, but the only available to use 1280x800. Sax does not know 1280x800. So go to color and resolution, Expert, and define it. For me it works with 16bit colors and the resolutions 1280x800. I also added 1024x768, 800x600 and 640x480, but he 4:3 resolutions are stretched and not good looking.

To get 3D hardware acceleration you can download the ATI driver at SuSE or at the ATI driver download page. Note that it is not possible to suspend/resume the laptop if this driver is used.

Dual head

You can use an additional external monitor with dual head.

To configure X with sax2 for dual head, you have to start sax2 and add an additional card of the same kind. Once 2 cards are set, you can configure 2 monitors and choose between traditonal dual head, xinerama, or just clone displays.

This example XF86Config for dual head was configured for an additional monitor (VESA 1024x768@75Hz) and traditonal dual head with 2 servers. To use it with Xinerama, start X with startx -- -xf86config XF86Config.dualhead +xinerama.

mplayer

mplayer can deal with the wide screen without any problems, if you tell it to use an aspect ratio of 1.6. Add monitoraspect=1.6 to ~/.mplayer/config. The SuSE mplayer rpm has lots of limitations on codecs because of legal issues. Better compile an own version with original sources.

Touchpad

It works, but only very limited. Better get the synaptics driver. Than tapping and the really nice scroll feature works. Only 2 finger tapping did not work.

USB Mouse

The Laptop came with an USB Mouse. It works well, but you have to tell sax2 it has a scroll wheel.

DVD and CD

DVD read and CD read and write works well. Now Suse uses automount. It will automatically mount CDs and DVDs in /media/cdrecorder.

Ethernet

Works well.

Modem

Internal Winmodem

The Suse installation recognised the winmodem and claims it would work. But it did not.

The only way to use the internal winmodem seems to be to use Linuxants commercial HSF driver. But you can use it with a free licence with 14K and without fax support. For full 56K support it costs 15 US$.

If you have a custom compilied kernel, you can download the generic RPM package with source. Unzip it, if it comes as a zipped file. You can install it as root with

rpm -i hsfmodem-7.18.00.02full-1.i386.rpm
. I had to reboot to get the device file.

Start yast2 modem module and add a new modem with the device file reported by

hsfconfig --info
. In my case it was
/dev/ttySHSF0
.

The HSF modules seem to slow down the supend process a lot. I decided to add them to

POWERSAVE_UNLOAD_MODULES_BEFORE_SUSPEND
in
/etc/sysconfig/powersave/common
. This helps and suspend becomes as fast as before.

PCMCIA 56K-Modem Card Anycom ECO II (not included!)

This card is usually known to work with linux without any problems and I used it on other laptops before.

It is not detected by yast2. This is strange because in older Suse distributions it was detected and wvdial also detects it. So I had to install it manually. The card itself is detected and linked to /dev/ttyS0. So you can easily add this in yast2.

First it worked well. Now it does not anymore. I do not know what I could have done. The symptoms are:

It dials like it should and connects with the provider (I tried some). Than pppd sends a few times

    pppd[0]: sent [LCP ConfReq id=0x1    ]

and dies with exit code 16
	    
pppd[0]: Hangup (SIGHUP)
pppd[0]: Modem hangup
pppd[0]: Connection terminated.
Status is: disconnected
pppd[0] died: A modem hung up the phone (exit code 16)
    

This seems to be an old problem with Suse/Linux and nobody seems to know a solution. The support database has 2 suggestions:

1. Lower the serial port speed.
Even with 9600, the problem stays.

2. remove the boot parameter "desktop".
Does not help either.

It does not matter if I use kinternet or wvdial directly.

Eventually I found a way to use the ECO II in a very uncomfortable way. I can dial the ISP with minicom and start pppd manually afterwards. To disconnect I kill the pppd process.

So, the problem seems to be wvdial.

ACPI

The bios does not support APM any more, so you have to use ACPI.

Battery

There should be no problems with the battery status if you have Bios version 0214a.

For Bios versions prior to 0214a the battery status can not be read by default. But with this kernel patch provided by Herman Sheremetyev the battery status can also be read with lower bios versions. (see notes about kernel compilation).

Afterwards status can be shown with powersave -b or cat /proc/acpi/battery/BAT0/state.

The KDE battery monitor does not show up on my laptop. But this seems to be a KDE problem. As an alternative I use akpi. It also gives you a battery monitor in the KDE panel.

Suspend (to disk)

Suspend and standby are switched off by default.

Change in /etc/powersave.conf to POWERSAVED_DISABLE_USER_SUSPEND=no

agp modules are said to cause problems. With lsmod I saw intel-agp. Put it into /etc/hotplug/blacklist. But this means it will not load anymore. For me this seems to be no problem.

First attempt failed. Module "tg3" seems to make problems. Add it in /etc/sysconfig/powersave to POWERSAVE_UNLOAD_MODULES_BEFORE_SUSPEND.

Than powersave --suspend should work.

I have to restart the following services after a suspend:

Standby

Standby did not work. If you try it, and it fails: You can reset the laptop with the reset button at the bottom side.

Special buttons

So far, only brightness Fn-up/down, Fn-NumLk and LCD-on/off work. None of the additional buttons above the keyboard and not the volume keys.

For using the special buttons and the LEDs you need to load the asus_acpi module. If it is not compiled with the kernel, you can configure the kernel with make menuconfig, Power management options (ACPI, APM), ACPI Support and set ASUS/Medion Laptop Extras to M.

To load the module at boot time append asus_acpi to MODULES_LOADED_ON_BOOT in /etc/sysconfig/kernel.

Manfred Tremmel has a good description for SuSE 9.1/9.2 in German on his Asus M6842NW page.

Speed step

Speed step works well. Default is to use dynamic mode. It chooses frequencies between 600 and 1400 MHz, depending on the present CPU load.

USB memory stick

I have a Twinmos Mobil Disk III (USB 2.0 256MB - K21) and it works well. Plug in and it gets auto mounted in /media. Nice and fast.

I also tried an Acer USB2 memory stick and it works too.

Update

The Yast2 online update of hotplug to version 0.44-32.22 destroyed the ability to read the memory stick. Going back to version 0.44-32 from DVD did help.

TV-Out

No, it did not. (With Windows it works.) Maybe it would work with the ATI driver.

External Monitor

Yes. Works as cloned display, traditional 2 servers and Xinerama. (see sec X11)

Wireless LAN

The hardware information reports a "Intel(R) PRO/Wireless 2200BG". But lspci reports "Network controller: Intel Corp.: Unknown device 4220 (rev 05)" and the yast2 network card installation does not find the card automatically.

The Intel PRO/Wireless 2200BG Driver for Linux (IPW2200) version 0.21 works with WEP-encryption.

It is not included in SuSE 9.1. I downloaded it, followed the instructions in the INSTALL file and it worked with WEP support and 54 MBit/sec. The preconditions of the kernel configuration were already fulfilled by the SuSE standard configuration.

It should support 802.1x EAP via xsupplicant, but I did not try this. WPA-PSK (pre-shared key) does not works. I made one unsuccessful attempt with wpa_supplicant version 0.2.3.

Installing IPW2200 with yast (ipw2200)

First you have to install the ipw2200 module. Follow the instructions in the INSTALL file. (It can be a good idea to test the module manually before you use it with yast. See INSTALL file.)

I was not able to configure the WLAN with yast2 but with yast (I don't understand the reason).

Start yast and choose Network Devices, Network Card. Configure a new card. Choose Wireless as Device Type. At Module Name insert ipw2200. If you use ipw2200 <= 1.0.0 than you can insert at Module Options the value ifname=wlan0. The module option is needed, because otherwise ipw2200 would use eth1 as interface name, but yast needs wlan0.

Do not choose your ethernet AND your wireless to come up both at boot time. Ethernet must be down, when the wlan ist started. Personally I choose both of them to start manually. (ifup wlan0, ifdown wlan0, same for eth0.)

Fill out the data of your wireless lan configuration. It is possible that you have to restart linux.

IPW2200 >= 1.0.1
The ipw2200 driver version 1.0.1 does not support the ifname parameter anymore. So you have to skip the module option. Instead you have to rename the configuration file after saving it with yast.

First find out which interface name the module choose. iwconfig should tell you this. Or reboot and have a look at /var/log/boot.msg. In my case it was eth0.

Now go to /etc/sysconfig/network and rename ifcfg-wlan0 to ifcfg-eth0 (if the interface name was eth0). After a reboot your wlan should start as interface eth0.

Everytime you use yast for changes in the network configuration, you first have to rename ifcfg-eth0 to ifcfg-wlan0 again. Make the changes and rename it to ifcfg-eth0.

WPA with IPW2200

Since version 1.0.1 ipw2200 supports WPA via wpa_supplicant. I used wpa_supplicant 0.3.7 with WPA-PSK. Follow the README to install and configure it.
Boot script for wpa_supplicant
After installing and testing wpa_supplicant you might want to have a boot script to automatically start it at boot time. For example, if you configure your wlan to start at boot time, wpa_supplicant must run already.

You can use the template in /etc/init.d/skeleton and modified it to your own need. Than save it at /etc/init.d/wpa. Here is my boot script for wpa. In addition you have to modify /etc/init.d/network. Add wpa to # Required-Start:. This tells insserv that wpa must start before the network. Afterwards call insserv to create the needed links in the runlevel directories.

Note: Often the dhcp server does not answer quick enough at boot time. Just wait a minute and you will find the network up.

Linuxant DriverLoader

I also tried the Linuxant DriverLoader. You can get a 30 days trial version or pay 20 US$.

It works with Linuxant Driverloader version 1.76. This is what Linuxant wrote to me:

please try with a fresh 2.6.7 kernel from www.kernel.org. You should also add this patch to this kernel :
http://www.linuxant.com/linux-2.6.7-16kstacks.patch
You should compile this kernel with the following options disabled : You should enable the following options : If you still experience crashes with this new release, it is possible that you will have to activate the stack workaround by adding the following line in your '/etc/modules.conf' file :
This works for me. Also WPA-PSK suppurt via wpa_supplicant version 0.2.3. But I had suspend problems with kernel 2.6.7. So I prefer the native IPW2200 driver with WEP.

NdisWrapper

I tried NdisWrapper too. But it caused random system freezes. I did not make further attempts, because I am happy with ipw2200.

Parallel port printer

I have an old parallel port printer (HP Deskjet 510). It works well, as long as I do not define any additional network printers.

Kernel compilation notes

I decided to put a few notes on compiling the SuSE kernel, to prevent others from making the same mistakes as me.

mk_initrd

In my opinion this is not well documented in the SuSE manual. You have to execute mk_initrd after you copied your new kernel to /boot. Otherwise you might get problems with modules which are needed at boot time.

If you get kernel panic because of the reiserfs module, this might be the reason.

subfs/submount

subfs is needed for automount CDs or removeable media.

Somehow subfs is included in the binary package of the kernel, but not in the source package.

According to thread on www.linuxquestions.org you must have the package submount and km_submount installed if you want to use subfs. Follow the INSTALL file in /usr/src/kernel-modules/subfs on how to install this module.

Useful links

Final Remarks

I am quite happy with the notebook itself, but the linux support is a bit disappointing compared to my old Asus notebook. I do not know if this is a Linux, a SuSE or an Asus problem. At least Asus seems to be very less interested in fixing their mistakes which are definitive their fault. But if you can live with some problems, it's ok.

Special thanks to Herman Sheremetyev, who seems to be the driving force for Linux on M6N laptops.

Cord Bielke

NoSoftwarePatents.com