Frequently Asked Questions = LNX-BBC = == What is an LNX-BBC? == The LNX-BBC is a miniature Linux-based GNU distribution, small enough to fit on a CD-ROM that has been cut, pressed, or molded to the size and shape of a business card. It provides a portable rescue system or temporary workstation OS for any system with a CD-ROM drive. == So it's just a small installer? == Not at all! The LNX-BBC runs as a "live filesystem" CD. Nothing is installed, and the system returns to its previous OS once you pop the LNX-BBC out. == What happens to my hard drives? == Only what you explicitly do to them! The LNX-BBC philosophy is "leave no trace". The LNX-BBC does not even mount your hard drives read-write. To be a useful rescue system, it provides you with the tools to modify your hard drives. You must explicitly re-mount them read-write to take advantage of this. == What distribution do you use? == We develop our own distribution specifically to fit in the space constraints of the tiny CD-ROMs. We compile everything from source code with -Os, and use an elaborate system of compression and pivot_rooting to make a 50MB CD-ROM hold all of the programs we include. == Why not just use Knoppix? == Knoppix is an excellent live-CD distribution, but one with different goals. Knoppix is meant to be a fully-featured Debian system on a CD or DVD. The LNX-BBC is meant to be a portable card-sized distribution, designed to fit in your wallet or pocket. The form factor of a business card CD makes the LNX-BBC more readily transportable than a full-size CD-ROM. == Does it work with Red Hat? == The LNX-BBC is its own operating system. It works independently of what operating system is installed on the computer's hard drives. You could have OS/2 installed on your system and the LNX-BBC would still function in your machine. == Does it work with Windows? == See above question about Red Hat. == So how do I get one? == Your options: * , and then to a CD-R. * Meet one of us at any of the trade shows we attend. * Join the FSF and get their . * Purchase one from the * Purchase one from * If you run a Free Software user group of some kind, you may request that some be sent on the == What do I do with an ISO file? == ISO9660 is the standard that defines the CD-ROM format. The .iso file you download from us is a raw image of a CD-ROM. You need to burn it to your CD-R or CD-RW in some sort of raw mode, to avoid making a CD with a single large .iso file on it! There is a decent rundown on to burn CDs at the command-line. You may also find a helpful GUI tool. Some people have found that renaming the file extension from .iso to .raw helps convince Microsoft Windows what the appropriate burning technique should be. Most other operating systems in the world are Unix-based, and determine the file type by what's actually in it rather than what it claims to be. == So this is that Linuxcare thing, right? == Not anymore! In 1999 Duncan MacKinnon, Tom Crimi, and Seth David Schoen started work on the project at Linuxcare. Linuxcare printed 10,000 copies of the "Linuxcare Bootable Business Card" to be distributed at the then-upcoming LinuxWorld Conference and Expo. The give-away mini CD-ROMs were a huge success and have generated steady praise and thanks for their rescue capabilities, attracting many other developers to the project. The BBC went through seven versions, five of which were pressed into business-card sized CD-ROMs and handed out at trade shows or distributed by mail to Linux User Groups around the world. Eventually, the original developers left Linuxcare, and Seth decided to officially in May 2001. == But Linuxcare still has a GNU/Linux business card CD. Is this the same project? == The LNX-BBC has no affiliation with Linuxcare, although Linuxcare have . Unfortunately, it looks like Linuxcare have not updated their version of the BBC since August 2001. Both are descended from the original project, but all of the original developers are currently working on the LNX-BBC. == So what version should I get? == As of this writing (May 2003) the latest release version is . == Are there any images for larger CDs? (8cm, full CD-ROM etc)? == Not yet, but with GAR, we hope to be able to build using , so there may eventually be ISOs that are larger than the business card format. = GAR = == What is GAR? == The machine {gar.lnx-bbc.com} was our old development box and build system. GAR is also the name of our software build toolset. Common backronyms we've seen include "GAR Are Recursive" and "Gmake Autobuild Runtime". It is a system similar in function (and nearly identical in purpose) to the BSD . It is a set of Makefiles that we use to compile all of the software in the BBC and turn them into an ISO9660 CD-ROM image file. The term "GAR" , but it is most commonly used by us as an expression of frustration or in the context of the GAR system. == Why was GAR written? == The BBC is required by the GPL to provide a written offer for the source code to many of the applications on the CD. Unfortunately, the original BBCs were slapped together rather haphazardly, and many applications were taken from existing Linux distros in binary form! The tarball of source code that was distributed from the old Web site was not enough for users to build their own BBC, and this disappointed many prospective developers. In addition to this, the disk space required to store all of our development versions of the BBC was quickly growing as a result of the "big fat tree of binaries" method of development. There was no revision control, and no logging of changes. Typically everything would be a scramble to get a gold image out the door before a trade show or other release deadline. The process of taking a tree of files and directories and making a compressed loopback bootable iso from it was pretty well automated, but there was no good way of getting the tree into the proper state. GAR downloads, checksums, patches, configures, builds, and installs packages using only a tree of makefiles and patches. This allows it to be stored in arch, and the size of the checked-out copy is only a few megabytes overall. == So why GAR? Why not ? == The goals of GAR are best suited to the compilation of *third-party* software. We theoretically could set up everything in a big autoconf tree, or scheme- or Java-based build system, but that would require a *lot* of hacking. GAR is designed to support a heterogeneous set of autoconfiguration and build tools, and to make the best of what a software package already has. It is important to remember that GAR itself doesn't replace autoconf or imake. Each third-party package will use an autoconfiguration tool of its own, and GAR simply provides hooks into the efficient automated use of these tools. == So why GAR? Why not ? == Again, GAR is designed to automate the compilation of third-party source code packages. It is true that some binary package systems do help somewhat, but none of them so far provide the ability to simply type "make install" and compile an entire GNU distribution from source (and with your own set of compiler flags and installation frobs). In many ways, GAR can be thought of as a kit for building your own OS. It is important to remember that GAR itself doesn't replace rpm or dpkg. In fact, the process of building and installing packages could be just as easily done by pointing GAR at a spec or debian/rules file, building a binary package, and then doing the package installation as the install step. = Building from Source Code = == How do I get GAR? == Issue the following commands. ----8<---- tla register-archive http://www.lnx-bbc.com/arch tla get lnx-bbc-devel@zork.net--gar/lnx-bbc--research gar ----8<---- Just hit return when it asks you for a password. For the stable branch, issue the following instead: ----8<---- tla register-archive http://www.lnx-bbc.com/arch tla get lnx-bbc-devel@zork.net--gar/lnx-bbc--stable gar ----8<---- == When I try to build GAR, it fails on one package. How do I fix it? == Sadly, the nature of compilation is that it will behave differently on different machines. The build system we use is a lightly-loaded Debian GNU/Linux installation. Your distribution will have slightly different headers and directory layouts, which can confuse certain portions of the build (glibc is especially finnicky). Your best bet is to file a bug against the package that failed. == How do I file a bug against a GAR package? == Simply send an e-mail to submit@bugs.lnx-bbc.com with a line that looks like this at the top: ----8<---- Package: gar ----8<---- Please describe the nature of your problem, and include the output of "uname -a" and the name and version of the distribution you're building on. Include at least a screenful of output, not just the Make error lines! == My build failed, and it is very frustrating. How do I get the tree that built the last actual release of LNX-BBC? == All of the 1.x versions of the BBC and LNX-BBC were built by taking binaries from a variety of sources (hand-compiled, out of Debian packages, etc) and just throwing them together. Our build system attempts to build two ISO files per day, and puts them up at . If you're just looking to boot our development pre-release and look around, that's the way to go. == I don't always have access to the Internet, but want to be able to build with a pre-downloaded set of tarballs. How do I get GAR to do this? == The LNX-BBC build process takes a few hundred megabytes of compressed source code. If you don't plan on having a constant network connection during the build process, you can pre-fetch source code in a couple of ways: First, you can run "make checksum" in the top-level gar/ dir. This may, however, download a number of tarballs for packages that are not needed by the BBC but are in the GAR tree nonetheless. The solution to this is to cd into gar/meta/lnx-bbc and run "make deep-checksum", and this will download and verify only those files needed by the BBC itself. The use of the checksum rule is not without its flaws, however. If you want these files to survive a "make clean" in any given package, then you should use "make garchive" in the top-level dir or "make deep-garchive" in gar/meta/lnx-bbc. == But I get a bunch of permission denied errors when I do a "make garchive"! I've never even heard of /var/www! What is this? == Debian solves the problem of "where do system HTML documents go?" in the FHS by putting them in /var/www. It's a controversy no matter where they go, but it's typically different on each system. The main GAR developers tend to use Debian a lot, so that's why it is the default. If you don't want your garchive to live in /var/www/garchive, then you'll want to change GARCHIVEROOT to the directory where you want to keep your tarballs. If you have a Web server, you can point it at that dir and share your garchive as a local cache to machines on your network! == My system has way too many problems during build. Is there some sort of pre-packaged build setup I can use? == Sneakums has been kind enough to provide us with a . You may wish to give that a try. == How do I package up a piece of software for GAR? == Your questions are most likely answered in the , which contains a package author's guide. == When I build a BBC, I'm finding that everything, including the chroot uses 5.3 GiB of disk space. Is this typical? == Yes. == I have a Gentoo system and I'd like to have GAR look for any files it needs in the portage download directory before it tries to get them off of the Internet. Is there an easy way to do this? == Yes. In gar.conf.mk, append "file://usr/portage/distfiles/" to FILE_SITES.