As always, be careful with any information that you get from us, or any other source on the Internet. Always be sure to double (and triple check) information from any source, and form your own educated opinions. For details, take a look at our disclaimer.
Linux Publishing Around The World
There are many organizations using Open Source software on Linux for publishing around the world, and several that focus on helping people to better themselves through the acquisition of technical job skills. Publishing and general word processing skills are two key elements in many educational programs since they are some of the most basic computer skills that people need in the modern workplace. If people are taught the hows, whens, and whys (as opposed to only memorizing a set of steps) of working with an office/publishing software suite, their skills seem to typically transfer well when the user is faced with non-open source software like Microsoft Office. This cuts out the cost of organizations having to spend their budget on fee based software while still passing on useful knowledge to their students/clients. It's important to note though that Open Source is not a totally "free" alternative either. There are many costs associated with setting up and running computer labs whether they are free or fee, such as obtaining computer hardware, installing and maintaining the hardware and software, and training people how to use the hardware/software that's been set up. The training of course needs to include the end users, but something of equal importance is to train system administrators so that they can keep things running. For more on the cost of open source software versus fee-based software like Microsoft Windows, have a look at the Linux for the Long Haul Linux Journal article referenced in the Additional Reading section of this post.
Another reason that it's important for the open source community to be involved is because technology is not a fire-and-forget type of thing. Continued involvement in training, support, providing replacement hardware, putting on workshops (in person and over the Internet) and the like are critical things for the community to be doing. Another important component as well seems to be developing a project that a local contingent of people can rally around (like a local newspaper or comic strip) to make sure that the new skills/hardware/software don't gather dust. Making sure that adequate learning resources (e-books, tutorials, etc) are available is very important too. Check out the Additional Reading resources to see what I'm talking about with these issues.
Not to be left out, we here at Tillamook Rage are involved, and continue to look for more ways to be involved in providing technology (hardware and software) and educational resources to those who need it. Take a peek at our "EAT Initiative" sidebar to see what our philosophy is. We're currently also looking at expanding our support offerings through cooperative research projects with colleges, audio/video podcasts, and many more. Keep your eyes open for future posts and projects coming from us.
One last thing that I would like to mention has to do with environmental responsibility. Boot and I are both heavily involved with programs that deal with electronic scrap (sometimes called E-Scrap), and we would like to hit you with a few things to ponder when sending computers (if you choose to get involved that way) to countries with weak or non-existent environmental protections. This definitely isn't a full list, but it addresses some issues that we want to make sure we tell you about.
1. Please don't send non-working computers, or computers that will soon be non-working to a country where it's going to get thrown in the trash if it dies. Keep in mind that one of the many reasons that we endorse Xubuntu and Puppy Linux here on Tillamook Rage is that both of those distributions extend the usable life of computers. As long as the computer is fuctional, even low end hardware (i.e. 266 MHz Pentium with 128 MB of RAM) will run well with Xubuntu and Puppy Linux (Puppy even runs on very old 486 computers). Even so, there is a limit to how much life you can squeeze out of a computer. Don't send a computer that's so sluggish that you can't bear to use it for 5 minutes. If it's frustrating for you, chances are the person that ends up with it on the other end is going to get frustrated eventually too.
2. Laptops are a good choice for shipping to areas that need computers because they cost less to ship, typically (but not always) use less electricity, and are good for areas with frequent power outages (or unstable line voltage) since they can run on battery.
3. If you are rebuilding or repairing computers to be sent to those who need them, please recycle your unusable parts with a reputable recycling vendor.
4. This is an idea and not something that we've tried yet (and I emphasize yet). If possible, look into getting prepaid shipping labels and packaging sponsored (or just pony up the dough yourself) to send with the computers (or at a later time when it's needed), so that the end users can send them back to you to be disposed of properly if they can't do so themselves. This may seem like a really inefficient and expensive way to handle the problem, but I feel that it would be better than having a computer buried underground leaching lead and mercury into someone's water supply.
Well, I've just scratched the surface of a very deep topic, but maybe it will open some dialog on this topic here on Tillamook Rage. Please feel free to comment on what you think. We're always interested to discuss what we write about with you our reader. Also, the fact that a resource is listed in our Additional Reading section does not necessarily mean that we endorse it, so if you have any experience with any of the organizations or resources listed (good or bad), please let us know.
1. Linux Journal Magazine - Oct 2007 - Pages 16,17 - "A Ticket out of Poverty"
2. Linux Pro Magazine - September 2007 - Pages 92,93 - "Hai Ti! Comics"
3. Linux Journal Magazine - August 2008 - Pages 68-71 - "Linux for the Long Haul"
4. Five Minutes To Midnight - http://www.i2r.org/fmm/
5. Article 13 - http://i2r.org/fmm/a13i/
6. FOSSED - Free and Open Source Software in EDucation - http://fossed.blogspot.com/
7. Geekcorps - http://www.geekcorps.org/
8. TechSoup - http://www.techsoup.org/
9. The Open Source Teaching Project - http://www.opensourceteaching.org/
10. Non-Profit Technology Resources - http://www.ntronline.org/
Their website for open source development is Port25. According to the website it is the "home to the open source community at Microsoft. This represents an open conversation dedicated Linux, Windows and open source interoperability." Two questions on that, why the poor grammar (leaving out "to" in "dedicated Linux") and why the italics on open source community and conversation? It makes me think of air quotes or a little "nudge nudge wink wink."
One other area that makes me uneasy is that Microsoft is now supporting Apache financially. Specifically they now pay the salaries of several of the top people at Apache. Does this sound a lot like buying them? Typically I think of the person paying my salary as my boss, or client. Now since they aren't providing services to Microsoft they wouldn't be clients, and it wasn't given as a donation, it's the paying of salaries. So I'm left wondering what the actual terms were, but it sure seems like Microsoft would be the boss. It seems like they're giving them a little treat to gain Apache's trust, which may just lead to them taking Apache code, making some slight modifications, and selling it. We'll just wait and see.
A couple years back Microsoft made the Open Specification Promise, which guaranteed free use without fear of a list of services and specifications. Without fear may be a bit of a stretch, when I use Windows I have fear of viruses, but I digress. It promises "not to assert any Microsoft Necessary Claims against you for making, using, selling, offering for sale, importing or distributing any implementation to the extent it conforms to a Covered Specification." This includes such highly contested formats as .doc, .xls, .ppt, POP3, AppleTalk, HTTP, LDAP, FTP, PXE, USB 2.0, UPnP, and some TCP/IP extensions. Thank goodness I no longer had to worry about being sued for using .doc! Some of those listed I'm fairly certain aren't theirs, such as PXE (which Intel developed) and AppleTalk, which would seem to be Apple's. I'm no lawyer, so maybe I'm missing something here though.
Here's one more fun tidbit:
"Q: Does this OSP apply to all versions of the standard, including future revisions?
A: The Open Specification Promise applies to all existing versions of the specification(s) designated on the public list posted at http://www.microsoft.com/interop/osp/, unless otherwise noted with respect to a particular specification (see, for example, specific notes related to web services specifications)."
Wait, so if they come out with a new version it's not covered. Even that's not entirely true, as they state "This promise applies to all versions of these specifications existing as of the promise date, October 16, 2006." To confuse things more, "If you file, maintain or voluntarily participate in a patent infringement lawsuit against a Microsoft implementation of such Covered Specification, then this personal promise does not apply with respect to any Covered Implementation of the same Covered Specification made or used by you."
So now let's say developer X uses one of these specifications to develop WidgetY and gets it patented. Then Microsoft steals the code and makes WidgetZ. So developer X files a patent infringement suit against Microsoft, but they have then revoked the Open Specification Promise, and open themselves up to a counter suit of patent infringement. That seem fishy to anyone else?
One parting thought is that they are careful to always say they are committed to OSS, and not FOSS. Some might say "what's the difference?" The word free, in either the beer or speech sense. Open source without freedom to modify it or redistribute it freely is like putting a toy behind glass and not allowing pictures. You see it, but can't enjoy it.
Sam Ramji Background
Open Specification Promise
Microsoft at EclipseCon
Port25 Fighting the Good Fight
As always, be careful when following advice and procedures from this, or any other site, as your system and/or installation could be damaged if a mistake is made. See our disclaimer for details.
Boot from the distro CD you plan to install from, in this case Ubuntu Server, but I also tried this with Xubuntu. Once in the installation environment press Alt-F2. Then press Enter to activate the console. For those who didn't know previously, you can use several other consoles while installing or running Linux for use in recovery or diagnostics. This comes in very handy for snags in the installer, such as this and what I have come to call the "curse of anthy," which is where the installer hangs on installing anthy. Now type
I'm setting up a Xubuntu 7.10 system in this post, but you should be able to adapt what I'm doing to almost any Ubuntu or Debian version/derivative.
As always, be careful when following advice and procedures from this, or any other site, as your system and/or installation could be damaged if a mistake is made. See our disclaimer for details.
Fix The Terminal (If Needed)
The very first thing I do is to make sure that the X terminal works. Xubuntu versions 7.04 and 7.10 sometimes have a problem where launching an X terminal crashes the X server. Since a lot of the instructions for the installations and fixes I perform use the terminal, I usually try to fix that first.
Try to launch a terminal window (Applications > Accessories > Terminal) and if you get kicked back out to the login prompt, follow the instructions outlined in the XFCE Terminal Crash Fix post.
Get On The Network
Since my laptop has a wireless card, I want to get set up to hop onto my home wireless network. I go to Applications > System > Network, and enter my wireless network's information. If you don't have a wireless card don't worry, you can set up your wired connection here too. Most of the time your wired Ethernet connection will work straight out of the box without any modification though.
Fix DNS Sluggishness (If Needed)
The next step for me is to follow the directions in our post DNS Speedup since I'm on DSL and the DNS servers never seem to work right with Xubuntu/Ubuntu. You may not need this step though. The quick and dirty way to see if DNS is slow for you is to open a browser like Firefox and try to navigate to a website. If you see something text like "Looking up..." or "Resolving..." in the status bar for more than 3 seconds or so, you may have the slow DNS problem. Try going to a few other sites to make sure that your problem wasn't just with the first one you went to. If the slowness persists, follow the post to fix it.
Once my Internet connection is running fast, I update my Xubuntu installation using Applications > System > Update Manager. Depending on how your system is set up, you may have to click the Check button to refresh the list of available updates, or you may just be able to click the Install Updates button. One thing to note here is that Xubuntu 7.10 (and now 8.04) have special update icons that will pop up in the task bar when updates are available. You just click on the icon and the Update Manager will pop up. Also, if you want your computer to update without asking you, check out Boot's post on autoupdates.
If you prefer using the terminal to update your Xubuntu/Ubuntu machine, you can open a terminal (Applications > Accessories > Terminal) and type
sudo apt-get upgrade
and then hit Enter. If there is a newer version of your distribution available than the one you're running, you can upgrade to it by typing
sudo apt-get dist-upgrade
to move your system to the newer version. Be careful with this though as sometimes the upgrade between versions can be a little bumpy. I always thoroughly research an upgrade before I try it.
Set Up Firefox
Once the update is done, I move on to Firefox. My first step with Firefox is always to set my homepage to Google. Setting the homepage is a little different in the Linux version of Firefox than in Windows. On the Linux version, you launch the preferences dialog (Edit > Preferences) and then type the web address (www.google.com) in the Home Page: text box. An easier way to do the same thing is to click and drag the icon next to the address over to the Home button. Firefox will then ask you to confirm that you want to make the current page your home page. The next thing I do is install the Flash plugin, since the Internet just isn't the same without Flash. I just go to Adobe's website and click the download link for Adobe Flash Player. The website should detect that you are running Linux and show you the correct set of downloads. At this point, you are asked to select which type of download you want. I always go with .tar.gz for Linux since RPMs and YUMs don't always play nice with Xubuntu in my experience. Now, after you download the .tar.gz file, you can extract it and then run the installer in a terminal window (Applications > Accessories > Terminal). To do this, use the cd command to change to the directory where you downloaded the Flash tar.gz file (probably cd ~/Desktop if you're using Firefox) and type
tar -zxvf install_flash_player_9_linux.tar.gz
where install_flash_player_9_linux.tar.gz would be replaced by the name of the file you downloaded. Hit Enter after typing the line and the file should extract. Once it's extracted, use the cd command to go into the flash directory (something like cd install_flash_player_9_linux) and type
and hit Enter to begin the installation. Just follow the instructions and the plugin will install (the defaults should work fine). When the installer asks if you want to Perform another installation?, just type n and hit Enter. That should take care of it, but if it doesn't, you can manually copy the plugin to the ~/.mozilla/plugins directory. If any of you have this problem, let us know in the comments section and we'll help you out.
Another helpful plugin for Firefox is the mplayer plugin. This plugin will allow you to view videos and such inside of the browser. To install the mplayer plugin, open the Add/Remove Applications dialog (Applications > System > Add/Remove...) and type mplayer in the Search: field. In the list that comes up you'll see an entry similar to MPlayer Plugin for Mozilla which is the one you want. Just put a checkmark beside it and click the Apply Changes button.
To install the mplayer plugin from the terminal (Applications > Accessories > Terminal) type
sudo apt-get install mozilla-mplayer
Now you should be set to view Flash content and videos inside Firefox.
Yakuake (Oh So Good...)
I'm a terminal junkie, so I don't waste much time before installing my favorite terminal emulator - Yakuake. To install it, I just follow Boot's Yakuake post. For those of you who don't know, Yakuake is a terminal emulator that pops down from the top (by default) of your screen at the press of a key. People who have played the Quake series of games may be familiar with this type of terminal.
I also want Yakuake to start automatically when Xubuntu boots up, so I add it to the autostarted applications by adding an entry for the command yakuake in the Autostarted Applications dialog (Applications > Settings > Autostarted Applications).
If you want to set up applications to autostart from the terminal instead of the GUI, check out Boot's post on autostarting applications the hard-core way.
Next, I would recommend installing Java. Many programs out there will require it, and so you might as well get it over with. To install Java (I usually go with version 6 unless I have a really good reason not to), go to the Add/Remove Software dialog (Applications > System > Add/Remove...) and type java in the search box. Make sure that you have All available applications selected from the Show: pull-down menu, or Java won't show up. Scroll down and put a checkmark next to Sun Java 6 Web Start (it may also be called Sun Java 6 Runtime), click the Apply Changes button, and then click the Apply button in the dialog box that comes up. You may also see a dialog box asking you to enable the use of restricted software. If you're going to be doing any Java development or if you want to install OpenOffice, you will want to install the Java Development Kit at this point too. To do this, open a terminal (Applications > Accessories > Terminal) and type
sudo apt-get install sun-java6-jdk
and hit Enter. I use the terminal to install it instead of the Add/Remove Software dialog because I have trouble finding the JDK in that dialog sometimes.
I always like to get my multimedia apps squared away too so that I can listen to or view some content while I finish up my system. See Boot's post entitled Linux multimedia roundup to see which applications I normally install. I also take this opportunity to set my computer up to play encrypted DVDs (if the computer has a DVD drive). To do this, take a look at my post on adding encrypted DVD support here.
Once I have all my multimedia applications installed, I follow Boot's instructions in his autoplay post to make sure that any media I put in my computer is opened automagically by the correct program.
Office and Productivity
I can't go very long without doing a word processing document or spreadsheet, so I always set up some desktop publishing apps when I'm doing a new system. I follow some of the instructions in my post on desktop publishing. If you follow the instructions in that post, you'll be all set up to handle almost any type of document creation task that life throws at you. Note that I don't install all of the applications in the publishing post, just the ones I need for my everyday tasks. My hope is that the post will give you the information you need to choose the right applications for your situation.
If you want to make sure you have the tools you need to handle digital images, check out my post Digital Imaging In Linux. That post will get you set up to acquire digital images from your camera or scanner, and to edit them in Gimp.
I do quite a bit of programming, so I like to install and use Eclipse. Make sure that you have Java installed though, because Eclipse won't run without it. You can download Eclipse here. There's no installation routine with Eclipse except to extract it and then put it in its final resting place. I like to put it in the /opt directory and then put a symbolic link to the eclipse binary file in the /usr/bin directory. I do this so that I only have to type eclipse in a terminal window to launch the program. Anything in (or referenced in) the /bin or /usr/bin directories will launch automatically if you type their names. You don't need to type their paths. To create the symbolic link (assuming that you put the eclipse directory in /opt), type the following line, hitting Enter afterwards.
sudo ln -s /opt/eclipse/eclipse /usr/bin/eclipse
Make sure that you have installed the support libraries for whatever language you're going to be programming in and make Eclipse aware of them. You'll need to see the Eclipse documentation for your specific situation.
There are also various other programs that I install for my own geeky reasons, but those are the steps that I think might interest you - the reader. I hope that gives you an idea of how a lot of our posts can be pulled together to tweak your system. If you have any questions on the way I set my computer up, feel free to leave them in the comments section of this post or email me at eonsproject (at) gmail.com.
As anyone familiar with Linux knows it's similar to a bag of jelly beans, there are a lot of flavors and to find the one you like best you need to do some serious taste testing. Any of our regular readers may have guessed that my top pick currently is Xubuntu. It is now in version 8.04, and for more information you can read our other review on the current release. If you like Xubuntu you can try the other members of the Ubuntu family: Ubuntu, Kubuntu, Gobuntu, and Edubuntu. They're all fairly similar, and all worth trying, but Xubuntu uses XFCE and is the lightest and most versitale of them.
JeremyW: SUSE (openSUSE) was my first true Linux love before I met Xubuntu. Don't get me wrong, SUSE is still great, but now-a-days I'm a big fan of lean and mean, yet still powerful distros. Just before I started writing this, I got an email that openSUSE 11.0 is out now, but 10.3 is still the download that you are pointed to on the openSUSE page. I think this is done to give early access to people who support the openSUSE project by paying for their CDs. openSUSE comes in two main flavors now, one that uses Gnome, and the other KDE. If I'm going to run a resource hungry distro, I prefer to run KDE, but either Gnome or KDE will work great for you. openSUSE is really easy to set up and use, and has great hardware support and auto-detection. I would suggest getting a Live CD of one of the two versions to try it first, but I think you'll be pleased. KDE 4 (which is included with 11.0) tilts the meter on the eye candy scale too with the addition of the Oxygen icon set among other things. I'm also a big fan of the way that the applications menu has been done in the later 3.5.x versions and in 4.x. The repositories for openSUSE are very complete, so you'll find most of what you need through YaST2, SUSE's package manager. All this, and the technology of Novell's pay-for offerings trickling down to this open version, who could ask for anything more (other than Novell not having a partnership with Microsoft)? So, if you have a 1.4 GHz Pentium 4 (or equivalent) or higher, 256 MB of RAM (512 recommended), and some time, I would recommend giving openSUSE 10.3 (or 11.0 if you wait a few weeks) a try.
Fedora 9 is a free Red Hat version released May 13, 2008; which should mean excellent tech support and community support. Typically I would say it would be an excellent choice. I'm not sure if it was just my hardware, but I found it to be a nightmare. I set up all these distros on separate partitions on my 3.2GHz dual core P4 with 2GB DDR and an ATI Radeon 9800 Pro, and all ran blazingly fast. Fedora 9 however refused to configure Xorg correctly, and was the only one to have problems. Once I got that sorted out, I found out that when Fedora installed GRUB to my MBR it refused to let me boot any OS but it and I couldn't install over it from any other OS for some reason. I had to erase my MBR and reinstall from a Xubuntu CD. I recommend that if you want to try Fedora 9, don't do so if you plan to have any other OS installed. They claim Fedora 9 is the first non-destructive USB installable distro (Puppy Linux has been USB installable for years, though they may be splitting hairs on definitions here), the first major distro with KDE 4 by default (which isn't true because Kubuntu-KDE4 came out in April), and state "Fedora is the first to deliver, and while we're happy people reuse the open source goodness we provide, we want people to know who's behind it." While Fedora is an OK distro, their attitude and major flaws prevent me from recommending them for general use, and I expect to receive hatemail for that.
Gentoo, barely a step above Linux From Scratch, in terms of both control and difficulty of setup. If you want to learn all the under the hood basics and have full control of your OS I recommend starting with LFS and using Gentoo only if you're a masochist. I realize, I'm going to get hate mail for that one, but for most uses Gentoo is overly complicated. While not easy to setup, these are both extremely powerful distros and can be tweaked to exactly the way you want them, and I guarantee that after using either one you will have a true appreciation for a prebuilt operating system and all it can do.
Live distributions run the full gamut from bloated behemoths to super simplistic and speedy. For general use I prefer Puppy Linux or one of its derivatives. They just recently released Version 4.0 "Dingo." If you need something even smaller or more specialized you can try one of their community developed Puplets, which are Puppy derivatives. Puppy itself is only 80MB, making it rival another small live distribution I will talk about in a bit, DSL. It can be booted from a CD or USB drive but can also be installed alongside another OS. In spite of its size it comes with productivity software, multimedia software, and a very easy to use interface. I discovered it last summer and fell in love with it, it's extremely easy to customize and remaster and I've used it mainly for recovering broken systems and wiping hard drives. It uses the JWM window manager and has a specialized package manager called PupGet. Most of the programs you will want are right on the desktop, where they're easy to find. You're running in the root environment, so anything you do in the terminal will have full root permissions, no messing with sudo. It installs customized packages saved as .pup files. JeremyW has some experience making these as Puppy was the base for the Wireless Thin Clients post.
The next tiny live distribution I've had some luck with is Dang Small Linux (The PG name anyway), or DSL. DSL I like for its size, but not its appearance. It is 50MB and fits nicely on a miniCD. It is currently in version 4.2.5, which came out in January of 2008. You can choose to use JWM or the very tiny FluxBox window managers. Now FluxBox may not be pretty, but it does run on a 486 better than anything else I've seen. They also provide virtual machine images and an embedded version, meant to run within Windows, which gives it a niche market. Much like Puppy it comes with some very basic text editors, spreadsheet software, browsers, and other useful software.
If you want a live distribution with all the horsepower of an installed system then you should give Knoppix a try. It will remind you a lot of the Desktop versions of Ubuntu and its derivatives, and is also a Debian relative. Unlike the previous 2 distros I've talked about here Knoppix uses KDE as its window manager. It comes with OpenOffice.org, which may cause you to scratch your head. You may ask, "How can an OS small enough to fit on a CD hold such a large software package?" It's simple, Knoppix uses a boot loader that decompresses an image which is loaded into RAM, an image that can be up to 2GB for a CD and 8GB for a DVD.
The only distro I've come across that is specifically designed for education is Edubuntu. You Maxwell Smarts out there may have figured out that Edubuntu is a member of the Ubuntu family, and with 8.04 that's become even more obvious. Edubuntu now has to be coinstalled with Ubuntu to function. After installing Ubuntu you can install Edubuntu which adds the educational packages and makes some GUI tweaks. I did some testing with my parents, both teachers, and got their reactions. My mom, a first grade teacher, said the software was great for them and would work great. My dad, a high school chemistry teacher, didn't like most of the science software provided in the repository, but there is a lot of software out there to try. I would say Edubuntu is mainly usable in an Elementary School setting, but I still hesitate to recommend it because it uses Gnome and has higher hardware requirements. The software available with Edubuntu is all in the Canonical repository, so it can be installed in Xubuntu which will run much quicker and on older hardware.
The first Linux server distro I want to cover is CentOS. Many of you may not have heard of this, but I really like it, especially for hardware support and setup. The fileserver at the facility I contract for recently succumbed to the capacitor flaw, and so I had to make a quick change. JeremyW had originally set the server up with CentOS and it worked very nicely. I took the RAID controller and hard drives and put them in another computer, and upon startup a configuration utility ran that removed the old hardware profiles and reconfigured the new ones, so with no trouble for me beyond a few keystrokes the server was up and running again. It is based on Red Hat Enterprise Linux, and is currently in version 5.1. RHEL is a commercial product and on the cutting edge, but for most small businesses and home setups CentOS is a great free (as in beer and speech) alternative.
For a somewhat more secure server, because it lacks a graphical X server, you can try Ubuntu Server. It comes with the same great support and community as the rest of the Ubuntu family. If you're familiar with a normal Ubuntu text-based installer there's really nothing new to explain here, and if you're familiar with using the terminal you will have no trouble with Ubuntu Server. I haven't had a lot of time to do much with this, but I will have a separate post on Ubuntu Server in the future.
I've been working on cluster computing for a few years now, and just in the past year found what I consider the easiest HPC OS distro to set up and use. PelicanHPC, previously the Parallel Knoppix project, is designed to run on a single computer acting as a master server that hands out boot images to the nodes, which are required to have PXE enabled network cards. For more information on that see our upcoming Cluster Computing Post (I'll add the link when it's officially up, watch for the update). The nodes for the cluster need at least 128MB RAM, which may require updating some older computers, and really need only the motherboard (with processor and RAM of course), a PXE enabled NIC, and a power source. Simply start the server computer with the PelicanHPC CD and follow the directions in their cluster setup wizard.
Hopefully you have found at least one new distro to try, and if you have another one or more to add please comment and give us all some more information.
Linux From Scratch
Red Hat Enterprise Linux
Linux Journal: Almost 9 Distros in Almost 6 Minutes
If you need to set up the server, check out Part 1 of this series.
This procedure was developed using Puppy Linux 3.01 Seamonkey which is available at the Puppy Linux website. It may also work with other versions of Puppy, but 3.01 is the only one that I've tried so far. The one version that we know this won't work with is Puppy 4.0. You can install FreeNX manually and it will function properly, but the .pup installers won't run correctly. We'll update this post as soon as we get a chance to correct the problem.
We are currently looking for hosting for the files in this post (the installers referenced below are stuck on YouSendIt for now), so if you have an interest in hosting these files for us please let us know. We would appreciate the help.
As always, please be careful when following procedures from this site, or any other, as a mistake can leave you with a broken system. See our disclaimer for full details.
Boot off of the Puppy Linux CD, choose your keyboard layout, and hit Enter to select Xorg on the Puppy Video Wizard screen. You can try Xvesa later if Xorg gives you problems. The next screen allows you to choose your video settings. The default will probably work fine, but you should press the Right Arrow key once to select TEST and hit Enter. You will probably see another screen asking you to verify that you have a PS/2 mouse (if you have one), and you can hit Enter to select TEXT_X_NOW. If the video test completes successfully, you're all set. To exit the test screen, press the CTRL, ALT, and BACKSPACE keys at once. Once the test completes, you'll be back at the video settings screen, and so you can just hit Enter to select FINISHED. There will be one final screen asking you if you are done. Hit Enter to select DONE. If you have video problems with Puppy at any time during this process, you can reboot from the CD and try different settings on these screens. Be careful not to get to crazy with the video settings though. If the configuration screen tells you that your monitor does not support certain settings, you might want to avoid them. Some settings can damage your CRT monitor or LCD screen. You should be able to look up the model number of you video card and monitor to find their maximum resolution and refresh rate if in doubt.
Once you get to the desktop, start the Puppy installer (Menu > Setup > Puppy universal installer). Note that following my instructions will wipe all data from the client computer's hard drive, so make sure you either back up the data and/or do a frugal install if there's data you don't want to lose.
Once the installer comes up you just follow the instructions to install Puppy. If you need an example, you can follow along with what I did below.
Since my client had a regular IDE hard drive in my test computer, I selected IDE (ATA) internal hard drive from the list of media to install to and clicked OK. The next dialog that came up was just telling me what drive Puppy was going to be installed to so I clicked OK again. The next dialog just showed me what Puppy found out about the drive I was installing to, so I clicked the button beside Install Puppy to hda1: since there was only one drive in my client. Once you click that button you will see another dialog asking you if it's ok to go ahead with the installation on the selected drive. I just clicked the OK button here too. The next dialog box asks you whether you want to do a Frugal or Full installation. I chose Full so that the installation would use the entire hard drive. At this point if you've done a Puppy install on the hard drive before, a dialog will come up asking you whether you want to UPGRADE or WIPE the installation. I chose WIPE (since I had another failed installation on the drive).
Once the installation is finished, you will see a dialog box asking how you want Puppy to boot up. I had the choice of booting from a USB stick or installing GRUB on the hard drive. I wanted everything to be enclosed on the client's hard drive so I chose Install GRUB. The next dialog tells you that the 'grubconfig' script is ready to run - click the OK button. The next dialog asks you if you want to do a simple or expert GRUB install. I'm a simple person so that's what I selected, and then hit the OK button. I clicked the OK button on the next 4 dialogs which is what I suggest you do unless you have a reason to do otherwise. One of the things you might want to change is where GRUB will install to. I usually go with either the Root or MBR option since they are the cleanest in my opinion. Eventually, you will see the GRUB INSTALL SUCCESS message, and you can just click OK. After that you will see a dialog asking you if you want to reinstall GRUB. If GRUB didn't fail you can just hit No to exit the installation.
Now you're ready to shut down and restart the computer. To shut down, go to (Menu > Shutdown > Power-off computer). Make sure that you take the Puppy CD out of the drive and select DO NOT SAVE on the screen that comes up as puppy is shutting down. That screen is just asking you if you want to save the settings from your current session. You don't need to do that.
The first thing that you will see when you reboot is the GRUB menu. Just hit the Enter key to boot the default option. When Puppy is starting up for the first time, you will be asked again to select your keyboard layout, "X server", and video settings. Follow the instructions above to see what to do.
Changing the GRUB Boot Delay
Once Puppy is booted up, go to the Puppy desktop and click the home icon which should bring up a window showing the files in your home directory (Figure 1). Hit the up arrow (boxed in red in Figure 1) until you see boot as one of the directories in the window. Click on the boot folder icon, then on grub, and then on menu.lst. The menu.lst file will open in Geany and you will be able to edit it. Be very careful to double and triple check what you do from here on out since we'll be editing configuration files that can cause your installation to malfunction.
You only need to read this section if you have a wireless card in your fat client that you're going to use to connect to the server. For my test setup I was using a CNet CWP-854 wireless card with the RT 2561 chipset. Fortunately for me, Puppy recognizes this card right out of the box, so I didn't have to do anything except configure it. You'll find that Puppy recognizes a wide range of wireless cards, and I noticed that version 3.01 did a better job than previous versions of Puppy Linux.
First, we need to launch the Network Wizard (Menu > Setup > Network Wizard). When the Puppy Network Wizard dialog window comes up, click the button for your wireless card. It will probably say something like wlan0. See Figure 3 to get an idea of what you'll be looking at.
Wireless button will open a new dialog window asking you to enter your wireless network information (Figure 5). You will need to get this information from your network administrator. Click the button matching the type of network you have - Open, WEP, WPA/TKIP, or WPA2 and enter the appropriate settings. There are too many variations for me to give any detailed instructions here. If you have troubles, post a comment with your question(s) and we'll do our best to help you out.
Auto DHCP button, you will have to wait just a little bit and then you should see a dialog box saying NETWORK CONFIGURATION OF wlan0 SUCESSFUL! (Figure 7) which will present you with the option to save the configuration for the next boot. I would suggest clicking Yes here so that your wireless card will start working automagically the next time you boot up.
If you are running older versions of Puppy (i.e. 2.x), you will need to install xauth before you can get FreeNX running. If you're running a version of Puppy with xauth already installed (Puppy 3.x or greater), skip to the next section. You can download the DotPup installer that we've made here instead of downloading the version in the next section and it will take care of the xauth installation for you. XAuth will install in the /usr/X11R6/bin directory where the FreeNX client binary will be able to find it. If you're not sure if your version of Puppy has xauth installed, you can manually check the /usr/X11R6/bin directory or you can open a console (terminal) and type
find / -iname xauth
Now you're ready to download and install the FreeNX DotPup file that we here at Tillamook Rage have created for you. Go here, and click the DOWNLOAD NOW button for the FreeNX_Client_1_5.pup file. If your client is not on the Internet, you will have to burn the FreeNX client installation file to a CD, or put it on a flash drive to move it over. We have created a post called Working With Drives And Files in Puppy Linux which walks you through dealing with copying the installer file to and from external drives and also installing the FreeNX DotPup.
Configuring the FreeNX Client
Now we're going to set the FreeNX Client up to connect to the server. If you haven't run the FreeNX Client yet, go ahead and click on the nxclient executable file that's in the /usr/NX/bin directory to launch the application. You will see the Welcome dialog box (Figure 8) - go ahead and click Next.
Session dialog (Figure 9) that allows you to select a name for your session, along with the session settings. You can pick any name for the session (I used TestName), but I would suggest keeping it relatively short.
Host, type the IP address of the LTSP server that you set up from Part 1. I used 192.168.0.1 as you can see in Figure 9. The slider towards the bottom sets how much network bandwidth is available to your client. It may take some experimentation to get this setting right for your network conditions. Wireless networks may need special tweaking to get them set just right. If you have several computers on your wireless or dialup connections and you start running out of bandwidth, try moving this slider closer to Modem to see if that fixes the problem.
Click Next and you will end up at the Desktop settings dialog (Figure 10). Pull down the list box that has KDE in it and select Custom.
Finish button on the next screen and you will see the login dialog in Figure 12. If you get an error dialog about not being able to create an icon on the desktop, don't worry about it.
It takes FreeNX a while to get the remote session up and going, but eventually you should see a desktop session from your LTSP server running on your Puppy Linux "fat-client". I tested the setup for this post using a computer with a Celeron 466 over wireless, and it took about 30 to 45 seconds to connect and display a desktop.
We're now ready to set Puppy up to look and act like a LTSP client. If you just wanted to run FreeNX without using this client as a fat-client, you can skip this section. I'm just going to show you how to tidy things up so that your users only see the LTSP desktop.
The first thing that we want to do is to set the FreeNX client up to start automatically when Puppy starts. To do this click on the console icon on the desktop, and when the console application comes up type
Next, we'll set the FreeNX client up to be full screen. Go back to the console window, or bring a new one up by clicking on the console icon on the desktop, and then type the following two lines, each followed by the Enter key.
The next thing we want to do is auto hide the task bar so that it's not taking up screen real estate that's meant for FreeNX. To do this, open the JWM configuration dialog (Menu > Desktop > JWM configuration or Menu > Control Panel > JWM configuration in Puppy 2.x) and click the OK button on the informational dialog that comes up. Click the button beside Taskbar to launch the Taskbar configuration dialog. Click the button beside Tray Autohide Option, click the option button for ON:Tray Autohide on, and then click the OK button (Figure 15). You might get a dialog box telling you that the tray autohide option is now on. You can just click OK. You should now be back at the Configuration Options dialog box, and you can click OK and and then click the Yes button beside Restart JWM now? on the JWM Configuration Manager dialog so that the changes will take effect.
Exit button on the JWM Configuration Manager dialog box and restart the computer to make sure that all of your changes take effect. Once the computer has rebooted, you should see the FreeNX client automatically launch, there should not be any title bar showing on it's window, and there should be no taskbar unless you move your mouse cursor over it.
You're now all set to start using the client in your lab. Wash, rinse, and repeat for as many clients as you have.
As with any server, having a log file to look at when things go awry is a must. By default, logging is disabled on the FreeNX server so I'll go through how to get it turned on. If you're getting authentication errors, or if you just plain can't get the clients to connect to the server, try this out and then take a spin through the log file(s).
The first thing you will want to do is to open the nxserver node configuration file, turn on logging, and set the logging level. To do this, open a terminal window (Applications > Accessories > Terminal) and type
sudo mousepad /etc/nxserver/node.conf
Uncomment the NX_LOG_LEVEL line by removing the # from in front of it, and change the 0 to the logging level you want. You'll notice that just above the NX_LOG_LEVEL line there are several commented lines explaining what each level does. I usually use level 4 which gives me the information that I need. The line should now read
assuming that you chose to use log level 4 like me. Also, uncomment the line that reads
again by removing the #. This time you don't need to change it, just remember where the log file is (/var/log/nxserver.log). Now, restart your computer - you could just restart the FreeNX server, but I like to be thorough.
When a user tries to connect to the server, the general information about their login attempt is recorded in the nxserver.log file, and some information specific to their own session may be stored under the ~/.nx directory. There are so many things to look for in the log file that I can't cover them all here. If you have trouble, post your log file information to the comments at the end of this post and we'll try to help. One thing that may help you is to open a terminal (Applications > Accessories > Terminal) and type
sudo tail -f /var/log/nxserver.log
Don't forget to disable (or reduce) the NX_LOG_LEVEL setting again once you get your server running or you'll just be wasting system resources. If you want, you can turn the logging level down to 1 so that you only see errors in the log files. I wouldn't leave it much higher than that since you don't usually need all the information (like the client-server communication) after you have your server all debugged.
I hope that this series has been and will be helpful to anyone trying to set up a computer lab using low bandwidth network equipment. Let us know how things go while you are trying this setup. We are always grateful for comments and questions on our posts.
Puppy Linux Homepage
Addtional Reading Section of Part 1
In Part 1 we'll take a look at how to set up the server, and in Part 2 we'll do the client computer(s).
This procedure was originally developed using the Xubuntu 7.04 Alternate Install CD, and updated using the Xubuntu 9.10 Alternate Install CD. You should be able to use other versions of Ubuntu and Xubuntu to do this procedure, but your mileage may vary. If you are able to get this procedure to work with another version, please post your findings in the comments section for the rest of us.
As always, be careful when following advice and procedures from this site or any other, as you can do serious damage to your Linux system if a mistake is made. See our disclaimer for details.
The standard LTSP server-client model works well over wired Ethernet connections, but there are some situations where it just can't cope. Wireless clients usually don't have the ability to boot from the network, and if you want people to connect to your LTSP server over dial-up, standard LTSP is too slow.
One thing to note before we get too far is that setting up your LTSP lab this way will greatly increase the load on your server. The X sessions (the graphical session that displays the desktop) for each of the clients will be run on the server itself, instead of locally on each client. That means that the server has to have enough horsepower to handle as many graphical X sessions as you have clients. Also, keep in mind that running anything computationally intensive (like programs that do a lot of calculations) will add to the stress on the server. I can't really give you a hard and fast rule on how much horsepower you need, but if you've got over 20 to 30 clients, you're probably going to need a high end single core processor or a dual core processor computer with plenty of RAM (at least 1 gigabyte). If you have a lower end server already though, I would suggest you try this procedure out before you go and get another one. You might be able to get away with it and it's not too hard to replace that server later if you need to.
The first thing that you want to do is to follow the procedure outlined in our post LTSP Server Setup The (Relatively) Easy Way. Once you have finished that procedure, you should have a functioning LTSP server that is ready to have the FreeNX server software (more on that later) installed on it. Be sure to check out the troubleshooting section in that post and also the various other updates that we've written in the Additional Reading section below.
The next thing I would suggest is updating your new server installation. To do this, make sure you have a connection to the Internet, Open the Update Manager (Applications > System > Update Manager), and click the Install Updates button. It will probably ask you to enter your administrative password. It will take awhile for all the updates to be downloaded and installed, but once the computer is done updating, you can move to the next step.
Once you have your LTSP server humming along the way you want it, make sure it has a connection to the Internet and install FreeNX. Lucky for us there's now a set of packages available from the Ubuntu community Ubuntu FreeNX Team PPA (Personal Package Archive). The instructions for installing FreeNX from the PPA are different depending on whether you're running Xubuntu 9.10, or an older version. The next section outlines the instructions for 9.10, you can skip over them to the next section if you're running an older version.
Install FreeNX In Xubuntu 9.10
You need to first open a terminal window if you don't have one open already (Applications > Accessories > Terminal). Once the terminal window is open, type the following and hit Enter after typing (or copying) each line.
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:freenx-team
These lines make sure that you have the command to install the PPA repository installed (add-apt-repository), and then adds the repository.
Once that has finished, we need to update the local cache so that our system knows what packages have been added from the PPA repository.
sudo apt-get update
And finally we'll install the FreeNX package and run a setup script.
sudo aptitude install freenx
sudo /usr/lib/nx/nxsetup --install
You may be asked to hit Y multiple times to finish the installation.
Install FreeNX In A Previous Xubuntu Version
If you're running a version of Xubuntu earlier than 9.10, you will need to follow the instructions on the FreeNX team's Ubuntu documentation page. Look for the Installing the FreeNX server on older Ubuntu Versions section.
Beginning The FreeNX/LTSP Integration
After the FreeNX server is finished installing, you can download the Symbiont Workstation Manager files for LTSP/FreeNX integration. You should be able to download them directly at http://downloads.sourceforge.net/symbiont/NX1.5.0-141_LTSP_0.8.tgz?modtime=1149606780&big_mirror=0 , but since broken or incorrect links are always a danger, I'll give you a less direct and more sure-fire way to get to it. Go to www.sourceforge.net and search symbiont workstation manager under the Software category. The main hit should be the one that you want, so click on it. Click on their Downloads tab and look at the Miscellaneous downloads category. To get the LTSP/FreeNX downloads to show up you'll probably have to click the link View older releases from the Miscellaneous package. Once the full list pops up, click on the NX_LTSP link, and then click the NX1.5.0-141_LTSP_0.8.tgz link. That should get you what you need.
Once you have the file downloaded, you need to extract it. You can do this by double clicking on the file in Thunar (the file manager in XFCE) and clicking the Extract button on the window that comes up. If you extract the the file you downloaded this way, you can now skip down to "Installing The FreeNX Files."
If you want to extract the file from the command line, you can go back to the terminal and type
and hit Enter. You should replace the ~/Desktop portion above with the directory where you downloaded the NX_LTSP file to. If you're using Firefox (which I would guess you probably are), the default is almost always to the Desktop directory. The ~ above is the same thing as your home directory. So, instead of typing /home/user/Desktop I would type ~/Desktop .
Anyway, now that you're in the directory where the NX_LTSP file is, type
tar -zxvf NX1.5.0-141_LTSP_0.8.tgz
and hit the Enter key.
Installing The FreeNX Files
Once the file is done extracting you need to copy the files to the LTSP server directory, being careful to preserve all the files and their properties (including symbolic links). You can do this graphically through Thunar, but I prefer using the terminal for this. So, follow me back to your trusty X term (that is already cd'd to the desktop with cd ~/Desktop) and type
sudo cp -a i386/ /opt/ltsp/
Now that all of the new files are copied over, we need to copy the authentication key for the FreeNX server over so that it will be used by the LTSP clients. Once you get more familiar with FreeNX, you'll want to regenerate this key, since using the default key is a security concern, but that's for after you have the server running. To copy the key, switch back to the terminal window and type (copying this line would be easier)
sudo cp /var/lib/nxserver/home/.ssh/client.id_dsa.key /opt/ltsp/i386/usr/NX/share/client.id_dsa.key.session
Now we need to make the LTSP server software aware of the FreeNX server, so type the following line and hit Enter.
sudo mousepad /opt/ltsp/i386/etc/lts.conf
You can replace mousepad in the line above with the command for your favorite plain text editor. Once the file is open, add the line
Now the last thing you have to do is type the following line and hit Enter.
See the troubleshooting section at the end of Part 2.
Well, there it is in all its geeky glory. I hope that gets you started off in the right direction. Please keep us up to date, since as I said in the introduction, this procedure is a work in progress and is still being tested out in the wild. Please don't try these instructions on a server that you can't afford to kill. Start out with an isolated test setup to see if this is going to work for your situation, and remember to keep us up to date on what you find.
Linux Terminal Server Project Homepage
Finding The LTSP Option With Xubuntu 8.04
Build chroot Fails During LTSP Server Install
An LTSP Update
LTSP Client Shuts Down Server - The Fix
LTSP Server Setup - The (Relatively) Easy Way
Ubuntu Community FreeNX Installation