Acer Aspire One D250-1821

Overview
This article is about running Gentoo Linux on an Acer Aspire One D250-1821 netbook. Some of this information applies to the other models as well. This particular model was available from Future Shop in Canada in January of 2010. One of the main differences between this and the other D250 models is that it ships with a French Canadian keyboard.

Specifications

 * Intel Atom N270
 * Running at 1.60GHz
 * 512kB cache
 * 32-bit processor
 * 1GB DDR RAM
 * 160GB (5400RPM) SATA hard drive
 * Integrated Gigabit Ethernet adapter
 * Integrated BCM4312 802.11b/g Wireless adapter
 * Integrated 0.3MP Acer Crystal Eye Webcam
 * Integrated Multi-in-one card reader
 * 10.1" (1024x600 resolution) TFT screen
 * VGA-out connector
 * 3 USB 2.0 ports
 * 3-cell 2200mAh battery

The original OS that shipped with this netbook was Windows XP Home edition.

Note: This setting wasn't working after Kernel 2.6.32.

Hardware
lspci

The built-in webcam is actually just a USB device.

lsusb

Installation Notes
Installation on this laptop requires either an external USB cdrom or a USB key. The version of the livecd that was used for this particular installation was install-x86-minimal-20100126. Any other version of the livecd or the stage3 file will result in an environment that does not have any functioning Ethernet devices.

The version of the kernel that was used for the installation and setup for this guide was gentoo-sources-2.6.31-r6.

General Setup
The Intel Atom N270 is a 32-bit processor, so set the CFLAGS accordingly.

By no means are these the best settings for this processor. For other settings, refer to the Atom N270/N280 Cflags section.

General ACPI
The processor supports frequency scaling. For more information, refer to the CPU Frequency Scaling article.

Suspend to RAM/Hibernate Support
Suspend to RAM and Hibernation works without any issues with TuxOnIce. The version of that kernel that was used for this article was tuxonice-sources-2.6.32-r1. Setting up hibernation is beyond the scope of this article, refer to the TuxOnIce article for more information.

Intel SATA Controller
The SATA controller in this particular netbook is the Intel 82801GBM/GHM. There is full support in the kernel for it.

Atheros AR8132 / L1c Gigabit Ethernet
The atl1c kernel module fully supports this Ethernet adapter. The device should be present when booted up in the livecd environment.

Resetting the Ethernet Port
There is some sort of hardware/software bug that causes the Ethernet adapter to completely stop functioning. The port will appear to turn on when a cable is plugged in, but there is no actual network activity. The device even stops showing up in both Linux and Windows. In the event that this happens, one way to restore it is to turn off the netbook, remove the battery and hold the power button for several seconds. The device should reappear at the next boot.

If eth0 still missing, try #modprobe atl1c and #/etc/init.d/net.eth0 restart - eth0 should be up. (if modprobe atl1c failed, try atl1e)

Add permanent load module atl1c echo "atl1c" >> /etc/modules.autoload.d/kernel-2.6

Broadcom BCM4312 802.11b/g Wireless Ethernet
There is the existing Broadcom driver present in the kernel, but there is a problem that causes udev to lock up on boot, so it is best to not use it. For support for this card, you can use the broadcom-sta driver that is available in portage (version 5.10.91.9.3-r3 at the time of this writing).

With the proper kernel configuration, the driver can now be emerged:

Test that the wireless is working by loading the module:

The Wireless LED only shows that the device is active, and does not blink for traffic. The switch will turn off the wireless card if used, and will turn it back on. The off state will not persist after the system has been shutdown, so it must be done everytime that you want the device to be disabled.

See the Broadcom 43xx article for more information.

Intel Mobile 945GME
The integrated Intel graphics card works fine with the i915 driver that is available in the kernel. It supports direct rendering and compositing without any issues.

You can also set the framebuffer on bootup to the native resolution of the monitor:

Intel 82801GBM High Definition Audio
The Intel HD audio driver that is already in the kernel works with this particular audio chipset. On this particular D250 model, it uses the Realtek codec. Verify your chipset first before selecting the codec, or you can safely select all of them and the kernel will use the correct one.

All of the audio channels show up properly in alsamixer, and the headphone/microphone jacks work without any issues. The built-in microphone that is beside the webcam also seems to work without any problems. Just make sure that it is unmuted, as it is by default.

Internal Multi-in-one Card Reader
The internal SD Card Reader seems to work without the use of the PCI Express hotplug module that was required in prior versions of the Aspire One. Every card that is inserted into the reader is detected as a USB Mass Storage device, rather than an MMC block device.

Acer Crystal Eye Webcam
The UVC driver that is present in the kernel works perfectly with the built-in webcam.

The module will be called uvcvideo, which can now be loaded:

To quickly test that the kernel driver is working, you can use luvcview. You will have to unmask it first before emerging it:

To view the webcam:

X.Org Configuration
Before emerging X, set the proper video card and input devices in make.conf:

Once that is done, you can emerge X:

You may need to re-emerge your dirver list (qlist -IC x11-drivers/) like emerge -av x11-drivers/xf86-video-intel x11-drivers/xf86-input-keyboard x11-drivers/xf86-input-evdev etc..

Make sure that you start the HAL service, otherwise you won't be able to use your keyboard or mouse when X starts:

xorg.conf
Newer versions of X.Org do a good job on configuring X without this file, but here it is anyways:

(in case you x will not work for KDE 4.3 > Kernel 2.6.32 on Gentoo with xorg-x11-7.4-r1 xorg-server-1.9.2.902) with /etx/X11/Xorg -configure

Section "ServerLayout" Identifier    "X.org Configured" Screen     0  "Screen0" 0 0 InputDevice   "Mouse0" "CorePointer" InputDevice   "Keyboard0" "CoreKeyboard" EndSection Section "Files" ModulePath  "/usr/lib/xorg/modules" FontPath    "/usr/share/fonts/misc/" FontPath    "/usr/share/fonts/TTF/" FontPath    "/usr/share/fonts/OTF/" FontPath    "/usr/share/fonts/Type1/" FontPath    "/usr/share/fonts/100dpi/" FontPath    "/usr/share/fonts/75dpi/" EndSection Section "Module" Load "extmod" Load "record" Load "dbe" Load "glx" Load "dri" Load "dri2" EndSection Section "InputDevice" Identifier "Keyboard0" Driver     "kbd" EndSection Section "InputDevice" Identifier "Mouse0" Driver     "mouse" Option     "Protocol" "auto" Option     "Device" "/dev/input/mice" Option     "ZAxisMapping" "4 5 6 7" EndSection Section "Monitor" Identifier  "Monitor0" VendorName  "Monitor Vendor" ModelName   "Monitor Model" EndSection Section "Device" ### Available Driver options are:- ### Values: : integer, : float, : "True"/"False", ### : "String", : " Hz/kHz/MHz", ### : "%" ### [arg]: arg optional #Option    "AccelMethod"               # [ ] #Option    "DRI"                       # [ ] #Option    "ColorKey"                  #  #Option    "VideoKey"                  #  #Option    "FallbackDebug"             # [ ] #Option    "Tiling"                    # [ ] #Option    "Shadow"                    # [ ] #Option    "SwapbuffersWait"           # [ ] #Option    "XvMC"                      # [ ] #Option    "XvPreferOverlay"           # [ ] #Option    "DebugFlushBatches"         # [ ] #Option    "DebugFlushCaches"          # [ ] #Option    "DebugWait"                 # [ ] Identifier "Card0" Driver     "intel" BusID      "PCI:0:2:0" EndSection Section "Screen" Identifier "Screen0" Device    "Card0" Monitor   "Monitor0" SubSection "Display" Viewport  0 0 Depth    1 EndSubSection SubSection "Display" Viewport  0 0 Depth    4 EndSubSection SubSection "Display" Viewport  0 0 Depth    8 EndSubSection SubSection "Display" Viewport  0 0 Depth    15 EndSubSection SubSection "Display" Viewport  0 0 Depth    16 EndSubSection SubSection "Display" Viewport  0 0 Depth    24 EndSubSection EndSection