Differences between revisions 39 and 41 (spanning 2 versions)
Revision 39 as of 2008-09-07 19:00:33
Size: 13035
Editor: ?ArturCzechowski
Comment:
Revision 41 as of 2008-09-11 11:07:43
Size: 15151
Editor: ?PeterMoulder
Comment: Suggest linux-2.6.26 for mic problem
Deletions are marked like this. Additions are marked like this.
Line 63: Line 63:
 * In order for the Wifi hotkey (Fn+F2) to work, /etc/acpi/actions/wireless.sh needs to be tweaked - replace "ath0" with "ra0" and "ath_pci" with "rt2860sta". Do this after installing the rt2860sta driver from the above link.  * In order for the Wifi hotkey (Fn+F2) to work, /etc/acpi/actions/wireless.sh needs to be tweaked: replace "ath0" with "ra0" and "ath_pci" with "rt2860sta". Do this after installing the rt2860sta driver from the above link.
Line 66: Line 66:
 * ACPI events do work out of the box with 2.6.26 kernel - seems like the 901's ACPI implementation is less buggy than the 701's.  * ACPI events do work out of the box with 2.6.26 kernel seems like the 901's ACPI implementation is less buggy than the 701's.
Line 70: Line 70:
  * That page says that it works on the 900 with Linux-2.6.26; does it also work on 901 when using that version of Linux ?
Line 78: Line 79:
you need to

{{{
#apt-get install module-assistant
}}}
this should also install the kernel headers needed to build the wireless drive. next runn

{{{
#module-assistant auto-install linux-uvc
}}}
to install the right module for the webcam. afterwards run

{{{
#echo 1 > /proc/acpi/asus/camera
}}}
you should now have a working webcam, test it with Cheese :D
You need to

{{{
# apt-get install module-assistant
}}}
this should also install the kernel headers needed to build the wireless drive. next run

{{{
# module-assistant auto-install linux-uvc
}}}
to install the right module for the webcam.  Afterwards run

{{{
# echo 1 > /proc/acpi/asus/camera
}}}
You should now have a working webcam, test it with Cheese :D
Line 108: Line 109:
network-manager-gnome didnt work for me, it did not give me the option to use WPA encryption so I installed Wicd which works pretty well most of the time. grab it from http://wicd.sourceforge.net/

follow the instructions on the download page and remove everything from /etc/network/interfaces bar
network-manager-gnome didnt work for me, it did not give me the option to use WPA encryption so I installed Wicd which works pretty well most of the time.  Grab it from http://wicd.sourceforge.net/

Follow the instructions on the download page and remove everything from /etc/network/interfaces bar
Line 126: Line 127:
After some messing up with configuration I finally got things work.
 * put into /etc/modprobe.d/for-wireless line:
{{{
options pciehp pciehp_slot_with_bus=1 pciehp_force=1
}}}
 * add pciehp to /etc/modules to load it at boot start
 * modify /etc/acpi/action/wireless.sh, below change to on section:
{{{
    on|enable)
        if [ $(cat $wlan_control) = 0 ]; then
            echo 1 > $wlan_control
            # adding a sleep here, due to some bug the driver loading is not atomic here
            # and could cause ifconfig to fail
            sleep 1
            if ! ifconfig ra0 up; then exec $0 off; fi
        fi
        ;;
}}}

'''Alternatively''' you can apply following patch. Please note this patch also replaces device and module names.
{{{
--- wireless.sh.orig 2008-09-07 22:45:20.000000000 +0200
+++ wireless.sh 2008-09-07 22:41:08.000000000 +0200
@@ -6,20 +6,17 @@
 case $1 in
     on|enable)
        if [ $(cat $wlan_control) = 0 ]; then
- modprobe -r pciehp
- modprobe pciehp pciehp_force=1
            echo 1 > $wlan_control
- modprobe ath_pci
            # adding a sleep here, due to some bug the driver loading is not atomic here
            # and could cause ifconfig to fail
            sleep 1
- if ! ifconfig ath0 up; then exec $0 off; fi
+ if ! ifconfig ra0 up; then exec $0 off; fi
        fi
        ;;
     off|disable)
        if [ $(cat $wlan_control) = 1 ]; then
- ifdown --force ath0
- modprobe -r ath_pci
+ ifdown --force ra0
+ modprobe -r rt2860sta
            echo 0 > $wlan_control
        fi
        ;;
}}}

To apply the patch paste it into file, for example: /tmp/toggle-wifi.diff. Then run:
 * cd /etc/acpi/actions
 * patch -p0 < /tmp/toggle-wifi.diff
If there are no error messages content of /etc/acpi/actions/wireless.sh shall be OK.
[/ArturCzechowski]
Line 142: Line 198:
this is detailed on another page but i had some issues getting the desktop to display over the two monitors so have pasted my xorg.conf and some more info below to help. Firstly install xrandr if its not already this is detailed on another page but i had some issues getting the desktop to display over the two monitors so have pasted my xorg.conf and some more info below to help. Firstly install xrandr if it’s not already installed
Line 194: Line 250:
restart X '''without''' your external monitor plugged in, hitting the hotkey (f+f5) should now activate your external monitor. if not you can debug issues by running restart X '''without''' your external monitor plugged in, hitting the hotkey (f+f5) should now activate your external monitor.  If not then you can debug issues by running
Line 199: Line 255:
as a normal user (or a user that has permission to run x stuff), this will give you an output from which you can tell which monitors are plugged in. without external monitor plugged in as a normal user (or a user that has permission to run x stuff), this will give you an output from which you can tell which monitors are plugged in.  Without external monitor plugged in:
Line 210: Line 266:
with external monitor plugged in With external monitor plugged in:
Line 224: Line 280:
running the xrandr command with the options we specified in /etc/default/eee-acpi-scripts should also help you debug any problems Running the xrandr command with the options we specified in /etc/default/eee-acpi-scripts should also help you debug any problems
Line 232: Line 288:
next you need to unpack it somewhere like /usr/src/ then build it. you may want to backup your old driver first Next you need to unpack it somewhere like /usr/src/ then build it.  You may want to backup your old driver first
Line 241: Line 297:
im not sure if the last step is necessary but i ran it anyway.

you can verify your new driver with
I’m not sure if the last step is necessary but i ran it anyway.

You can verify your new driver with
Line 248: Line 304:
check that the date on the snd-hda-intel.ko is about the time you compiled it :)

your now you need to reboot.

after the reboot checkout your mixer settings with alsamixer or the gnome-volume-control, the channels have changed from the stock driver.
Check that the date on the snd-hda-intel.ko is about the time you compiled it :)

Now you need to reboot.

After the reboot, have a look at your mixer settings with alsamixer or the gnome-volume-control, the channels have changed from the stock driver.
Line 256: Line 312:
 * Recording: Capture. this is the record level for the front mic. it only seems usable at about 30% otherwise its just  really distorted
 * Recording: Digital. this is the record level for the external mic in. its alot quieter than the front mic even at 100%, prehaps were missing some MicBoost like the stock driver has.
To get your hot keys to work again you need to edit /etc/default/eee-acpi-scripts and change the mixer labels to
 * Recording: Capture. this is the record level for the front mic. it only seems usable at about 30% otherwise its just really distorted
 * Recording: Digital. this is the record level for the external mic in.  It’s a lot quieter than the front mic even at 100%, perhaps were missing some MicBoost like the stock driver has.
To get your hot keys to work again you need to edit /etc/default/eee-acpi-scripts and change the mixer labels
Line 270: Line 326:
you also need to add the line You also need to add the line
Line 275: Line 331:
this should get the volume keys working again. This should get the volume keys working again.
Line 287: Line 343:
further down in the '# Fn+F7 -- mute/unmute speakers' section comment out the line Further down in the # Fn+F7 -- mute/unmute speakers section, comment out the line
Line 297: Line 353:
you should now be all set You should now be all set.

Work on supporting the 901 and other Atom-based models (1000, 1000H) has commenced. We have a source package for the atl1e ethernet driver at http://eeepc.debian.net/ and are working on producing debs of this and rebuilding the installer to include them so that an ethernet-based install on these models will be possible.

A driver for the wireless hardware can be found at http://www.ralinktech.com.tw/data/drivers/2008_0708_RT2860_Linux_STA_v1.7.0.0.tar.bz2.

FixMe: This page has many things that are not model-specific and/or are duplicated elsewhere in the wiki (e.g. m-a, linux-uvc tip, multiple monitors, suspend-to-disk, swfdec flash player). Please delete redundant material and update appropriate pages instead (/HowTo/Sound for 'front mic', for instance) leaving behind only the truly model-specific things (e.g. rt2860, special hotkeys). Thanks.

Debian package for rt2860

[liable] We are working on supporting the rt2860 driver. A working source deb is now available in the eeepc.debian.net repository. The name of the package is rt2860-source and can be fetched with apt-get or your favourite package manager once you have added the repo. Instructions for adding the repository are linked from the main page of the wiki.

This can be built with module-assistant or from the tarball it installs. The easiest way is a simple

m-a prepare
m-a a-i rt2860-source 

Then install the built deb file.

[?OzeLot] I had success building the rt2860-driver from rt2860-source_1.7.0.0-1_all.deb on Debian/lenny with 2.6.26 kernel.

Before I followed your recipe, I installed the debs build-essential, kernel-package, module-assistant and the linux-headers-2.6.26-1-686.

To build the rt2860 module from the sources I did:

m-a prepare
m-a a-i rt2860

and installed the resulting rt2860-modules-2.6.26-1-686_1.7.0.0-1+2.6.26-3_i386.deb.

To manage my eth0 and ra0 interface, I installed network-manager-kde on my eeepc 901 with KDE. Then you need just three definitions in /etc/network/interfaces:

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
auto ra0
iface ra0 inet dhcp

The management does network-manager afterwards.

I confirm WPA1 AES connect to a (ralink) access-point.

Installer

?JohnGoerzen has confirmed these things work on the 901:

  • X
  • Hardware ethernet
  • Wifi with above driver, including WPA2 and network-manager
  • Suspend/Resume
  • Hotkeys: suspend, brightness, others untested.

Performance seems to be better than the Xandros install.

?ThijmenDeGooijer has confirmed these things to work on the 1000H:

  • X also on external display
  • Hardware ethernet
  • Wifi with above driver, including WPA2 and network-manager
  • Sound output, recording untested
  • Suspend/Resume to disk
  • Hotkeys: suspend, brightness, volume control (after modifying VOLUME_LABEL in /etc/default/eeepc-acpi-scripts).

?IvanSanchez reports:

  • In order for the Wifi hotkey (Fn+F2) to work, /etc/acpi/actions/wireless.sh needs to be tweaked: replace "ath0" with "ra0" and "ath_pci" with "rt2860sta". Do this after installing the rt2860sta driver from the above link.
  • Bluetooth works OK, but only if enabled from the BIOS. There is no way (yet) of enabling/disabling it - the eeepc acpi module needs some patching (see http://forum.eeeuser.com/viewtopic.php?pid=304343). The bluetooth adapter is an USB device, much like the webcam.

  • Remember to install cpufrequtils to allow throttling, if you skipped tasksel (works like a charm with acpi_cpufreq).
  • ACPI events do work out of the box with 2.6.26 kernel — seems like the 901's ACPI implementation is less buggy than the 701's.
  • rt2860sta driver won't compile with 2.6.26 kernel (sid); use 2.6.25 (lenny) for the time being.
    • works for me - installed Debian Lenny with kernel from linux-image-2.6.26-1-686 version 2.6.26-4, I compiled rt-sta and I use it with no problems [?ArturCzechowski]

  • Internal microphone does not seem to work. Most probably the 901 suffers from theh same problem as the 900. See http://wiki.debian.org/DebianEeePC/Model/900#head-1ef9e12308f2364008cb9f9871633d94ea331159 .

    • That page says that it works on the 900 with Linux-2.6.26; does it also work on 901 when using that version of Linux ?
  • The four "silver" keys (in the silver strip where the power button is) throw an ACPI event. The hotkey.sh script should reference those keys to do something useful (e.g. toggle webcam/bluetooth on/off).
  • suspend/hibernate/resume works; X with external display works (hint: edit /etc/default/eeepc-acpi-scripts for a higher resolution); LAN works.

This doesn't seem to work out-of-the-box:

  • Display switching
  • Hotkeys: LCD off, others untested

Hints and Tips from empika

webcam

You need to

# apt-get install module-assistant

this should also install the kernel headers needed to build the wireless drive. next run

# module-assistant auto-install linux-uvc

to install the right module for the webcam. Afterwards run

# echo 1 > /proc/acpi/asus/camera

You should now have a working webcam, test it with Cheese :D

wifi

I followed the instructions on http://www.itwriting.com/blog/778-fixing-wi-fi-on-asus-eee-pc-901-with-linux.html which links to this driver from Ralink http://www.itwriting.com/DPO_RT28xx_60_LinuxSTA_V1.7.0.0_2008_07_15.tgz, it has special eee-pc bits in and is ready to compile once extracted, just run make and make install in the source dir.

You need to edit /etc/acpi/actions/wireless.sh and replace all instances of ath0 with ra0 and ath_pci with rt2860sta To get the wireless hotkey to display the correct message when on the OSD you need to edit /etc/acpi/actions/hotkey.sh, find the line (around 35)

if grep -q ath0 /proc/net/wireless; then

and change it to

if grep -q ra0 /proc/net/wireless; then

network-manager-gnome didnt work for me, it did not give me the option to use WPA encryption so I installed Wicd which works pretty well most of the time. Grab it from http://wicd.sourceforge.net/

Follow the instructions on the download page and remove everything from /etc/network/interfaces bar

auto lo
iface lo inet loopback

wikd should be in your apps->internet menu, you can now run it and connect to wireless AP's!

[?ArturCzechowski] With following version of involved software:

Linux jalapeno 2.6.26-1-686 #1 SMP Thu Aug 28 12:00:54 UTC 2008 i686 GNU/Linux
linux-image-2.6.26-1-686             2.6.26-4
rt2860-modules-2.6.26-1-686          1.7.0.0-1+2.6.26-4

Fn+F2 turns off the wifi, but turning on doesn't work. A lot of errors in dmesg: http://pastebin.com/f698965f9

After some messing up with configuration I finally got things work.

  • put into /etc/modprobe.d/for-wireless line:

options pciehp pciehp_slot_with_bus=1 pciehp_force=1
  • add pciehp to /etc/modules to load it at boot start
  • modify /etc/acpi/action/wireless.sh, below change to on section:

    on|enable)
        if [ $(cat $wlan_control) = 0 ]; then
            echo 1 > $wlan_control
            # adding a sleep here, due to some bug the driver loading is not atomic here
            # and could cause ifconfig to fail
            sleep 1
            if ! ifconfig ra0 up; then exec $0 off; fi
        fi
        ;;

Alternatively you can apply following patch. Please note this patch also replaces device and module names.

--- wireless.sh.orig    2008-09-07 22:45:20.000000000 +0200
+++ wireless.sh 2008-09-07 22:41:08.000000000 +0200
@@ -6,20 +6,17 @@
 case $1 in
     on|enable)
        if [ $(cat $wlan_control) = 0 ]; then
-           modprobe -r pciehp
-           modprobe pciehp pciehp_force=1
            echo 1 > $wlan_control
-           modprobe ath_pci
            # adding a sleep here, due to some bug the driver loading is not atomic here
            # and could cause ifconfig to fail
            sleep 1
-           if ! ifconfig ath0 up; then exec $0 off; fi
+           if ! ifconfig ra0 up; then exec $0 off; fi
        fi
        ;;
     off|disable)
        if [ $(cat $wlan_control) = 1 ]; then
-           ifdown --force ath0
-           modprobe -r ath_pci
+           ifdown --force ra0
+           modprobe -r rt2860sta
            echo 0 > $wlan_control
        fi
        ;;

To apply the patch paste it into file, for example: /tmp/toggle-wifi.diff. Then run:

  • cd /etc/acpi/actions
  • patch -p0 < /tmp/toggle-wifi.diff

If there are no error messages content of /etc/acpi/actions/wireless.sh shall be OK. [?/ArturCzechowski]

hotkeys, osd and misc bits

run apt-get install aosd-cat to install the OSD display'er. you then need to edit /etc/default/eeepc-acpi-scripts and change the following lines ENABLE_OSD='no' to ENABLE_OSD='yes'

If you are not going to install the latest alsa driver to get the front mic working you can change

VOLUME_LABEL='LineOut'
VOLUME_LABEL='iSpeaker'

to

VOLUME_LABEL='Master'
VOLUME_LABEL='Headphones'

See the section below about what to do if you are installing the latest alsa

Multiple monitors

this is detailed on another page but i had some issues getting the desktop to display over the two monitors so have pasted my xorg.conf and some more info below to help. Firstly install xrandr if it’s not already installed

#apt-get install xrandr

then edit /etc/default/eee-acpi-scripts, change the line COMBINED_DISPLAY_SWITCHES='--mode 640x480' to

COMBINED_DISPLAY_SWITCHES='--output VGA --auto --above LVDS'

next you need to edit your /etc/X11/xorg.conf here is my version

Section "InputDevice"
        Identifier      "Generic Keyboard"
        Driver          "kbd"
        Option          "XkbRules"      "xorg"
        Option          "XkbModel"      "pc105"
        Option          "XkbLayout"     "gb"
EndSection
Section "InputDevice"
        Identifier      "Configured Mouse"
        Driver          "synaptics"
        Option          "CorePointer"
        Option          "SendCoreEvents"        "true"
        Option          "Device"        "/dev/input/mice"
        Option          "Protocol"      "auto-dev"
        Option          "HorizEdgeScroll"       "1"
EndSection
Section "Device"
        Identifier      "Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller"
        Driver          "intel"
        BusID           "PCI:0:2:0"
EndSection
Section "Monitor"
        Identifier      "Configured Monitor"
        Option          "DPMS"
EndSection
Section "Screen"
        Identifier      "Default Screen"
        Device          "Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller"
        Monitor         "Configured Monitor"
        DefaultDepth    24
        SubSection      "Display"
                Depth   24
                Modes   "1024x600"
                #ADD LINE FOR MULTI DISPLAYS
                #this is 1024 wide by 1368 high (768+600=1368)
                Virtual 1024 1368
        EndSubSection
EndSection

restart X without your external monitor plugged in, hitting the hotkey (f+f5) should now activate your external monitor. If not then you can debug issues by running

#xrandr

as a normal user (or a user that has permission to run x stuff), this will give you an output from which you can tell which monitors are plugged in. Without external monitor plugged in:

Screen 0: minimum 320 x 200, current 1024 x 600, maximum 1024 x 1368
VGA disconnected (normal left inverted right x axis y axis)
LVDS connected 1024x600+0+0 (normal left inverted right x axis y axis) 195mm x 113mm
   1024x600       60.0*+
   800x600        60.3
   640x480        59.9
TV disconnected (normal left inverted right x axis y axis)

With external monitor plugged in:

Screen 0: minimum 320 x 200, current 1024 x 600, maximum 1024 x 1368
VGA connected (normal left inverted right x axis y axis)
   1024x768       60.0
   800x600        60.3
   640x480        59.9
LVDS connected 1024x600+0+0 (normal left inverted right x axis y axis) 195mm x 113mm
   1024x600       60.0*+
   800x600        60.3
   640x480        59.9
TV disconnected (normal left inverted right x axis y axis)

Running the xrandr command with the options we specified in /etc/default/eee-acpi-scripts should also help you debug any problems

#xrandr --output VGA --auto --above LVDS

front mic

To get the front mic working you have to rebuild the alsa driver using the latest release candidate. grab it from here ftp://ftp.alsa-project.org/pub/driver/alsa-driver-1.0.18rc1.tar.bz2

Next you need to unpack it somewhere like /usr/src/ then build it. You may want to backup your old driver first

/usr/lib/2.6.25-2-686/kernel/sounds/pci/hda/# cp snd-hda-intel.ko snd-hda-intel.ko.stock
/usr/src/alsa-driver-1.0.18rc1# ./configure --with-cards=hda-intel --with-options=all
/usr/src/alsa-driver-1.0.18rc1# make
/usr/src/alsa-driver-1.0.18rc1# make install
/usr/src/alsa-driver-1.0.18rc1# ./snddevices

I’m not sure if the last step is necessary but i ran it anyway.

You can verify your new driver with

/usr/lib/2.6.25-2-686/kernel/sounds/pci/hda/# ls -l

Check that the date on the snd-hda-intel.ko is about the time you compiled it :)

Now you need to reboot.

After the reboot, have a look at your mixer settings with alsamixer or the gnome-volume-control, the channels have changed from the stock driver.

  • Playback: PCM. this is the master volume for the speakers
  • Playback: ?LineOut. this is the volume for the headphone socket

  • Recording: Capture. this is the record level for the front mic. it only seems usable at about 30% otherwise it’s just really distorted
  • Recording: Digital. this is the record level for the external mic in. It’s a lot quieter than the front mic even at 100%, perhaps we’re missing some ?MicBoost like the stock driver has.

To get your hot keys to work again you need to edit /etc/default/eee-acpi-scripts and change the mixer labels

VOLUME_LABEL='LineOut'
VOLUME_LABEL='iSpeaker'

to

VOLUME_LABEL='PCM'
VOLUME_LABEL='LineOut'

You also need to add the line

I_SWITCH_LABEL='iSpeaker'

This should get the volume keys working again.

To get the mute key to work you need to edit /etc/acpi/actions/hotkey.sh. Comment out the line (around line number 50)

status=$(amixer get $VOLUME_LABEL | sed -n '/%/{s/.*\[\(on\|off\)\].*/\u\1/p;q}')

and add this line underneath it

status=$(amixer get $I_SWITCH_LABEL | sed -n 's/.*\[\(on\|off\)\].*/\1/;ta;d;:a;p;q')

Further down in the ‘# Fn+F7 -- mute/unmute speakers’ section, comment out the line

amixer -q set $VOLUME_LABEL toggle

and add instead

amixer -q set $I_SWITCH_LABEL toggle

You should now be all set.