Index: branches/Chimera/i386/libsaio/nvidia.c =================================================================== --- branches/Chimera/i386/libsaio/nvidia.c (revision 1690) +++ branches/Chimera/i386/libsaio/nvidia.c (revision 1691) @@ -801,6 +801,7 @@ { 0x10DE1040, "GeForce GT 520" }, // 1050 - 105F { 0x10DE1050, "GeForce GT 520M" }, + { 0x10DE1056, "Quadro NVS 4200M" }, // 1060 - 106F // 1070 - 107F // 1080 - 108F Index: branches/Chimera/i386/libsaio/ati.c =================================================================== --- branches/Chimera/i386/libsaio/ati.c (revision 1690) +++ branches/Chimera/i386/libsaio/ati.c (revision 1691) @@ -398,8 +398,6 @@ { 0x9589, 0x30001462, CHIP_FAMILY_RV630, "ATI Radeon HD 3610", kNull }, - { 0x9589, 0x30001642, CHIP_FAMILY_RV630, "ATI Radeon HD 3610", kNull }, - { 0x9589, 0x0E41174B, CHIP_FAMILY_RV630, "ATI Radeon HD 3600 Series", kNull }, { 0x9589, 0x30001787, CHIP_FAMILY_RV630, "ATI Radeon HD 3600 Series", kNull }, @@ -410,7 +408,7 @@ { 0x9598, 0xB3831002, CHIP_FAMILY_RV635, "ATI All-in-Wonder HD", kNull }, - { 0x9598, 0x30001043, CHIP_FAMILY_RV635, "HD3730", kNull }, + { 0x9598, 0x30001043, CHIP_FAMILY_RV635, "ATI Radeon HD 3730", kNull }, { 0x9598, 0x30011043, CHIP_FAMILY_RV635, "ATI Radeon HD 4570", kNull }, { 0x9598, 0x3000148C, CHIP_FAMILY_RV635, "ATI Radeon HD 3730", kNull }, @@ -480,7 +478,8 @@ { 0x689C, 0x30201682, CHIP_FAMILY_HEMLOCK, "ATI Radeon HD 5970", kUakari }, - { 0x68A1, 0x144D103C, CHIP_FAMILY_CYPRESS, "ATI Mobility Radeon HD 5800", kNomascus }, + { 0x68A1, 0x144D103C, CHIP_FAMILY_CYPRESS, "ATI Mobility Radeon HD 5850", kNomascus }, + { 0x68A1, 0x1522103C, CHIP_FAMILY_CYPRESS, "ATI Mobility Radeon HD 5850", kHoolock }, { 0x68A8, 0x050E1025, CHIP_FAMILY_CYPRESS, "AMD Radeon HD 6850M", kUakari }, @@ -490,6 +489,7 @@ { 0x68B8, 0x29911682, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5770", kVervet }, { 0x68B8, 0x1482174B, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5770", kVervet }, + { 0x68B8, 0xE144174B, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5770", kHoolock }, { 0x68B8, 0xE147174B, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5770", kVervet }, { 0x68B8, 0x21D71458, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5770", kVervet }, @@ -501,8 +501,12 @@ { 0x68C0, 0x1594103C, CHIP_FAMILY_REDWOOD, "AMD Radeon HD 6570M", kNull }, + { 0x68C0, 0x392717AA, CHIP_FAMILY_REDWOOD, "ATI Mobility Radeon HD 5730", kNull }, + { 0x68C1, 0x033E1025, CHIP_FAMILY_REDWOOD, "ATI Mobility Radeon HD 5650", kNull }, + { 0x68C1, 0x9071104D, CHIP_FAMILY_REDWOOD, "ATI Mobility Radeon HD 5650", kEulemur }, + { 0x68C8, 0x2306103C, CHIP_FAMILY_REDWOOD, "ATI FirePro V4800 (FireGL)", kNull }, { 0x68D8, 0x03561043, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5670", kBaboon }, @@ -572,18 +576,25 @@ { 0x6739, 0x24411462, CHIP_FAMILY_BARTS, "AMD Radeon HD 6850", kDuckweed }, + { 0x6739, 0x31101682, CHIP_FAMILY_BARTS, "AMD Radeon HD 6850", kDuckweed }, + { 0x6739, 0xE177174B, CHIP_FAMILY_BARTS, "AMD Radeon HD 6850", kDuckweed }, - + { 0x6740, 0x1657103C, CHIP_FAMILY_TURKS, "AMD Radeon HD 6770M", kNull }, + { 0x6740, 0x165A103C, CHIP_FAMILY_TURKS, "AMD Radeon HD 6770M", kNull }, { 0x6741, 0x050E1025, CHIP_FAMILY_TURKS, "AMD Radeon HD 6650M", kNull }, { 0x6741, 0x05131025, CHIP_FAMILY_TURKS, "AMD Radeon HD 6650M", kNull }, { 0x6741, 0x1646103C, CHIP_FAMILY_TURKS, "AMD Radeon HD 6750M", kNull }, + + { 0x6741, 0x9080104D, CHIP_FAMILY_TURKS, "AMD Radeon HD 6630M", kNull }, { 0x6758, 0x67581002, CHIP_FAMILY_TURKS, "AMD Radeon HD 6670", kBulrushes }, { 0x6758, 0x22051458, CHIP_FAMILY_TURKS, "AMD Radeon HD 6670", kBulrushes }, + + { 0x6758, 0xE194174B, CHIP_FAMILY_TURKS, "AMD Radeon HD 6670", kBulrushes }, { 0x6758, 0x31811682, CHIP_FAMILY_TURKS, "AMD Radeon HD 6670", kBulrushes }, { 0x6758, 0x31831682, CHIP_FAMILY_TURKS, "AMD Radeon HD 6670", kBulrushes }, @@ -592,12 +603,14 @@ { 0x6759, 0xE193174B, CHIP_FAMILY_TURKS, "AMD Radeon HD 6570", kNull }, - { 0x6760, 0x1CB21043, CHIP_FAMILY_RV730, "AMD Radeon HD 6470M", kNull }, + { 0x6760, 0x04CC1028, CHIP_FAMILY_CAICOS, "AMD Radeon HD 6490M", kNull }, + { 0x6760, 0x1CB21043, CHIP_FAMILY_CAICOS, "AMD Radeon HD 6470M", kNull }, + { 0x6779, 0x64501092, CHIP_FAMILY_CAICOS, "AMD Radeon HD 6450", kBulrushes }, { 0x6779, 0xE164174B, CHIP_FAMILY_CAICOS, "AMD Radeon HD 6450", kBulrushes }, - + /* standard/default models */ { 0x9400, 0x00000000, CHIP_FAMILY_R600, "ATI Radeon HD 2900 XT", kNull }, { 0x9405, 0x00000000, CHIP_FAMILY_R600, "ATI Radeon HD 2900 GT", kNull }, @@ -681,18 +694,21 @@ { 0x6718, 0x00000000, CHIP_FAMILY_CAYMAN, "AMD Radeon HD 6970 Series", kNull }, { 0x6719, 0x00000000, CHIP_FAMILY_CAYMAN, "AMD Radeon HD 6950 Series", kNull }, + { 0x6720, 0x00000000, CHIP_FAMILY_BARTS, "AMD Radeon HD 6900M Series", kNull }, + { 0x6738, 0x00000000, CHIP_FAMILY_BARTS, "AMD Radeon HD 6870 Series", kDuckweed }, { 0x6739, 0x00000000, CHIP_FAMILY_BARTS, "AMD Radeon HD 6850 Series", kDuckweed }, { 0x673E, 0x00000000, CHIP_FAMILY_BARTS, "AMD Radeon HD 6790 Series", kNull }, { 0x6740, 0x00000000, CHIP_FAMILY_TURKS, "AMD Radeon HD 6700M Series", kNull }, { 0x6741, 0x00000000, CHIP_FAMILY_TURKS, "AMD Radeon HD 6600M/6700M Series", kNull }, - + { 0x6758, 0x00000000, CHIP_FAMILY_TURKS, "AMD Radeon HD 6670 Series", kBulrushes }, { 0x6759, 0x00000000, CHIP_FAMILY_TURKS, "AMD Radeon HD 6500 Series", kNull }, + + { 0x6760, 0x00000000, CHIP_FAMILY_CAICOS, "AMD Radeon HD 6400M Series", kNull }, + { 0x6761, 0x00000000, CHIP_FAMILY_CAICOS, "AMD Radeon HD 6430M Series", kNull }, - { 0x6760, 0x00000000, CHIP_FAMILY_RV730, "AMD Radeon HD 6470M", kNull }, - { 0x6770, 0x00000000, CHIP_FAMILY_CAICOS, "AMD Radeon HD 6400 Series", kNull }, { 0x6779, 0x00000000, CHIP_FAMILY_CAICOS, "AMD Radeon HD 6450 Series", kBulrushes }, @@ -1305,7 +1321,8 @@ if (!card->info->device_id || !card->info->cfg_name) { - printf("Unsupported card!\n"); + verbose("Unsupported ATI card! Device ID: [%04x:%04x] Subsystem ID: [%08x] \n", + pci_dev->vendor_id, pci_dev->device_id, pci_dev->subsys_id); return false; } @@ -1313,7 +1330,7 @@ card->mmio = (uint8_t *)(pci_config_read32(pci_dev->dev.addr, PCI_BASE_ADDRESS_2) & ~0x0f); card->io = (uint8_t *)(pci_config_read32(pci_dev->dev.addr, PCI_BASE_ADDRESS_4) & ~0x03); - verbose("Framebuffer @0x%08X MMIO @0x%08X I/O Port @0x%08X ROM Addr @0x%08X\n", + verbose("ATI Framebuffer Addr: @0x%08X MMIO Addr: @0x%08X I/O Port Addr: @0x%08X ROM Addr: @0x%08X\n", card->fb, card->mmio, card->io, pci_config_read32(pci_dev->dev.addr, PCI_ROM_ADDRESS)); card->posted = radeon_card_posted(); @@ -1327,7 +1344,7 @@ { if (!load_vbios_file(kUseAtiROM, pci_dev->vendor_id, pci_dev->device_id, pci_dev->subsys_id.subsys_id)) { - verbose("reading VBIOS from %s", card->posted ? "legacy space" : "PCI ROM"); + verbose("reading Video BIOS from %s", card->posted ? "legacy space" : "PCI ROM"); if (card->posted) read_vbios(false); else @@ -1438,11 +1455,11 @@ stringlength = string->length; // ------------------------------------------------- - verbose("ATI %s %s %dMB (%s) [%04x:%04x] (subsys [%04x:%04x]):: %s\n", - chip_family_name[card->info->chip_family], card->info->model_name, - (uint32_t)(card->vram_size / (1024 * 1024)), card->cfg_name, + verbose("%s %dMB [%04x:%04x] (subsys [%04x:%04x]) (%s:%s) :: %s\n", + card->info->model_name, (uint32_t)(card->vram_size / (1024 * 1024)), ati_dev->vendor_id, ati_dev->device_id, ati_dev->subsys_id.subsys.vendor_id, ati_dev->subsys_id.subsys.device_id, + chip_family_name[card->info->chip_family], card->cfg_name, devicepath); free(card); Index: branches/Chimera/i386/libsaio/fake_efi.c =================================================================== --- branches/Chimera/i386/libsaio/fake_efi.c (revision 1690) +++ branches/Chimera/i386/libsaio/fake_efi.c (revision 1691) @@ -434,10 +434,6 @@ static const char const SYSTEM_TYPE_PROP[] = "system-type"; static const char const MODEL_PROP[] = "Model"; static const char const BOARDID_PROP[] = "board-id"; -// Facetime fix from olegpronin @ insanelymac -// Breaks booting from RAID -static const char const BOOT_UUID_PROP[] = "boot-uuid"; -static char uuidStr[64]; /* * Get an smbios option string option to convert to EFI_CHAR16 string @@ -529,6 +525,7 @@ EFI_CHAR16* ret16 = 0; size_t len = 0; Node *node; + node = DT__FindNode("/", false); @@ -606,21 +603,6 @@ // Fill /efi/device-properties node. setupDeviceProperties(node); - - // Facetime fix from olegpronin @ insanelymac - // Thanks to Lnx2Mac for the idea of using the key SkipFTFix=Yes as a temporary work around for this breaking RAID booting - bool skipFTFix=false; - getBoolForKey(kSkipFTFix, &skipFTFix, &bootInfo->chameleonConfig); - if (!skipFTFix) { - //Facetime temp fix start - Node *ChoosenNode; - if (gBootVolume->fs_getuuid && gBootVolume->fs_getuuid (gBootVolume, uuidStr) == 0) - { - ChoosenNode = DT__FindNode("/chosen", false); - DT__AddProperty(ChoosenNode, BOOT_UUID_PROP, 64, uuidStr); - } - //Facetime fix end - } } /* @@ -639,6 +621,21 @@ } /* + * Populate the chosen node + */ +void setupChosenNode() +{ + Node *chosenNode; + chosenNode = DT__FindNode("/chosen", false); + if (chosenNode == 0) + stop("Couldn't get chosen node"); + + int bootUUIDLength = strlen(gBootUUIDString); + if (bootUUIDLength) + DT__AddProperty(chosenNode, "boot-uuid", bootUUIDLength + 1, gBootUUIDString); +} + +/* * Load the smbios.plist override config file if any */ static void setupSmbiosConfigFile(const char *filename) @@ -702,6 +699,9 @@ gST64->Hdr.CRC32 = 0; gST64->Hdr.CRC32 = crc32(0L, gST64, gST64->Hdr.HeaderSize); } + + // Setup the chosen node + setupChosenNode(); } void saveOriginalSMBIOS(void) Index: branches/Chimera/i386/boot2/prompt.c =================================================================== --- branches/Chimera/i386/boot2/prompt.c (revision 1690) +++ branches/Chimera/i386/boot2/prompt.c (revision 1691) @@ -28,7 +28,7 @@ #include -char bootBanner[] = "\nDarwin/x86 boot v" I386BOOT_VERSION " - Chimera v1.5.4 r1394" "\n" +char bootBanner[] = "\nDarwin/x86 boot v" I386BOOT_VERSION " - Chimera v" I386BOOT_CHAMELEONVERSION " r" I386BOOT_CHAMELEONREVISION "\n" "Build date: " I386BOOT_BUILDDATE "\n" "%dMB memory\n"; Index: branches/Chimera/i386/boot2/boot.c =================================================================== --- branches/Chimera/i386/boot2/boot.c (revision 1690) +++ branches/Chimera/i386/boot2/boot.c (revision 1691) @@ -72,7 +72,7 @@ static char gCacheNameAdler[64 + 256]; char *gPlatformName = gCacheNameAdler; -char gRootDevice[512]; +char gRootDevice[ROOT_DEVICE_SIZE]; char gMKextName[512]; char gMacOSVersion[8]; static char gBootKernelCacheFile[512]; Index: branches/Chimera/i386/boot2/boot.h =================================================================== --- branches/Chimera/i386/boot2/boot.h (revision 1690) +++ branches/Chimera/i386/boot2/boot.h (revision 1691) @@ -101,7 +101,6 @@ #define kSMBIOSdefaults "SMBIOSdefaults" /* smbios_patcher.c */ #define kSystemID "SystemId" /* fake_efi.c */ #define kSystemType "SystemType" /* fake_efi.c */ -#define kSkipFTFix "SkipFTFix" /* fake_efi.c */ //For Work around to bypass olegpronin's Facetime fix #define kUseMemDetect "UseMemDetect" /* platform.c */ @@ -148,6 +147,7 @@ * A global set by boot() to record the device that the booter * was loaded from. */ +#define ROOT_DEVICE_SIZE 512 extern int gBIOSDev; extern long gBootMode; extern bool sysConfigValid; @@ -225,9 +225,11 @@ /* * options.c */ -extern int getBootOptions(bool firstRun); -extern int processBootOptions(); -extern int selectAlternateBootDevice(int bootdevice); +extern char gBootUUIDString[]; + +extern int getBootOptions(bool firstRun); +extern int processBootOptions(); +extern int selectAlternateBootDevice(int bootdevice); extern bool promptForRescanOption(void); void showHelp(); Index: branches/Chimera/i386/boot2/options.c =================================================================== --- branches/Chimera/i386/boot2/options.c (revision 1690) +++ branches/Chimera/i386/boot2/options.c (revision 1691) @@ -1062,6 +1062,7 @@ //========================================================================== +char gBootUUIDString[32+4+1] = ""; // UUID of the boot volume e.g. 5EB1869F-C4FA-3502-BDEB-3B8ED5D87292 extern unsigned char chainbootdev; extern unsigned char chainbootflag; @@ -1070,6 +1071,9 @@ int argLen = argName ? strlen(argName) : 0; int len = argLen + cnt + 1; // +1 to account for space + if (argName) + len++; // +1 to account for '=' + if (len > *cntRemainingP) { error("Warning: boot arguments too long, truncating\n"); return false; @@ -1080,8 +1084,8 @@ *argP += argLen; *argP[0] = '='; (*argP)++; - len++; // +1 to account for '=' } + strncpy( *argP, val, cnt ); *argP += cnt; *argP[0] = ' '; @@ -1099,9 +1103,10 @@ const char *userString, // Typed-in boot arguments const char *kernelFlags, // Kernel flags from config table const char *configTable, - char **argP, // Output value - int *cntRemainingP, // Output count - char *foundVal // found value + char **argP, // Output value + int *cntRemainingP, // Output count + char *foundVal, // found value + int foundValSize // max found value size ) { const char *val; @@ -1118,10 +1123,9 @@ copyArgument(argName, val, cnt, argP, cntRemainingP); found = true; } - if (found && foundVal) { - strlcpy(foundVal, val, cnt+1); - } - return found; + if (found && foundVal) + strlcpy(foundVal, val, foundValSize); + return found; } // Maximum config table value size @@ -1130,17 +1134,15 @@ int processBootOptions() { - const char * cp = gBootArgs; - const char * val = 0; - const char * kernel; - int cnt; - int userCnt; - int cntRemaining; - char * argP; - char uuidStr[64]; - bool uuidSet = false; - char * configKernelFlags; - char * valueBuffer; + const char *cp = gBootArgs; + const char *val = 0; + const char *kernel; + int cnt; + int userCnt; + int cntRemaining; + char *argP; + char *configKernelFlags; + char *valueBuffer; valueBuffer = malloc(VALUE_SIZE); @@ -1196,16 +1198,12 @@ gOverrideKernel = false; if (( kernel = extractKernelName((char **)&cp) )) { - strcpy( bootInfo->bootFile, kernel ); - gOverrideKernel = true; + strlcpy( bootInfo->bootFile, kernel, sizeof(bootInfo->bootFile) ); } else { if ( getValueForKey( kKernelNameKey, &val, &cnt, &bootInfo->bootConfig ) ) { strlcpy( bootInfo->bootFile, val, cnt+1 ); - if (strcmp( bootInfo->bootFile, kDefaultKernel ) != 0) { - gOverrideKernel = true; - } } else { - strcpy( bootInfo->bootFile, kDefaultKernel ); + strlcpy( bootInfo->bootFile, kDefaultKernel, sizeof(bootInfo->bootFile) ); } } @@ -1221,35 +1219,34 @@ configKernelFlags = malloc(cnt + 1); strlcpy(configKernelFlags, val, cnt + 1); - if (processBootArgument(kBootUUIDKey, cp, configKernelFlags, bootInfo->config, &argP, &cntRemaining, 0)) { - // boot-uuid was set either on the command-line - // or in the config file. - uuidSet = true; - } else { - + // boot-uuid can be set either on the command-line or in the config file + if (!processBootArgument(kBootUUIDKey, cp, configKernelFlags, bootInfo->config, + &argP, &cntRemaining, gBootUUIDString, sizeof(gBootUUIDString))) { // // Try an alternate method for getting the root UUID on boot helper partitions. // if (gBootVolume->flags & kBVFlagBooter) { - if((loadHelperConfig(&bootInfo->helperConfig) == 0) - && getValueForKey(kHelperRootUUIDKey, &val, &cnt, &bootInfo->helperConfig) ) + // Load the configuration store in the boot helper partition + if (loadHelperConfig(&bootInfo->helperConfig) == 0) { - getValueForKey(kHelperRootUUIDKey, &val, &cnt, &bootInfo->helperConfig); - copyArgument(kBootUUIDKey, val, cnt, &argP, &cntRemaining); - uuidSet = true; + val = getStringForKey(kHelperRootUUIDKey, &bootInfo->helperConfig); + if (val != NULL) + strlcpy(gBootUUIDString, val, sizeof(gBootUUIDString)); } } - if (!uuidSet && gBootVolume->fs_getuuid && gBootVolume->fs_getuuid (gBootVolume, uuidStr) == 0) { - verbose("Setting boot-uuid to: %s\n", uuidStr); - copyArgument(kBootUUIDKey, uuidStr, strlen(uuidStr), &argP, &cntRemaining); - uuidSet = true; - } - + // Try to get the volume uuid string + if (!strlen(gBootUUIDString) && gBootVolume->fs_getuuid) + gBootVolume->fs_getuuid(gBootVolume, gBootUUIDString); + + // If we have the volume uuid add it to the commandline arguments + if (strlen(gBootUUIDString)) + copyArgument(kBootUUIDKey, gBootUUIDString, strlen(gBootUUIDString), &argP, &cntRemaining); } - if (!processBootArgument(kRootDeviceKey, cp, configKernelFlags, bootInfo->config, &argP, &cntRemaining, gRootDevice)) { + if (!processBootArgument(kRootDeviceKey, cp, configKernelFlags, bootInfo->config, + &argP, &cntRemaining, gRootDevice, ROOT_DEVICE_SIZE)) { cnt = 0; if ( getValueForKey( kBootDeviceKey, &val, &cnt, &bootInfo->chameleonConfig)) { valueBuffer[0] = '*'; @@ -1257,7 +1254,7 @@ strlcpy(valueBuffer + 1, val, cnt); val = valueBuffer; } else { - if (uuidSet) { + if (strlen(gBootUUIDString)) { val = "*uuid"; cnt = 5; } else { @@ -1276,10 +1273,11 @@ /* * Removed. We don't need this anymore. * - if (!processBootArgument(kPlatformKey, cp, configKernelFlags, bootInfo->config, &argP, &cntRemaining, gPlatformName)) { - getPlatformName(gPlatformName); - copyArgument(kPlatformKey, gPlatformName, strlen(gPlatformName), &argP, &cntRemaining); - } + if (!processBootArgument(kPlatformKey, cp, configKernelFlags, bootInfo->config, + &argP, &cntRemaining, gPlatformName, sizeof(gCacheNameAdler))) { + getPlatformName(gPlatformName); + copyArgument(kPlatformKey, gPlatformName, strlen(gPlatformName), &argP, &cntRemaining); + } */ if (!getValueForBootKey(cp, kSafeModeFlag, &val, &cnt) && @@ -1323,9 +1321,9 @@ } if ( getValueForKey( kMKextCacheKey, &val, &cnt, &bootInfo->bootConfig ) ) - { strlcpy(gMKextName, val, cnt + 1); - } + else + gMKextName[0]=0; free(configKernelFlags); free(valueBuffer); @@ -1337,18 +1335,24 @@ //========================================================================== // Load the help file and display the file contents on the screen. -static void showTextBuffer(char *buf, int size) +static void showTextBuffer(char *buf_orig, int size) { char *bp; - int line; - int line_offset; - int c; + char * buf; + int line; + int line_offset; + int c; if (bootArgs->Video.v_display != VGA_TEXT_MODE) { - showInfoBox( "Press q to quit\n",buf ); + showInfoBox( "Press q to continue, space for next page.\n",buf_orig ); return; } + // Create a copy so that we don't mangle the original + buf = malloc(size + 1); + memcpy(buf, buf_orig, size); + + bp = buf; while (size-- > 0) { if (*bp == '\n') { Index: branches/Chimera/package/Scripts/Standard/postinstall =================================================================== --- branches/Chimera/package/Scripts/Standard/postinstall (revision 1690) +++ branches/Chimera/package/Scripts/Standard/postinstall (revision 1691) @@ -50,6 +50,7 @@ echo "bootdisk: Disk device is ${bootdisk}" echo "bootrdisk: Disk raw device is ${bootrdisk}" echo "diskloader: Disk loader is ${diskloader}" +echo "diskloaderdualboot: Disk loader is ${diskloaderdualboot}" echo "partitionloaderhfs: Partition loader is ${partitionloaderhfs}" echo "partitionloaderfat: Partition loader is ${partitionloaderfat}" echo "filesystemloader: Filesystem loader is ${filesystemloader}" @@ -291,14 +292,14 @@ #--------------------------------------------------------------------- if [ ${disksignature} == "00000000" ]; then - echo "Executing command: fdisk440 -u -f /usr/standalone/i386/${diskloader} -y ${bootdisk}" - fdisk440 -u -f "${bootvolume}/usr/standalone/i386/${diskloader}" -y ${bootdisk} + echo "Executing command: ${bootvolume}/usr/sbin/fdisk440 -u -f ${bootvolume}/usr/standalone/i386/${diskloader} -y ${bootdisk}" + "${bootvolume}/usr/sbin/fdisk440" -u -f "${bootvolume}/usr/standalone/i386/${diskloader}" -y ${bootdisk} else #--------------------------------------------------------------------- - # If it exists then Windows is also installed on the HDD and we need to write boot0hfs + # If it exists then Windows is also installed on the HDD and we need to write $diskloaderdualboot #--------------------------------------------------------------------- - echo "Executing command: fdisk440 -u -f /usr/standalone/i386/${diskloaderdualboot} -y ${bootdisk}" - fdisk440 -u -f "${bootvolume}/usr/standalone/i386/${diskloaderdualboot}" -y ${bootdisk} + echo "Executing command: ${bootvolume}/usr/sbin/fdisk440 -u -f {bootvolume}/usr/standalone/i386/${diskloaderdualboot} -y ${bootdisk}" + "${bootvolume}/usr/sbin/fdisk440" -u -f "${bootvolume}/usr/standalone/i386/${diskloaderdualboot}" -y ${bootdisk} fi else echo "Diskupdate is false, so no stage 0 file was written" @@ -317,8 +318,8 @@ echo "Executing command: cp /usr/standalone/i386/${filesystemloader} ${bootvolume}" cp "${bootvolume}/usr/standalone/i386/${filesystemloader}" "${bootvolume}" -echo "Executing command: ${bootresources}/Tools/SetFile -a V ${bootvolume}/${filesystemloader}" -"${bootresources}/Tools/SetFile" -a V "${bootvolume}/${filesystemloader}" +echo "Executing command: "${bootvolume}/usr/bin/chflags" hidden ${bootvolume}/${filesystemloader}" +"${bootvolume}/usr/bin/chflags" hidden "${bootvolume}/${filesystemloader}" echo "-----------------------------------------------" echo "" @@ -332,7 +333,7 @@ if [ ${disksignature} == "00000000" ]; then # echo "Windows is not installed so let's change the active partition" - partitionactive=$( fdisk440 -d ${bootrdisk} | grep -n "*" | awk -F: '{print $1}') + partitionactive=$( "${bootvolume}/usr/sbin/fdisk440" -d ${bootrdisk} | grep -n "*" | awk -F: '{print $1}') echo "Current Active Partition: ${partitionactive}" if [ "${partitionactive}" = "${bootslice}" ]; then @@ -342,7 +343,7 @@ # BadAxe requires EFI partition to be flagged active. # but it doesn't' hurt to do it for any non-windows partition. - fdisk440 -e ${bootrdisk} <<-MAKEACTIVE + "${bootvolume}/usr/sbin/fdisk440" -e ${bootrdisk} <<-MAKEACTIVE print flag ${bootslice} write @@ -357,8 +358,4 @@ echo "" echo "" -# hide boot file -chflags hidden "${3}/boot" -echo "boot file hidden ${3}/boot" - exit