[coreboot] How to give control to bootable USB

Zoran Stojsavljevic zoran.stojsavljevic at gmail.com
Fri Jun 16 09:52:13 CEST 2017


To simplify your tests...

If you have enough space on your /boot on your HDD, you can do the
following:

[1] Copy your ONIE-live-XYZ.iso (or whatever the true name is) there from
USB stick to /boot partition;

[2] Simplify the grub.cfg script like this:

menuentry "ONIE: Embed ONIE" --class gnu-linux --class onie {
  echo    "ONIE: Embedding ONIE ..."
  onie_entry_start
  set root='hd0,msdos1' ## hd0 is your HDD, 1 is /boot -> /dev/sda1)
  set isofile=/ONIE-live-XYZ.iso ## or whatever your ONIE... .iso image is
named
  loopback loop $isofile
  *linux  (loop)/live/vmlinuz* $ONIE_CMDLINE_LINUX boot_reason=embed
install_url=file:///lib/onie/onie-updater
  *initrd (loop)/live/initrd.xz*
  onie_entry_end

If this does work, U R Cool. But you need to have at least size of ~ 2GB
for /boot (assuming your .iso is no more than ~1.5 GB in size).

This is why I ALWAYS assign to /boot (/dev/sda1) NO LESS that 2GB in space!
;-)

Zoran

On Thu, Jun 15, 2017 at 3:37 PM, Dhanasekar Jaganathan <
jdhanasekarmca at gmail.com> wrote:

> Hi Zoran,
>
> Thanks for the info.
>
> With previously attached grub.cfg + Vendor BIOS, I can able to install
> ONIE from USB.
> But with  Coreboot + GRUB2 + previously attached grub.cfg, I am unable to
> install ONIE from USB.
>
> I am going to try your changes, I will let you know.
>
> Thanks,
> Dhanasekar
>
> On Thu, Jun 15, 2017 at 6:51 PM, Zoran Stojsavljevic <
> zoran.stojsavljevic at gmail.com> wrote:
>
>> Hello Dhanasekar,
>>
>> This, I guess, is not (entirely) correct:
>>
>> menuentry "ONIE: Embed ONIE" --class gnu-linux --class onie {
>>   echo    "ONIE: Embedding ONIE ..."
>>   onie_entry_start
>>   *linux   /vmlinuz* $ONIE_CMDLINE_LINUX boot_reason=embed
>> install_url=file:///lib/onie/onie-updater
>>  * initrd  /initrd.xz*
>>   onie_entry_end
>>
>> You should have something similar to the following:
>>
>> menuentry "ONIE: Embed ONIE" --class gnu-linux --class onie {
>>   echo    "ONIE: Embedding ONIE ..."
>>   onie_entry_start
>>   set root='hdX,msdosY' ## hdX is your USB stick, Y partition, U R
>> booting from, U should find going to GRUB2 monitor (with > prompt)
>>   set isofile=/<dir path>/ONIE-live-XYZ.iso ## or whatever your ONIE...
>> .iso image is named
>>   loopback loop $isofile
>>   *linux  (loop)/live/vmlinuz* $ONIE_CMDLINE_LINUX boot_reason=embed
>> install_url=file:///lib/onie/onie-updater
>>   *initrd (loop)/live/initrd.xz*
>>   onie_entry_end
>>
>> Please, investigate a bit more using google.com! And let us know if you
>> did solve the problem (post the final grub2 menyentry which works for you).
>>
>> Hope this helps to the whole community. ;-)
>>
>> Zoran
>>
>> On Thu, Jun 15, 2017 at 2:33 PM, Dhanasekar Jaganathan <
>> jdhanasekarmca at gmail.com> wrote:
>>
>>> Hi Nico,
>>>
>>> Sorry, It is typo. I have tried with *configfile
>>> (usb0)/boot/grub/grub.cfg* only..
>>>
>>> with a new *boot/grub/grub.cfg*, I am getting following error,
>>>
>>> *error: file '/vmlinuz' not found.*
>>>
>>> *error: you need to load the kernel first. *
>>>
>>>
>>> FYR, I have attached  /boot/grub/grub.cfg(which is present in USB).
>>>
>>> Thanks,
>>> Dhanasekar
>>>
>>>
>>>
>>>
>>>
>>> On Thu, Jun 15, 2017 at 4:59 PM, Nico Huber <nico.h at gmx.de> wrote:
>>>
>>>> On 15.06.2017 07:31, Dhanasekar Jaganathan wrote:
>>>> > Hi Nico/Taiidan,
>>>> >
>>>> > After entering "*syslinux_configfile (*", when I press *TAB, I* I am
>>>> not
>>>> > seeing anything (nothing is coming)..
>>>> >
>>>> > So, I have tried this command *"syslinux_configfile
>>>> > (usb0)/boot/grub/grub.cfg" *and got the error (Kernel without label).
>>>>
>>>> Read what Taiidan wrote carefully:
>>>>
>>>> >>>> also configfile (ahci0,msdos1)/grub2/grub.cfg to load a grub cfg
>>>>
>>>> For a grub.cfg, it's a plain *configfile* (not syslinux_configfile).
>>>>
>>>> Nico
>>>>
>>>> >
>>>> > My USB ONIE installers has following files,
>>>> >
>>>> > */initrd.xz*
>>>> >
>>>> > */vmlinuz*
>>>> >
>>>> > */boot/boot.cat <http://boot.cat>*
>>>> >
>>>> > */boot/eltorito.img*
>>>> >
>>>> > */boot/grub/gurb.cfg*
>>>> >
>>>> > */boot/i386-PC/ *.mod (Lot of .mod files)*
>>>> >
>>>> >
>>>> > Thanks,
>>>> > Dhanasekar
>>>> >
>>>> >
>>>> >
>>>> > On Thu, Jun 15, 2017 at 5:01 AM, Nico Huber <nico.h at gmx.de> wrote:
>>>> >
>>>> >> Hi Dhanasekar,
>>>> >>
>>>> >> On 14.06.2017 11:21, Dhanasekar Jaganathan wrote:
>>>> >>> Hi Taiidan,
>>>> >>>
>>>> >>> My USB ONIE installers don't have "isolinux/syslinux.cfg". It has
>>>> >>> "boot/grub/grub.cfg".
>>>> >>>
>>>> >>> When I try to run "syslinux_configfile (usb0)/boot/grub/grub.cfg"
>>>> in GRUB
>>>> >>> command line, I am getting "*kernel without label*" error.
>>>> >>>
>>>> >>> Please provide your commands
>>>> >>
>>>> >> Taiidan already told you the correct command name (33 lines below).
>>>> You
>>>> >> might have missed it ;)
>>>> >>
>>>> >> Nico
>>>> >>
>>>> >>>
>>>> >>> Thanks,
>>>> >>> Dhanasekar
>>>> >>>
>>>> >>> On Wed, Jun 14, 2017 at 3:22 AM, Taiidan at gmx.com <Taiidan at gmx.com>
>>>> >> wrote:
>>>> >>>
>>>> >>>> On 06/13/2017 10:22 AM, Dhanasekar Jaganathan wrote:
>>>> >>>>
>>>> >>>> Hi All,
>>>> >>>>>
>>>> >>>>> I am trying to install ONIE from USB which has ONIE installer.
>>>> >> Actually, I
>>>> >>>>> am using GRUB2 as a payload.  If Coreboot display list of bootable
>>>> >>>>> device,I
>>>> >>>>> can select USB which will install a OS in the hard disk.  As I
>>>> >> understood
>>>> >>>>> that Coreboot won't display list of available bootable device
>>>> (not like
>>>> >>>>> vendor bios).I don't know how to give control to bootable USB or
>>>> boot a
>>>> >>>>> bootable USB by coreboot. Can you please help me on this?.
>>>> >>>>>
>>>> >>>>>
>>>> >>>>> Thanks,
>>>> >>>>> Dhanasekar
>>>> >>>>>
>>>> >>>> Assuming you are booting a standard linux distro iso:
>>>> >>>> syslinux_configfile (*TAB* to see what is available
>>>> >>>>
>>>> >>>> then simply for instance syslinux_configfile
>>>> (usb0,msdos1)/isolinux/
>>>> >> syslinux.cfg
>>>> >>>> (or w/e)
>>>> >>>>
>>>> >>>> also configfile (ahci0,msdos1)/grub2/grub.cfg to load a grub cfg
>>>> >>>>
>>>> >>>> Ideally you would add a grub cfg to the coreboot image that does
>>>> >> something
>>>> >>>> like load a config file from a specified local disk so that it is
>>>> easy
>>>> >> to
>>>> >>>> update (ie: no re-flashing) instructions for that are on the wiki.
>>>> >>>>
>>>> >>>> SeaBIOS would provide the classic AMI style F12 selection menu,
>>>> but I
>>>> >>>> don't like it due to how many times I have accidentally enabled
>>>> option
>>>> >> rom
>>>> >>>> execution by forgetting to include the configuration file.
>>>> >>>>
>>>> >>>
>>>> >>>
>>>> >>>
>>>> >>
>>>> >>
>>>> >
>>>>
>>>>
>>>
>>> --
>>> coreboot mailing list: coreboot at coreboot.org
>>> https://mail.coreboot.org/mailman/listinfo/coreboot
>>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.coreboot.org/pipermail/coreboot/attachments/20170616/6956ce74/attachment-0001.html>


More information about the coreboot mailing list