Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Steve3184/floppinux

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

floppinux: An Embedded 🐧Linux on a Single 💾Floppy

Introduction

Floppinux is a Linux distribution designed to run on a single floppy disk. It is characterized by its small size, flexibility, and support for udf and msdos file systems.

Features

  • Small footprint: Floppinux occupies only 1.4M of space, making it suitable for older computers.
  • Flexible customization: Customizable rootfs and streamlined Busybox.
  • Built-in tools: Includes hush and vi, meeting basic user needs in a command-line environment.
  • Mounting support: Supports mounting CD/DVD in UDF format and floppy disks in FAT format.
  • Strong compatibility: Minimum support for 486SX processor and sb16 sound card.

Supported Internet Cards

  • 3c509/3c579 "EtherLink III"
  • 3c515 ISA "Fast EtherLink"
  • 3c590/3c900 series (592/595/597) "Vortex/Boomerang"
  • 3cr990 series "Typhoon"
  • AMD 8111 (new PCI LANCE)
  • AMD LANCE and PCnet (AT1500 and NE2100)
  • AMD PCnet32 PCI
  • Intel(R) PRO/100+
  • Intel(R) PRO/1000 Gigabit Ethernet
  • Intel(R) PRO/1000 PCI-Express Gigabit Ethernet
  • Novell NE1000/NE2000 compatible ISA cards
  • RealTek RTL-8139 C+ PCI Fast Ethernet Adapter
  • RealTek RTL-8129/8130/8139 PCI Fast Ethernet Adapter
  • Realtek 8169/8168/8101/8125 ethernet

Compilation

  1. Ensure the necessary packages for compilation are installed:
    • dosfstools syslinux make build-essential nasm libc6-dev-i386 qemu-system-i386 (required for testing)
    • On Debian/Ubuntu, use the following command to install:
      sudo apt install -y dosfstools syslinux make build-essential nasm libc6-dev-i386 qemu-system-i386
  2. Clone this repository:
    git clone https://github.com/Steve3184/floppinux
    cd floppinux
  3. Compile Floppinux using make:
    make all                  # Full compilation
    make rebuild              # Re-compile kernel, busybox and rootfs after deleting previously compiled ones
    make rebuild_floppy_image # Re-compile floppy image after deleting previously compiled ones
    make clean                # Delete built bzImage, busybox, and rootfs
    make reset                # Reset (clear all content)
    make size                 # Get size after compilation of floppinux
  4. Test the generated image file (default saved as floppinux.img):
    • If you have a floppy disk, write it using dd:
      sudo dd if=floppinux.img of=/dev/fdX bs=1k count=1440
    • If you do not have a floppy disk or want to test it in qemu, use this to start qemu:
      make test_floppy_image
  5. You can add files to overlay the rootfs under configs/overlay/, and compile after modification:
    make clean_filesystem rootfs

Compiled sizes:

File Size
bzImage 1.3M
ldlinux.sys 32K
rootfs.cpio.xz 118K
syslinux.cfg 126B
mod.dat 1.1M
box.dat 523K

Networking

umount /mnt # Make sure no disk mounted on /mnt
# Insert 'floppinux-box.img'
mount -o ro /dev/fd1 /mnt
cd /mnt
loadbusybox
exit
# Press Enter
# Insert 'floppinux-mod.img'
umount /mnt
mount -o ro /dev/fd1 /mnt
cd /mnt
loadmod
cd /root
umount /mnt

modprobe pcnet32  # Install driver for VritualBox
modprobe snd-sb16 # Enable Sound
modprobe vfat     # Enable FAT32 Support
#modprobe ne2k-pci

/etc/init.d/02network start
# or
exit
# Press Enter
ifconfig

Notes

If you are unable to access Github or the speed is slow, modify the URLs used for downloading in the Makefile:

# GIT Urls
LINUX_GIT   = Change to the Kernel Git mirror in your region, for example, for Chinese users:
                https://mirrors.tuna.tsinghua.edu.cn/git/linux.git
              Default:
                https://github.com/torvalds/linux.git
BUSYBOX_GIT = Change to the Busybox Git mirror in your region, for example, for Chinese users:
                https://gitee.com/Steve3184/busybox.git
              Default:
                https://github.com/mirror/busybox.git
CHECK_UPDATE = Whether to check for updates (yes/no), default is no

About

An Embedded 🐧Linux on a Single 💾Floppy

Topics

Resources

Stars

Watchers

Forks

Releases

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.