Android Corner: Linux Deploy
I used to think “Complete Linux Installer” for Android was the “bees knees” so to speak. Enter “Linux Deploy,” a very seemless implementation of deploying/installing Linux distributions on your Android device. Like Complete Linux Installer, Linux Deploy makes use of VNC in a very intelligent way. Read on to learn more.
surprisingly, installation of a specific distribution is quite easy. Right from the get go, you can hit the “down arrow/basket” icon in the first image at the top of this post. From there you can:
- Select your type of distribution (in my case I chose Arch Linux)
- Version of ARM processor you can use (this is excellent)
- Mirror URLs
- File system type
- Language settings
- Desktop Environment
- SSH settings
- VNC Settings
- Profiles for each “installation”
- X window settings
- And more!
The amount of options here for a simple Android based Linux VNC implementation is astounding. And, it does it all seamlessly, with little effort. You will see full debug information as the installation progresses. If you mess up and installation, or cancel it, it is best to navigate to the directory listed (by default: ‘/storage/emulated/o/linux.img’) and remove the file to avoid any installation complications. Be aware of any data caps you have on your mobile network, as some images can be large, but not quite as large as their x86/x86_64 counterparts. My Arch XFCE image filed weighed in at 2570 MB. There are instructions here for other distributions not listed.
Also take stock of your resolution when building your image. My resolution was set to 1280 x 720, which in landscape, produces a portrait image. Reversing this was the key. As you may have to zoom a fair bit at this “stock” resolution for the phone (mine being a Galaxy S3), cutting the resolution in half or less, may give you a better experience. That is something I will test and update later on. For now, stick to you phone’s native resolution. Image scaling is based on whatever VNC client you use.
Note: The only issues I ran into was the architecture. Using the default selection for Arch Linux would freeze my mobile, whereas the default arch for Debian did not. So if you find what works based on a default, try to stick to that until you figure out the in’s and out’s of this application. If you want to get technical, look up the “power” and “version” of your phones ARM processor, the processor you likely will have. In the event your mobile seems to lock up, give it about 10 minutes to respond, and if it does not, do a battery pull with your mobile
It is not obvious for most what to do after the installation. What you then need to do is use a VNC client and connect the address of the X Server you listed in the build settings of your phone. In whatever VNC viewer you do choose, please note these default settings for a successful connection. All of these settings can be modified on reconfigure or at first build of your image:
- Default address is 127.0.0.1.
- Name does not matter
- Default username: “Android” (case-sensitive)
- Default password: “changeme”
- Port: 5900 (default)
Also, if you wish to get good color support, be sure to change your display options before connecting (I use AndroidVNC at the moment). Otherwise, you will get a very washed out screen. Keep in mind, this is not a good idea on an older mobile device. By default, AndroidVNC is set to use 64 colors (woo!). Changing this to a higher value is nice, but keep an eye on performance, especially when using a more resource heavy desktop environment than LXDE.
Don’t mind my application dock not being centered, I was zoomed in 🙂 I prefer having the default title bar at the top, which is the default of XFCE, but that can be change on any of the DE’s. I hate referencing one specific VNC Android application, but the features of AndroidVNC do allow you to change your input from a tap to send the mouse cursor to a location to being able to “drag” the cursor around (via “touchpad” mode). There are other input modes available in AndroidVNC as well.
The deployment was very nice, and speed came out good on several VNC viewers. Since Linux Deploy is running the SSH/VNC connection, most of the grunt work happens there. However, the choice of VNC viewer is also very important in reference to how quickly you can move about your system. If you experience issues with speed, try another VNC viewer or two. If that does not work, take time to review your Linux Deploy settings for that distribution, including the Desktop Environment you chose. Even on XFCE, system usage was decent.
As most Linux users know, memory used is subjective, as much of it can be in cache, so be sure to look through your processes as well to see utilization, or try a GUI system monitor for easy viewing. One of these such applications on Debian-based systems is “gnome-system-monitor” My system was using 1.0 GiB of 1.7 total. I did not look into as far as how to tamper with RAM settings via Linux Deploy.
In a nutshell, Linux Deploy does a great job of serving up some “Linux on the go.” I can’t fault it for any hardships that are really the fault of a particular VNC viewer. I was very impressed with the amount of options in Linux Deploy and what you could turn on/off and configure. This application will definitely be replacing my old go to for sure.