[ale] how do I run, and control, X11 server on android tablet?

Ron Frazier (ALE) atllinuxenthinfo at techstarship.com
Sat Dec 29 20:05:00 EST 2012



JD <jdp at algoloma.com> wrote:

>On 12/29/2012 03:31 PM, Ron Frazier (ALE) wrote:
>> Hi all,
>> 
>> I've been trying to figure out how to attach a program running in the
>GO
>> language to a GUI, since it doesn't have a built in GUI.  I've found
>a couple of
>> X11 server programs in the Google Play store entitled, cleverly, X
>Server.  I'm
>> wondering if I can run the X server on the Android tablet and control
>or drive
>> it remotely from another PC with a GO program or even a bash script. 
>So, if I
>> install the X Server program on the tablet, and say its address is
>192.168.50.5,
>> and the pc's address is 192.168.50.1, how do I run Ubuntu graphical
>apps (say
>> Firefox?) on the PC and have them appear on the tablet?  Furthermore,
>how do I
>> use a program or script to drive the X11 server directly, so I can
>use the
>> tablet as the GUI for the GO program?
>> 
>
>Unless something major has changed in the last 4 months, there isn't an
>X-server
>that runs on Android.  I've done this. The way to achieve that is to
>run a
>chroot copy of an Arm-linux, run the program inside that Linux plus a
>VNC server
>the connect to your local arm-Linux using a VNC program from google's
>store.  It
>sorta works, but not anywhere as well as most people would need.  It
>was a
>curiosity to me. Nothing more.
>
>X-servers and X-clients work backwards of what most C/S architectures
>involve.
>The physical machine where you want to display things - THAT is the
>X-server.
>The remote machine is where the X-client runs.  Last time I needed to
>help
>someone understand it, wikipedia had a good explanation.
>
>Having a fully functioning X-Server for Android would be nice. REALLY
>nice.  To
>get the needed performance, I can't see that being written in java, so
>a native
>build will be needed for each platform.
>
>Ok, so back to your final question - how to run remote GUI programs on
>Android?
>VNC.  I wish there were a working NX client, since NX is 2x-3x more
>efficient
>than VNC or RDP.  Don't forget that VNC usually doesn't include any
>encryption,
>so do this on a LAN only, not over the internet without adding a VPN to
>the mix.
>
>BTW, I have an A500 tablet.
>I hope this helps.
>

Hi JD,

Thanks for the note.  I'm not afraid to admit that I don't really know what you meant in your first paragraph.  As I mentioned in my reply to Sam, I almost got it to work with a program called X Server which is available in the Google Play store.  There is another one as well, which is somehow attached to VNC, but I couldn't figure that out in a short time.  I installed X Server on the tablet, then used the command Sam recommended to export my display from my Ubuntu laptop, specifying the IP of the tablet as the target.  I then started firefox from a terminal window on the laptop.  I saw the firefox window appear on the tablet's screen.  However, I couldn't interact with it or control it in any way.  I could only look at it and reposition the mouse cursor by touching the tablet screen.  It was tantalisingly close to working.

Let me elaborate a bit on what I want to do.  VNC might work, but I'm not sure it will.  I'm just beginning to learn the GO language.  It really doesn't have a GUI, so it's not very good for desktop user driven programs.  I think there are some bindings to C Libraries for FLTK or GTK.  However, I'm trying to do something with what GO has built in and only minimal additional stuff.  It occurred to me that an X client can export its display to any X server on the net via TCP/IP (with proper authentication, etc.).  Well, GO does have networking built in.  So, if I can send out X commands through the TCP/IP connection to any X server, then I can have instant programmatical access to a GUI that I can drive to do what I want.  So, here's an example off what I want to do.

Let's say I want to initialize a GUI for the user.  The user is on the tablet, the GO program is on my laptop.  I use GO's networking commands to issue X requests directly to the X server running on the tablet, and a program window appears on the tablet.  I don't know exactly how to do this, but you would have to manipulate the TCP/IP data stream directly.  I send other X commands from the GO program on the laptop to the tablet and menus and buttons appear on the tablet.  I initialize text entry blanks, and even images, all programmatically, and X server becomes my GUI.  Any computer that can run X can be my display, even the same one that is running the GO program.  I get an instant GUI and cross platform ability without linking in custom libraries on every target machine.

What do you think?

Sincerely,

Ron





--

Sent from my Android Acer A500 tablet with bluetooth keyboard and K-9 Mail.
Please excuse my potential brevity.

(To whom it may concern.  My email address has changed.  Replying to former
messages prior to 03/31/12 with my personal address will go to the wrong
address.  Please send all personal correspondence to the new address.)

(PS - If you email me and don't get a quick response, you might want to
call on the phone.  I get about 300 emails per day from alternate energy
mailing lists and such.  I don't always see new email messages very quickly.)

Ron Frazier
770-205-9422 (O)   Leave a message.
linuxdude AT techstarship.com




More information about the Ale mailing list