Alexander Graf changed bug 908454
What Removed Added
Flags needinfo?(agraf@suse.com) needinfo?(trenn@suse.com)

Comment # 32 on bug 908454 from
Ok, let's please keep separate issues separate

First off, "file" reports the file type for a specific binary. This is "PE" for
AArch64, ELF for PowerPC, "special ARM zImage" for 32bit ARM and "magic x86
Linux kernel" for x86 systems. It behaves as designed and is fully correct.

The "get_kernel_version" tool basically does a simple grep through the binary
to look for a string "Linux version". Whatever follows that string is deemed
the kernel version. It's a hack, but it's a working hack as long as the image
is uncompressed.

Now if you take a look at the script in /sbin/mkinitrd:

  # rpm -qf /sbin/mkinitrd
  dracut-037-32.1.aarch64

then you'll see that this script calls get_kernel_version on our zImage

        if [ "$kernel_image" != "$initrd_image" -a \
             -n "$kernel_version" -a \
             -d "/lib/modules/$kernel_version" ]; then
                kernel_images="$kernel_images $boot_dir/$kernel_image"
                initrd_images="$initrd_images $boot_dir/$initrd_image"
        fi

However, since the zImage is (as its name suggests), compressed, we have a
really hard time finding the kernel version inside that file. Before dracut, we
had a hack in mkinitrd that would fall back to the vmlinux.gz file instead so
that we get_kernel_version can do its job:

 
https://github.com/openSUSE/mkinitrd/commit/3e9cb61ee500fcc732e2299c99fcdf3e1813547f

This code must have gotten lost in transition to dracut. So let's ask Thomas
:).


You are receiving this mail because: