Wednesday, September 02, 2009

Resolution issues in LTSP

Yesterday I brought my whole class down to my newly configured LTSP lab with my dual quad core xeon, 8 gigs of RAM server powering my 22 Pentium 3, 128 MB RAM thin clients across a 10/100 switch with gigabit uplink from the server to the switch. From everything I've read this setup should work fine, especially since I've got firefox running as a local app now. Alas, it was not long before the familiar old complaints were ravaging my ears. "Mine's frozen!" "The computer's not working!" "Mine's slow!"


I did my best to alleviate the immediate issue by moving kids off of computers and that seemed to help a bit, but I still think there must be some sort of issue with my switch or something. I'm not entirely sure what the problem could be, but I knew that 128MB was pretty lean for the clients so after school I collected all the old PC133 SDRAM I had in stock and installed an extra stick in each client. This brings me to 256MB RAM in each machine which should be adequate.

I figured out how to check on the switch settings and all the ports are running at full duplex, but I've got a parent here who's pretty saavy with network issues so I might have him probe around a bit more.

One thing still left me puzzled yesterday, and that was the fact that some of the machines were not showing the screen correctly. Things were showing tracks around the screen and the resolution was different on different monitors. This despite the clients all being the same make and model. Very confusing.

It's taken me a couple of hours this afternoon, but I finally figured out the problem. I noticed that the problem was only happening on certain monitors, Dell M782 models to be exact. The Dell 781P's, which are actually a year older than the 782's, were working perfectly.

After wading through the ltsp handbook for a while and trying all kinds of settings in my lts.conf (/var/lib/tftpboot/ltsp/i386/lts.conf) I finally found the one setting that fixed all my problems:
Apparently Xrandr was trying to autoconfigure the settings on the monitor and was somehow getting them wrong. By disabling xrandr I was able to dictate the resolution I wanted and all the tracing and slow performance disappeared! Sweet. Here's my complete lts.conf if you're curious, but disabling xrandr was really the key to getting the monitor resolutions right. Cheers! -joe
X_MODE_0 = 1280x1024
SEARCH_DOMAIN = || Change this for your own network
DNS_SERVER = || Change this for your own network
RCFILE_01 = /etc/init.d/

Sunday, August 30, 2009

LTSP Local Apps progress: Firefox AND Flash Success!

Yesterday (Saturday) the schools campus was open until 4pm to give teachers one last shot at preparing for the kids' arrival on Monday. At about 3:50 I finally got my classroom LTSP server running Firefox with Flash as a local app!

It took a few clean installs to get it working and I never could get it to work with XFCE, which may be just as well since their support listserv still hasn't gotten back to me about kiosk mode in XFCE 4.6 and there is still no documentation on their website for 4.6 at all.

In the end I used GNOME, but I was also successful using KDE on one of the computer lab servers a couple of days ago. I plan on sticking with GNOME for the time being mostly because it is a faster desktop environment, but also because kiosktool for KDE appears to be a pain to install AND rarely maintained. I just wasn't willing to muddle my way through another lockdown program so it looks like GConf will be my new best friend for the time being.

I took the time to create a new page on the wiki that describes for beginners the process to getting Firefox and flash working as a local app on an LTSP setup. I haven't run through it myself to make sure every line is accurate, but I plan on doing so this week when I switch the computer lab over to GNOME from KDE.

In summary: it should now be possible for nearly anyone to install an LTSP setup with nothing more than a Pentium 4 as a server and then run Firefox with flash as a local application on the thin clients without too much trouble. LTSP is getting more viable by the day! -joe

Saturday, August 22, 2009

2009-2010 Year Approaching

School starts in 8 days, but I started back at school a couple of weeks ago. We had a string of break-ins on campus at the end of last year and while the thief initially (and surprisingly) didn't take anything aside from a few dollars laying around during the first two incidents, he eventually wised up and swiped a laptop.

In any case, I had some work to do processing some new equipment brought in for different situations like the one above, and of course I wanted to make a little progress on the Ubuntu servers we have in the labs and classrooms to see if I could have them running local apps at the start of the year.

Anyone looking to implement local apps at this point (myself included) would be wise to remember that it is a very experimental proposition as it currently exists. That being said, there are a few people around who seem to have gotten not only firefox to work as a local app, but flash as well. If envy could be sent across the intertubes, you would detect an abundance of it emanating from me right now.

The good news is that I know that I've at least got the first step of firefox as a local app going thanks to Gavin and the guys on the edubuntu user list who really did a great job of dumbing down the Thin Client How to NAT so an amateur like me can follow it without frustration. In case you're thinking of trying local apps yourself you'll soon realize the first step is setting up the LTSP server as a NAT gateway so thin clients that don't boot off of the server (or local apps running off the thin client instead of the server) can get Internet access.

Regrettably, there's not a similarly concise and simple How To page for setting firefox as a local app, but I'm working on the process and if I get it nailed down I'll be sure to put some hours into a comprehensive How To for others to follow. Paying it forward and all that I suppose.

Finally, I sent a message to the xfce users listserv asking how to set up kiosk mode in xfce 4.6 but I haven't heard a response yet. I'm hoping it is just because it's the weekend, but the pessimist in me says it's time to move to KDE's well documented kiosk tool. I downloaded the latest Linux Mint image with KDE 4.3 as a means of reviving an old Gateway laptop my cousin sent my way a few months back. I'm planning on experimenting with the kiosk tool there and hoping it works as well as it claims. Great to be back! -joe

Thursday, May 07, 2009

LTSP Local Apps Progress (Or Lack Thereof)

I've been working hard this afternoon to try and get Local Apps up and running as mentioned in the Edubuntu Jaunty Release Notes. Alas, I've experienced little more than the all-too-familiar Linux fatigue trying to navigate my way through a relatively complex set of instructions with little to no (or in the worst cases, inaccurate) documentation. My (least) favorite part is the little blurb in the release notes that makes everything seem so simple:

Installing Firefox inside the LTSP chroot and setting LOCAL_APPS_MENU=True in lts.conf will make Firefox to run locally on the thin client. The XDG integration takes care of adding the application in the menu or replacing it by the local application if it's already present.

Ahhh, the art of deception. I have, in fact been able to install Firefox in the LTSP chroot, and have also created and modified the lts.conf file appropriately. I have not found it true that the the application is replaced by the local application however. Nor have I been able to actually get Internet on Firefox when it is running as a local application. This is important because, as much as I enjoy seeing that familiar Firefox screen indicating that I am NOT, in fact, connected to the Internet, I think I speak for most users when I say that the value of Firefox is vastly diminished without Internet connectivity. Before I write more about that, however, let me give a little background to those who are about to walk in my footsteps.

I really don't understand why there is an opt/ltsp folder on the server or why it seems to have the exact same files that are on the Server file system already. I used to think that the server was operating in its own environment and the Clients were all in another environment under opt/ltsp and that to update the server was one thing, but to update the clients you had to use the command line and change root to opt/ltsp and then run updates from there. And while I still think this is sort of true, it doesn't explain why I can just install an application on the Server and that application will then become available on the Thin Clints. Shouldn't I have to install the application within opt/ltsp as well?

Anyhow, I followed this post and was able to install Firefox in the LTSP chroot, which I guess lets it run on the Thin Clients instead of the Server, and everything seemed to be fine. I can follow his command "ltsp-localapps firefox" on the Thin Clients and Firefox indeed pops up, although with no Internet. According to the post, I have to set up the Server as a NAT/Gateway or whatever. No problem, I get that: normally the Thin Clients look no further than the Server for their network information, but now we need them to be able to look beyond the Server to the actual Internet. Fine.

I followed as best as I could all the instructions on the How to NAT wiki page, and I thought I did everything right, even performing the checks (accurately I thought). At the end of the day, however, I could still not get Internet on Firefox as a local app. I even used my work Windows XP laptop to run ipconfig while on the LTSP network and couldn't get it to see past the Server. I'm not sure what I did wrong, but if I ever find out I'll be sure to post it here with the quickness.

What I really want to whine about, though, is the lack of accurate documentation available for things like this. I feel like the devs all complain about a lack of testers and inaccurate bug filing and maybe they are right about that last one (I wouldn't know, the process is so complex I just avoid it altogether because I'm afraid of doing something wrong). The former issue, though, could be helped with a little better documentation on things. Two examples:

Example 1:
I tried to set up my Server as a Gateway/NAT as described above, but here is the first check I am supposed to perform:

: Reboot the PC, to ensure it sees this and examine the default route (on linux type route -n).

Okay, I can reboot the PC (although the first time I followed this tutorial I thought I was supposed to reboot the Thin Client) but then what? I am supposed to ensure that it sees WHAT? How do I ensure that it sees this? What do I specifically do to ensure it sees whatever it is supposed to be seeing? Then I am supposed to examine the default route? Examine it for what? What am I examining and how will I know if something is wrong?

I guessed that I was supposed to ensure that the PC saw the change in the option routers. But there was no change to make for me. The "change" was to "change" a network address to what was set up by the LTSP install by default. If this is correct, shouldn't there be a note that this might be the case? As far as "examining" the default route, I guessed that this meant typing "ipconfig" in the command line on my Windows XP laptop while it was connected to the LTSP network. When I did this it seemed to show that it was seeing the "new" network address, but I didn't really know if what I was looking at was correct and I could proceed or not.

Example #2:
A while back I posted about kiosk mode in XFCE 4 and even posted the contents of my kioskrc file that locks down the Thin Clients. This was a huge breakthough because it allowed me to configure all the clients quickly with just one small file and I could be confident that they wouldn't be tinkered with my malevolent students. Well, Xubuntu Jaunty uses the latest version of XFCE, version 4.6. Overall the changes seem positive (I LOVE being able to click and drag to select multiple files on the desktop) but my old kioskrc trick doesn't work anymore, and there is NO documentation for XFCE 4.6. I don't mean that there is little documentation, or that the documentation is inadequate or hard to find. I mean that on the website under "documentation" it says:

We're sorry, but there is no documentation for 4.6 (yet).

So, I play the waiting game (again) and they don't get their user testing.

Today I switched to GNOME , deciding to give it another try after bailing on it over a year ago. Unfortunately GNOME remains slower on Thin Clients than XFCE, gconf still sucks to use (I set a "disable switching users" key to "mandatory" and it entirely removed from the panel the button to log out AND refused to let me change the key back!), Pessulus is still lacking all the options I need (and thinks people are using Epiphany instead of Firefox for some inane reason) and Sabayon still crashes when I try to run it. It's like May 2008 all over again!

I'll be sure to post again when I have some good news. For now, I'm going to litter the intertubes with requests for information about XFCE kiosk details and clarification on the How to NAT. Cheers! -joe

Tuesday, April 28, 2009

Back (again), Jaunty Jackalope, LTSP local apps, and a new way to set firefox preferences

Well it has been way too long since I posted an actual post here. Last year I had a lot to say as the Technology Teacher and School Techguy. Unfortunately the budget cuts to California's school system led to the outright elimination of my position at the school. Fortunately my administrator saw fit to offer me a position teaching 5th grade and even offered me a stipend to continue working a few hours each week solving various technology issues. Although I really miss participating in the overall edtec community as much as I was able to do last year, I have a lot to be thankful for with this new position and it has been a great experience. That being said, I still have some thoughts to share regarding the current state of technology in education and I thought I'd take some time to convey them (especially since I have little else to do while Xubuntu 9.04 loads on my student server).

Speaking of Xubuntu 9.04, if you haven't had time to read up on all the changes in Jaunty I suggest you do so. I think I agree with the consensus, which is basically that everything just works a little bit better. I'm glad to see they didn't adding any major changes like pulseaudio or compiz and instead seemed to focus more on making everything more reliable and faster.

9.04 has seen some significant improvements in LTSP as well, including something that has the potential to revolutionize (at least for me) how LTSP deployments are configured and used. That thing is support for local apps. You can read more about it in the release notes. If and when I get this feature working I'll be sure to post back about it.

Finally, I wanted to share something I discovered recently that relates to a popular former post of mine about setting firefox preferences. I've since found a better way to set these preferences. Instead of creating and editing a user.js file I now just edit the firefox.js file in etc/firefox/pref/

Things aside from the typical preferences that are included in Xubuntu by default that I decided to tic are:
setting the homepage
automatically clearing cookies and passwords after each session
not asking the user if they want to clear the cookies and passwords
not remembering any passwords by default

Here is my entire firefox.js file that I use at school:

// This is the Debian specific preferences file for Mozilla Firefox

// You can make any change in here, it is the purpose of this file.

// You can, with this file and all files present in the

// /etc/firefox/pref directory, override any preference that is

// present in /usr/lib/firefox/defaults/pref directory.

// While your changes will be kept on upgrade if you modify files in

// /etc/firefox/pref, please note that they won't be kept if you

// do them in /usr/lib/firefox/defaults/pref.

pref("extensions.update.enabled", true);

// Use LANG environment variable to choose locale

pref("intl.locale.matchOS", true);

// Disable default browser checking.

pref("", false);

// Prevent EULA dialog to popup on first run

pref("browser.EULA.override", true);

// Disable "safe browsing" feature that hogs CPU, HDD, etc. etc. in LTSP

pref("browser.safebrowsing.enabled", false);

pref("browser.safebrowsing.malware.enabled", false);

// Disable annoying location-bar suggestion "feature" that is sludgy with thin-clients

pref("browser.urlbar.maxRichResults", 0);

// Disable offline/disk caching of web pages

pref("browser.cache.offline.enable", false);

pref("browser.cache.disk.enable", false);

// Other preferences

pref("browser.startup.homepage", "");

pref("browser.startup.homepage_reset", "");

pref("privacy.item.passwords", true);

pref("privacy.item.offlineApps", true);

pref("privacy.item.cookies", true);

pref("privacy.sanitize.promptOnSanitize", false);

pref("privacy.sanitize.sanitizeOnShutdown", true);

pref("signon.rememberSignons", false);

Hope that helps some of you out. Good luck! -joe

Saturday, April 25, 2009

Study without desire spoils the memory, and it retains nothing that it takes in.
- Leonardo da Vinci