Hi and welcome. K.Mandla’s Sandbox is an image of a console-only Debian 5.05 i486 system built in late July 2010. It has been customized to a small degree, and offers a portion of the software I like or recommend, provided Debian has it in its repositories for Lenny.
It’s not a precise mirror of my personal system, but it does have most of the same software and a few of the same configurations. If you like it you’re more than welcome to adopt it as your own, or you can rearrange or modify things as you like, and do what you will with it.
The torrent is available at Linuxtracker.org. I will upload the image to a file host if I can find one that will accept a 1Gb file, and won’t prove to be too much of a hassle.
The target machine for this was a Japan-market Sharp Mebius MN-340-001. This was a 150Mhz Pentium MMX machine with 32Mb of PC66, USB1.1 ports, a 2Mb Trident video card, a 20X CDROM, an ESS ES1869 sound card and network access through a PCMCIA port.
You can install this to a system by booting to a live environment and writing the image to a drive of at least 1Gb with
dd. For more information, please review the readme.txt file included in the bundle.
In general I am not offering support for this; it is intended as an experimental system for anyone who would like to see a day-to-day console-only system firsthand. If you find it doesn’t work as described, or if there is a part of the system that disappoints you in some way, you may contact me about it. However, it is possible that my reply will be to suggest you look for a fuller, better supported software solution elsewhere.
On the other hand, if you like it and want to use it in a project of your own, please feel free to adjust it to your liking.
And in either case … enjoy!
Edit: readme.txt follows.
This software and the text that accompanies it are licenced under the GPLv3 and the GNU Free Documentation License, version 1.3. For more details on the license and what it permits, please visit http://www.gnu.org/ .
Hi, and welcome. Thanks for taking the time to download this, and thanks for taking the time to read about it too.
K.Mandla’s Sandbox is not a GNU/Linux distribution or even a variation on a distro, both of which you might have expected. Instead, this is a snapshot of a functional Linux system configured as I happen to like it, with a few additions and subtractions here and there. You can adjust it, embellish it, modify it, fold, spindle or mutilate it however you like, and no one will know or complain.
The ‘Sandbox is a 486-architecture Debian 5.05 system built at the end of July 2010. The target hardware was a Japan-market Sharp Mebius MN-340-001, with a puny 150Mhz Pentium processor and a massive 32Mb of memory. The entire system is intended to fit on hard drives of 1Gb or more; anything smaller than that is probably going to run into serious problems.
It’s not my ideal system. My ideal system is impossible to share, because it would require you to have identical hardware to mine. I am a maximalist, which means I believe in forcing the best possible performance out of older hardware. I do that by carving away at unnecessary portions of a system, all the way down to the kernel, which means the systems I run are sculpted to match the hardware.
So without a machine of the exact same proportions as mine, I am afraid you probably wouldn’t be able to use anything I offered.
But this is close enough. The ‘Sandbox gives you a general idea of how I run my day-to-day systems, within an acceptable frame of reference. It’s not the whole enchilada, but it is a bag of enchilada-flavor tortilla chips.
As always, the standard disclaimers apply.
- This is offered without promise or guarantee.
- There is the possibility of data loss or other failure.
- This is not intended for beginners.
WHY DO THIS?
A number of people asked for a pre-cut system, just for comparison’s sake. Naturally I’m not about to post a clone of my personal system on the Internet (ye gods, the very thought is horrifying), so I built this one from scratch, and drafted similar configurations for the programs I use most.
Two reasons: Precompiled and i486.
That should be enough explanation, but I’ll add a little if you like. If you’re actually going to use this on an old, old machine, then you will probably be working with an early i686, if not an i586. It might even be something you could try on a real, live i486. No guarantees though.
And anything in those brackets is going to be painful to build software on. Even with something like archlinux-i586 — which I hold up as a marvelous solution for old, old computers — the time taken to customize a system like this is going to be considerably higher than something with expansive repositories already available for the early architecture.
And there are plenty of other distros that would possibly work. Debian seemed like the best option for an old machine, with enough of the software I like, to make it worth doing at all. And really, you can’t go wrong with Debian. 😉
Mostly because all my attempts to upgrade from Lenny to Squeeze on the target machine (see above) end up with an unbootable system. It may be that the testing version of Debian was a bit hefty at the end of July 2010.
On top of that, I see where testing wants to shift to UUIDs instead of drive labels, and my worry is that would make the system unbootable on other machines. I am sure there is a way to either avoid or retain the older /dev/hdXY labeling system, but it’s not something I personally need to investigate.
If you want to run testing or unstable, I would suggest installing this, then manually upgrading. As far as individual packages, you could try downloading from the Debian package search site and installing one-by-one; it will probably work so long as the dependencies are in your favor.
WHY NOT UBUNTU?
I don’t discount Ubuntu as a possibility for a system like this, but I think Ubuntu has its focus turned elsewhere, and isn’t as concerned with very old machines any longer. I’ve had trouble getting Ubuntu in the 9- and 10-series to boot on machines with less than 48Mb of memory, which is disappointing.
If you are somehow partial to Ubuntu over Debian for a system like this (I can’t see why, but it’s possible), feel free to try making a similar installation.
WHY NOT ARCH LINUX?
I was tempted to do this with Arch, but that would rule out very old systems, which might actually perform decently with this. Go back and re-read the whole i686-i586-i486 thing, above. 😉
WHY NOT (insert distro of choice)?
Well, if we have to wander so off-point as to start dragging in every distro out there. … I can only say that the configuration files (what few there are) are easy to transplant, so get off your rear end, install (insert distro of choice), mimic the software list and dd the entire business off the system. Congratulations, you just created your own sandbox.
HOW IT WAS MADE
For purposes of speed, this was built in QEMU on a image file the same size as the only 1Gb USB stick I have left. I used the Debian 5.05 netinst image, and selected the expert installation option, which allowed me to choose the i486 system. Otherwise, the standard install procedure picks the i686.
After it was made, it was written to the stick and then transferred to the target machine for troubleshooting.
To install this, you’ll need to somehow write the image file to the hard drive with dd. You can either boot your computer to a live environment and use a USB drive to add the image, or pull the drive entirely and use a surrogate machine to write out the drive contents.
In short, you’ll need this command.
dd if=kmandlas-sandbox-10.07-i486.img of=/dev/hdXY
For X and Y, substitute the drive label assignment that you see in
fdisk -l. Depending on the speed of your hardware, this can take as little as two minutes — or as long as two or three hours. dd offers no progress monitor, so your best bet is simply to allow it to run to completion.
You can also use the image in a virtual machine like QEMU, or write it to a USB stick and boot directly to the image. If your hardware allows that, of course. 😉
You will have to manage your hardware by yourself; it’s always possible that Debian can’t recognize a network connection or your sound card isn’t very happy. If you need help or run into problems you can send me a note, but please be aware that I will probably refer you to the Debian Forums before anything else.
If you use a newer machine with a SATA drive system, Debian will assign sda-series numbers to the system, whereas the image naturally seeks out a root partition at hda3. In other words, boot failure.
If you find yourself in this predicament, the solution is simple.
1. Boot to a live environment.
2. Mount the installed system’s root directory and change the entries in /etc/fstab. Anything that says hda should be changed to sda.
3. Reboot and change hda3 to sda3 on the kernel boot line.
Once the system is up, you can change /boot/grub/menu.lst manually and update it permanently with update-grub. It’s not a particularly elegant solution, but it does work.
Log in with the username “user” and the password “password”. Enter “screen” and press return. That’s all.
This is probably the part you are most interested in.
The 1Gb space has a 64Mb boot partition, so it can be written to an oversized drive and used in a machine with a BIOS size limitation, and still boot.
Swap space is 128Mb.
The root partition is a meager 830Mb, plus or minus, with the noatime flag set (/boot has that too). If you want a separate home partition, which I strongly recommend, you can allot remaining space on your drive to /home, and adjust /etc/fstab to mount it.
There is a root account and an account called “user”; the password for both accounts is “password”.
The keyboard is set to a US layout, which no doubt you can adjust so your keys do the right thing when pressed.
Time was set with an Eastern US time zone and synced against the Debian servers, but will need adjustment when you install it.
The repositories are set to a US server, with main, contrib, security, volatile and non-free enabled. I also added the backports servers, and the public key for the backports is installed. All the source repositories are disabled, mostly because of the added time to manage them on low speed hardware. If you plan on customizing any software, you’ll want to re-enable these.
The local cache is empty. Or nearly empty.
The PC speaker module — pcspkr — is blacklisted, or it should be. Sometimes I hear that thing in my dreams.
The kernel boot line omits the “quiet” option, which you may want to enable. The grub menu timeout is set to 2 seconds.
You have only two ttys, tty1 and tty2. /etc/inittab is adjusted to avoid the “wait” instruction in favor of “once”.
The standard /etc/issue file has a clear sequence at the top, so logging out clears the tty and offers a clean prompt.
sudo is installed and will allow any root-level command with a password. The halt and reboot commands are available to anyone in the “user” group, without a password.
The /etc/sysctl.conf file has been adjusted to allow perkier network speeds, low swappiness and a few other adjustments. You may need to reconfigure this for your machine.
Aside from the default core packages installed in a Debian system with no tasksel options, here’s the software that is available.
alpine, email and newsreader
alsa-utils, audio framework and tools
antiword, .doc converter
aspell, spellchecker with the English dictionaries
axel, download manager and accelerator
bsdgames, a collection of old console games and whatnot
cadubi, stamp-art application
centerim, multi-protocol chat application
cmatrix, console “screensaver”
debfoster, system cleaner
detox, file renaming utility
dict, online dictionary utility
dosfstools, for access to floppies, etc.
elinks, Web browser
fbgrab, framebuffer “screenshot” utility
fbi, framebuffer image viewer
figlet, text-art utility
hnb, hierarchical notebook
htop, system process viewer
iftop, network traffic monitor
iotop, I/O monitor
irssi, chat utility
mc, file manager
moc, music player
ncdu, disk usage viewer
ntpdate, clock sync utility
odt2txt, .odt converter
pcmciautils, for people who use laptops
renameutils, file renaming utilities
rsync, file synchronization utility
rtorrent, torrent client
screen, terminal multiplexer
snownews, RSS and newsreader
surfraw, CLI search utility
telnet, text communication network protocol client
tidy, html cleaner
tpp, text presentation utility
unzip, decompression utility
vim, text editor
wyrd, calendar and scheduler
This doesn’t necessarily represent the software I necessarily like or endorse, since each distro has its own shortlist of included packages. I would have liked to have added:
charm, blog management tool
bs, battleship game
cdf, visual disk usage utility
clockywock, console clock
dehtml, html stripping tool
fbterm, framebuffer terminal emulator
myman, Pac-Man arcade clone
ncmatrix, network monitor and “screensaver”
tty-clock, console clock
vitetris, Tetris clone
Charm and fbterm are available in later versions of Debian, and others would be a snap to build from scratch. If you feel the need to precisely mimic the system I run, consider adding those. As it stands now though, this is probably close enough to satisfy.
With very few exceptions, the software installed in the system is unconfigured and will require setup to use. Additionally, your hardware may not play nicely with the system as it is configured, and may require some attention to use. Be prepared to investigate unconfigured or missing system components.
screen is set up to spawn five or six applications, show a screensaver after 5 minutes of idle time, and show a basic status line.
elinks has a home page set, and a few bookmarks as well as a default download directory, an instruction to avoid IPv6, and a few other small points.
I would suggest installing the Terminus font, just for readability’s sake.
mc erases its history after closing. elinks erases its history as well, and rewrites a clean cookie list after closing. centerim erases its history and any downloaded avatars. I dislike software that keeps histories between sessions. 😦
All of these are done by assigning aliases for those programs to their respective scripts; the script calls the program, then erases its footprints. If you decide to remove the scripts make sure you adjust the bash configuration and profile files so the aliases aren’t used. Then log out and log in again. 😉
There are two volume control scripts — volume.sh and mute.sh. These are useful when the phone rings, or when you end the call. And of course, you have alsamixer at your disposal. 😉
There are three or four plain-jane screensavers, called by the screensaver.sh script. If you add a “screensaver,” add it to this script by following the examples there, and it will be picked in time. Many of the applications I wanted to install (see above) added a few more screensavers to the list. No huge loss in that sense.
I mentioned that the target machine was a 150Mhz Pentium, but the second test subject was an IBM Thinkpad X60s. Results were similar on both machines, with allowances given to hardware differences.
After a clean start, the system takes up about 20Mb of memory, depending on the host. ncdu reports only 422Mb of drive space in use across the entire root tree structure, but that should probably be adjusted upward.
Boot times are likewise dependent on the hardware. A core duo L2300 machine with a 5400rpm SATA hard drive and 512Mb of memory boots in well under 30 seconds, but a 150Mhz Pentium MMX with 32Mb of memory and a lowly 5400rpm IDE drive takes closer to a minute. That’s not bad, really.
There are ways to optimize Debian-based systems; much of the early days of the Motho ke motho ka botho blog are dedicated to tuning Ubuntu for older hardware. With the exception of a few minor changes to /etc/inittab and /etc/sysctl.conf, the system has not been modified.
Install it and tweak it yourself, within your own comfort zone. There is a good potential for building a speedy system.
SUPPORT AND GUARANTEES
In general, I am not supporting this. It is offered as-is, with no guarantees or promises. You are putting yourself at risk of data loss or catastrophic hardware failure if you try any or all of the things I described above. Be afraid. Be very afraid.
On the other hand, if you find an error or a problem with the configuration, let me know. Just be aware that I will probably recommend you do what you can to fix it. If that’s somehow impossible for you, I recommend you jettison the entire business and begin looking for better software arrangements elsewhere.
I have no plans to update, rerelease, respin or build this into an installable system. If you like it, then feel free to remaster, translate or transform it into another shape or on to another medium. I can offer advice on that front, but you’ll be getting what you pay for.