Installing Arch Linux and GRUB on legacy tablet

Arch Linux GRUB bootloader screen

I have a generic i386 legacy tablet. Getting Arch linux to install was painful because Grub wanted default install for EFI, when I really needed it to install compatible with legacy BIOS. All the instructions appear to be written for UEFI.

So I did some research and came up with this line:

# grub-install --target=i386-pc --recheck /dev/sda # grub-mkconfig -o /boot/grub/grub.cfg

This worked. I plan on adding more details here if I come accross any more hardships.

$ iwctl

The interactive prompt is then displayed with a prefix of [iwd]#.


  • In the iwctl prompt you can auto-complete commands and device names by hitting Tab.
  • To exit the interactive prompt, send EOF by pressing Ctrl+d.
  • You can use all commands as command line arguments without entering an interactive prompt. For example: iwctl device wlan0 show.

To list all available commands:

[iwd]# help

Connect to a network

First, if you do not know your wireless device name, list all Wi-Fi devices:

[iwd]# device list

Then, to initiate a scan for networks (note that this command will not output anything):

[iwd]# station device scan

You can then list all available networks:

[iwd]# station device get-networks

Finally, to connect to a network:

[iwd]# station device connect SSID

Use timedatectl(1) to ensure the system clock is accurate:

# timedatectl status

When recognized by the live system, disks are assigned to a block device such as /dev/sda/dev/nvme0n1 or /dev/mmcblk0. To identify these devices, use lsblk or fdisk.

# fdisk -l

Results ending in romloop or airoot may be ignored.

The following partitions are required for a chosen device:

If you want to create any stacked block devices for LVMsystem encryption or RAID, do it now.

Use fdisk or parted to modify partition tables. For example:

# fdisk /dev/the_disk_to_be_partitioned

Once the partitions have been created, each newly created partition must be formatted with an appropriate file system. See File systems#Create a file system for details.

For example, to create an Ext4 file system on /dev/root_partition, run:

# mkfs.ext4 /dev/root_partition

If you created a partition for swap, initialize it with mkswap(8):

# mkswap /dev/swap_partition
# mkfs.ext4 /dev/root_partition
# mkfs.fat -F 32 /dev/efi_system_partition

Mount the file systems

Mount the root volume to /mnt. For example, if the root volume is /dev/root_partition:

# mount /dev/root_partition /mnt

Install essential packages

Use the pacstrap(8) script to install the base package, Linux kernel and firmware for common hardware:

# pacstrap -K /mnt base linux linux-firmware

Generate an fstab file (use -U or -L to define by UUID or labels, respectively):

# genfstab -U /mnt >> /mnt/etc/fstab

Check the resulting /mnt/etc/fstab file, and edit it in case of errors.


Change root into the new system:

# arch-chroot /mnt

Set the time zone:

# ln -sf /usr/share/zoneinfo/usa/chicago /etc/localtime

Run hwclock(8) to generate /etc/adjtime:

# hwclock --systohc

network manager will give a text based wlan0

pacman -S networkmanager

next we prepare the GUI activate the video card

lspci -v | grep -A1 -e VGA -e 3D

pacman -Ss xf86-video

pacman -Syyu

install nvidia drivers

sudo -S nvidia nvidia-utils nvidia-settings

pacman -S xorg xterm xorg-xinit

go ahead and fireup the gui and make sure it working


install Gnome windows manager

pacman -S gdm

systemctl enable gdm

systemctl start gdm

pacman -S sddm

install chromium so you have something to browse with

pacman -S chromium

pacman -S firefox

pacman -S gnome-settings-daemon

pacman -S gnome-control-center