Acer Aspire One A110L

From Gentoo Linux Wiki

Jump to: navigation, search

Contents

[edit] Hardware status

Device Works? Note
Intel 82801G RTL8101E PCI-E Ethernet Yes No RTL8101E support at installation time!
Intel 82801G Atheros AR5006EG Wireless Yes Works with Kernel >=2.6.27_rc6, but Wireless LEDs not supported yet
X11 Yes Hardware 3D acceleration requires Xorg 7.4 and mesa 7.2
Intel 82801G High Definition Audio Yes Works with Kernel >=2.6.27_rc6
Internal SD card reader Yes Needs PCI express hotplug module
Webcam Yes  
Suspend to RAM/Disk Yes Requires UNSAFE_RESUME in MMC driver kernel settings if using left-side slot for permanent storage

[edit] Hardware

Code: lspci
00:00.0 Host bridge: Intel Corporation Mobile 945GME Express Memory Controller Hub (rev 03)
00:02.0 VGA compatible controller: Intel Corporation Mobile 945GME Express Integrated Graphics Controller (rev 03)
00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (rev 03)
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 02)
00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 02)
00:1c.2 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 3 (rev 02)
00:1c.3 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 4 (rev 02)
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 (rev 02)
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4 (rev 02)
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 02)
00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA IDE Controller (rev 02)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 02)
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8101E PCI Express Fast Ethernet controller (rev 02)
03:00.0 Ethernet controller: Atheros Communications, Inc. AR5006EG 802.11 b/g Wireless PCI Express Adapter (rev 01)

If however you see this:

Code: lspci
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8101E PCI Express Fast Ethernet controller (rev ff)

Then you need the driver from here as it's not in the stock kernel yet:

http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&PNid=14&PFid=7&Level=5&Conn=4&DownTypeID=3&GetDown=false#2

Warning: Do not use the Realtek R8101 driver if your Ethernet controller is (rev 02). Module unloading is unstable and the system may hang at shutdown. Stick with the kernel-provided R8169 driver for this revision of the controller.

[edit] Intro: Pre-installation notes

Since the RTL8101E NIC is unsupported by the 2008.0 LiveCD/USB, and there is no optical drive, you have several options:

  • Use the SystemRescueCD installed to a usb drive. (tested with v. 1.0.4). - but see discussion
  • Create a Gentoo LiveUSB installer using the LiveUSB HOWTO (linux) or using the pendrive guide (windows) and perform a stage3 install (Note: wired and wireless will not be recognized, just use sneakernet to download the files needed for installation)
  • Create a Gentoo LiveUSB installer as above, but use the latest minimal install iso instead of the LiveCD iso, specify gentoo-nofb, and your ethernet connection will be recognized, allowing you to do a normal minimal install. (tested on /releases/x86/current/install-x86-minimal-20090609.iso)
  • Connect an external optical drive, and perform a networkless install,
  • Connect a supported external USB Ethernet NIC with either of the above and perform a network enabled install, or
  • Use a different distro whose LiveCD/USB supports the RTL8101E NIC. (Debian Testing works)


Once you are ready to install, follow the normal installation process as described in the Gentoo Installation Handbook.

Note: The machine boots the LiveCD almost perfectly, but the use of framebuffer for higher resolutions may not work. If so, use the gentoo-nofb kernel when the LiveCD boots.

[edit] CFlags for Intel Atom

The Aspire One comes with the new Intel Atom Diamondville CPU. This means that you need to set the correct CFLAGS in /etc/make.conf, or GCC won't compile stuff and you won't install Gentoo (I used a 32 bit i686 stage3 tarball). Note that GCC as of 4.2 supports the -march=native cflag, this will automatically set the correct flags for your CPU. For older versions of GCC, use -march=prescott

Code: /etc/make.conf
CFLAGS="-march=native -O2 -pipe" 
CXXFLAGS="${CFLAGS}"
Warning: This CPU DOES NOT support 64-bit!

[edit] Kernel Config

Linux Kernel Configuration: Aspire One
 General setup --->
     [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support
     (/usr/share/v86d/initramfs) Initramfs source file(s)
 [*]Enable loadable module support --->
      [*] Automatic kernel module loading.
 -*- Enable the block layer -->
     IO Schedulers --->
         Default I/O scheduler (No-op)
 Bus options (PCI, PCMCIA, EISA, MCA, ISA) --->
     [*] PCI support
     [*] PCI Express support
     <*>   PCI Express Hotplug driver             (This option is available after you enabled "Support for PCI Hotplug")
     <*> Support for PCI Hotplug  --->
     PCCARD (PCMCIA/CardBus) support --->
         < > PCCard (PCMCIA/CardBus) support
 Networking --->
     Wireless --->
         <*> Improved wireless configuration API
         <*> Generic IEEE 802.11 Networking Stack
 Device Drivers --->
     < > ATA/ATAPI/MFM/RLL Support
     <*> Serial ATA (prod) and Parallel ATA (experimental) drivers --->
     <*>   AHCI SATA support
     <*>   Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support
     <*>   Generic ATA support
     <*>   Intel PATA MPIIX support
     <*>   Intel PATA old PIIX support
     [*] Network device support --->
     [*]   Ethernet (1000 Mbit) --->
     <*>     Realtek 8169 gigabit ethernet support
           Wireless LAN --->
     [*]     Wireless LAN (IEEE 802.11)
     <*>       Atheros 5xxx wireless cards support
     [ ]   PCMCIA network device support --->
      Multimedia devices --->
             <*> Video For Linux
             <*> DAB adapters
         Character devices --->
     <*>   Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)
     <*>     Intel 830M, 845G, 852GM, 855GM, 865G (i915 driver) --->         
     Graphics support --->
     <*>   Support for frame buffer devices
     <*>   Userspace VESA VGA graphics support
     <*>   VESA VGA graphics support
     <*>   Intel 830M/845G/852GM/855GM/865G/915G/945G support (EXPERIMENTAL)
           Console display driver support --->
     <*>     Framebuffer Console support
     [*]       Map the console to the primary display device
         Sound --->
     <*>   Sound card support
     < >   Advanced Linux Sound Architecture
     < >   Open Sound System
     <*> MMC/SD card support --->
     <*>   Secure Digital Host Controller Interface support (EXPERIMENTAL)
     <*>   TI Flash Media MMC/SD Interface support (EXPERIMENTAL)
      Device Drivers --->
     [*] Block devices
       < > Normal floppy disk support

[edit] Kernel notes

  • "Automatic kernel module loading" is needed for Wifi drivers to install.
  • If Intel 82801G RTL8101E PCI-E Ethernet doesn't work after you boot your freshly compiled kernel, then remove "<*> Realtek 8169 gigabit ethernet support" from above and get the driver as written in the Hardware section above.
  • if you copy the SystemRescueCD kernel across it has no sound compiled in it. You will need Device Drivers->PCI->Sound->Intel HD.

[edit] Video

[edit] Installing X.org

To install X.org with everything you need, edit /etc/make.conf, and add VIDEO_CARDS and INPUT_DEVICES:

Code: Editing: /etc/make.conf
VIDEO_CARDS="intel"
INPUT_DEVICES="keyboard synaptics mouse"

This will keep your settings, and supply support for the keyboard, touchpad, and external mice.

Now install xorg-x11:

emerge -av xorg-x11

Now go get a cup of coffee, or two, because this will take about two hours and 15 minutes to complete.

[edit] Configure X

Note: All the information below assumes you have not installed the xf86-input-evdev package. If you have, the following settings - particularly for keyboards and mice - are largely irrelevant and will be ignored by X.

After xorg-x11 is installed, configure it by running xorgcfg. Once the configuration program is loaded (we only need it to see if X window system works and for a raw config file), hit Ctl + Alt + Backspace to go back to the command line prompt. Copy the ~/xorg.conf.new to /etc/X11/xorg.conf.

Now fire up your favourite text editor (ex.: nano) to add the following to /etc/X11/xorg.conf:

Warning: Pay special attention to the comments (text after #). They are necessary to set a proper font size. Otherwise the fonts in various programs will be quite large.

To configure the graphics card:

Code: Editing: /etc/X11/xorg.conf

Section "Device"
	Identifier  "Card0"
	Driver      "intel"
	VendorName  "Intel Corporation"
	BoardName   "Mobile 915GM/GMS/910GML Express Graphics Controller"
	BusID       "PCI:0:2:0"
	Option "NoDDC" # You need this to set correct DPI (HUGE font issue).
EndSection
 ...
Section "Monitor"
	...
	DisplaySize  195 113 # This whill set correct DPI (96 x 96) 
	...
EndSection
 ...
Section "Screen"
        ...
        SubSection "Display"
                 Viewport   0 0
	         Modes     "1024x600"
	         Depth     24
        EndSubSection
EndSection

NOTE: - I believe that xorgcfg will select the driver "intel" for the graphics card. YMMV.

To configure the touch pad:

Code: Editing: /etc/X11/xorg.conf

Section "InputDevice"
	Identifier  "Mouse0"
	Driver      "synaptics" # This will enable scrolling, etc...
	Option	    "Protocol" "auto"
	Option	    "Device" "/dev/input/mouse0" # Touchpad.
	Option	    "ZAxisMapping" "4 5 6 7"
	Option      "CorePointer"
EndSection

My touchpad was identified by

Code: Editing:cat /proc/bus/input/devices

I: Bus=0011 Vendor=0002 Product=0007 Version=01b1
N: Name="SynPS/2 Synaptics TouchPad"
P: Phys=isa0060/serio2/input0
S: Sysfs=/devices/platform/i8042/serio2/input/input2
U: Uniq=
H: Handlers=mouse1 event2
B: EV=b
B: KEY=6420 0 70000 0 0 0 0 0 0 0 0
B: ABS=11000003 

and so the touchpad was configured with

Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "synaptics"
        Option      "Protocol" "auto"
        Option      "Device" "/dev/input/event2"
        Option      "ZAxisMapping" "4 5 6 7"
EndSection

To configure an external USB mouse:

Code: Editing: /etc/X11/xorg.conf
Section "InputDevice"
        Identifier  "Mouse1"
	Driver      "mouse"
	Option      "Device" "/dev/input/mouse1"
	Option      "Protocol" "auto"
	Option      "ZAxisMapping" "4 5"
	Option      "Buttons" "5"
	Option      "SendCoreEvents" # '''DON'T FORGET THIS'''
EndSection

[edit] 3D acceleration/Direct Rendering

Direct rendering with the Intel video card requires a newer Intel video driver, Xorg 7.4 and Mesa 7.2. Unless you do this, any attempts to run GL applications will crash X. A number of packages must be unmasked for this to occur, and some packages must be emerged again (as well as Xorg) to support the upgraded Xorg installation.

File: /etc/portage/package.keywords
~x11-base/xorg-x11-7.4
~x11-base/xorg-server-1.4.2
~x11-libs/libXrender-0.9.4
~media-libs/mesa-7.2
~x11-libs/xtrans-1.0.4
~x11-proto/renderproto-0.9.3
~x11-libs/libdrm-2.3.1
~x11-proto/xextproto-7.0.3
~x11-libs/libXext-1.0.4
~x11-proto/inputproto-1.4.4
~x11-libs/libX11-1.1.5
~x11-proto/xf86driproto-2.0.4
~x11-libs/libXxf86vm-1.0.2
~x11-apps/mesa-progs-7.1
~x11-drivers/xf86-video-intel-2.5.1
~x11-libs/libdrm-2.4.1
~x11-apps/x11perf-1.5
~x11-apps/xev-1.0.3
~x11-apps/mkfontdir-1.0.4
~x11-apps/xprop-1.0.4
~x11-libs/libXau-1.0.4
~x11-libs/libXrandr-1.2.3
~media-fonts/font-xfree86-type1-1.0.1
~x11-libs/libpciaccess-0.10.3
~x11-apps/xkbcomp-1.0.5
~x11-apps/sessreg-1.0.4
~x11-apps/xset-1.0.4
~x11-apps/mkfontscale-1.0.5
~x11-libs/xtrans-1.2.2
~x11-apps/xdpyinfo-1.0.3
~x11-libs/libXinerama-1.0.3
~x11-libs/libXmu-1.0.4
~x11-apps/xrdb-1.0.5
~x11-libs/libFS-1.0.1
~x11-apps/xwininfo-1.0.4
~x11-apps/xauth-1.0.3
~x11-apps/luit-1.0.3
~x11-misc/util-macros-1.1.6-r1
~x11-misc/xinput-1.3.0
~x11-libs/libSM-1.1.0
~x11-libs/libXfont-1.3.3
~x11-libs/libXv-1.0.4
~x11-apps/xrandr-1.2.3
~x11-libs/libXScrnSaver-1.1.3
~x11-libs/libxkbfile-1.0.5
~x11-libs/libXft-2.1.13
~x11-base/xorg-server-1.5.2
~x11-apps/xwd-1.0.2
~x11-libs/pixman-0.12.0
~x11-proto/xproto-7.0.13
~x11-misc/xkeyboard-config-1.3
~x11-apps/rgb-1.0.3
~x11-apps/xinit-1.0.8-r3
~x11-proto/randrproto-1.2.2
~x11-drivers/xf86-input-keyboard-1.3.1
~x11-drivers/xf86-video-vesa-2.0.0
~x11-drivers/xf86-input-evdev-2.0.6
~x11-drivers/xf86-input-mouse-1.3.0
~x11-drivers/xf86-input-joystick-1.3.2
~x11-drivers/xf86-input-synaptics-0.99.3

Following these entries in the package.keywords file, you need to emerge Xorg, mesa, and your input drivers again.

Code: Emerging Xorg again
emerge xorg-x11 && emerge mesa && emerge xf86-video-intel xf86-input-mouse xf86-input-keyboard xf86-input-synaptics

[edit] WLAN

See the Atheros 5xxx article. Configure your card as described at Wireless/Configuration.

If you get the WLAN device up and working but can't list or associate with any access points, try flipping the wireless switch on the front-right of the laptop; this switch is connected directly to the wireless card and activates/deactivates the radio.

Note: As of January 2009, LED support (radio active and Wireless activity) support is not included in the ath5k driver used by any stable Gentoo kernel, so none of the LEDs on the front of the laptop will function. Either go looking for your own driver which supports it, or wait until a driver which includes LED support is brought into the stable gentoo-sources kernel.
Note: Using the Gentoo10.1 liveCD the wireless card works without anything else, refer to the link above to configure your wireless connection and use "wext" driver if madwifi driver doesnt work

[edit] Sound

Sound works ok with alsa driver 1.0.18a (which is built in the 2.6.28 kernel). So, you should use either >=2.6.28 linux kernel or alsa-driver 1.0.18a (if you are using the older kernel). Switching of built-in speakers and headphones seems to be hardware.

You should emerge alsa-utils. After that just run alsaconf and voila: you have you sound card configured. Use alsamixer to adjust volume (the sound level is *very* low by default). And don't forget:

rc-update add alsasound boot
  • Works perfectly with Kernel 2.6.27_rc6 and newer
  • note* if you set ALSA_CARDS="hda-intel" on /etc/make.conf emerge will compile just the hda-intel driver and do not fails, probably the problem in the ebuild is for some other driver. It should work =)
  • Be sure that you are part of the group "audio", or you will get helpful errors like "card 0 cannot be found"

[edit] Webcam

echo "media-video/linux-uvc" >> /etc/portage/package.keywords emerge linux-uvc

Check if your webcam is detected by running:

modprobe uvcvideo dmesg

Look for:

uvcvideo: Found UVC 1.00 device USB 2.0 Camera (0c45:62c0)

It seems everything is okay. However to be sure, we need to emerge luvcview and record some movies.

echo "media-video/luvcview" >> /etc/portage/package.keywords emerge luvcview luvcview -f yuv


Note: If luvcview fails for some reason, try using "-f yuw" instead of "-f yuv"

[edit] SDCard Reader

The SD Card Reader has two slots; in order to get them both functioning fully you will need to include PCI Express Hotplug support in your kernel, and use a kernel version >=2.6.28 (2.6.26-r7 and later are also known to work).

Without PCIe hotplug support, the SD card reader will only function when a card is inserted at boot time and the remaining SD card slot will not recognise the insertion of cards.

Ergo, a supported kernel and PCIe hotplug is imperative. It can be compiled into the kernel or as a module; both will work.


You should see a message similar to this if the machine has successfully detected a card in either slot:

Code: dmesg grep mmc
mmc0: new SD card at address 1234
mmcblk0: mmc0:1234 SD01G 995328KiB
mmcblk0: p1

It shows that it found a 1GB card with a single partition, p1.

You can use the following device node to mount the card. /dev/mmcblk0 is the node of the whole card, like /dev/hda, and /dev/mmcblk0p1 is a partition on the card.

mount /dev/mmcblk0p1 /mnt/sd

[edit] Using your SD reader for additional permanent storage

It is well known that the internal 8GB SSD drive in the Aspire One has poor write speeds. Using a fast SDHC card to provide additional storage can allow you to place I/O intensive paths on this additional storage *. Using the left-side slot makes the most sense as the cards fully insert, making it difficult to accidentally eject the card whilst Gentoo is running.

Warning: If you mount critical operating system paths on your SD card and then eject the card while the system is running, the system will probably crash and you are in extreme danger of corrupting the data on the SD card. Consider which paths you will mount onto the SD card carefully and match them with your appetite for risk!

{{Comment from a long-term user of this solution (over a year): the SSDPAMM0008G1 with firmware Ver2.I0K (use hdparm -i /dev/sda) is actually pretty fast compared to even the fastest SD card you can get (133x). It only lags about 30% in write performance. No SD card will ever be as fast as the SSD for read performance, so do not get your hopes up in that department. If you RAID0 both the SD cards, you can outperform the SSD and even outperform a WD VelociRaptor for many of Bonnie++'s benchmarks. With that RH card hanging out of the slot like that, chances are very good you will corrupt it with a little bump, so unless you're gluing that card in I do not suggest it for mobility!}}

[edit] SD Cards and suspend

If you are using your left-side SD card slot as additional storage which you are mounting at boot time, you will have major problems when trying to go into suspend (S3) power state unless you select the UNSAFE_RESUME option for the kernel MMC device driver.

By default, the kernel always unmounts all MMC/SD cards before suspend and re-mounts them at resume. This causes the left-side SD card reader to re-mount as a different device name & number, which will increment by one each time you suspend and resume the system. If your SD card has been formatted with ext2 or ext3, it will be worse, as the unmount will not succeed and you will see quite a few seg faults in dmesg. At this point, if you then attempt to shut down your machine it will hang and you will have to force the power off, which in turn can/will corrupt data on your SSD. Since you are highly likely to be running ext2 on your partitions to avoid excessive writes to the SSD, this is a bad thing.

Enabling UNSAFE_RESUME in the kernel options for MMC device drivers will stop the kernel from unmounting SD/MMC cards before suspend. Upon resume, the SD cards will still be using the same device ID they used when the system was suspended.

This makes it relatively safe to use of the SD reader for permanent additional storage; however any SD cards you have inserted into the right-side slot will not unmount before suspend, so if you suspend and then eject an SD card before resume it could be corrupted if there were pending writes.

[edit] See also

Several other distributions have their own installation guides for the Aspire One:

Personal tools
In other languages