Much of this document merely explains data found on the XDA Developers Forum and the EEEUser Forums. In addition, this thread also fixed several of the problems in the thread.
If you want more than just USB-RNDIS-LITE, please use this script: http://www.synce.org/moin/SynceInstallation/Source/EEE-Script which will download and install all the components you need. In addition, it tells you what packages you need to get the compilation to work.
0. You MUST be root to do this. Some steps (such as downloading files) can be performed without being root, but any apt commands or make install commands need you to be root. I recommend becoming root first using the command:
sudo su -
Remember to exit the root shell once you have done what you need to!
1. Add additional repositories to the /etc/apt/sources.list file. There were instructions here previously to use the Debian Repositories. As long as you don't include the word “etch” at the end of the tuxfamily.org repository, the following instructions don't require you to have the Debian repository included.
2. Install build-essential
sudo apt-get update sudo apt-get install build-essential
3. Get the kernel-source file from http://dlsvr01.asus.com/pub/ASUS/EeePC/701/Linux_Kernel_071127.rar - using Firefox - wget won't get it!
4. Unpack the RAR file and install it's contents
unrar x Linux_Kernel_071127.rar dpkg -i linux-source-2.6.21.4-eeepc_5_all.deb cd /usr/src tar xfvj linux-source-2.6.21.4-eeepc.tar.bz2
5. Build *THIS KERNEL*. You will need to change directory to where the files just unpacked to.
cd /usr/src/linux-source-2.6.21.4-eeepc make oldconfig make
6. Build the usb-rndis-lite driver
sudo apt-get install subversion svn co https://synce.svn.sourceforge.net/svnroot/synce/trunk/usb-rndis-lite cd usb-rndis-lite/ ln -s /usr/src/linux-source-2.6.21.4-eeepc /lib/modules/2.6.21.4-eeepc/build make sudo ./clean.sh sudo make install
Additional notes for Hardy Hernon (8.04): Install the package 'linux-headers-2.6.24-16-generic' if applicable and then use the command below to create the symlink in this step and proceed the normal way. ln -s /usr/src/linux-source-2.6.21.4-eeepc /lib/modules/2.6.24-16-generic/build
7. Configure the system to use the new device
Before you can use your device as a router, you need to load the “Internet Connection Sharing” program, and make it connect. Next you need to get an IP address from the device.There are a couple of ways of doing this.
7.1. From the command line/launcher
If you create an icon for one of these commands in the launcher, you won't get any information if it fails to come up, and you also won't get any indication that it's up (barring perhaps the network icon appearing on the system tray).
7.1.1. DHCLIENT
This is the most basic method to implement.
/sbin/dhclient rndis0
7.1.2. IFUP
First, you need to configure the interface
cat "iface rndis0 inet dhcp" >> /etc/network/interfaces
Then, any time you wanted to bring up your network connection, you'd use this command.
ifup rndis0
7.2. Using the Network Manager
This is the thing that most people wanted. It's not perfect and it does produce errors… however, it's fairly easy to achieve.
Step 1. Create a new LAN connection in Network Manager, using ETH0 and DHCP. Give it a name like “3G” or similar.
Step 2. In a terminal edit /etc/network/interfaces. Find the last block in the list (probably called lan2), and replace all instances of the text $IFACE with rndis0. Save and close the file.
Step 3. Activate your new connection in Network Manager. It will *PROBABLY* still say “Pending” but this is OK - you've got your network connection :)