#include "petitboot-paths.h"
#include "devices/message.h"
-#define PBOOT_DEFAULT_ICON "usbpen.png"
+#define PBOOT_DEFAULT_ICON "tux.png"
static const char *default_icon = artwork_pathname(PBOOT_DEFAULT_ICON);
{
struct boot_option *opt = data;
char *kexec_opts[10];
- int nr_opts = 2;
+ int i, nr_opts = 2;
- kexec_opts[0] = "/sbin/kexec";
+ kexec_opts[0] = "/usr/sbin/kexec";
kexec_opts[1] = "-f";
- if (opt->initrd_file) {
+ if (opt->initrd_file && *opt->initrd_file) {
kexec_opts[nr_opts] = malloc(10 + strlen(opt->initrd_file));
sprintf(kexec_opts[nr_opts], "--initrd=%s", opt->initrd_file);
nr_opts++;
}
- if (opt->boot_args) {
+ if (opt->boot_args && *opt->boot_args) {
kexec_opts[nr_opts] = malloc(10 + strlen(opt->boot_args));
sprintf(kexec_opts[nr_opts], "--command-line=%s",
opt->boot_args);
kexec_opts[nr_opts++] = opt->boot_image_file;
kexec_opts[nr_opts] = NULL;
+
+ LOG("calling kexec:\n");
+ for (i = 0; i < nr_opts; i++) {
+ LOG("\t'%s'\n", kexec_opts[i]);
+ }
+ fflush(stdout);
+
execv(kexec_opts[0], kexec_opts);
+
+ LOG("kexec failed: %s", strerror(errno));
}