[yocto] yocto x64-linux with bootia32.efi

Knoppix theknoppix at gmail.com
Tue Nov 13 06:38:39 PST 2018


Thanks a lot. 🙏


On Tue, Nov 13, 2018 at 10:42 AM Dimitris Tassopoulos <dimtass at gmail.com>
wrote:

> 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/abdeeec7/attachment-0001.html>


More information about the yocto mailing list