Atomic Linux title


Added: July 12 2005


As far as turning an old machine into something useful Atomic Linux - REMOTE 1 is about as basic as it gets. Connect to a machine running REMOTE 1 with your browser and control printer port pins 2 through 9 on that machine. If you've got an interface (see ELECTRONICS) to the remote printer port with some sort of electric switches you can turn things on and off. In essence its a glorified remote control capable of connecting over a LAN.

REMOTE 1 is a bootable disc image which you write to a floppy disc (see DISC COPYING for more info). Its capable on running on as little as a 486 with 8Meg RAM and is ideal for squeezing a little more life out of a relic (see REQUIREMENTS for more info).

The DOWNLOAD link below will get you a zip file of the disc image and documentation. After unpacking it you will get a directory named atomic-remote-1.0 which has everything you need in it.

The links below connect to their respective subjects on this page.


The following 3 images were captured off Mozilla and show the basic pages you'll be presented with when you connect (things may look slightly different with your browser). To connect just point the browser to See section CONNECTING for info on adjusting your routing table if you're on a different network than

Shot 1

REMOTE 1 screen-shot 1

The above image shows the LOG IN page which is the first thing you'll see when you connect. Use the password you'll find in the README.txt file within the tarball you downloaded.

Shot 2

REMOTE 1 screen-shot 2

Once you've logged in you'll be right at the control page. The numbers 1 through 8 control pins 2 through 9 on the printer port. Depending on the state of the pin the rectangles will either be Green/ON or Red/OFF and the checkboxes will be active or not. Use the checkboxes to turn pins ON or OFF and click the UPDATE button. If you want to name the pins click the NAMES button to get a page where you can do that. Once you're done LOG OUT.

Shot 3

REMOTE 1 screen-shot 3

At this page you can name the pins using the radio buttons and the text entry area and clicking the Name Switch button. Depending on the state of the pins the text will either be black or white. When you're done click BACK to return to the main page.



Less is probably better in this case and at the very least too much more than what's listed below would be over kill. The only slightly tricky thing is to keep in mind that the ethernet card needs to be PCI. (This is because it would be an impossible task for me to write what's needed to make the kernel aware of all the permutations that come with them old ISA cards.) You don't even really need a keyboard, video card or monitor for operation (just required for setup).

CPU   486 or better

RAM   8 Meg (might run on less but I can't test that)

MOTHER BOARD   - with Printer Port (SPP 0x378), PCI Bus and Floppy Drive

NETWORK CARD   must be PCI and one of the following ...

  • NE2000 or compatable - the most popular, Realtek, D-Link, too many other cards to list.

  • AMD PCnet32 or PCnetPCI

  • Intel EtherExpress PRO/100 PCI

  • TI ThunderLAN chip - Compaq Netelligent, Compaq NetFlex & Olicom cards

  • VIA Rhine-I (3043) or Rhine-2 (VT86c100A)

  • SiS900/7016 - SiS 900 and SiS 7016 chipsets (also SiS 630 and SiS 540)

  • CS89x0 - chipset (sorry no card names)

  • DIGITAL series PCI/EISA - DE425, DE434, DE435, DE450 and DE500 models

  • SMC EtherPower - also DECchip 21040/21041/21140 (Tulip series) chips

OTHER STUFF   appropriate network cables - interface printer port to switches

TEMPORARY STUFF   keyboard, video card and monitor for setup


Just about any machine that can connect via ethernet with a browser, the operating system isn't important. If connecting to the remote machine directly use a crossover ethernet cable. If going through a hub use straight cables. The connecting machine must be aware of the network the remote is on. In many cases this won't be a problem but if needed there are some commands to setup your routing tables for Linux and Windows in the section CONNECTING below.


This is where you use the Keyboard, Video Card and Monitor. We're not fussy about the quality of these items as they are only needed to help us access the BIOS.

Boot the machine with the Floppy Drive (but no disc) and Network Card in place. The first (sometimes second) screen is usually where the BIOS spits out information. Somewhere you should see a reference to pressing a key to enter SETUP. Often this is F1 or DEL so if you don't see anything try those right when the machine boots. If you miss entering the BIOS you can reboot as many times as needed either using CTRL+ALT+DEL on the keyboard or cycling the power button.

Once inside the BIOS control look for something that refers to either Halt On Errors or Detect Video/Keyboard or something similar. What you're looking for here is the place where you tell the BIOS to not give any error message or stop booting if it doesn't detect a keyboard or video card (monitor). When (or if) you've found it disable whatever is necessary. We want this machine to be completely mute and blind unless its talking over ethernet.

While you're in the BIOS confirm that your Printer Port is set to SPP and resides on 0x378 which is the default for most BIOSes. For that matter to really get under the hood you can turn off a bunch of things that aren't needed. We won't be using any Hard Drives or CD so you can turn off any reference to IDE and SCSI controllers (as well as remove the drives). We aren't using Serial Ports or USB so you can turn them off as well. If there's a PCI option set it to Plug And Play or whatever is the equivalent. And lastly make sure the boot order is set so the machine boots from the Floppy.

When you're finished with the BIOS settings save with whatever is appropriate (often its F10) and the machine will reboot. At this point you can insert your atomic-remote-1.0 Floppy Disc (see below DISC COPYING) and watch the monitor as the machine boots. Even though you disabled Video you'll still see boot information, this is because regardless the BIOS will use a video card if it finds one. Once past the BIOS boot screen the Floppy will start to be loaded, you should see the word ATOMIC- followed by a series of periods as the disc is read. That should be followed by Uncompressing ATOMIC LINUX and a success message. When the Floppy Drive stops operating (the light goes out) your REMOTE 1 system should be up and ready to work.

Now if you follow the information on CONNECTING you can test to see if everything works. If you are able to connect its time to finish the hardware setup of REMOTE 1 (if you can't connect see TROUBLE SHOOTING). Start by turning off REMOTE 1. You can just toggle the power switch as the system doesn't need to go through any shutdown procedure. Now turn off the monitor and disconnect the keyboard then turn the machine back on. If it boots and you are still able to connect you can power it down again and now completely remove the video card. Try the boot procedure again and if everything works as anticipated you now have a networked remote control and its time to hook up the ELECTRONICS.. If things don't go as expected see the section below on TROUBLE SHOOTING


The password for REMOTE 1 can be found in the README.txt and remote1.html files found in the atomic-remote-1.0.tgz tarball you downloaded.

And yes I realize a password is little redundant for such a simple system. But some of you may find a use for this that requires at least a small attempt at dicouraging the curious.


In the directory atomic-remote-1.0 is the raw floppy disc image atomic-remote-1.0.img. Which is to say its a type of file that if copied the right way to a floppy will be a complete working operating system and file system. Copy it the wrong way and its junk.

Depending on your operating system you'll have to use the appropriate command line utility for this special copying. For Linux use dd which is included in most all distributions and for Windows use rawrite which is not included. But here's a link to a page with rawrite and other disc copy utilities plus detailed usage info.

The information below makes the assumption you've got a "new" floppy in your drive, you're in the same directory as the disc image file, and you're doing this from a command line. Make sure its a good floppy as the system won't work from a damaged disc. You'll waste time tracing problems if your disc is bad. The respective format commands below will return information about success or failure.


Because you're writing to the Floppy (/dev/fd0) you have to be root for the following commands.

Format the Floppy with...

  fdformat /dev/fd0H1440

Although not absolutely necessary it wouldn't hurt to zero out everything with...

  dd if=/dev/zero of=/dev/fd0 bs=1k count=1440

We can now transfer the image to the Floppy...

  dd if=atomic-remote-1.0.img of=/dev/fd0 bs=1k


I've only done this on Win98 so I'm only guessing the following will hold true for more evolved versions.

Format the Floppy with...

  format A:

Transfer the image to the Floppy...

  rawrite -f atomic-remote-1.-0.img -d A:

Which ever way you end up using to write the image to disc once the Floppy Drive stops (light goes out) you are ready to test the system. That is assuming you've setup the remote machine's hardware and ethernet connections.


Because the remote machine has an IP address of hard coded the CONNECTING machine's routing table will have to know about the network(s). There's a command line utility for Linux and Windows called route that will take care of this. If you run this command to take a look at the routing table and see something like this somewhere in the ouput...

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface        *            U     0      0        0 eth0

... you're in good shape. If not use the respective commands below to adjust things.


To take a look at the routing table


Add the new network (assuming eth0 is the ethernet card you're connecting from). You must be root to do this...

  /sbin/route  add  -net  10  netmask  dev  eth0

If you need to delete the network use this (again as root)...

  /sbin/route  del  -net  10  netmask  dev  eth0

If you need to know more about this command do a man route or /sbin/route -h


These instructions work for the version of route that comes with Win98SE, I'm not sure about other flavours

To take a look at the routing table

  route  print

Add the new network where will be your machine's network address.

  route  add  mask  metric  1

If you need to delete the network use this...

  route  delete

If you need to know more about this command do route -h

As far as REMOTE 1 is concerned its routing table knows about the following networks and subnets...
... which are the standard ones you'd use for a home or office LAN. So as long as you're not using a weird or non standard ether address REMOTE 1 will respond to you. And just a word on the IP address for REMOTE 1. I chose this because I figured it was a pretty unused subnet ( ard I didn't want any conflicts with existing machines on a user's LAN.


The circuit below should be duplicated for each printer port pin you plan on using. For the most part its pretty straight forward. By turning on a pin you apply a current to the base of the transistor which in turn allows current to flow from Vcc and change the state of the relay. The relay I'm thinking of is a mechanical reed type and the ones I used were fed from 12v+. You may have to adjust the circuit if you're using different relays. The diodes are there for protection and should not be omitted. To make the actual connection you can cannabilize a printer cable or buy a DB25 connector and go to town soldering.

The parts are common place and shouldn't be hard to find. I'll assume you understand some basic electronics and know how to assemble the components properly. Be aware that you can fry a printer port if you aren't careful. I make no claims that my information is completely correct even though its worked for me using several different machines for extended periods of time. I will in no way be liable if you fry your printer port or other parts of your machine. If in doubt don't use this on a machine you care about.

Printer Port to Switch circuit JPEG

If you search the web there are more designs out there, I'll leave it to you to do the research. You can also try the CIRCUITS page to see what I've posted there.


What to do if things don't work. Relax its probably just something minor. I've tested or used this on several machines ranging from an Intel 486 33Mhz to an AMD 450 K6 using a variety of NE2000 clone cards as well as PCnet32 and EtherExpress PRO 100. And connected from as many machines using both Linux and Windows with a number of different browsers. Things seem to work pretty seamless, but then again I've had the benefit of hundreds if not thousands of hours debugging so its become old hat to me. What follows below should answer most if not all the questions you have.

Did you make sure you used a good disc?
Are you copying the disc image file correctly?
Is the BIOS set to boot from Floppy Drive A?
Does the Floppy Drive work properly? Test with a DOS boot disc if you have one.

If you know the make and model of the motherboard try looking on the internet for info.
If the system boots you might be able to use it as is
Find another machine ... at this level we're talking cheap hardware.

If the BIOS won't let you disable things you could boot the machine then remove the keyboard and monitor. This could be somewhat annoying if the machine is turned on and off regularly, maybe try to find another machine if that's the case. Otherwise REMOTE 1 could theoretically be left to run for years so in situations where extended operation is required it wouldn't be as big a problem.

If you followed the directions in SET UP and you saw the ATOMIC- and Uncompressing ATOMIC LINUX messages followed by a few seconds of Floppy Drive activity then there's an excellent chance the system booted okay.

That comes down to three and a half problems. The half problem is that I'm unable to test all the ethernet cards that I've compiled support for. As a result there may be quirks I'm unaware of. Of the other three problems two are hardware related.
  There's a chance the ethernet card you're using could be fried, if you have another try swapping. Next it could be your cables or network connection are incorrect. If connecting two machines directly together use a crossover ethernet cable otherwise use a straight through cable. If you're going through an "intelligent" router or hub you may have to make it aware of the REMOTE 1 network and/or IP address.
  Lastly if you're sure your ethernet card and connections are correct its probably a routing table problem on the CONNECTING machine. Read the section CONNECTING or ask a network admin friend for help. If that's not the problem maybe its something to do with your browser's settings, such as trying to connect through a proxy server.

If you're able to connect and update settings through your browser but nothing is happening with the parallel port to switch interface you've built it comes down to three things.
  Did you set the parallel port correctly in the BIOS? It should be in SPP mode and at address 0x378.
  You might have a broken or otherwise unusable parallel port ... somewhat doubtful and nothing much you can do except try another machine.
  Most likely you may have hooked up the pin connections incorrectly (as I did the first time). Did you test with a multimeter while changing values through your browser before you went and soldered everything together?
  Did you build the circuit correctly? Are all the grounds and hot pins hooked up right, diodes biased the right direction, transistor the right type etc?


Valid XHTML 1.0!   Valid CSS!