diff --git a/kiwi/system/kernel.py b/kiwi/system/kernel.py index 658819c6..865e2c04 100644 --- a/kiwi/system/kernel.py +++ b/kiwi/system/kernel.py @@ -56,10 +56,9 @@ class Kernel(object): [self.root_dir, 'boot', kernel_name] ) if os.path.exists(kernel_file): - kernel_file_for_version_check = os.sep.join( - [self.root_dir, 'boot', 'vmlinux.gz'] - ) - if not os.path.exists(kernel_file_for_version_check): + kernel_file_for_version_check = \ + self._get_kernel_name_for_version_lookup() + if not kernel_file_for_version_check: # The system does not provide a gzip compressed binary # of the kernel. Thus we try to fetch the version from # the arbitrary kernel image format. Please Note: @@ -181,3 +180,14 @@ class Kernel(object): ) ) return kernel_names + + def _get_kernel_name_for_version_lookup(self): + vmlinux_kernel_files = list( + filter(lambda kernel: 'vmlinux-' in kernel, self.kernel_names) + ) + if vmlinux_kernel_files: + kernel_file_for_version_check = os.sep.join( + [self.root_dir, 'boot', vmlinux_kernel_files[0] + '.gz'] + ) + if os.path.exists(kernel_file_for_version_check): + return kernel_file_for_version_check diff --git a/test/unit/system_kernel_test.py b/test/unit/system_kernel_test.py index 1adc5e01..64c7023a 100644 --- a/test/unit/system_kernel_test.py +++ b/test/unit/system_kernel_test.py @@ -45,7 +45,7 @@ class TestKernel(object): mock_realpath.return_value = 'vmlinux-realpath' data = self.kernel.get_kernel() mock_run.assert_called_once_with( - command=['kversion', 'root-dir/boot/vmlinux.gz'], + command=['kversion', 'root-dir/boot/vmlinux-1.2.3-default.gz'], raise_on_error=False ) assert data.filename == 'root-dir/boot/vmlinux' @@ -89,7 +89,7 @@ class TestKernel(object): mock_run.return_value = result data = self.kernel.get_kernel() mock_run.assert_called_once_with( - command=['kversion', 'root-dir/boot/vmlinux.gz'], + command=['kversion', 'root-dir/boot/vmlinux-1.2.3-default.gz'], raise_on_error=False ) assert data.filename == 'root-dir/boot/vmlinux'