Android and Linux

Wednesday, March 30, 2011

wget Android port

I can't take credit for it, but someone ported the real GNU wget utility to Android. I found this many months ago and have kept it on my phone. The wget that came with busybox worked great for a while, but after my upgrade to Cyanogen 7 a couple of weeks ago, I noticed several of my Tasker tasks were failing. I finally figured out that it was due to the busybox wget located in /system/xbin/wget. I deleted it and dropped this into /system/bin and everything started working again.

I uploaded it here in case anyone wants it (and so I don't lose it myself.)

Thanks to whoever originally compiled it for Android!

Sunday, March 13, 2011

ssh hiccupped

I will never understand some things.

Last night, I sat down to watch a movie and dimmed the lights using ssh on my phone (using a Zoom widget to run the ssh command to my PC and trigger heyu controlling home automation, it's all here on the blog somewhere). After the movie, I went to brighten the lights and found that it didn't work. After much investigation, I found that ssh was failing to connect to my PC. No matter what I tried, ssh failed with this error:

no address associated with hostname

I recently installed an app which created network sockets in order to watch network traffic, so I thought maybe that screwed something up. I had no idea how to fix it, and it was time for an update anyway, so I wiped the phone and installed the latest Cyanogenmod today (7RC2). After getting everything installed and set up, I dropped to a terminal and tried to ssh in to the PC and got:

no address associated with hostname

What the..? Ping and everything else worked, so it didn't seem to be a DNS issue. Maybe Google shipped out an Android OTA update that changed the network stack somehow?

I finally found a fix by adding my PC's IP address to /etc/hosts and giving it a name: home

Then ssh user@home worked! I keep the home IP address stored in a file so it was easy to change all of my ssh commands by changing the ip address in that file to "home", and it's worked all day with no problems.

Later tonight, I was trying to set up a new connection and accidentally typed ssh and, after changing absolutely nothing, it works again!

Well, the two lessons for today are that if ssh gives you that error, try hardcoding the ip address in /etc/hosts and connecting to it's hostname instead of the ip directly and when it comes to computing, just accept the fact that sometimes, things will make absolutely no sense whatsoever.

Thursday, March 10, 2011


RemoteDroid is a great little app that turns your Android phone into a mouse/keyboard to use with your computer. I mainly use it as a remote control for mplayer because mplayer uses keyboard shortcuts (which can be customized by editing ~/.mplayer/input.conf). I use the command line version, the GUI version is probably the same, but I've never used it so I can't say for sure.

The two work perfectly together. I can lay in bed and watch a movie on the computer at my desk and control it with my phone by tapping the keyboard in RemoteDroid. The only downside is that the server needed on the computer automatically opens a small screen. If you want to start the RemoteDroid server at boot, you have to live with that screen always being open. But there is a solution with KDE.

I'm sure something similar can be done with Gnome, but I've been using KDE for 10 years so I'm pretty much stuck with it and will probably still be using it when I'm an old ornery, cantankerous man (as opposed to the young ornery, cantankerous man I am today).

With KDE, When the RemoteDroid window comes up, right click on it and click "Configure Window Bahavior". This will bring up the KDE configuration utility.

Click Window Specific, then click "new" and click "Detect Window Properties". Your cursor will change to a crosshair. Click on the RemoteDroid window and it should automatically fill out the information for the RemoteDroid window.

Now go to the Geometry tab and click "minimized" then select the Preferences tab and select "Skip taskbar". Now when the window opens, it will be effectively invisible. It will be minimized so you won't see it on the screen, and it will not appear in the taskbar so there's no way for it to become unminimized.

Now, to run RemoteDroid when KDE starts, open a terminal and go to your kde autostart folder:

cd ~/.kde/Autostart

make a new script named (or whatever you want to call it):


put this in the script, changing /PATH/TO to the path where RemoteDroid is on your system:

#! /bin/sh
java -jar /PATH/TO/RemoteDroidServer/RemoteDroidServer.jar &

make it executable:

chmod 755

and you're done. RemoteDroid will automatically start when KDE starts, and it will be invisible.