Linode + Ubuntu Netbook Edition + iTeleport + iPad = ?

OK, call me crazy. I think my new iPad is infecting my brain.

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?

From a "Lets just try it for the hell of it" perspective it sounds cool, I imagine you can do it.

@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.

Thanks for the encouragement. I failed.

I followed the Linux: Headless Ubuntu with VNC howto and got stuck when gdm attempts to launch the default X server:

> (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

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…

@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]

Look for the 100% software OpenGL implementation… I think you want libgl1-mesa-swx11(-686).

@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!

:D :D :D

Niiiice. Now, please pay close attention to just how huge CPU hog it is. ;)

It's too bad there's no NX client for iOS. It's a heck of a lot faster than VNC.

@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

It has to do with the nature of VNC. It's really more like a streaming video solution than anything else; a typical VNC server will poll random scanlines of the display to determine if anything has changed, and if something has changed, it sends the section of the image that has changed to the client.

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.

NX version 4 will have a web accessible client, which will work on any javascript enabled browser including ipads etc

Presumably requiring HTML5 support (things like canvas)…

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.

I agree but having the option to access from anywhere on any machine without plugins is defiantly a bonus.

@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.

Reply

Please enter an answer
Tips:

You can mention users to notify them: @username

You can use Markdown to format your question. For more examples see the Markdown Cheatsheet.

> I’m a blockquote.

I’m a blockquote.

[I'm a link] (https://www.google.com)

I'm a link

**I am bold** I am bold

*I am italicized* I am italicized

Community Code of Conduct