From 309c832c2c21ceb97fd589ebce8327d0d2bba731 Mon Sep 17 00:00:00 2001 From: ant Date: Thu, 4 Sep 2008 10:16:43 +0000 Subject: kexecboot: add patch to read mtdparts from /proc/cmdline initramfs-kexecboot: add rotation parameter for c7x0 linux-kexecboot_2.6.26: change defconfigs --- packages/kexecboot/files/kexecboot-rewrite.patch | 344 +++++++++++++++++++++ packages/kexecboot/files/rootdelay.patch | 11 - packages/kexecboot/initramfs-kexecboot_1.0.bb | 3 +- packages/kexecboot/kexecboot_0.3.bb | 14 +- .../linux-kexecboot-2.6.26/defconfig-akita | 3 +- .../linux-kexecboot-2.6.26/defconfig-bootcdx86 | 2 +- .../linux-kexecboot-2.6.26/defconfig-c7x0 | 3 +- .../linux-kexecboot-2.6.26/defconfig-htcuniversal | 3 +- .../linux-kexecboot-2.6.26/defconfig-hx2000 | 2 +- .../linux-kexecboot-2.6.26/defconfig-poodle | 3 +- .../linux-kexecboot-2.6.26/defconfig-qemuarm | 2 +- .../linux-kexecboot-2.6.26/defconfig-qemux86 | 2 +- .../linux-kexecboot-2.6.26/defconfig-spitz | 3 +- .../linux-kexecboot-2.6.26/defconfig-zylonite | 3 +- packages/kexecboot/linux-kexecboot.inc | 6 + packages/kexecboot/linux-kexecboot_2.6.26.bb | 4 +- 16 files changed, 378 insertions(+), 30 deletions(-) create mode 100644 packages/kexecboot/files/kexecboot-rewrite.patch delete mode 100644 packages/kexecboot/files/rootdelay.patch (limited to 'packages/kexecboot') diff --git a/packages/kexecboot/files/kexecboot-rewrite.patch b/packages/kexecboot/files/kexecboot-rewrite.patch new file mode 100644 index 0000000000..4f252061ab --- /dev/null +++ b/packages/kexecboot/files/kexecboot-rewrite.patch @@ -0,0 +1,344 @@ +--- kexecboot-0.3.orig/kexecboot.h 2008-09-03 02:35:40.000000000 +0400 ++++ kexecboot-0.3/kexecboot.h 2008-09-03 02:36:04.000000000 +0400 +@@ -24,6 +24,10 @@ + #include + #include + #include ++#include ++#include ++#include ++#include + #include "fb.h" + #include "devicescan.h" + #include "res/logo-img.h" +@@ -33,4 +37,14 @@ + #include "res/memory-img.h" + #include "res/radeon-font.h" + ++/* Macro for dealing with NULL strings */ ++#define strlenn(s) ( (NULL != s) ? (strlen(s)) : 0 ) ++ ++/* Tags we want from /proc/cmdline */ ++char *wanted_tags[] = { ++ "mtdparts", ++ NULL ++}; ++ ++ + #endif +--- kexecboot-0.3.orig/kexecboot.c 2008-09-03 02:35:40.000000000 +0400 ++++ kexecboot-0.3/kexecboot.c 2008-09-03 03:33:05.000000000 +0400 +@@ -78,20 +78,293 @@ + fb_render(fb); + } + ++/* ++ * Function: get_extra_cmdline() ++ * It gets wanted tags from original cmdline. ++ * Takes 2 args: ++ * - extra_cmdline - buffer to store cmdline parameters; ++ * - extra_cmdline_size - size of buffer ++ * (inc. terminating '\0'). ++ * Return values: ++ * - length of extra_cmdline on success (w/o term. zero); ++ * - -1 on error; ++ * - (- length of extra_cmdline - 1) on insufficient buffer space. ++ */ ++ ++int get_extra_cmdline(char *const extra_cmdline, const size_t extra_cmdline_size) ++{ ++ char *p, *t, *tag = NULL; ++ char line[COMMAND_LINE_SIZE]; ++ int i, len, sp_size; ++ int sum_len = 0; ++ int wanted_tag_found = 0; ++ int overflow = 0; ++ ++ const char proc_cmdline_path[] = "/proc/cmdline"; ++ ++ /* Open /proc/cmdline and read cmdline */ ++ FILE *f = fopen(proc_cmdline_path, "r"); ++ if (NULL == f) { ++ perror("Can't open /proc/cmdline"); ++ return -1; ++ } ++ ++ if ( NULL == fgets(line, sizeof(line), f) ) { ++ perror("Can't read /proc/cmdline"); ++ fclose(f); ++ return -1; ++ } ++ ++ fclose(f); ++ ++ /* clean up buffer before parsing */ ++ t = extra_cmdline; ++ *t = '\0'; ++ ++ p = line-1; /* because of ++p below */ ++ ++ sp_size = 0; /* size of (first) space */ ++ ++ do { ++ ++p; ++ ++ if ( (NULL == tag) && (isalnum(*p)) ) { ++ /* new tag found */ ++ tag = p; ++ } else if (tag) { ++ /* we are working on some tag */ ++ ++ if (isspace(*p) || ('\0' == *p) || ('=' == *p) ) { ++ /* end of tag or '=' found */ ++ ++ if (!wanted_tag_found) { ++ /* search in wanted_tags */ ++ for (i = 0; wanted_tags[i] != NULL; i++) { ++ if ( 0 == strncmp(wanted_tags[i], tag, p-tag) ) { ++ /* match found */ ++ wanted_tag_found = 1; ++ break; ++ } ++ } ++ } ++ ++ if ( ('=' != *p) && wanted_tag_found ) { ++ /* end of wanted tag found -> copy */ ++ ++ len = p - tag; ++ if ( (sum_len + len + sp_size) < extra_cmdline_size ) { ++ if (sp_size) { ++ /* prepend space when have tags already */ ++ *t = ' '; ++ ++t; ++ *t = '\0'; ++ ++sum_len; ++ } else { ++ sp_size = sizeof(char); ++ } ++ ++ /* NOTE: tag is not null-terminated so copy only ++ * len chars and terminate it directly ++ */ ++ strncpy(t, tag, len); ++ /* move pointer to position after copied tag */ ++ t += len ; ++ /* null-terminate */ ++ *t = '\0'; ++ /* update summary length */ ++ sum_len += len; ++ } else { ++ /* we have no space - skip this tag */ ++ overflow = 1; ++ } ++ ++ /* reset wanted_tag_found */ ++ wanted_tag_found = 0; ++ } ++ ++ /* reset tag */ ++ if (!wanted_tag_found) tag = NULL; ++ ++ } ++ } ++ ++ } while ('\0' != *p); ++ ++ if (overflow) return -sum_len-1; ++ return sum_len; ++} ++ ++/* ++ * Function: kexec_execw() ++ * (execve and wait) ++ * kexecboot's replace of system() call without /bin/sh invocation. ++ * During execution of the command, SIGCHLD will be blocked, ++ * and SIGINT and SIGQUIT will be ignored (like system() does). ++ * Takes 2 args (execve()-like): ++ * - path - full path to executable file ++ * - argv[] - array of args for executed file (command options e.g.) ++ * - envp[] - array of environment strings ("key=value") ++ * Return value: ++ * - command exit status on success ++ * - -1 on error (e.g. fork() failed) ++ */ ++int kexec_execw(const char *path, char *const argv[], char *const envp[]) ++{ ++ pid_t pid; ++ struct sigaction ignore, old_int, old_quit; ++ sigset_t masked, oldmask; ++ int status; ++ ++ /* Block SIGCHLD and ignore SIGINT and SIGQUIT */ ++ /* Do this before the fork() to avoid races */ ++ ++ ignore.sa_handler = SIG_IGN; ++ sigemptyset(&ignore.sa_mask); ++ ignore.sa_flags = 0; ++ sigaction(SIGINT, &ignore, &old_int); ++ sigaction(SIGQUIT, &ignore, &old_quit); ++ ++ sigemptyset(&masked); ++ sigaddset(&masked, SIGCHLD); ++ sigprocmask(SIG_BLOCK, &masked, &oldmask); ++ ++ pid = fork(); ++ ++ if (pid < 0) ++ /* can't fork */ ++ return -1; ++ else if (pid == 0) { ++ /* it is child */ ++ sigaction(SIGINT, &old_int, NULL); ++ sigaction(SIGQUIT, &old_quit, NULL); ++ sigprocmask(SIG_SETMASK, &oldmask, NULL); ++ ++ /* replace child with executed file */ ++ execve(path, (char *const *)argv, (char *const *)envp); ++ /* should not happens but... */ ++ _exit(127); ++ } ++ ++ /* it is parent */ ++ ++ /* wait for our child and store status */ ++ waitpid(pid, &status, 0); ++ ++ /* restore signal handlers */ ++ sigaction(SIGINT, &old_int, NULL); ++ sigaction(SIGQUIT, &old_quit, NULL); ++ sigprocmask(SIG_SETMASK, &oldmask, NULL); ++ ++ return status; ++} ++ + void start_kernel(struct boot *boot) + { +- //kexec --command-line="CMDLINE" -l /mnt/boot/zImage +- char command[COMMAND_LINE_SIZE + 60]; +- mount(boot->device, "/mnt", boot->fstype, MS_RDONLY, NULL); +- if( boot->cmdline ) +- sprintf(command,"/usr/sbin/kexec --command-line=\"%s root=%s rootfstype=%s\" -l %s", +- boot->cmdline, boot->device, boot->fstype, boot->kernelpath); +- else +- sprintf(command,"kexec -l %s", boot->kernelpath); +- system(command); +-// puts(command); +- umount("/mnt"); +- system("/usr/sbin/kexec -e"); ++ /* we use var[] instead of *var because sizeof(var) using */ ++ const char mount_point[] = "/mnt"; ++ const char kexec_path[] = "/usr/sbin/kexec"; ++ ++ const char str_cmdline_start[] = "--command-line="; ++ const char str_root[] = " root="; ++ const char str_rootfstype[] = " rootfstype="; ++ const char str_rootwait[] = " rootwait"; ++ ++ /* empty environment */ ++ char *const envp[] = { NULL }; ++ ++ const char *kexec_load_argv[] = { NULL, "-l", NULL, NULL, NULL }; ++ const char *kexec_exec_argv[] = { NULL, "-e", NULL}; ++ ++ char extra_cmdline_buffer[COMMAND_LINE_SIZE]; ++ char *extra_cmdline, *cmdline_arg = NULL; ++ int n, idx; ++ ++ kexec_exec_argv[0] = kexec_path; ++ kexec_load_argv[0] = kexec_path; ++ ++ /* --command-line arg generation */ ++ idx = 2; /* kexec_load_argv current option index */ ++ ++ /* get some parts of cmdline from boot loader (e.g. mtdparts) */ ++ n = get_extra_cmdline( extra_cmdline_buffer, ++ sizeof(extra_cmdline_buffer) ); ++ if ( -1 == n ) { ++ /* clean up extra_cmdline on error */ ++ extra_cmdline = NULL; ++/* } else if ( n < -1 ) { */ ++ /* Do something when we have no space to get all wanted tags */ ++ /* Now do nothing ;) */ ++ } else { ++ extra_cmdline = extra_cmdline_buffer; ++ } ++ ++ /* fill '--command-line' option */ ++ if (boot->cmdline || extra_cmdline || boot->device) { ++ /* allocate space */ ++ n = strlenn(str_cmdline_start) + strlenn(boot->cmdline) + ++ sizeof(char) + strlenn(extra_cmdline) + ++ strlenn(str_root) + strlenn(boot->device) + ++ strlenn(str_rootfstype) + strlenn(boot->fstype) + ++ strlenn(str_rootwait) + sizeof(char); ++ ++ cmdline_arg = (char *)malloc(n); ++ if (NULL == cmdline_arg) { ++ perror("Can't allocate memory for cmdline_arg"); ++ /* Should we exit? ++ exit(-1); ++ */ ++ } else { ++ strcat(cmdline_arg, str_cmdline_start); ++ if (extra_cmdline) ++ strcat(cmdline_arg, extra_cmdline); ++ if (boot->cmdline && extra_cmdline) ++ strcat(cmdline_arg, " "); ++ if (boot->cmdline) ++ strcat(cmdline_arg, boot->cmdline); ++ if (boot->device) { ++ strcat(cmdline_arg, str_root); ++ strcat(cmdline_arg, boot->device); ++ if (boot->fstype) { ++ strcat(cmdline_arg, str_rootfstype); ++ strcat(cmdline_arg, boot->fstype); ++ } ++ } ++ strcat(cmdline_arg, str_rootwait); ++ ++ kexec_load_argv[idx] = cmdline_arg; ++ ++idx; ++ } ++ } ++ ++ /* Append kernelpath as last arg of kexec */ ++ kexec_load_argv[idx] = boot->kernelpath; ++ ++ /* Debug ++ fprintf(stderr, "%s\n%s\n%s\n%s\n", kexec_load_argv[0], ++ kexec_load_argv[1], kexec_load_argv[2], ++ kexec_load_argv[3]); */ ++ ++ /* Mount boot device */ ++ if ( -1 == mount(boot->device, mount_point, boot->fstype, ++ MS_RDONLY, NULL) ) { ++ perror("Can't mount boot device"); ++ exit(-1); ++ } ++ ++ /* Load kernel */ ++ n = kexec_execw(kexec_path, (char *const *)kexec_load_argv, envp); ++ if (-1 == n) { ++ perror("Kexec can't load kernel"); ++ exit(-1); ++ } ++ ++ if (cmdline_arg) ++ free(cmdline_arg); ++ ++ umount(mount_point); ++ ++ /* Boot new kernel */ ++ execve(kexec_path, (char *const *)kexec_exec_argv, envp); + } + + int main(int argc, char **argv) +@@ -219,5 +492,6 @@ + tcsetattr(fileno(stdin), TCSANOW, &old); + fb_destroy(fb); + start_kernel(bl->list[choice]); +- return 0; ++ /* When we reach this point then some error was occured */ ++ return -1; + } diff --git a/packages/kexecboot/files/rootdelay.patch b/packages/kexecboot/files/rootdelay.patch deleted file mode 100644 index 19a712ab57..0000000000 --- a/packages/kexecboot/files/rootdelay.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- kexecboot-0.3/kexecboot.c 2008-08-03 17:08:31.000000000 +0200 -+++ kexecboot/kexecboot.c 2008-08-04 13:35:32.167062391 +0200 -@@ -84,7 +84,7 @@ - char command[COMMAND_LINE_SIZE + 60]; - mount(boot->device, "/mnt", boot->fstype, MS_RDONLY, NULL); - if( boot->cmdline ) -- sprintf(command,"/usr/sbin/kexec --command-line=\"%s root=%s rootfstype=%s\" -l %s", -+ sprintf(command,"/usr/sbin/kexec --command-line=\"%s root=%s rootfstype=%s rootdelay=3\" -l %s", - boot->cmdline, boot->device, boot->fstype, boot->kernelpath); - else - sprintf(command,"kexec -l %s", boot->kernelpath); diff --git a/packages/kexecboot/initramfs-kexecboot_1.0.bb b/packages/kexecboot/initramfs-kexecboot_1.0.bb index 75fb8e8708..a6450b0bfb 100644 --- a/packages/kexecboot/initramfs-kexecboot_1.0.bb +++ b/packages/kexecboot/initramfs-kexecboot_1.0.bb @@ -1,8 +1,9 @@ DESCRIPTON = "A init script that mounts a device and kexecs a new kernel from it." -PR = "r7" +PR = "r8" RDEPENDS = "kexecboot klibc-utils-static-mount klibc-utils-static-sh klibc-utils-static-sleep" FBANGLE = "270" +FBANGLE_c7x0 = "0" INPUTDEV = "/dev/event0" diff --git a/packages/kexecboot/kexecboot_0.3.bb b/packages/kexecboot/kexecboot_0.3.bb index f3fb6e35cb..f94e31b4e2 100644 --- a/packages/kexecboot/kexecboot_0.3.bb +++ b/packages/kexecboot/kexecboot_0.3.bb @@ -1,21 +1,21 @@ LICENSE = "GPL" -PR = "r1" +PR = "r2" DEPENDS = "klibc" RDEPENDS = "kexec-static" + inherit autotools # You can create your own *-img.h by doing # ./make-image-header.sh .png HAND SRC_URI = "http://projects.linuxtogo.org/frs/download.php/221/kexecboot-${PV}.tar.gz \ - file://rootdelay.patch;patch=1" -S = "${WORKDIR}/kexecboot-${PV}" + file://kexecboot-rewrite.patch;patch=1" +S = "${WORKDIR}/kexecboot-${PV}" export CC=${TARGET_PREFIX}klcc # standart oe cflags don't work with klcc -export CFLAGS="" -export CPPFLAGS="" -export LDFLAGS="" - +export CFLAGS = "" +export CPPFLAGS = "" +export LDFLAGS = "" diff --git a/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-akita b/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-akita index e630a9abff..21201dabc2 100644 --- a/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-akita +++ b/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-akita @@ -53,7 +53,8 @@ CONFIG_FAIR_USER_SCHED=y # CONFIG_FAIR_CGROUP_SCHED is not set CONFIG_SYSFS_DEPRECATED=y # CONFIG_RELAY is not set -# CONFIG_BLK_DEV_INITRD is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="initramfs.cpio.gz" CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SYSCTL=y CONFIG_EMBEDDED=y diff --git a/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-bootcdx86 b/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-bootcdx86 index 35e9b5cd22..1176bc70bd 100644 --- a/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-bootcdx86 +++ b/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-bootcdx86 @@ -72,7 +72,7 @@ CONFIG_FAIR_USER_SCHED=y CONFIG_SYSFS_DEPRECATED=y # CONFIG_RELAY is not set CONFIG_BLK_DEV_INITRD=y -CONFIG_INITRAMFS_SOURCE="" +CONFIG_INITRAMFS_SOURCE="initramfs.cpio.gz" # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SYSCTL=y CONFIG_EMBEDDED=y diff --git a/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-c7x0 b/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-c7x0 index 6c188e7b57..b57b4c7277 100644 --- a/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-c7x0 +++ b/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-c7x0 @@ -53,7 +53,8 @@ CONFIG_FAIR_USER_SCHED=y # CONFIG_FAIR_CGROUP_SCHED is not set CONFIG_SYSFS_DEPRECATED=y # CONFIG_RELAY is not set -# CONFIG_BLK_DEV_INITRD is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="initramfs.cpio.gz" CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SYSCTL=y CONFIG_EMBEDDED=y diff --git a/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-htcuniversal b/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-htcuniversal index 8b2a31dbb0..e9d5dc1e22 100644 --- a/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-htcuniversal +++ b/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-htcuniversal @@ -53,7 +53,8 @@ CONFIG_FAIR_USER_SCHED=y # CONFIG_FAIR_CGROUP_SCHED is not set CONFIG_SYSFS_DEPRECATED=y # CONFIG_RELAY is not set -# CONFIG_BLK_DEV_INITRD is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="initramfs.cpio.gz" CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SYSCTL=y CONFIG_EMBEDDED=y diff --git a/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-hx2000 b/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-hx2000 index 0f2557c0f7..1fcf2bb910 100644 --- a/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-hx2000 +++ b/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-hx2000 @@ -54,7 +54,7 @@ CONFIG_FAIR_USER_SCHED=y CONFIG_SYSFS_DEPRECATED=y # CONFIG_RELAY is not set CONFIG_BLK_DEV_INITRD=y -CONFIG_INITRAMFS_SOURCE="" +CONFIG_INITRAMFS_SOURCE="initramfs.cpio.gz" CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SYSCTL=y CONFIG_EMBEDDED=y diff --git a/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-poodle b/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-poodle index 7d41252b15..a89a82bee8 100644 --- a/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-poodle +++ b/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-poodle @@ -53,7 +53,8 @@ CONFIG_FAIR_USER_SCHED=y # CONFIG_FAIR_CGROUP_SCHED is not set CONFIG_SYSFS_DEPRECATED=y # CONFIG_RELAY is not set -# CONFIG_BLK_DEV_INITRD is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="initramfs.cpio.gz" CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SYSCTL=y CONFIG_EMBEDDED=y diff --git a/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-qemuarm b/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-qemuarm index e636b6c671..6a4502f95b 100644 --- a/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-qemuarm +++ b/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-qemuarm @@ -53,7 +53,7 @@ CONFIG_FAIR_USER_SCHED=y CONFIG_SYSFS_DEPRECATED=y # CONFIG_RELAY is not set CONFIG_BLK_DEV_INITRD=y -CONFIG_INITRAMFS_SOURCE="" +CONFIG_INITRAMFS_SOURCE="initramfs.cpio.gz" CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SYSCTL=y CONFIG_EMBEDDED=y diff --git a/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-qemux86 b/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-qemux86 index 42f6740201..3724f1602b 100644 --- a/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-qemux86 +++ b/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-qemux86 @@ -72,7 +72,7 @@ CONFIG_FAIR_USER_SCHED=y CONFIG_SYSFS_DEPRECATED=y # CONFIG_RELAY is not set CONFIG_BLK_DEV_INITRD=y -CONFIG_INITRAMFS_SOURCE="" +CONFIG_INITRAMFS_SOURCE="initramfs.cpio.gz" # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SYSCTL=y CONFIG_EMBEDDED=y diff --git a/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-spitz b/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-spitz index 9c8f0ae8a1..cc66e0f10e 100644 --- a/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-spitz +++ b/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-spitz @@ -52,7 +52,8 @@ CONFIG_SYSFS_DEPRECATED=y CONFIG_SYSFS_DEPRECATED_V2=y # CONFIG_RELAY is not set # CONFIG_NAMESPACES is not set -# CONFIG_BLK_DEV_INITRD is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="initramfs.cpio.gz" CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SYSCTL=y CONFIG_EMBEDDED=y diff --git a/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-zylonite b/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-zylonite index cc2fc482ae..3e7f96f6a7 100644 --- a/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-zylonite +++ b/packages/kexecboot/linux-kexecboot-2.6.26/defconfig-zylonite @@ -53,7 +53,8 @@ CONFIG_FAIR_USER_SCHED=y # CONFIG_FAIR_CGROUP_SCHED is not set CONFIG_SYSFS_DEPRECATED=y # CONFIG_RELAY is not set -# CONFIG_BLK_DEV_INITRD is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="initramfs.cpio.gz" CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SYSCTL=y CONFIG_EMBEDDED=y diff --git a/packages/kexecboot/linux-kexecboot.inc b/packages/kexecboot/linux-kexecboot.inc index 1671a49512..5926778eff 100644 --- a/packages/kexecboot/linux-kexecboot.inc +++ b/packages/kexecboot/linux-kexecboot.inc @@ -4,6 +4,12 @@ LICENSE = "GPL" DONT_CHECK_KERNELSIZE = "" INITRAMFS_IMAGE = "initramfs-kexecboot-image" + +# uncomment the following lines if you use u-boot as bootloader +#KERNEL_IMAGETYPE_c7x0="uImage" +#KERNEL_IMAGETYPE_akita="uImage" +#KERNEL_IMAGETYPE_spitz="uImage" + inherit kernel PACKAGES = "" PROVIDES = "" diff --git a/packages/kexecboot/linux-kexecboot_2.6.26.bb b/packages/kexecboot/linux-kexecboot_2.6.26.bb index 5d31aae5cb..2be42e6c17 100644 --- a/packages/kexecboot/linux-kexecboot_2.6.26.bb +++ b/packages/kexecboot/linux-kexecboot_2.6.26.bb @@ -1,11 +1,13 @@ require linux-kexecboot.inc -PR = "r2" +PR = "r3" DEFAULT_PREFERENCE = "-1" DEFAULT_PREFERENCE_qemuarm = "-1" DEFAULT_PREFERENCE_qemux86 = "-1" DEFAULT_PREFERENCE_spitz = "1" DEFAULT_PREFERENCE_collie = "1" +DEFAULT_PREFERENCE_c7x0 = "1" +DEFAULT_PREFERENCE_akita = "1" # Handy URLs # git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git;protocol=git;tag=ef7d1b244fa6c94fb76d5f787b8629df64ea4046 -- cgit v1.2.3