How to use an Android tablet as a Raspberry Pi console terminal and internet router
What you need
- Any Raspberry Pi — it even works with a Raspberry Pi model 1A having no ethernet port...
- A micro-USB power supply
- A micro-USB data cable
- An Android tablet (or on a smartphone if you insist)
- The ConnectBot App (available from Google Play)
Very universal solution:
- The Raspberry Pi uses very low power (no or inactive ethernet port)
- Your Android tablet can be powered via the Raspberry Pi USB port
- You have a virtual keyboard, mouse, and video display (KVM) for your Raspberry Pi
- Only 1 single Raspberry Pi USB port is required to deliver ethernet, and KVM access
- Both devices can easily share an internet connection
- The Raspberry Pi can have Wi-Fi or mobile network access through tablet tethering
- You do not need any special hardware; except for a few standard micro-USB cables
- It also works e.g. in a car using a 12V outlet
- Only standard software needed
- Autoconfiguration (plug and play)
Install ConnectBot on your tablet which is an Android terminal emulator available from Google Play. It allows to SSH into the Raspberry Pi.
Configure the Raspberry Pi
You can perform those changes when connected via any method to your Raspberry Pi.
Add the following lines into your network configuration:
allow-hotplug usb0 iface usb0 inet dhcp
When you would have already connected all devices, and you do not want to reboot, just restart the network:
Connect your devices
Connect your Android Tablet to a Raspberry Pi USB port via a micro-USB cable. Power your Raspberry Pi with a standard USB power supply. You can use any DC USB power supply.
Enable Android USB tethering
Enable USB tethering on your Android tablet.
Settings → Connections → Tethering and Wi-Fi hotspot → USB tethering
Now the Raspberry automatically gets an IP address via its USB0 port. The Android tablet behaves like a NAT router. This should work both when your tablet is connected to Wi-Fi or to a mobile 3G/4G network.
Initiate an SSH login to the Raspberry Pi
- Start the ConnectBot App on Android
- Login to the Raspberry Pi via SSH
The only problem is that you have to know the IP address of the Raspberry Pi; it seems to be (always?) 192.168.42.159...
eth0 Link encap:Ethernet HWaddr b8:27:eb:b5:d4:ba inet addr:192.168.31.36 Bcast:192.168.31.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:10538 errors:0 dropped:0 overruns:0 frame:0 TX packets:7235 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1039975 (1015.6 KiB) TX bytes:929333 (907.5 KiB)
lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:4010 errors:0 dropped:0 overruns:0 frame:0 TX packets:4010 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:168456 (164.5 KiB) TX bytes:168456 (164.5 KiB)
usb0 Link encap:Ethernet HWaddr 02:07:00:01:62:31 inet addr:192.168.42.159 Bcast:192.168.42.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:19830 errors:0 dropped:1 overruns:0 frame:0 TX packets:10412 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:21499431 (20.5 MiB) TX bytes:2806515 (2.6 MiB)
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.42.129 0.0.0.0 UG 0 0 0 usb0 192.168.31.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.42.0 0.0.0.0 255.255.255.0 U 0 0 0 usb0
You could as well connect an UTP network cable as well; then you have a dual-homed network connection with the advantage that you can:
- issue simple (configuration) commands from your tablet
- use a laptop to perform more complicated command via the other SSH connection
- This could work as well with other USB devices having no built-in network connection...
- Display a Raspbian desktop on Android using VNC
- You could run X Window System applications from your Raspberry Pi
Tethering not started
ssh: exited: Error connecting: No route to host