Archive for June, 2005

WOOHOO!! Holiday’s at last

Tuesday, June 28th, 2005

Well, I just finished my final end-semester exam for Semester 1, 2005… 6 exams in total (two maths, two electrical engineering, an IT software engineering exam, and a physics exam).

It’s a great thing to see the back of them now… as I can at last get to work on things that have been demanding my attention for some time now.

I’ve started work on a netboot-building system called PreLinux. It’s primarily designed to allow netbooting of diskless/semi-diskless workstations and allow distributions such as Gentoo, Fedora Core, Ubuntu and others run without needing to install them first.

The concept is this:

  • Inside an initramfs image, there’s a version of BusyBox and some basic tools, linked against µClibc, along with just enough driver modules to get the ethernet card and/or storage devices talking.
  • Once a means of downloading the root FS image is established, the system then attempts to connect to the network, and prepares the disk, formatting it completely as swap-space. As initramfs is paged to disk when not in use, it should be possible to run completely out of swap/RAM.
  • If a modules= kernel option is specified, it downloads additional modules to be extracted into RAM, and does further hardware probing.
  • The scripts then look for a root= parameter on the kernel command line. This is a URL to where to grab the image… e.g. http://foo/bar.tbz2, nfs://server/foo.tbz2 or cdrom:/blah.tbz2. This is extracted onto /.
  • The system then execs /setup.sh (from the downloaded tarball for /) which takes care of downloading any SquashFS/cloop images for /usr /opt, etc… and setting up any system-specific configuration settings for the booting machine.
  • Last step… /sbin/init is exec-ed, and Linux boots up like normal

This prodominantly for the Asperger’s Syndrome Support Network, as a means for netbooting their workstations for the Adult Computer Club… however, I’m also aiming to use this for Atomic Linux LiveCD, and for Gentoo/Cobalt-MIPS netboot images. Already, the system is more than capable of calling crossdev to make a cross-compiler suitable, cross-compiling BusyBox statically and cross-compiling a kernel complete with the initramfs — thus making it capable of providing netboot images good enough for bootstrapping Gentoo Linux. I have a prototype script that does some of the other idea too… it’s now just a case of putting it all together.

In short, watch this space. :-)

Cobalt Stages –> Experimental Mirrors

Monday, June 20th, 2005

This is a short post to say the 2005.0 stages for Cobalt servers has been officially hit the mirrors.
You’ll find them on your local Gentoo mirror under the experimental/mips/stages/cobalt/2005.0 directory.

I’ll be updating the docs shortly… just gotta get through another 3 exams. (Ahh such is life as a uni student at this time of year)

How to NOT impersonate eBay

Monday, June 20th, 2005

My god… never thought a spammer would be this stupid.

Okay, we’ve all heard of phishing I’m sure… and unfortunately in this day & age, it’s nothing unusual. However, normally it involves clicking a link, which takes you to a website where you enter your precious details.

Not this one. This one is the first I’ve seen of its kind. Here’s a screenshot of the offending email.  Update 20080325 — I lost the screenshot in an upgrade of the blogging software (yes, foolish me)

It’s a form. Okay, pretty smart you say… It would be, had the individual not used his/her email address in one of the hidden fields of the form. It in fact, uses a form-mailing script, and emails the form to the scammer’s email address. Here’s the relevant snippet of code (note, this is in quoted-printable encoding, I can’t be arsed fixing that.):

<FORM name=3Dform1
action=3Dhttp://webtools.snip.net/FormHandler.ashx method=3Dpost
target=3D_blank><INPUT type=3Dhidden value=3Dssconturi@yahoo.com
name=3Dxto> <INPUT type=3Dhidden value=3DAPACHE name=3Dxfrom> <INPUT
type=3Dhidden value=3DUSER name=3Dxsubject> <INPUT type=3Dhidden
value=3Dhttp://pages.ebay.com/services/buyandsell/welcome.html
name=3Dxredirect>

Notice the user’s email address? A nice letter went out to Yahoo today, as well as the ISP where the email originated, and the tech support for Snip.net, and hopefully they’ll act on this.

For those thinking of trying this sort of stunt… forget it. I seem to have a real habit of accidentally forwarding such emails to spoof@<company>… and they don’t like it when they hear someone impersonating them. For those who have received such an email… have a look on the company’s real website for places where to report the spammer.

Going Full Circle — Linux Newbie, to Advanced User, to Developer

Sunday, June 12th, 2005

Ten years ago, if you had asked me where I was likely to be… what my plans were… chances are I would’ve responded along the lines of setting up my own software company here, and making software for a living. I hadn’t heard of Open Source, or Linux… I had heard of Unix, but had never seen or used it, and I was aware of only two platforms, IBM and Apple.

My, have things changed over that 10 years.

At the time, my father had recently been made redundant from Telstra (having been a communications engineer there for 29 years) and had gone back to university to study a post-grad IT degree.

Part of his course, dealt with this funny little Unix-like OS called Linux. He brought home a set of CDs, complete with Red Hat Linux 4.0, dragged out his old workstation (a 486 DX4 100MHz with 64MB RAM, previously ran Windows NT 4.0) and loaded it on. This was my beginnings with Linux.

At first, all I knew how to do, was to switch the machine on, log in, run startx at the prompt, and I discovered issuing the 3-finger-salute sent the machine into a shutdown procedure. (Very useful when you didn’t have root access) I used to fire that machine up a lot… largely to play the games that were available.

For the most part, I was fascinated by the games. xbilliard and xhextris in particular, as I had nothing like them on my Windows machine. (At this point, I had just upgraded to Windows 95, and was still trying to adjust) First time I ever saw the desktop in Linux (FVWM 2) my first comment was how much the task bar resembled Windows 95… until I realised that FVWM 2 got there first. Microsoft do like pinching ideas of others.

Anyways, it wasn’t long, before I was putting it on my machine. Initially, it was Red Hat 4.0, then later, 4.1. I managed to screw up my machine’s installed version of Windows 95 in the process, but soon I had mastered the concept of dual-booting.

Sometimes I came into uni, and helped out with the exercises — largely to do with routing and TCP/IP. The lab machines there ran some derivative of Slackware, sporting the FVWM 95 desktop, which I quite liked. It wasn’t long before I switched to Slackware on my desktop machine at home, and that’s where I learned the most about how Linux works.

From there, I ricochetted between several distributions… Red Hat, Slackware, Mandrake (briefly), Caldera, SuSE (before Novell took over)… Most of the time was spent running Red Hat or Slackware.

At this point, we also upgraded the Linux box… to a Pentium 120MHz w/ 48MB RAM. The old 486, then got a lesson in true Unix… it got a dosage of SCO OpenServer 5.0.4… which it still runs today.

This continued right up to around 2001, when I downloaded Slackware 8.0… on dialup, whilst trying to burn up hours. We were preparing to switch to ADSL, and I had clocked up some 800 hours on my account. In that time, I downloaded Slackware 8, Solaris 8/x86, Counter-Strike 1.3 (although I lacked Half-Life), and numerous other bits and pieces.

After running Slackware 8.0 happily for some time, I had gotten used to the concept of compiling stuff by hand. Anyways, we managed to get hold of Red Hat 8.0.

My, what a disappointment. No support for MP3 playback, RPM dependancy hell (Incidentally, I have heard Red Hat developers complain about RPM), and a stuffed up text console. BlueCurve wasn’t all it was cracked up to be either. I sorta got used to it… but there were things I didn’t like. Essentially, I had outgrown the distribution, and found it very fragile when I tried to bring in third-party apps. I spent more time wrestling with RPM than I did using the distro.

Eventually, it was back to Slackware 9.0. Sure, there was next to no package management, but that was okay… I knew how to compile stuff at this stage. I had also dabbled a bit in FreeBSD, and saw Ports which I liked emmensely. It was here (Slackware), that I stayed, and contemplated making my own, using some sort of Ports-like system for package management (later to be called Atomic Linux).

At this point, I knew quite a bit about how to use Linux, and regularly assisted others in using it. I was also starting to play with Linux on RISC architectures. We had bought a Gateway Microserver (cousin to the Cobalt Qube 2), which ran an ancient distribution of Linux based on Red Hat 5.0. (Kernel 2.0.37 or something — need I say more?) Anyways, needless to say, I decided to try upgrading the distribution by hand. BIG MISTAKE.

The distribution on this Gateway machine, was so out of date, I practically had to replace every single package on the system. Of course, once I replaced things like modutils it all turned pear shaped. I tried compiling kernel sources from kernel.org (which don’t work with MIPS), and failed… and managed to bugger up the module loading. So things like PPP didn’t work.

Upon restoring a backup… I reformatted the root filesystem, EXT3. I thought this would be fine, as it was backward compatable with EXT2. Wrong! The machine’s boot ROM is so primitive, it can only understand EXT2 revision 0. I had made a nice AU$400 MIPS-powered door stop.

I ended up trying out Linux From Scratch, which I ran for a couple of months. The aim of the experiment was also to figure out how to compile a distribution for the Gateway box. During this time, I also got a Silicon Graphics Indy. The intent was to follow this guide I had found on bootstrapping an Indy with Linux.

Well, in the end I didn’t go though with it… I found Debian had a MIPS port of Linux, and ended up running Debian Woody on both the Indy and the Gateway. Debian wasn’t bad on MIPS… but it really didn’t satisfy me. There were things that didn’t work right on the Gateway machine… and I was forever plagued with problems trying to build kernels on both machines.

On my desktop, I tried Gentoo on the recommendation of a few others. Damn… that scratched itches that I never knew existed! It wasn’t perfect… but it was the best distribution I had tried yet. So far, I haven’t left Gentoo.

I later discovered there was a MIPS port of Gentoo. This was before the Cobalt port existed. Needless to say, off came Debian, and I had printed out the handbook, and was sitting in front of my Indy, having netbooted it (at the time Gentoo pinched Debian’s netboot images) and was doing a stage1 install on it. Initially, I just left the CFLAGS unset… I figured I’d just keep things simple, then build up from there. It was bliss. :-) I later tweaked the CFLAGS (to their present setting, -pipe -march=r4600 -mabi=o32 -O2) and saw a DRAMATIC improvement in the system’s responsiveness — much greater than I had seen on x86.

Kumba, then announced a port to the Cobalt server. This immediately purked my interest. At the time, my Gateway box was acting as a CVS server for the Atomic Linux project, but the moment we moved it to BerliOS, I took Gentoo/Cobalt for a spin. I did a stage3 this time… had all sorts of fun doing so… but eventually I cracked it. Once again… bliss… The machine was so much more responsive under Gentoo than it was under Debian, and for once, it was nice to have a common platform on all my machines. Not to mention, I finally got a hand-made kernel to boot on the damn thing. No more kernel 2.4.18… hello 2.4.22 :-)

It was some time later, the Gentoo/MIPS team were looking for someone to handle the Cobalt port, and the Documentation. I wasn’t sure at the time. I did assist a lot of people with Gentoo/MIPS, but wasn’t ready at the time to commit myself. Eventually (about 6 months down the track), I decided I’d test the water by maintaining the documentation.

One complete re-write of the docs later… and a crash course in using Catalyst… I’m filling both roles. I’ve gone full circle. Started out a newbie user… and have now been made a developer working for Gentoo.

The Linux community has let me gain HEAPS. Not just technical knowledge either. It helped my social skills, as I had to ASK questions, and it helped my research skills, as I had to go locate the information before asking. (People get justifiably upset when you don’t do some research first).

The latter two have applications in real life. Especially the social skills one. I have Asperger’s Syndrome, which affects my ability to communicate with others… Having to go out, and ask people, whom I’ve never met, how to do something has been great life experience for me.

So the open source community has helped me greatly along the way. Now, as a developer, I’m able to give back to the community. I’ve already done a complete re-write of the Gentoo/MIPS documentation… and up on my dev space I have stages and netboot images for use on Cobalt servers.

I hope to continue this work for much time to come. What comes of it, I don’t think anybody can say, but for the moment, I intend to keep at it. I’m having fun here, doing something practical, and of use to the community overall. Unless things suddenly change for the worse, I don’t see myself leaving any time soon. :-)

In a way, I’ve thrown away the old dream of running my own company… but in a way, I’ve succeeded. I’m freelance now, working on a number of opensource projects, and under my own terms. Sure, there’s no money involved… but it’s practical experience, which may be useful when I do get to the stage of getting a paid job. I’m hoping my job, will also involve one of my primary hobbies. I’ve had a lot of fun in the open source community, and hope to continue to do so, in the distant future.


Bad Behavior has blocked 371 access attempts in the last 7 days.