Dell Vostro A90

The Dell Vostro A90 is a re-badged variant of the Dell Mini netbook. It is offered on the Business side of the Dell Web Site with loadsets for both Windows and Ubuntu Hardy Heron. This guide is based on a system with a Hardy Heron loadset delivered in Sept 09. At the time the standard offering included an 8gb flash with 32gb as an option. A recent (11/09) search of the offerings shows only a 16gb upgrade as an option, so prices and sizes may frequently change. I went with the 32gb option so that I could comfortably re-partition to dual boot Hardy and Gentoo using Hardy's /boot partition for grub.

The wiki entry for the Dell Inspiron Mini is a good starting reference. However it is a bit dated. This A90 guide is based on a 2.6.31-gentoo-r5 kernel and an unstable x86 10.0 desktop profile.

Cpuinfo
This is the same as the Mini 9, the processor speed here is throttled back since I'm running on batteries in "powersave" cpu profile.

processor      : 0 vendor_id      : GenuineIntel cpu family     : 6 model          : 28 model name     : Intel(R) Atom(TM) CPU N270   @ 1.60GHz stepping       : 2 cpu MHz        : 800.000 cache size     : 512 KB                                      physical id     : 0 siblings       : 2 core id        : 0 cpu cores      : 1 apicid         : 0 initial apicid : 0 fdiv_bug       : no                                          hlt_bug         : no                                          f00f_bug        : no                                          coma_bug        : no                                          fpu             : yes fpu_exception  : yes cpuid level    : 10 wp             : yes flags          : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc arch_perfmon pebs bts pni dtes64 monitor ds_cpl est tm2 ssse3 xtpr pdcm movbe lahf_lm bogomips       : 3192.41 clflush size   : 64 power management:

processor      : 1 vendor_id      : GenuineIntel cpu family     : 6 model          : 28 model name     : Intel(R) Atom(TM) CPU N270   @ 1.60GHz stepping       : 2 cpu MHz        : 800.000 cache size     : 512 KB physical id     : 0 siblings       : 2 core id        : 0 cpu cores      : 1 apicid         : 1 initial apicid : 1 fdiv_bug       : no hlt_bug         : no f00f_bug        : no coma_bug        : no fpu             : yes fpu_exception  : yes cpuid level    : 10 wp             : yes flags          : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc arch_perfmon pebs bts pni dtes64 monitor ds_cpl est tm2 ssse3 xtpr pdcm movbe lahf_lm bogomips       : 3192.03 clflush size   : 64 power management:

Lspci
There are some slight differences with the Mini 9 guide. I don't think the 25 kernel used by the Mini 9 guide knew about 945GME at that point. Also the Broadcom has been revved from a 4310 to a 4312 here. As a result, I can't get wireless working without falling back to the net-wireless/broadcom-sta ebuild.

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/GME, 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: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.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 02) 00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 02) 02:00.0 System peripheral: JMicron Technology Corp. SD/MMC Host Controller 02:00.2 SD Host controller: JMicron Technology Corp. Standard SD Host Controller 02:00.3 System peripheral: JMicron Technology Corp. MS Host Controller 03:00.0 Network controller: Broadcom Corporation BCM4312 802.11b/g (rev 01) 04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8101E/RTL8102E PCI Express Fast Ethernet controller (rev 02)

Lsusb
It looks like the webcam is slightly different but I'm not sure what that difference is

Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 002: ID 0c45:63e4 Microdia Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 005 Device 002: ID 413c:02b0 Dell Computer Corp. Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Xorg
Current ebuilds as emerged for unstable x86:

xorg-server-1.7.1 xorg-drivers-1.7

xf86-input-evdev-2.3.0 xf86-input-mouse-1.5.0 xf86-video-intel-2.9.1 xf86-input-keyboard-1.4.0 xf86-input-synaptics-1.2.0

This configuration will work without an xorg.conf file provided that you have emerged hald and added it to your default runlevel. With it, I can run KDE 4.3.1 with opengl compositing enabled and do not appear to have any of the issues that were mentioned in the Mini 9 guide.

I used this Ubuntu Synaptic Guide for the Dells to get touchpad tapping and other added functionality working on the touchpad. My resulting 11-x11-synaptics.fdi file looks like this:

    synaptics  synaptics  synaptics  synaptics

on

1700 5100 1600 4200

<merge key="input.x11_options.FingerLow" type="string">24 <merge key="input.x11_options.FingerHigh" type="string">29 <merge key="input.x11_options.FingerPress" type="string">255

<merge key="input.x11_options.MaxTapTime" type="string">180 <merge key="input.x11_options.MaxTapMove" type="string">220 <merge key="input.x11_options.MaxDoubleTapTime" type="string">180

<merge key="input.x11_options.SingleTapTimeout" type="string">180 <merge key="input.x11_options.ClickTime " type="string">100 <merge key="input.x11_options.FastTaps" type="string">1 <merge key="input.x11_options.EmulateMidButtonTime" type="string">80 <merge key="input.x11_options.EmulateTwoFingerMinZ" type="string">280 <merge key="input.x11_options.EmulateTwoFingerMinW" type="string">7

<merge key="input.x11_options.VerteScrollDelta" type="string">100 <merge key="input.x11_options.HorizScrollDelta" type="string">100 <merge key="input.x11_options.VertEdgeScroll" type="string">1 <merge key="input.x11_options.HorizEdgeScroll" type="string">1

<merge key="input.x11_options.CornerCoasting" type="string">0 <merge key="input.x11_options.VertTwoFingerScroll" type="string">0 <merge key="input.x11_options.HorizTwoFingerScroll" type="string">0

<merge key="input.x11_options.MinSpeed" type="string">0.4 <merge key="input.x11_options.MaxSpeed" type="string">0.7 <merge key="input.x11_options.AccelFactor" type="string">0.00995 <merge key="input.x11_options.TrackstickSpeed" type="string">40

<merge key="input.x11_options.EdgeMotionMinZ" type="string">30 <merge key="input.x11_options.EdgeMotionMaxZ" type="string">160 <merge key="input.x11_options.EdgeMotionMinSpeed" type="string">1 <merge key="input.x11_options.EdgeMotionMaxSpeed" type="string">400 <merge key="input.x11_options.EdgeMotionUseAlways" type="string">0

<merge key="input.x11_options.UpDownScrolling" type="string">1 <merge key="input.x11_options.LeftRightScrolling" type="string">1 <merge key="input.x11_options.UpDownScrollRepeat" type="string">1 <merge key="input.x11_options.LeftRightScrollRepeat" type="string">1 <merge key="input.x11_options.ScrollButtonRepeat" type="string">100

<merge key="input.x11_options.TouchpadOff" type="string">0 <merge key="input.x11_options.GuestMouseOff" type="string">0 <merge key="input.x11_options.LockedDrags" type="string">0 <merge key="input.x11_options.LockedDragTimeout" type="string">5000

<merge key="input.x11_options.RTCornerButton" type="string">0 <merge key="input.x11_options.RBCornerButton" type="string">0 <merge key="input.x11_options.LTCornerButton" type="string">0 <merge key="input.x11_options.LBCornerButton" type="string">0

<merge key="input.x11_options.TapButton1" type="string">1 <merge key="input.x11_options.TapButton2" type="string">2 <merge key="input.x11_options.TapButton3" type="string">3

<merge key="input.x11_options.ClickFinger1" type="string">1 <merge key="input.x11_options.ClickFinger2" type="string">2 <merge key="input.x11_options.ClickFinger3" type="string">0

<merge key="input.x11_options.CircularScrolling" type="string">0 <merge key="input.x11_options.CircScrollTrigger" type="string">0 <merge key="input.x11_options.CircScrollDelta" type="string">0.1

<merge key="input.x11_options.PalmDetect" type="string">0 <merge key="input.x11_options.PalmMinWidth" type="string">10 <merge key="input.x11_options.PalmMinZ" type="string">200

<merge key="input.x11_options.CoastingSpeed" type="string">0 <merge key="input.x11_options.PressureMotionMinZ" type="string">30 <merge key="input.x11_options.PressureMotionMaxZ" type="string">160 <merge key="input.x11_options.PressureMotionMinFactor" type="string">1 <merge key="input.x11_options.PressureMotionMaxFactor" type="string">1

<merge key="input.x11_options.GrabEventDevice" type="string">1 <merge key="input.x11_options.TapAndDragGesture" type="string">1 <merge key="input.x11_options.AreaLeftEdge" type="string">0 <merge key="input.x11_options.AreaRightEdge" type="string">0 <merge key="input.x11_options.AreaTopEdge" type="string">0 <merge key="input.x11_options.AreaBottomEdge" type="string">0 <merge key="input.x11_options.JumpyCursorThreshold" type="string">0

Sound
Use the Mini 9 guide to set up your sound. At first I thought that the much newer kernel and audio versions would work out of the box, but you still need to use a Toshiba model and not a Dell in order to get your sound to work properly. Apparently Karmic Koala got bit by this assumption as well ;-)

The new baselayout and udev want you to park conf files in /etc/modprobe.d as a file with a .conf extension. When reading the Mini 9 guide, remember to put your config in something like /etc/modprobe.d/alsa.conf and not where it (or the alsaconf utility) put things.

make.conf
This is essentially the make.conf I used for emerging this system. I used the Ubuntu partition to create and unpack an autobuild from around late Sept to early Oct 09. I then chrooted into that environment to emerge gnome and kde 3.5.10 desktops with firefox and a few other essentials including a 2.6.30 gentoo-sources kernel. At the time I was working on a stable x86 profile, and this was before KDE 4.3.1 was unmasked to stable. The soup to nuts process for that was about 2-3 days. After seeing how pokey that was, and contemplating emerging openoffice, I did a stage3 tarball which I transferred via flash to one of my Quad Core Phenom desktops. There I set up a 32 bit chroot environment that I could use to emerge updates and then sync to the Vostro.

CFLAGS="-O2 -march=i686 -pipe" CXXFLAGS="-O2 -march=i686 -pipe" CHOST="i686-pc-linux-gnu" VIDEO_CARDS="intel" ACCEPT_KEYWORDS="~x86" FEATURES="fixpackages noauto -strict" MAKEOPTS="-j5" USE="X acl acpi animgif auto-completion bluetooth bzip2 c++ cairo consolekit    cpufreq dbus -doc emacs encode     ffmpeg firefox firefox3 flac flash foomaticdb fuse garmin gimp     gnome gnome-print gstreamer gtk gzip h323 hal hddtemp html id3     imagemagick imaging iproute2 java jpeg jpeg2k kde laptop lm_sensors     logrotate lua lzma lzo matroska mjpeg mktemp mmap mmx mmxext mng     mozilla mp2 mp3 mp4 mpeg mpeg2 mplayer mysql networking nsplugin nspr     ntfs octave ogg openal openexr opengl pam pango parted pcap pcre perl     plugins png qt3support qt4 readline regexp samba sdl sockets socks5     sql sqlite sqlite3 sse sse2 ssl startup-notification svg swat syslog     theora tiff tk twolame unicode unzip urandom usb v4l v4l2 vorbis     wav wavpack webkit wifi win32codecs wireshark x264 xanim xine xml     xscreensaver xulrunner xv xvid zip zlib"
 * 1) WARNING: Changing your CHOST is not something that should be done lightly.
 * 2) Please consult http://www.gentoo.org/doc/en/change-chost.xml before changing.

ACCEPT_LICENSE="Broadcom"

Note that the MAKEOPTS is for the Phenom and not the Vostro. I have also decided to move to unstable. I parked this little script in the Ubuntu's /usr/local/bin to rsync the gentoo partition with the Phenom. So far it seems to work without causing me any major heartburn:

cd /mnt/gentoo rsync -avu --del root@diy4:/video3/bill/vm/nuclear/bin/ bin rsync -avu --del root@diy4:/video3/bill/vm/nuclear/boot/ boot rsync -avu --del root@diy4:/video3/bill/vm/nuclear/sbin/ sbin rsync -avu --del root@diy4:/video3/bill/vm/nuclear/boot/ boot rsync -avu --del root@diy4:/video3/bill/vm/nuclear/lib/ lib rsync -avu --del root@diy4:/video3/bill/vm/nuclear/opt/ opt rsync -avu --del root@diy4:/video3/bill/vm/nuclear/usr/ usr rsync -avu --del root@diy4:/video3/bill/vm/nuclear/var/db/ var/db rsync -avu --del root@diy4:/video3/bill/vm/nuclear/var/cache/ var/cache rsync -avu --del root@diy4:/video3/bill/vm/nuclear/var/www/ var/www rsync -avub root@diy4:/video3/bill/vm/nuclear/etc/ etc
 * 1) !/bin/bash

nuclear is the top level root of the chroot. Also note that I have an authorized_keys type setup between ubuntu and the desktop so that I'm not prompted for password.