Hi Cleber,

Results as follows:

root@heca-autotest-b:/usr/local/autotest# ./tools/boottool 
--add-kernel=/boot/vmlinuz-autotest --initrd=/boot/initrd-autotest 
--title=autotest
root@heca-autotest-b:/usr/local/autotest# grubby --info=/boot/vmlinuz-autotest 
index=0
kernel=/boot/vmlinuz-autotest
args="ro   crashkernel=384M-2G:64M,2G-:128M quiet panic=5"
root=UUID=18790923-d357-4ce9-96c9-d09593dcbab8
initrd=/boot/initrd-autotest
title=autotest

Thanks,
Steve

-----Original Message-----
From: Cleber Rosa [mailto:cr...@redhat.com] 
Sent: 13 June 2012 16:04
To: Walsh, Steve
Cc: autotest@test.kernel.org; Lucas Meneghel Rodrigues
Subject: Re: [Autotest] kernel.boot is failing because "Unable to instantiate 
boottool"



----- Mensagem original -----
> De: "steve walsh" <steve.wa...@sap.com>
> Para: "steve walsh" <steve.wa...@sap.com>, "Lucas Meneghel Rodrigues" 
> <l...@redhat.com>
> Cc: autotest@test.kernel.org
> Enviadas: Terça-feira, 12 de Junho de 2012 7:22:11
> Assunto: Re: [Autotest] kernel.boot is failing because "Unable to instantiate 
> boottool"
> 
> Hi there,
> 
> I apologise in advance, I'm new to kernel devel/deployment so my
> questions might seem a bit simple.
> I've encountered another problem using the kernel.boot command.
> 
> The install part seems to be okay. Then mkinitramfs gets called and
> it creates a file /boot/initrd-autotest but it does complain about a
> missing config file:
> 
> [stdout]   INSTALL sound/usb/usx2y/snd-usb-usx2y.ko
> 06/12 10:33:12 DEBUG|base_utils:0114| [stdout]   DEPMOD
>  3.4.0-rc1-heca+
> 06/12 10:33:27 INFO |    kernel:0010| --- START kernel.mkinitrd ---
> 06/12 10:33:27 DEBUG|base_utils:0249| Detected OS vendor: Ubuntu
> 06/12 10:33:27 DEBUG|base_utils:0077| Running '/usr/sbin/mkinitramfs
>  -o /boot/initrd-autotest 3.4.0-rc1-heca+'
> 06/12 10:33:27 ERROR|base_utils:0114| [stderr] grep:
> /boot/config-3.4.0-rc1-heca+: No such file or directory
> 06/12 10:34:02 INFO |    kernel:0016| --- END kernel.mkinitrd ---
> 
> I'm not sure if that is a problem or not.
> 
> However, the next error in my logs seems potentially more serious:

So, I've setup an Ubuntu machine, with grubby auto installed by boottool.

Let's try do dissect what's going on here:

> 
> 06/12 10:34:03 INFO |       job:0210|       GOOD    build
>   kernel.mkinitrd timestamp=1339493642    localtime=Jun 12 10:34:02
> 06/12 10:34:03 INFO |    kernel:0016| --- END kernel.install ---
> 06/12 10:34:03 INFO |       job:0210|       GOOD    build
>   kernel.install  timestamp=1339493643    localtime=Jun 12 10:34:03
> 06/12 10:34:03 DEBUG|  base_job:0349| Persistent state client.steps
> now set to [([], 'job.end_reboot_and_verify', [1339493643,
> '3.4.0-rc1-heca+::#12 SMP Mon Jun 11 18:35:13 BST 2012', 'build',
> []], {})]
> 06/12 10:34:03 ERROR|logging_ma:0584| grubby: kernel not found
> 06/12 10:34:03 ERROR|logging_ma:0584| grubby: kernel not found
> 06/12 10:34:03 ERROR|logging_ma:0584| grubby: kernel not found
> 06/12 10:34:03 ERROR|logging_ma:0584| grubby: kernel not found
> 06/12 10:34:03 ERROR|logging_ma:0584| grubby: kernel not found
> 06/12 10:34:03 ERROR|logging_ma:0584| grubby: kernel not found

This behaviour seems to be triggered by a grubby bug. Example on this Ubuntu 
system:

root@ubuntu:~# grubby --info=ALL
index=0
kernel=/boot/vmlinuz-3.2.0-23-generic
args="ro   "
root=/dev/mapper/ubuntu-root
initrd=/boot/initrd.img-3.2.0-23-generic
title=Ubuntu, with Linux 3.2.0-23-generic
index=1
kernel=/boot/vmlinuz-3.2.0-23-generic
args="ro recovery nomodeset "
root=/dev/mapper/ubuntu-root
initrd=/boot/initrd.img-3.2.0-23-generic
title=Ubuntu, with Linux 3.2.0-23-generic (recovery mode)
index=2
non linux entry
index=3
non linux entry
index=4
non linux entry
index=5
non linux entry

That is, six entries, while in grub.cfg we only have four:

root@ubuntu:~# grep ^menuentry /boot/grub/grub.cfg
menuentry 'Ubuntu, with Linux 3.2.0-23-generic' --class ubuntu --class 
gnu-linux --class gnu --class os {
menuentry 'Ubuntu, with Linux 3.2.0-23-generic (recovery mode)' --class ubuntu 
--class gnu-linux --class gnu --class os {
menuentry "Memory test (memtest86+)" {
menuentry "Memory test (memtest86+, serial console 115200)" {

The way boottool fetches info on entries by running grubby produces the error 
message on non-linux (or buggy) entries:

oot@ubuntu:~# /tmp/boottool --remove-kernel=autotest 
...
DEBUG: Grubby: ['/sbin/grubby', '--grub2', '--info=0']
DEBUG: Grubby: ['/sbin/grubby', '--grub2', '--info=1']
DEBUG: Grubby: ['/sbin/grubby', '--grub2', '--info=2']
grubby: kernel not found
DEBUG: Grubby: ['/sbin/grubby', '--grub2', '--info=3']
grubby: kernel not found
DEBUG: Grubby: ['/sbin/grubby', '--grub2', '--info=4']
grubby: kernel not found
DEBUG: Grubby: ['/sbin/grubby', '--grub2', '--info=5']
grubby: kernel not found
...

> 06/12 10:34:03 DEBUG|  boottool:1136| No kernel found for title
> "autotest". Assuming no entry exists, and emulating boottool(.pl)
> behavior and being silent about it.

This is actually OK at this stage. The autotest code that installs a kernel 
first tries to remove the entry by the same name. If it's not found, it's just 
ignored.

> 
> When I run grubby --info=/boot/vmlinux-autotest, it gives a similar
> error, i.e.:
> 
> Grubby: kernel not found.
> 

Can you check if boottool, manually, can add your kernel entry? Please run this:

# cp /boot/vmlinuz-<your-version> /boot/vmlinuz-autotest
# cp /boot/initramfs-<your-version> /boot/initrd-autotest
# boottool --add-kernel=/boot/vmlinuz-autotest --initrd=/boot/initrd-autotest 
--title=autotest

And then this:

# grubby --info=/boot/vmlinuz-autotest

And report the results?

> Any ideas why the kernel is not getting picked up?
> 
> Thanks,
> Steve
> 
> 
> -----Original Message-----
> From: autotest-boun...@test.kernel.org
> [mailto:autotest-boun...@test.kernel.org] On Behalf Of
> steve.wa...@sap.com
> Sent: 11 June 2012 14:36
> To: Lucas Meneghel Rodrigues
> Cc: autotest@test.kernel.org
> Subject: Re: [Autotest] kernel.boot is failing because "Unable to
> instantiate boottool"
> 
> Hi Lucas,
> 
> Thanks for the response. I actually discovered some missing
> dependencies: libpopt and blkid. Once, these installed, it seems to
> build grubby from a tarball.
> 
> Steve
> 
> -----Original Message-----
> From: Lucas Meneghel Rodrigues [mailto:l...@redhat.com]
> Sent: 11 June 2012 14:27
> To: Walsh, Steve
> Cc: autotest@test.kernel.org
> Subject: Re: [Autotest] kernel.boot is failing because "Unable to
> instantiate boottool"
> 
> On Mon, 2012-06-11 at 12:56 +0200, steve.wa...@sap.com wrote:
> > Hi there,
> > 
> >  
> > 
> > I’ve just started using autotest and I’m trying to use the kernel
> > module to boot into a recently built kernel. It appears to be
> > failing
> > due to not being able to install grubby.
> 
> I'm finding weird that it appears to not even trying to compile and
> install grubby... I'll have to pick up an ubuntu VM and perform some
> tests, hang on...
> 
> 
> > I’m running this on Ubuntu 12.04 server. The stacktrace in
> > client.0.DEBUG is shown below.
> > 
> >  
> > 
> > Any help would be greatly appreciated.
> > 
> >  
> > 
> > Thanks,
> > 
> > Steve
> > 
> >  
> > 
> >  
> > 
> > 06/11 11:18:20 INFO |  boottool:0498| Installing grubby because it
> > was
> > not found on this system
> > 
> > 06/11 11:18:20 ERROR|  boottool:0598| _run_get_output error while
> > running: "/sbin/grubby --version"
> > 
> > 06/11 11:18:20 WARNI|  boottool:1180| Could not run grubby to fetch
> > its version
> > 
> > 06/11 11:18:20 WARNI|  boottool:0571| Could not detect current
> > grubby
> > version. It may be that you are running an unsupported version of
> > grubby
> > 
> > 06/11 11:18:20 ERROR|  boottool:0620| _run_get_output_err error
> > while
> > running: "/sbin/grubby --bootloader-probe"
> > 
> > 06/11 11:18:21 DEBUG|   package:0160| Listing all packages
> > available
> > 
> > 06/11 11:18:21 ERROR|  parallel:0026| child process failed
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030| Traceback (most recent call
> > last):
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|   File
> > "/usr/local/autotest/parallel.py", line 18, in fork_start
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|     l()
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|   File
> > "/usr/local/autotest/job.py", line 526, in <lambda>
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|     l = lambda :
> > test.runtest(self, url, tag, args, dargs)
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|   File
> > "/usr/local/autotest/test.py", line 114, in runtest
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|
> > job.sysinfo.log_after_each_iteration)
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|   File
> > "/usr/local/autotest/shared/test.py", line 927, in runtest
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|     mytest._exec(args, dargs)
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|   File
> > "/usr/local/autotest/shared/test.py", line 420, in _exec
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|
> > _call_test_function(self.execute, *p_args, **p_dargs)
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|   File
> > "/usr/local/autotest/shared/test.py", line 835, in
> > _call_test_function
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|     return func(*args,
> > **dargs)
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|   File
> > "/usr/local/autotest/shared/test.py", line 293, in execute
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|     postprocess_profiled_run,
> > args, dargs)
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|   File
> > "/usr/local/autotest/shared/test.py", line 213, in _call_run_once
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|     self.run_once(*args,
> > **dargs)
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|   File
> > "/usr/local/autotest/tests/heca_master_deploy/heca_master_deploy.py",
> > line 17, in run_once
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|     kernel.boot()
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|   File
> > "/usr/local/autotest/kernel.py", line 607, in boot
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|     self.subdir,
> > self.applied_patches)
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|   File
> > "/usr/local/autotest/kernel.py", line 104, in _boot_kernel
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|
> >     self.add_to_bootloader(args)
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|   File
> > "/usr/local/autotest/kernel.py", line 119, in add_to_bootloader
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|     self.initrd)
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|   File
> > "/usr/local/autotest/kernel.py", line 40, in
> > _add_kernel_to_bootloader
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|
> > bootloader.remove_kernel(tag)
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|   File
> > "/usr/local/autotest/tools/boottool", line 1132, in remove_kernel
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|     entry_selection =
> > self._get_entry_selection(kernel)
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|   File
> > "/usr/local/autotest/tools/boottool", line 821, in
> > _get_entry_selection
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|     return
> > self._kernel_for_title(data)
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|   File
> > "/usr/local/autotest/tools/boottool", line 791, in
> > _kernel_for_title
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|     index =
> > self._index_for_title(title)
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|   File
> > "/usr/local/autotest/tools/boottool", line 745, in _index_for_title
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|     info =
> > self.get_info_lines()
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|   File
> > "/usr/local/autotest/tools/boottool", line 1158, in get_info_lines
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|     info =
> > self.get_info(entry)
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|   File
> > "/usr/local/autotest/tools/boottool", line 1024, in get_info
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|     info =
> > self._run_grubby_get_output([command])
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|   File
> > "/usr/local/autotest/tools/boottool", line 681, in
> > _run_grubby_get_output
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|     args =
> > self._run_grubby_prepare_args(arguments, include_bootloader)
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|   File
> > "/usr/local/autotest/tools/boottool", line 666, in
> > _run_grubby_prepare_args
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|     if include_bootloader and
> > self.bootloader is not None:
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|   File
> > "/usr/local/autotest/shared/boottool.py", line 57, in __getattr__
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|     self._init_on_demand()
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|   File
> > "/usr/local/autotest/shared/boottool.py", line 53, in
> > _init_on_demand
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030|     raise
> > error.JobError("Unable
> > to instantiate boottool")
> > 
> > 06/11 11:18:21 DEBUG|  parallel:0030| JobError: Unable to
> > instantiate
> > boottool
> > 
> > 06/11 11:18:22 INFO |       job:0210|          END ABORT
> > heca_master_deploy     heca_master_deploy
> > timestamp=1339409902                localtime=Jun 11
> > 11:18:22
> > 
> > 06/11 11:18:23 DEBUG|  base_job:0349| Persistent state
> > client._record_indent now set to 1
> > 
> > 06/11 11:18:24 DEBUG|  base_job:0376| Persistent state
> > client.unexpected_reboot deleted
> > 
> >  
> > 
> >  
> > 
> > Dr. Steve Walsh
> > 
> > Researcher, SAP Research, CEC Belfast
> > 
> > SAP (UK) Limited, The Concourse Building, Queen's Road , Queen's
> > Island, Titanic Quarter, BT3 9TD Belfast
> > 
> > T +44 (0)28 9078 5721
> > 
> >  
> > 
> > 
> > _______________________________________________
> > Autotest mailing list
> > Autotest@test.kernel.org
> > http://test.kernel.org/cgi-bin/mailman/listinfo/autotest
> 
> 
> _______________________________________________
> Autotest mailing list
> Autotest@test.kernel.org
> http://test.kernel.org/cgi-bin/mailman/listinfo/autotest
> _______________________________________________
> Autotest mailing list
> Autotest@test.kernel.org
> http://test.kernel.org/cgi-bin/mailman/listinfo/autotest
> 
_______________________________________________
Autotest mailing list
Autotest@test.kernel.org
http://test.kernel.org/cgi-bin/mailman/listinfo/autotest

Reply via email to