[yocto] yocto x64-linux with bootia32.efi

Dimitris Tassopoulos dimtass at gmail.com
Mon Nov 12 23:42:27 PST 2018


That's great news!
Glad to help. It's frustrating some times, but I hope that also someone
else may come with a better solution.

Regarding secureboot, I guess that if you use the same keys, then there
shouldn't be any issue. But I haven't use it, so I can't tell from
experience.

Regards,
Dimitris

On Tue, 13 Nov 2018, 08:28 Knoppix <theknoppix at gmail.com wrote:

> it works!
> It copied files to ESP (efi system partition).
> I hope it will work with secure boot concept too.
>
> *Mr. Dimitris *thank you so so much. I *am so glad to you* for your
> politeness and help.
>
> My best compliments..
>
> On Mon, Nov 12, 2018 at 5:51 PM Dimitris Tassopoulos <dimtass at gmail.com>
> wrote:
>
>> Yeah, I think everybody is pretty busy. This project is huge and there
>> aren't many contributors.
>>
>> Anyway, in case you use wks files, then you can create a file named *test.wks.in
>> <http://test.wks.in>* (make sure you add
>> the .in at the end). Then add this (or similar depending your image):
>>
>> bootloader --ptable gpt
>> part /boot --source rootfs --rootfs-dir=${IMAGE_ROOTFS}/boot
>> --fstype=vfat --ondisk sda --label boot --active --align 1024
>> part / --source rootfs --ondisk sda --fstype=ext4 --label root --align
>> 1024 --exclude-path boot/
>>
>> The above will force wic tool not to use the default efi file that yocto
>> produces and it will use the content of the /boot
>> folder your image creates. Therefore, if you add your custom recipe that
>> copies the efi file you want, *but also* the
>> the rest of the boot files (like confs) then you can override the
>> image-efi and use your custom files from the recipe.
>>
>> For example, keep a copy of the whole boot folder that you already have,
>> then replace the efi file with your
>> precompiled and then create a recipe to copy all those files to your
>> image's /boot folder.
>>
>> I think that this may do the trick.
>>
>> The important keywords in the wks file are the `--rootfs-dir` in the
>> /boot part, which means that you force wic
>> to use your image's /boot folder. And the `--exclude-path` which forces
>> wic tool not to touch your /boot folder.
>>
>> Best regards,
>> Dimitris
>>
>> On Mon, Nov 12, 2018 at 3:37 PM Knoppix <theknoppix at gmail.com> wrote:
>>
>>> Yes I did this before I sent this email. First I created x86_32 system
>>> and backup boot files. Then i created regular x64 system and move
>>> bootia32.efi file to the boot partition. (I did manualy)
>>> And yes I'm using wic and I have wks file. (I dont know how can i copy
>>> my bootia32.efi to boot partition when yocto has create image)
>>>
>>> But very soon I should implement secure boot with the system.
>>> So I think copy precompilted bootia32.efi will not work with secure
>>> system. (I am not sure)
>>>
>>> By the way this is the first mail which I took any maillist system. I'm
>>> so happy to experiment this feeling :) until now nobody answers me.
>>> Kind regards.
>>>
>>> On Mon, Nov 12, 2018 at 5:20 PM Dimitris Tassopoulos <dimtass at gmail.com>
>>> wrote:
>>>
>>>> You're right about the toolchain, this will hit wall, because the
>>>> x86_64 will build fail to build the x86 efi.
>>>>
>>>> Are you using wic and a wks file for your image?
>>>>
>>>> There might be a way to override the x86_64 efi bootloader with a
>>>> pre-compiled one.
>>>> If you do, then I may have a solution for you.
>>>>
>>>> Regards,
>>>> Dimitris
>>>>
>>>> On Mon, Nov 12, 2018 at 2:39 PM Knoppix <theknoppix at gmail.com> wrote:
>>>>
>>>>> Mr. Tassopoulos
>>>>>
>>>>> Thank you so much for your answer.
>>>>>
>>>>> I am trying to do this because my device (atom cpu) has 64bit cpu but
>>>>> its efi doesn't support 64. Efi is x86. I learned that ".. The vast
>>>>> majority of EFI-based x86-64 computers use 64-bit EFIs and therefore use a
>>>>> bootx64.efi default boot loader file. A handful of early Macs and some
>>>>> Atom-based tablets have 64-bit CPUs but 32-bit EFIs ..."
>>>>> http://www.rodsbooks.com/efi-bootloaders/principles.html
>>>>>
>>>>> But I dont understand: if my target machine is x86_64 then yocto will
>>>>> prepare native/host toolchain to gcc-x64 but when we force to install grub
>>>>> as i386 what will happen? yocto will install a second toolchain for i386?
>>>>> And also shouldn't grub be x86?
>>>>>
>>>>> Bye the way, yocto has failed when i try.
>>>>>
>>>>> *do_mkimage*
>>>>> DEBUG: SITE files ['endian-little', 'common-linux', 'common-glibc',
>>>>> 'bit-64', 'x86_64-linux', 'common']
>>>>> DEBUG: Executing shell function do_mkimage
>>>>> *grub-mkimage: error: invalid ELF header.*
>>>>> WARNING: exit code 1 from a shell command.
>>>>>
>>>>>
>>>>> Best regards
>>>>>
>>>>>
>>>>> On Mon, Nov 12, 2018 at 11:44 AM Dimitris Tassopoulos <
>>>>> dimtass at gmail.com> wrote:
>>>>>
>>>>>> I don't know about your special case and why this happens, but a
>>>>>> simple "hack" it's, depending your bootloader
>>>>>> (grub or systemd-boot), to edit a couple of files in poky. I haven't
>>>>>> tested this, so I don't know if it really works.
>>>>>>
>>>>>> For Grub remove in poky/meta/classes/grub-efi.bbclass these
>>>>>> if [ "${TARGET_ARCH}" = "x86_64" ]; then
>>>>>> GRUB_IMAGE="grub-efi-bootx64.efi"
>>>>>> DEST_IMAGE="bootx64.efi"
>>>>>> fi
>>>>>>
>>>>>> For systemd in poky/meta/classes/systemd-boot.bbclass remove these:
>>>>>> if [ "${TARGET_ARCH}" = "x86_64" ]; then
>>>>>>     EFI_IMAGE="systemd-bootx64.efi"
>>>>>>     DEST_EFI_IMAGE="bootx64.efi"
>>>>>> fi
>>>>>>
>>>>>> And then in poky/meta/recipes-bsp/grub/grub-efi_2.02.bb in python
>>>>>> __anonymous () enforce the use of:
>>>>>> grubtarget = 'i386'
>>>>>> grubimage = prefix + "bootia32.efi"
>>>>>>
>>>>>> As I've told you, this is more hack than proper solution, but if you
>>>>>> don't get a better answer at least
>>>>>> you can try this.
>>>>>>
>>>>>> Also have in mind, that if you do that, then you won't be able to
>>>>>> pull poky without loosing your
>>>>>> changes, so you will have to work with your own branch. That
>>>>>> shouldn't be a problem, but you
>>>>>> should be aware of that.
>>>>>>
>>>>>> Regards,
>>>>>> Dimitris
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Mon, Nov 12, 2018 at 9:28 AM Knoppix <theknoppix at gmail.com> wrote:
>>>>>>
>>>>>>> I Searched this question on google, stackoverflow but I did not find.
>>>>>>>
>>>>>>> I am using DISTRO=poky MACHINE=intel-corei7-64 IMAGE=core-image-x11
>>>>>>> sceme.
>>>>>>> The machine which I want to install image, doesn’t allow bootx64 but
>>>>>>> it works when I install x32 efi.
>>>>>>> I checked this (I copied first bootia32.efi and then bootx64.efi)
>>>>>>> and as I understand my machine has x64 arch but only support x32-efi.
>>>>>>>
>>>>>>> So how can I build an image which is intel-corei7-64 but has
>>>>>>> grup-efi 32 bit?
>>>>>>> Would you advice me please to *what should I read to accomplish and
>>>>>>> learn *this?
>>>>>>> --
>>>>>>> _______________________________________________
>>>>>>> yocto mailing list
>>>>>>> yocto at yoctoproject.org
>>>>>>> https://lists.yoctoproject.org/listinfo/yocto
>>>>>>>
>>>>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20181113/d7c81411/attachment-0001.html>


More information about the yocto mailing list