ubuntu precise on the EeePc-1015pn

02.05.12: update to precise 12.04 in progress

This site should hopefully help people to tweak ubuntu precise 12.04 for the Asus EeePC 1015pn Netbook. This Netbook has a 10" screen and comes with a intel atom N550/N570 dualcore cpu. The European version (other regions might have different RAM and/or Battery sizes) has 2 Gig Ram, Intel / nVidia Dual GPU configuration (default vga mode is nvidia) and a pretty powerful 6 cell battery (nominal capacity: 5200 mAh) .

A Little Background Info

What makes this Netbook better suited for Linux?

The reason this Netbook is interesting for Linux users is that Asus placed 2 GPU's (Intel GMA 3150 build into the N550 GPU & a dedicated Nvidia GT218 chip "Next Gen ION") in it and wires the nvidia gpu directly to the display device and HDMI port

But this Dual GPU stuff isn't new, so why to you make such a fuzz out of this?

True, this by itself is nothing special nowadays but most of this muxless dual GPU configurations are pretty bad supported on Linux because this Technique (Nvidia calls this "Optimus") is not supported by the available binary drivers so Linux users have a useless Nvidia Chip that draws loads of power from the battery.

Ok, thanks for the fish... so what makes this Netbook different?

Asus did a nice thing when designing this Chipset and manufactured a hardware mix allowing the nvidia card to access the display device directly. Most other notebooks do not offer this option and need a intel framebuffer to draw to the screen. Unfortunately Xorg, the intel drivers and the nvidia binary drivers do not support this. so the 1015pn is pretty unique.

Um... Can you explain this in non-geek language please?

Sure :) You can decide what GPU Mode you want to use. If your focus is on long battery life, use the intel GMA 3150. If you want better performance for 3D gaming or Hardware Acceleration for HDTV video use the Nvidia GPU.

How much is the difference in battery life between the intel and the Nvidia GPU?

With the tweaks described here i managed to squeeze 6 hours of normal usage out of the 1015pn with a full battery load by using the Intel Chip. With the Nvidia chip max battery life is around 4 hours, so the difference is quite significant

Sweet. How do i switch GPU's ?

You need to use a acpi_call to tell the system what gpu mode should be activated for the next boot. I prepared some helper scripts to make the switching as easy as possible. So all you need to do is select the desired gpu for the next boot via a simple gui, press "ok" and reboot.

Rebooting sucks :( Can't we do it without a reboot?

Currently not. The bumblebee Project is working on a way to start applications using the nvidia gpu in its own X-Screen, but when i last tried it (20/09/2011) this approach had some mayor shortcomings (no hdmi out because it is hard-wired to the nvidia gpu, no vdpau accel, ect.) and was under heavy development.

Hopefully this will get fixed in upcoming releases but for now we need to reboot.

System Information

hardinfo report

EeePC-1015PN

************

-BIOS-

Date : 04/18/2011

Vendor : American Megatrends Inc. (www.ami.com)

Version : 0701

-Board-

Name : 1015PN

Vendor : ASUSTeK Computer INC.

-Computer-

Processor : 4x Intel(R) Atom(TM) CPU N550 @ 1.50GHz

Memory : 2056MB (1926MB used)

-Display-

Resolution : 1024x600 pixels

OpenGL Renderer : ION/PCI/SSE2

X11 Vendor : The X.Org Foundation

-Multimedia-

Audio Adapter : HDA-Intel - HDA Intel

Audio Adapter : HDA-Intel - HDA NVidia

-Input Devices-

⎡ Virtual core pointer id=2 [master pointer (3)]

⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]

⎜ ↳ ETPS/2 Elantech Touchpad id=13 [slave pointer (2)]

⎣ Virtual core keyboard id=3 [master keyboard (2)]

↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]

↳ Power Button id=6 [slave keyboard (3)]

↳ Video Bus id=7 [slave keyboard (3)]

↳ Power Button id=8 [slave keyboard (3)]

↳ Sleep Button id=9 [slave keyboard (3)]

↳ USB2.0 UVC VGA WebCam id=10 [slave keyboard (3)]

↳ Eee PC WMI hotkeys id=11 [slave keyboard (3)]

↳ AT Translated Set 2 keyboard id=12 [slave keyboard (3)]

-SCSI Disks-

ATA WDC WD2500BEVT-8

-Kernel Modules-

nvidia

arc4 : ARC4 Cipher Algorithm

brcm80211 : Broadcom 802.11n wireless LAN driver.

mac80211 : IEEE 802.11 subsystem

cfg80211 : wireless configuration support

acpi_call

parport_pc : PC-style parallel port driver

ppdev

dm_crypt : device-mapper target for transparent encryption / decryption

joydev : Joystick device interfaces

binfmt_misc

coretemp : Intel Core temperature monitor

snd_hda_codec_hdmi : HDMI HD-audio codec

snd_hda_codec_realtek : Realtek HD-audio codec

eeepc_wmi : Eee PC WMI Hotkey Driver

snd_hda_intel : Intel HDA driver

sparse_keymap : Generic support for sparse keymaps

snd_hda_codec : HDA codec core

snd_hwdep : Hardware dependent layer

snd_pcm : Midlevel PCM code for ALSA.

snd_seq_midi : Advanced Linux Sound Architecture sequencer MIDI synth.

snd_rawmidi : Midlevel RawMidi code for ALSA.

snd_seq_midi_event : MIDI byte <-> sequencer event coder

snd_seq : Advanced Linux Sound Architecture sequencer.

snd_timer : ALSA timer interface

snd_seq_device : ALSA sequencer device management

psmouse : PS/2 mouse driver

uvcvideo : USB Video Class driver

snd : Advanced Linux Sound Architecture driver for soundcards.

videodev : Device registrar for Video4Linux drivers v2

v4l2_compat_ioctl32

serio_raw : Raw serio driver

soundcore : Core sound module

snd_page_alloc : Memory allocator for ALSA system.

lp

parport

ahci : AHCI SATA low-level driver

libahci : Common AHCI SATA low-level routines

video : ACPI Video Driver

atl1c : Atheros 1000M Ethernet Network Driver

-PCI Devices-

Host bridge : Intel Corporation N10 Family DMI Bridge (rev 02)

Audio device : Intel Corporation N10/ICH 7 Family High Definition Audio Controller (rev 02)

VGA Controller : Intel Corporation N10 Family Integrated Graphics Controller (rev 02)

PCI bridge : Intel Corporation N10/ICH 7 Family PCI-E Port 1 (rev 02)

PCI bridge : Intel Corporation N10/ICH 7 Family PCI-E Port 2 (rev 02)

PCI bridge : Intel Corporation N10/ICH 7 Family PCI-E Port 4 (rev 02)

USB Controller : Intel Corporation N10/ICH 7 Family USB UHCI Controller #1 (rev 02)

USB Controller : Intel Corporation N10/ICH 7 Family USB UHCI Controller #2 (rev 02)

USB Controller : Intel Corporation N10/ICH 7 Family USB UHCI Controller #3 (rev 02)

USB Controller : Intel Corporation N10/ICH 7 Family USB UHCI Controller #4 (rev 02)

USB Controller : Intel Corporation N10/ICH 7 Family USB2 EHCI Controller (rev 02)

PCI bridge : Intel Corporation 82801 Mobile PCI Bridge (rev e2)

ISA bridge : Intel Corporation NM10 Family LPC Controller (rev 02)

SATA controller : Intel Corporation N10/ICH7 Family SATA AHCI Controller (rev 02)

Ethernet controller : Atheros Communications AR8132 Fast Ethernet (rev c0)

Network controller : Broadcom Corporation BCM4313 802.11b/g/n Wireless LAN Controller (rev 01)

VGA controller : nVidia Corporation GT218 [ION] (rev a2)

Audio device : nVidia Corporation High Definition Audio Controller (rev a1)

-Battery: BAT0-

State : charging (load: 644 mA)

Capacity : 3836 mAh / 5200 mAh

Battery Technology : rechargeable (LION)

Model Number : 1015PN

Install Ubuntu

Get the ubuntu Desktop installation Disk from here: http://releases.ubuntu.com/precise/ . I use the amd64 Version to utilize the dualcore atom CPU. Since the EeePC has no CD drive you need to transfer the installation Image to a USB stick. You can do this either via 'Unetbootin' from Windows or if you already have a Ubuntu installation on a desktop Computer use the App 'usb-creator-gtk' via the 'System => Administration => Startup Disk Creator' Menu item.

Now plug the Stick into the USB Port of your EeePC and power it on. You do not need to change anything in the Bios, just press 'Esc' and a Boot up menu Option will appear allowing you to select the primary boot device (either the WD Harddrive or your USB stick) . Choose your USB stick and press Enter.

Now the default ubuntu install will start and ask you some questions. I suggest to keep the Laptop disconnected from the Intiernet during the main install because this might slow down the install drastically. About 15 minutes later the install is done.

Choose faster Repository Mirrors

First choose faster repository mirrors:

gksudo gedit /etc/apt/sources.list

Remove all country code Prefixes from the URL's and delete the # before the 'Canocial Partner' Repository. Now save this file and update your system:

sudo apt-get update && sudo apt-get dist-upgrade

This will install all updates since the initial release date and might install also a new kernel. If so reboot after the update completed.

Stop apt from installing "Recommended Packages"

Recommended Packages were never intended to get installed automatically, but ubuntu devs decided to do this anyway which is just annoying. Reverse this with:

gksudo gedit /etc/apt/apt.conf.d/02recommends

paste this line into the editor window

APT::Install-Recommends "0";

Notes

    • Wlan: The Broadcom BCM4313 Chip is now supported via a Open Source driver shipped with the Kernel (brcmsmac), so you DO NOT need to install the proprietary "Broadcom STA wireless driver" offered via the ubuntu Restricted drivers manager!

Some People reported that the brcmsmac driver shipped with the kernel has serious problems with Wlan N networks. I can't comment on this because i only own a b/g router. If you got hit by bis bug set your router to only use Wlan b/g/ networks or use the closed source wl driver by Broadcom

gksudo gedit /etc/modprobe.d/blacklist.conf

Add these lines at the end of the file to prevent the kernel drivers from loading

blacklist bcma blacklist brcmsmac blacklist brcmutil

Now install the proprietary driver via the "Restricted Drivers manager" or from the terminal

sudo apt-get install bcmwl-kernel-source

and reload the wlan drivers or reboot.

Fixes

    • Update Bios to latest Version (0701) 2 : Get the BIOS zip file from Asus Support Site and flash it either via Win7 or unzip and rename the bios image file to 1015PN.ROM and put it on a freshly FAT16-formatted USB stick, then boot and press alt+f2. Note that it can take 10+ minutes on the "programming" stage so be patient and don't interrupt the update! To check your currently installed BIOS Version:
sudo dmidecode -s bios-version

    • Fix numerous spin-downs of the Western Digital hard drive: 4
gksudo gedit /etc/hdparm.conf

Add the following at the end of the conf file

/dev/sda {
        apm = 254
        apm_battery = 254
}
    • Multitouch: Is disabled by default. Turn it on in gnome:
        • gnome-control-center
    • Mouse and Touchpad - Touchpad Tab - Enable Two-finger scrolling

General Tweaks

Enable Hibernation (Syspend to disk)

Hibernate has been disabled by default in Ubuntu 12.04. To re-enable it

gksudo gedit /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla

add the following to the file:

[Re-enable hibernate by default] Identity=unix-user:* Action=org.freedesktop.upower.hibernate ResultActive=yes

After the next Login, "Hibernate" should show up in the power menu.

Adjust plymouth (bootsplash) theme:

gksudo gedit /lib/plymouth/themes/ubuntu-logo/ubuntu-logo.script

set a black background by adjusting these 2 lines to:

Window.SetBackgroundTopColor (0.0, 0.00, 0.0); # Nice colour on top of the screen fading to Window.SetBackgroundBottomColor (0.0, 0.00, 0.0); # an equally nice colour on the bottom

Power Management & Hotkeys Support

The great Application Jupiter provides Power Management (Asus 'Super Hybrid Engine') and maps the EeePC's Hotkeys to Functions. A must - have! 7

sudo add-apt-repository ppa:webupd8team/jupiter
sudo apt-get update && sudo apt-get dist-upgrade
sudo apt-get install jupiter jupiter-support-eee

Editable Autostart-Applications

According to this bugreport the ubuntu devs think it's a good idea to hide the Startup Applications from the Users. Well, I don't. To re-populate gnome-session-properties run:

cd /etc/xdg/autostart/
sudo sed --in-place 's/NoDisplay=true/NoDisplay=false/g' *.desktop

Reduce Swap Usage

The 'swappiness' parameter (scale goes from 0 = don't swap at all to 100 = aggressively swap) controls the tendency of the kernel to move processes out of physical memory and onto the swap disk. 9 If you own the 2 Gig RAM Model you can safely reduce the swappiness to get better response times.

gksudo gedit /etc/sysctl.conf

add the line

vm.swappiness=10

Set Gdebi as default file handler for debian packages

If you prefer a simpler & faster gui way to install deb packages give gdebi a try

sudo apt-get install gdebi
gedit ~/.local/share/applications/mimeapps.list

If the file mimeapps.list does not exist, set a custom open with application for a filetype of your choice. This will populate the .list file. Now open it and add / edit the line "application/x-deb" in the [Default Applications] section to

application/x-deb=gdebi.desktop

Make applications Autostart only in the selected Desktop Enviroment

Autostart Applications place a .desktop file in ~/.config/autostart or in /etc/xdg/autostart. If an application should only start in Gnome, open the correspondig .desktop file and add

OnlyShowIn=GNOME;

to make the Application start in Gnome & Unity:

OnlyShowIn=GNOME;Unity

to make the application start on Gnome-Fallback only add:

AutostartCondition=GNOME3 if-session gnome-fallback

NOTE: This also works for Launcher on the Desktop. If you want a custom Application Launcher to show in Unity only, add the 'OnlyShowIn' line to the corresponding .desktop file

Nautilus Image Converter Script

sudo apt-get install nautilus-image-converter imagemagick

Optional: Move your logs and temporary files to RAM

NOTE: This tweak is only useful if you own the 2 Gig RAM model of the EeePC 1015PN and you system runs good. DO NOT USE IT with 1 GB RAM!

The following tweak will help to save some energy by writing temporary & log files to RAM and reducing disk writes 6

sudo -s

service rsyslog stop

echo "tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0" >>/etc/fstab

echo "tmpfs /var/log tmpfs defaults,noatime,mode=1777 0 0" >>/etc/fstab

mv /tmp /tmp2

mkdir /tmp

mv /var/log /var/log2

mkdir /var/log

mount -a

rsync -av /tmp2/ /tmp

rsync -av /var/log2/ /var/log

rm -rf /tmp2

rm -rf /var/log2

service rsyslog start

What those commands do

First we stop the syslog daemon, then we edit FSTAB and add the new mountpoints. Next we move the /tmp & /var/log folders to a new temporary location and create new folders. Now we apply the changes to fstab, move the old files to their new locations and clean the temp folders. Finally we restart the syslog service.

NOTE: Please bear in mind that moving those logs and temp directories to memory will cause the contents to be lost when you restart. You can still manually copy them to another directory before reboot with

rsync -av /var/log/* ~/saved_logfiles

Tweak Firefox

Open Firefox, and in the address bar type 'about:config'. Click through the warning message. Right click anywhere in the parameter listing and select New -> String. Set the preference name to 'browser.cache.disk.parent_directory' (without the ticks) and set the value to '/tmp/ff-cache' (again without the ticks).

Tweak Chromium

Chromium has command-line options to control memory management. Available options are --memory-model=<high| medium|low> Setting it to high makes chromium never release memory. Medium makes it reduce its working set of the memory when switching tabs, and low makes it reduce its working set when switching tabs and when the browser is not actively being used. In my experience, running chromium with --memory-model=low can improve performance.

Another useful command line switch is --disk-cache-dir. If you have moved your /tmp to Ram, set chromium to use this Location for Cache.

Add your desired Chromium statup option to the /etc/chromium-browser/default file:

gksu gedit /etc/chromium-browser/default

Change the line after ' # Options to pass to chromium-browser ' to read:

CHROMIUM_FLAGS="--memory-model=low --disk-cache-dir=/tmp"

Tweak Google Chrome:

Add your desired Chromium statup option to the /etc/chromium-browser/default file:

gksu gedit /opt/google/chrome/google-chrome.desktop

Replace the Exec Line with:

Exec=/opt/google/chrome/google-chrome --memory-model=low --disk-cache-dir=/tmp %U

Advanced Power Saving Tips

Only use these if you know what you are doing ;)

    • Activate wireless power saving mode with 500ms

sudo iwconfig wlan0 power timeout 500ms

    • Reduce wireless adapter power to 5

sudo iwconfig wlan0 txpower 5

    • Power saving options for intel sound module

sudo sh -c 'echo Y > /sys/module/snd_hda_intel/parameters/power_save_controller'

sudo sh -c 'echo 1 > /sys/module/snd_hda_intel/parameters/power_save'

    • USB auto power/suspend

sudo sh -c 'for i in /sys/bus/usb/devices/*/power/level; do echo auto > $i; done'

sudo sh -c 'for i in /sys/bus/usb/devices/*/power/autosuspend; do echo 1 > $i; done'

    • PCI auto power/suspend

sudo sh -c 'for i in /sys/bus/pci/devices/*/power/control; do echo auto > $i; done'

    • Set SATA link Power management to min_power

sudo sh -c 'for i in /sys/class/scsi_host/host*/link_power_management_policy; do echo min_power > $i; done'

Unity Tweaks

How can I configure Unity?

see here: http://askubuntu.com/questions/29553/how-can-i-configure-unity/101415#101415

sudo apt-get install myunity 

an Alternative tweak tool for unity that allows you to export and import a set of settings for Unity is unsettings

sudo apt-add-repository ppa:diesch/testing

sudo apt-get update && sudo apt-get dist-upgrade

sudo apt-get install unsettings

Unity Dodge Windows Autohide & minimize window on click

sudo apt-add-repository ppa:ikarosdev/unity-revamped

sudo apt-get update && sudo apt-get dist-upgrade

Allow panel Indicator applets in unity

gsettings set com.canonical.Unity.Panel systray-whitelist "['all']"

Useful indicator applets

- TODO: no precise build Indicator Keylock Applet

Oneiric build i386

wget https://launchpad.net/~tsbarnes/+archive/indicator-keylock/+files/indicator-keylock_3.0.0-0%7Eppa0_i386.deb
sudo gdebi indicator-keylock_3.0.0-0%7Eppa0_i386.deb

---

sudo add-apt-repository ppa:tsbarnes/indicator-keylock
sudo apt-get update && sudo apt-get dist-upgrade
sudo apt-get install indicator-keylock indicator-keylock-ubuntu-mono

Once installed, start it by pressing Alt + F2 and then enter: "indicator-keylock"

- TODO: no precise build syspeek system monitor applet

Oneiric build [all arch]

wget https://launchpad.net/~vicox/+archive/syspeek/+files/syspeek_0.2%7Eoneiric1_all.deb
sudo gdebi syspeek_0.2%7Eoneiric1_all.deb

---

sudo add-apt-repository ppa:vicox/syspeek
sudo apt-get update && sudo apt-get dist-upgrade
sudo apt-get install syspeek

- My Weather Indicator, Touchpad Indicator and Cryptkeeper by Lorenzo Carbonell

sudo add-apt-repository ppa:atareao/atareao
sudo apt-get update && sudo apt-get dist-upgrade
sudo apt-get install calendar-indicator cryptfolder-indicator my-weather-indicator touchpad-indicator

Conky script adjusted for the Eee 1015PN

sudo apt-get install conky

Download the conky-eee1015pn.tar.gz archive from the Downloads page and unpack the files in your $HOME. Now start conky from the terminal or set it as start-up application 10

Always use path in Nautilus

gsettings set org.gnome.nautilus.preferences always-use-location-entry true

Remove the Name applet (User Session Indicator) from the unity panel

sudo apt-get install dconf-tools

dconf-editor

Navigate to the Key 'Apps - Indicator-Session' and untick the checkbox next to sow-real-name-on-panel

Add Quicklist launchers to the unity dash

Unity allows you to add custom launchers with extended Program Options. Some very useful Quicklist launchers are listed @: http://askubuntu.com/questions/35488/list-of-custom-launchers-quicklists-for-unity

Unity Lenses

Lenses are different Tabs in the Dash Launcher, whicdh providse various extra search / listing functions

Unity Recoll Lens:

sudo apt-add-repository ppa:recoll-backports/recoll-1.15-on

sudo apt-get update && sudo apt-get dist-upgrade

sudo apt-get install recoll-lens recoll

Utilities Lens:

sudo apt-add-repository ppa:scopes-packagers/ppa sudo apt-get update && sudo apt-get dist-upgrade

sudo apt-get install unity-lens-utilities unity-scope-calculator unity-scope-cities

Grooveshark Scope:

sudo apt-add-repository ppa:scopes-packagers/ppa sudo apt-get update && sudo apt-get dist-upgrade

sudo apt-get install unity-lens-grooveshark

Dictionary Lens:

sudo apt-add-repository ppa:scopes-packagers/ppa sudo apt-get update && sudo apt-get dist-upgrade

sudo apt-get install unity-dictionary-lens

Web Sources:

sudo apt-add-repository ppa:cscarney/unity-web-place sudo apt-get update && sudo apt-get dist-upgrade

sudo apt-get install unity-place-websearch

For more Lenses see: http://askubuntu.com/questions/38772/what-lenses-for-unity-are-available

Gnome-Shell Tweaks

Add the gnome3-team ppa that contains parts of gnome 3.4 that are not in the repositories and the webupd8 ppa for some special adjusted shell extensions with bugfixes.

sudo apt-add-repository ppa:gnome3-team/gnome3 ppa:webupd8team/gnome3 sudo apt-get update && sudo apt-get dist-upgrade

sudo apt-get install unity-place-websearch

Install Gnome-Shell 3.2

sudo apt-get install gnome-shell gnome-shell-extensions gnome-sushi gnome-contacts gnome-themes-standard gnome-themes-extras gnome-themes-ubuntu gnome-tweak-tool

Gnome 3 Keyboard Shortcuts

https://live.gnome.org/GnomeShell/CheatSheet

Gnome 3 Shell-Extensions

Gnome 3 has a pretty flexible extensions system. Think of this as the successor to the numerous panel applets known from previous gnome versions.

You can install, en- / disable extensions on the fly via https://extensions.gnome.org/ .

or a http directory index styled list is @ http://www.fpmurphy.com/gnome-shell-extensions/

NOTE: Some extensions are already installed with custom ubuntu patches. You can manage those via the gnome-tweak-tools "Extensions" Tab.

Gnome-Shell: Hide Bluetooth and acessibilityApplet

see https://extensions.gnome.org/

Gnome-Shell: Move notification icons to the top bar

sudo apt-get install gnome-shell-classic-systray

Restart gnome-shell after the install (ALT+F2 => r).

Install Gnome-Shell Themes:

Gnome-Shell Themes by webupd8team

sudo add-apt-repository ppa:webupd8team/themes
sudo apt-get update && sudo apt-get dist-upgrade

sudo apt-get install faenza-colors zukitwo-themes

Gnome-Shell Themes by Satya164

sudo add-apt-repository ppa:satyajit-happy/themes
sudo apt-get update && sudo apt-get dist-upgrade
sudo apt-get install gnome-shell-theme-minty gnome-shell-theme-elegance gnome-shell-theme-shine gnome-shell-theme-dark-shine  gnome-shell-theme-aqua ambiance-blue-theme evolve-gtk-theme

Apply a new theme with the "Gnome Tweak Tool" or run

gsettings set org.gnome.desktop.interface gtk-theme "theme-name"

Multimedia & other useful Software

Audio and Video Player

For Audio I use the fast and lightweight "Decibel Audio Player" and my video Player of choice is VLC. Install them with:

sudo apt-get install decibel-audio-player 
sudo apt-get install vlc vlc-plugin-pulse vlc-plugin-notify  

Oracle java 7

sudo apt-add-repository ppa:eugenesan/java sudo apt-get update && sudo apt-get dist-upgrade

sudo apt-get purge openjdk*

sudo apt-get install oracle-java7-installer

Audio Recorder

Audio Recorder can record from your system's soundcard, microphones, browsers, webcams & more. Put simply; if it plays out of your loudspeakers you can record it. 11

sudo apt-add-repository ppa:osmoma/audio-recorder

sudo apt-get update && sudo apt-get dist-upgrade

sudo apt-get install audio-recorder

Multimedia Codecs and additional Applications

Add the Medibuntu Repository: 12

sudo wget --output-document=/etc/apt/sources.list.d/medibuntu.list http://www.medibuntu.org/sources.list.d/$(lsb_release -cs).list && sudo apt-get --quiet update && sudo apt-get --yes --quiet --allow-unauthenticated install medibuntu-keyring && sudo apt-get --quiet update && sudo apt-get --yes install app-install-data-medibuntu apport-hooks-medibuntu

and install these restricted codecs packages:

sudo apt-get install ubuntu-restricted-extras non-free-codecs gstreamer0.10-ffmpeg ttf-mscorefonts-installer unrar libavcodec-extra-53 libavdevice-extra-53 libavfilter-extra-2 libavformat-extra-53 libpostproc-extra-52 libswscale-extra-2 libavcodec-dev libavdevice-dev libavfilter-dev libavformat-dev libavutil-dev libpostproc-dev libswscale-dev gstreamer0.10-plugins-base gstreamer0.10-plugins-good gstreamer0.10-plugins-ugly gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse

add some useful 3rd party repositories by adding the following to the sources.list file:

gksudo gedit /etc/apt/sources.list

## getdeb mirror

deb http://mirrors.dotsrc.org/getdeb/ubuntu precise-getdeb apps

deb http://mirrors.dotsrc.org/getdeb/ubuntu precise-getdeb games

## google caution: very sloooooow

deb http://dl.google.com/linux/deb/ stable non-free

deb http://dl.google.com/linux/deb/ testing non-free

## opera

deb http://deb.opera.com/opera/ stable non-free

Sync the Signing Keys:

wget -q -O- http://deb.opera.com/archive.key | sudo apt-key add -
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com A8A515F046D7E7CF; gpg --export --armor A8A515F046D7E7CF | sudo apt-key add -
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com A040830F7FAC5991; gpg --export --armor A040830F7FAC5991 | sudo apt-key add -
sudo apt-get update && sudo apt-get dist-upgrade

Install:

sudo apt-get install opera skype libvdpau1 smplayer mplayer fotoxx filezilla gimp wireshark htop audacity openoffice.org-thesaurus-de openoffice.org-hyphenation-de myspell-de-at fbreader gpdftext pdfmod xine-ui libxine1-all-plugins cheese linux-headers-$(uname -r) build-essential vuze fakeroot libalgorithm-merge-perl ufraw-batch libclutter-1.0-common libcogl-common libmono-i18n-west4.0-cil binfmt-support ttf-dejavu-extra chromium-browser chromium-codecs-ffmpeg-extra

Have a look in the Software Center for more useful applications. Especially the getdeb repository has loads of helpful stuff available.

Graphics Card Switching

As noted above both VGA Chips can be used in Exclusive Modes (intel or nvidia) or in a lDual GPU Mode (intel and nvidia) . The Nvidia Chip is useful for high performance stuff (like Gaming, HDTV, ect) but draws a lot of power from the battery. For basic operation I find the Intel GMA 3150 sufficient.

In dual Gpu Mode ( "Optimus" Mode) both chips are available via lspci. The "Hot-Switching" between both chips is work-in-progress and requires some mayor xorg rework, so it will still take some time. As a temporary workaround you might want to try bumblebee. Be aware that this is very hackish so only do this if you are confident you can fix a broken system. 13

The scripts in the provided Package allow you to set the desired VGA Mode for the next boot via a simple GUI.

Install the Nvidia Binary Driver:

sudo apt-get install nvidia-current nvidia-settings

TODO update benchmarks

Vdpau Benchmarks with Nvidia Binary Driver 280.13

Optional: If you want to stay on the bleeding edge nVidia drivers enable the x-swat ppa:

sudo add-apt-repository ppa:ubuntu-x-swat/x-updates
sudo apt-get update && sudo apt-get dist-upgrade
sudo apt-get install nvidia-current nvidia-settings

Optional: The nouveau modues are disabled by the postinstall script of the acpitools deb package. If you do not intend to use the deb package provided below blacklist them with:

sudo -s

echo options nouveau modeset=0 | tee -a /etc/modprobe.d/nouveau-kms.conf

update-initramfs -u

Install the VGA - Switching Helper scripts

This PPA hosts the acpi call kernel module and the current Version of the VGA Helper scripts for the EeePC 1015PN for ubuntu oneiric (i386 & x86_64). After the install go to "Applications -> System Tools -> Vga Selector" and choose the desired Vga mode for the next boot.

Make sure that your system is fully updated and you are running the latest installed kernel.

sudo add-apt-repository ppa:mtron/eee1015pn
sudo apt-get update && sudo apt-get dist-upgrade
sudo apt-get install eee1015pn-acpitools build-essential debhelper module-assistant lm-sensors

Now run the Sensors auto-detection

sudo sensors-detect

Just press enter at each question to use the default answer. Only the last question (add the modules to /etc/modules) should be answered with 'yes'.

After the configuration completed reboot.

Test if it works:

'sudo display-settings status' > will show the current gpu mode

see the 'Command Line Options' section below for more info

VGA Selector Screenshots

    • Main Program GUI:

Click on the logo to open driver specific display-settings.

Click on the "reboot with..." button to select the VGA Mode for the next boot.

  • Reboot with:

Normal user accounts can set the VGA Mode for the next boot. (no root password required)

  • Set Default GPU:

If you reboot without using the GPU Tool the "Default GPU" will be activated for the next boot. Choose your preferred default VGA Mode (intel, nvidia or optimus) in the drop down menu and press ok.

  • Advanced Settings:

Each line in the table represents a settings option and it's current status

To change a setting double click on the corresponding line.

green = on | red = off | yellow = not supported

  • Optimus mode: Auto Disable nvidia chip on boot

If active, the nvidia chip is turned off autonatically in Optimus Mode

If inactive, the power state of the nvidia chip is not changed in Optimus Mode

  • Shortcut: GPU info notify-osd

If active the Keyboad shortcut 'Ctrl+2' will show a notify-osd bubble with GPU Info

  • Shortcut: Battery info notify-osd

If active the Keyboad shortcut 'Ctrl+1' will show a notify-osd bubble with the current Power consumption and remaining battery load value.

  • Shortcut: Toggle Super Hybrid Engine (SHE)

If active the Hardware button to toggle the CPU state (left on top of the ESC key) will be mapped to Jupiter's 'Toggle SHE State' Script. You need to have the jupiter power management applet installed.

  • Log to File

If active all debug output of the display-settings script will be saved in the logfile /var/log/acpi-call.log . Please attach this file when sending a bug report.

  • Generate Debug info

If active some basic system info is written to a debug file $HOME/eee1015pn-debug.txt. Please attach this file when sending a bug report.

display-settings Command Line Options

The script has more options when called from a terminal with

sudo display-settings <option>

where <option> is one of the following:

    • auto: In this mode the script will look for a .vga-selector file written by the GUI script and executes the acpi_call for the desired option (Intel,Nvidia or Optimus mode). It will also prepare the xorg configuration and glx libraries for the next boot. If the script can't find any .vga-selector file it will use the selected default GPU.
    • status: This will output current VGA Mode. E.g "Active GPU: Intel GMA3150 on PCI 00:02.0"
    • fix: This will automatically fix the display configuration depending on the available VGA Chips that can be accessed via lspci. It will also update the nvidia glx libraries after the install of a new(er) nvidia driver version.
    • reboot-intel: activate intel for next boot and prepare xorg conffiles for intel. The nvidia chip won't be visible via lspci and is disabled so it won't draw any power from the battery.
    • reboot-nvidia: activate nvidia for next boot and prepare xorg conffiles for nvidia. The intel chip won't be visible via lspci.
    • reboot-optimus: activate both gpu's for next boot and prepare xorg conffiles for intel.

NOTE: For GPU Hot-Switching you need to install bumblebee

    • nv-off: For Optimus Mode only! This will disable the nvidia chip to save some energy.
    • nv-on: For Optimus Mode only! This will enable the nvidia chip.
    • config-intel: This option is for emergency purposes. If xorg can't start and you are dropped to a text shell after boot fix your configuration by running "display-settings status". If you get "Active GPU: Intel GMA3150" run display-settings again with this Option and restart gdm.
    • config-nvidia: This option is for emergency purposes. If xorg can't start and you are dropped to a text shell after boot fix your configuration by running "display-settings status". If you get "Active GPU: Nvidia GT218" run display-settings again with this Option and restart gdm.

For further Documentation on the VGA modes and acpi_calls for the Eee 1015PN see the hybrid-graphics-linux mailing list. 15

TODO: update for debian

Alternative: Set the VGA Mode manually

If you can't - or do not want - to use the helper scripts read on.

- Manually install the acpi_call kernel module from the linux-hybrid-graphics project:

git clone http://github.com/mkottman/acpi_call.git
cd acpi_call
make
sudo insmod acpi_call.ko

check with "dmesg | grep acpi_call" that the module was loaded successfully.

- Set the VGA Mode for the next boot:

  • Mode 1: Intel GMA 3150

To enable the intel vga for the next boot, switch to root (sudo -s) and run

echo "\OSGS 0x01" > /proc/acpi/call

Set the intel driver in xorg.conf

...

Section "Device"

Identifier "Device0"

Driver "intel"

VendorName "Intel GMA 3150"

BusID "PCI:0:2:0"

EndSection

...

Point xorg to the intel glx module and set the mesa libgl (still as root)

cp /usr/lib/xorg/modules/extensions/libglx.so /usr/lib/xorg/modules/extensions/libglx.so.intel

ln -s -f /usr/lib/xorg/modules/extensions/libglx.so.intel /usr/lib/xorg/modules/extensions/libglx.so
update-alternatives --set x86_64-linux-gnu_gl_conf /usr/lib/x86_64-linux-gnu/mesa/ld.so.conf
ldconfig

NOTE: If you're running the 32-bit version of ubuntu replace 'x86_64' with 'i386'

Now reboot.

    • Mode 2: Nvidia GT218 (Next Gen Ion)

To enable the Nvidia Chip for the next boot, switch to root (sudo -s) and run

echo "\OSGS 0x02" > /proc/acpi/call

Set the nvidia driver in xorg.conf

...

Section "Device"

Identifier "Device0"

Driver "nvidia"

VendorName "Nvidia GT218"

BusID "PCI:4:0:0"

EndSection

...

Point xorg to the nvidia glx module and set the nvidia libgl (still as root)

ln -s -f /usr/lib/nvidia-current/xorg/libglx.so.280.13 /usr/lib/xorg/modules/extensions/libglx.so
update-alternatives --set x86_64-linux-gnu_gl_conf /usr/lib/nvidia-current/ld.so.conf
ldconfig

NOTES:

- Replace libglx.so.280.13 with the Version of your installed nvidia driver if you do not use the default nvidia driver shipped with oneiric.

- If you're running the 32-bit version of ubuntu replace 'x86_64' with 'i386'

Now reboot.

    • Mode 3 : Optimus Mode with Intel GMA 3150 and Nvidia GT218 (Next Gen Ion)

This mode keeps both VGA Chips active, but currently only the intel chip can be used in this mode. Work is going on to make "Hot-Switching" possible, so keep your fingers crossed To enable Optimus mode for next boot, switch to root (sudo -s) and run

echo "\OSGS 0x03" > /proc/acpi/call

and proceed with the Steps outlined in Mode 1 above.

To save power after the reboot in Optimus mode, turn off the nvidia chip via another acpi_call (acpi_call.ko module needs to be loaded again):

echo "\_SB.PCI0.P0P4.DGPU.DOFF" > /proc/acpi/call

This will give you additional 2 hours of battery life.

Downloads

References

1 see LP Bug #760131

2 Bios Version 0702 fixes a Bug when System wakes up from S3

3 see http://ubuntuforums.org/showpost.php?p=10323572&postcount=18

4 see LP Bug #59695

5 source for the fix: http://ubuntuforums.org/showthread.php?t=1741294

6 source for the fix: This Blog post by 'fewt'

7 Jupiter Power Managment Applet http://www.jupiterapplet.org/ ubuntu binary provided by Webupd8 PPA

8 jupiter-mono-icons.tar.gz taken from this Blog Post by 'Nick Campbell'

9 Tweak taken from the ubuntu SwapFAQ

10 Conky script taken from this Blog Post by 'Andrew'

11 Audio Recorder's ubuntu binary provided by osmoma's PPA

12 The Medibuntu Repository hosts packages that might have legal problems in some parts (esp. US) of the world

13 To use the nvidia Chip on-demmand set your Laptop to use Optimus Mode and install bumblebee. Please note that bumblebee is still under heavy development and might not work as expected.

14 acpi_call kernel Module taken from the linux-hybrid-graphics project.

15 especially this message from Raphael Metzler covers the acpi calls for the 1015PN

Please post your Suggestions / Questions in this ubuntuforums.org thread. If you find typos on this page - Congratulations! They're all yours ;)

Creative Commons License

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.

Based on a work at mtron.co.nr

contact: mtron * a1.net