You are not logged in.

#1 2015-09-21 17:17:23

TheGreatDoge
Member
Registered: 2015-09-21
Posts: 2

Arch and 32 bits UEFI

Hello!

I'm the... quite unproud user of an HP Envy X2 tablet PC. I wiped the living sh*t that Windows 8 is from its hard drive, and tried to boot an Arch USB...
but...
It's using an Intel Atom. Yes, a 32bits only CPU. And the motherboard has no support for legacy boot. It can only boot on UEFI.
So I looked on the Internet, but unfortunately all the tutorials I found were about 64bits systems on a 32 bits UEFI.

So I wanted to know, if there is a way to boot Arch's install media (or Arch in general) compiled for 32 bits systems with only UEFI support.

Thanks!

Offline

#2 2015-09-21 18:01:16

olive
Member
From: Belgium
Registered: 2008-06-22
Posts: 1,490

Re: Arch and 32 bits UEFI

Chance are that the processor actually supports 64 bits. You most probably have a bay trail device with a Z3735F atom processor that is able to execute 64 bits code; although the EFI and the preinstalled Windows are 32 bits.

Grub is able to boot a 64 bits kernel from a 32 bits UEFI (I have had no success with other boot loader). From another computer running Archlinux (32 or 64 bit, no matter if this other computer is UEFI or not), make a 32 bits grub standalone UEFI bootable: see https://wiki.archlinux.org/index.php/GR … standalone. Use the option -O i386-efi (instead of -O x86_64-efi ) and add any modules that will be used in the grub.cfg file (see below) with the --modules option. Now to boot your machine, take any 64 (or 32) bits USB UEFI-bootable key. Locate its EFI partition and put your standalone grub as: <EFI_partition_of_the_usb_key>/EFI/BOOT/BOOTIA32.EFI. If this usb key was already made to boot from grub in 64 bits mode, it should include a grub.cfg file; copy this file as <EFI_partition_of_the_usb_key>/EFI/BOOT/grub.cfg. If not, you will have to write a grub.cfg file yourself. I put a simple example below. Once you succeed to boot your system, install Archlinux as normal but put a 32 bit grub in the same way as you have done for the USB key.

Note that these 32 bits only UEFI system have usually weird hardwares that could give you a lot of trouble... This was my case with an Odys Wintab.

insmod efi_gop
insmod efi_uga
insmod ext2
terminal_input console
terminal_output console
search --fs-uuid --set=root <UUID1> # UUID of the partition of the USB key where the kernel resides, often the EFI partition.
set default=0
set timeout=3
set rootdev="<UUID2>" # UUID of the partition of the root filsesystem of the USB key.

menuentry "Archlinux" {
          linux /boot/vmlinuz-linux root=${rootdev} rw ipv6.disable=1 intel_pstate=disable
          initrd /boot/initramfs-linux.img
}

If you really want to boot the 32 bits Archlinux, the procedure is completely similar, because both 32 and 64 bits grub can load a kernel on the other architecture transparently. You may have to create an EFI partition yourself because it is usually not present on the 32 bits bootable USB key. You can also make a full install on a USB key or hard disk from another computer and boot your device from this hard disk.

Last edited by olive (2015-09-21 18:21:41)

Offline

#3 2015-09-22 12:04:25

TheGreatDoge
Member
Registered: 2015-09-21
Posts: 2

Re: Arch and 32 bits UEFI

Unfortunately, I have a Z2760.

According to Intel, it doesn't support x64. http://ark.intel.com/products/70105/Int … e-1_80-GHz

I'll still try with a 32 bits GRUB. Thanks for the (long) answer!

EDIT:

So first let's have a look at the output of blkid;

    /dev/sde1: UUID="2015-09-01-17-41-34-00" LABEL="ARCH_201509" TYPE="iso9660" PTUUID="68ceed8e" PTTYPE="dos" PARTUUID="68ceed8e-01"

    /dev/sde2: SEC_TYPE="msdos" LABEL="ARCHISO_EFI" UUID="3046-D725" TYPE="vfat" PARTUUID="68ceed8e-02"

I put the 'grub.cfg' file in the /mnt/ARCHISO_EFI/EFI/boot folder.

here's the output of cat grub.cfg:

    insmod efi_gop
    insmod efi_uga
    insmod ext2
    terminal_input console
    terminal_output console
    search --fs-uuid --set=root <68ceed8e-02> # UUID of the partition of the USB key where the kernel resides, often the EFI partition.
    set default=0
    set timeout=3
    set rootdev="<68ceed8e-01>" # UUID of the partition of the root filsesystem of the USB key.
   
    menuentry "Archlinux" {
              linux /boot/vmlinuz-linux root=${rootdev} rw ipv6.disable=1 intel_pstate=disable
              initrd /boot/initramfs-linux.img
    }

So I plug the USB drive on the laptop, and boot into GRUB command line.

I type ls to list the volumes, and get:

(hd0) (hd0,msdos2) (hd1) (hd2) (hd3) (hd4)

Which is weird since I only have 1 hard drive.

I tried to chainloader +1 after typing set root=(hdX) for every root, but... it fails.

Is there a way to boot?

Last edited by TheGreatDoge (2015-09-22 13:51:49)

Offline

#4 2015-09-22 18:08:08

olive
Member
From: Belgium
Registered: 2008-06-22
Posts: 1,490

Re: Arch and 32 bits UEFI

A few remarks: USB keys are seen as hard disks. chainloader +1 is a BIOS thing. You should understand the basic of the grub commands. I put an improved grub.cfg file below using your information but you may have to adjust the paths of the kernel and initrd (I don't know their paths by heart). The intel_pstate=disable is normally not necessary but I have had problems with it, same for the ipv6.disable (disable ipv6). It is also useful to see the options that were passed to the kernel via the original bootloader. I think it is syslinux that also support UEFI (with some limitation but it boot). By the way I have put a grub example but you can also install a UEFI syslinux, or gummiboot or whatever... But only grub can (to my knowledge) boot a 64 bits kernel from a 32 bits UEFI and vice-versa (of course the processor must support the architecture); this is why I discussed grub in my post.

insmod efi_gop
insmod efi_uga
insmod ext2
terminal_input console
terminal_output console
search --fs-uuid --set=root 3046-D725 # UUID of the partition of the USB key where the kernel resides, often the EFI partition.
set default=0
set timeout=3
set rootdev="UUID=2015-09-01-17-41-34-00" # UUID of the partition of the root filsesystem of the USB key.

menuentry "Archlinux" {
          linux /boot/vmlinuz-linux root=${rootdev} rw ipv6.disable=1 intel_pstate=disable
          initrd /boot/initramfs-linux.img
}

Last edited by olive (2015-09-22 18:20:05)

Offline

#5 2016-05-10 04:03:02

M4R10zM0113R
Member
From: Guatemala
Registered: 2015-01-06
Posts: 42

Re: Arch and 32 bits UEFI

Have you ever come to installing it in the z2760? Or was it fruitless?


- "I summoned Cthulhu and Satan trying to fix my interxternet. How I'm gonna fix it now??"
- "We can't fix it either"

Offline

Board footer

Powered by FluxBB