Chameleon

Chameleon Commit Details

Date:2011-12-04 14:10:33 (2 years 10 months ago)
Author:JrCs
Commit:1710
Parents: 1709
Message:Fix a problem where kernel flags aren't passed to the kernel When booting from RAID volumes the Kernel Flags from org.chameleon.boot.plist weren't passed to the kernel because the system config was loaded from the boothelper partition and the config isn't overridable.
Changes:
M/trunk/i386/boot2/options.c
M/trunk/i386/libsaio/stringTable.c

File differences

trunk/i386/libsaio/stringTable.c
498498
499499
500500
501
501
502502
503503
504504
......
635635
636636
637637
638
639
640
641638
642639
643640
641
644642
643
644
645
646
645647
646648
647649
ret = getValueForConfigTableKey(config, key, val, size);
// Try to find alternate keys in bootInfo->overrideConfig
// Try to find alternate keys in bootInfo->chameleonConfig (if config can be overriden)
// and prefer its values with the exceptions for
// "Kernel"="mach_kernel" and "Kernel Flags"="".
sysConfigValid = true;
ret=0;
// enable canOverride flag
config->canOverride = true;
break;
}
}
if(ret == -1) ret = loadHelperConfig(config);
// Always enable canOverride flag (for SystemConfig)
config->canOverride = true;
return ret;
}
trunk/i386/boot2/options.c
12141214
12151215
12161216
1217
1217
12181218
12191219
12201220
cntRemaining = BOOT_STRING_LEN - 2; // save 1 for NULL, 1 for space
argP = bootArgs->CommandLine;
// Get config table kernel flags, if not ignored.
// Get config kernel flags, if not ignored.
if (getValueForBootKey(cp, kIgnoreBootFileFlag, &val, &cnt) ||
!getValueForKey( kKernelFlagsKey, &val, &cnt, &bootInfo->bootConfig )) {
val = "";

Archive Download the corresponding diff file

Revision: 1710