Загрузка данных
#!/bin/bash
echo "════════════════════════════════════════════════════════"
echo " ЗАГРУЗОЧНЫЙ ОБРАЗ ДЛЯ EEE PC + DOOM + ИГРЫ"
echo "════════════════════════════════════════════════════════"
# Установка пакетов
sudo apt update
sudo apt install -y dosfstools mtools syslinux grub-pc-bin bsdgames
# Создаём образ 150 МБ (DOOM весит много)
echo "[1/6] Создание образа 150 МБ..."
dd if=/dev/zero of=linux.img bs=1M count=150 status=progress
# Форматируем весь образ как FAT32
mkfs.vfat -F 32 -n "EEELINUX" linux.img
# Настройка mtools
export MTOOLS_NO_VFAT=1
export MTOOLS_SKIP_CHECK=1
# Создаём структуру
echo "[2/6] Создание структуры..."
mmd -i linux.img ::/boot
mmd -i linux.img ::/bin
mmd -i linux.img ::/etc
mmd -i linux.img ::/dev
mmd -i linux.img ::/proc
mmd -i linux.img ::/sys
mmd -i linux.img ::/tmp
mmd -i linux.img ::/root
mmd -i linux.img ::/usr
mmd -i linux.img ::/usr/bin
mmd -i linux.img ::/usr/games
mmd -i linux.img ::/usr/share
mmd -i linux.img ::/usr/share/games
mmd -i linux.img ::/usr/share/games/doom
mmd -i linux.img ::/var
mmd -i linux.img ::/var/games
# BusyBox
echo "[3/6] Установка BusyBox..."
cp /bin/busybox /tmp/busybox
mcopy -i linux.img /tmp/busybox ::/bin/
# Команды
for cmd in sh ls cat mkdir rm cp mount umount vi echo ps kill df free uname hostname clear reset; do
echo "#!/bin/busybox" > /tmp/${cmd}
echo "/bin/busybox ${cmd}" >> /tmp/${cmd}
mcopy -i linux.img /tmp/${cmd} ::/bin/
mattrib +x -i linux.img ::/bin/${cmd}
done
# Nano
echo "[4/6] Установка Nano..."
cp /bin/nano /tmp/nano
mcopy -i linux.img /tmp/nano ::/bin/
# ============================================
# ДОБАВЛЯЕМ ИГРЫ
# ============================================
echo "[5/6] Установка игр..."
cd /tmp
# 1. Tetris
echo " - Tetris..."
wget -q https://github.com/vicgeralds/vitetris/archive/refs/tags/v0.59.1.tar.gz -O vitetris.tar.gz
tar xf vitetris.tar.gz 2>/dev/null
cd vitetris-0.59.1
./configure --prefix=/usr 2>/dev/null >/dev/null
make 2>/dev/null >/dev/null
if [ -f vitetris ]; then
cp vitetris /tmp/tetris
cd /tmp
mcopy -i ../linux.img /tmp/tetris ::/usr/games/
mattrib +x -i ../linux.img ::/usr/games/tetris
fi
# 2. DOOM (Freedoom - бесплатная версия)
echo " - DOOM (Freedoom)..."
# Скачиваем статический chocolate-doom
wget -q https://github.com/chocolate-doom/chocolate-doom/releases/download/chocolate-doom-3.0.1/chocolate-doom-3.0.1-win32.zip -O doom.zip 2>/dev/null || \
wget -q https://www.chocolate-doom.org/downloads/3.0.1/chocolate-doom-3.0.1-win32.zip -O doom.zip 2>/dev/null
if [ -f doom.zip ]; then
unzip -q doom.zip
# Ищем exe файлы
for file in chocolate-doom-*/chocolate-doom.exe; do
if [ -f "$file" ]; then
cp "$file" /tmp/doom
break
fi
done
else
# Если не скачался, создаём скрипт-заглушку
cat > /tmp/doom << 'DOOMSH'
#!/bin/sh
echo "═══════════════════════════════════════════"
echo " DOOM для EEE PC"
echo "═══════════════════════════════════════════"
echo ""
echo "Для запуска DOOM нужно:"
echo "1. Установить chocolate-doom:"
echo " sudo apt install chocolate-doom"
echo ""
echo "2. Скачать WAD файл:"
echo " wget https://github.com/freedoom/freedoom/releases/download/v0.13.0/freedoom-0.13.0.zip"
echo " unzip freedoom-0.13.0.zip"
echo " cp freedoom-0.13.0/freedoom1.wad /usr/share/games/doom/"
echo ""
echo "3. Запустить:"
echo " chocolate-doom -iwad /usr/share/games/doom/freedoom1.wad"
echo ""
echo "Нажми Enter для возврата..."
read
DOOMSH
fi
if [ -f /tmp/doom ]; then
mcopy -i ../linux.img /tmp/doom ::/usr/games/
mattrib +x -i ../linux.img ::/usr/games/doom
fi
# 3. Скачиваем Freedoom WAD (бесплатный DOOM)
echo " - Скачивание Freedoom WAD..."
wget -q https://github.com/freedoom/freedoom/releases/download/v0.13.0/freedoom-0.13.0.zip -O freedoom.zip
if [ -f freedoom.zip ]; then
unzip -q freedoom.zip
if [ -f freedoom-0.13.0/freedoom1.wad ]; then
mcopy -i ../linux.img freedoom-0.13.0/freedoom1.wad ::/usr/share/games/doom/
mcopy -i ../linux.img freedoom-0.13.0/freedoom2.wad ::/usr/share/games/doom/ 2>/dev/null
echo " - Freedoom WAD добавлен!"
fi
fi
# 4. Другие игры из bsdgames
echo " - Дополнительные игры..."
for game in snake robots hunt; do
if [ -f /usr/games/$game ]; then
cp /usr/games/$game /tmp/$game
mcopy -i ../linux.img /tmp/$game ::/usr/games/
mattrib +x -i ../linux.img ::/usr/games/$game
fi
done
# ============================================
# ИГРОВОЕ МЕНЮ С DOOM
# ============================================
echo "Создание игрового меню..."
cat > /tmp/game_menu.sh << 'MENU'
#!/bin/sh
while true; do
clear
echo "╔════════════════════════════════════════════════════╗"
echo "║ ИГРЫ И РАЗВЛЕЧЕНИЯ ДЛЯ EEE PC ║"
echo "╠════════════════════════════════════════════════════╣"
echo "║ ║"
echo "║ 1. Тетрис (vitetris) ║"
echo "║ 2. Змейка (Snake) ║"
echo "║ 3. Роботы (Robots) ║"
echo "║ 4. Охота (Hunt) ║"
echo "║ 5. DOOM (Freedoom) - КУЛЬТОВАЯ ИГРА! ║"
echo "║ 6. Текстовый редактор (Nano) ║"
echo "║ 7. Командная строка ║"
echo "║ 8. Информация о системе ║"
echo "║ 9. Выход ║"
echo "║ ║"
echo "╚════════════════════════════════════════════════════╝"
echo -n "Выбери [1-9]: "
read choice
case $choice in
1)
if [ -f /usr/games/tetris ]; then
/usr/games/tetris
else
echo "Тетрис не установлен"
sleep 2
fi
;;
2)
if [ -f /usr/games/snake ]; then
/usr/games/snake
else
echo "Змейка не установлена"
sleep 2
fi
;;
3)
if [ -f /usr/games/robots ]; then
/usr/games/robots
else
echo "Роботы не установлены"
sleep 2
fi
;;
4)
if [ -f /usr/games/hunt ]; then
/usr/games/hunt
else
echo "Охота не установлена"
sleep 2
fi
;;
5)
clear
echo "═══════════════════════════════════════════"
echo " DOOM"
echo "═══════════════════════════════════════════"
echo ""
if [ -f /usr/games/doom ] && [ -f /usr/share/games/doom/freedoom1.wad ]; then
echo "Запуск DOOM..."
echo "Управление:"
echo " Стрелки - движение"
echo " Ctrl - стрельба"
echo " Пробел - открыть двери"
echo ""
echo "Нажми Enter для запуска..."
read
/usr/games/doom -iwad /usr/share/games/doom/freedoom1.wad 2>/dev/null
else
echo "DOOM не готов к запуску!"
echo ""
echo "Что нужно сделать:"
echo "1. DOOM установлен: $(test -f /usr/games/doom && echo '✅' || echo '❌')"
echo "2. WAD файл: $(test -f /usr/share/games/doom/freedoom1.wad && echo '✅' || echo '❌')"
echo ""
echo "Скачать WAD:"
echo " wget https://github.com/freedoom/freedoom/releases/download/v0.13.0/freedoom-0.13.0.zip"
echo " unzip freedoom-0.13.0.zip"
echo " cp freedoom-0.13.0/freedoom1.wad /usr/share/games/doom/"
fi
echo ""
echo "Нажми Enter для возврата..."
read
;;
6)
/bin/nano
;;
7)
echo "Введи 'exit' для возврата в меню"
/bin/sh
;;
8)
clear
echo "═══════════════════════════════════════════"
echo " ИНФОРМАЦИЯ О СИСТЕМЕ"
echo "═══════════════════════════════════════════"
echo ""
echo "Система: Linux FAT32 для EEE PC"
echo "Ядро: $(/bin/uname -r 2>/dev/null || echo 'минимальное')"
echo ""
echo "Память:"
/bin/free -h 2>/dev/null || echo "не определена"
echo ""
echo "Диск:"
/bin/df -h 2>/dev/null || echo "не определён"
echo ""
echo "Игры:"
for g in tetris snake robots hunt doom; do
if [ -f /usr/games/$g ]; then
echo " ✅ $g"
fi
done
echo ""
echo "Нажми Enter для возврата..."
read
;;
9)
exit 0
;;
*)
echo "Неверный выбор!"
sleep 1
;;
esac
done
MENU
mcopy -i linux.img /tmp/game_menu.sh ::/usr/games/menu
mattrib +x -i linux.img ::/usr/games/menu
# Скрипт автозапуска
cat > /tmp/init.sh << 'INIT'
#!/bin/sh
# Монтируем системы
/bin/mount -t proc none /proc
/bin/mount -t sysfs none /sys
/bin/mount -t devtmpfs none /dev
# Очищаем экран
echo -e "\033[2J\033[H"
echo ""
echo "╔════════════════════════════════════════════════════╗"
echo "║ EEE PC LINUX + DOOM! ║"
echo "╠════════════════════════════════════════════════════╣"
echo "║ Введи 'menu' для запуска игр ║"
echo "║ DOOM ждёт тебя! ║"
echo "╚════════════════════════════════════════════════════╝"
echo ""
# Запускаем шелл
/bin/sh
INIT
mcopy -i linux.img /tmp/init.sh ::/
mattrib +x -i linux.img ::/init.sh
# ============================================
# УСТАНОВКА ЗАГРУЗЧИКА
# ============================================
echo "[6/6] Установка загрузчика..."
# Ядро-заглушка
cat > /tmp/vmlinuz << 'KERNEL'
#!/bin/sh
exec /init.sh
KERNEL
mcopy -i linux.img /tmp/vmlinuz ::/boot/
mattrib +x -i linux.img ::/boot/vmlinuz
# Syslinux конфиг
cat > /tmp/syslinux.cfg << 'SYSLINUX'
DEFAULT linux
TIMEOUT 10
PROMPT 0
LABEL linux
SAY Booting EEE PC Linux with DOOM...
KERNEL /boot/vmlinuz
SYSLINUX
mcopy -i linux.img /tmp/syslinux.cfg ::/syslinux.cfg
# Установка MBR
syslinux -i linux.img 2>/dev/null
dd if=/usr/lib/syslinux/mbr.bin of=linux.img bs=440 count=1 conv=notrunc 2>/dev/null
echo -ne "\x80\x01" | dd of=linux.img bs=1 seek=446 count=2 conv=notrunc 2>/dev/null
echo -ne "\x55\xAA" | dd of=linux.img bs=1 seek=510 count=2 conv=notrunc 2>/dev/null
# Очистка
cd /tmp
rm -rf *.tar.gz *.zip vitetris-* freedoom-* chocolate-doom-* doom 2>/dev/null
rm -f *.sh *.cfg vmlinuz busybox nano tetris snake robots hunt 2>/dev/null
echo ""
echo "════════════════════════════════════════════════════════"
echo " ✅ ГОТОВО! Образ с DOOM создан!"
echo "════════════════════════════════════════════════════════"
echo ""
echo "Размер: $(du -h /tmp/linux.img | cut -f1)"
echo ""
echo "Запись на флешку:"
echo " sudo dd if=/tmp/linux.img of=/dev/sdX bs=1M status=progress"
echo ""
echo "После загрузки на Eee PC:"
echo " 1. Введи 'menu'"
echo " 2. Выбери DOOM"
echo " 3. УБИВАЙ ДЕМОНОВ!"
echo ""
echo "════════════════════════════════════════════════════════"