Installing Linux on the Viliv N5:

1. Download Ubuntu 10.10 Maverick Meerkat ISO and the zip file with necessary files here.

2. Use unetbootin to create bootable USB stick

3. Replace syslinux.cfg with included syslinux.cfg to enable Optical Pointer support during installation

4. Install Maverick Meerkat as usual.

5. After install, boot with mouse connected, edit /etc/default/grub, and add the following line:
GRUB_CMDLINE_LINUX="all_generic_ide i8042.noloop=1 i8042.nomux=1 memmap=0x40000\\\$0x3fc00000"

6. Run $sudo update-grub

7. Extract sd8686_helper.bin sd8686.bin from included archive (fwimage folder)

8. Restart and copy sd8686.bin and sd8686_helper.bin to /lib/firmware/

9. Create a n_start in /usr/bin/ with:

sudo /etc/init.d/network-manager stop
killall nm-applet
sudo wpa_supplicant -c /etc/wpa_supplicant/wpa_supplicant.conf -i wlan0 -Dwext & sleep 10
sudo ifup wlan0
sudo /etc/init.d/networking restart

10. Create a wpa_supplicant.conf in /etc/wpa_supplicant with your network information

11. Configure interfaces in etc/network/ with:

auto lo
iface lo inet loopback
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

12. Run $n_start to connect to wireless network.
a. If for some reason you fail to connect, run $sudo ifup wlan0 (where wlan0 is your wireless card in ifconfig)

13. Run $sudo add-apt-repository ppa:gma500/ppa && sudo apt-get update

14. Run $sudo apt-get install poulsbo-driver-2d poulsbo-driver-3d poulsbo-config
a. This may remove the edits you previously made to /etc/default/grub. If this happens simply add the info again as directed above.

15. Reboot

16. Run $n_start again
a. If for some reason you fail to connect, run $sudo ifup wlan0 (where wlan0 is your wireless card in ifconfig)

17. Run the following commands to prepare the build environment:

$ sudo apt-get install build-essential kernel-package libncurses5-dev libqt3-mt-dev
$ sudo apt-get install linux-source-2.6.35
$ cd /usr/src
$ sudo tar xvjf linux-source-2.6.35.tar.bz2
$ cd linux-source-2.6.35
$ sudo cp /boot/config-2.6.35-22-generic .config
$ sudo make oldconfig

18. Extract included libertas.patch to the linux-source-2.6.35 folder.

19. Run the following commands to patch and make the correct drivers

$ sudo apt-get install git-core
$ sudo git apply libertas.patch
$ sudo cp /usr/src/linux-headers-2.6.35-22-generic/Module.symvers ./
$ sudo make modules_prepare
$ sudo make M=drivers/net/wireless/libertas

20. Run the following command to patch the kernel

$sudo modprobe -r libertas_sdio libertas

21. Copy the current driver from /lib/modules/2.6.35-22-generic/kernel/drivers/net/wireless/libertas/ to some backup location for safe keeping.

22. Copy the libertas.ko & libertas_sdio.ko from /usr/src/linux-source-2.6.35/drivers/net/wireless/libertas/ to /lib/modules/2.6.35-22-generic/kernel/drivers/net/wireless/libertas

23. Run $sudo depmod -a to prepare dependencies.

24. Comment out all but the first and last lines of your etc/network/interfaces file, so that network-manager can resume control of your wireless.

25. Sometimes, once patched the sd8686.bin and sd8686_helper.bin files in the lib/firmware directory will vanish (don't know why). If this happens, simply copy the files back to that folder again.

26. Reboot, turn on network, and network-manager should function as expected.T