With smartphones becoming more popular and cellular data speeds becoming faster everyday there are a lot of people out there that have been tethering their Android smartphones with their Linux computers.
What is tethering? Tethering is where you share your smartphone’s internet service with your desktop or laptop computer. Most of today’s smartphones have this capability out of the box. You can tether via USB, Wi-Fi, or even bluetooth. You can either use the native tether feature on your smartphone or you can download an app that allows you to tether. I use my native Wi-Fi tether until I use up my 7GB that I’m allowed. After this I use an app to USB tether so I can bypass T-Mobile’s throttle. I can still use my native Wi-Fi tether after 7GB has been used, but T-Mobile throttles you to 128KBps upload and 128KBps download, which is pretty much useless to even web browse.
If you are using Wi-Fi tether, either native or an app, all you have to do is open the Wi-Fi tether settings, set an SSID and password. Then connect your Linux computer to your phone like you would connect to any other Wi-Fi network.
If you are wanting to do USB tethering, you need to have your kernel configured properly. I believe most Linux distrobutions should already have the proper kernel modules. Here is what you’ll need:
Device Drivers --->
[*] Network device support --->
USB Network Adapters --->
[M] Multi-purpose USB Networking Framework
CDC Ethernet support
CDC EEM support
[M] Simple USB Network Links (CDC Ethernet subset)
[*] Embedded ARM Linux links
You may also want to have
RNDIS option enabled as well. I read some phones need it, others don’t, I always have it on mine just in case. If you already have these modules, next you need to plug your phone into your Linux computer via USB and then enable USB tethering in your phone’s settings. You will now have a new networking device on your Linux computer. Some Linux distrobutions will now automatically connect to the internet. If your Linux computer does not, you will need to look at
ifconfig -a to see what your new device name is. Once you have the device name you can do
dhclient device-name or
dhcpcd device-name which will get an IP address from your tethered phone. You will now have internet access.
If you are wanting to use an app to bypass your cellular carrier’s tether limits or tethering speed throttle, there are a few options available. The best option I have found is Easytether. This app is free, although you may want to purchase to be able to get UDP ports as well. I have purchased almost all of the major tethering apps available for android, and have used a ton of free ones as well. Easytether seems to be my favorite one to use. The only downfall of using Easytether is that you need to install the app on your phone as well as install an app on your computer. Easytether does have a Linux version! There are many that do have Linux versions available, but like I said this one is my favorite to use. With Easytether you do pretty much the same as you would with the native tether, but you need a couple extra steps.
First download and install the Linux Easytether software, if you have internet on your computer currently, great, if not, download it to your phone and then transfer to your Linux computer and install it. Next you will need to enable developers options on your smartphone and enable USB debugging. To enable developers options go to settings then about and tap on build version until your Android smartphone says that you are now a developer. Now you can go to settings then developer options and enable USB debugging. Now you can connect your USB cable, open Easytether and tap enable USB tether. Now on your Linux computer you can open a terminal, and run
easytether-usb either with
sudo. You may have a popup on your phone to allow your Linux computer access to your phone. You should now be tethered with Easytether and not have any tethering limits or tethering speed throttle.
Using Easytether I get full access to my phone’s 80+MBps data connection.