skippy

hello, dammit.

Ubuntu 12.10 on a PandaBoard

I learned recently that the neighborhood high school will be participating in the US FIRST robotics competition. I've known about FIRST for a while, as one of the profs with whom I worked at OSU was a mentor for the organization, and had taken several teams to various competitions over the years. It didn't take me too long to decide to get involved.

The 2013 competition is called "Ultimate Ascent." The primary objective for the robots is to throw frisbees into various targets, thereby scoring points. At the end of the competition, robots can try to climb a pyramid, scoring more points the higher off the ground they can get. This last bit changes the robot design quite a bit: if a robot only has to throw frisbees, its design will necessarily be different than a robot that can climb.

There are about two dozen students on the team, with varying levels of interest and ability. The core team of active participants is about a dozen and these are divided into various working groups, each tackling a different aspect of the robot design. The team is planning to use a PandaBoard and one (or more) Playstation EyeToy cameras to detect the various goals. With my history of Linux, it was natural that I be assigned to the student working on this aspect of the robot.

Freddy, the student with whom I'm working, has some passing experience with Ubuntu. His laptop is dual-booting Windows and Ubuntu, and he'd made decent progress getting Ubuntu 11.04 installed onto an SD card for the PandaBoard. He had followed one set of instructions, but ran into problems configuring the OMAP4 add-ons. Watching over his shoulder, I asked him to start from the beginning, so that I could double check his work. He politely obliged, and we ended up at the same place: unable to install the OMAP4 add-ons. We tried yet again, this time using Ubuntu 12.04, with no more success.

"Well," I thought, "there's more than one way to skin a cat." So using Firefox I tired to browse the contents of the TI OMAP PPA to see if we could manually download the necessary files. This was met with an unhelpful message from the school's proxy informing me that the site I was trying to access was blocked. This proxy would end up causing all manner of trouble for us.

We had basically four options available to us:

  1. try to use my phone as a mobile hotspot to bypass the proxy
  2. try to install Ubuntu 12.10, which purported to not need the extra components from the PPA
  3. try to install Fedora
  4. take the board home to work on it without the interference of the proxy

Option #4 was clearly the option of last resort, as too many things could go wrong with the PandaBoard outside of the school. Option #3 was undesirable because Freddy was unfamiliar with Fedora and XFCE. We tried Option #1, but abandoned it when we didn't achieve immediate success. That left us with Option #2: install Ubuntu 12.10.

We now faced a new hurdle: there is no precompiled Ubuntu 12.10 image available to flash onto an SD card. Instead, we had to use the same install process as used by traditional desktops. This further meant that we couldn't easily install to the SD card that contained the boot image. Unfortunately, the PandaBoard only boots from the SD card, and not from USB. So we needed to flash the SD card with the install image, boot from that, and install to a USB stick.

All of that worked, but was exceedingly slow. Whether we used a slow USB stick, or the USB bus itself was slow, or some other factor was to blame, I don't know. But we realized that it was not going to be acceptable. The solution, thankfully, was extremely simple.

The PandaBoard uses a small 100MB FAT32 filesystem for its boot loader. The root image to load was defined in a simple text file on this partition. I simply repartitioned the SD card, leaving the DOS partition intact but creating two new partitions: one for an ext4 filesystem and one for a Linux swap partition. Using Freddy's laptop, we then copied the contents of the USB stick over to the new partition on the SD card. I edited /etc/fstab on the SD card's partition, updated the DOS partition's text file to point to the new partition, and that was it. The system booted Ubuntu 12.10 from the SD card without a hitch, and ran noticeably faster as well.

All of the above took several hours to complete, due to slow download speeds, lots of false starts, and a trip back home to fetch a USB stick of sufficient capacity. We decided to stop there, and would pick up the rest of the Ubuntu configuration the next time we met.

My biggest challenge through all of this was: how much do I let Freddy figure out for himself, and how much do I just do on my own to get it done. Clearly horsing around with Linux installation, partitions, and filesystems is not helpful to the overall construction of the robot; nor does knowing about any of this stuff help them win the competition. But at the same time, Freddy is clearly interested in the underlying technology and would benefit from a hands-on Linux education.

I decided to do most of the work, and explain as best I could what I was doing. Without a functional PandaBoard, much of the remainder of the robot construction was stalled, and we'd already taken a lot more time than I thought we'd need to get past our initial hurdles. Freddy was extremely patient and good humored about the whole thing. I didn't want to distract from the larger goal (ie: a working robot) with a bunch of yak shaving. Hopefully now that we have a functional Ubuntu installation, I can spend a little more time with Freddy on some of the more important Linux-based activities, and provide a more useful roadmap to Linux expertise for him.

Our next challenge will be to get the camera(s) connected and working, and to find how to identify the frisbee targets.

Distributions

I've been using GNU/Linux as my primary operating system for many years. At my last job I used Microsoft Windows as my desktop operating system for about the first year, but was able to gradually convince my boss that I'd be more productive using GNU/Linux. When I started at OSU, I used Microsoft Windows for the first couple of months, because that's what I was given, before installing GNU/Linux onto my machine. On the whole, I do think I'm more productive using GNU/Linux as my desktop client: it's been super reliable for me, and largely problem free through all the upgrades I've performed.

When I first started using Linux, way back in the mid-1990s, I used Red Hat 5.2. Almost everyone I knew used Red Hat, except for a few show-offs who used Slackware. I dutifully upgraded to 6.0, and then 6.2, and then 7.0 and 8.0. Somewhere right around there, Red Hat decided to focus exclusively on Red Hat Enterprise Linux. Like many disgruntled users, I decided that Red Hat was no longer the distribution for me, and I switched almost overnight to Debian. It was a rocky transition -- at the time the Debian way and the Red Hat way of doing the same tasks were very different, and I wasn't exactly an expert user. I managed to muddle through, though, and found myself liking Debian an awful lot. I stuck with Debian until I found Ubuntu.

I've been using Ubuntu on my computers exclusively ever since. I really like it. It offers all that I've grown to love from Debian with a more aggressive release cycle, so that I get more recent releases of software more often. I haven't had any real complaints about Ubuntu in all the time that I've been using it.

Until today.

At work we have a Microsoft Windows Active Directory. It is possible to join GNU/Linux clients to an Active Directory infrastructure, so that a user can use a single account to log onto both Windows and Linux client machines. This is important at work because we plan to dedicate one of our computing labs to Linux computers, but we don't want to unduly increase our administrative overhead. Using the Active Directory allows us to have a single user account for all our students, but still allow them to use the platform of their choice.

Until recently, my Linux workstation had been a standalone system to which I logged on using a local user account. After upgrading my workstation to Ubuntu 8.04, I joined it to the Active Directory so that I could log onto it using my domain account. In many ways, I think it's important that the IT support staff "walk the walk" by using the services they provide. This is an important sentiment that will surface again later in this post. Joining my machine to the domain wasn't terribly difficult, and I had quickly migrated all my data from my old standalone account to my domain account. Shortly thereafter, the trouble began.

While doing the normal things I do with my computer -- launching applications, opening files, browsing directories on my hard drive -- my system would spontaneously lose all of the theme configuration I had applied. It's somewhat of a challenge to accurately describe the problem to someone who hasn't used Linux. Basically, all the widgets and buttons on my desktop and in my applications would lose their style and revert to the ugly default. Worse, I was unable to change these settings back to the way I wanted them unless I logged out or rebooted the computer. Neither solution is acceptable. I discovered several other problems when this would happen: sometimes I would be unable to see the contents of my home directory! This would happen in the Nautilus graphical file manager, as well as in "File Open" dialog boxes. This was absolutely catastrophic: it meant I couldn't attach files to emails, or navigate to sub-directories in my home directory. (I could still access things from the command line, which was only a modest relief to the problem.)

I narrowed my problem down to the fact that the gnome-settings-daemon was failing. Searching revealed that a number of other people experienced the same problem, and a variety of solutions and work-arounds were put forward. I tried most of them, but had not lasting success: gnome-settings-daemon kept terminating, resulting in a mostly unusable desktop for me. I found, and commented upon, bug 138277, but no replies have been made. I started a thread on the Ubuntu forums, but it's seen no action yet. I readily accept that I may have done a poor job describing my problem in a way that folks can understand.

One troubleshooting step would be to perform a complete re-installation of Ubuntu 8.04. I had originally installed 6.10, and then upgraded to 7.04 and then 7.10 before finally upgrading to the latest 8.04. I'm not entirely keen on this, but it would help identify whether the problem is a glitch introduced during my upgrade, or whether it's a substantive problem with Ubuntu 8.04.

As I said previously, though, I think it's important for IT folks to walk the walk. In our computer labs, we won't be running Ubuntu. We'll be running Red Hat Enterprise Linux Desktop. Many of the scientific and engineering applications our students use are only available for Red Hat or SuSE. I suppose I could try CentOS, but our college has brokered a deal with Red Hat. We have plenty of available licenses for their offering, so that's what we'll use. I am strongly considering taking this opportunity to configure my workstation in an identical fashion as all the lab computers. This would be good practice, and would help me to provide better support to the labs because I'd be clued in to the particular nuances of the distribution. This has its own set of problems, as you might expect.

I admit that I've been spoiled by Ubuntu with fresh new versions of most software. Red Hat Enterprise Linux does not offer the same new versions of all software. For example, Red Hat still ships Firefox 1.5, whereas Ubuntu is now shipping Firefox 3 beta 5! This might be a non-issue, though: many of the servers and devices we have in our network (fiber channel switches, Ethernet switches, security cameras, IP KVM, etc) use Java applets served through a web page. Java applets do not run on 64-bit GNU/Linux systems. My system is a 64-bit system. I found it extremely annoying using Ubuntu to have to make a Remote Desktop connection to a Windows computer just to launch Microsoft Internet Explorer in order to execute a Java applet. So, if I install Red Hat, I could install the 32-bit version of a newer Firefox and enjoy native Java applets (and native Flash to boot! YouTube, I've missed you!).

The purpose of this post has been, primarily, to get myself to think about the pros and cons of using Ubuntu and Red Hat. Each has definite strengths and weaknesses, and neither is demonstrably superior for this situation. Switching back to Red Hat will invoke a bit of a learning curve, but I think it's probably the best choice for my work computer. Besides, if I take the time to re-install Ubuntu and the problems with gnome-settings-daemon persist I'll be installing Red Hat anyway!

Ubuntu 7.10 on Acer Aspire 3680

After giving up on the notion of the Eee PC for the twins, I purchased a pair of Acer Aspire 3680 laptops for them. A quick search revealed that these were fairly well supported, with a couple of odd quirks, so I felt reasonably comfortable making the purchase. I confirmed last night that they would run Ubuntu by taking a Live CD into the store with me, just to make sure.

From the store, these laptops came with some version of Windows Vista (I didn't even inspect the stickers to see which flavor of Windows Vista, specifically). When I told the sales clerk that I wanted to buy a pair of them, he immediately suggested a RAM upgrade. I said "Thanks, but no thanks, I'll be running Linux on these." The clerk must not have heard me, because he said "Huh?" I calmly explained "I'll be running Ubuntu GNU/Linux on these laptops, so 512MB RAM is more than sufficient for right now." (Carina claims I was being harsh in my tone of voice, but I think she's making that up.) Once I had said this, the clerk walked off to get the laptops for me, and didn't offer a single other upgrade or add-on, which I found rather telling: these guys live for the extra commission earned by add-on sales.

As mentioned on this post about Linux on the Aspire 3680, the default audio device is seen as surround, which means you need to make a few adjustments in order to get sound working correctly:

  • Right-click the speaker icon
  • Click "Open Volume Control"
  • Click the "Edit" menu
  • Select "Preferences"
  • Enable Surround from the list of tracks to make visible
  • Click "Close"
  • Close Volume Control
  • Right-click the speaker icon again
  • Click "Preferences"
  • Select Surround as the track to control
  • Click "Close"

Acer must have refreshed the hardware in these laptops for the specific sub-model of 3680 I purchased, because everywhere I've seen online so far suggests that these laptops come with Atheros wireless cards, whereas ours claim to use Broadcom BCM94311MCG mini-PCI cards. If you enable the Ubuntu Universe repository, you can use the restricted drivers with the bcm43xx-fwcutter package to have fully-functional wireless networking.

  • Click the System menu at the top
  • Click Administration
  • Select "Synaptic Package Manager"
  • Click the "Settings" menu
  • Click "Repositories"
  • Select "Community-maintained Open Source sofware (universe)"
  • Click "Close"
  • Click the "Reload" button at the top-left of the Synaptic screen
  • Close Synaptic
  • Click The System menu at the top again
  • Click Administration
  • Click "Restricted Drivers Manager
  • Click to enable "Firmware for Broadcom 43xx chipset family"
  • Agree to all the prompts
  • When prompted for the firmware location, select "Internet" to have the firmware automatically downloaded

I must admit that I share Theodore Ts'o's enthusiasm for when things just work: once the Broadcom driver was activated, wireless networking worked straight away. To make things even better, I was able to install the Adobe Flash plugin and the Sun Java plugin all through the browser, without ever using a command-line. I wouldn't have minded had I been required to drop to a shell -- after all, I'm setting these laptops up so that the kids won't have to -- but I was extremely pleased that I was able to do it all in the way in which you would expect plugins to be installed: through the browser!

My initial reaction is that this is a decent little low-cost laptop. I don't expect we'll get superb battery life, and I know it's not a workhorse machine; but for the way the kids will use it (playing Club Penguin and Runescape, watching YouTube videos, email, and school work) it looks to be a fine choice.

I can't wait for the kids to come home from school so that I can see their reaction!