wtogami (wtogami) wrote,

Full Report: LTSP Hackfest Portland 2008

The Linux Terminal Server Project (LTSP) has for ~9 years enabled Linux to act as a terminal server to diskless thin clients. LTSP has saved schools and businesses countless million, enabled or expanded access to technology to tens of thousands of schools globally, and enabled millions of otherwise useless obsolete computers to be recycled as thin clients. Today LTSP through various distributions like Debian, Ubuntu, Fedora and CentOS is very likely the largest by far exposure of Linux desktops to the general public.

Long before OLPC, LTSP has and continues to be a major Linux Desktops for education success story.
Now LTSP is becoming a shining star of cross-distribution coordination.

Developers from Debian, Fedora, Gentoo, OpenSuSE, Ubuntu and others met in Portland, OR for the LTSP Hackfest. Of particular note was the efficacy of gobby to collaboratively write notes and conduct group review of code. It was great to see developers on 5 different distributions using a shared tool to work on common problems. We got more work done at this Hackfest than any previous event. Beyond just implementation of new code, we defined a clear plan for further implementation of features and bug fixes in the coming months.

DisklessWorkstations.com has been the primary sponsor of LTSP upstream development for many years now. They covered a substantial amount of food for the event including the grand banquet on Day 1. Red Hat chipped some money to sponsor other meals. The coding stars of the event were Gideon Romm of Symbio Technologies , Scott Balneaves of LTSP upstream, and Ryan Niebur of Debian. Warren was mostly in a release engineering role, plus organizing the action item list, fixing a few other bugs, and reporting here what happened during the event. Also special thanks goes out to Freegeek of Portland, OR for use of their unique facility and for the tremendous service they do for the community in computer recycling and expansion of Linux desktop awareness in the community.

Link to Day 1, Day 2, Day 3 notes in raw detail.

LDM - The LTSP Display Manager
LDM is a greeter and login screen comparable to GDM or KDM, except it uses the name and password to launch an SSH session to a target host. Upon successful authentication, it launches a Linux desktop session like GNOME or KDE.

Scott Balneaves led the group in a live code review of the proposed LDM cleanup. The group suggested a few tiny improvements while others quietly added code cleanups in other parts of the same source file opened in the shared gobby session. It quickly was merged into ltsp-trunk and further testing ensued. It was important to get this merge done ASAP since it contains lots of code cleanups and simplification, that enables addressing other LDM action items.

LDM Cleanup Troubles
After Scott Balneaves' major code cleanup of ldm was committed to trunk on Day 1, the Debian and Ubuntu developers were having trouble getting logins to work. It seemingly worked on Warren's Fedora 9 laptop and Ryan52's Debian laptop but not on the slower laptops of Oliver and Vagrant. We eventually discovered that Scott introduced some timing dependent race condition. Scott battled that problem through most of Day 2 and eventually checked in a fix for Day 3 of the Hackfest. A separate cleanup fix submitted on ltsp-developer list eliminating the "kill -1" hack introduced a new issue causing logout to stall on XFCE and IceWM sessions, so it was backed out late Day 3. The only remaining regression then was local storage devices (like USB sticks) would no longer automatically unmount at logout. Vagrant fixed this at the very last moment of Day 3, we tested it quickly and tagged it as ldm-2.0.9. Gideon began implementing splitting of X launching from the ldm binary into the shell scripts that launch ldm, but that is not yet complete as of this writing.

The LDM breakages introduced on Day 1 were very frustrating for the Debian and Ubuntu developers. But thanks to the group's effort we managed to leave the Hackfest with no known regressions and an improved foundation upon which to build further LDM improvements planned during the event.

Local Apps Implementation
We spent the final hours of Day 1 going through the "Local Apps" plan. Local apps enables running of certain applications on the thin client itself, which is tremendously beneficial with otherwise bandwidth intensive media applications. For example, Firefox playing Youtube can easily overwhelm a 100mbit network with only two or three clients. For this reason there is a strong desire to be able to offload video intensive applications like Firefox to the client, creating a "hybrid" client. The recent openssh-5.1 release included statvfs in the sftp-server. sshfs (somehow) already had statvfs and in simple tests it seems to work. Prior to arriving at the Hackfest, Gideon Romm had already thought out the entire local apps implementation. Warren suggested a simplification of the user/group portion to avoid pulling in yet another dependency of libnss_extrausers. A theoretical but untested implementation was written by Gideon by the end of Day 1.

xrexecd: xatom signalled remote execution daemon
xrexecd is a daemon that runs on the client immediately after LDM login. It connects and listens on the X server for certain xatom messages sent by the user session (from the terminal server) from the xrexec script. Before the 2nd day of the Hackfest, Scott Balneaves did a major cleanup of xrexecd in ltsp-client. Fedora built it in the ltsp-client packages before, but nobody used it yet since other infrastructure (sshfs homedirs) were not yet possible. xrexec example: A user might click on a special firefox launcher on the terminial server, which signals xrexecd to launch firefox on the diskless client. It is highly desirable to run firefox on the client itself instead of the terminal server in order to minimize the bandwidth of media-heavy use like Youtube. Google Earth may be another popular application to run on the client instead of terminal server.

xrexecd exits immediately on Fedora because it is unable to connect to the X server due to some Xauthority permission problems. Scott and Warren began a little debugging and found some some differences in Fedora with stricter permissions. More work is required on xrexecd to properly handle XAUTHORITY access in both X forwarded and non-forwarded modes of operation. Warren hopes to get this working in the next week or two. It is very exciting for us LTSP hackers to have this soon working since this has been the most desired feature for years.

sshfs mounted $HOME seems to work
Gideon Romm's rc.d/S01-localapps script merged early Day 2 seems now to be stable. It handles mounting of the user's home directory with sshfs via the already existing ssh tunnel from the LDM session. It also replicates the minimum of passwd and group entires to allow local apps to use that home directory. Warren confirmed that the new openssh-5.1 on the terminal server successfully allows sshfs-mounted home directories to work with firefox. It is a little slow, but it seems to work, although a few crashes occurred that we still need to check out. Fedora was the first to run firefox as a LTSP local app, but it was run manually due to the aforementioned Xauthority permission difficulties in xrexecd. Fedora can soon benefit from sshfs homedirs with openssh-5.1, where it is currently awaiting Bodhi karma votes in Fedora 9 updates-testing.

Live LTSP Server almost there
Fedora Live LTSP Server is a LiveUSB or LiveDVD where you can host network boot thin clients or diskless workstations without installing anything to your hard drive. Since it has a client chroot in addition to the server OS + desktop applications, it is impossible to fit within a LiveCD. This image is mostly useful for quick demos, testing purposes, or to install a fully configured and ready-to-go Fedora LTSP server onto a hard drive. This image contains pretty much just Fedora Desktop LiveCD, but with ltsp-server and the client chroot pre-installed in /opt/ltsp/i386, with all the configurations and services to serve LTSP server on the ltspbr0 bridge pre-enabled.

Warren got very far toward making this work during the Hackfest. Two other Hackfest attendees went home with a 2GB USB stick containing the first attempt, which worked after a few manual tweaks saved to the LiveUSB persistent overlay. Further work ensues to make it release-ready, which includes: 1) Adding OpenOffice and a few education type applications 2) Figuring out a clear way to explain to the user how to configure the networking, since Ethernet bridging is not yet supported by NetworkManager, it is not exactly straight forward like a normal LiveCD.

LTSP Documentation Writers Team Founded
Brian Tilma founded the ltsp-docwriters team. Writing documentation is a great way to get involved with LTSP if you are not a coder. If you are interested in helping please talk with us on the ltsp-developer list or #ltsp on irc.freenode.net.

Gentoo Almost Ready
Donnie Berkholz and Johnny Robeson of Gentoo attended this Hackfest. They made a lot of progress toward making Gentoo working with LTSP5. They struggled primarily with their genkernel initramfs tool. Donnie informed the ltsp-developer list a day after the Hackfest that it is now working. It seems we will soon see LTSP5 easily working in Gentoo.

Ubuntu Intrepid uploaded new upstream code
Oliver Grawert (ogra) spent most of the Hackfest getting reaquainted to the many changes that happened upstream since he forked off for the previous Ubuntu stable release. By the end of Day 3 he had new upstrea code uploaded toward Ubuntu Intrepid. He probably now needs testers to give him feedback.

Next Two LTSP Hackfests
There is already planning underway for the next two LTSP Hackfests. The next will be in Maine tenatively scheduled to be around October 30th. This makes it roughly a year after the previous Hackfest in Southwest Harbor, Maine. If you have any interest in LTSP or diskless clients, I can highly recommend hanging out at this next Hackfest. Accommodations are very affordable in the cozy Seawall Motel during the tourist off-season near Acadia National Park. We plan on eating the local food, which includes lobster and other delicious seafood. (Food is very important to LTSP events.)

Jim McQuillan, founder of the LTSP project has made it a goal to send all of the LTSP developers to the FISL conference in Brazil on June 24th, 2009. It will be the 10th anniversay of both FISL and the LTSP project, and LTSP is very big in Brazil because of the tremendous enabler it has been for education. This should prove to be the biggest LTSP event ever. We have no idea how we will pay to send LTSP developers from the various distributions to the event, but we have 11 months to figure that out. While Warren has the good fortune of having Red Hat pay for his occasional visits to Hackfests, most of the other developers pay out of their own pockets to work on the public good. Perhaps we need to organize some kind of fund raiser.

If you have any questions or comments for the LTSP project please reply here. We would be happy to answer.
  • Post a new comment


    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded