Загрузка данных
#!/bin/bash
set -e
echo "=== Создание linux.img для Asus Eee PC 2G ==="
echo "=== Ядро 2.6.22 + игры + 4 МБ ОЗУ ==="
# Размер образа = 50 МБ (влезает на SSD 2 ГБ)
echo "[1/7] Создание образа 50 МБ..."
dd if=/dev/zero of=linux.img bs=1M count=50
echo -e "o\nn\np\n1\n\n\na\nw" | fdisk linux.img
sudo losetup -fP linux.img
LOOP=$(losetup -l | grep linux.img | awk '{print $1}')
sudo mkfs.ext2 ${LOOP}p1
sudo mount ${LOOP}p1 /mnt/linux
sudo mkdir -p /mnt/linux/{boot,bin,sbin,dev,proc,sys,etc,lib,usr/games,var/games,tmp}
# --------------------------------------------------
# Шаг 2: Ядро 2.6.22.1 (поддержка Eee PC 2G)
# --------------------------------------------------
echo "[2/7] Сборка ядра 2.6.22.1..."
cd /tmp
wget -q https://mirrors.edge.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.1.tar.xz
tar xf linux-2.6.22.1.tar.xz
cd linux-2.6.22.1
make mrproper
# Конфиг для Eee PC 2G (Pentium M, Intel 910GML, PATA SSD, Atheros)
cat > .config << 'KERNCONF'
# Процессор
CONFIG_X86_32=y
CONFIG_MPENTIUMM=y
CONFIG_SMP=n
CONFIG_NR_CPUS=1
# Память
CONFIG_HIGHMEM=n
CONFIG_FLATMEM=y
CONFIG_4MB_PAGES=y
# ACPI
CONFIG_ACPI=y
CONFIG_ACPI_SLEEP=y
# PCI
CONFIG_PCI=y
CONFIG_PCIEPORTBUS=y
# Диски (PATA SSD Eee PC)
CONFIG_BLK_DEV_SD=y
CONFIG_ATA=y
CONFIG_ATA_PIIX=y
CONFIG_PATA_MPIIX=y
# Файловые системы
CONFIG_EXT2_FS=y
CONFIG_EXT3_FS=y
CONFIG_TMPFS=y
CONFIG_PROC_FS=y
CONFIG_SYSFS=y
# Сеть (Atheros L2 Ethernet)
CONFIG_NET=y
CONFIG_INET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_ATL2=y
# WiFi (Atheros AR5007EG)
CONFIG_ATH5K=m
# Графика (Intel GMA 900)
CONFIG_DRM=y
CONFIG_DRM_I915=y
CONFIG_FB=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_LOGO=y
# USB
CONFIG_USB=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_UHCI_HCD=y
CONFIG_USB_STORAGE=y
# TTY
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
# Devtmpfs
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
# Базовые
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF=y
CONFIG_BINFMT_SCRIPT=y
KERNCONF
make olddefconfig 2>/dev/null
make -j$(nproc)
sudo cp arch/i386/boot/bzImage /mnt/linux/boot/vmlinuz
cd /tmp && rm -rf linux-2.6.22.1
# --------------------------------------------------
# Шаг 3: Busybox (стабильный)
# --------------------------------------------------
echo "[3/7] Установка busybox..."
cd /tmp
wget -q https://busybox.net/downloads/busybox-1.21.1.tar.bz2
tar xf busybox-1.21.1.tar.bz2
cd busybox-1.21.1
cat > .config << 'BBCONF'
CONFIG_STATIC=y
CONFIG_INSTALL_NO_USR=y
CONFIG_FEATURE_INSTALLER=y
CONFIG_ASH=y
CONFIG_CAT=y
CONFIG_LS=y
CONFIG_CP=y
CONFIG_MV=y
CONFIG_MKDIR=y
CONFIG_RM=y
CONFIG_CHMOD=y
CONFIG_MOUNT=y
CONFIG_UMOUNT=y
CONFIG_VI=y
CONFIG_CLEAR=y
CONFIG_ECHO=y
CONFIG_HOSTNAME=y
CONFIG_IFCONFIG=y
CONFIG_PING=y
CONFIG_WGET=y
CONFIG_TFTP=y
CONFIG_FDISK=y
CONFIG_MKFS_EXT2=y
CONFIG_SYSLOGD=y
CONFIG_KLOGD=y
CONFIG_GETTY=y
CONFIG_LOGIN=y
CONFIG_PASSWD=y
CONFIG_INIT=y
CONFIG_MDEV=y
CONFIG_MODPROBE=y
BBCONF
make oldconfig
make -j$(nproc)
sudo make CONFIG_PREFIX=/mnt/linux install
cd /tmp && rm -rf busybox-1.21.1
# --------------------------------------------------
# Шаг 4: Игры
# --------------------------------------------------
echo "[4/7] Установка игр..."
# Тетрис
cd /tmp
wget -q https://github.com/vicgeralds/vitetris/archive/refs/tags/v0.59.1.tar.gz -O vitetris.tar.gz
tar xf vitetris.tar.gz
cd vitetris-0.59.1
./configure --prefix=/usr 2>/dev/null
make -j$(nproc) 2>/dev/null
sudo cp vitetris /mnt/linux/usr/games/ 2>/dev/null || true
cd /tmp && rm -rf vitetris*
# Nethack
cd /tmp
wget -q https://www.nethack.org/download/3.4.3/nethack-343.tgz
tar xf nethack-343.tgz
cd nethack-3.4.3
./configure --prefix=/usr 2>/dev/null
make -j$(nproc) 2>/dev/null
sudo cp nethack /mnt/linux/usr/games/ 2>/dev/null || true
cd /tmp && rm -rf nethack*
# ASCII-игры из bsdgames (тетрис, змейка, роботы и т.д.)
sudo apt install -y bsdgames 2>/dev/null || true
sudo cp /usr/games/tetris /mnt/linux/usr/games/ 2>/dev/null || true
sudo cp /usr/games/snake /mnt/linux/usr/games/ 2>/dev/null || true
sudo cp /usr/games/robots /mnt/linux/usr/games/ 2>/dev/null || true
sudo cp /usr/games/hunt /mnt/linux/usr/games/ 2>/dev/null || true
# --------------------------------------------------
# Шаг 5: Меню игр
# --------------------------------------------------
echo "[5/7] Создание меню..."
sudo tee /mnt/linux/usr/games/menu.sh << 'MENU'
#!/bin/sh
while true; do
clear
echo "╔══════════════════════════════╗"
echo "║ ИГРЫ (Linux 2.6, 4MB O3У) ║"
echo "╠══════════════════════════════╣"
echo "║ 1. Тетрис (vitetris) ║"
echo "║ 2. Змейка (snake) ║"
echo "║ 3. Nethack (рогалик) ║"
echo "║ 4. Роботы (robots) ║"
echo "║ 5. Охота (hunt) ║"
echo "║ 6. Выход ║"
echo "╚══════════════════════════════╝"
echo -n "Выбери игру: "
read choice
case $choice in
1) vitetris ;;
2) snake ;;
3) nethack ;;
4) robots ;;
5) hunt ;;
6) exit 0 ;;
*) echo "Неверный выбор!" ; sleep 1 ;;
esac
done
MENU
sudo chmod +x /mnt/linux/usr/games/menu.sh
# --------------------------------------------------
# Шаг 6: Настройка системы
# --------------------------------------------------
echo "[6/7] Настройка /etc..."
# /etc/profile
sudo tee /mnt/linux/etc/profile << 'PROFILE'
export PATH=/bin:/sbin:/usr/bin:/usr/games
export PS1="\u@eee:\w\$ "
alias ll="ls -la"
alias menu="/usr/games/menu.sh"
echo ""
echo " Linux 2.6.22 на Asus Eee PC 2G"
echo " ОЗУ: 512 МБ (режим 4 МБ в эмуляции)"
echo " Введи 'menu' для списка игр"
echo ""
PROFILE
# /etc/inittab
sudo tee /mnt/linux/etc/inittab << 'INITTAB'
::sysinit:/etc/init.d/rcS
::askfirst:/bin/sh
::ctrlaltdel:/bin/umount -a -r
INITTAB
# /etc/init.d/rcS
sudo mkdir -p /mnt/linux/etc/init.d
sudo tee /mnt/linux/etc/init.d/rcS << 'RCS'
#!/bin/sh
mount -t proc none /proc
mount -t sysfs none /sys
mount -t devtmpfs none /dev
/bin/hostname eee
echo "Система готова."
RCS
sudo chmod +x /mnt/linux/etc/init.d/rcS
# /etc/fstab
sudo tee /mnt/linux/etc/fstab << 'FSTAB'
/dev/sda1 / ext2 defaults 0 1
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
FSTAB
# --------------------------------------------------
# Шаг 7: Загрузчик syslinux
# --------------------------------------------------
echo "[7/7] Установка загрузчика..."
sudo apt install -y syslinux
sudo mkdir -p /mnt/linux/boot/syslinux
sudo extlinux --install /mnt/linux/boot/syslinux
# Конфиг syslinux
sudo tee /mnt/linux/boot/syslinux/syslinux.cfg << 'SYSLINUX'
DEFAULT linux
LABEL linux
KERNEL /boot/vmlinuz
APPEND root=/dev/sda1 ro quiet
SYSLINUX
# Записываем MBR
sudo dd if=/usr/lib/syslinux/mbr/mbr.bin of=${LOOP} bs=440 count=1 conv=notrunc 2>/dev/null || \
sudo dd if=/usr/lib/SYSLINUX/mbr.bin of=${LOOP} bs=440 count=1 conv=notrunc 2>/dev/null || true
# Размонтирование
sudo umount /mnt/linux
sudo losetup -d ${LOOP}
echo ""
echo "╔══════════════════════════════════════╗"
echo "║ ГОТОВО! linux.img (50 МБ) ║"
echo "╠══════════════════════════════════════╣"
echo "║ Ядро: Linux 2.6.22 ║"
echo "║ Игры: Тетрис, Змейка, Nethack ║"
echo "║ Роботы, Охота ║"
echo "║ Загрузка: syslinux ║"
echo "║ Железо: Eee PC 2G (Pentium M) ║"
echo "╚══════════════════════════════════════╝"
echo ""
echo "Запись на флешку:"
echo " sudo dd if=linux.img of=/dev/sdX bs=1M"
echo ""
echo "Загрузка на Eee PC:"
echo " 1. Вставить флешку"
echo " 2. Зажать ESC при включении"
echo " 3. Выбрать флешку в Boot Menu"