[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC PATCH 0/3] acceptance tests: Test firmware checkin
From: |
Laszlo Ersek |
Subject: |
Re: [Qemu-devel] [RFC PATCH 0/3] acceptance tests: Test firmware checking debug console output |
Date: |
Wed, 3 Oct 2018 17:59:59 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 |
On 10/03/18 17:20, Cleber Rosa wrote:
> On 10/3/18 3:13 AM, Laszlo Ersek wrote:
>> On 10/03/18 02:23, Cleber Rosa wrote:
>>> On 9/28/18 6:51 AM, Laszlo Ersek wrote:
>>
>>>> I'm not sure if Avocado provides disk image preparation utilities, but
>>>> perhaps (a) we could use the vvfat driver (*shudder*) or (b) we could
>>>> preformat a small image, and track it as a binary file in git.
>>>>
>>>
>>> So far we've added support for generating ISO images (with pure Python).
>>> I'm not sure if that's useful here. We can think about trying to add
>>> the same thing for vvfat.
>>
>> The ability to generate ISO images (natively at that!) seems useful.
>> UEFI-readable ISO images need an extension on top: the ISO9660
>> filesystem has to get the ElTorito extension, and the ElTorito boot
>> image should be a FAT filesystem. Under UEFI, what's visible isn't the
>> ISO9660 filesystem itself, but the contents of the embedded ElTorito
>> boot image.
>>
>> In terms of shell utilities, this usually involves:
>>
>> - creating and populating the FAT filesystem image (with guestfish, or
>> with mkdosfs+mtools),
>>
>
> Is FAT12 an option here? The reason I ask is that there may be code
> FAT12 capable code ready to be incorporated:
>
> https://github.com/clalancette/pyfat
Theoretically, I should answer "yes". For two reasons:
(1) In "13.3 File System Format", the UEFI-2.7 spec writes,
"[...] EFI encompasses the use of FAT32 for a system partition, and
FAT12 or FAT16 for removable media. [...]"
(2) When invoking mkdosfs without the "-F" option, mkdosfs chooses the
smallest FAT filesystem variant that can accommodate the requested size.
We successfully format UEFI-readable ISO images that don't exceed e.g.
3MB in final size. This implies (and I have now actually checked, with
"dosfsck -v") that their embedded ElTorito image is FAT12. edk2 has no
trouble reading that.
However... the maximum volume size for FAT12 appears to be 32 MB,
according to wikipedia:
https://en.wikipedia.org/wiki/File_Allocation_Table#FAT12
It doesn't look good for the long term. For example, I can imagine a
test case where you place a kernel executable (containing a UEFI stub)
and an initial ramdisk on the UEFI-readable ISO. Using the RHEL-7.5
kernel and the matching initrd from my laptop as an example: that's
already 6.2MB + 25MB.
So, technically, FAT12 should be fine; in practice, it could prove limiting.
[...]
Thanks!
Laszlo