Linode + Ubuntu Netbook Edition + iTeleport + iPad = ?
I'm excited about the idea of using my new iPad as a thin client for an Ubuntu desktop running on Linode. Why? Because it's there. No, I can't think of any practical use cases. That's not the point.
People with iPads are enthusiastically using a VNC client called iTeleport to control their home desktops remotely. This suffers from two problems: a) the home computer GUIs are sized for desktop screens, not iPads, and b) the responsiveness is limited by the home Internet connection.
We can improve both issues by running a GUI designed for netbooks (Ubuntu Netbook Edition) and by controlling a computer hosted in a data center (Linode) instead of at home.
So I'm thinking something along the lines of setting up a Linode with Ubuntu Server, installing Ubuntu Netbook Edition (with "sudo aptitude install ubuntu-netbook" perhaps?), installing a VNC server running over SSH, buying iTeleport for my iPad, and then BAM:
I'll have Ubuntu Netbook Edition on my iPad whenever I've got Internet connectivity.
What do you guys think?
David
P.S. I checked for an NX client for the iPad and didn't see one.
16 Replies
@Ubiquitous:
No, I can't think of any practical use cases.
With the bar set that low, how can you fail?
@vonskippy:
With the bar set that low, how can you fail?
The only way to try to fail is to fail to try!
My UNR netbook is currently using 1331 MB of RAM, but if I close Firefox, that goes down to 1052 MB. If I kill blueproximity (which I suspect may have a memory leak), I'm down to 325 MB.
I wouldn't recommend blueproximity on a Linode, but hey, 325 MB << 512 MB. Try it and see. Sucky part will be X11 over WAN, but you know that already.
I followed the Linux: Headless Ubuntu with VNC
> (II) LoadModule: "vesa"
(II) Loading /usr/lib/xorg/modules/drivers//vesa_drv.so
(II) Module vesa: vendor="X.Org Foundation"
compiled for 1.6.3, module version = 2.2.1
Module class: X.Org Video Driver
ABI class: X.Org Video Driver, version 5.0
(II) VESA: driver for VESA chipsets: vesa
(WW) Falling back to old probe method for vesa
(EE) No devices detected.
It looks like the howto is adding a VNC X server alongside the default, and telling the default to use the "vesa" driver, but that driver doesn't seem to work in Linode.
I can't figure out how to get gdm to ignore the default X server and use only the Xvnc X server.
Sigh,
David
@Guspaz:
The iPad is a 1024x768 display, which is what most GUIs are designed for. Windows/Gnome/KDE/etc should all work fine on that size of display, so running a netbook distro isn't really needed…
True, but that's not why I choose the netbook distro. I want it for these features:
* Go Home Applet - A gnome-panel applet that, when clicked upon, displays the desktop. Used in a netbook-based desktop, the desktop-window will normally be the launcher. Go Home Applet also works in conjunction with the netbook-remix-launcher whereby dragging and dropping a file/url/application to the go-home-applet will automatically add it to the launcher's favorites section.
Maximus - A desktop daemon which will automatically maximise and, optionally, un-decorate windows. Has support for exclusion lists and will work with any EWMH-spec compliant window-manager.
Ubuntu Netbook Remix Launcher - An easy-to-use program/places/favourites launcher which resides on the desktop, replacing the main-menu.
Window Picker Applet - A gnome-panel applet that displays open windows as icons on the panel, and has integrated window title-bar functionality. Optimised for use on netbook-size screens. I think they'll give a better GUI experience on the iPad.
I made some progress since yesterday. I was able to tell GDM to use Xvfb instead of the normal X server so that it would stop complaining about the lack of video hardware on the Linode. I had to downgrade GDM from 2.28 to 2.20 first, however, because 2.28 removed the ability to customize it in this way:
# aptitude install gdm-2.20
# sed -i s,/usr/X11R6/bin/X,/usr/bin/Xvfb, /etc/gdm/gdm.conf
# sed -i s,VTAllocation=true,VTAllocation=false, /etc/gdm/gdm.conf
Now I can log in via VNC but immediately afterward the netbook-launcher crashes, making the GUI unusable:
> Jul 14 19:50:06 localhost kernel: netbook-launche[16057]: segfault at 404 ip b6d82326 sp bfa9232c error 4 in libGL.so.1.2[b6d80000+5000]
@rsk:
Look for the 100% software OpenGL implementation… I think you want libgl1-mesa-swx11(-686).
That fixed it, thank you!
It works! Woo hoo!
@Guspaz:
It's too bad there's no NX client for iOS. It's a heck of a lot faster than VNC.
I was very surprised at that, having used VNC for years. It is most excellent, and running a Linode GUI via NX is supersweet.
James
Protocols like Microsoft's RDP or NoMachines' NX work on a lower level; they're integrated with the underlying UI API, so they don't need to send everything in images, they don't have to work so hard to figure out if the image on-screen changed, and they're less wasteful since they send less data that hasn't changed.
The advantage of VNC, though, is that it's very easy to implement, and it can work on pretty much any platform. That's why there are VNC servers for virtually every operating system you can think of.
For its part, NX itself doesn't handle any of the actual UI stuff directly. It wraps around XDMCP (the X Display Manager Control Protocol) and tries to optimize it. It does this by compression and caching; the caching allows it to eliminate most round-trips, which produces an enormous speed increase over simple X forwarding.
There are already such things for VNC. They are very slow on desktops. Further hurting them for mobile use is the fact that iOS is still using a really crappy javascript engine; as far as I know, the only mobile browser using a next-gen Javascript engine is Android as of froyo (2.2). And no mobile browser has hardware acceleration for canvases (IE9 and Firefox do on the desktop).
There are some things that web apps are goof for, some things that they will become good for, and some things that they are bad for. I think web-based NX/VNC/RDP/etc clients fall into the middle category; the underlying architecture to support them is there (it works), but it's not sufficiently advanced (it's too slow). But I think it will get there, eventually.
@Guspaz:
It's too bad there's no NX client for iOS. It's a heck of a lot faster than VNC.
Do you happen to know if it's faster than the native client on the RDP side of things. I'm guessing no because the NX client is the only part of NX involved. But OTOH, from NoMachines's page> Thanks to its outstanding compression performances, NX is able to deliver X, RDP and RFB remote sessions using the same client. This is achieved by translating "foreign" protocols into X-Window, the native protocol of NX.seems to suggest that it provides some benefits after all.