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

Re: Installing Debian on a Minnowboard Turbot with installer on USB stick?



Hi,

Rick Thomas wrote on Sun, 27 May 2018 03:28:20 -0700
> > > specifically, firmware-buster-DI-alpha2-amd64-DVD-1.iso

i wrote:
> > Point 4 of that tutorial says:
> >   "NOTE: If your USB device is not listed in the Boot Manager list,
> >    confirm that it’s GPT formatted and contains a valid EFI boot
> >    partition."
> > [...]
> > /sbin/gdisk test.iso

Rick Thomas wrote:
> The first problem was that the stick still wasn’t recognized as bootable.
> I was able to work around that by doing some command-line stuff in the EFI
> firmware — telling it to boot the file “fs0:\efi\boot\bootx64.efi”
> That got me into the installer, but after it did the language/locale
> picking, when the installer went looking for the CD, it complained

Would you get the same result with an unmodified ISO and that EFI
command line ?
(I.e. did the chnage from MBR to GPT do anything good ?)


>     Incorrect CD-ROM detected
>     The CD-ROM drive contains a CD which cannot be used for installation…

Let's see:
  wget https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/buster_di_alpha2/amd64/iso-dvd/firmware-buster-DI-alpha2-amd64-DVD-1.iso

The message can be found in the initrds for text and graphical install
  /install.amd/initrd.gz
  /install.amd/gtk/initrd.gz
I get from var/lib/dpkg/info/cdrom-detect.templates :
  Template: cdrom-detect/wrong-cd)
to var/lib/dpkg/info/cdrom-detect.postinst :
          devices="$(list-devices cd; list-devices maybe-usb-floppy)"
to bin/list-devices :
          for x in /sys/block/*; do
  ...
                  syspaths="${syspaths:+$syspaths }$x"
  ...
          if ! $match && [ "$TYPE" = cd ]; then
                  if device_info env "$devpath" | grep -q '^ID_CDROM='; then
                          match=:

The function device_info is implemented alternatively

  if type udevadm >/dev/null 2>&1; then
          device_info () {
                  udevadm info -q "$1" -p "$2" 2>/dev/null
          }
  elif type udevinfo >/dev/null 2>&1; then
          device_info () {
                  udevinfo -q "$1" -p "$2" 2>/dev/null
          }

The initrd contains a file
  bin/udevadm
but no "udevinfo".
At least on my elderly system and with USB stick /dev/sdd it does not
report any line "ID_CDROM=" with

  bin/udevadm info -q env -p /sys/block/sdd
  
It does report quite significant things like
  ID_FS_BOOT_SYSTEM_ID=EL\x20TORITO\x20SPECIFICATION
  ID_FS_LABEL=Debian_buster-DI-a2_amd64_1
  ...
  ID_FS_TYPE=iso9660

I do get
  ID_CDROM=1
from a Blu-ray drive at /dev/sr4.

But if i compare cdrom-detect.postinst and list-devices with those in the
initrd of debian-9.3.0-amd64-netinst.iso then i cannot find any difference.

"netinst" is known to work from USB stick.
So either i misunderstand the scripts or script execution should not get
there under normal circumstances.


> Do you think it would work if I used disk to create a GPT that had partition
> 1 of they “EF00” start and end where the original partition 2 started and
> ended?

You may try. But if this brings success, then the EFI firmware is really
odd.

It may well be that EFI's inability to offer the bootable partition
is independent of the debian-installer's inability to find the USB stick
as pseudo-CDROM.


Have a nice day :)

Thomas


Reply to: