GNU Linux/FREESCO/Guides/Bootable CD

From Wiki
Jump to: navigation, search

The following content is a Work In Progress and may contain broken links, incomplete directions or other errors. Once the initial work is complete this notice will be removed. Please contact me via Twitter with any questions and I'll try to help you out.

Much of the following content has been ported over with little correction from its original source. The directions may contain broken links and may also refer to older software or operating systems that are no longer supported by their respective vendors. If you have specific questions, please contact me via Twitter and I'll try to help you out.


  • No liability for the contents of this documents can be accepted. Use the concepts, examples and other content at your own risk.
  • There may be errors and inaccuracies in this document that may be damaging to your system. Proceed with caution, and although this is highly unlikely, the author(s) do(es) not take any responsibility for problems that may occur.
  • All copyrights are held by their by their respective owners, unless specifically noted otherwise. Use of a term in this document should not be regarded as affecting the validity of any trademark or service mark.
  • Naming of particular products or brands should not be seen as endorsements (although I prefer OS/FS apps/tools).
  • You are strongly recommended to make backups of any data you do not wish to lose. Though chances are slim, this is without guarantee.
  • Data integrity is not warranted. Any damage whether consequental or coincidental is not my liability. Downloads are provided for your conveinance, and the MD5 Signatures are also provided for your conveinance. No warranty is provided.
  • You are responsible for using all software mentioned herein as the authors of the software intended. Any software mentioned being shareware will need to be registered if you plan on using them for a period other than mentioned in their respective liscenses.
  • Summary: You are responsible for your own actions.

What is Freesco?

FREESCO is/was designed to be a replacement for commercial routers, and pretty much is used the same way. However, unlike a commercial router (and its OS) FREESCO is Free software. Both in cost, availability and source code. Also, FREESCO is well supported, and very flexible with it's configuration. The FREESCO forums [1] are well developed and very friendly toward questions from newbies, as long as you did your homework before asking a thousand questions. ;-)

What are the requirements?

It's able to run on a 386 with 8 MBs of ram, a floppy drive and two network interfaces (be it modem or NIC). Although for performance reasons you will want to use at least a 486 with perhaps 16 MB ram.

Where do I get it?

The official distribution is found at the FREESCO homepage [2] or the FREESCO package repository [3].

Can it be edited?

Yes. FREESCO is a small UMSDOS based GNU/Linux distro developed on ZipSlack 3.9 [4] [5]. Since it uses UMSDOS, it is editable by anything that can read/write that file system. Examples include all versions of DOS, Windows and quite obviously, GNU_Linux. I'm not certain, but possibly read/write by Mac and OS/2. Though don't quote me on that last one. ;-)

How do you edit FREESCO?


The one line answer is, Edit the scripts using a UNIX compatible text editor.

Notepad++ [6] is my favorite Windows source code editor and will work well for this purpose. In the past I used MetaPad [7] due to its support for UNIX text file support.


Run Setup. This will modify most settings that will need to be changed.

If you have scripts or commands that you wish to run on bootup, there is a section in rc_user for that purpose. For more information about that, see the forum [1].

FREESCO is composed mostly of well written scripts plus all the binaries that are needed to function properly. So, all in all, it's very easy to tweak.


You're probably talking about the FREESCO kernel. The kernel has patches that have been applied since the stock 2.0.38 kernel which, the FREESCO kernel was built from. If you're wanting to change the FREESCO kernel, I would recommend that you download ZipSlack 3.9 [5] and the source for the GNU/Linux FREESCO kernel [8] and compile it with any options you might need.

When I last edited the previous version of this document [9], a vulnerability [10] had been discovered with 2.0.x kernels (2.0.0 through 2.0.39 inclusive) that resulted in information disclosure due to a memory leak in the source code. With the right firewall configuration (not providing ICMP error response), this was a non-issue for affected kernels.

From Secunia Advisory 8991 [11]:

A vulnerability has been identified in Linux Kernel 2.0 branch allowing malicious people to see random parts of the memory.

The problem is that the Linux Kernel fails to calculate the size for an ICMP error response. This causes the Linux Kernel to return too much data when sending ICMP errors.

The data which is returned by the Kernel appears to be random data from memory. This could lead to exposure of passwords, system configuration and more.

Apparently, there is no way for a malicious person to control what parts of memory the data comes from.

Linux Kernel versions 2.0 to 2.0.39 are vulnerable.

The 2.0.39 or 2.0.40 FREESCO kernel sources [8] have been patched to fix this problem. This vulnerability was also patched in the official Linux 2.0.40 kernel [12].

If you choose to compile the 2.0.38 version of the FREESCO kernel, you will want to apply the memory leak patch. I haven't tested it, but I'd recommend trying the 2.0.40 FREESCO kernel sources [8] vs trying to locate the memory leak patch.

If you plan on making a bootable FREESCO , you'll have to have some way to mount the cdrom. I use a monolithic kernel, where everything is built in. It makes it easier for me, and I have read that A Monolithic kernel can talk directly to its devices faster than a module [13].

Whether this is true or not, I do not know. In reality, I have not noticed any real difference as of yet in speed. Perhaps on a heavily used system there is a major difference, but I have not noticed a difference on any of mine.

If you like having a smaller kernel, and for the ability to unload and load device drivers should any of the devices hang, having kernel modules may prove to work better for you. I have heard that many administrators prefer this method. The choice is yours. If you want a monolithic kernel compiled with iso9660 support, you can download my custom kernel [14] and related modules [15]

This kernel has support for :

  • ext
  • ext2
  • iso9660
  • umsdos
  • minix [16]
  • vfat
  • 3c90x compatible NICs (See below)
  • loop back support

This kernel cannot be used to replace the stock FREESCO Kernel. Though this kernel is compiled using the source code used to create the FREESCO 0.2.7 kernel, it does not contain support for the echoer port, or modems. This could be achieved by loading the modules for those items however ... This kernel was compiled strictly for my use, and no forethought was given for the usage of this kernel by anyone else. If you happen to use the 3c90x NIC, then you're in business. If not, no great tragedy. You'll just have to tailor a kernel to suit you from the source code, or ignore the warning that no 3c90x NICs were detected.

I'd suggest you get two (or 3 depending on your setup) 3c905Cs anyway. They are a favored card, and for good reason.

Another thing, as you'll find out, the space you'll save (10K or less) really doesn't matter from a storage perspective, as you'll have about 650+ MB of space to play with.

In what ways can you use Freesco?

How do you make Freesco boot from cd?

Can you use the floppy as a boot image?

How do I edit the ramdisk?

I use Windows, what tools do I need?

ZipSlack 3.9 - What is it and do I really need it?

I use Linux, what tools do I need?

Should I use a regular distro or do I need ZipSlack 3.9?

Full Steps for creating Freesco Bootable CD like I did (sorta)



  1. 1.0 1.1 FREESCO forums
  2. FREESCO homepage
  3. Official FREESCO package repository
  4. ZipSlack homepage
  5. 5.0 5.1 ZipSlack 3.9 download mirror
  6. Notepad++ homepage
  7. Metapad homepage
  8. 8.0 8.1 8.2 - FREESCO Kernel source code
  9. The last version of this document was from circa 2005-2006
  10. Linux kernel IP stack incorrectly calculates size of an ICMP citation for ICMP errors
  11. Advisory 8991
  12. Official Linux kernel 2.0.40 changelog
  13. Red Hat Certified Engineer Linux Study Guide ISBN 0-07-212155-6
  14. My custom FREESCO kernel
  15. My custom FREESCO kernel modules
  16. it made so little difference I went ahead anyway

Sources of Information & Tips


Mirror Sites