NetBSD 3.1 on an SGI Indy

On the other end of the spectrum from my last post, I decided this evening to install NetBSD 3.1 on the SGI Indy that fellow BSD user Jeff Buan gave me a few months ago. This system would have cost an obscene amount of money back in the day (1993) but now, it’s probably worth about $10. These boxes are pretty close to as rock-bottom as you can get these days:

mainbus0 (root): SGI-IP22 [SGI, 690887b5], 1 processor
int0 at mainbus0 addr 0x1fbd9880: bus 66MHz, CPU 133MHz

Jeff had problems giving it away until I took it as a challenge 🙂

Speaking of challenges (pun intended), the last time I tried to install anything on an SGI server, the victim box was an SGI Challenge L — a 200kg fridge-sized monster that my friend Naveen had muscled from the Department of Astrophysics at U of T. It required a 220V power converter that he ended up buying from the House of 220, and a custom-soldered RS-422 serial cable to get on the console. I hoped the Indy would be easier to set up.

Continue reading

BSDCan 2006 Day 0xFFFE: VoIP and FreeBSD tutorial

I’m going to be posting a couple of journal entries where I will summarize the talks I attended at BSDCan 2006 last weekend. It might take me a little while to get through all the summaries, but eventually I’ll finish them all! I’m starting with Day -2 of BSDCan, i.e. 2 days before BSDCan really started I attended a tutorial on VoIP and FreeBSD.

VoIP and FreeBSD Tutorial

Presented by Massimiliano Stucchi

I attended this tutorial, presented by Massimiliano (Max), who works as a consultant for a major communications company in Italy. He mentioned that in his work he manages over 2000 channels — I took this to mean either simple FXO/FXS channels (single POTS lines) or PRIs. I took this to mean about 70 customers with PRIs since PRIs in Europe can carry up to 30 b-channels (whereas in North America, on the T-1 standard, one can carry 24 b-channels).

Primarily, VoIP in a free or open-source software environment means Asterisk, which is fine; that’s what I’m interested in. Max did briefly mention that there are other open-source PBXes out there such as VOCAL (which is probably not being actively maintained given that the "latest" release is for RedHat 7.3) and Bayonne, the GNU PBX which might show some promise. Still, when one thinks of open-source PBXes, one typically thinks of Asterisk.

Much of Max’s tutorial was a very basic introduction to Asterisk, which was fine although I felt like I didn’t learn too much more about the operation of the system. He did manage to clear up some terminology for me, though; in particular I think people use the word termination wrong. In the telephony world, termination is used to describe when calls leave your VoIP system and get into the PSTN. I think a lot of people, myself included, misuse the word termination to mean the completion of a call on a DID number, whereas this is actually termed origination. Confusing, yes. I guess it’s the same hurdle in understanding that you need to jump when thinking about what signalling to use for a FXO/FXS device: for an FXO device (which actually interfaces to an FXO, i.e. a CO) you need to use FXS signalling, because your FXO device is behaving as a "station" (like a regular analog phone is a station).

Another useful tip I got out of the tutorial was that faxing does not work well with Asterisk, and definitely not with pure IP. This is in part due to a number of factors: Asterisk does not have the capability to do the error control (ECM) necessary for faxing; although ECM is, strictly speaking, optional, most Class-1 fax devices expect to have it turned on. Moreover, the GSM codec does not handle faxing very well, therefore faxes will not work on IAX or SIP channels. Max felt that the T.38 protocol (faxing over UDP) is probably the way to go, but there is not yet wide support for this.

Max eventually got into some use cases of Asterisk, showing us parts of his dialplan, and discussing some of the syntax, but I felt that during this part of the talk he got a little distracted and started telling some stories & conversing semi-privately with some of the participants. To his credit, Max had some slides prepared, but he did not stick to them, particularly near the end of the tutorial. I think this would have been discouraging to any real newbie who came into the tutorial with absolutely no knowledge of Asterisk. At one point, a newbie asked him what it would take to implement a basic Asterisk setup just for testing — what hardware should be purchased? Max wasn’t able to answer this question directly, perhaps because he had never purchased small-scale hardware. I would have preferred to see an example of a starter setup, such as the use of cheap FXO clone cards to build an answering machine, for example.

Overall, though, I got some good tips from someone who has actually built a large-scale production Asterisk setup. I won’t try running a non-POTS fax line, that’s for sure.

FreeBSD and Linksys WAP54G – solved

I finally got my FreeBSD laptop to authenticate to the company’s WAP 54G wireless access point. It turns out that the problem was with the Linksys firmware! I spent two days futzing with FreeBSD and trying to figure out why the iwi card wouldn’t associate with the access point, and finally in frustration I flashed the WAP54G’s firmware to version 3.04 (from version 2.08), even though the release notes said nothing about fixing WPA association. And it worked!

I guess this is what happens when you buy consumer-grade devices.

The Design and Implementation of the NetBSD rc.d System

This is a moderately old paper, but I think it’s worth reading if you want to understand the rationale behind the NetBSD rc.d startup system. I think this is what is referred to on FreeBSD (which has adopted a similar mechanism) as rcNG.

The Design and Implementation of the NetBSD rc.d system

There are many things to like in this design, which is far better than the organic (to put it politely) way in which the system startup sequence of a given Linux box has evolved. For one, it has the following advantages (outlined in the paper, but I’ll detail them here if you don’t want to read it):

  • Independence from lexicographical ordering of filenames (no S90foo running before S91foo), which always struck me as having a sort of BASIC-style limitation (i.e. back in the day having to number your code lines in multiples of ten in case you wanted to insert code in between)
  • Use of dynamic dependency ordering (via a special header and the rcorder script)
  • No reliance upon a special platform-specific "function" library, as is the case in many Linuxes
  • Centralized system configuration via /etc/rc.conf — no bloated /etc/sysconfig nonsense as on many Linuxes (but this is a topic for another day)
  • Avoidance of mandatory runlevels, which I can never remember on a given Linux or Solaris machine. ("What is runlevel 5 again?")

I could go on, but I urge you to read the paper instead, where Luke demonstrates a solid design methodology and rationale and then executes on the same. This is more than can be said for Linux.

BSDCan 2005 Remarks

I’ve just returned from the 2nd annual BSDCan conference in Ottawa, Ontario, organized by the very capable Dan Langille. In addition to being a super nice guy, Dan is also the founder of the FreeBSD Diary, FreshPorts, FreshSource and is involved with the BSD Certification project. Let nobody say that Dan hasn’t given enough to the BSD community!

In the spirit and style of the USENIX conference summaries published in ;login: magazine, I’m going to summarize (and pollute with my own personal remarks) the sessions that I attended.
Continue reading

[belated] report from BSDCan 2004

I attended BSDCan 2004 last month and I’ve been remiss in not speaking about it. In my view it is an example of a conference “done right”. Here’s why:

  • Inexpensive (registration fees were $150)
  • Excellent speakers
  • Good crowd, from developers to administrators to plain old users and students

There’s really not much more than that to ask for at a conference. Lots of FreeBSD developers attended; among them, Wes Peters, Robert Watson, Poul-Henning Kamp, Jacques Vidrine, and so on. It just proves that you don’t need to charge an arm and a leg to demonstrate how “professional” your conferences are, or to attract quality speakers.

The full text of all the papers presented is here.