Skip to content

xpnguinx/asus-t100-Debian-Linux-install

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Debian Installation Guide for ASUS T100 Tablet

Successfully tested and working!

This guide provides step-by-step instructions for installing Debian 13.1.0 on the ASUS T100 tablet, which has a 32-bit UEFI firmware despite having a 64-bit processor.

Quick Summary

Create a bootable USB drive with Debian 13.1.0 installer that works on ASUS T100 and similar 32-bit UEFI devices.

Table of Contents

Prerequisites

  • USB drive: 8GB minimum (16GB+ recommended)
  • Working Linux system: For creating the bootable USB (Raspberry Pi, Ubuntu, Debian, etc.)
  • Debian ISO: debian-13.1.0-amd64-netinst.iso (download here)
  • 32-bit UEFI bootloader: bootia32.efi from hirotakaster/baytail-bootia32.efi
  • Internet connection: Required during installation (netinst downloads packages)

Step-by-Step Installation Guide

Quick Start (Automated Script)

For a faster setup, you can use the automated script:

# Clone or download this repository
git clone https://github.com/YOUR-USERNAME/asus-t100-debian.git
cd asus-t100-debian

# Make script executable
chmod +x create-usb.sh

# Run the script (replace /dev/sdX with your USB device)
sudo ./create-usb.sh /dev/sdX

The script will automatically download the ISO and bootloader, then create the bootable USB.

Or follow the manual steps below:

Part 1: Prepare USB Drive

1.1 Format USB Drive with GPT and FAT32

Insert your USB drive and identify it (usually /dev/sda or /dev/sdb). WARNING: This will erase all data on the USB!

# Identify your USB drive (look for your USB size)
lsblk

# Unmount if mounted
sudo umount /dev/sda1  # Replace sda with your USB device

# Create GPT partition table (WARNING: ERASES ALL DATA!)
sudo parted /dev/sda --script mklabel gpt
sudo parted /dev/sda --script mkpart primary fat32 1MiB 100%
sudo parted /dev/sda --script set 1 esp on

# Format as FAT32
sudo mkfs.vfat -F32 /dev/sda1

# Create mount points
sudo mkdir -p /mnt/usb /mnt/iso

1.2 Mount and Download Required Files

# Mount USB drive
sudo mount /dev/sda1 /mnt/usb

# Download Debian netinst ISO (if not already downloaded)
cd ~/Downloads
wget https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-13.1.0-amd64-netinst.iso

# Mount the ISO
sudo mount -o loop debian-13.1.0-amd64-netinst.iso /mnt/iso

# Download 32-bit UEFI bootloader
wget https://github.com/hirotakaster/baytail-bootia32.efi/raw/master/bootia32.efi

Part 2: Copy ISO Contents to USB

2.1 Copy All ISO Contents

IMPORTANT: Copy the entire ISO contents, including the pool directory!

# Copy all contents from ISO to USB
sudo cp -r /mnt/iso/* /mnt/usb/
sudo cp -r /mnt/iso/.disk /mnt/usb/

# Verify pool directory was copied (should show ~600-625MB)
du -sh /mnt/usb/pool

Part 3: Install 32-bit UEFI Bootloader

3.1 Create EFI Boot Structure

# Create EFI directories
sudo mkdir -p /mnt/usb/EFI/BOOT
sudo mkdir -p /mnt/usb/EFI/debian

# Copy 32-bit bootloader (CRITICAL for T100!)
sudo cp bootia32.efi /mnt/usb/EFI/BOOT/

# Copy 64-bit bootloaders from ISO (for compatibility)
sudo cp /mnt/iso/EFI/BOOT/bootx64.efi /mnt/usb/EFI/BOOT/
sudo cp /mnt/iso/EFI/BOOT/grubx64.efi /mnt/usb/EFI/BOOT/
sudo cp /mnt/iso/EFI/debian/grubx64.efi /mnt/usb/EFI/debian/

3.2 Install 32-bit GRUB Modules

# Create GRUB directories
sudo mkdir -p /mnt/usb/boot/grub/i386-efi
sudo mkdir -p /mnt/usb/boot/grub/x86_64-efi

# Extract 32-bit GRUB package from ISO
cd /tmp
cp /mnt/iso/pool/main/g/grub2/grub-efi-ia32-bin_2.12-9_amd64.deb .
ar x grub-efi-ia32-bin_2.12-9_amd64.deb
tar -xf data.tar.xz

# Copy 32-bit GRUB modules to USB
sudo cp -r usr/lib/grub/i386-efi/* /mnt/usb/boot/grub/i386-efi/

# Copy 64-bit GRUB modules from ISO
sudo cp -r /mnt/iso/boot/grub/x86_64-efi/* /mnt/usb/boot/grub/x86_64-efi/

# Copy GRUB font
sudo cp /mnt/iso/boot/grub/font.pf2 /mnt/usb/boot/grub/

3.3 Create GRUB Configuration

Create the GRUB config file:

sudo nano /mnt/usb/boot/grub/grub.cfg

Paste this configuration (see grub.cfg file in this repository for the complete version):

set default=0
set timeout=5

loadfont ($root)/boot/grub/font.pf2

menuentry "Debian 13.1.0 Installer (Graphical)" {
    linux /install.amd/vmlinuz vga=788 --- quiet
    initrd /install.amd/gtk/initrd.gz
}

menuentry "Debian 13.1.0 Installer (Text)" {
    linux /install.amd/vmlinuz vga=788 --- quiet
    initrd /install.amd/initrd.gz
}

menuentry "Debian 13.1.0 Installer (Expert)" {
    linux /install.amd/vmlinuz priority=low vga=788 ---
    initrd /install.amd/gtk/initrd.gz
}

menuentry "Debian 13.1.0 Rescue Mode" {
    linux /install.amd/vmlinuz vga=788 rescue/enable=true --- quiet
    initrd /install.amd/gtk/initrd.gz
}

Save and exit (Ctrl+O, Enter, Ctrl+X).

Part 4: Finalize and Boot

4.1 Unmount USB Safely

# Sync all writes to USB
sync

# Unmount everything
sudo umount /mnt/iso
sudo umount /mnt/usb

# Safe to remove USB now

4.2 Configure ASUS T100 BIOS

  1. Boot into BIOS (press F2 or DEL during startup)
  2. Disable Secure Boot (Security → Secure Boot → Disabled)
  3. Set Boot Mode to UEFI (not Legacy/CSM)
  4. Disable Fast Boot (optional but recommended)
  5. Save and exit

4.3 Boot from USB

  1. Insert USB drive into T100
  2. Power on and press ESC for boot menu
  3. Select your USB drive from the boot menu
  4. GRUB menu should appear
  5. Select "Debian 13.1.0 Installer (Graphical)"

Part 5: Install Debian

Follow the Debian installer:

  1. Select language, location, and keyboard
  2. Network configuration (connect to WiFi if available)
  3. Set hostname and domain
  4. Create user account and password
  5. Partition disks (Guided - use entire disk recommended for beginners)
  6. Select software (Debian desktop environment + standard system utilities)
  7. Install GRUB bootloader to the internal disk
  8. Complete installation and reboot

The installer should complete without errors. Remove the USB when prompted and reboot.

Repository Files

This repository contains the following files to help you install Debian on your ASUS T100:

File Description
README.md Complete installation guide (this file)
QUICK-START.md Quick checklist for installation
create-usb.sh Automated script to create bootable USB
grub.cfg GRUB configuration file reference
CONTRIBUTING.md Guide for contributing to this project
LICENSE MIT License
.gitignore Files to exclude from git repository

The Challenge

The ASUS T100 (and T100TA) has a 32-bit UEFI firmware despite having a 64-bit Intel Atom processor. This is common in Intel Atom-based tablets from 2013-2015. Most bootable USB creation tools only install 64-bit UEFI bootloaders, which won't work on these devices.

Hardware Details

  • Target Device: ASUS T100 tablet
  • USB Drive: 114.6 GB SanDisk USB 3.2 Gen1 (/dev/sda)
  • Partition: Single GPT partition, FAT32, marked as EFI System Partition
  • Working System: Raspberry Pi running Debian Bookworm

What We Did (Technical Journey)

1. Initial Setup - 64-bit UEFI (Failed)

  • Created EFI/BOOT directory on USB
  • Extracted bootx64.efi and grubx64.efi from Debian ISO
  • Copied GRUB modules and created configuration
  • Result: BIOS ignored the USB and returned to setup

2. Added 32-bit UEFI Support (Bootloader Success)

Key Discovery: T100 requires bootia32.efi for 32-bit UEFI

  • Downloaded 32-bit UEFI bootloader from https://github.com/hirotakaster/baytail-bootia32.efi
  • Extracted 32-bit GRUB modules from Debian package grub-efi-ia32-bin_2.12-9_amd64.deb
  • Installed both 32-bit and 64-bit bootloaders for compatibility
  • Result: USB booted successfully, GRUB menu appeared

3. Fixed Installation Media Detection (Media Success)

Problem: Debian installer said "Detected media cannot be used for installation"

Cause: Original GRUB config tried to boot from ISO file using loopback. The installer couldn't access the ISO to detect installation media.

Solution: Extracted ISO contents directly to USB drive

  • Copied installer files: /install.amd/ (vmlinuz, initrd.gz)
  • Copied metadata: /.disk/, /dists/, /firmware/
  • Updated GRUB config to boot directly from extracted files (no loopback)
  • Removed the ISO file to save space
  • Result: Installer detected media successfully, installation began

4. Fixed "Load Installer Components" Error

Problem: Installer showed "problem reading data" when trying to load installer components

Cause: The pool directory (containing installer packages) was not copied from the ISO

Solution: Copied the /pool/ directory from ISO to USB (625 MB of .deb and .udeb packages)

  • Result: Installer can now load components successfully

5. Installation Success! ✅

Status: Debian 13.1.0 successfully installed and running on ASUS T100!

The installer successfully:

  • ✅ Booted using 32-bit UEFI
  • ✅ Loaded GRUB menu
  • ✅ Started Debian installer
  • ✅ Detected installation media
  • ✅ Loaded installer components
  • ✅ Completed full system installation
  • ✅ Post-install: Node.js, npm, and Claude Code installed successfully!

USB Drive Structure

/mnt/usb/
├── EFI/
│   ├── BOOT/
│   │   ├── bootia32.efi     (558 KB - 32-bit UEFI for T100)
│   │   ├── bootx64.efi      (2.6 MB - 64-bit UEFI)
│   │   └── grubx64.efi      (2.6 MB - 64-bit GRUB)
│   └── debian/
│       └── grubx64.efi
├── boot/
│   └── grub/
│       ├── grub.cfg         (Boot menu configuration)
│       ├── font.pf2         (Display font)
│       ├── i386-efi/        (32-bit GRUB modules)
│       └── x86_64-efi/      (64-bit GRUB modules)
├── install.amd/
│   ├── vmlinuz              (Linux kernel)
│   ├── initrd.gz            (Initial ramdisk)
│   ├── gtk/                 (Graphical installer files)
│   └── xen/
├── pool/                    (Debian packages - .deb and .udeb)
│   ├── main/                (Main Debian packages)
│   ├── contrib/             (Contributed packages)
│   └── non-free-firmware/   (Non-free firmware)
├── .disk/                   (Installer metadata)
├── dists/                   (Package metadata)
└── firmware/                (Hardware firmware files)

Total size: ~1 GB (includes base installer packages, netinst downloads additional packages from internet)

GRUB Configuration

Location: /mnt/usb/boot/grub/grub.cfg

Boot menu options:

  1. Debian 13.1.0 Installer (Graphical)
  2. Debian 13.1.0 Installer (Text)
  3. Debian 13.1.0 Installer (Expert)
  4. Debian 13.1.0 Rescue Mode

Boot Process on ASUS T100

  1. Plug in USB drive
  2. Power on and press ESC for boot menu
  3. Select USB drive from boot menu
  4. UEFI firmware loads EFI/BOOT/bootia32.efi
  5. GRUB loads and displays menu
  6. Select installer option
  7. Linux kernel and initrd load
  8. Debian installer starts

Important Notes

Why 32-bit UEFI?

Intel released Bay Trail and Cherry Trail Atom processors (2013-2015) with 64-bit CPUs but paired them with 32-bit UEFI firmware to save costs. Affected devices include:

  • ASUS T100, T100TA, T100HA
  • ASUS T200
  • Many budget Windows tablets from that era

Network Installation

This is a netinst (network install) image. The USB contains:

  • Bootloader and installer
  • Minimal base packages
  • Network drivers and firmware

During installation, most packages are downloaded from Debian mirrors. Internet connection required.

BIOS Settings Required

  • Secure Boot: DISABLED (bootloader is unsigned)
  • Boot Mode: UEFI (not Legacy/CSM)
  • Fast Boot: DISABLED (optional, but recommended)

Files Extracted from Debian ISO

Source: debian-13.1.0-amd64-netinst.iso

Extracted packages:

  • /mnt/iso/pool/main/g/grub2/grub-efi-ia32-bin_2.12-9_amd64.deb
  • /mnt/iso/pool/main/g/grub2/grub-efi-ia32_2.12-9_amd64.deb

External resources:

Commands Used

Mount USB

sudo mount /dev/sda1 /mnt/usb

Unmount USB (before unplugging)

sudo umount /mnt/usb

Mount ISO

sudo mount -o loop debian-13.1.0-amd64-netinst.iso /mnt/iso

Extract Debian package

ar x package.deb
tar -xf data.tar.xz

Troubleshooting

USB not appearing in boot menu

  • Check UEFI mode is enabled (not Legacy)
  • Disable Secure Boot
  • Try different USB ports

Returns to BIOS after selecting USB

  • Missing 32-bit UEFI bootloader (bootia32.efi)
  • Check /EFI/BOOT/ has bootia32.efi

"Cannot detect installation media"

  • ISO loopback method doesn't work with Debian installer
  • Extract ISO contents directly to USB
  • Ensure /.disk/ directory exists

"Problem reading data" when loading installer components

  • Missing /pool/ directory containing installer packages
  • Mount ISO: sudo mount -o loop debian-13.1.0-amd64-netinst.iso /mnt/iso
  • Mount USB: sudo mount /dev/sda1 /mnt/usb
  • Copy pool: sudo cp -av /mnt/iso/pool /mnt/usb/
  • Sync and unmount: sync && sudo umount /mnt/iso && sudo umount /mnt/usb

Installation errors

  • Check internet connection (netinst requires network)
  • Verify USB isn't corrupted: sudo fsck.vfat /dev/sda1
  • Check T100 has sufficient internal storage for installation

Post-Installation

After successfully installing Debian on your ASUS T100, you can install additional software:

Install Node.js and npm

# Update package list
sudo apt update

# Install Node.js and npm
sudo apt install nodejs npm

# Verify installation
node --version
npm --version

Install Claude Code

# Install Claude Code globally
npm install -g @anthropic-ai/claude-code

# Run Claude Code
claude-code

Recommended Software

# Install useful utilities
sudo apt install curl wget git vim

# Install browser
sudo apt install firefox-esr

# Install text editor
sudo apt install gedit

# For touchscreen support (if not working)
sudo apt install xserver-xorg-input-evdev

# For WiFi (if not working)
sudo apt install firmware-linux firmware-misc-nonfree

Known Hardware Issues

  • WiFi: May require additional firmware. Check dmesg | grep firmware for missing firmware files.
  • Touchscreen: Usually works out of the box with kernel 6.x+
  • Sound: ALSA should detect the sound card automatically
  • Bluetooth: May require additional configuration
  • Screen rotation: Use xrandr to rotate display for tablet mode

Devices Confirmed Working

This guide has been successfully tested on:

  • ASUS T100 - Debian 13.1.0 (Trixie)

This guide should also work on:

  • ASUS T100TA
  • ASUS T100HA
  • ASUS T200
  • Other Bay Trail/Cherry Trail tablets with 32-bit UEFI

If you've successfully used this guide on another device, please open an issue or PR to add it to the list!

Contributing

We welcome contributions! See CONTRIBUTING.md for ways you can help:

  • Report your success on other devices
  • Improve documentation
  • Share hardware fixes
  • Report issues

Credits

About

Install instructions for setting up Debian on an Asus T100 laptop

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages