[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#455914: marked as done (Debian Install CD, process needs to support i386 EFI version)



Your message dated Tue, 19 Apr 2016 22:41:08 +0100
with message-id <20160419214108.GK5269@einval.com>
and subject line Closing old bug
has caused the Debian Bug report #455914,
regarding Debian Install CD, process needs to support i386 EFI version
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
455914: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=455914
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---

Package: debian-cd

Version: 3.0.2

 

Debian CD Team,

 

 

Problem:

I am trying to produce a proper Debian Install CD (NETINST) to work with an i386 EFI Based system.

The NETINST CD should contain both the Legacy boot image and the EFI files needed to install Linux.

Also the install process should determine it is on an EFI Based system and install the appropriate packages as well as using the proper ‘parted’ and ‘elilo’ methods of partitioning the hard drive and installing the boot system.

 

 

Background:

I am part of a team making an i386 EFI BIOS for an Intel Core 2 Duo platform.

Today our BIOS meets the EFI Spec and includes the optional ACPI, SMBIOS, and MPS tables pointed to by the EFI System Table. We are having a minor bug with efivars when we attempt to call set_variable which is a separate issue.

Although this is not an Apple MiniMAC type platform, it is similar in the major chipset components.

CPU: Intel Mobile L7400 Core 2 Duo with 64-bit extensions (our BIOS is currently only i386)

NorthBridge: Intel Mobile 945GM (PCIe port is used as a DVI-I port to run dual monitor)

SouthBridge: Intel Mobile ICH7M

SIO: None (no serial, parallel, floppy, keyboard, etc)

Keyboard: None (USB Ports only)

NIC: Intel Mobile 82573L

1394: TI PCIe XIO2200AZHH

TPM: Atmel AT97SC3203

Sound: IDT STAC9200 (HD Audio)

Bluetooth: TI LMX5452

 

ICH7 I/O: 2 Sata (one eSATA, one internal SATA), SPI (BIOS), LPC (TPM), PCIe (ePCIe), 6 USB

 

 

 

Workaround:

1. Take the i386 Debian NETINST install CD and extract the initrd and vmlinuz files from the install.386 directory on the CD to a USB Key.

2. Copy elilo.efi (i386 version) which I previous downloaded from the Internet to the USB Key.

3. Boot to EFI Shell. EFI Shell sees the USB Key as a file system and assigns a FS# to it.

            Note: Though EFI sees the CD, it doesn’t assign a File System to either the El Torito image or ISO-9660 areas.

4. Change to the USB Key’s file system using fs0:

5. Execute this command to start the install:

elilo  –i  initrd  vmlinux  ro  root=/dev/ram0

Note: The install will proceed as normal up to the Partition point.

6. Use the manual method to create an EFI, Swap, and Linux partitions.

Note: Continue the install as normal to the “Install GRUB” step.

7. Switch to a tty session and manually mount the EFI Partition

mount /dev/sda1 /mnt

8. Copy the /target/initrd.img and /target/vmlinuz files to the EFI Partition (/mnt)

            cp  /target/initrd.img  /mnt

            cp  /target/vmlinuz  /mnt

9. Do not allow GRUB or LILO to write to the disk.

10. Finish the install and reboot to EFI Shell

11. Copy elilo.efi from the USB Key to the EFI Partition on the hard drive.

12. Remove the USB Key and remap the file systems

map -r

13. Create an EFI Boot Manager entry or a startup.nsh script to boot Linux.

You can manually boot Linux with:

elilo  -i  initrd.img  vmlinuz  ro  root=/dev/sda3

 

 

Suggested Fix:

Instead of an El Torito boot image on the CD in no emulation mode, there could be a hard drive emulation with the original boot image as a file in the FAT File System and the EFI install files startup.nsh, elilo.efi, elilo.conf, initrd, and vmlinuz in the same directory. The “MBR” of the hard drive emulation of the El Torito CD section would indicate a single bootable partition and the Boot Sector in that partition would load the original boot image file.

So when a legacy system boots the CD, it still boots the same file as it would have before but now when the CD is booted on an EFI system, a File System number is assigned to the directory which contain the files listed above.

The StartUp.nsh file would contain the following lines:

fs0:

elilo  -i  initrd  vmlinux  ro  root=/dev/ram0

(or simply elilo if the elilo.conf file contains the command line parameters)

 

The parted should determine it is an EFI based system and create the GPT and the EFI Partition.

The Installer also needs to determine it is running on an EFI Based system (efivars.ko will be loaded) and install the packages elilo and efibootmgr.

The efibootmgr program produces elilo.conf file and the elilo package contains the elilo.efi program. These files along with the compiled initrd.img and vmlinuz files should be copied to the EFI partition by the install process.

Finally the efibootmgr program should create an EFI Boot Manager boot entry for Linux. (this is currently broken on our system probably due to a BIOS bug)

 

 

Summary:

Almost all these pieces exist in the i386 Linux build process today but there are some small changes needed to the build and install processes and the Install CD needs to have the El Torito section setup differently to work with both Legacy and EFI systems.

 

 

I am trying to create a NETINST CD which meets the suggestion above to verify it would work with both and I would be happy to work with the individuals working on this to help refine the process and test it out.

 

Thank you,

Charles Abdouch


--- End Message ---
--- Begin Message ---
Hi,

Sorry to have left this one open for so long, I've missed it. :-(

We've had working UEFI support on i386 since the Jessie release, so
I'm closing this now.

-- 
Steve McIntyre, Cambridge, UK.                                steve@einval.com
"Every time you use Tcl, God kills a kitten." -- Malcolm Ray

--- End Message ---

Reply to: