New toy!


I managed to procure a Cobalt Qube 2 today. It’s been a while since I’ve geeked on hardware, so I’m sort of looking forward to playing with it. It’s a neat little box — we had it lying around
at work because they’re technically a competitor to one of our
products, and a long, long time ago someone wanted to see what the
Qube can do.

But obviously I’m not going to be using it as a small office
server. It’s a strange little box — two ethernet ports and a serial
port, but no video, keyboard or mouse; initial configuration was
done via a little panel on the back. Cobalt QubeIt’s got a 250 MHz MIPS
processor and a 10GB hard drive, but only 16MB of RAM — and finding
more RAM for these guys is tricky, because it needs 3.3v 72-pin SIMMs.

Anyhow, I think mine’s going to become the mp3-playing component
of my stereo system. It’s a shame the panel isn’t on the front for
panel geekery, but essentially I just need something to permanently
affix an audio cable to. I can hook it up like a tape deck, and then
use it for playback and for converting my record collection to
mp3.

I figure I’ll throw NetBSD mipsel/cobalt on, or maybe
debian-mips, although I’m more familiar with NetBSD in low-memory
scenarios, and then set up a variety of ways to get music to it,
to be played by mpg123. It’s got one PCI slot, so I’m assuming that I’ll
be able to get some common sound card working, and after that it’s just
about software control from my laptop or over the Web — all the
physical box has to do is sit on the shelf and glow a bit. Mind you, the
panel is drivable in NetBSD — it’s just in the wrong place to be
useful.

Suggestions on control interfaces are welcome — things like
Apache::MP3 don’t cut it because they’re backwards (files there, play
here). I need a control mechanism that is “files here, play there”, or
at least “files there, play there”. I will at least be implementing
Simoncozens‘s idea of queueing mp3s with lpr, but that’s
mostly hack value — I’d much rather have something with a little
(but not a lot) more eye-candy. Anyone solved this problem for me?


13 responses to “New toy!”

  1. Through a bad marketing/bizdev/ex-CEO decision, we have a little less than 100 Qube3’s at the office. While I have not experimented with some of the more extreme things like swapping out the OS or ROMS, or for that matter adding an audio card, I can tell you they make a great little networked MP3 radio station when you install icecast.

    Also, you will find that the default install has some nifty Perl modules for updating the LCD and getting button presses from it. You might be able to rig something up between that and mpg123 (I seem to recall it having a stdio-based control). Even though the LCD is on the back, we end up just rotating them all around anyway so that we can get to the various plugs. You might consider doing the same–in low-light conditions, the bluish light on the front can get annoying.

    Somewhere around here I have code that ran at my girlfriend’s old house–it was a Python-based daemon that ran mpg123. It build up a random playlist of everything in a particular set of (Samba-shared) directories. A web interface could then push things to the top of the queue, push them to the bottom, or skip to the next song (by telling the daemon to kill the mpg123 process–not elegant, but it worked). It was a pretty bad hack, but it worked well for parties. That, and it supported a number of “skins” in your browser’s popup window. The only downfall of the system was that somebody had to have a computer on and running a browser, and in this particular household the closest permanent computer was constantly occupied by a net addict who would not relinquish control, so somebody would have to whip out a laptop (which was awkward, at best, in the middle of a good party with a sudden bad song). Come to think of it, the other downfall was that everyone had access to the share using one account. I ended up having to give everyone a separate account with specific quotas (and a nifty web interface to show you this graphically because people did not understand these strange “quota” things) because specific people ended up filling the hard drive with their [bad] music such that others did not get the chance to hear any of theirs.

    Well, that was probably too much info, but I had nearly forgotten about all of that!

  2. dude, that looks awesome.

    i’ve always heard good things about cobalt boxen, but have never had the chance to play with one.
    coast to coast memory usually has older/hard to find stuff.

    good luck on getting it set up!

  3. I’ll almost certainly get the files there over NFS or maybe SMB — but I’m hoping to find a nicer interface for queueing than the command line.

  4. Well, you see, we sell training. Or maybe I should say we sold training. People pay us their hard-earned $monkey$ and they get to take a course about a particular technology that is not quite technical enough to be RFC-level and not quite st00pid enough for an executive. You get to take a course from a webpage, and you get to take it exactly once. We also have (or rather, had) a plan where a live trainer could a Qube out to a company or instruction center and give computer-assisted live training. After all, the Qube is a beautiful, portable webserver, RIGHT?!!! Well, at least beautiful. Try taking a Qube with you on a plane–too fragile for baggage and too big for carry-on. So it is better than a laptop running Apache….HOW? Similarly, you could have as much on-site training you want for a fixed-fee if you put “this here” mysterious black (ummm…blue) box on your internal network and open a port in your company’s firewall to it from the outside world. This way, we can push software and course updates onto it. Trust us.

    Nobody seems to understand why, in two years, given those constraints, only 4 courses were ever sold. In the courseware department, total income: ~$2,000, total expenses ~$4,000,000. So, yeah, we have a surplus of Qubes, some with big padded carrying cases. They are great for cvs, webservers, build servers, mail servers, and mp3 servers, but there is no way we could use all of them. Needless to say, that particular arm of the company has been amputated.

  5. How about iTunes on your Mac looking at the NFS mount? :) I think that’s what we’re going to try out in the near future.

  6. [JOKE ABOUT MICROSOFT MARKETING MEETING LOST MAN IN BALLOON]

    Even if I had a Mac to run it on, I still think that’s a “files there, play here” solution, though — the mp3 will be decoded and output on the ethernet-accessible-only Qube, and I just need some way of telling the Qube what to play next.

    lpr is still looking best. :-)

  7. Hrm, that wasn’t even clear to me. I have:

                   [switch ]
        +------+    |  |  |     +------+
        |nfs   +----+  |  +-----+ qube |
        |server|       |        |      |
        +------+    +--+---+    +------+
                    |      |
                    |laptop|
                    +------+
    

    MP3s are stored on the NFS server and decoded on the qube, and I want to control that whole affair via the laptop (or any other machine on the network that isn’t the NFS server or the qube).

  8. In the interest of being pedantic, resource-intensive, and ungeekish, might I suggest running a nice little player app under X and using VNC to access it from the laptop?

    It certainly works, and it’d be a hell of a lot less temperamental than just about anything else I can come up with.

    AITP

  9. It’s a possibility, but “resource-intensive” doesn’t work so well with only 16MB of RAM. I may end up just running an X client on the qube, xmms maybe, with the X server running on the laptop, but I’d still like to be generic for genericity’s sake.

    I’ve since found a handful of things that almost do what I want and are probably hackable to do what I want — the leading contenders are Jwz‘s gronk and Jon Ferguson’s Otto. Gronk has the right idea except Jwz organizes his mp3s a little differently than I do; Otto is a bit heavyweight but if I can lighten it up on the database side of things away we go.