Linux on a Samsung N510 Netbook

Posted: October 3rd, 2010 | Author: | Filed under: Linux, Tools and Gadgets | Tags: | No Comments »

Introduction

This page documents my experience with running Debian GNU/Linux on my Samsung N510 netbook.

Background

I decided to move to the N510 mainly because I was planning on using a portable machine as my primary computer for a period of time. Size, cost, and graphics / 3D performance were all factors in my purchase decision. The N510 seemed like a reasonable middle-of-the-road machine in terms of all these areas. It’s not Alienware, but with Linux installed and tuned, the platform should handle most tasks I need it to accomplish. The NVidia ION chipset present in the N510 was key to my decision, since the lack of reasonable 3D acceleration is a weak link in most other current netbooks and many low-end laptops for anyone interested in doing light gaming, 3D modelling, running a compositing window manager, scientific visualisation, etc.

Hardware and Feature Support

Here is a matrix of the most important hardware and features provided on the N510, and my ability to get them working on my machine. Keep in mind that other people may have had better or worse luck, and that device support is always improving. I’ve ommited very typical hardware that I haven’t had trouble with, like USB, SATA, and some others.

Component / Feature Status
Suspend to RAM Working with workaround for ethernet resume. See below
Suspend to disk Working
Ethernet Working (using ‘SysKonnect Yukon2 support’ kernel option)
Wireless LAN Working (using ndiswrapper and Windows XP driver. see notes)
Sound Working (using NVidia HDMI and Realtek audio codecs)
Video Working using proprietary NVidia driver (version 190.53)
VDPAU Working with mplayer after recompiling with VDPAU support
Card reader Working
Touchpad Working in X.org
Webcam Working with luvcview
HDMI audio/video out Working in both twin-view and mirroring modes
Bluetooth Running ‘hcitool scan’ reports nearby devices
LCD brightness controls Working by writing to /proc/acpi/video/IGPU/LCD0/brightness

Kernel Configuration

I’ve based my system on the 2.6.32 release kernel from http://www.kernel.org. Here is a copy of my kernel configuration file, modified to only include support for hardware contained in the N510 and also a few common devices (USB hard drives, CDROM drives, etc.).

Please note that there is more than one version of the N510 being shipped, and your hardware may not match mine. Specifically, the wireless and wired ethernet are suspect. Make sure to check the output of lspci and dmesg on your machine.

Here are the most notable changes I’ve made to my kernel configuration:

  • CPU architecture set to Intel Atom
  • enabled support for Realtek 8192 wireless LAN (currently a staging driver)
  • timer frequency set to 1000Hz
  • preemption model set to ‘desktop’

Suspend to RAM

Initially I was having a problem where resuming from suspend (using pm-suspend) would result in a kernel panic, forcing a hard reset by removing the N510′s battery. I traced the problem to the sky2 kernel module responsible for Ethernet. By explicity unloading the sky2 module on suspend, I was able to resume without issues. I was able to achieve this by adding the following to a new file called /etc/pm/config.d/suspend

SUSPEND_MODULES=sky2

Wireless LAN

The 2.6.32 Linux kernel supports my 510′s Realtek 8192 wireless hardware (using a staging kernel module). I was able to recompile with support for this Realtek 8192, however I was unable to locate a copy of the firmware required by the device, and so I opted to use ndiswrapper and Realtek’s Windows XP driver found on their web site. If anyone has information on extracting and using the required firmware, please contact me.

Software Environment

I’m running Debian testing as my Linux distro. The stock kernel shipped at the time is 2.6.26. I try to run a relatively lightweight system, with X windows, core gnome libraries, and fluxbox as my window manager. I won’t go in to detail on my configuration, but just mention some tweaks that I find useful.

Temporary filesystems in RAM

This helps to keep the N510′s hard drive from spinning up unnecessarily, and avoids the resultant short pauses when programs wait for the disk. Note that everything mounted in tmpfs will be gone after a reboot, and there are some other possible side effects. Here are the changes I’ve made to /etc/fstab

tmpfs /tmp      tmpfs defaults,nosuid 0 0
tmpfs /var/log  tmpfs defaults,nosuid 0 0
tmpfs /var/run  tmpfs defaults,nosuid 0 0
tmpfs /var/lock tmpfs defaults,nosuid 0 0

X windows settings

I’ve modified my /etc/X11/xorg.conf file to remove the NVidia logo when X starts up

Section        "Screen"
Identifier     "Screen0"
Device         "Device0"
Monitor        "Monitor0"
DefaultDepth   24
Option         "NoLogo" "true" # yes I know
SubSection     "Display"
Depth          24
EndSubSection
EndSection

Fluxbox window manager

I’ve found fluxbox to be very friendly, with low system overhead. Fluxbox is also pretty friendly when operating with no mouse. I’ve modified X to load fluxbox when I log in by adding the following to ~/.xsession

exec startfluxbox

Here are a few screen shots showing my desktop running conky, rxvt, google chrome, and World of Warcraft:

Video decoding acceleration using VDPAU

Current NVidia graphics hardware has support for VDPAU, allowing acceleration of video decoding. This is critical for Intel Atom based machines where decoding HD video would otherwise hit the CPU very hard. On my system, the load when playing back 720p HD video went from 100% (and incurring loss of audio sync, and complaints from mplayer) down to about 40%. The proprietary NVidia graphics driver includes headers to allow applications to be compiled with VDPAU support. For me this means recompiling mplayer, since it’s the only video application I use which can take advantage of VDPAU. I’ve read that ‘multimedia PC’ applications like XBMC also support VDPAU as well.

When compiling mplayer from source code, I passed the following options to configure in order to enable VDPAU

./configure --enable-vdpau --target=i686-linux

User Experience and Conclusion

Thus far, I’m happy with the N510. In summary:

  • The system boots from complete power off to my desktop in about 50 seconds.
  • Accelerated 720p video playback on the N510 is smooth with no audio sync issues.
  • Subjectively, 3D performance in World of Warcraft is playable in most areas (using low quality settings).
  • Overall performance feels similar to other netbooks, though the quality keyboard, large screen (for a netbook), and ION processor give it a more advanced feel.
  • I was unable to test the native wireless lan module because I was unable to locate the necessary firmware. I have not had any problems using ndiswrapper as a work-around.


Leave a Reply