- 18 Talk
-
Linux HOWTO
Ubuntu and Debian GNU/Linux on the ASUS N10 series: N10J, N10Jb, N10Jc, N10JE, N10Jh, N10HV and N10E
originally by ALLurGroceries with major updates from james-
Last updated: Sun Dec 5 14:18:03 UTC 2010
Forum (post here for help and discussion): http://forum.notebookreview.com/showthread.php?t=315810
Mirror: http://allurgroceries.com/n10/
Latest kernel: 2.6.36.1
Latest NVIDIA: 260.19.26
Getting Started
Edit
Introduction
Edit
BEFORE UPGRADING FROM UBUNTU JAUNTY TO KARMIC: boot using Intel graphics, remove /etc/X11/xorg.conf.nvidia and the detectgpu script.
BEFORE UPGRADING TO UBUNTU LUCID: boot using Intel graphics, remove /etc/X11/xorg.conf.nvidia and the detectgpu script (Ubuntu will try to install nvidia-common for you)
This guide covers installing Ubuntu or Debian GNU/Linux on all ASUS N10 models. The N10E does not have an NVIDIA card, so anything about NVIDIA can be ignored for N10E users. Some models, mostly eastern European, have 802.11b/g cards instead of 802.11n. The only other hardware differences are the model of GPU and CPU between the original models and the new N10Jh and N10Jb, which do not make any difference in terms of following this guide.
Ubuntu 9.10 can be installed with everything working out of the box. The only exception is HDMI audio which requires a patched version of ALSA. See the section below under NVIDIA Tweaks. If you have never installed Ubuntu before, see the documentation linked from the 'Installation Process' section below.
Debian is a bit more complicated. Wireless will require either a custom kernel or installing madwifi via module-assistant (see the appendix). Debian users will probably want to follow this guide from start to finish.
No matter your installation or setup, please read through the tweaks sections since they contain valuable information.
Dual Booting
Edit
The GRUB boot manager that ships with Debian or Ubuntu will allow you to choose between operating systems. You can chkdsk and defrag your C: volume in Windows and then resize its partition from the Debian or Ubuntu installer to make room for Linux partitions. The GParted Live CD is also useful for resizing partitions.
Installation Media
Edit
Ubuntu 10.04 (Lucid Lynx) 699MB
Ubuntu 9.10 (Karmic Koala) 690MB
Debian 5.0.4 (Lenny) 645MB
Debian 5.0.4 (Lenny) netinst** 180MB
Debian 5.0.4 (Lenny) businesscard** 40MB
Debian Testing (Squeeze) daily build netinst** ~167MB
Debian Testing (Squeeze) daily build businesscard** ~38MB
**Requires wired internet access during the installation process.
Any of these ISO images can be burned directly to a CD-R. Most CD burning software has an option to burn a disc image.
These ISOs can also be used to install from USB. The easiest way of accomplishing this is to download UNetbootin and use its Disk Image option.
There are more installation methods for Debian or Ubuntu.
Installation Process
Edit
Power on and immediately press ESC a couple of times to trigger the 'BBS Popup' and select your boot device that contains the installation media. The installer boot screen should show up. At this point you will have a menu to choose from, you can just hit Enter (or Return) for the default option. If you are installing Debian you may want to choose the Graphical install option for a friendlier interface.
Use the manual partitioning option and resize your main Windows partition. Try to leave at least 32GB free: 30GB or more for mount point / (root) as type ext3, and exactly 2GB for swap. Those are the only two partitions you need for Linux.
For Debian or the Ubuntu Alternate installer only: During Task Selection, make sure 'Desktop environment' and 'Laptop' are selected.
Answer yes to installing GRUB to the MBR if you have the option.
That is all you should need to know to get through the installer. If you are unfamiliar with the process, please read the Debian installation guide and browse the Debian reference. For Ubuntu please see this quick summary.
First Boot
Edit
Ubuntu should be fully functional (after installing NVIDIA drivers), with the exception of HDMI audio (as mentioned in the introduction above). See #HDMI_Audio_.5BNVIDIA.5D.
Upon the first boot into your Debian GNU/Linux system you may notice that the sound and/or wireless do not work.
There are two (mutually exclusive) quick fixes to get the sound working: Fix #1 or Fix #2.
If wireless doesn't work, the module can be painlessly added to the stock kernel (see #Building_MadWifi_for_the_Stock_Kernel), but this is not recommended. Following the section below to build a custom kernel will yield much better wireless performance and has other benefits too.
Kernel Upgrade
Edit
Preparing the System
Edit
The steps in this section (until you reach Building the kernel) only need to be done once, ever.
Debian users: I use sudo in this guide to run commands as the root user. Note: this can be a security risk and is not a necessary step. Run these commands as root to install and configure sudo. Replace your_username with the name of your regular user account:
apt-get update apt-get install sudo echo 'your_username ALL=NOPASSWD: ALL' >> /etc/sudoers
You need a few basic software packages before proceeding. Depending on your distribution, some of these packages may already be installed.
sudo apt-get update sudo apt-get install build-essential git-core kernel-package libncurses5-dev fakeroot bzip2 wget zlib1g-dev
If you are running Debian Sid or Unstable, make sure to copy over the kernel installation scripts, otherwise an initrd will not be created when the new kernel package is installed:
sudo cp /usr/share/kernel-package/examples/etc/kernel/postinst.d/initramfs /etc/kernel/postinst.d/ sudo cp /usr/share/kernel-package/examples/etc/kernel/postrm.d/initramfs /etc/kernel/postrm.d/
The kernel should be built as a regular user, not root. To facilitate this, we must add your regular user account to the src group. Replace your_username with your regular user account name below.
sudo adduser your_username src
Log out entirely (log out of Gnome/KDE/X) and log back in again with your regular user account. You will now have write permission on /usr/src.
Building the Kernel
Edit
Get the new kernel source tarball and my config file:
cd /usr/src wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.36.1.tar.bz2 tar xjvf linux-2.6.36.1.tar.bz2 cd linux-2.6.36.1 wget -O .config http://n10.pastebin.com/download.php?i=4DQZKQts export CONCURRENCY_LEVEL=2 make oldconfig
If you are prompted for options by 'make oldconfig' it is generally safe to just hold down the Enter (or Return) key to accept all defaults.
Note: No patches are needed for the 2.6.32 kernel. The webcam patch is no longer needed with libv4l-0 0.6.2-1 or later, so I have made a separate section for it: #Webcam. If you have trouble with HDMI audio, see #HDMI_Audio_.5BNVIDIA.5D.
To tweak the configuration further and add or remove modules, etc. (optional):
make menuconfig
For perfomance increase you can stop the window manager under gnome you can switch to tty(this will close your session,so save things you haven't saved)
Press ctrl+alt+f1, login, and run (for gnome):
sudo /etc/init.d/gdm stop
In ubuntu 10.04 if gdm doesn't stop you will have to run
sudo killall gdm-binary
For kde(kdm) and for xfce(xdm). This is optional but allows the kernel to be built in 120minutes instead of 248 minutes. You can restart the window manager with:
sudo /etc/init.d/gdm start
To compile the kernel run the following command. It may produce some errors at first -- don't worry unless it drops back to the shell prompt unexpectedly.
fakeroot make-kpkg --initrd kernel_image kernel_headers
Ubuntu: If you have the nvidia-common package installed, there is a problem with the postinst scripts, so move them out of the way before installing the new kernel:
sudo mv /etc/kernel/postinst.d/nvidia-common ~/nvidia-common sudo mv /etc/kernel/header_postinst.d/nvidia-common ~/nvidia-common.header
Install your new kernel and kernel headers:
cd /usr/src sudo dpkg -i linux-image-2.6.36.1_2.6.36.1-10.00.Custom_i386.deb sudo dpkg -i linux-headers-2.6.36.1_2.6.36.1-10.00.Custom_i386.deb
There is a current bug that the --initrd flag does not create an initrd, so we must create one manually:
cd /boot sudo mkinitramfs -o /boot/initrd.img-2.6.36.1 2.6.36.1 sudo update-grub
Ubuntu: Move the nvidia-common files back:
sudo mv ~/nvidia-common /etc/kernel/postinst.d/nvidia-common sudo mv ~/nvidia-common.header /etc/kernel/header_postinst.d/nvidia-common
Finally, reboot and select your new kernel from the boot menu.
sudo reboot
Graphics Drivers
Edit
N10E users should skip this part and go directly to #Tweaks. This section explains how to switch between Intel and NVIDIA GPUs. Ubuntu users (since Lucid Lynx 10.04 LTS and later) should read Ubuntu 10.04 (Lucid Lynx) and later Graphics Drivers Installation section.
Note: I use ~ a few times here, which is shorthand for the current user's home directory, e.g. /home/username
A physical switch on the left side of the case next to the vent controls which GPU is used. Pushed back towards the rear is the 'Off' position which is for Intel; 'On' is for NVIDIA, which is switched forward.
The HDMI output cannot be used with Intel graphics since it is part of the NVIDIA subsystem.
There are two ways to install the NVIDIA drivers. The first is by installing a package provided by your distribution. The other way, which this guide uses, is to download the NVIDIA installer and run it manually. If you used the packaged method, it will prevent you from using the directions for switching between GPUs. The Intel card can still be used on 2D mode but it will not have 3D accelleration. If you want to switch between GPUs and have 3D support for both, please follow the section below on graphics drivers. It uses a startup script to detect which card is switched on.
Every time the kernel is upgraded, the NVIDIA drivers must be reinstalled. This is because they have kernel modules that are not present when installing a new kernel. If you use the startup script to switch GPUs, the intel files must be restored after running the NVIDIA installer. There is no way around this. Therefore it is recommended that the NVIDIA installer be kept in a safe location on your hard disk, and that a separate folder containing the Intel files is kept as a backup. This is explained thoroughly below.
Preparing the system
Edit
These steps only need to be done once, ever.
Two xorg.conf files will be used (one for each GPU). First move the existing xorg.conf out of the way. Then get two files from my web server:
cd /etc/X11/ sudo mv xorg.conf xorg.conf.old sudo wget http://allurgroceries.com/n10/xorg.conf.nvidia sudo wget http://allurgroceries.com/n10/xorg.conf.intel
Note: The xorg.conf.intel file has been recently updated to use EXA due to a problem with UXA on Ubuntu. If you experience this problem please run the last command line above.
A startup script called detectgpu will handle detection of the card when the system starts. Get the startup script from my server:
sudo wget -O /etc/init.d/detectgpu http://n10.pastebin.com/download.php?i=1LPXk6ZL sudo chmod +x /etc/init.d/detectgpu
This command will install the startup script (note the period at the end, it isn't a typo):
sudo update-rc.d detectgpu start 10 2 .
Installing the drivers
Edit
ONLY if you are on a stock kernel (did not build a custom kernel), make sure to install the headers package for your kernel:
apt-get install linux-headers-`uname -r`
Get the latest NVIDIA installer and make it executable:
cd ~ wget ftp://download.nvidia.com/XFree86/Linux-x86/260.19.26/NVIDIA-Linux-x86-260.19.26.run chmod +x NVIDIA-Linux-x86-260.19.26.run
Download two packages so that a network connection is not needed later:
sudo apt-get -d install libgl1-mesa-glx xserver-xorg-core
Reboot with NVIDIA graphics switched on if you are using Intel graphics. Disregard any error messages if you are prompted.
Press Ctrl+Alt+F1 to get to tty1 and log in with your regular user account (not root). Make sure gdm isn't running:
sudo /etc/init.d/gdm stop
Also make sure all OpenGL applications are stopped, including compiz:
killall compiz
Purge nvidia-glx (it may not be installed but do this anyway to be sure):
sudo dpkg -P nvidia-glx
Uninstall the proprietary NVIDIA driver package if it is installed. It is safe to use the latest installer to uninstall a previous version.
sudo modprobe -r nvidia sudo ~/NVIDIA-Linux-x86-260.19.26.run --uninstall --ui=none
Make sure the Mesa 3D package is installed:
sudo apt-get install libgl1-mesa-glx
Reinstall two packages in case the NVIDIA installer previously removed their files:
sudo apt-get install --reinstall libgl1-mesa-glx xserver-xorg-core
Make copies of two files since the NVIDIA installer will remove them. Also, having nvidia-glx installed will hide these files, but we removed it above.
mkdir ~/intel cp /usr/lib/xorg/modules/extensions/libglx.so ~/intel/libglx.so.intel cp /usr/lib/libGL.so.1.2 ~/intel
Now install the NVIDIA drivers (disregard any error messages about libglx.so):
sudo ~/NVIDIA-Linux-x86-260.19.26.run -Nqa --ui=none
Note: If you are not running a custom kernel, add --no-cc-version-check to the command above.
Copy the Mesa 3D files for the Intel card:
sudo cp ~/intel/libGL.so.1.2 /usr/lib sudo cp ~/intel/libglx.so.intel /usr/lib/xorg/modules/extensions
Run the script by hand one time to get things in order:
sudo /etc/init.d/detectgpu
Make sure the nvidia module is loaded and start gdm:
sudo modprobe nvidia sudo /etc/init.d/gdm start
After you login, open a Terminal window and try running glxgears (the output in the terminal window will give a clue as to what went wrong if it doesn't work).
Switch the graphics switch to 'Off' for Intel graphics and reboot. Try glxgears again and it should work. If X crashes it might be a version mismatch (see the note about upgrading Intel drivers below).
Upgrading Graphics Drivers
Edit
If you need to upgrade the NVIDIA drivers later, copy libGL.so.1.2 and libglx.so.intel from ~/intel back after running the new NVIDIA installer.
If there is an updated libgl1-mesa-glx or xserver-xorg-core package, the NVIDIA drivers must be uninstalled, then copy the new versions of the two files (libGL.so.1.2 and libglx.so as libglx.so.intel) to ~/intel, run the NVIDIA installer, and copy the two files from ~/intel back again.
Ubuntu 10.04 (Lucid Lynx) and later Graphics Drivers Installation
Edit
Since 10.04 version Ubuntu introduced an easy way to install NVIDIA Graphics Drivers. It provides nvidia-current package with NVIDIA drivers installed into separate directory. Intel (and other vendor's) drivers also installed into separate dirs. Driver selection works through /etc/alternatives mechanism. You can install 'nvidia-current' package or you can use driver jockey (System -> Administration -> Additional Drivers). Also you can select 'Normal' or 'Extra' on 'Visual Effect' tab in System -> Preferences -> Appearance window and proprietary driver will install automatically.
After driver installation and system reboot you should get working NVIDIA driver. While NVIDIA GPU is active, do:
cp /etc/X11/xorg.conf /usr/local/etc/xorg.conf.nvidia
after reboot with Intel GPU do:
cp /etc/X11/xorg.conf /usr/local/etc/xorg.conf.intel
(intel's xorg.conf may doesn't exist, so you should create an empty one)
Thenput the following script into /etc/init.d/detectgpu:
#! /bin/bash ### BEGIN INIT INFO # Provides: detectgpu # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 # Default-Stop: # Short-Description: ASUS N10 Graphics driver selection # Description: This script detects active GPU on ASUS N10 series # laptops and activate driver configuration. ### END INIT INFO # Author: Maxim Kravets <zeelax@gmail.com> # # Do NOT "set -e" # PATH should only include /usr/* if it runs after the mountnfs.sh script PATH=/sbin:/usr/sbin:/bin:/usr/bin rm /etc/X11/xorg.conf VIDEO=$(lspci | grep -c nVidia) if [ "$VIDEO" == "1" ]; then ln -s /usr/local/etc/xorg.conf.nvidia /etc/X11/xorg.conf update-alternatives --set gl_conf /usr/lib/nvidia-current/ld.so.conf else ln -s /usr/local/etc/xorg.conf.intel /etc/X11/xorg.conf update-alternatives --set gl_conf /usr/lib/mesa/ld.so.conf fi ldconfig
Add execute permissions to new script:
chmod +x /etc/init.d/detectgpu
and install it to automatic startup system:
update-rc.d detectgpu start 10 2 .
No other installation or compilation needed. You can update Intel or NVIDIA graphics driver any time you like. Of course, you should update Intel driver with Intel GPU active, and NVIDIA with NVIDIA GPU active ;)
Tweaks
Edit
Upside Down Webcam
Edit
If your webcam is upside-down, there is an easy way to flip the image:
export LIBV4LCONTROL_FLAGS=3 && application_name
The value of 3 flips the image both horizontally and vertically.
Skype requires preloading the v4lcompat library:
export LIBV4LCONTROL_FLAGS=3 && LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype
You can make these commands into shell scripts to prevent having to type them every time. You can then link these shell scripts to your Gnome or KDE menu to make it seamless.
Alternatively, you can use a patch to uvcvideo that will flip it. Note: this patch was made for 2.6.32, if you are using 2.6.33 or later it will not work and is not worth the effort of patching manually. First back up your existing source and module files (in case you need to revert to it):
sudo mv /usr/src/linux-`uname -r`/drivers/media/video/uvc/uvc_video.c /usr/src/linux-`uname -r`/drivers/media/video/uvc/uvc_video.c.orig sudo mv /lib/modules/`uname -r`/kernel/drivers/media/video/uvc/uvcvideo.ko /lib/modules/`uname -r`/kernel/drivers/media/video/uvc/uvcvideo.ko.orig
Then cd to the Linux source directory, download the patched version, build the module, and install it:
cd /usr/src/linux-`uname -r` wget -O ./drivers/media/video/uvc/uvc_video.c http://allurgroceries.com/n10/uvc_video.c rm drivers/media/video/uvc/*.o make drivers/media/video/uvc/uvcvideo.ko sudo install -m 644 drivers/media/video/uvc/uvcvideo.ko /lib/modules/`uname -r`/kernel/drivers/media/video/uvc/ sudo modprobe -r uvcvideo sudo modprobe uvcvideo
Maximizing Screen Real-Estate
Edit
Go to the System menu and select Preferences->Appearance. Change the font size to 8 for all items under the Fonts tab.
Click the Details button at the bottom right and change the Resolution to 90 dots per inch.
Note: The actual PPI is 116.36: 1024x600 resolution, 10.2" diagonal = 8.8" x 5.16" (22.35cm x 13.1cm) = 116.36 PPI, 0.2183mm dot pitch
Also apply 'Subpixel smoothing' under Rendering. Click close.
For users of Firefox or Iceweasel, here is an optimized configuration to maximize usable space.
Ambient Light Sensor
Edit
There is an ambient light sensor to the left of the camera. It will automatically adjust the brightness of the screen and is enabled by default. The screen will be darker on the highest setting with it enabled, so you may want to disable it to get the most possible brightness:
sudo sh -c "echo 0 > /sys/devices/platform/asus_laptop/ls_switch"
To enable it again replace 0 with 1. Bluetooth can be toggled in the same way:
sudo sh -c "echo 0 > /sys/devices/platform/asus_laptop/bluetooth"
Note: If you are running a kernel older than 2.6.31, the location is different: /sys/devices/platform/asus-laptop/
Touchpad
Edit
Touchpad behavior can be modified by editing the Synaptics InputDevice section in /etc/X11/xorg.conf
To enable tapping (tap to click), increase MaxTapTime (max time to detect a tap in milliseconds) from 0 to the default 180 or higher. Also make sure the following line exists, in order to bind the touchpad tap with mouse button 1.
Option "MaxTapTime" "180" Option "TapButton1" "1"
To enable horizontal scrolling change HorizEdgeScroll from 0 to 1:
Option "HorizEdgeScroll" "1"
Fingerprint Reader
Edit
WARNING: This is for testing purposes ONLY! Do NOT run these commands if you are not prepared to potentially break your system. This has only been tested on Debian Sid. PLEASE DO NOT USE THESE DIRECTIONS FOR UBUNTU or other versions of Debian. Instead please see the documents here: [1]
NOTICE: This section uses the proprietary libbsapi.so library.
First make sure the dependencies are installed:
sudo apt-get update sudo apt-get install libfprint0 libqca2-plugin-ossl libfakekey0
Then get the latest version of Fingerprint GUI, extract the tarball and install it:
cd ~ wget http://www.n-view.net/Appliance/fingerprint/fingerprintGUI-0.11.tar.gz tar zxvf fingerprintGUI-0.11.tar.gz cd fingerprint-0.11 sudo ./install.sh --with-upek
It should now say "Fingerprint binaries have been installed." If there are any missing libraries, apt-get those as well and re-run install.sh.
Make the (required) uinput module load on system startup:
sudo sh -c "grep -q uinput /etc/modules || echo '\nuinput' >> /etc/modules"
Load the uinput module (so that rebooting isn't necessary):
sudo modprobe uinput
Make sure GDM is the default display manager:
grep -q gdm /etc/X11/default-display-manager || sudo dpkg-reconfigure gdm
Run Fingerprint GUI to configure your user fingerprint (each user must do this):
fingerprintGUI
or if that has permissions problems:
sudo fingerprintGUI
In Fingerprint GUI: Click 'Upek (0x147e) unknown device (0x1000)' Click Next to get to the 'Finger' tab. Select whichever finger you want to use for the fingerprint. I recommend the thumb. Click Next to get to the 'Scan/Verify' tab. Swipe your finger (it may take a few tries). After 3 successful swipes it will say 'Fingerprint was saved to disk. Select another finger?' Answer No to adding another fingerprint. Click Next to get to the 'Settings' tab. Click Next to get to the 'Password' tab. Click Rescan and click Finish.
Run Fingerprint GUI to configure your root fingerprint (repeat the above steps but use a DIFFERENT FINGER!):
gksudo fingerprintGUI
Now test your fingerprints:
sudo fingerprintIdentifier
Back up files that are about to be modified (do not skip this):
sudo cp /etc/pam.d/su /etc/pam.d/su.backup sudo cp /etc/pam.d/login /etc/pam.d/login.backup sudo cp /etc/pam.d/sudo /etc/pam.d/sudo.backup sudo cp /etc/pam.d/gdm /etc/pam.d/gdm.backup sudo cp /etc/pam.d/gnome-screensaver /etc/pam.d/gnome-screensaver.backup sudo cp /etc/gdm/gdm.conf /etc/gdm/gdm.conf.backup sudo cp /etc/udev/rules.d/*fprint*.rules ~/
Hit CTRL+ALT+F2 and log in (as root if possible). If something goes wrong with the configuration steps below, you can use this terminal to recover, since it is possible lock yourself out of your system. Backing up the config files and keeping a terminal open will allow you to revert your changes to prevent this situation. Hit ALT+F7 to get back to the graphical environment.
The following commands will configure your system for fingerprint authentication. You have a choice as to what you want to use with fingerprint authentication. First create the file that each of the other config files will reference:
sudo sh -c "echo 'auth\tsufficient\t\tlibpam_fingerprint.so debug' | cat - /etc/pam.d/common-auth | sed -e 's/pam_unix.so[ \t]*nullok_secure/pam_unix.so try_first_pass nullok_secure /' > /etc/pam.d/common-auth.fingerprint"
Configure login (at the terminal) for fingerprint:
sudo sh -c "sed 's/common-auth/common-auth.fingerprint/' /etc/pam.d/login.backup > /etc/pam.d/login"
To test the configration, press CTRL+ALT+F5 and type your username. Then swipe your finger and you should see output like this:
n10j login: grocer Password: Fingerprint Login 0.11 Authenticating grocer Swipe your finger or type your password: OK grocer@n10j:~$
To get back to the graphical environment press ALT+F7.
Configure GDM to use the fingerprint reader:
sudo sh -c "sed 's/common-auth/common-auth.fingerprint/' /etc/pam.d/gdm.backup | sed -e 's/auth[ /t]*requisite[ /t]*pam_nologin.so/#&/' > /etc/pam.d/gdm" sudo sh -c "echo '[daemon]\nAutomaticLoginEnable=false\nAutomaticLogin=\nTimedLoginEnable=false\nTimedLogin=\n\n[greeter]\nBrowser=false' > /etc/gdm/gdm.conf"
Try logging out to see if GDM will work with the fingerprint reader. You don't need to type your username.
Configure su for fingerprint (NOT recommended since it has problems with gksu):
sudo sh -c "sed 's/common-auth/common-auth.fingerprint/' /etc/pam.d/su.backup > /etc/pam.d/su"
Configure sudo:
sudo sh -c "sed 's/common-auth/common-auth.fingerprint/' /etc/pam.d/sudo.backup > /etc/pam.d/sudo"
Configure gnome-screensaver:
sudo sh -c "sed 's/common-auth/common-auth.fingerprint/' /etc/pam.d/gnome-screensaver.backup > /etc/pam.d/gnome-screensaver"
sudo sh -c "echo '#Device upek\nATTRS{idVendor}==\\"147e\\", ATTRS{idProduct}==\\"1000\\", MODE=\\"0664\\", GROUP=\\"plugdev\\"' >> /etc/udev/rules.d/z60_libfprint0.rules"
Set up user settings for gnome-screensaver (each user must run this):
gconftool-2 -t bool -s /apps/gnome-screensaver/embedded_keyboard_enabled TRUE gconftool-2 -t string -s /apps/gnome-screensaver/embedded_keyboard_command "/usr/local/bin/fingerprintPlugin -d"
Reload some stuff so that gnome-screensaver works without a reboot:
sudo /etc/init.d/udev restart sudo modprobe -r uhci_hcd sudo modprobe uhci_hcd
DO NOT allow the screensaver to run (or lock your screen with Fn+Space) until you are positive that your login configuration is working correctly. It will prevent you from getting to the terminal.
If something goes wrong, to undo the configuration run these commands (use CTRL+ALT+F2 if necessary):
sudo cp /etc/pam.d/su.backup /etc/pam.d/su sudo cp /etc/pam.d/login.backup /etc/pam.d/login sudo cp /etc/pam.d/sudo.backup /etc/pam.d/sudo sudo cp /etc/pam.d/gdm.backup /etc/pam.d/gdm sudo cp /etc/pam.d/gnome-screensaver.backup /etc/pam.d/gnome-screensaver sudo cp /etc/gdm/gdm.conf.backup /etc/gdm.conf sudo rm /etc/udev/rules.d/*fprint*.rules sudo cp ~/*fprint*.rules /etc/udev/rules.d/ gconftool-2 -t bool -s /apps/gnome-screensaver/embedded_keyboard_enabled FALSE gconftool-2 -t string -s /apps/gnome-screensaver/embedded_keyboard_command ""
Delays Resolving Hostnames or Lookup Failures
Edit
Your router is most likely at fault, but there is a workaround. IPv6 DNS lookups will timeout before falling back to an IPv4 lookup thus causing the delay or failure. For Firefox (or Iceweasel), you can disable IPv6 lookups by setting network.dns.disableIPv6 to true in about:config. If you want to disable IPv6 across your entire system see this post.
Hotkeys and Fn+F10 Mute Doesn't Work
Edit
All of the Fn+F1 through Fn+F12 hotkeys now work out of the box (see the exception below for mute).
Fn+C is bound to XF86Launch1 and Fn+V is bound to XF86WebCam. These do not have any actions associated by default and can be assigned in System->Preferences->Keyboard Shortcuts.
If Fn+F10 doesn't work for mute, please update to kernel 2.6.30 or later and acpi-support 0.123-1 or later. If you are not able to upgrade, here is a workaround:
cd /etc/acpi/events sudo mv asus-volume-mute asus-volume-mute.x sudo mv asus-volume-up asus-volume-up.x sudo /etc/init.d/acpid restart
Magnify and Power Mode Buttons
Edit
The power mode button (right next to the power button) is hard coded to KEY_SCREENLOCK, and the magnify button (to the left) is not enabled at all. First make a backup of the file we are going to be changing (do not skip this):
cp /usr/src/linux-`uname -r`/drivers/platform/x86/asus-laptop.c /usr/src/linux-`uname -r`/drivers/platform/x86/asus-laptop.c.orig
The following commands will patch and recompile the asus_laptop module. The power mode button will now be bound to XF86AudioNext and the magnify button will be bound to XF86AudioPlay. (If you would rather have other functions for these keys, see /usr/share/acpi-support/key-constants and replace NEXTSONG [right button] and PLAYPAUSE [left button] in the first line below):
sed 's/SCREENLOCK/NEXTSONG/' /usr/src/linux-`uname -r`/drivers/platform/x86/asus-laptop.c.orig | sed 's/{KE_END, 0},/{KE_KEY, 0xba, KEY_PLAYPAUSE},\n\t{KE_END, 0},/' > /usr/src/linux-`uname -r`/drivers/platform/x86/asus-laptop.c
cd /usr/src/linux-`uname -r`
make drivers/platform/x86/asus-laptop.ko
sudo cp drivers/platform/x86/asus-laptop.ko /lib/modules/`uname -r`/kernel/drivers/platform/x86/
sudo modprobe -r asus_laptop
sudo modprobe asus_laptop
Startup, Suspend and Resume Issues
Edit
Reloading modules with scripts will solve problems with LEDs and wireless not associating after resume.
Note: The startup script below should not be needed anymore. Use it only if you need to. To remove it:
sudo update-rc.d -f asus_laptop remove
First the startup script. The space and period in the last command line is not a typo.
sudo sh -c "echo '#\041/bin/bash\nmodprobe -r asus_laptop\nmodprobe asus_laptop' > /etc/init.d/asus_laptop" sudo chmod +x /etc/init.d/asus_laptop sudo update-rc.d asus_laptop start 99 2 .
Now the resume script (unlike the startup script, this is still needed):
sudo sh -c "echo '#\041/bin/bash\n\ncase \$1 in\n\thibernate)\n\t\tmodprobe -r asus_laptop\n\t\tmodprobe -r ath9k\n\t;;\n\tsuspend)\n\t\tmodprobe -r asus_laptop\n\t\tmodprobe -r ath9k\n\t;;\n\tthaw)\n\t\tmodprobe ath9k\n\t\tmodprobe asus_laptop\n\t;;\n\tresume)\n\t\tmodprobe ath9k\n\t\tmodprobe asus_laptop\n\t;;\n*) ;; esac' > /etc/pm/sleep.d/resume.sh" sudo chmod +x /etc/pm/sleep.d/resume.sh
Note: If you are using ath5k for an a/b/g card instead of ath9k for a wireless N card (lsmod | grep ath) make sure to edit resume.sh to reflect this.
If your wireless still doesn't come back after resume it's a different problem. This should not happen very often. Open a terminal and run:
killall nm-applet sudo /etc/init.d/dbus restart nm-applet &
If you lose your desktop icons after the above, run:
nautilus
If you cannot enter standby, run:
sudo pm-suspend
Preload: The Adaptive Readahead Daemon
Edit
The preload package is useful to keep frequently used programs and data in memory for faster access and improved load times. See this article for more details.
CPU Frequency Scaling
Edit
After installing the custom kernel from Part 1, right click on the gnome-panel (taskbar) and select Add to Panel... and add CPU Frequency Scaling Monitor. Left click on its icon to change modes.
Optimizing GRUB2 and TTY resolution
Edit
By default grub and tty are running at 640x480. You can change the resolution of both with a few simple edits. In a terminal run:
sudo gedit /etc/default/grub
and you should see something like this:
# The resolution used on graphical terminal # note that you can use only modes which your graphic card supports via VBE # you can see them in real GRUB with the command `vbeinfo' #GRUB_GFXMODE=640x480
change #GRUB_GFXMODE=640x480 to GRUB_GFXMODE=1024x600. Save and close, then run:
sudo gedit /etc/grub.d/00_header
look for lines like these and change accordingly:
if [ "x${GRUB_DEFAULT}" = "x" ] ; then GRUB_DEFAULT=0 ; fi
if [ "x${GRUB_DEFAULT}" = "xsaved" ] ; then GRUB_DEFAULT='${saved_entry}' ; fi
if [ "x${GRUB_TIMEOUT}" = "x" ] ; then GRUB_TIMEOUT=5 ; fi
if [ "x${GRUB_GFXMODE}" = "x" ] ; then GRUB_GFXMODE=1024x600 ; fi
if you want to change your tty console resolution look for these lines in the 00_header file:
if loadfont `make_system_path_relative_to_its_root ${GRUB_FONT_PATH}` ; then
set gfxmode=${GRUB_GFXMODE}
set gfxpayload=keep
insmod gfxterm
insmod ${GRUB_VIDEO_BACKEND}
if terminal_output gfxterm ; then true ; else
# For backward compatibility with versions of terminal.mod that don't
# understand terminal_output
terminal gfxterm
fi
fi
you will have to add gfxpayload=keep here so it will tell the kernel to keep the same resolution as grub.
to apply these settings run:
sudo update-grub
Dyson Audio Compressor
Edit
Now you may be asking yourself what this is and what it does. The too long; didn't read version is here.
The simple explanation is if the audio signal is too loud it would normally cause distortion, but with the limiter it normalizes the audio signal. How does this help? Say you are watching a movie and someone is talking really quietly, so you boost the volume, right after you do that there is a huge explosion and scares the fecal matter right out of you, with the compressor it will average the sound out so you don't have super loud spots or too quiet spots.
Note this applies to all linux systems using alsa, not just the N10.
You will need a package called swh-plugins, you can install it by running:
sudo apt-get install swh-plugins
You will need to create a file in your home directory called .asoundrc so open up your favorite text editor and save the fallowing to ~/.asoundrc
pcm.ladcomp {
type plug
slave.pcm "ladcomp_compressor";
}
pcm.ladcomp_compressor {
type ladspa
slave.pcm "ladcomp_limiter";
path "/usr/lib/ladspa";
plugins [
{
label dysonCompress
input {
#peak limit, release time, fast ratio, ratio
controls [0 1 0.5 0.99]
}
}
]
}
pcm.ladcomp_limiter {
type ladspa
slave.pcm "plughw:0,0";
path "/usr/lib/ladspa";
plugins [
{
label fastLookaheadLimiter
input {
#InputGain(Db) -20 -> +20 ; Limit (db) -20 -> 0 ; Release time (s) 0.01 -> 2
controls [ 20 0 0.8 ]
}
}
]
}
Next time you want to watch anime/movie in mplayer you can use the dyson compressor with this command
mplayer -ao alsa:device=ladcomp somevideo.mkv
Note: if you want to output sound through hdmi change the plughw:0,0 to plughw:0,3 in the .asoundrc
NVIDIA Tweaks
Edit
Color Accuracy [NVIDIA]
Edit
james- has created an ICC profile using a Spyder3Pro which can be downloaded here: [2]
To use it, first install the Argyll Color Management System package.
For Ubuntu Karmic Koala 9.10 and Debian Squeeze (testing) or Sid:
apt-get install argyll
For Ubuntu Jaunty Jackalope 9.04 or Debian Lenny 5.0.x, grab the .debs and install it manually:
http://packages.debian.org/sid/i386/libicc2/download
http://packages.debian.org/sid/i386/libicc2/download
Then apply the color profile:
dispwin -I /path/to/Spyder3Pro.icm
Redraw Issues with Compiz [NVIDIA]
Edit
This is apparently the result of a race condition between Xorg and compiz.
AVI Videos Look Purple/Blue (Hues Shifted) [NVIDIA]
Edit
Totem and GStreamer based players may have this problem - there is a cheap workaround. Hit Alt+F2 to get to the 'Run Application' dialog, type gksudo nvidia-settings and hit Enter. 'NVIDIA X Server Settings' will open, close it and switch back to the player window and the video will look right. There's more info here about the underlying cause of this bug.
HDMI Audio [NVIDIA]
Edit
Note: This section is redundant if you run a custom built kernel, having followed the section #Kernel_Upgrade.
To get audio working over HDMI after installing the official NVIDIA driver package, it may be necessary to install an updated version of ALSA with a patch. Note that HDMI audio will only work when the NVIDIA GPU is enabled. This now includes support for 7.1 surround (thanks to dragilla for posting a link to the original patch).
First make sure you have the required build dependencies:
sudo apt-get update sudo apt-get build-dep alsa-base alsa-utils alsa-lib
cd ~ wget ftp://ftp.alsa-project.org/pub/driver/alsa-driver-1.0.22.1.tar.bz2 wget ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.0.22.tar.bz2 wget ftp://ftp.alsa-project.org/pub/utils/alsa-utils-1.0.22.tar.bz2 tar xvvf alsa-driver-1.0.22.1.tar.bz2 cd alsa-driver-1.0.22.1 wget -O ./sound/pci/hda/patch_nvhdmi.c http://allurgroceries.com/n10/patch_nvhdmi.c export CONCURRENCY_LEVEL=2 ./configure make sudo make install
Now build alsa-lib:
cd .. tar jxvf alsa-lib-1.0.22.tar.bz2 cd alsa-lib-1.0.22 ./configure make sudo make install
Now build alsa-utils:
cd .. tar jxvf alsa-utils-1.0.22.tar.bz2 cd alsa-utils-1.0.22 ./configure make sudo make install
Now restart ALSA:
sudo alsa force-reload
HDMI audio will now show with aplay -l (lowercase L).
In your mixer app (gnome-alsamixer, kmix, alsamixergui, etc) make sure IEC958 is switched on. If you do not see it there open the mixer app's preferences and make the IEC958 switches visible.
Once you have hooked up your HDMI cable run gksudo nvidia-settings and detect displays. If you are hooked up to a TV you will need to set it to TwinView or Separate X screen and hit Apply before it will play any audio.
To force ALSA to use the HDMI out for mplayer:
mplayer -ao alsa:device=hw=0.3 file.avi
To force ALSA to use the HDMI out for all applications:
echo 'pcm.!default hdmi:Intel' >> ~/.asoundrc
To undo the previous (unforce HDMI audio):
rm .asoundrc
If it doesn't work try installing pavucontrol:
sudo apt-get install pavucontrol
Start it, then change settings to Digital HDMI Output.
To get back to netbook speakers, change settings to Analog Stereo Output.
HD Video Decoding [NVIDIA]
Edit
The NVIDIA GPU supports hardware decoding of HD video with the use of recent NVIDIA drivers and VDPAU enabled applications. MPlayer now has full VDPAU support. First make sure you have subversion and the right libraries installed before attempting to compile.
sudo apt-get update sudo apt-get install subversion sudo apt-get build-dep mplayer cd ~ svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer export CONCURRENCY_LEVEL=2 cd mplayer ./configure make sudo make install
once you have compile mplayer with VDPAU, insert the fallowing into your ~/.mplayer/config
lavdopts=threads=2:skiploopfilter=nonkey
it will decode video with 2 threads instead of 1. The performance will enable you to play 720p h.264 mkv with no audio desync.
Appendices
Edit
Building MadWifi for the Stock Kernel
Edit
THIS WILL NOT WORK FOR UBUNTU!
This method only applies to Debian and is not recommended. Instead, please follow #Kernel_Upgrade to build a custom kernel.
If you are running anything but Lenny (stable), add the following lines to the bottom of /etc/apt/sources.list before continuing. If you are running Lenny you must add contrib and non-free to your APT sources list if you haven't already.
deb http://ftp.us.debian.org/debian/ lenny main contrib non-free deb-src http://ftp.us.debian.org/debian/ lenny main contrib non-free
Update the list of available packages and make sure module assistant is installed:
sudo apt-get update sudo apt-get install module-assistant
Build and install the driver modules:
sudo m-a a-i madwifi-source
Wireless should now work:
sudo iwconfig wlan0
If you are not running Lenny, please make sure to now remove its lines from sources.list.
Removing the detectgpu Startup Script
Edit
sudo update-rc.d -f detectgpu remove
--
The original location of this guide is: http://forum.notebookreview.com/showthread.php?t=315810
Mirror: http://allurgroceries.com/n10/