Index: trunk/artwork/themes/default/device_befs.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: trunk/artwork/themes/default/device_befs.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: trunk/artwork/themes/default/device_freebsd_o.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: trunk/artwork/themes/default/device_freebsd_o.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: trunk/artwork/themes/default/device_openbsd.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: trunk/artwork/themes/default/device_openbsd.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: trunk/artwork/themes/default/device_freebsd.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: trunk/artwork/themes/default/device_freebsd.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: trunk/artwork/themes/default/device_befs_o.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: trunk/artwork/themes/default/device_befs_o.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: trunk/artwork/themes/default/device_openbsd_o.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: trunk/artwork/themes/default/device_openbsd_o.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: trunk/i386/libsaio/acpi_patcher.c
===================================================================
--- trunk/i386/libsaio/acpi_patcher.c (revision 1345)
+++ trunk/i386/libsaio/acpi_patcher.c (revision 1346)
@@ -86,7 +86,7 @@
}
return NULL;
}
-/** The folowing ACPI Table search algo. should be reused anywhere needed:*/
+/* The folowing ACPI Table search algo. should be reused anywhere needed:*/
int search_and_get_acpi_fd(const char * filename, const char ** outDirspec)
{
int fd = 0;
@@ -185,7 +185,7 @@
acpi_cpu_name[acpi_cpu_count] = malloc(4);
memcpy(acpi_cpu_name[acpi_cpu_count], dsdt+offset, 4);
i = offset + 5;
-
+
if (acpi_cpu_count == 0)
acpi_cpu_p_blk = dsdt[i] | (dsdt[i+1] << 8);
@@ -214,7 +214,7 @@
0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0x79, 0x00
};
-
+
char resource_template_register_systemio[] =
{
0x11, 0x14, 0x0A, 0x11, 0x82, 0x0C, 0x00, 0x01,
@@ -247,12 +247,12 @@
bool c2_enabled = false;
bool c3_enabled = false;
bool c4_enabled = false;
- bool cst_using_sustemio = false;
+ bool cst_using_sustemio = false;
getBoolForKey(kEnableC2State, &c2_enabled, &bootInfo->chameleonConfig);
getBoolForKey(kEnableC3State, &c3_enabled, &bootInfo->chameleonConfig);
getBoolForKey(kEnableC4State, &c4_enabled, &bootInfo->chameleonConfig);
- getBoolForKey(kCSTUsingSystemIO, &cst_using_sustemio, &bootInfo->chameleonConfig);
+ getBoolForKey(kCSTUsingSystemIO, &cst_using_sustemio, &bootInfo->chameleonConfig);
c2_enabled = c2_enabled | (fadt->C2_Latency < 100);
c3_enabled = c3_enabled | (fadt->C3_Latency < 1000);
@@ -565,8 +565,8 @@
case CPU_MODEL_NEHALEM_EX: // Intel Xeon X75xx, Xeon X65xx, Xeon E75xx, Xeon E65xx
case CPU_MODEL_WESTMERE: // Intel Core i7, Xeon X56xx, Xeon E56xx, Xeon W36xx LGA1366 (32nm) 6 Core
case CPU_MODEL_WESTMERE_EX: // Intel Xeon E7
- case CPU_MODEL_SANDY: // Intel Core i3, i5, i7 LGA1155 (32nm)
- case CPU_MODEL_SANDY_XEON: // Intel Xeon E3
+ case CPU_MODEL_SANDY: // Intel Core i3, i5, i7 LGA1155 (32nm)
+ case CPU_MODEL_SANDY_XEON: // Intel Xeon E3
{
maximum.Control = rdmsr64(MSR_IA32_PERF_STATUS) & 0xff; // Seems it always contains maximum multiplier value (with turbo, that's we need)...
minimum.Control = (rdmsr64(MSR_PLATFORM_INFO) >> 40) & 0xff;
Index: trunk/i386/libsaio/aml_generator.c
===================================================================
--- trunk/i386/libsaio/aml_generator.c (revision 1345)
+++ trunk/i386/libsaio/aml_generator.c (revision 1346)
@@ -21,12 +21,12 @@
case AML_CHUNK_DWORD:
case AML_CHUNK_QWORD:
case AML_CHUNK_ALIAS:
- verbose("aml_add_to_parent: node doesn't support child nodes!\n");
+ verbose("aml_add_to_parent: Node doesn't support child nodes!\n");
return false;
case AML_CHUNK_NAME:
if (parent->First)
{
- verbose("aml_add_to_parent: name node supports only one child node!\n");
+ verbose("aml_add_to_parent: Name node supports only one child node!\n");
return false;
}
break;
@@ -495,4 +495,4 @@
}
return offset;
-}
\ No newline at end of file
+}
Index: trunk/i386/libsaio/fdisk.h
===================================================================
--- trunk/i386/libsaio/fdisk.h (revision 1345)
+++ trunk/i386/libsaio/fdisk.h (revision 1346)
@@ -35,25 +35,25 @@
#ifndef __LIBSAIO_FDISK_H
#define __LIBSAIO_FDISK_H
-#define DISK_BLK0 0 /* blkno of boot block */
-#define DISK_BLK0SZ 512 /* size of boot block */
-#define DISK_BOOTSZ 446 /* size of boot code in boot block */
-#define DISK_SIGNATURE 0xAA55 /* signature of the boot record */
-#define FDISK_NPART 4 /* number of entries in fdisk table */
-#define FDISK_ACTIVE 0x80 /* indicator of active partition */
-#define FDISK_NEXTNAME 0xA7 /* indicator of NeXT partition */
-#define FDISK_DOS12 0x01 /* 12-bit fat < 10MB dos partition */
-#define FDISK_DOS16S 0x04 /* 16-bit fat < 32MB dos partition */
-#define FDISK_DOSEXT 0x05 /* extended dos partition */
-#define FDISK_DOS16B 0x06 /* 16-bit fat >= 32MB dos partition */
-#define FDISK_NTFS 0x07 /* NTFS partition */
-#define FDISK_SMALLFAT32 0x0b /* FAT32 partition */
-#define FDISK_FAT32 0x0c /* FAT32 partition */
-#define FDISK_DOS16SLBA 0x0e
-#define FDISK_LINUX 0x83
-#define FDISK_UFS 0xa8 /* Apple UFS partition */
-#define FDISK_HFS 0xaf /* Apple HFS partition */
-#define FDISK_BOOTER 0xab /* Apple booter partition */
+#define DISK_BLK0 0 /* blkno of boot block */
+#define DISK_BLK0SZ 512 /* size of boot block */
+#define DISK_BOOTSZ 446 /* size of boot code in boot block */
+#define DISK_SIGNATURE 0xAA55 /* signature of the boot record */
+#define FDISK_NPART 4 /* number of entries in fdisk table */
+#define FDISK_ACTIVE 0x80 /* indicator of active partition */
+#define FDISK_NEXTNAME 0xA7 /* indicator of NeXT partition */
+#define FDISK_DOS12 0x01 /* 12-bit fat < 10MB dos partition */
+#define FDISK_DOS16S 0x04 /* 16-bit fat < 32MB dos partition */
+#define FDISK_DOSEXT 0x05 /* extended dos partition */
+#define FDISK_DOS16B 0x06 /* 16-bit fat >= 32MB dos partition */
+#define FDISK_NTFS 0x07 /* NTFS partition */
+#define FDISK_SMALLFAT32 0x0b /* FAT32 partition */
+#define FDISK_FAT32 0x0c /* FAT32 partition */
+#define FDISK_DOS16SLBA 0x0e
+#define FDISK_LINUX 0x83
+#define FDISK_UFS 0xa8 /* Apple UFS partition */
+#define FDISK_HFS 0xaf /* Apple HFS partition */
+#define FDISK_BOOTER 0xab /* Apple booter partition */
/*
* Format of fdisk partion entry (if present).
Index: trunk/i386/libsaio/nvidia.c
===================================================================
--- trunk/i386/libsaio/nvidia.c (revision 1345)
+++ trunk/i386/libsaio/nvidia.c (revision 1346)
@@ -67,7 +67,7 @@
#define NVIDIA_ROM_SIZE 0x10000
#define PATCH_ROM_SUCCESS 1
-#define PATCH_ROM_SUCCESS_HAS_LVDS 2
+#define PATCH_ROM_SUCCESS_HAS_LVDS 2
#define PATCH_ROM_FAILED 0
#define MAX_NUM_DCB_ENTRIES 16
#define TYPE_GROUPED 0xff
@@ -76,12 +76,12 @@
const char *nvidia_compatible_0[] = { "@0,compatible", "NVDA,NVMac" };
const char *nvidia_compatible_1[] = { "@1,compatible", "NVDA,NVMac" };
-const char *nvidia_device_type_0[] = { "@0,device_type", "display" };
-const char *nvidia_device_type_1[] = { "@1,device_type", "display" };
+const char *nvidia_device_type_0[] = { "@0,device_type", "display" };
+const char *nvidia_device_type_1[] = { "@1,device_type", "display" };
const char *nvidia_device_type[] = { "device_type", "NVDA,Parent" };
-const char *nvidia_name_0[] = { "@0,name", "NVDA,Display-A" };
-const char *nvidia_name_1[] = { "@1,name", "NVDA,Display-B" };
-const char *nvidia_slot_name[] = { "AAPL,slot-name", "Slot-1" };
+const char *nvidia_name_0[] = { "@0,name", "NVDA,Display-A" };
+const char *nvidia_name_1[] = { "@1,name", "NVDA,Display-B" };
+const char *nvidia_slot_name[] = { "AAPL,slot-name", "Slot-1" };
static uint8_t default_NVCAP[]= {
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00,
Index: trunk/i386/libsaio/ati.c
===================================================================
--- trunk/i386/libsaio/ati.c (revision 1345)
+++ trunk/i386/libsaio/ati.c (revision 1346)
@@ -206,7 +206,7 @@
} radeon_card_info_t;
static radeon_card_info_t radeon_cards[] = {
-
+
// Earlier cards are not supported
//
// Layout is device_id, subsys_id (subsystem id plus vendor id), chip_family_name, display name, frame buffer
@@ -214,247 +214,247 @@
//
{ 0x9400, 0x25521002, CHIP_FAMILY_R600, "ATI Radeon HD 2900 XT", kNull },
{ 0x9400, 0x30001002, CHIP_FAMILY_R600, "ATI Radeon HD 2900 PRO", kNull },
-
+
{ 0x9440, 0x24401682, CHIP_FAMILY_RV770, "ATI Radeon HD 4870", kMotmot },
{ 0x9440, 0x24411682, CHIP_FAMILY_RV770, "ATI Radeon HD 4870", kMotmot },
{ 0x9440, 0x24441682, CHIP_FAMILY_RV770, "ATI Radeon HD 4870", kMotmot },
{ 0x9440, 0x24451682, CHIP_FAMILY_RV770, "ATI Radeon HD 4870", kMotmot },
-
+
{ 0x9441, 0x24401682, CHIP_FAMILY_RV770, "ATI Radeon HD 4870 X2", kMotmot },
-
+
{ 0x9442, 0x080110B0, CHIP_FAMILY_RV770, "ATI Radeon HD 4850", kMotmot },
-
+
{ 0x9442, 0x24701682, CHIP_FAMILY_RV770, "ATI Radeon HD 4850", kMotmot },
{ 0x9442, 0x24711682, CHIP_FAMILY_RV770, "ATI Radeon HD 4850", kMotmot },
-
+
{ 0x9442, 0xE104174B, CHIP_FAMILY_RV770, "ATI Radeon HD 4850", kMotmot },
-
- { 0x944A, 0x30001043, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot },
-
- { 0x944A, 0x30001458, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot },
-
- { 0x944A, 0x30001462, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot },
-
- { 0x944A, 0x30001545, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot },
-
- { 0x944A, 0x30001682, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot },
-
- { 0x944A, 0x3000174B, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot },
-
- { 0x944A, 0x30001787, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot },
-
- { 0x944A, 0x300017AF, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot },
-
+
+ { 0x944A, 0x30001043, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot },
+
+ { 0x944A, 0x30001458, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot },
+
+ { 0x944A, 0x30001462, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot },
+
+ { 0x944A, 0x30001545, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot },
+
+ { 0x944A, 0x30001682, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot },
+
+ { 0x944A, 0x3000174B, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot },
+
+ { 0x944A, 0x30001787, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot },
+
+ { 0x944A, 0x300017AF, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot },
+
{ 0x944C, 0x24801682, CHIP_FAMILY_RV770, "ATI Radeon HD 4830", kMotmot },
{ 0x944C, 0x24811682, CHIP_FAMILY_RV770, "ATI Radeon HD 4830", kMotmot },
-
- { 0x944E, 0x3260174B, CHIP_FAMILY_RV770, "ATI Radeon HD 4810 Series", kMotmot },
- { 0x944E, 0x3261174B, CHIP_FAMILY_RV770, "ATI Radeon HD 4810 series", kMotmot },
-
- { 0x944E, 0x30001787, CHIP_FAMILY_RV770, "ATI Radeon HD 4730 Series", kMotmot },
- { 0x944E, 0x30101787, CHIP_FAMILY_RV770, "ATI Radeon HD 4810 Series", kMotmot },
+
+ { 0x944E, 0x3260174B, CHIP_FAMILY_RV770, "ATI Radeon HD 4810 Series", kMotmot },
+ { 0x944E, 0x3261174B, CHIP_FAMILY_RV770, "ATI Radeon HD 4810 series", kMotmot },
+
+ { 0x944E, 0x30001787, CHIP_FAMILY_RV770, "ATI Radeon HD 4730 Series", kMotmot },
+ { 0x944E, 0x30101787, CHIP_FAMILY_RV770, "ATI Radeon HD 4810 Series", kMotmot },
{ 0x944E, 0x31001787, CHIP_FAMILY_RV770, "ATI Radeon HD 4820", kMotmot },
-
+
{ 0x9480, 0x3628103C, CHIP_FAMILY_RV730, "ATI Radeon HD 4650M", kGliff },
-
+
{ 0x9480, 0x9035104D, CHIP_FAMILY_RV730, "ATI Radeon HD 4650M", kGliff },
-
+
{ 0x9490, 0x4710174B, CHIP_FAMILY_RV730, "ATI Radeon HD 4710", kNull },
-
+
{ 0x9490, 0x20031787, CHIP_FAMILY_RV730, "ATI Radeon HD 4670", kFlicker },
{ 0x9490, 0x30501787, CHIP_FAMILY_RV730, "ATI Radeon HD 4710", kNull },
-
+
{ 0x9490, 0x300017AF, CHIP_FAMILY_RV730, "ATI Radeon HD 4710", kNull },
-
- { 0x9498, 0x21CF1458, CHIP_FAMILY_RV730, "ATI Radeon HD 4600 Series", kNull },
-
+
+ { 0x9498, 0x21CF1458, CHIP_FAMILY_RV730, "ATI Radeon HD 4600 Series", kNull },
+
{ 0x9498, 0x24511682, CHIP_FAMILY_RV730, "ATI Radeon HD 4650", kNull },
{ 0x9498, 0x24521682, CHIP_FAMILY_RV730, "ATI Radeon HD 4650", kNull },
{ 0x9498, 0x24541682, CHIP_FAMILY_RV730, "ATI Radeon HD 4650", kNull },
{ 0x9498, 0x29331682, CHIP_FAMILY_RV730, "ATI Radeon HD 4670", kNull },
{ 0x9498, 0x29341682, CHIP_FAMILY_RV730, "ATI Radeon HD 4670", kNull },
-
+
{ 0x9498, 0x30501787, CHIP_FAMILY_RV730, "ATI Radeon HD 4700", kNull },
{ 0x9498, 0x31001787, CHIP_FAMILY_RV730, "ATI Radeon HD 4720", kNull },
-
+
{ 0x94B3, 0x0D001002, CHIP_FAMILY_RV740, "ATI Radeon HD 4770", kFlicker },
-
+
{ 0x94B3, 0x29001682, CHIP_FAMILY_RV740, "ATI Radeon HD 4770", kFlicker },
-
+
{ 0x94B3, 0x1170174B, CHIP_FAMILY_RV740, "ATI Radeon HD 4770", kFlicker },
-
+
{ 0x94C1, 0x0D021002, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 XT", kNull },
{ 0x94C1, 0x10021002, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 Pro", kNull },
-
+
{ 0x94C1, 0x0D021028, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 XT", kNull },
-
+
{ 0x94C1, 0x21741458, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 XT", kNull },
-
+
{ 0x94C1, 0x10331462, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 XT", kNull },
{ 0x94C1, 0x10401462, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 XT", kNull },
{ 0x94C1, 0x11101462, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 XT", kNull },
-
+
{ 0x94C3, 0x03421002, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 PRO", kNull },
-
- { 0x94C3, 0x30001025, CHIP_FAMILY_RV610, "ATI Radeon HD 2350 Series", kNull },
-
+
+ { 0x94C3, 0x30001025, CHIP_FAMILY_RV610, "ATI Radeon HD 2350 Series", kNull },
+
{ 0x94C3, 0x03021028, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 PRO", kNull },
{ 0x94C3, 0x04021028, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 PRO", kNull },
-
+
{ 0x94C3, 0x216A1458, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 PRO", kNull },
{ 0x94C3, 0x21721458, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 PRO", kNull },
{ 0x94C3, 0x30001458, CHIP_FAMILY_RV610, "ATI Radeon HD 3410", kNull },
-
+
{ 0x94C3, 0x10321462, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 PRO", kNull },
{ 0x94C3, 0x10411462, CHIP_FAMILY_RV610, "ATI Radeon HD 2400", kNull },
{ 0x94C3, 0x11041462, CHIP_FAMILY_RV610, "ATI Radeon HD 2400", kNull },
{ 0x94C3, 0x11051462, CHIP_FAMILY_RV610, "ATI Radeon HD 2400", kNull },
{ 0x94C3, 0x30001462, CHIP_FAMILY_RV610, "ATI Radeon HD 3410", kNull },
-
+
{ 0x94C3, 0x2247148C, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 LE", kNull },
- { 0x94C3, 0x3000148C, CHIP_FAMILY_RV610, "ATI Radeon HD 2350 Series", kNull },
-
+ { 0x94C3, 0x3000148C, CHIP_FAMILY_RV610, "ATI Radeon HD 2350 Series", kNull },
+
{ 0x94C3, 0x30001642, CHIP_FAMILY_RV610, "ATI Radeon HD 3410", kNull },
{ 0x94C3, 0x37161642, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 PRO", kNull },
-
- { 0x94C3, 0x3000174B, CHIP_FAMILY_RV610, "ATI Radeon HD 2350 Series", kNull },
+
+ { 0x94C3, 0x3000174B, CHIP_FAMILY_RV610, "ATI Radeon HD 2350 Series", kNull },
{ 0x94C3, 0xE370174B, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 PRO", kNull },
{ 0x94C3, 0xE400174B, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 PRO", kNull },
-
+
{ 0x94C3, 0x203817AF, CHIP_FAMILY_RV610, "ATI Radeon HD 2400", kNull },
-
+
{ 0x94C3, 0x22471787, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 LE", kNull },
- { 0x94C3, 0x30001787, CHIP_FAMILY_RV610, "ATI Radeon HD 2350 Series", kNull },
-
- { 0x94C3, 0x01011A93, CHIP_FAMILY_RV610, "Qimonda Radeon HD 2400 PRO", kNull },
-
+ { 0x94C3, 0x30001787, CHIP_FAMILY_RV610, "ATI Radeon HD 2350 Series", kNull },
+
+ { 0x94C3, 0x01011A93, CHIP_FAMILY_RV610, "Qimonda Radeon HD 2400 PRO", kNull },
+
{ 0x9501, 0x25421002, CHIP_FAMILY_RV670, "ATI Radeon HD 3870", kNull },
{ 0x9501, 0x30001002, CHIP_FAMILY_RV670, "ATI Radeon HD 3690", kNull },
-
+
{ 0x9501, 0x3000174B, CHIP_FAMILY_RV670, "Sapphire Radeon HD 3690", kNull },
{ 0x9501, 0x4750174B, CHIP_FAMILY_RV670, "ATI Radeon HD 4750", kNull },
-
+
{ 0x9501, 0x30001787, CHIP_FAMILY_RV670, "ATI Radeon HD 3690", kNull },
-
+
{ 0x9505, 0x25421002, CHIP_FAMILY_RV670, "ATI Radeon HD 3850", kNull },
{ 0x9505, 0x30001002, CHIP_FAMILY_RV670, "ATI Radeon HD 3690", kNull },
-
+
{ 0x9505, 0x30011043, CHIP_FAMILY_RV670, "ATI Radeon HD 4730", kNull },
-
+
{ 0x9505, 0x3000148C, CHIP_FAMILY_RV670, "ATI Radeon HD 3850", kNull },
{ 0x9505, 0x3001148C, CHIP_FAMILY_RV670, "ATI Radeon HD 4730", kNull },
{ 0x9505, 0x3002148C, CHIP_FAMILY_RV670, "ATI Radeon HD 4730", kNull },
{ 0x9505, 0x3003148C, CHIP_FAMILY_RV670, "ATI Radeon HD 4750", kNull },
{ 0x9505, 0x3004148C, CHIP_FAMILY_RV670, "ATI Radeon HD 4750", kNull },
-
+
{ 0x9505, 0x3000174B, CHIP_FAMILY_RV670, "Sapphire Radeon HD 3690", kNull },
{ 0x9505, 0x3001174B, CHIP_FAMILY_RV670, "ATI Radeon HD 4750", kNull },
{ 0x9505, 0x3010174B, CHIP_FAMILY_RV670, "ATI Radeon HD 4750", kNull },
{ 0x9505, 0x4730174B, CHIP_FAMILY_RV670, "ATI Radeon HD 4730", kNull },
-
+
{ 0x9505, 0x30001787, CHIP_FAMILY_RV670, "ATI Radeon HD 3690", kNull },
{ 0x9505, 0x301017AF, CHIP_FAMILY_RV670, "ATI Radeon HD 4750", kNull },
{ 0x9540, 0x4590174B, CHIP_FAMILY_RV710, "ATI Radeon HD 4590", kNull },
-
+
{ 0x9540, 0x30501787, CHIP_FAMILY_RV710, "ATI Radeon HD 4590", kNull },
-
+
{ 0x954F, 0x29201682, CHIP_FAMILY_RV710, "ATI Radeon HD 4550", kNull },
{ 0x954F, 0x29211682, CHIP_FAMILY_RV710, "ATI Radeon HD 4550", kNull },
{ 0x954F, 0x30901682, CHIP_FAMILY_RV710, "XFX Radeon HD 4570", kNull },
-
+
{ 0x954F, 0x30501787, CHIP_FAMILY_RV710, "ATI Radeon HD 4450", kNull },
{ 0x954F, 0x31001787, CHIP_FAMILY_RV710, "ATI Radeon HD 4520", kNull },
-
+
{ 0x954F, 0x3000174B, CHIP_FAMILY_RV710, "ATI Radeon HD 4520", kNull },
{ 0x954F, 0x4450174B, CHIP_FAMILY_RV710, "ATI Radeon HD 4450", kNull },
{ 0x954F, 0x4570174B, CHIP_FAMILY_RV710, "Sapphire Radeon HD 4570", kNull },
{ 0x954F, 0xE990174B, CHIP_FAMILY_RV710, "Sapphire Radeon HD 4350", kNull },
-
+
{ 0x954F, 0x301017AF, CHIP_FAMILY_RV710, "ATI Radeon HD 4450", kNull },
-
+
{ 0x9552, 0x04341028, CHIP_FAMILY_RV710, "ATI Mobility Radeon 4330", kShrike },
+
+ { 0x9552, 0x3000148C, CHIP_FAMILY_RV710, "ATI Radeon HD 4300/4500 Series", kNull },
+
+ { 0x9552, 0x3000174B, CHIP_FAMILY_RV710, "ATI Radeon HD 4300/4500 Series", kNull },
+
+ { 0x9552, 0x30001787, CHIP_FAMILY_RV710, "ATI Radeon HD 4300/4500 Series", kNull },
+
+ { 0x9552, 0x300017AF, CHIP_FAMILY_RV710, "ATI Radeon HD 4300/4500 Series", kNull },
+
+ { 0x9553, 0x18751043, CHIP_FAMILY_RV710, "ATI Mobility Radeon HD 4570", kShrike },
+ { 0x9553, 0x1B321043, CHIP_FAMILY_RV710, "ATI Mobility Radeon HD 4570", kShrike },
+
+ { 0x9581, 0x95811002, CHIP_FAMILY_RV630, "ATI Radeon HD 3600 Series", kNull },
+
+ { 0x9581, 0x3000148C, CHIP_FAMILY_RV630, "ATI Radeon HD 3600 Series", kNull },
+
+ { 0x9583, 0x3000148C, CHIP_FAMILY_RV630, "ATI Radeon HD 3600 Series", kNull },
+
+ { 0x9588, 0x01021A93, CHIP_FAMILY_RV630, "Qimonda Radeon HD 2600 XT", kNull },
- { 0x9552, 0x3000148C, CHIP_FAMILY_RV710, "ATI Radeon HD 4300/4500 Series", kNull },
-
- { 0x9552, 0x3000174B, CHIP_FAMILY_RV710, "ATI Radeon HD 4300/4500 Series", kNull },
-
- { 0x9552, 0x30001787, CHIP_FAMILY_RV710, "ATI Radeon HD 4300/4500 Series", kNull },
-
- { 0x9552, 0x300017AF, CHIP_FAMILY_RV710, "ATI Radeon HD 4300/4500 Series", kNull },
-
- { 0x9553, 0x18751043, CHIP_FAMILY_RV710, "ATI Mobility Radeon HD 4570", kShrike },
- { 0x9553, 0x1B321043, CHIP_FAMILY_RV710, "ATI Mobility Radeon HD 4570", kShrike },
-
- { 0x9581, 0x95811002, CHIP_FAMILY_RV630, "ATI Radeon HD 3600 Series", kNull },
-
- { 0x9581, 0x3000148C, CHIP_FAMILY_RV630, "ATI Radeon HD 3600 Series", kNull },
-
- { 0x9583, 0x3000148C, CHIP_FAMILY_RV630, "ATI Radeon HD 3600 Series", kNull },
-
- { 0x9588, 0x01021A93, CHIP_FAMILY_RV630, "Qimonda Radeon HD 2600 XT", kNull },
-
{ 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 },
-
- { 0x9589, 0x01001A93, CHIP_FAMILY_RV630, "Qimonda Radeon HD 2600 PRO", kNull },
-
- { 0x9591, 0x2303148C, CHIP_FAMILY_RV635, "ATI Radeon HD 3600 Series", kNull },
-
+
+ { 0x9589, 0x0E41174B, CHIP_FAMILY_RV630, "ATI Radeon HD 3600 Series", kNull },
+
+ { 0x9589, 0x30001787, CHIP_FAMILY_RV630, "ATI Radeon HD 3600 Series", kNull },
+
+ { 0x9589, 0x01001A93, CHIP_FAMILY_RV630, "Qimonda Radeon HD 2600 PRO", kNull },
+
+ { 0x9591, 0x2303148C, CHIP_FAMILY_RV635, "ATI Radeon HD 3600 Series", kNull },
+
{ 0x9598, 0xB3831002, CHIP_FAMILY_RV635, "ATI All-in-Wonder HD", kNull },
-
- { 0x9598, 0x30001043, CHIP_FAMILY_RV635, "HD3730", kNull },
+
+ { 0x9598, 0x30001043, CHIP_FAMILY_RV635, "HD3730", kNull },
{ 0x9598, 0x30011043, CHIP_FAMILY_RV635, "ATI Radeon HD 4570", kNull },
-
+
{ 0x9598, 0x3000148C, CHIP_FAMILY_RV635, "ATI Radeon HD 3730", kNull },
{ 0x9598, 0x3001148C, CHIP_FAMILY_RV635, "ATI Radeon HD 4580", kNull },
{ 0x9598, 0x3031148C, CHIP_FAMILY_RV635, "ATI Radeon HD 4570", kNull },
-
- { 0x9598, 0x30001545, CHIP_FAMILY_RV635, "VisionTek Radeon HD 2600 XT", kNull },
- { 0x9598, 0x30011545, CHIP_FAMILY_RV635, "VisionTek Radeon HD 2600 Pro", kNull },
-
+
+ { 0x9598, 0x30001545, CHIP_FAMILY_RV635, "VisionTek Radeon HD 2600 XT", kNull },
+ { 0x9598, 0x30011545, CHIP_FAMILY_RV635, "VisionTek Radeon HD 2600 Pro", kNull },
+
{ 0x9598, 0x3000174B, CHIP_FAMILY_RV635, "Sapphire Radeon HD 3730", kNull },
{ 0x9598, 0x3001174B, CHIP_FAMILY_RV635, "Sapphire Radeon HD 3750", kNull },
{ 0x9598, 0x4570174B, CHIP_FAMILY_RV635, "ATI Radeon HD 4570", kNull },
{ 0x9598, 0x4580174B, CHIP_FAMILY_RV635, "ATI Radeon HD 4580", kNull },
{ 0x9598, 0x4610174B, CHIP_FAMILY_RV635, "ATI Radeon HD 4610", kNull },
-
+
{ 0x9598, 0x300117AF, CHIP_FAMILY_RV635, "ATI Radeon HD 3750", kNull },
{ 0x9598, 0x301017AF, CHIP_FAMILY_RV635, "ATI Radeon HD 4570", kNull },
{ 0x9598, 0x301117AF, CHIP_FAMILY_RV635, "ATI Radeon HD 4580", kNull },
-
+
{ 0x9598, 0x30501787, CHIP_FAMILY_RV635, "ATI Radeon HD 4610", kNull },
-
+
{ 0x95C0, 0x3000148C, CHIP_FAMILY_RV620, "ATI Radeon HD 3550", kNull },
-
+
{ 0x95C0, 0xE3901745, CHIP_FAMILY_RV620, "ATI Radeon HD 3550", kNull },
-
+
{ 0x95C0, 0x3000174B, CHIP_FAMILY_RV620, "Sapphire Radeon HD 3550", kNull },
{ 0x95C0, 0x3002174B, CHIP_FAMILY_RV620, "ATI Radeon HD 3570", kNull },
{ 0x95C0, 0x3020174B, CHIP_FAMILY_RV620, "ATI Radeon HD 4250", kNull },
-
+
{ 0x95C5, 0x3000148C, CHIP_FAMILY_RV620, "ATI Radeon HD 3450", kNull },
{ 0x95C5, 0x3001148C, CHIP_FAMILY_RV620, "ATI Radeon HD 3550", kNull },
{ 0x95C5, 0x3002148C, CHIP_FAMILY_RV620, "ATI Radeon HD 4230", kNull },
{ 0x95C5, 0x3003148C, CHIP_FAMILY_RV620, "ATI Radeon HD 4250", kNull },
{ 0x95C5, 0x3032148C, CHIP_FAMILY_RV620, "ATI Radeon HD 4250", kNull },
{ 0x95C5, 0x3033148C, CHIP_FAMILY_RV620, "ATI Radeon HD 4230", kNull },
-
+
{ 0x95C5, 0x3010174B, CHIP_FAMILY_RV620, "ATI Radeon HD 4250", kNull },
{ 0x95C5, 0x4250174B, CHIP_FAMILY_RV620, "ATI Radeon HD 4250", kNull },
-
+
{ 0x95C5, 0x30501787, CHIP_FAMILY_RV620, "ATI Radeon HD 4250", kNull },
-
+
{ 0x95C5, 0x301017AF, CHIP_FAMILY_RV620, "ATI Radeon HD 4230", kNull },
-
+
{ 0x95C5, 0x01041A93, CHIP_FAMILY_RV620, "Qimonda Radeon HD 3450", kNull },
{ 0x95C5, 0x01051A93, CHIP_FAMILY_RV620, "Qimonda Radeon HD 3450", kNull },
-
+
/* Evergreen */
{ 0x6898, 0x0B001002, CHIP_FAMILY_CYPRESS, "ATI Radeon HD 5870", kZonalis },
@@ -465,42 +465,41 @@
{ 0x6898, 0xE140174B, CHIP_FAMILY_CYPRESS, "ATI Radeon HD 5870", kUakari },
{ 0x6898, 0x29611682, CHIP_FAMILY_CYPRESS, "ATI Radeon HD 5870", kUakari },
-
+
{ 0x6899, 0x21E41458, CHIP_FAMILY_CYPRESS, "ATI Radeon HD 5850", kUakari },
-
+
{ 0x6899, 0xE140174B, CHIP_FAMILY_CYPRESS, "ATI Radeon HD 5850", kUakari },
-
+
{ 0x6899, 0x200A1787, CHIP_FAMILY_CYPRESS, "ATI Radeon HD 5850", kUakari },
{ 0x6899, 0x22901787, CHIP_FAMILY_CYPRESS, "ATI Radeon HD 5850", kUakari },
-
- { 0x689C, 0x03521043, CHIP_FAMILY_HEMLOCK, "ASUS ARES", kUakari },
+
+ { 0x689C, 0x03521043, CHIP_FAMILY_HEMLOCK, "ASUS ARES", kUakari },
{ 0x689C, 0x039E1043, CHIP_FAMILY_HEMLOCK, "ASUS EAH5870 Series", kUakari },
-
+
{ 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 5800", kNomascus },
+
{ 0x68A8, 0x050E1025, CHIP_FAMILY_CYPRESS, "AMD Radeon HD 6850M", kUakari },
-
+
{ 0x68B8, 0x00CF106B, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5770", kHoolock },
-
+
{ 0x68B8, 0x29901682, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5770", kVervet },
{ 0x68B8, 0x29911682, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5770", kVervet },
-
+
{ 0x68B8, 0x1482174B, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5770", kVervet },
{ 0x68B8, 0xE147174B, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5770", kVervet },
-
+
{ 0x68B8, 0x21D71458, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5770", kVervet },
-
+
{ 0x68B8, 0x200B1787, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5770", kVervet },
{ 0x68B8, 0x22881787, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5770", kVervet },
-
+
{ 0x68C0, 0x1594103C, CHIP_FAMILY_REDWOOD, "AMD Radeon HD 6570M", kNull },
-
- { 0x68C1, 0x033E1025, CHIP_FAMILY_REDWOOD, "ATI Mobility Radeon HD 5650", kNull },
-
- { 0x68C8, 0x2306103C, CHIP_FAMILY_REDWOOD, "ATI FirePro V4800 (FireGL)", kNull },
-
+
+ { 0x68C1, 0x033E1025, CHIP_FAMILY_REDWOOD, "ATI Mobility Radeon HD 5650", kNull },
+
+ { 0x68C8, 0x2306103C, CHIP_FAMILY_REDWOOD, "ATI FirePro V4800 (FireGL)", kNull },
{ 0x68D8, 0x03561043, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5670", kBaboon },
{ 0x68D8, 0x21D91458, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5670", kBaboon },
@@ -508,26 +507,26 @@
{ 0x68D8, 0x5690174B, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5690", kNull },
{ 0x68D8, 0x5730174B, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5730", kNull },
{ 0x68D8, 0xE151174B, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5670", kBaboon },
-
+
{ 0x68D8, 0x30001787, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5730", kNull },
-
+
{ 0x68D8, 0x301017AF, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5730", kNull },
{ 0x68D8, 0x301117AF, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5690", kNull },
{ 0x68D9, 0x301017AF, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5630", kNull },
{ 0x68DA, 0x5630174B, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5630", kNull },
-
+
{ 0x68DA, 0x30001787, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5630", kNull },
-
+
{ 0x68DA, 0x301017AF, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5630", kNull },
-
+
{ 0x68E0, 0x04561028, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5470M", kEulemur },
-
+
{ 0x68E0, 0x1433103C, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5470M", kEulemur },
{ 0x68E1, 0x1426103C, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5430M", kEulemur },
-
+
{ 0x68F9, 0x5470174B, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5470", kNull },
{ 0x68F9, 0x5490174B, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5490", kNull },
{ 0x68F9, 0x5530174B, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5530", kNull },
@@ -537,130 +536,130 @@
{ 0x68F9, 0x30001787, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5470", kNull },
{ 0x68F9, 0x30011787, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5530", kNull },
{ 0x68F9, 0x30021787, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5490", kNull },
-
+
{ 0x68F9, 0x301117AF, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5470", kNull },
{ 0x68F9, 0x301217AF, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5490", kNull },
{ 0x68F9, 0x301317AF, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5470", kNull },
-
+
/* Northen Islands */
{ 0x6718, 0x0B001002, CHIP_FAMILY_CAYMAN, "AMD Radeon HD 6970", kNull },
{ 0x6718, 0x67181002, CHIP_FAMILY_CAYMAN, "AMD Radeon HD 6970", kNull },
-
+
{ 0x6718, 0x31301682, CHIP_FAMILY_CAYMAN, "AMD Radeon HD 6970", kNull },
-
+
{ 0x6738, 0x67381002, CHIP_FAMILY_BARTS, "AMD Radeon HD 6870", kDuckweed },
-
+
{ 0x6739, 0x67391002, CHIP_FAMILY_BARTS, "AMD Radeon HD 6850", kDuckweed },
-
+
{ 0x6739, 0x21F81458, CHIP_FAMILY_BARTS, "AMD Radeon HD 6850", kDuckweed },
-
+
{ 0x6740, 0x1657103C, 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 },
-
+
{ 0x6759, 0xE193174B, CHIP_FAMILY_TURKS, "AMD Radeon HD 6570", kNull },
-
+
{ 0x6760, 0x1CB21043, CHIP_FAMILY_RV730, "AMD Radeon HD 6470M", kNull },
-
+
/* 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 },
-
- { 0x9440, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot },
+
+ { 0x9440, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot },
{ 0x9441, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4870 X2", kMotmot },
- { 0x9442, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot },
+ { 0x9442, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot },
{ 0x9443, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4850 X2", kMotmot },
- { 0x944C, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot },
- { 0x944E, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4700 Series", kMotmot },
-
+ { 0x944C, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot },
+ { 0x944E, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4700 Series", kMotmot },
+
{ 0x9450, 0x00000000, CHIP_FAMILY_RV770, "AMD FireStream 9270", kMotmot },
{ 0x9452, 0x00000000, CHIP_FAMILY_RV770, "AMD FireStream 9250", kMotmot },
-
- { 0x9460, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot },
- { 0x9462, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot },
-
- { 0x9490, 0x00000000, CHIP_FAMILY_RV730, "ATI Radeon HD 4600 Series", kFlicker },
- { 0x9498, 0x00000000, CHIP_FAMILY_RV730, "ATI Radeon HD 4600 Series", kFlicker },
-
+
+ { 0x9460, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot },
+ { 0x9462, 0x00000000, CHIP_FAMILY_RV770, "ATI Radeon HD 4800 Series", kMotmot },
+
+ { 0x9490, 0x00000000, CHIP_FAMILY_RV730, "ATI Radeon HD 4600 Series", kFlicker },
+ { 0x9498, 0x00000000, CHIP_FAMILY_RV730, "ATI Radeon HD 4600 Series", kFlicker },
+
{ 0x94B3, 0x00000000, CHIP_FAMILY_RV740, "ATI Radeon HD 4770", kFlicker },
- { 0x94B4, 0x00000000, CHIP_FAMILY_RV740, "ATI Radeon HD 4700 Series", kFlicker },
+ { 0x94B4, 0x00000000, CHIP_FAMILY_RV740, "ATI Radeon HD 4700 Series", kFlicker },
{ 0x94B5, 0x00000000, CHIP_FAMILY_RV740, "ATI Radeon HD 4770", kFlicker },
-
- { 0x94C1, 0x00000000, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 Series", kIago },
- { 0x94C3, 0x00000000, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 Series", kIago },
+
+ { 0x94C1, 0x00000000, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 Series", kIago },
+ { 0x94C3, 0x00000000, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 Series", kIago },
{ 0x94C7, 0x00000000, CHIP_FAMILY_RV610, "ATI Radeon HD 2350", kIago },
- { 0x94CC, 0x00000000, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 Series", kIago },
-
- { 0x9501, 0x00000000, CHIP_FAMILY_RV670, "ATI Radeon HD 3800 Series", kMegalodon },
- { 0x9505, 0x00000000, CHIP_FAMILY_RV670, "ATI Radeon HD 3800 Series", kMegalodon },
+ { 0x94CC, 0x00000000, CHIP_FAMILY_RV610, "ATI Radeon HD 2400 Series", kIago },
+
+ { 0x9501, 0x00000000, CHIP_FAMILY_RV670, "ATI Radeon HD 3800 Series", kMegalodon },
+ { 0x9505, 0x00000000, CHIP_FAMILY_RV670, "ATI Radeon HD 3800 Series", kMegalodon },
{ 0x9507, 0x00000000, CHIP_FAMILY_RV670, "ATI Radeon HD 3830", kMegalodon },
{ 0x950F, 0x00000000, CHIP_FAMILY_RV670, "ATI Radeon HD 3870 X2", kMegalodon },
-
+
{ 0x9513, 0x00000000, CHIP_FAMILY_RV670, "ATI Radeon HD 3850 X2", kMegalodon },
{ 0x9519, 0x00000000, CHIP_FAMILY_RV670, "AMD FireStream 9170", kMegalodon },
-
+
{ 0x9540, 0x00000000, CHIP_FAMILY_RV710, "ATI Radeon HD 4550", kNull },
- { 0x954F, 0x00000000, CHIP_FAMILY_RV710, "ATI Radeon HD 4300/4500 Series", kNull },
-
+ { 0x954F, 0x00000000, CHIP_FAMILY_RV710, "ATI Radeon HD 4300/4500 Series", kNull },
+
{ 0x9553, 0x00000000, CHIP_FAMILY_RV710, "ATI Mobility Radeon HD 4500/5100 Series", kShrike },
-
+
{ 0x9588, 0x00000000, CHIP_FAMILY_RV630, "ATI Radeon HD 2600 XT", kLamna },
{ 0x9589, 0x00000000, CHIP_FAMILY_RV630, "ATI Radeon HD 2600 PRO", kLamna },
- { 0x958A, 0x00000000, CHIP_FAMILY_RV630, "ATI Radeon HD 2600 X2 Series", kLamna },
-
- { 0x9598, 0x00000000, CHIP_FAMILY_RV635, "ATI Radeon HD 3600 Series", kMegalodon },
-
- { 0x95C0, 0x00000000, CHIP_FAMILY_RV620, "ATI Radeon HD 3400 Series", kIago },
- { 0x95C5, 0x00000000, CHIP_FAMILY_RV620, "ATI Radeon HD 3400 Series", kIago },
-
+ { 0x958A, 0x00000000, CHIP_FAMILY_RV630, "ATI Radeon HD 2600 X2 Series", kLamna },
+
+ { 0x9598, 0x00000000, CHIP_FAMILY_RV635, "ATI Radeon HD 3600 Series", kMegalodon },
+
+ { 0x95C0, 0x00000000, CHIP_FAMILY_RV620, "ATI Radeon HD 3400 Series", kIago },
+ { 0x95C5, 0x00000000, CHIP_FAMILY_RV620, "ATI Radeon HD 3400 Series", kIago },
+
/* IGP */
- { 0x9610, 0x00000000, CHIP_FAMILY_RS780, "ATI Radeon HD 3200 Graphics", kNull },
+ { 0x9610, 0x00000000, CHIP_FAMILY_RS780, "ATI Radeon HD 3200 Graphics", kNull },
{ 0x9611, 0x00000000, CHIP_FAMILY_RS780, "ATI Radeon 3100 Graphics", kNull },
- { 0x9614, 0x00000000, CHIP_FAMILY_RS780, "ATI Radeon HD 3300 Graphics", kNull },
- { 0x9616, 0x00000000, CHIP_FAMILY_RS780, "AMD 760G", kNull },
-
+ { 0x9614, 0x00000000, CHIP_FAMILY_RS780, "ATI Radeon HD 3300 Graphics", kNull },
+ { 0x9616, 0x00000000, CHIP_FAMILY_RS780, "AMD 760G", kNull },
+
{ 0x9710, 0x00000000, CHIP_FAMILY_RS880, "ATI Radeon HD 4200", kNull },
{ 0x9715, 0x00000000, CHIP_FAMILY_RS880, "ATI Radeon HD 4250", kNull },
{ 0x9714, 0x00000000, CHIP_FAMILY_RS880, "ATI Radeon HD 4290", kNull },
-
+
/* Evergreen */
{ 0x688D, 0x00000000, CHIP_FAMILY_CYPRESS, "AMD FireStream 9350", kUakari },
-
- { 0x6898, 0x00000000, CHIP_FAMILY_CYPRESS, "ATI Radeon HD 5800 Series", kUakari },
- { 0x6899, 0x00000000, CHIP_FAMILY_CYPRESS, "ATI Radeon HD 5800 Series", kUakari },
- { 0x689C, 0x00000000, CHIP_FAMILY_HEMLOCK, "ATI Radeon HD 5900 Series", kUakari },
- { 0x689E, 0x00000000, CHIP_FAMILY_CYPRESS, "ATI Radeon HD 5800 Series", kUakari },
-
- { 0x68B8, 0x00000000, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5700 Series", kVervet },
- { 0x68B9, 0x00000000, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5600 Series", kVervet },
- { 0x68BE, 0x00000000, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5700 Series", kVervet },
-
- { 0x68D8, 0x00000000, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5600 Series", kBaboon },
- { 0x68D9, 0x00000000, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5500 Series", kBaboon },
- { 0x68DA, 0x00000000, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5500 Series", kBaboon },
-
- { 0x68F9, 0x00000000, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5400 Series", kNull },
-
+
+ { 0x6898, 0x00000000, CHIP_FAMILY_CYPRESS, "ATI Radeon HD 5800 Series", kUakari },
+ { 0x6899, 0x00000000, CHIP_FAMILY_CYPRESS, "ATI Radeon HD 5800 Series", kUakari },
+ { 0x689C, 0x00000000, CHIP_FAMILY_HEMLOCK, "ATI Radeon HD 5900 Series", kUakari },
+ { 0x689E, 0x00000000, CHIP_FAMILY_CYPRESS, "ATI Radeon HD 5800 Series", kUakari },
+
+ { 0x68B8, 0x00000000, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5700 Series", kVervet },
+ { 0x68B9, 0x00000000, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5600 Series", kVervet },
+ { 0x68BE, 0x00000000, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 5700 Series", kVervet },
+
+ { 0x68D8, 0x00000000, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5600 Series", kBaboon },
+ { 0x68D9, 0x00000000, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5500 Series", kBaboon },
+ { 0x68DA, 0x00000000, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5500 Series", kBaboon },
+
+ { 0x68F9, 0x00000000, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5400 Series", kNull },
+
/* Northen Islands */
- { 0x6718, 0x00000000, CHIP_FAMILY_CAYMAN, "AMD Radeon HD 6970 Series", kNull },
- { 0x6719, 0x00000000, CHIP_FAMILY_CAYMAN, "AMD Radeon HD 6950 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", kNull },
- { 0x6759, 0x00000000, CHIP_FAMILY_TURKS, "AMD Radeon HD 6500 Series", kNull },
-
- { 0x6770, 0x00000000, CHIP_FAMILY_CAICOS, "AMD Radeon HD 6400 Series", kNull },
- { 0x6779, 0x00000000, CHIP_FAMILY_CAICOS, "AMD Radeon HD 6450 Series", kNull },
-
+ { 0x6718, 0x00000000, CHIP_FAMILY_CAYMAN, "AMD Radeon HD 6970 Series", kNull },
+ { 0x6719, 0x00000000, CHIP_FAMILY_CAYMAN, "AMD Radeon HD 6950 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", kNull },
+ { 0x6759, 0x00000000, CHIP_FAMILY_TURKS, "AMD Radeon HD 6500 Series", kNull },
+
+ { 0x6770, 0x00000000, CHIP_FAMILY_CAICOS, "AMD Radeon HD 6400 Series", kNull },
+ { 0x6779, 0x00000000, CHIP_FAMILY_CAICOS, "AMD Radeon HD 6450 Series", kNull },
+
{ 0x0000, 0x00000000, CHIP_FAMILY_UNKNOW, NULL, kNull }
};
Index: trunk/i386/libsaio/cpu.c
===================================================================
--- trunk/i386/libsaio/cpu.c (revision 1345)
+++ trunk/i386/libsaio/cpu.c (revision 1346)
@@ -30,7 +30,7 @@
unsigned long pollCount;
uint64_t retval = 0;
int i;
-
+
/* Time how many TSC ticks elapse in 30 msec using the 8254 PIT
* counter 2. We run this loop 3 times to make sure the cache
* is hot and we take the minimum delta from all of the runs.
@@ -67,7 +67,7 @@
* Hz so we need to convert our milliseconds to seconds. Since we're
* dividing by the milliseconds, we simply multiply by 1000.
*/
-
+
/* Unlike linux, we're not limited to 32-bit, but we do need to take care
* that we're going to multiply by 1000 first so we do need at least some
* arithmetic headroom. For now, 32-bit should be enough.
@@ -209,10 +209,10 @@
int len, myfsb;
uint8_t bus_ratio_min;
uint32_t max_ratio, min_ratio;
-
+
max_ratio = min_ratio = myfsb = bus_ratio_min = 0;
maxcoef = maxdiv = bus_ratio_max = currcoef = currdiv = 0;
-
+
/* get cpuid values */
do_cpuid(0x00000000, p->CPU.CPUID[CPUID_0]);
do_cpuid(0x00000001, p->CPU.CPUID[CPUID_1]);
@@ -330,11 +330,11 @@
if (p->CPU.NoThreads > p->CPU.NoCores) {
p->CPU.Features |= CPU_FEATURE_HTT;
}
-
+
tscFrequency = measure_tsc_frequency();
fsbFrequency = 0;
cpuFrequency = 0;
-
+
if ((p->CPU.Vendor == CPUID_VENDOR_INTEL) && ((p->CPU.Family == 0x06) || (p->CPU.Family == 0x0f))) {
int intelCPU = p->CPU.Model;
if ((p->CPU.Family == 0x06 && p->CPU.Model >= 0x0c) || (p->CPU.Family == 0x0f && p->CPU.Model >= 0x03)) {
@@ -365,8 +365,7 @@
is inadvertently set to 0.
*/
if (flex_ratio == 0) {
- /* Clear bit 16 (evidently the
- presence bit) */
+ /* Clear bit 16 (evidently the presence bit) */
wrmsr64(MSR_FLEX_RATIO, (msr & 0xFFFFFFFFFFFEFFFFULL));
msr = rdmsr64(MSR_FLEX_RATIO);
verbose("Unusable flex ratio detected. Patched MSR now %08x\n", bitfield(msr, 31, 0));
@@ -376,7 +375,7 @@
}
}
}
-
+
if (bus_ratio_max) {
fsbFrequency = (tscFrequency / bus_ratio_max);
}
@@ -392,9 +391,9 @@
max_ratio = atoi(newratio);
max_ratio = (max_ratio * 10);
if (len >= 3) max_ratio = (max_ratio + 5);
-
+
verbose("Bus-Ratio: min=%d, max=%s\n", bus_ratio_min, newratio);
-
+
// extreme overclockers may love 320 ;)
if ((max_ratio >= min_ratio) && (max_ratio <= 320)) {
cpuFrequency = (fsbFrequency * max_ratio) / 10;
@@ -408,7 +407,7 @@
/*if(bus_ratio_max > 0) bus_ratio = flex_ratio;*/
p->CPU.MaxRatio = max_ratio;
p->CPU.MinRatio = min_ratio;
-
+
myfsb = fsbFrequency / 1000000;
verbose("Sticking with [BCLK: %dMhz, Bus-Ratio: %d]\n", myfsb, max_ratio);
currcoef = bus_ratio_max;
@@ -430,7 +429,7 @@
/* XXX */
maxcoef = currcoef;
}
-
+
if (maxcoef) {
if (maxdiv) {
fsbFrequency = ((tscFrequency * 2) / ((maxcoef * 2) + 1));
Index: trunk/i386/libsaio/disk.c
===================================================================
--- trunk/i386/libsaio/disk.c (revision 1345)
+++ trunk/i386/libsaio/disk.c (revision 1346)
@@ -1685,19 +1685,19 @@
static const struct NamedValue fdiskTypes[] =
{
- { FDISK_NTFS, "Windows NTFS" },
- { FDISK_DOS12, "Windows FAT12" },
- { FDISK_DOS16B, "Windows FAT16" },
- { FDISK_DOS16S, "Windows FAT16" },
- { FDISK_DOS16SLBA, "Windows FAT16" },
- { FDISK_SMALLFAT32, "Windows FAT32" },
- { FDISK_FAT32, "Windows FAT32" },
- { FDISK_LINUX, "Linux" },
- { FDISK_UFS, "Apple UFS" },
- { FDISK_HFS, "Apple HFS" },
- { FDISK_BOOTER, "Apple Boot/UFS" },
- { 0xCD, "CD-ROM" },
- { 0x00, 0 } /* must be last */
+ { FDISK_NTFS, "Windows NTFS" },
+ { FDISK_DOS12, "Windows FAT12" },
+ { FDISK_DOS16B, "Windows FAT16" },
+ { FDISK_DOS16S, "Windows FAT16" },
+ { FDISK_DOS16SLBA, "Windows FAT16" },
+ { FDISK_SMALLFAT32, "Windows FAT32" },
+ { FDISK_FAT32, "Windows FAT32" },
+ { FDISK_LINUX, "Linux" },
+ { FDISK_UFS, "Apple UFS" },
+ { FDISK_HFS, "Apple HFS" },
+ { FDISK_BOOTER, "Apple Boot/UFS" },
+ { 0xCD, "CD-ROM" },
+ { 0x00, 0 } /* must be last */
};
//==========================================================================
Index: trunk/i386/libsaio/saio_types.h
===================================================================
--- trunk/i386/libsaio/saio_types.h (revision 1345)
+++ trunk/i386/libsaio/saio_types.h (revision 1346)
@@ -213,11 +213,12 @@
};
enum {
- kPartitionTypeHFS = 0xAF,
- kPartitionTypeHPFS = 0x07,
- kPartitionTypeFAT16 = 0x06,
- kPartitionTypeFAT32 = 0x0c,
- kPartitionTypeEXT3 = 0x83
+
+ kPartitionTypeHFS = 0xAF,
+ kPartitionTypeHPFS = 0x07,
+ kPartitionTypeFAT16 = 0x06,
+ kPartitionTypeFAT32 = 0x0c,
+ kPartitionTypeEXT3 = 0x83
};
//#define BIOS_DEV_TYPE(d) ((d) & kBIOSDevTypeMask)
Index: trunk/i386/libsaio/fake_efi.c
===================================================================
--- trunk/i386/libsaio/fake_efi.c (revision 1345)
+++ trunk/i386/libsaio/fake_efi.c (revision 1346)
@@ -492,7 +492,7 @@
// belong to smbios config only ...
const char *sysId = getStringForKey(kSystemID, &bootInfo->chameleonConfig);
EFI_CHAR8* ret = getUUIDFromString(sysId);
-
+
if (!sysId || !ret) // try bios dmi info UUID extraction
{
ret = getSmbiosUUID();
@@ -566,7 +566,7 @@
{
DT__AddProperty(runtimeServicesNode, "table", sizeof(uint64_t), &gST64->RuntimeServices);
}
-
+
// Set up the /efi/configuration-table node which will eventually have several child nodes for
// all of the configuration tables needed by various kernel extensions.
gEfiConfigurationTableNode = DT__AddChild(node, "configuration-table");
@@ -591,7 +591,7 @@
// Export system-id. Can be disabled with SystemId=No in com.apple.Boot.plist
if ((ret=getSystemID()))
DT__AddProperty(efiPlatformNode, SYSTEM_ID_PROP, UUID_LEN, (EFI_UINT32*) ret);
-
+
// Export SystemSerialNumber if present
if ((ret16=getSmbiosChar16("SMserial", &len)))
DT__AddProperty(efiPlatformNode, SYSTEM_SERIAL_PROP, len, ret16);
@@ -647,12 +647,12 @@
err = loadConfigFile(dirSpecSMBIOS, &bootInfo->smbiosConfig);
}
}
-
+
if (err)
{
verbose("No SMBIOS replacement found.\n");
}
-
+
// get a chance to scan mem dynamically if user asks for it while having the config options
// loaded as well, as opposed to when it was in scan_platform(); also load the orig. smbios
// so that we can access dmi info, without patching the smbios yet.
@@ -668,7 +668,7 @@
addConfigurationTable(&gEfiSmbiosTableGuid, &smbios_p, NULL);
setupBoardId(); //need to be called after getSmbios
-
+
// Setup ACPI with DSDT overrides (mackerintel's patch)
setupAcpi();
@@ -712,7 +712,7 @@
memcpy(tableAddress, (void *)origeps->dmi.tableAddress, origeps->dmi.tableLength);
DT__AddProperty(node, "SMBIOS", origeps->dmi.tableLength, tableAddress);
-}
+}
/*
* Entrypoint from boot.c
@@ -721,14 +721,14 @@
{
// Generate efi device strings
setup_pci_devs(root_pci_dev);
-
+
readSMBIOSInfo(getSmbios(SMBIOS_ORIGINAL));
// load smbios.plist file if any
setupSmbiosConfigFile("smbios.plist");
-
+
setupSMBIOSTable();
-
+
// Initialize the base table
if (archCpuType == CPU_TYPE_I386)
{
@@ -741,7 +741,7 @@
// Initialize the device tree
setupEfiDeviceTree();
-
+
saveOriginalSMBIOS();
// Add configuration table entries to both the services table and the device tree
Index: trunk/i386/boot2/boot.c
===================================================================
--- trunk/i386/boot2/boot.c (revision 1345)
+++ trunk/i386/boot2/boot.c (revision 1346)
@@ -43,7 +43,7 @@
* Copyright 1993 NeXT Computer, Inc.
* All rights reserved.
*/
-
+
/*
* Completely reworked by Sam Streeper (sam_s@NeXT.com)
* Reworked again by Curtis Galloway (galloway@NeXT.com)
@@ -215,7 +215,7 @@
outb(0xa1, 0xff); /* Maskout all interrupts Pic2 */
// Jump to kernel's entry point. There's no going back now.
-
+
startprog( kernelEntry, bootArgs );
}
else {
@@ -223,7 +223,7 @@
startprog( kernelEntry, bootArgsPreLion );
}
-
+
// Not reached
return 0;
}
@@ -342,7 +342,7 @@
// Intialize module system
init_module_system();
-
+
#if DEBUG
printf(" Default: %d, ->biosdev: %d, ->part_no: %d ->flags: %d\n", gBootVolume, gBootVolume->biosdev, gBootVolume->part_no, gBootVolume->flags);
printf(" bt(0,0): %d, ->biosdev: %d, ->part_no: %d ->flags: %d\n", gBIOSBootVolume, gBIOSBootVolume->biosdev, gBIOSBootVolume->part_no, gBIOSBootVolume->flags);
@@ -384,7 +384,7 @@
status = getBootOptions(firstRun);
firstRun = false;
if (status == -1) continue;
-
+
status = processBootOptions();
// Status==1 means to chainboot
if ( status == 1 ) break;
@@ -428,7 +428,7 @@
} else {
archCpuType = CPU_TYPE_I386;
}
-
+
if (getValueForKey(karch, &val, &len, &bootInfo->chameleonConfig)) {
if (strncmp(val, "i386", 4) == 0) {
archCpuType = CPU_TYPE_I386;
@@ -485,7 +485,7 @@
#endif
break;
}
-
+
HibernateBoot((char *)val);
break;
}
@@ -545,7 +545,7 @@
}
}
}
-
+
// Check for cache file.
trycache = (usecache &&
((gBootMode & kBootModeSafe) == 0) &&
@@ -630,7 +630,7 @@
}
}
}
-
+
if (checkOSVersion("10.7"))
{
//Lion, dont load kernel if haz cache
@@ -725,7 +725,7 @@
config_file_t systemVersion;
const char *val;
int len;
-
+
if (!loadConfigFile("System/Library/CoreServices/SystemVersion.plist", &systemVersion))
{
valid = true;
@@ -734,7 +734,7 @@
{
valid = true;
}
-
+
if (valid)
{
if (getValueForKey(kProductVersion, &val, &len, &systemVersion))
@@ -747,7 +747,7 @@
else
valid = false;
}
-
+
return valid;
}
Index: trunk/i386/boot2/gui.c
===================================================================
--- trunk/i386/boot2/gui.c (revision 1345)
+++ trunk/i386/boot2/gui.c (revision 1346)
@@ -760,19 +760,19 @@
break;
case kPartitionTypeHPFS:
- devicetype = iDeviceNTFS; // Use HPFS / NTFS icon
+ devicetype = iDeviceNTFS; // Use HPFS / NTFS icon
break;
case kPartitionTypeFAT16:
- devicetype = iDeviceFAT16; // Use FAT16 icon
+ devicetype = iDeviceFAT16; // Use FAT16 icon
break;
case kPartitionTypeFAT32:
- devicetype = iDeviceFAT32; // Use FAT32 icon
+ devicetype = iDeviceFAT32; // Use FAT32 icon
break;
case kPartitionTypeEXT3:
- devicetype = iDeviceEXT3; // Use EXT2/3 icon
+ devicetype = iDeviceEXT3; // Use EXT2/3 icon
break;
default:
Index: trunk/i386/modules/Makefile
===================================================================
--- trunk/i386/modules/Makefile (revision 1345)
+++ trunk/i386/modules/Makefile (revision 1346)
@@ -18,7 +18,7 @@
DEFINES=
CONFIG = hd
LIBSAIODIR = $(SRCROOT)/i386/libsaio
-INC = -I$(LIBSAIODIR)
+INC = -I$(LIBSAIODIR)
ifeq (${CONFIG_MODULES}, y)
Index: branches/ErmaC/i386/boot2/boot.c
===================================================================
--- branches/ErmaC/i386/boot2/boot.c (revision 1345)
+++ branches/ErmaC/i386/boot2/boot.c (revision 1346)
@@ -211,9 +211,6 @@
if (checkOSVersion("10.7")) {
// Masking out so that Lion doesn't doublefault
- // outb(0x21, 0xff); /* Maskout all interrupts Pic1 */
- // outb(0xa1, 0xff); /* Maskout all interrupts Pic2 */
-
// Jump to kernel's entry point. There's no going back now.
startprog( kernelEntry, bootArgs );
@@ -605,12 +602,10 @@
verbose("Kernel cache did not load %s\n ", bootFile);
}
- if (checkOSVersion("10.7"))
- {
+ if (checkOSVersion("10.7")) {
bootFile = gBootKernelCacheFile;
}
- else
- {
+ else {
sprintf(bootFile, "\%s", bootInfo->bootFile);
}
@@ -628,7 +623,7 @@
if (ret == -1)
{
// No alternate location found, using the original kernel image path.
- strcpy(bootFileSpec, bootFile);
+ strcpy(bootFileSpec, bootInfo->bootFile);
}
}
}
Index: branches/ErmaC/package/Distribution
===================================================================
--- branches/ErmaC/package/Distribution (revision 0)
+++ branches/ErmaC/package/Distribution (revision 1346)
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Chameleon_title
+
+
Index: branches/ErmaC/package/slimpkg.sh
===================================================================
--- branches/ErmaC/package/slimpkg.sh (revision 0)
+++ branches/ErmaC/package/slimpkg.sh (revision 1346)
@@ -0,0 +1,368 @@
+#!/bin/bash
+
+# $1 Path to store built package
+
+packagesidentity="org.chameleon"
+
+packagename="Chameleon"
+
+pkgroot="${0%/*}"
+
+COL_BLACK="\x1b[30;01m"
+COL_RED="\x1b[31;01m"
+COL_GREEN="\x1b[32;01m"
+COL_YELLOW="\x1b[33;01m"
+COL_MAGENTA="\x1b[35;01m"
+COL_CYAN="\x1b[36;01m"
+COL_WHITE="\x1b[37;01m"
+COL_BLUE="\x1b[34;01m"
+COL_RESET="\x1b[39;49;00m"
+
+#version=$( grep I386BOOT_CHAMELEONVERSION sym/i386/vers.h | awk '{ print $3 }' | tr -d '\"' )
+version=$( cat version )
+stage=${version##*-}
+revision=$( grep I386BOOT_CHAMELEONREVISION sym/i386/vers.h | awk '{ print $3 }' | tr -d '\"' )
+builddate=$( grep I386BOOT_BUILDDATE sym/i386/vers.h | awk '{ print $3,$4 }' | tr -d '\"' )
+timestamp=$( date -j -f "%Y-%m-%d %H:%M:%S" "${builddate}" "+%s" )
+
+# =================
+
+develop=" Crazor, Dense, fassl, fxtentacle, iNDi, JrCs, Kabyl, kaitek, mackerintel, mercurysquad, munky, Slice, meklort, mozodojo, rekursor, Turbo, cparm, valv & zef "
+
+credits=" andyvand, asereBLN, Azimut, bumby, cosmo1t, dfe, Galaxy, kalyway, Krazubu, MasterChief, netkas, sckevyn, smith@@, THeKiNG, DutchHockeyPro & Andy"
+
+pkgdev=" blackosx, ErmaC , scrax"
+
+# =================
+
+distributioncount=0
+xmlindent=0
+
+indent[0]="\t"
+indent[1]="\t\t"
+indent[2]="\t\t\t"
+indent[3]="\t\t\t\t"
+
+main ()
+{
+
+# clean up the destination path
+
+rm -R -f "${1}"
+echo ""
+echo -e $COL_BLACK" ---------------------"$COL_RESET
+echo -e $COL_BLACK" Building Slim Package"$COL_RESET
+echo -e $COL_BLACK" ---------------------"$COL_RESET
+echo ""
+
+outline[$((outlinecount++))]="${indent[$xmlindent]}"
+
+# build core package
+ echo "================= Core ================="
+ ((xmlindent++))
+ packagesidentity="org.chameleon.core"
+ mkdir -p ${1}/Core/Root/usr/sbin
+ mkdir -p ${1}/Core/Root/usr/local/bin
+ mkdir -p ${1}/Core/Root/usr/standalone/i386
+# if [ "$(ls -A "${1%/*}/i386/modules")" ]; then
+# echo "Modules found."
+# mkdir -p ${1}/Core/Root/usr/standalone/i386/modules
+# cp -R ${1%/*}/i386/modules ${1}/Core/Root/usr/standalone/i386
+# else
+# echo "No found modules into dir module"
+# fi
+ ditto --noextattr --noqtn ${1%/*}/i386/boot ${1}/Core/Root/usr/standalone/i386
+ ditto --noextattr --noqtn ${1%/*}/i386/boot0 ${1}/Core/Root/usr/standalone/i386
+ ditto --noextattr --noqtn ${1%/*}/i386/boot0md ${1}/Core/Root/usr/standalone/i386
+# ditto --noextattr --noqtn ${1%/*}/i386/boot0hf ${1}/Core/Root/usr/standalone/i386
+ ditto --noextattr --noqtn ${1%/*}/i386/boot1f32 ${1}/Core/Root/usr/standalone/i386
+ ditto --noextattr --noqtn ${1%/*}/i386/boot1h ${1}/Core/Root/usr/standalone/i386
+ ditto --noextattr --noqtn ${1%/*}/i386/boot1he ${1}/Core/Root/usr/standalone/i386
+ ditto --noextattr --noqtn ${1%/*}/i386/boot1hp ${1}/Core/Root/usr/standalone/i386
+ ditto --noextattr --noqtn ${1%/*}/i386/cdboot ${1}/Core/Root/usr/standalone/i386
+ ditto --noextattr --noqtn ${1%/*}/i386/chain0 ${1}/Core/Root/usr/standalone/i386
+# fixperms "${1}/Core/Root/"
+ ditto --noextattr --noqtn ${1%/*}/i386/fdisk440 ${1}/Core/Root/usr/sbin
+ ditto --noextattr --noqtn ${1%/*}/i386/bdmesg ${1}/Core/Root/usr/sbin
+ local coresize=$( du -hkc "${1}/Core/Root" | tail -n1 | awk {'print $1'} )
+ echo " [BUILD] i386 "
+ buildpackage "${1}/Core" "/" "0" "start_visible=\"false\" start_selected=\"true\"" >/dev/null 2>&1
+
+# build Chameleon package
+ echo "================= Chameleon ================="
+ outline[$((outlinecount++))]="${indent[$xmlindent]}\t"
+ choices[$((choicescount++))]="\n\n"
+
+ # build standard package
+ mkdir -p ${1}/Standard/Root
+ mkdir -p ${1}/Standard/Scripts/Tools
+ cp -f ${pkgroot}/Scripts/Standard/* ${1}/Standard/Scripts
+ # ditto --arch i386 `which SetFile` ${1}/Standard/Scripts/Tools/SetFile
+ echo " [BUILD] Standard "
+ buildpackage "${1}/Standard" "/" "${coresize}" "start_enabled=\"true\" start_selected=\"upgrade_allowed()\" selected=\"exclusive(choices['EFI']) && exclusive(choices['noboot'])\"" >/dev/null 2>&1
+ # End build standard package
+
+ # build efi package
+ mkdir -p ${1}/EFI/Root
+ mkdir -p ${1}/EFI/Scripts/Tools
+ cp -f ${pkgroot}/Scripts/EFI/* ${1}/EFI/Scripts
+ # ditto --arch i386 `which SetFile` ${1}/EFI/Scripts/Tools/SetFile
+ echo " [BUILD] EFI "
+ buildpackage "${1}/EFI" "/" "${coresize}" "start_visible=\"systemHasGPT()\" start_selected=\"false\" selected=\"exclusive(choices['Standard']) && exclusive(choices['noboot'])\"" >/dev/null 2>&1
+ # End build efi package
+
+ # build reset choice package
+ mkdir -p ${1}/noboot/Root
+ echo " [BUILD] Reset choice "
+ buildpackage "${1}/noboot" "/tmpcham" "" "start_visible=\"true\" start_selected=\"false\" selected=\"exclusive(choices['Standard']) && exclusive(choices['EFI'])\"" >/dev/null 2>&1
+ # End build reset choice package
+
+ # build Modules package
+ echo "================= Modules ================="
+ ###############################
+ # AMDGraphicsEnabler.dylib #
+ # ATiGraphicsEnabler.dylib #
+ # IntelGraphicsEnabler.dylib #
+ # klibc.dylib #
+ # NVIDIAGraphicsEnabler.dylib #
+ # Resolution.dylib #
+ # uClibcxx.dylib #
+ ###############################
+ if [ "$(ls -A "${1%/*}/i386/modules")" ]; then
+ {
+ outline[$((outlinecount++))]="${indent[$xmlindent]}\t"
+ choices[$((choicescount++))]="\n\n"
+ ((xmlindent++))
+ packagesidentity="org.chameleon.module"
+# -
+ if [ -e ${1%/*}/i386/modules/AMDGraphicsEnabler.dylib ]; then
+ {
+ mkdir -p ${1}/AMDGraphicsEnabler/Root
+ ditto --noextattr --noqtn ${1%/*}/i386/modules/AMDGraphicsEnabler.dylib ${1}/AMDGraphicsEnabler/Root
+ echo " [BUILD] AMDGraphicsEnabler "
+ buildpackage "${1}/AMDGraphicsEnabler" "/Extra/modules" "" "start_selected=\"false\"" >/dev/null 2>&1
+ }
+ fi
+# -
+ if [ -e ${1%/*}/i386/modules/ATiGraphicsEnabler.dylib ]; then
+ {
+ mkdir -p ${1}/ATiGraphicsEnabler/Root
+ ditto --noextattr --noqtn ${1%/*}/i386/modules/ATiGraphicsEnabler.dylib ${1}/ATiGraphicsEnabler/Root
+ echo " [BUILD] ATiGraphicsEnabler "
+ buildpackage "${1}/ATiGraphicsEnabler" "/Extra/modules" "" "start_selected=\"false\"" >/dev/null 2>&1
+ }
+ fi
+# -
+ if [ -e ${1%/*}/i386/modules/IntelGraphicsEnabler.dylib ]; then
+ {
+ mkdir -p ${1}/IntelGraphicsEnabler/Root
+ ditto --noextattr --noqtn ${1%/*}/i386/modules/IntelGraphicsEnabler.dylib ${1}/IntelGraphicsEnabler/Root
+ echo " [BUILD] IntelGraphicsEnabler "
+ buildpackage "${1}/IntelGraphicsEnabler" "/Extra/modules" "" "start_selected=\"false\"" >/dev/null 2>&1
+ }
+ fi
+# -
+ if [ -e ${1%/*}/i386/modules/klibc.dylib ]; then
+ {
+ mkdir -p ${1}/klibc/Root
+ ditto --noextattr --noqtn ${1%/*}/i386/modules/klibc.dylib ${1}/klibc/Root
+ echo " [BUILD] klibc "
+ buildpackage "${1}/klibc" "/Extra/modules" "" "start_selected=\"false\"" >/dev/null 2>&1
+ }
+ fi
+# -
+ if [ -e ${1%/*}/i386/modules/NVIDIAGraphicsEnabler.dylib ]; then
+ {
+ mkdir -p ${1}/NVIDIAGraphicsEnabler/Root
+ ditto --noextattr --noqtn ${1%/*}/i386/modules/NVIDIAGraphicsEnabler.dylib ${1}/NVIDIAGraphicsEnabler/Root
+ echo " [BUILD] NVIDIAGraphicsEnabler "
+ buildpackage "${1}/NVIDIAGraphicsEnabler" "/Extra/modules" "" "start_selected=\"false\"" >/dev/null 2>&1
+ }
+ fi
+# -
+ if [ -e ${1%/*}/i386/modules/Resolution.dylib ]; then
+ {
+ mkdir -p ${1}/AutoReso/Root
+ ditto --noextattr --noqtn ${1%/*}/i386/modules/Resolution.dylib ${1}/AutoReso/Root
+ echo " [BUILD] Resolution "
+ buildpackage "${1}/AutoReso" "/Extra/modules" "" "start_selected=\"false\"" >/dev/null 2>&1
+ }
+ fi
+# -
+ if [ -e ${1%/*}/i386/modules/uClibcxx.dylib ]; then
+ {
+ mkdir -p ${1}/uClibc/Root
+ ditto --noextattr --noqtn ${1%/*}/i386/modules/uClibcxx.dylib ${1}/uClibc/Root
+ ditto --noextattr --noqtn ${1%/*}/i386/modules/klibc.dylib ${1}/uClibc/Root
+ echo " [BUILD] uClibc++ "
+ buildpackage "${1}/uClibc" "/Extra/modules" "" "start_selected=\"false\"" >/dev/null 2>&1
+ }
+ fi
+ ((xmlindent--))
+ outline[$((outlinecount++))]="${indent[$xmlindent]}\t"
+ }
+ else
+ {
+ echo " -= no modules to include =-"
+ }
+ fi
+ # End build Modules packages
+ ((xmlindent--))
+ outline[$((outlinecount++))]="${indent[$xmlindent]}\t"
+# End build Chameleon package
+
+# build post install package
+ echo "================= Post ================="
+ mkdir -p ${1}/Post/Root
+ mkdir -p ${1}/Post/Scripts
+ cp -f ${pkgroot}/Scripts/Post/* ${1}/Post/Scripts
+ echo " [BUILD] Post "
+ buildpackage "${1}/Post" "/" "" "start_visible=\"false\" start_selected=\"true\"" >/dev/null 2>&1
+ outline[$((outlinecount++))]="${indent[$xmlindent]}"
+
+# build meta package
+
+ makedistribution "${1}" "${2}" "${3}" "${4}" "${5}"
+
+# clean up
+
+ rm -R -f "${1}"
+
+}
+
+fixperms ()
+{
+ # $1 path
+ find "${1}" -type f -exec chmod 644 {} \;
+ find "${1}" -type d -exec chmod 755 {} \;
+ chown -R 0:0 "${1}"
+}
+
+buildpackage ()
+{
+# $1 Path to package to build containing Root and or Scripts
+# $2 Install Location
+# $3 Size
+# $4 Options
+
+if [ -d "${1}/Root" ] && [ "${1}/Scripts" ]; then
+
+ local packagename="${1##*/}"
+ local identifier=$( echo ${packagesidentity}.${packagename//_/.} | tr [:upper:] [:lower:] )
+ find "${1}" -name '.DS_Store' -delete
+ local filecount=$( find "${1}/Root" | wc -l )
+ if [ "${3}" ]; then
+ local installedsize="${3}"
+ else
+ local installedsize=$( du -hkc "${1}/Root" | tail -n1 | awk {'print $1'} )
+ fi
+ local header="\n\n"
+ header+="\t\n"
+ rm -R -f "${1}/Temp"
+
+ [ -d "${1}/Temp" ] || mkdir -m 777 "${1}/Temp"
+ [ -d "${1}/Root" ] && mkbom "${1}/Root" "${1}/Temp/Bom"
+
+ if [ -d "${1}/Scripts" ]; then
+ header+="\t\n"
+ for script in $( find "${1}/Scripts" -type f \( -name 'pre*' -or -name 'post*' \) )
+ do
+ header+="\t\t<${script##*/} file=\"./${script##*/}\"/>\n"
+ done
+ header+="\t\n"
+ chown -R 0:0 "${1}/Scripts"
+ pushd "${1}/Scripts" >/dev/null
+ find . -print | cpio -o -z -H cpio > "../Temp/Scripts"
+ popd >/dev/null
+ fi
+
+ header+=""
+ echo -e "${header}" > "${1}/Temp/PackageInfo"
+ pushd "${1}/Root" >/dev/null
+ find . -print | cpio -o -z -H cpio > "../Temp/Payload"
+ popd >/dev/null
+ pushd "${1}/Temp" >/dev/null
+
+ xar -c -f "${1%/*}/${packagename// /}.pkg" --compression none .
+
+ popd >/dev/null
+
+ outline[$((outlinecount++))]="${indent[$xmlindent]}\t"
+
+ if [ "${4}" ]; then
+ local choiceoptions="${indent[$xmlindent]}${4}\n"
+ fi
+ choices[$((choicescount++))]="\n\t#${packagename// /}.pkg\n\n"
+
+ rm -R -f "${1}"
+fi
+}
+
+makedistribution ()
+{
+ rm -f "${1%/*}/${packagename// /}"*.pkg
+
+ find "${1}" -type f -name '*.pkg' -depth 1 | while read component
+ do
+ mkdir -p "${1}/${packagename}/${component##*/}"
+ pushd "${1}/${packagename}/${component##*/}" >/dev/null
+ xar -x -f "${1%}/${component##*/}"
+ popd >/dev/null
+ done
+
+ ditto --noextattr --noqtn "${pkgroot}/Distribution" "${1}/${packagename}/Distribution"
+ ditto --noextattr --noqtn "${pkgroot}/Resources" "${1}/${packagename}/Resources"
+
+ find "${1}/${packagename}/Resources" -type d -name '.svn' -exec rm -R -f {} \; 2>/dev/null
+
+ for (( i=0; i < ${#outline[*]} ; i++));
+ do
+ echo -e "${outline[$i]}" >> "${1}/${packagename}/Distribution"
+ done
+
+ for (( i=0; i < ${#choices[*]} ; i++));
+ do
+ echo -e "${choices[$i]}" >> "${1}/${packagename}/Distribution"
+ done
+
+ echo "" >> "${1}/${packagename}/Distribution"
+
+ perl -i -p -e "s/%CHAMELEONVERSION%/${version%%-*}/g" `find "${1}/${packagename}/Resources" -type f`
+ perl -i -p -e "s/%CHAMELEONREVISION%/${revision}/g" `find "${1}/${packagename}/Resources" -type f`
+
+# Adding Developer and credits
+ perl -i -p -e "s/%DEVELOP%/${develop}/g" `find "${1}/${packagename}/Resources" -type f`
+ perl -i -p -e "s/%CREDITS%/${credits}/g" `find "${1}/${packagename}/Resources" -type f`
+ perl -i -p -e "s/%PKGDEV%/${pkgdev}/g" `find "${1}/${packagename}/Resources" -type f`
+
+ stage=${stage/RC/Release Candidate }
+ stage=${stage/FINAL/2.0 Final}
+ perl -i -p -e "s/%CHAMELEONSTAGE%/${stage}/g" `find "${1}/${packagename}/Resources" -type f`
+
+ find "${1}/${packagename}" -name '.DS_Store' -delete
+ pushd "${1}/${packagename}" >/dev/null
+ xar -c -f "${1%/*}/$packagename.pkg" --compression none .
+ popd >/dev/null
+
+# Here is the place for assign a Icon to the pkg
+ditto -xk "${pkgroot}/Icons/pkg.zip" "${pkgroot}/Icons/"
+DeRez -only icns "${pkgroot}/Icons/Icons/pkg.icns" > tempicns.rsrc
+Rez -append tempicns.rsrc -o "${1%/*}/$packagename.pkg"
+SetFile -a C "${1%/*}/$packagename.pkg"
+rm -f tempicns.rsrc
+rm -rf "${pkgroot}/Icons/Icons"
+# End
+
+}
+
+main "${1}" "${2}" "${3}" "${4}" "${5}"
+
Property changes on: branches/ErmaC/package/slimpkg.sh
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/doc/Users_Guide0.5.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/doc/Users_Guide0.5.pdf
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/doc/BootHelp.txt
===================================================================
--- branches/ErmaC/package/doc/BootHelp.txt (revision 0)
+++ branches/ErmaC/package/doc/BootHelp.txt (revision 1346)
@@ -0,0 +1,111 @@
+The boot: prompt waits for you to type advanced startup options.
+If you don't type anything, the computer continues starting up normally. It
+uses the kernel and configuration files on the startup device, which it also
+uses as the root device.
+
+Advanced startup options use the following syntax:
+
+ [device] [arguments]
+
+Example arguments include
+
+ device: rd= (e.g. rd=disk0s2)
+ rd=* (e.g. rd=*/PCI0@0/CHN0@0/@0:1)
+
+ kernel: kernel name (e.g. "mach_kernel" - must be in "/" )
+
+ flags: -v (verbose) -s (single user mode)
+ -x (safe mode) -f (ignore caches)
+ -F (ignore "Kernel Flags" specified in boot configuration file)
+
+ "Graphics Mode"="WIDTHxHEIGHTxDEPTH" (e.g. "1024x768x32")
+
+ kernel flags (e.g. debug=0x144)
+ io=0xffffffff (defined in IOKit/IOKitDebug.h)
+
+Example: mach_kernel rd=disk0s1 -v "Graphics Mode"="1920x1200x32"
+
+If the computer won't start up properly, you may be able to start it up
+using safe mode. Type -x to start up in safe mode, which ignores all
+cached driver files.
+
+Special booter hotkeys:
+ F5 Rescans optical drive.
+ F10 Scans and displays all BIOS accessible drives.
+
+Special booter commands:
+ ?memory Displays information about the computer's memory.
+ ?video Displays VESA video modes supported by the computer's BIOS.
+ ?norescan Leaves optical drive rescan mode.
+
+Additional useful command-line options:
+ config= Use an alternate Boot.plist file.
+
+Options useful in the com.apple.Boot.plist file:
+ Wait=Yes|No Prompt for a key press before starting the kernel.
+ "Quiet Boot"=Yes|No Use quiet boot mode (no messages or prompt).
+ Timeout=8 Number of seconds to pause at the boot: prompt.
+ "Instant Menu"=Yes Force displaying the partition selection menu.
+
+ "Default Partition" Sets the default boot partition,
+ =hd(x,y)|UUID|"Label" Specified as a disk/partition pair, an UUID, or a
+ label enclosed in quotes.
+
+ "Hide Partition" Remove unwanted partition(s) from the boot menu.
+ =partition Specified, possibly multiple times, as hd(x,y), an
+ [;partition2 ...] UUID or label enclosed in quotes.
+
+ "Rename Partition" Rename partition(s) for the boot menu.
+ =partition Where partition is hd(x,y), UUID or label enclosed
+ [;partition2 in quotes. The alias can optionally be quoted too.
+ ...]
+
+ GUI=No Disable the GUI (enabled by default).
+ "Boot Banner"=Yes|No Show boot banner in GUI mode (enabled by default).
+ "Legacy Logo"=Yes|No Use the legacy grey apple logo (disabled by default).
+
+ PciRoot= Use an alternate value for PciRoot (default value 0).
+
+ GraphicsEnabler=Yes|No Automatic device-properties generation for gfx cards.
+ UseAtiROM=Yes|No Use an alternate Ati ROM image
+ (path: /Extra/_.rom)
+ UseNvidiaROM=Yes|No Use an alternate Nvidia ROM image
+ (path: /Extra/_.rom)
+ VBIOS=Yes|No Inject VBIOS to device-properties.
+
+ EthernetBuiltIn=Yes|No Automatic "built-in"=yes device-properties generation
+ for ethernet interfaces.
+
+ USBBusFix=Yes Enable all USB fixes below:
+ EHCIacquire=Yes Enable the EHCI fix (disabled by default).
+ UHCIreset=Yes Enable the UHCI fix (disabled by default).
+ USBLegacyOff=Yes Enable the USB Legacy fix (disabled by default).
+
+ ForceHPET=Yes|No Force Enable HPET.
+
+ Wake=No Disable wake up after hibernation (default: enabled).
+ ForceWake=Yes Force using the sleepimage (disabled by default).
+ WakeImage= Use an alternate sleepimage file.
+ (default path is /private/var/vm/sleepimage).
+
+ DropSSDT=Yes Skip the SSDT tables while relocating the ACPI tables.
+ DSDT= Use an alternate DSDT.aml file
+ (default path: /DSDT.aml /Extra/DSDT.aml bt(0,0)/Extra/DSDT.aml).
+
+ SMBIOS= Use an alternate SMBIOS.plist file
+ (default path: /Extra/SMBIOS.plist bt(0,0)/Extra/SMBIOS.plist).
+
+ SMBIOSdefaults=No Don't use the Default values for SMBIOS overriding
+ if smbios.plist doesn't exist, factory
+ values are kept.
+
+ "Scan Single Drive" Scan the drive only where the booter got loaded from.
+ =Yes|No Fix rescan pbs when using a DVD reader in AHCI mode.
+ Rescan=Yes Enable CD-ROM rescan mode.
+ "Rescan Prompt"=Yes Prompts for enable CD-ROM rescan mode.
+ SystemId= Set manually the system id UUID,
+ SMUUID in smbios config (reserved field) isn't used.
+ SystemType= Set the system type where n is between 0..6
+ (default =1 (Desktop)
+ md0= Load raw img file into memory for use as XNU's md0
+ ramdisk. /Extra/Postboot.img is used otherwise.
Index: branches/ErmaC/package/doc/README
===================================================================
--- branches/ErmaC/package/doc/README (revision 0)
+++ branches/ErmaC/package/doc/README (revision 1346)
@@ -0,0 +1,87 @@
+
+ Chameleon Boot Loader
+ =====================
+
+ What is it?
+ -----------
+
+ Chameleon is combination of various boot loader components. It is based
+ on David Elliott's fake EFI implementation added to Apple's boot-132
+ project. Chameleon is extended with the following key features:
+
+
+ Features
+ --------
+
+ - Device Property Injection via device-properties string in com.apple.Boot.plist
+ - hybrid boot0+boot1h loaders for both MBR and GPT partitioned disks.
+ - automatic FSB detection code even for recent AMD CPUs.
+ - Apple Software RAID support.
+ - stage2 loader (boot) can be placed as a regular file in the boot
+ partition's root folder.
+
+
+ Installation
+ ============
+
+ Normal Install (non-RAID):
+ --------------------------
+
+ Suppose that your installation is on /dev/disk0s2
+
+ - Install boot0 to the MBR:
+ sudo ./fdisk440 -f boot0 -u -y /dev/rdisk0
+
+ - Install boot1h to the partition's bootsector:
+ sudo dd if=boot1h of=/dev/rdisk0s2
+
+ - Install boot to the partition's root directory:
+ sudo cp boot /
+
+ No need to use startupfiletool anymore!
+
+
+ RAID Install:
+ -------------
+
+ Suppose that your installation is on /dev/disk3, which is either a mirror- or a
+ stripeset consisting of /dev/disk0 and /dev/disk1
+
+ Mac OS X creates a small helper partition at the end of each RAID member disk,
+ namely /dev/disk0s3 and /dev/disk1s3
+
+ - Install boot0 to the MBR of both disks:
+ sudo ./fdisk440 -f boot0 -u -y /dev/rdisk0
+ sudo ./fdisk440 -f boot0 -u -y /dev/rdisk1
+
+ - Install boot1h to the bootsector of each boot partition:
+ sudo dd if=boot1h of=/dev/rdisk0s3
+ sudo dd if=boot1h of=/dev/rdisk1s3
+
+ - Install boot to both helper partition's root directories.
+ diskutil mount disk0s3
+ cp boot /Volumes/Boot\ OSX
+ diskutil unmount disk0s3
+ diskutil mount disk1s3
+ cp boot /Volumes/Boot\ OSX
+ diskutil unmount disk1s3
+
+ Support:
+ --------
+
+ If you have any questions, issues etc. feel free to join us
+ at irc.voodooprojects.org #chameleon
+
+
+ Source Code
+ -----------
+
+ For downloading the source code please visit the project page at
+ http://chameleon.osx86.hu
+
+
+ Licensing
+ ---------
+
+ Chameleon is released under the terms and conditions of
+ Apple Public Source License (see APPLE_LICENSE).
Index: branches/ErmaC/package/smbios.plist
===================================================================
--- branches/ErmaC/package/smbios.plist (revision 0)
+++ branches/ErmaC/package/smbios.plist (revision 1346)
@@ -0,0 +1,61 @@
+
+
+
+
+ SMbiosversion
+ MP31.88Z.00C1.B00.0802091544
+ SMmanufacturer
+ Apple Inc.
+ SMproductname
+ MacPro3,1
+ SMsystemversion
+ 1.0
+ SMserial
+ W87234JHYA4
+ SMexternalclock
+ 333
+ SMmaximalclock
+ 3000
+ SMmemtype
+ 19
+ SMmemspeed
+ 800
+ SMmemmanufacturer_1
+ 0xAD00000000000000
+ SMmemserial_1
+ 0x00001020
+ SMmempart_1
+ 0x48594D503131325336344350362D59352020
+ SMmemmanufacturer_2
+ 0xAD00000000000000
+ SMmemserial_2
+ 0x00003021
+ SMmempart_2
+ 0x48594D503131325336344350362D59352020
+ SMmemmanufacturer_3
+ 0xAD00000000000000
+ SMmemserial_3
+ 0x00003021
+ SMmempart_3
+ 0x48594D503131325336344350362D59352020
+ SMmemmanufacturer_4
+ 0xAD00000000000000
+ SMmemserial_4
+ 0x00003021
+ SMmempart_4
+ 0x48594D503131325336344350362D59352020
+
+
+
Index: branches/ErmaC/package/Configuration/SMBIOSDefault/smbios.plist
===================================================================
--- branches/ErmaC/package/Configuration/SMBIOSDefault/smbios.plist (revision 0)
+++ branches/ErmaC/package/Configuration/SMBIOSDefault/smbios.plist (revision 1346)
@@ -0,0 +1,38 @@
+
+
+
+
+ SMbiosdate
+ 20/08/2008
+ SMbiosversion
+ IM71.88Z.007A.B03.0803051705
+ SMcputype
+ 1281
+ SMexternalclock
+ 1,33
+ SMfamily
+ iMac
+ SMmanufacter
+ Apple Inc. Mac-F2268CC8
+ SMmaximalclock
+ 2,50
+ SMmemmanufacter_1
+ Team Elite
+ SMmemmanufacter_2
+ Team Elite
+ SMmempart_1
+ 50M3P4R7
+ SMmempart_2
+ 50M3P4R7
+ SMmemserial_1
+ 50M353R14L
+ SMmemserial_2
+ 50M353R14L
+ SMproductname
+ iMac7,1
+ SMserial
+ YM90295599X
+ SMsystemversion
+ 1.0
+
+
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/MacOS/Chameleon
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/MacOS/Chameleon
___________________________________________________________________
Added: svn:executable
+ *
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Info.plist
===================================================================
--- branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Info.plist (revision 0)
+++ branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Info.plist (revision 1346)
@@ -0,0 +1,36 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ English
+ CFBundleDisplayName
+
+ CFBundleExecutable
+ Chameleon
+ CFBundleIconFile
+ Chameleon.icns
+ CFBundleIdentifier
+ com.chameleon.Chameleon
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ Chameleon
+ CFBundlePackageType
+ BNDL
+ CFBundleShortVersionString
+ 2.0
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ 2.0.0 RC5
+ NSMainNibFile
+ Chameleon
+ NSPrefPaneIconFile
+ Chameleon.tiff
+ NSPrefPaneIconLabel
+ Chameleon
+ NSPrincipalClass
+ ChameleonPrefPane
+
+
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/footer.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/footer.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/gfxutil
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/gfxutil
___________________________________________________________________
Added: svn:executable
+ *
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Linux.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Linux.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Chameleon.icns
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Chameleon.icns
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/CDROM.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/CDROM.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/getDevProp.sh
===================================================================
--- branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/getDevProp.sh (revision 0)
+++ branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/getDevProp.sh (revision 1346)
@@ -0,0 +1,38 @@
+#!/bin/sh
+
+# getDevProp.sh
+# smbios-cham
+#
+# Created by ronan & thomas on 12/08/09.
+# Copyright 2009 org.darwinx86.app. All rights reserved.
+# adapted for Chameleon control panel use by Rekursor
+#
+# Directories
+cdir=`dirname $0`
+tmpDir=/tmp/Chameleon
+dmpdir=${tmpDir}/devprop
+
+# Create a dump directory
+if [[ ! -d $dmpdir ]];then
+ mkdir -p $dmpdir
+fi
+if [[ ! -d $tmpDir ]];then
+ mkdir -p $tmpDir
+fi
+# Dump Device properties
+ioreg -lw0 -p IODeviceTree -n efi -r -x |grep device-properties | sed 's/.*/;s/>.*//;' | cat > $dmpdir/chameleon-devprop.hex
+
+$cdir/gfxutil -s -n -i hex -o xml $dmpdir/chameleon-devprop.hex $dmpdir/chameleon-devprop.plist
+
+
+# Splash the result up !!
+open $dmpdir/chameleon-devprop.plist
+if [[ ! -d $dmpdir ]];then
+ rm -r $dmpdir
+fi
+if [[ ! -d $tmpDir ]];then
+ rm -r $tmpDir
+fi
+
+#end
+#echo $?
\ No newline at end of file
Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/getDevProp.sh
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/plug.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/plug.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/French.lproj/Chameleon.nib
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/French.lproj/Chameleon.nib
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/French.lproj/Chameleon.strings
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/French.lproj/Chameleon.strings
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/French.lproj/Localizable.strings
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/French.lproj/Localizable.strings
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/cham.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/cham.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/CREDITS
===================================================================
--- branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/CREDITS (revision 0)
+++ branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/CREDITS (revision 1346)
@@ -0,0 +1,17 @@
+Initial Conception & Design:
+---------------------------
+Rekursor
+
+Crew Members
+----------
+Rekursor, DieBuche
+
+Contributors & Testers:
+---------------------
+BlackOSX, MasterChief, digital_dreamer, smith@@, scrax, quinielascom
+
+Chameleon also reuses:
+---------------------
+Courtesy of Ronan (Lizard):
+Existing scripts and gfxutil tool from Lizard available at:
+http://code.google.com/p/lizard-app/
\ No newline at end of file
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/German.lproj/Chameleon.nib
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/German.lproj/Chameleon.nib
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/German.lproj/Chameleon.strings
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/German.lproj/Chameleon.strings
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/German.lproj/Localizable.strings
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/German.lproj/Localizable.strings
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/syringe.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/syringe.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/cdBootCreator.sh
===================================================================
--- branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/cdBootCreator.sh (revision 0)
+++ branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/cdBootCreator.sh (revision 1346)
@@ -0,0 +1,104 @@
+#!/bin/sh
+
+# Copyright 2009 org.darwinx86.app. All rights reserved.
+
+# Directories
+extra=/tmp/isodir
+mydir=`dirname $0`
+tempDir=/tmp
+finaldir=~/Desktop
+isodir=/tmp/newiso
+extradir=/tmp/newiso/Extra
+preDir=/tmp/newiso/Extra/Preboot/
+prebootDir=/tmp/newiso/Extra/Preboot/Extra
+backDir=~/Desktop/Lizard
+bkpdir=~/Desktop/Lizard/Previous-dmg
+
+echo "Starting script..."
+
+#errors
+if ([ ! -f $extra/Extensions.mkext ] && [ ! -d $extra/Extensions ]);then
+ echo "- Error: no Extensions.mkext or Extensions folder. One of them is required"
+ echo " ------------------------"
+ exit
+fi
+
+if [ ! -f $extra/com.apple.Boot.plist ];then
+ echo "- Error: no com.apple.boot.plist found. File required"
+ echo " ------------------------"
+ exit
+fi
+if [ ! -f $extra/cdboot ];then
+ echo "- Error: no cdboot found. File required"
+ echo " ------------------------"
+ exit
+fi
+
+# Create a work directory
+echo " - temps folders created"
+echo " - Checking files"
+#copy Extra files to temp directory
+if [ -f $extra/cdboot ];then
+ cp -R $extra/cdboot $isodir
+fi
+
+if [ -f $extra/dsdt.aml ];then
+ cp -R $extra/dsdt.aml $prebootDir
+fi
+
+if [ -f $extra/DSDT.aml ];then
+ cp -R $extra/DSDT.aml $prebootDir
+fi
+
+if [ -f $extra/NVIDIA.ROM ];then
+ cp -R $extra/NVIDIA.ROM $prebootDir
+fi
+
+if [ -f $extra/smbios.plist ];then
+ cp -R $extra/smbios.plist $prebootDir
+fi
+
+if [ -f $extra/Extensions.mkext ];then
+ cp -R $extra/Extensions.mkext $prebootDir
+fi
+
+if [ -d $extra/Extensions ];then
+ cp -Rp $extra/Extensions $prebootDir
+fi
+
+if [ -f $extra/com.apple.Boot.plist ];then
+ cp -R $extra/com.apple.Boot.plist $prebootDir
+fi
+if [ -f $tempDir/com.apple.Boot.plist ];then
+ cp -R $tempDir/com.apple.Boot.plist $extradir
+fi
+
+echo "- Files copied in temp folder"
+
+# ramdisk creator
+hdiutil create -srcfolder $preDir/ -layout GPTSPUD -fs HFS+ -format UDRW -volname Preboot $extradir/Preboot.dmg
+rm -R $preDir
+echo " - ram disk created"
+
+# boot cd creator
+hdiutil makehybrid -o BootCD.iso $isodir/ -iso -hfs -joliet -eltorito-boot $isodir/cdboot -no-emul-boot -hfs-volume-name "Boot CD" -joliet-volume-name "Boot CD"
+echo " - hybrid image created"
+
+# Create output and backup directories
+if [ -f $finaldir/BootCD.iso ];then
+ if [ ! -d $bkpdir ];then
+ mkdir $backDir
+ mkdir $bkpdir
+ echo " - backup folder created"
+ fi
+ mv -f $finaldir/BootCD.iso $bkpdir/BootCd-$(date +"%d-%y-%Hh%M").iso
+ echo " - previous ISO moved into backup folder"
+fi
+mv BootCD.iso $finaldir
+echo " - ISO moved on desktop"
+
+# cleanup
+echo " - Perform cleaning"
+echo " - ISO created succefully"
+echo " ------------------------"
+exit 0
\ No newline at end of file
Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/cdBootCreator.sh
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/chip.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/chip.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Italian.lproj/Chameleon.nib
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Italian.lproj/Chameleon.nib
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Italian.lproj/Chameleon.strings
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Italian.lproj/Chameleon.strings
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Italian.lproj/Localizable.strings
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Italian.lproj/Localizable.strings
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/CHANGES
===================================================================
--- branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/CHANGES (revision 0)
+++ branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/CHANGES (revision 1346)
@@ -0,0 +1,47 @@
+- Added About Dialog, made the displayed version numbers all rely on the info.plist file
+- Fixed refresh and on checked associated button state, made sure the string is disabled if value is 0
+- Fixed crash when using swap hd 0<->2
+- Added a new option type (OptionFileString) that features an open dialog box to open files
+- Added few Combo boxes to simplify text inputs
+- Added Missing ForceHPET option and Theme options
+- Added a new SMBIOS panel only opening a file (in construction)
+- Added new EFI Injection panel
+- Added PciRoot, GUI boot options
+- Added scrax to credits: thx for testing the Chameleon PrefPane!
+- Create a makebin script (to enhance) that creates zip archives and sets a version
+ in the bin dir
+- Fixed default value to Yes not included in the boot config would not be checked
+ by default in interface
+- Added RestartFix boot option
+- Added forceBootConfigPath to the tabview panel for quicker setup, so now no
+ need to edit the preferences file manually.
+- Added SystemId
+- Added full bootOptions loading into the interface with no custom code needed,
+ all loading features are implemented in base class PreferencesControllerBase,
+ with the automatic parser engine.
+- Implemented the bootOption automatic and generic parsing engine.
+ Now any option is parsed from bootFile automatically (incl. defaults)
+ thanks to the underlying engine based on a dynamically constructed
+ id to desc map and also to the group panel registration init process
+- Fixed dmg archives would appear in dynamic partition listing
+- Added FREEZE (lock) features, see README.
+- Refined cosmetics for the GUI
+- Added images icon on the first column of each partition entries
+- Added APSL and README for instructions
+- Added swap disk (01 and 02) fixes
+- Added Rename and Hide display from bootConfig
+- Fixed 10.5 and 10.6 would crash because of memory references erased
+- Added more bootConfig paths and an option to force it
+ (i.e:if not found automatically)
+- Added new paths for bootConfig search now looking in this order:
+ "/",
+ "/Extra/",
+ "/Volumes/EFI/Extra/",
+ "/Volumes/Cham/Extra/",
+ "/Volumes/BootLoaders/Extra/",
+ "/Library/Preferences/SystemConfiguration/",
+- Change the restart by replacing the internal reboot shell cmd by an applescript
+ eq. to the AppleMenu/Restart command
+- Fixed nib file loading and initialization problem, possibly fixes the lock pb as well?
+- Added Apple_Free filter to filter these free partitions
+
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/wrench.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/wrench.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Windows.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Windows.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/MacOSX.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/MacOSX.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/English.lproj/InfoPlist.strings
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/English.lproj/InfoPlist.strings
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/English.lproj/Chameleon.nib
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/English.lproj/Chameleon.nib
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/English.lproj/Chameleon.strings
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/English.lproj/Chameleon.strings
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/English.lproj/Localizable.strings
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/English.lproj/Localizable.strings
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/extractAcpi.sh
===================================================================
--- branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/extractAcpi.sh (revision 0)
+++ branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/extractAcpi.sh (revision 1346)
@@ -0,0 +1,40 @@
+#/bin/sh
+set -e
+set -u
+ACPI_DIR="${HOME}/Desktop/ACPI"
+ioreg=
+if [[ $# -eq 1 && -f "$1" ]]; then
+ ioreg="$(grep ' "ACPI Tables" =' "$1")"
+else
+ ioreg="$(ioreg -lw0 | grep ' "ACPI Tables" =')"
+fi
+
+ioreg=${ioreg#*\{}
+ioreg=${ioreg%\}*}
+
+declare -a tables
+ioreg="${ioreg//,/ }"
+
+tables=($ioreg)
+
+echo "Number of ACPI tables: ${#tables[@]}"
+re='"([^"]+)"=<([^>]+)>'
+dumped=0
+for t in "${tables[@]}"; do
+ #echo Table: $t
+ if [[ $t =~ $re ]]; then
+ [[ $dumped = 0 ]] && mkdir -p ${ACPI_DIR}
+ ((++dumped))
+ echo
+ echo "Dumping table: ${BASH_REMATCH[1]}"
+ #echo "Content: ${BASH_REMATCH[2]}"
+ echo "${BASH_REMATCH[2]}" | xxd -r -p > "${ACPI_DIR}/${BASH_REMATCH[1]}".aml
+ echo "AML code dumped to \"${ACPI_DIR}/${BASH_REMATCH[1]}.aml\""
+ type -p iasl &>/dev/null && iasl -d "${ACPI_DIR}/${BASH_REMATCH[1]}".aml \
+ && echo "DSL code decompiled to \"${ACPI_DIR}/${BASH_REMATCH[1]}.dsl\""
+ echo
+ fi
+done
+#if [[ $dumped -gt 0 ]]; then
+# zip -r ACPI.zip ACPI && echo "Zipped your ACPI tables in file \"ACPI.zip\""
+#fi
Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/extractAcpi.sh
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Chameleon.tiff
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Chameleon.tiff
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/chamsmall.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/chamsmall.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/version
===================================================================
--- branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/version (revision 0)
+++ branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/version (revision 1346)
@@ -0,0 +1 @@
+2.0-RC4
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/advanced.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/advanced.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Spanish.lproj/Chameleon.nib
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Spanish.lproj/Chameleon.nib
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Spanish.lproj/Chameleon.strings
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Spanish.lproj/Chameleon.strings
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Spanish.lproj/Localizable.strings
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/Spanish.lproj/Localizable.strings
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/flag.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/flag.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/README
===================================================================
--- branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/README (revision 0)
+++ branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/README (revision 1346)
@@ -0,0 +1,35 @@
+-----------------------------------
+Chameleon System Preferences panel
+by rekursor 1/17/2010
+-----------------------------------
+
+How to Install:
+ Double click on the panel file to install the resource
+
+Configuration:
+ The persistent configuration file is a all users level preferences property list
+ located in In /Library/Preferences/com.chameleon.prefPane.plist.
+
+ The swap disk fix option might be use if your disk order from chameleon is different
+ from what diskutil list returns.
+ Ideally we should not need this fix, but as for now, I don't know another way to do it
+
+ In /Library/Preferences/com.chameleon.prefPane.plist:
+ you can insert a 'forceBootConfigPath' key with your com.apple.Boot,plist file path:
+ So if automatic detection does not work, then force your com.apple.Boot.plist path here.
+
+ Freeze Partitions (lock the partition list and prevent autodetection to happen)
+ You can also decide to freeze the partitions to prevent automatic detection,
+ if disk order is not matching after the boot or if you don't want the list to change
+ each time that a usb key is inserted, then use this feature.
+ For it to work, you will need first to click on:
+ Settings/Boot Selector Fixes/Inject Parts In Freeze File
+ Then all your automatically detected current partitions are injected in the pref. file,
+ all you need to do is to manually edit them to change their disk id/partition id
+ (2 first parameters in the pref. file under the partitionList key)
+
+Troubleshooting
+ If the panel sees your com.apple.boot.plist in the status box, but the boot selection
+ seem to have no effect, it might be that you have more than one bootConfig file
+ and that the chameleon booter does not load the one that the panel selected,
+ see upper to force the bootConfig to match the one loaded by the chameleon booter.
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/background.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/background.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/name.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/name.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/TODO
===================================================================
--- branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/TODO (revision 0)
+++ branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/TODO (revision 1346)
@@ -0,0 +1,10 @@
+Future version (codename: Gandalf) Plans
+----------------------------------------
+Implement most if not all of the Chameleon bootConfig parameters in the table view of the current prefpane : let the Magic happening !
+
+Current versions todo list
+--------------------------
+ - Add WebView in About Panel for nicer Kredits.
+ - Don't filter out soft-raids, which only have a disk identifier & no partition number
+ - Try to investigate if there is a better way to get the partition list
+ (currently done with diskutil list) probably with Chameleon booter RC6.
Index: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/disk.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Configuration/PrefPanel/Chameleon.prefPane/Contents/Resources/disk.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Scripts/Standard/postinstall
===================================================================
--- branches/ErmaC/package/Scripts/Standard/postinstall (revision 0)
+++ branches/ErmaC/package/Scripts/Standard/postinstall (revision 1346)
@@ -0,0 +1,364 @@
+#!/bin/bash
+
+
+diskloader="boot0"
+diskloaderdualboot="boot0md"
+partitionloaderhfs="boot1h"
+partitionloaderfat="boot1f32"
+filesystemloader="boot"
+
+diskmicrocodetype[1]="GRUB,47525542"
+diskmicrocodetype[2]="LILO,4c494c4f"
+
+start ()
+{
+# $1 volume
+
+bootvolume="${@}"
+echo "Volume is $bootvolume"
+bootresources="${0%/*}"
+echo "$bootresources"
+
+if [ -z "${bootvolume}" ]; then
+ echo
+ echo "Cannot find the volume. Exiting."
+ echo
+ exit
+fi
+
+bootdev=$( df "${bootvolume}" | sed -n '2p' | awk '{print $1}' )
+bootrdev=${bootdev/disk/rdisk}
+
+if [ "${bootdev}" = "${bootdev#*disk*s}" ]; then
+ echo
+ echo "ERROR Volume does not use slices."
+ echo
+ exit
+fi
+
+bootdisk=${bootdev%s*}
+bootrdisk=${bootdisk/disk/rdisk}
+bootslice=${bootdev#*disk*s}
+
+echo "==============================================="
+echo "Installer Variables:"
+echo "********************"
+echo "bootvolume: Volume is ${bootvolume}"
+echo "bootdev: Volume device is ${bootdev}"
+echo "bootrdev: Volume raw device is ${bootrdev}"
+echo "bootslice: Volume slice is ${bootslice}"
+echo "bootdisk: Disk device is ${bootdisk}"
+echo "bootrdisk: Disk raw device is ${bootrdisk}"
+echo "diskloader: Disk loader is ${diskloader}"
+echo "partitionloaderhfs: Partition loader is ${partitionloaderhfs}"
+echo "partitionloaderfat: Partition loader is ${partitionloaderfat}"
+echo "filesystemloader: Filesystem loader is ${filesystemloader}"
+echo "bootresources: Boot Resources is ${bootresources}"
+echo "-----------------------------------------------"
+echo ""
+echo ""
+}
+
+checkdiskmicrocodetype ()
+{
+echo "==============================================="
+echo "Diskmicrocodetype:"
+echo "******************"
+
+diskmicrocode=$( dd 2>/dev/null if=${bootdisk} count=1 | dd 2>/dev/null count=1 bs=437 | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+diskmicrocodetypecounter=0
+while [ ${diskmicrocodetypecounter} -lt ${#diskmicrocodetype[@]} ]; do
+ diskmicrocodetypecounter=$(( ${diskmicrocodetypecounter} + 1 ))
+ diskmicrocodetypeid=${diskmicrocodetype[${diskmicrocodetypecounter}]#*,}
+ if [ ! "${diskmicrocode}" = "${diskmicrocode/${diskmicrocodetypeid}/}" ]; then
+ echo "${diskmicrocodetype[${diskmicrocodetypecounter}]%,*} found."
+ else
+ echo "Didn't find a match for ${diskmicrocodetype[${diskmicrocodetypecounter}]%,*}"
+ fi
+done
+echo "-----------------------------------------------"
+echo ""
+echo ""
+}
+
+
+
+checkdiskmicrocode ()
+{
+echo "==============================================="
+echo "Diskmicrocode:"
+echo "*************"
+
+# Note: The checks for Boot0 and Boot0hfs assume the code doesn't change!!
+
+# 1 action ( check or set )
+
+diskmicrocode=$( dd 2>/dev/null if=${bootdisk} count=1 | dd 2>/dev/null count=1 bs=437 | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+diskmicrocodemd5=$( dd 2>/dev/null if=${bootdisk} count=1 | dd 2>/dev/null count=1 bs=437 | md5 )
+
+#echo "${diskmicrocode}"
+
+if [ $( echo "${diskmicrocode}" | awk -F0 '{print NF-1}' ) = 874 ]; then
+ echo "Diskmicrocode = 874 (Which means the first 437 bytes of the MBR Disk Sector is blank)"
+ if [ "${1}" = "set" ]; then
+ echo "No disk microcode found. Updating."
+ diskupdate=true
+ echo "diskupdate is now set to true."
+ else
+ echo "No disk microcode found."
+ fi
+else
+ # There is already something on the MBR
+ if [ ${1} = set ]; then
+
+ # See if a Windows bootloader already exists
+ windowsloader=$( dd 2>/dev/null if=${bootdisk} count=4 bs=1 | xxd | awk '{print $2$3}' )
+ if [ "${windowsloader}" == "33c08ed0" ] ; then
+ echo "Found existing Windows Boot Loader"
+ echo "Will replace loader with Boot0hfs"
+ diskupdate=true
+ echo "diskupdate is now set to true."
+ fi
+
+ # See if a Chameleon stage0 boot file already exists
+ stage0type=$( dd 2>/dev/null if=${bootdisk} count=3 bs=1 skip=105 | xxd | awk '{print $2$3}' )
+ if [ "${stage0type}" == "0b807c" ] || [ "${stage0type}" == "0a803c" ] ; then
+
+ echo "Found existing Chameleon Stage 0 Loader"
+ # if found Boot0HFS without a Windows installation set diskupdate to true
+ if [ "${stage0type}" == "0b807c" ] && [ "${disksignature}" == "00000000" ]; then
+ echo "Found existing Chameleon Boot0HFS without a Windows installation"
+ echo "Will replace loader with Boot0"
+ diskupdate=true
+ echo "diskupdate is now set to true."
+ fi
+
+ # if found Boot0 with a Windows installation set diskupdate to true
+ if [ "${stage0type}" == "0a803c" ] && [ "${disksignature}" != "00000000" ]; then
+ echo "Found existing Chameleon Boot0 with a Windows installation"
+ echo "Will replace loader with Boot0hfs"
+ diskupdate=true
+ echo "diskupdate is now set to true."
+ fi
+ fi
+
+ # If neither a Windows or Chameleon Boot Loader exists
+ if [ "${stage0type}" != "0b807c" ] && [ "${stage0type}" != "0a803c" ] && [ "${windowsloader}" != "33c08ed0" ] ; then
+ test=$(echo "${diskmicrocode}" | awk -F0 '{print NF-1}' )
+ echo "Disk microcode found: ${test} - Preserving."
+ echo "diskupdate is left at false"
+ fi
+ else
+ test=$(echo "${diskmicrocode}" | awk -F0 '{print NF-1}' )
+ echo "Disk microcode found: ${test}"
+ fi
+ echo "Disk microcode MD5 is ${diskmicrocodemd5}"
+fi
+echo "-----------------------------------------------"
+echo ""
+echo ""
+}
+
+
+checkdisksignature ()
+{
+echo "==============================================="
+echo "Find Disk Signature:"
+echo "*************"
+
+disksignature=$( dd 2>/dev/null if=${bootdisk} count=1 | dd 2>/dev/null count=4 bs=1 skip=440 | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+
+echo "${disksignature}"
+
+if [ $disksignature = "00000000" ]; then
+ echo "Just Zero's found meaning Windows isn't installed."
+else
+ echo "Non Zero means we've found a Windows installation"
+fi
+echo "-----------------------------------------------"
+echo ""
+echo ""
+}
+
+
+
+checkpartitionbootcode ()
+{
+echo "==============================================="
+echo "Find Partition Bootcode:"
+echo "************************"
+
+# 1 action ( check or set )
+
+partitionbootcode=$( dd if=${bootrdev} count=1 2>/dev/null | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+partitionbootcodeextended=$( dd if=${bootrdev} count=1 skip=1 2>/dev/null | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+
+echo "${partitionbootcode}"
+
+if [ $( echo "${partitionbootcode}" | awk -F0 '{print NF-1}' ) = 1024 ]; then
+ echo "partitionbootcode = 1024 (Which means the whole 512 bytes of the MBR Disk Sector is blank)"
+ if [ "${1}" = "set" ]; then
+ echo "No partition bootcode found. Updating."
+ else
+ echo "No partition bootcode found."
+ fi
+else
+ if [ "${1}" = "set" ]; then
+ echo "Partition bootcode found. Overwriting."
+ else
+ echo "Partition bootcode found."
+ fi
+ if [ $( echo "${partitionbootcodeextended}" | awk -F0 '{print NF-1}' ) = 1024 ]; then
+ partitionbootcodemd5=$( dd 2>/dev/null if=${bootrdev} count=1 | md5 )
+ else
+ partitionbootcodemd5=$( dd 2>/dev/null if=${bootrdev} count=2 | md5 )
+ echo "Partition bootcode is dual sector."
+ fi
+ echo "Partition bootcode MD5 is ${partitionbootcodemd5}"
+fi
+
+echo "-----------------------------------------------"
+echo ""
+echo ""
+}
+
+
+start ${3}
+
+
+echo "==============================================="
+echo "Check the format of the selected partition"
+echo "*************************************"
+
+if [ "$( fstyp ${bootdev} | grep hfs )" ]; then
+ echo "${bootdev} is a currently formatted as HFS"
+ efiformat="hfs"
+fi
+if [ "$( fstyp ${bootdev} | grep msdos )" ]; then
+ echo "${bootdev} is currently formatted as msdos"
+ efiformat="msdos"
+fi
+echo "-----------------------------------------------"
+echo ""
+echo ""
+
+
+echo "==============================================="
+echo "Determine Partition Scheme:"
+echo "***************************"
+
+partitiontable=$( dd 2>/dev/null if=${bootdisk} count=1 skip=1 | dd 2>/dev/null count=8 bs=1 | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+if [ "${partitiontable:0:16}" == "4546492050415254" ]; then
+ partitiontable=$( dd 2>/dev/null if=${bootdisk} count=1 | dd 2>/dev/null count=64 bs=1 skip=446 | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+ if [ "${partitiontable:8:2}" == "ee" ]; then
+ echo "Found System ID 'EE' to identify GPT Partition"
+ if [ "${partitiontable:40:2}" == "00" ] && [ "${partitiontable:72:2}" == "00" ] && [ "${partitiontable:104:2}" == "00" ]; then
+ echo "Found System ID '00' for each remaining possible partition"
+ partitiontable="GPT"
+ else
+ partitiontable="GPT/MBR"
+ fi
+ fi
+else
+ partitiontable="MBR"
+fi
+
+echo "${partitiontable} found."
+echo "-----------------------------------------------"
+echo ""
+echo ""
+
+
+diskupdate=false
+
+
+checkdisksignature
+checkdiskmicrocodetype
+checkdiskmicrocode set
+checkpartitionbootcode set
+
+
+
+echo "==============================================="
+echo "Can we install the Chameleon bootloader files?"
+echo "**********************************************"
+
+if ${diskupdate}; then
+ echo "Diskupdate = true, so yes"
+ #---------------------------------------------------------------------
+ # Check bytes 438-446 of the GPTdiskProtectiveMBR for a Windows Disk Signature
+ # If thereÕs no Windows disk signature then we can write boot0
+ #---------------------------------------------------------------------
+
+ 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}
+ else
+ #---------------------------------------------------------------------
+ # If it exists then Windows is also installed on the HDD and we need to write boot0hfs
+ #---------------------------------------------------------------------
+ echo "Executing command: fdisk440 -u -f /usr/standalone/i386/${diskloaderdualboot} -y ${bootdisk}"
+ fdisk440 -u -f "${bootvolume}/usr/standalone/i386/${diskloaderdualboot}" -y ${bootdisk}
+ fi
+else
+echo "Diskupdate is false, so no stage 0 file was written"
+fi
+
+if [ ${efiformat} = "hfs" ]; then
+ echo "Executing command: dd if=/usr/standalone/i386/${partitionloaderhfs} of=${bootrdev}"
+ dd if="${bootvolume}/usr/standalone/i386/${partitionloaderhfs}" of=${bootrdev}
+fi
+
+if [ ${efiformat} = "msdos" ]; then
+ echo "Executing command: dd if=/usr/standalone/i386/${partitionloaderfat} of=${bootrdev}"
+ dd if="${bootvolume}/usr/standalone/i386/${partitionloaderfat}" of=${bootrdev}
+fi
+
+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 "-----------------------------------------------"
+echo ""
+echo ""
+
+
+echo "==============================================="
+echo "Set Active Partition ONLY if Windows is not installed"
+echo "*****************************************************"
+
+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}')
+ echo "Current Active Partition: ${partitionactive}"
+
+ if [ "${partitionactive}" = "${bootslice}" ]; then
+ echo "${bootvolume} is already flagged as active"
+ else
+ echo "${bootvolume} is not flagged as active, so let's do it."
+ # 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
+ print
+ flag ${bootslice}
+ write
+ y
+ quit
+ MAKEACTIVE
+ fi
+else
+ echo "Windows is installed so we let that remain the active partition"
+fi
+echo "-----------------------------------------------"
+echo ""
+echo ""
+
+# hide boot file
+chflags hidden "${3}/boot"
+echo "boot file hidden ${3}/boot"
+
+exit
Property changes on: branches/ErmaC/package/Scripts/Standard/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/Scripts/EFI/postinstall
===================================================================
--- branches/ErmaC/package/Scripts/EFI/postinstall (revision 0)
+++ branches/ErmaC/package/Scripts/EFI/postinstall (revision 1346)
@@ -0,0 +1,436 @@
+#!/bin/bash
+
+diskloader="boot0"
+partitionloaderhfs="boot1h"
+partitionloaderfat="boot1f32"
+filesystemloader="boot"
+bootervolumename="EFI"
+booterextensions="Extra/Extensions"
+
+bootresources="${0%/*}"
+
+diskmicrocodetype[1]="GRUB,47525542"
+diskmicrocodetype[2]="LILO,4c494c4f"
+
+start ()
+{
+# $1 volume
+
+osxvolume="${@}"
+
+if [ -z "${osxvolume}" ]; then
+ echo
+ echo "Cannot find the volume. Exiting."
+ exit
+fi
+
+bootdev=$( df "${osxvolume}" | sed -n '2p' | awk '{print $1}' )
+
+if [ "${bootdev}" = "${bootdev#*disk*s}" ]; then
+ echo
+ echo "ERROR Volume does not use slices."
+ echo "Volume may be stored on a RAID array."
+ echo
+ exit
+fi
+
+bootuuid=$( diskutil info "$bootdev" | grep Volume\ UUID | awk {'print $3'} )
+partitiontable=$( diskutil list ${bootdev%s*} | sed -n '3p' | awk '{print $2}' )
+
+if [ ${partitiontable} != "GUID_partition_scheme" ]; then
+ echo
+ echo "ERROR Volume is not on a GPT partitioned disc."
+ echo
+ exit
+fi
+
+echo "==============================================="
+echo "Partition Type Identified:"
+echo "**************************"
+echo "GPT found."
+echo "-----------------------------------------------"
+echo ""
+echo ""
+
+
+echo "==============================================="
+echo "Installer Variables Part 1:"
+echo "***************************"
+echo "OS X Volume is ${osxvolume}"
+echo "OX X Volume device is ${bootdev}"
+echo "OS X Volume UUID is ${bootuuid}"
+echo "-----------------------------------------------"
+echo ""
+echo ""
+
+
+bootvolume="/Volumes/$bootervolumename"
+bootdev=${bootdev%s*}s1
+bootrdev=${bootdev/disk/rdisk}
+bootdisk=${bootdev%s*}
+bootrdisk=${bootdisk/disk/rdisk}
+bootslice=${bootdev#*disk*s}
+
+echo "==============================================="
+echo "Installer Variables Part 2:"
+echo "***************************"
+echo "EFI Volume device is ${bootdev}"
+echo "EFI Volume raw device is ${bootrdev}"
+echo "EFI Volume slice is ${bootslice}"
+echo "Disk device is ${bootdisk}"
+echo "Disk raw device is ${bootrdisk}"
+echo "Disk loader normal is ${diskloader}"
+echo "Disk loader dual boot is also ${diskloader}"
+echo "Partition loader HFS is ${partitionloaderhfs}"
+echo "Partition loader FAT is ${partitionloaderfat}"
+echo "Filesystem loader is ${filesystemloader}"
+echo "-----------------------------------------------"
+echo ""
+echo ""
+
+
+checkdiskmicrocodetype ()
+{
+echo "==============================================="
+echo "Diskmicrocodetype:"
+echo "******************"
+
+diskmicrocode=$( dd 2>/dev/null if=${bootdisk} count=1 | dd 2>/dev/null count=1 bs=437 | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+
+diskmicrocodetypecounter=0
+while [ ${diskmicrocodetypecounter} -lt ${#diskmicrocodetype[@]} ]; do
+ diskmicrocodetypecounter=$(( ${diskmicrocodetypecounter} + 1 ))
+ diskmicrocodetypeid=${diskmicrocodetype[${diskmicrocodetypecounter}]#*,}
+ if [ ! "${diskmicrocode}" = "${diskmicrocode/${diskmicrocodetypeid}/}" ]; then
+ echo "${diskmicrocodetype[${diskmicrocodetypecounter}]%,*} found."
+ else
+ echo "Didn't find a match for ${diskmicrocodetype[${diskmicrocodetypecounter}]%,*}"
+ fi
+done
+echo "-----------------------------------------------"
+echo ""
+echo ""
+}
+
+
+checkdiskmicrocode ()
+{
+echo "==============================================="
+echo "Diskmicrocode:"
+echo "*************"
+
+# Note: The checks for Boot0 and Boot0hfs assume the code doesn't change!!
+
+# 1 action ( check or set )
+
+diskmicrocode=$( dd 2>/dev/null if=${bootdisk} count=1 | dd 2>/dev/null count=1 bs=437 | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+diskmicrocodemd5=$( dd 2>/dev/null if=${bootdisk} count=1 | dd 2>/dev/null count=1 bs=437 | md5 )
+
+if [ $( echo "${diskmicrocode}" | awk -F0 '{print NF-1}' ) = 874 ]; then
+ echo "Diskmicrocode = 874 (Which means the first 437 bytes of the MBR Disk Sector is blank)"
+ if [ "${1}" = "set" ]; then
+ echo "No disk microcode found. Updating."
+ diskupdate=true
+ echo "diskupdate is now set to true."
+ else
+ echo "No disk microcode found."
+ fi
+else
+ # There is already something on the MBR
+ if [ ${1} = set ]; then
+
+ # See if a Windows bootloader already exists
+ windowsloader=$( dd 2>/dev/null if=${bootdisk} count=4 bs=1 | xxd | awk '{print $2$3}' )
+ if [ "${windowsloader}" == "33c08ed0" ] ; then
+ echo "Found existing Windows Boot Loader"
+ echo "Will replace loader with Boot0hfs"
+ diskupdate=true
+ echo "diskupdate is now set to true."
+ fi
+
+ # See if a Chameleon stage0 boot file already exists
+ stage0type=$( dd 2>/dev/null if=${bootdisk} count=3 bs=1 skip=105 | xxd | awk '{print $2$3}' )
+ if [ "${stage0type}" == "0b807c" ] || [ "${stage0type}" == "0a803c" ] ; then
+
+ echo "Found existing Chameleon Stage 0 Loader"
+ # if found Boot0HFS without a Windows installation set diskupdate to true
+ if [ "${stage0type}" == "0b807c" ] && [ "${disksignature}" == "00000000" ]; then
+ echo "Found existing Chameleon Boot0HFS without a Windows installation"
+ echo "Will replace loader with Boot0"
+ diskupdate=true
+ echo "diskupdate is now set to true."
+ fi
+
+ # if found Boot0 with a Windows installation set diskupdate to true
+ if [ "${stage0type}" == "0a803c" ] && [ "${disksignature}" != "00000000" ]; then
+ echo "Found existing Chameleon Boot0 with a Windows installation"
+ echo "Will replace loader with Boot0hfs"
+ diskupdate=true
+ echo "diskupdate is now set to true."
+ fi
+ fi
+
+ # If neither a Windows or Chameleon Boot Loader exists
+ if [ "${stage0type}" != "0b807c" ] && [ "${stage0type}" != "0a803c" ] && [ "${windowsloader}" != "33c08ed0" ] ; then
+ test=$(echo "${diskmicrocode}" | awk -F0 '{print NF-1}' )
+ echo "Disk microcode found: ${test} - Preserving."
+ echo "diskupdate is left at false"
+ fi
+ else
+ test=$(echo "${diskmicrocode}" | awk -F0 '{print NF-1}' )
+ echo "Disk microcode found: ${test}"
+ fi
+fi
+echo "-----------------------------------------------"
+echo ""
+echo ""
+}
+
+
+checkdisksignature ()
+{
+echo "==============================================="
+echo "Find Disk Signature:"
+echo "*************"
+disksignature=$( dd 2>/dev/null if=${bootdisk} count=1 | dd 2>/dev/null count=4 bs=1 skip=440 | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+
+echo "${disksignature}"
+
+if [ $disksignature = "00000000" ]; then
+ echo "Just Zero's found meaning Windows isn't installed."
+else
+ echo "Non Zero means we've found a Windows installation"
+fi
+echo "-----------------------------------------------"
+echo ""
+echo ""
+}
+
+
+checkpartitionbootcode ()
+{
+echo "==============================================="
+echo "Find Partition Bootcode:"
+echo "************************"
+
+# 1 action ( check or set )
+
+partitionbootcode=$( dd if=${bootrdev} count=1 2>/dev/null | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+partitionbootcodeextended=$( dd if=${bootrdev} count=1 skip=1 2>/dev/null | perl -ne '@a=split"";for(@a){printf"%02x",ord}' )
+
+if [ $( echo "${partitionbootcode}" | awk -F0 '{print NF-1}' ) = 1024 ]; then
+ echo "partitionbootcode = 1024 (Which means the whole 512 bytes of the MBR Disk Sector is blank)"
+ if [ "${1}" = "set" ]; then
+ echo "No partition bootcode found. Updating."
+ else
+ echo "No partition bootcode found."
+ fi
+else
+ if [ "${1}" = "set" ]; then
+ echo "Partition bootcode found. Overwriting."
+ else
+ echo "Partition bootcode found."
+ fi
+ if [ $( echo "${partitionbootcodeextended}" | awk -F0 '{print NF-1}' ) = 1024 ]; then
+ partitionbootcodemd5=$( dd 2>/dev/null if=${bootrdev} count=1 | md5 )
+ else
+ partitionbootcodemd5=$( dd 2>/dev/null if=${bootrdev} count=2 | md5 )
+ echo "Partition bootcode is dual sector."
+ fi
+ echo "Partition bootcode MD5 is ${partitionbootcodemd5}"
+fi
+echo "-----------------------------------------------"
+echo ""
+echo ""
+}
+
+
+}
+
+
+start ${3}
+
+
+echo "==============================================="
+echo "Unmount all EFI partitions and Check their format"
+echo "*************************************"
+
+# loop through and un-mount all mounted EFI partitions - Thanks kizwan
+attempts=1
+while [ "$( df | grep EFI )" ] && [ "${attempts}" -lt 5 ]; do
+ echo "Unmounting $( df | grep EFI | awk '{print $1}' )"
+ umount -f $( df | grep EFI | awk '{print $1}' )
+ attempts=$(( ${attempts} + 1 ))
+done
+if [ ${attempts} = 5 ]; then
+ echo "failed to unmount EFI partitions."
+ exit
+fi
+
+if [ "$( fstyp ${bootdev} | grep hfs )" ]; then
+ echo "${bootdev} is a currently formatted as HFS"
+ efiformat="hfs"
+fi
+if [ "$( fstyp ${bootdev} | grep msdos )" ]; then
+ echo "${bootdev} is currently formatted as msdos"
+ efiformat="msdos"
+fi
+echo "-----------------------------------------------"
+echo ""
+echo ""
+
+
+diskupdate=false
+
+
+checkdisksignature
+checkdiskmicrocodetype
+checkdiskmicrocode set
+checkpartitionbootcode set
+#checkpartitionactive
+
+
+echo "==============================================="
+echo "Can we install the Chameleon bootloader files?:"
+echo "**********************************************"
+
+if ${diskupdate}; then
+ echo "Diskupdate = true, so yes"
+ #---------------------------------------------------------------------
+ # Check bytes 438-446 of the GPTdiskProtectiveMBR for a Windows Disk Signature
+ # If thereÕs no Windows disk signature then we can write boot0
+ #---------------------------------------------------------------------
+
+ if [ ${disksignature} == "00000000" ]; then
+ echo "Executing command: fdisk -u -f ${diskloader} -y ${bootdisk}"
+ fdisk -u -f "${osxvolume}/${diskloader}" -y ${bootdisk}
+ else
+ #---------------------------------------------------------------------
+ # If it exists then Windows is also installed on the HDD and we need to write boot0hfs
+ #---------------------------------------------------------------------
+
+ echo "Executing command: fdisk -u -f ${diskloader} -y ${bootdisk}"
+ fdisk -u -f "${osxvolume}/${diskloader}" -y ${bootdisk}
+ fi
+else
+ echo "Diskupdate is false, so no stage 0 file was written"
+fi
+
+
+#echo "Executing command: dd if=${partitionloader} of=${bootrdev}"
+#dd if="${osxvolume}/${partitionloader}" of=${bootrdev}
+
+echo "Prepare Stage 1 loader"
+
+echo "Executing command: dd if=${bootrdev} count=1 bs=512 of=/tmp/origbs"
+dd if=${bootrdev} count=1 bs=512 of=/tmp/origbs
+
+if [ ${efiformat} = "hfs" ]; then
+ echo "Executing command: cp ${osxvolume}/${partitionloaderhfs} /tmp/newbs"
+ cp "${osxvolume}/${partitionloaderhfs}" /tmp/newbs
+fi
+
+if [ ${efiformat} = "msdos" ]; then
+ echo "Executing command: cp ${osxvolume}/${partitionloaderfat} /tmp/newbs"
+ cp "${osxvolume}/${partitionloaderfat}" /tmp/newbs
+fi
+
+echo "Executing command: dd if=/tmp/origbs of=/tmp/newbs skip=3 seek=3 bs=1 count=87 conv=notrunc"
+dd if=/tmp/origbs of=/tmp/newbs skip=3 seek=3 bs=1 count=87 conv=notrunc
+
+echo "Write Stage 1 loader"
+
+echo "Executing command: dd of=${bootrdev} count=1 bs=512 if=/tmp/newbs"
+dd if=/tmp/newbs of=${bootrdev} count=1 bs=512
+
+echo "-----------------------------------------------"
+echo ""
+echo ""
+
+
+echo "==============================================="
+echo "Set Active Partition ONLY if Windows is not installed:"
+echo "*****************************************************"
+
+# If table is MBR make the correct slice active. If table is GPT make the first partition active (BadAxe compatibility).
+#[ "${partitiontable}" = "GUID_partition_scheme" ] && bootslice=1
+#if [[ "${partitiontable}" = "FDisk_partition_scheme" || "${partitiontable}" = "GUID_partition_scheme" ]]; then
+# fdisk -e ${bootdisk} <<-MAKEACTIVE
+# print
+# flag ${bootslice}
+# write
+# y
+# quit
+# MAKEACTIVE
+#fi
+
+if [ ${disksignature} == "00000000" ]; then
+ # echo "Windows is not installed so let's change the active partition"
+
+ partitionactive=$( fdisk -d ${bootrdisk} | grep -n "*" | awk -F: '{print $1}')
+ echo "Current Active Partition: ${partitionactive}"
+
+ if [ "${partitionactive}" = "${bootslice}" ]; then
+ echo "${bootvolume} is already flagged as active"
+ else
+ echo "${bootvolume} is not flagged as active, so let's do it."
+ # BadAxe requires EFI partition to be flagged active.
+ # but it doesn't' hurt to do it for any non-windows partition.
+
+ fdisk -e ${bootrdisk} <<-MAKEACTIVE
+ print
+ flag ${bootslice}
+ write
+ y
+ quit
+ MAKEACTIVE
+ fi
+else
+ echo "Windows is installed so we let that remain the active partition"
+fi
+echo "-----------------------------------------------"
+echo ""
+echo ""
+
+
+#checkdiskmicrocode check
+#checkdisksignature
+#checkpartitionbootcode check
+#checkpartitionactive
+
+
+echo "==============================================="
+echo "Mount EFI partition:"
+echo "********************"
+if [ ${efiformat} = "hfs" ]; then
+ [ -d "${bootvolume}" ] || mkdir -p "${bootvolume}"
+ echo "Executing command: mount_hfs -u 0 -g 0 ${bootdev} ${bootvolume}"
+ mount_hfs -u 0 -g 0 "${bootdev}" "${bootvolume}"
+else
+ [ -d "${bootvolume}" ] || mkdir -p "${bootvolume}"
+ echo "Executing command: mount_msdos -u 0 -g 0 ${bootdev} ${bootvolume}"
+ mount_msdos -u 0 -g 0 "${bootdev}" "${bootvolume}"
+fi
+echo "-----------------------------------------------"
+echo ""
+echo ""
+
+
+echo "==============================================="
+echo "Write Stage 2 loader"
+echo "********************"
+
+echo "Executing command: cp ${osxvolume}${filesystemloader} ${bootvolume}/boot"
+cp "${osxvolume}${filesystemloader}" "${bootvolume}/boot"
+echo "boot written"
+
+echo "-----------------------------------------------"
+echo ""
+echo ""
+
+# setup link for extras
+#echo "Executing command: ln -s /Volumes/${bootervolumename} ${2}/.Chameleon"
+#ln -s "/Volumes/${bootervolumename}" "${2}/.Chameleon"
+# setup link for extras
+
+exit
Property changes on: branches/ErmaC/package/Scripts/EFI/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/Scripts/Advanced/ForceHPET/postinstall
===================================================================
--- branches/ErmaC/package/Scripts/Advanced/ForceHPET/postinstall (revision 0)
+++ branches/ErmaC/package/Scripts/Advanced/ForceHPET/postinstall (revision 1346)
@@ -0,0 +1,30 @@
+#!/usr/bin/python
+# Script to add ForceHPET for Chameleon boot loaders
+
+import sys
+import os
+
+vol = str(sys.argv[3])
+boot = "/Extra/org.chameleon.Boot.plist"
+plist = vol + boot
+infile = open(plist, "r")
+# check if ForceHPET has been written or not
+ForceHPETCheck = False
+
+body = ""
+
+for line in infile:
+ # if we finish the tags and haven't written ForceHPET Yet
+ if "" in line and ForceHPETCheck == False:
+ line = " ForceHPET\n"
+ line += " Yes\n"
+ line += "\n"
+ ForceHPETCheck = True
+
+ body += line
+
+infile.close()
+
+outfile = open(plist, "w")
+outfile.write(body)
+outfile.close()
Property changes on: branches/ErmaC/package/Scripts/Advanced/ForceHPET/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/Scripts/Advanced/EHCIacquire/postinstall
===================================================================
--- branches/ErmaC/package/Scripts/Advanced/EHCIacquire/postinstall (revision 0)
+++ branches/ErmaC/package/Scripts/Advanced/EHCIacquire/postinstall (revision 1346)
@@ -0,0 +1,30 @@
+#!/usr/bin/python
+# Script to add EHCIacquire for Chameleon boot loaders
+
+import sys
+import os
+
+vol = str(sys.argv[3])
+boot = "/Extra/org.chameleon.Boot.plist"
+plist = vol + boot
+infile = open(plist, "r")
+# check if EHCIacquire has been written or not
+EHCIacquireCheck = False
+
+body = ""
+
+for line in infile:
+ # if we finish the tags and haven't written EHCIacquire Yet
+ if "" in line and EHCIacquireCheck == False:
+ line = " EHCIacquire\n"
+ line += " Yes\n"
+ line += "\n"
+ EHCIacquireCheck = True
+
+ body += line
+
+infile.close()
+
+outfile = open(plist, "w")
+outfile.write(body)
+outfile.close()
Property changes on: branches/ErmaC/package/Scripts/Advanced/EHCIacquire/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/Scripts/Advanced/VBIOS/postinstall
===================================================================
--- branches/ErmaC/package/Scripts/Advanced/VBIOS/postinstall (revision 0)
+++ branches/ErmaC/package/Scripts/Advanced/VBIOS/postinstall (revision 1346)
@@ -0,0 +1,30 @@
+#!/usr/bin/python
+# Script to add VBIOS for Chameleon boot loaders
+
+import sys
+import os
+
+vol = str(sys.argv[3])
+boot = "/Extra/org.chameleon.Boot.plist"
+plist = vol + boot
+infile = open(plist, "r")
+# check if VBIOS has been written or not
+VBIOSCheck = False
+
+body = ""
+
+for line in infile:
+ # if we finish the tags and haven't written VBIOS Yet
+ if "" in line and VBIOSCheck == False:
+ line = " VBIOS\n"
+ line += " Yes\n"
+ line += "\n"
+ VBIOSCheck = True
+
+ body += line
+
+infile.close()
+
+outfile = open(plist, "w")
+outfile.write(body)
+outfile.close()
Property changes on: branches/ErmaC/package/Scripts/Advanced/VBIOS/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/Scripts/Advanced/GUI/postinstall
===================================================================
--- branches/ErmaC/package/Scripts/Advanced/GUI/postinstall (revision 0)
+++ branches/ErmaC/package/Scripts/Advanced/GUI/postinstall (revision 1346)
@@ -0,0 +1,30 @@
+#!/usr/bin/python
+# Script to add GUI for Chameleon boot loaders
+
+import sys
+import os
+
+vol = str(sys.argv[3])
+boot = "/Extra/org.chameleon.Boot.plist"
+plist = vol + boot
+infile = open(plist, "r")
+# check if GUI has been written or not
+GUICheck = False
+
+body = ""
+
+for line in infile:
+ # if we finish the tags and haven't written GUI Yet
+ if "" in line and GUICheck == False:
+ line = " GUI\n"
+ line += " No\n"
+ line += "\n"
+ GUICheck = True
+
+ body += line
+
+infile.close()
+
+outfile = open(plist, "w")
+outfile.write(body)
+outfile.close()
\ No newline at end of file
Property changes on: branches/ErmaC/package/Scripts/Advanced/GUI/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/Scripts/Advanced/SMBIOSdefaults/postinstall
===================================================================
--- branches/ErmaC/package/Scripts/Advanced/SMBIOSdefaults/postinstall (revision 0)
+++ branches/ErmaC/package/Scripts/Advanced/SMBIOSdefaults/postinstall (revision 1346)
@@ -0,0 +1,30 @@
+#!/usr/bin/python
+# Script to add SMBIOSdefault for Chameleon boot loaders
+
+import sys
+import os
+
+vol = str(sys.argv[3])
+boot = "/Extra/org.chameleon.Boot.plist"
+plist = vol + boot
+infile = open(plist, "r")
+# check if SMBIOSdefault has been written or not
+SMBIOSdefaultCheck = False
+
+body = ""
+
+for line in infile:
+ # if we finish the tags and haven't written SMBIOSdefault Yet
+ if "" in line and SMBIOSdefaultCheck == False:
+ line = " SMBIOSdefault\n"
+ line += " Yes\n"
+ line += "\n"
+ SMBIOSdefaultCheck = True
+
+ body += line
+
+infile.close()
+
+outfile = open(plist, "w")
+outfile.write(body)
+outfile.close()
Property changes on: branches/ErmaC/package/Scripts/Advanced/SMBIOSdefaults/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/Scripts/Advanced/UseMemDetect/postinstall
===================================================================
--- branches/ErmaC/package/Scripts/Advanced/UseMemDetect/postinstall (revision 0)
+++ branches/ErmaC/package/Scripts/Advanced/UseMemDetect/postinstall (revision 1346)
@@ -0,0 +1,30 @@
+#!/usr/bin/python
+# Script to add UseMemDetect for Chameleon boot loaders
+
+import sys
+import os
+
+vol = str(sys.argv[3])
+boot = "/Extra/org.chameleon.Boot.plist"
+plist = vol + boot
+infile = open(plist, "r")
+# check if UseMemDetect has been written or not
+UseMemDetectCheck = False
+
+body = ""
+
+for line in infile:
+ # if we finish the tags and haven't written UseMemDetect Yet
+ if "" in line and UseMemDetectCheck == False:
+ line = " UseMemDetect\n"
+ line += " No\n"
+ line += "\n"
+ UseMemDetectCheck = True
+
+ body += line
+
+infile.close()
+
+outfile = open(plist, "w")
+outfile.write(body)
+outfile.close()
Property changes on: branches/ErmaC/package/Scripts/Advanced/UseMemDetect/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/Scripts/Advanced/LegacyLogo/postinstall
===================================================================
--- branches/ErmaC/package/Scripts/Advanced/LegacyLogo/postinstall (revision 0)
+++ branches/ErmaC/package/Scripts/Advanced/LegacyLogo/postinstall (revision 1346)
@@ -0,0 +1,30 @@
+#!/usr/bin/python
+# Script to add LegacyLogo for Chameleon boot loaders
+
+import sys
+import os
+
+vol = str(sys.argv[3])
+boot = "/Extra/org.chameleon.Boot.plist"
+plist = vol + boot
+infile = open(plist, "r")
+# check if LegacyLogo has been written or not
+LegacyLogoCheck = False
+
+body = ""
+
+for line in infile:
+ # if we finish the tags and haven't written LegacyLogo Yet
+ if "" in line and LegacyLogoCheck == False:
+ line = " LegacyLogo\n"
+ line += " Yes\n"
+ line += "\n"
+ LegacyLogoCheck = True
+
+ body += line
+
+infile.close()
+
+outfile = open(plist, "w")
+outfile.write(body)
+outfile.close()
Property changes on: branches/ErmaC/package/Scripts/Advanced/LegacyLogo/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/Scripts/Advanced/Wake/postinstall
===================================================================
--- branches/ErmaC/package/Scripts/Advanced/Wake/postinstall (revision 0)
+++ branches/ErmaC/package/Scripts/Advanced/Wake/postinstall (revision 1346)
@@ -0,0 +1,30 @@
+#!/usr/bin/python
+# Script to add Wake for Chameleon boot loaders
+
+import sys
+import os
+
+vol = str(sys.argv[3])
+boot = "/Extra/org.chameleon.Boot.plist"
+plist = vol + boot
+infile = open(plist, "r")
+# check if Wake has been written or not
+WakeCheck = False
+
+body = ""
+
+for line in infile:
+ # if we finish the tags and haven't written Wake Yet
+ if "" in line and WakeCheck == False:
+ line = " Wake\n"
+ line += " Yes\n"
+ line += "\n"
+ WakeCheck = True
+
+ body += line
+
+infile.close()
+
+outfile = open(plist, "w")
+outfile.write(body)
+outfile.close()
Property changes on: branches/ErmaC/package/Scripts/Advanced/Wake/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/Scripts/Advanced/BootBanner/postinstall
===================================================================
--- branches/ErmaC/package/Scripts/Advanced/BootBanner/postinstall (revision 0)
+++ branches/ErmaC/package/Scripts/Advanced/BootBanner/postinstall (revision 1346)
@@ -0,0 +1,30 @@
+#!/usr/bin/python
+# Script to add BootBanner for Chameleon boot loaders
+
+import sys
+import os
+
+vol = str(sys.argv[3])
+boot = "/Extra/org.chameleon.Boot.plist"
+plist = vol + boot
+infile = open(plist, "r")
+# check if BootBanner has been written or not
+BootBannerCheck = False
+
+body = ""
+
+for line in infile:
+ # if we finish the tags and haven't written BootBanner Yet
+ if "" in line and BootBannerCheck == False:
+ line = " BootBanner\n"
+ line += " No\n"
+ line += "\n"
+ BootBannerCheck = True
+
+ body += line
+
+infile.close()
+
+outfile = open(plist, "w")
+outfile.write(body)
+outfile.close()
Property changes on: branches/ErmaC/package/Scripts/Advanced/BootBanner/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/Scripts/Advanced/UHCIreset/postinstall
===================================================================
--- branches/ErmaC/package/Scripts/Advanced/UHCIreset/postinstall (revision 0)
+++ branches/ErmaC/package/Scripts/Advanced/UHCIreset/postinstall (revision 1346)
@@ -0,0 +1,30 @@
+#!/usr/bin/python
+# Script to add UHCIreset for Chameleon boot loaders
+
+import sys
+import os
+
+vol = str(sys.argv[3])
+boot = "/Extra/org.chameleon.Boot.plist"
+plist = vol + boot
+infile = open(plist, "r")
+# check if UHCIreset has been written or not
+UHCIresetCheck = False
+
+body = ""
+
+for line in infile:
+ # if we finish the tags and haven't written UHCIreset Yet
+ if "" in line and UHCIresetCheck == False:
+ line = " UHCIreset\n"
+ line += " Yes\n"
+ line += "\n"
+ UHCIresetCheck = True
+
+ body += line
+
+infile.close()
+
+outfile = open(plist, "w")
+outfile.write(body)
+outfile.close()
Property changes on: branches/ErmaC/package/Scripts/Advanced/UHCIreset/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/Scripts/Advanced/ShowInfo/postinstall
===================================================================
--- branches/ErmaC/package/Scripts/Advanced/ShowInfo/postinstall (revision 0)
+++ branches/ErmaC/package/Scripts/Advanced/ShowInfo/postinstall (revision 1346)
@@ -0,0 +1,30 @@
+#!/usr/bin/python
+# Script to add ShowInfo for Chameleon boot loaders
+
+import sys
+import os
+
+vol = str(sys.argv[3])
+boot = "/Extra/org.chameleon.Boot.plist"
+plist = vol + boot
+infile = open(plist, "r")
+# check if ShowInfo has been written or not
+ShowInfoCheck = False
+
+body = ""
+
+for line in infile:
+ # if we finish the tags and haven't written ShowInfo Yet
+ if "" in line and ShowInfoCheck == False:
+ line = " ShowInfo\n"
+ line += " No\n"
+ line += "\n"
+ ShowInfoCheck = True
+
+ body += line
+
+infile.close()
+
+outfile = open(plist, "w")
+outfile.write(body)
+outfile.close()
\ No newline at end of file
Property changes on: branches/ErmaC/package/Scripts/Advanced/ShowInfo/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/Scripts/Advanced/Wait/postinstall
===================================================================
--- branches/ErmaC/package/Scripts/Advanced/Wait/postinstall (revision 0)
+++ branches/ErmaC/package/Scripts/Advanced/Wait/postinstall (revision 1346)
@@ -0,0 +1,30 @@
+#!/usr/bin/python
+# Script to add Wait for Chameleon boot loaders
+
+import sys
+import os
+
+vol = str(sys.argv[3])
+boot = "/Extra/org.chameleon.Boot.plist"
+plist = vol + boot
+infile = open(plist, "r")
+# check if Wait has been written or not
+WaitCheck = False
+
+body = ""
+
+for line in infile:
+ # if we finish the tags and haven't written Wait Yet
+ if "" in line and WaitCheck == False:
+ line = " Wait\n"
+ line += " Yes\n"
+ line += "\n"
+ WaitCheck = True
+
+ body += line
+
+infile.close()
+
+outfile = open(plist, "w")
+outfile.write(body)
+outfile.close()
Property changes on: branches/ErmaC/package/Scripts/Advanced/Wait/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/Scripts/Advanced/UseNvidiaROM/postinstall
===================================================================
--- branches/ErmaC/package/Scripts/Advanced/UseNvidiaROM/postinstall (revision 0)
+++ branches/ErmaC/package/Scripts/Advanced/UseNvidiaROM/postinstall (revision 1346)
@@ -0,0 +1,30 @@
+#!/usr/bin/python
+# Script to add UseNvidiaROM for Chameleon boot loaders
+
+import sys
+import os
+
+vol = str(sys.argv[3])
+boot = "/Extra/org.chameleon.Boot.plist"
+plist = vol + boot
+infile = open(plist, "r")
+# check if UseNvidiaROM has been written or not
+UseNvidiaROMCheck = False
+
+body = ""
+
+for line in infile:
+ # if we finish the tags and haven't written UseNvidiaROM Yet
+ if "" in line and UseNvidiaROMCheck == False:
+ line = " UseNvidiaROM\n"
+ line += " Yes\n"
+ line += "\n"
+ UseNvidiaROMCheck = True
+
+ body += line
+
+infile.close()
+
+outfile = open(plist, "w")
+outfile.write(body)
+outfile.close()
Property changes on: branches/ErmaC/package/Scripts/Advanced/UseNvidiaROM/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/Scripts/Advanced/ForceWake/postinstall
===================================================================
--- branches/ErmaC/package/Scripts/Advanced/ForceWake/postinstall (revision 0)
+++ branches/ErmaC/package/Scripts/Advanced/ForceWake/postinstall (revision 1346)
@@ -0,0 +1,30 @@
+#!/usr/bin/python
+# Script to add ForceWake for Chameleon boot loaders
+
+import sys
+import os
+
+vol = str(sys.argv[3])
+boot = "/Extra/org.chameleon.Boot.plist"
+plist = vol + boot
+infile = open(plist, "r")
+# check if ForceWake has been written or not
+ForceWakeCheck = False
+
+body = ""
+
+for line in infile:
+ # if we finish the tags and haven't written ForceWake Yet
+ if "" in line and ForceWakeCheck == False:
+ line = " ForceWake\n"
+ line += " Yes\n"
+ line += "\n"
+ ForceWakeCheck = True
+
+ body += line
+
+infile.close()
+
+outfile = open(plist, "w")
+outfile.write(body)
+outfile.close()
Property changes on: branches/ErmaC/package/Scripts/Advanced/ForceWake/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/Scripts/Advanced/UseAtiROM/postinstall
===================================================================
--- branches/ErmaC/package/Scripts/Advanced/UseAtiROM/postinstall (revision 0)
+++ branches/ErmaC/package/Scripts/Advanced/UseAtiROM/postinstall (revision 1346)
@@ -0,0 +1,30 @@
+#!/usr/bin/python
+# Script to add UseAtiROM for Chameleon boot loaders
+
+import sys
+import os
+
+vol = str(sys.argv[3])
+boot = "/Extra/org.chameleon.Boot.plist"
+plist = vol + boot
+infile = open(plist, "r")
+# check if UseAtiROM has been written or not
+UseAtiROMCheck = False
+
+body = ""
+
+for line in infile:
+ # if we finish the tags and haven't written UseAtiROM Yet
+ if "" in line and UseAtiROMCheck == False:
+ line = " UseAtiROM\n"
+ line += " Yes\n"
+ line += "\n"
+ UseAtiROMCheck = True
+
+ body += line
+
+infile.close()
+
+outfile = open(plist, "w")
+outfile.write(body)
+outfile.close()
Property changes on: branches/ErmaC/package/Scripts/Advanced/UseAtiROM/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/Scripts/Advanced/QuietBoot/postinstall
===================================================================
--- branches/ErmaC/package/Scripts/Advanced/QuietBoot/postinstall (revision 0)
+++ branches/ErmaC/package/Scripts/Advanced/QuietBoot/postinstall (revision 1346)
@@ -0,0 +1,30 @@
+#!/usr/bin/python
+# Script to add QuietBoot for Chameleon boot loaders
+
+import sys
+import os
+
+vol = str(sys.argv[3])
+boot = "/Extra/org.chameleon.Boot.plist"
+plist = vol + boot
+infile = open(plist, "r")
+# check if QuietBoot has been written or not
+QuietBootCheck = False
+
+body = ""
+
+for line in infile:
+ # if we finish the tags and haven't written QuietBoot Yet
+ if "" in line and QuietBootCheck == False:
+ line = " QuietBoot\n"
+ line += " Yes\n"
+ line += "\n"
+ QuietBootCheck = True
+
+ body += line
+
+infile.close()
+
+outfile = open(plist, "w")
+outfile.write(body)
+outfile.close()
Property changes on: branches/ErmaC/package/Scripts/Advanced/QuietBoot/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/Scripts/Post/postinstall
===================================================================
--- branches/ErmaC/package/Scripts/Post/postinstall (revision 0)
+++ branches/ErmaC/package/Scripts/Post/postinstall (revision 1346)
@@ -0,0 +1,40 @@
+#!/bin/sh
+#
+# $1: the full path to the installation package; for example:
+# /Volumes/Projects/Testing/Simple_Carbon_App.pkg
+#
+# $2: the full path to the installation destination; for example:
+# /Applications
+#
+# $3: the mountpoint of the destination volume; for example:
+# / or /Volumes/External_Drive
+#
+# $4: the root directory for the current System folder:
+# /
+
+echo "preinstall: Path to installer....... $1"
+echo "preinstall: Path to destination..... $2"
+echo "preinstall: Path to dest volume..... $3"
+echo "preinstall: Root of system folder... $4"
+
+set -x
+
+if [ ! -e "$3" ]
+then
+ echo "destination volume does not exist!"
+ exit 1
+fi
+
+# clean up what would otherwise turn into "//" paths
+if [ "$3" == "/" ]
+then
+ dest_vol=""
+else
+ dest_vol="$3"
+fi
+
+# delee the temporary Chameleon folder
+
+rm -rf "$dest_vol/tmpcham"
+
+echo "Done..."
\ No newline at end of file
Property changes on: branches/ErmaC/package/Scripts/Post/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/Scripts/BaseOptions/GenerateCStates/postinstall
===================================================================
--- branches/ErmaC/package/Scripts/BaseOptions/GenerateCStates/postinstall (revision 0)
+++ branches/ErmaC/package/Scripts/BaseOptions/GenerateCStates/postinstall (revision 1346)
@@ -0,0 +1,30 @@
+#!/usr/bin/python
+# Script to add GenerateCStates for Chameleon boot loaders
+
+import sys
+import os
+
+vol = str(sys.argv[3])
+boot = "/Extra/org.chameleon.Boot.plist"
+plist = vol + boot
+infile = open(plist, "r")
+# check if GenerateCStates has been written or not
+GenerateCStatesCheck = False
+
+body = ""
+
+for line in infile:
+ # if we finish the tags and haven't written GenerateCStates Yet
+ if "" in line and GenerateCStatesCheck == False:
+ line = " GenerateCStates\n"
+ line += " Yes\n"
+ line += "\n"
+ GenerateCStatesCheck = True
+
+ body += line
+
+infile.close()
+
+outfile = open(plist, "w")
+outfile.write(body)
+outfile.close()
Property changes on: branches/ErmaC/package/Scripts/BaseOptions/GenerateCStates/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/Scripts/BaseOptions/DropSSDT/postinstall
===================================================================
--- branches/ErmaC/package/Scripts/BaseOptions/DropSSDT/postinstall (revision 0)
+++ branches/ErmaC/package/Scripts/BaseOptions/DropSSDT/postinstall (revision 1346)
@@ -0,0 +1,30 @@
+#!/usr/bin/python
+# Script to add DropSSDT for Chameleon boot loaders
+
+import sys
+import os
+
+vol = str(sys.argv[3])
+boot = "/Extra/org.chameleon.Boot.plist"
+plist = vol + boot
+infile = open(plist, "r")
+# check if DropSSDT has been written or not
+DropSSDTCheck = False
+
+body = ""
+
+for line in infile:
+ # if we finish the tags and haven't written DropSSDT Yet
+ if "" in line and DropSSDTCheck == False:
+ line = " DropSSDT\n"
+ line += " Yes\n"
+ line += "\n"
+ DropSSDTCheck = True
+
+ body += line
+
+infile.close()
+
+outfile = open(plist, "w")
+outfile.write(body)
+outfile.close()
Property changes on: branches/ErmaC/package/Scripts/BaseOptions/DropSSDT/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/Scripts/BaseOptions/EthernetBuiltIn/postinstall
===================================================================
--- branches/ErmaC/package/Scripts/BaseOptions/EthernetBuiltIn/postinstall (revision 0)
+++ branches/ErmaC/package/Scripts/BaseOptions/EthernetBuiltIn/postinstall (revision 1346)
@@ -0,0 +1,30 @@
+#!/usr/bin/python
+# Script to add EthernetBuiltIn for Chameleon boot loaders
+
+import sys
+import os
+
+vol = str(sys.argv[3])
+boot = "/Extra/org.chameleon.Boot.plist"
+plist = vol + boot
+infile = open(plist, "r")
+# check if EthernetBuiltIn has been written or not
+EthernetBuiltInCheck = False
+
+body = ""
+
+for line in infile:
+ # if we finish the tags and haven't written DropSSDT Yet
+ if "" in line and EthernetBuiltInCheck == False:
+ line = " EthernetBuiltIn\n"
+ line += " Yes\n"
+ line += "\n"
+ EthernetBuiltInCheck = True
+
+ body += line
+
+infile.close()
+
+outfile = open(plist, "w")
+outfile.write(body)
+outfile.close()
Property changes on: branches/ErmaC/package/Scripts/BaseOptions/EthernetBuiltIn/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/Scripts/BaseOptions/InstantMenu/postinstall
===================================================================
--- branches/ErmaC/package/Scripts/BaseOptions/InstantMenu/postinstall (revision 0)
+++ branches/ErmaC/package/Scripts/BaseOptions/InstantMenu/postinstall (revision 1346)
@@ -0,0 +1,40 @@
+#!/usr/bin/python
+# Script to add Instant Menu for Chameleon boot loaders
+# Copyright (C) tonymacx86 LLC
+
+import sys
+import os
+
+vol = str(sys.argv[3])
+boot = "/Extra/org.chameleon.Boot.plist"
+plist = vol + boot
+infile = open(plist, "r")
+# check if Instant Menu has been written or not
+InstantMenuCheck = False
+
+body = ""
+
+for line in infile:
+ # if Timeout is there, advance the next line to
+ # read past it, and then change the lines to read
+ # "Instant Menu<\key>" and "Yes"
+ if "Timeout" in line:
+ line = infile.next()
+ line = " Instant Menu\n"
+ line += " Yes\n"
+ InstantMenuCheck = True
+
+ # if we finish the tags and haven't written Instant Menu Yet
+ if "" in line and InstantMenuCheck == False:
+ line = " Instant Menu\n"
+ line += " Yes\n"
+ line += "\n"
+ InstantMenuCheck = True
+
+ body += line
+
+infile.close()
+
+outfile = open(plist, "w")
+outfile.write(body)
+outfile.close()
Property changes on: branches/ErmaC/package/Scripts/BaseOptions/InstantMenu/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/Scripts/BaseOptions/GraphicsEnabler/postinstall
===================================================================
--- branches/ErmaC/package/Scripts/BaseOptions/GraphicsEnabler/postinstall (revision 0)
+++ branches/ErmaC/package/Scripts/BaseOptions/GraphicsEnabler/postinstall (revision 1346)
@@ -0,0 +1,30 @@
+#!/usr/bin/python
+# Script to add GraphicsEnabler for Chameleon boot loaders
+
+import sys
+import os
+
+vol = str(sys.argv[3])
+boot = "/Extra/org.chameleon.Boot.plist"
+plist = vol + boot
+infile = open(plist, "r")
+# check if GraphicsEnabler has been written or not
+GraphicsEnablerCheck = False
+
+body = ""
+
+for line in infile:
+ # if we finish the tags and haven't written GraphicsEnabler Yet
+ if "" in line and GraphicsEnablerCheck == False:
+ line = " GraphicsEnabler\n"
+ line += " Yes\n"
+ line += "\n"
+ GraphicsEnablerCheck = True
+
+ body += line
+
+infile.close()
+
+outfile = open(plist, "w")
+outfile.write(body)
+outfile.close()
Property changes on: branches/ErmaC/package/Scripts/BaseOptions/GraphicsEnabler/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/Scripts/BaseOptions/RestartFix/postinstall
===================================================================
--- branches/ErmaC/package/Scripts/BaseOptions/RestartFix/postinstall (revision 0)
+++ branches/ErmaC/package/Scripts/BaseOptions/RestartFix/postinstall (revision 1346)
@@ -0,0 +1,30 @@
+#!/usr/bin/python
+# Script to add RestartFix for Chameleon boot loaders
+
+import sys
+import os
+
+vol = str(sys.argv[3])
+boot = "/Extra/org.chameleon.Boot.plist"
+plist = vol + boot
+infile = open(plist, "r")
+# check if RestartFix has been written or not
+RestartFixCheck = False
+
+body = ""
+
+for line in infile:
+ # if we finish the tags and haven't written RestartFix Yet
+ if "" in line and RestartFixCheck == False:
+ line = " RestartFix\n"
+ line += " No\n"
+ line += "\n"
+ RestartFixCheck = True
+
+ body += line
+
+infile.close()
+
+outfile = open(plist, "w")
+outfile.write(body)
+outfile.close()
Property changes on: branches/ErmaC/package/Scripts/BaseOptions/RestartFix/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/Scripts/BaseOptions/CSTUsingSystemIO/postinstall
===================================================================
--- branches/ErmaC/package/Scripts/BaseOptions/CSTUsingSystemIO/postinstall (revision 0)
+++ branches/ErmaC/package/Scripts/BaseOptions/CSTUsingSystemIO/postinstall (revision 1346)
@@ -0,0 +1,30 @@
+#!/usr/bin/python
+# Script to add CSTUsingSystemIO for Chameleon boot loaders
+
+import sys
+import os
+
+vol = str(sys.argv[3])
+boot = "/Extra/org.chameleon.Boot.plist"
+plist = vol + boot
+infile = open(plist, "r")
+# check if CSTUsingSystemIO has been written or not
+CSTUsingSystemIOCheck = False
+
+body = ""
+
+for line in infile:
+ # if we finish the tags and haven't written CSTUsingSystemIO Yet
+ if "" in line and CSTUsingSystemIOCheck == False:
+ line = " CSTUsingSystemIO\n"
+ line += " Yes\n"
+ line += "\n"
+ CSTUsingSystemIOCheck = True
+
+ body += line
+
+infile.close()
+
+outfile = open(plist, "w")
+outfile.write(body)
+outfile.close()
Property changes on: branches/ErmaC/package/Scripts/BaseOptions/CSTUsingSystemIO/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/Scripts/BaseOptions/arch/postinstall
===================================================================
--- branches/ErmaC/package/Scripts/BaseOptions/arch/postinstall (revision 0)
+++ branches/ErmaC/package/Scripts/BaseOptions/arch/postinstall (revision 1346)
@@ -0,0 +1,30 @@
+#!/usr/bin/python
+# Script to add arch for Chameleon boot loaders
+
+import sys
+import os
+
+vol = str(sys.argv[3])
+boot = "/Extra/org.chameleon.Boot.plist"
+plist = vol + boot
+infile = open(plist, "r")
+# check if arch has been written or not
+archCheck = False
+
+body = ""
+
+for line in infile:
+ # if we finish the tags and haven't written arch Yet
+ if "" in line and archCheck == False:
+ line = " arch\n"
+ line += " i386\n"
+ line += "\n"
+ archCheck = True
+
+ body += line
+
+infile.close()
+
+outfile = open(plist, "w")
+outfile.write(body)
+outfile.close()
Property changes on: branches/ErmaC/package/Scripts/BaseOptions/arch/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/Scripts/BaseOptions/GeneratePStates/postinstall
===================================================================
--- branches/ErmaC/package/Scripts/BaseOptions/GeneratePStates/postinstall (revision 0)
+++ branches/ErmaC/package/Scripts/BaseOptions/GeneratePStates/postinstall (revision 1346)
@@ -0,0 +1,30 @@
+#!/usr/bin/python
+# Script to add GeneratePStates for Chameleon boot loaders
+
+import sys
+import os
+
+vol = str(sys.argv[3])
+boot = "/Extra/org.chameleon.Boot.plist"
+plist = vol + boot
+infile = open(plist, "r")
+# check if GeneratePStates has been written or not
+GeneratePStatesCheck = False
+
+body = ""
+
+for line in infile:
+ # if we finish the tags and haven't written GeneratePStates Yet
+ if "" in line and GeneratePStatesCheck == False:
+ line = " GeneratePStates\n"
+ line += " Yes\n"
+ line += "\n"
+ DropSSDTCheck = True
+
+ body += line
+
+infile.close()
+
+outfile = open(plist, "w")
+outfile.write(body)
+outfile.close()
Property changes on: branches/ErmaC/package/Scripts/BaseOptions/GeneratePStates/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/Scripts/Resolutions/1024x768x32/postinstall
===================================================================
--- branches/ErmaC/package/Scripts/Resolutions/1024x768x32/postinstall (revision 0)
+++ branches/ErmaC/package/Scripts/Resolutions/1024x768x32/postinstall (revision 1346)
@@ -0,0 +1,39 @@
+#!/usr/bin/python
+# Script to add Graphics_Mode for Chameleon boot loaders
+
+import sys
+import os
+
+vol = str(sys.argv[3])
+boot = "/Extra/org.chameleon.Boot.plist"
+plist = vol + boot
+infile = open(plist, "r")
+# check if Graphics_Mode has been written or not
+Graphics_ModeCheck = False
+
+body = ""
+
+for line in infile:
+ # if GraphicsEnabler is there, advance the next line to
+ # read past it, and then change the lines to read
+ # "GraphicsEnabler<\key>" and "Yes"
+ if "GraphicsEnabler" in line:
+ line = infile.next()
+ line = " Graphics_Mode\n"
+ line += " 1024x768x32\n"
+ InstantMenuCheck = True
+
+ # if we finish the tags and haven't written Graphics_Mode Yet
+ if "" in line and Graphics_ModeCheck == False:
+ line = " Graphics_Mode\n"
+ line += " 1024x768x32\n"
+ line += "\n"
+ Graphics_ModeCheck = True
+
+ body += line
+
+infile.close()
+
+outfile = open(plist, "w")
+outfile.write(body)
+outfile.close()
Property changes on: branches/ErmaC/package/Scripts/Resolutions/1024x768x32/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/Scripts/Resolutions/1920x1200x32/postinstall
===================================================================
--- branches/ErmaC/package/Scripts/Resolutions/1920x1200x32/postinstall (revision 0)
+++ branches/ErmaC/package/Scripts/Resolutions/1920x1200x32/postinstall (revision 1346)
@@ -0,0 +1,39 @@
+#!/usr/bin/python
+# Script to add Graphics_Mode for Chameleon boot loaders
+
+import sys
+import os
+
+vol = str(sys.argv[3])
+boot = "/Extra/org.chameleon.Boot.plist"
+plist = vol + boot
+infile = open(plist, "r")
+# check if Graphics_Mode has been written or not
+Graphics_ModeCheck = False
+
+body = ""
+
+for line in infile:
+ # if GraphicsEnabler is there, advance the next line to
+ # read past it, and then change the lines to read
+ # "GraphicsEnabler<\key>" and "Yes"
+ if "GraphicsEnabler" in line:
+ line = infile.next()
+ line = " Graphics_Mode\n"
+ line += " 1920x1200x32\n"
+ InstantMenuCheck = True
+
+ # if we finish the tags and haven't written Graphics_Mode Yet
+ if "" in line and Graphics_ModeCheck == False:
+ line = " Graphics_Mode\n"
+ line += " 1920x1200x32\n"
+ line += "\n"
+ Graphics_ModeCheck = True
+
+ body += line
+
+infile.close()
+
+outfile = open(plist, "w")
+outfile.write(body)
+outfile.close()
Property changes on: branches/ErmaC/package/Scripts/Resolutions/1920x1200x32/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/Scripts/Resolutions/1600x900x32/postinstall
===================================================================
--- branches/ErmaC/package/Scripts/Resolutions/1600x900x32/postinstall (revision 0)
+++ branches/ErmaC/package/Scripts/Resolutions/1600x900x32/postinstall (revision 1346)
@@ -0,0 +1,39 @@
+#!/usr/bin/python
+# Script to add Graphics_Mode for Chameleon boot loaders
+
+import sys
+import os
+
+vol = str(sys.argv[3])
+boot = "/Extra/org.chameleon.Boot.plist"
+plist = vol + boot
+infile = open(plist, "r")
+# check if Graphics_Mode has been written or not
+Graphics_ModeCheck = False
+
+body = ""
+
+for line in infile:
+ # if GraphicsEnabler is there, advance the next line to
+ # read past it, and then change the lines to read
+ # "GraphicsEnabler<\key>" and "Yes"
+ if "GraphicsEnabler" in line:
+ line = infile.next()
+ line = " Graphics_Mode\n"
+ line += " 1600x900x32\n"
+ InstantMenuCheck = True
+
+ # if we finish the tags and haven't written Graphics_Mode Yet
+ if "" in line and Graphics_ModeCheck == False:
+ line = " Graphics_Mode\n"
+ line += " 1600x900x32\n"
+ line += "\n"
+ Graphics_ModeCheck = True
+
+ body += line
+
+infile.close()
+
+outfile = open(plist, "w")
+outfile.write(body)
+outfile.close()
Property changes on: branches/ErmaC/package/Scripts/Resolutions/1600x900x32/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/Scripts/Resolutions/1280x1024x32/postinstall
===================================================================
--- branches/ErmaC/package/Scripts/Resolutions/1280x1024x32/postinstall (revision 0)
+++ branches/ErmaC/package/Scripts/Resolutions/1280x1024x32/postinstall (revision 1346)
@@ -0,0 +1,39 @@
+#!/usr/bin/python
+# Script to add Graphics_Mode for Chameleon boot loaders
+
+import sys
+import os
+
+vol = str(sys.argv[3])
+boot = "/Extra/org.chameleon.Boot.plist"
+plist = vol + boot
+infile = open(plist, "r")
+# check if Graphics_Mode has been written or not
+Graphics_ModeCheck = False
+
+body = ""
+
+for line in infile:
+ # if GraphicsEnabler is there, advance the next line to
+ # read past it, and then change the lines to read
+ # "GraphicsEnabler<\key>" and "Yes"
+ if "GraphicsEnabler" in line:
+ line = infile.next()
+ line = " Graphics_Mode\n"
+ line += " 1280x1024x32\n"
+ InstantMenuCheck = True
+
+ # if we finish the tags and haven't written Graphics_Mode Yet
+ if "" in line and Graphics_ModeCheck == False:
+ line = " Graphics_Mode\n"
+ line += " 1280x1024x32\n"
+ line += "\n"
+ Graphics_ModeCheck = True
+
+ body += line
+
+infile.close()
+
+outfile = open(plist, "w")
+outfile.write(body)
+outfile.close()
Property changes on: branches/ErmaC/package/Scripts/Resolutions/1280x1024x32/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/Scripts/Resolutions/1680x1050x32/postinstall
===================================================================
--- branches/ErmaC/package/Scripts/Resolutions/1680x1050x32/postinstall (revision 0)
+++ branches/ErmaC/package/Scripts/Resolutions/1680x1050x32/postinstall (revision 1346)
@@ -0,0 +1,39 @@
+#!/usr/bin/python
+# Script to add Graphics_Mode for Chameleon boot loaders
+
+import sys
+import os
+
+vol = str(sys.argv[3])
+boot = "/Extra/org.chameleon.Boot.plist"
+plist = vol + boot
+infile = open(plist, "r")
+# check if Graphics_Mode has been written or not
+Graphics_ModeCheck = False
+
+body = ""
+
+for line in infile:
+ # if GraphicsEnabler is there, advance the next line to
+ # read past it, and then change the lines to read
+ # "GraphicsEnabler<\key>" and "Yes"
+ if "GraphicsEnabler" in line:
+ line = infile.next()
+ line = " Graphics_Mode\n"
+ line += " 1680x1050x32\n"
+ InstantMenuCheck = True
+
+ # if we finish the tags and haven't written Graphics_Mode Yet
+ if "" in line and Graphics_ModeCheck == False:
+ line = " Graphics_Mode\n"
+ line += " 1680x1050x32\n"
+ line += "\n"
+ Graphics_ModeCheck = True
+
+ body += line
+
+infile.close()
+
+outfile = open(plist, "w")
+outfile.write(body)
+outfile.close()
Property changes on: branches/ErmaC/package/Scripts/Resolutions/1680x1050x32/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/Scripts/Resolutions/1920x1080x32/postinstall
===================================================================
--- branches/ErmaC/package/Scripts/Resolutions/1920x1080x32/postinstall (revision 0)
+++ branches/ErmaC/package/Scripts/Resolutions/1920x1080x32/postinstall (revision 1346)
@@ -0,0 +1,39 @@
+#!/usr/bin/python
+# Script to add Graphics_Mode for Chameleon boot loaders
+
+import sys
+import os
+
+vol = str(sys.argv[3])
+boot = "/Extra/org.chameleon.Boot.plist"
+plist = vol + boot
+infile = open(plist, "r")
+# check if Graphics_Mode has been written or not
+Graphics_ModeCheck = False
+
+body = ""
+
+for line in infile:
+ # if GraphicsEnabler is there, advance the next line to
+ # read past it, and then change the lines to read
+ # "GraphicsEnabler<\key>" and "Yes"
+ if "GraphicsEnabler" in line:
+ line = infile.next()
+ line = " Graphics_Mode\n"
+ line += " 1920x1080x32\n"
+ InstantMenuCheck = True
+
+ # if we finish the tags and haven't written Graphics_Mode Yet
+ if "" in line and Graphics_ModeCheck == False:
+ line = " Graphics_Mode\n"
+ line += " 1920x1080x32\n"
+ line += "\n"
+ Graphics_ModeCheck = True
+
+ body += line
+
+infile.close()
+
+outfile = open(plist, "w")
+outfile.write(body)
+outfile.close()
Property changes on: branches/ErmaC/package/Scripts/Resolutions/1920x1080x32/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/Scripts/Resolutions/1280x960x32/postinstall
===================================================================
--- branches/ErmaC/package/Scripts/Resolutions/1280x960x32/postinstall (revision 0)
+++ branches/ErmaC/package/Scripts/Resolutions/1280x960x32/postinstall (revision 1346)
@@ -0,0 +1,39 @@
+#!/usr/bin/python
+# Script to add Graphics_Mode for Chameleon boot loaders
+
+import sys
+import os
+
+vol = str(sys.argv[3])
+boot = "/Extra/org.chameleon.Boot.plist"
+plist = vol + boot
+infile = open(plist, "r")
+# check if Graphics_Mode has been written or not
+Graphics_ModeCheck = False
+
+body = ""
+
+for line in infile:
+ # if GraphicsEnabler is there, advance the next line to
+ # read past it, and then change the lines to read
+ # "GraphicsEnabler<\key>" and "Yes"
+ if "GraphicsEnabler" in line:
+ line = infile.next()
+ line = " Graphics_Mode\n"
+ line += " 1280x960x32\n"
+ InstantMenuCheck = True
+
+ # if we finish the tags and haven't written Graphics_Mode Yet
+ if "" in line and Graphics_ModeCheck == False:
+ line = " Graphics_Mode\n"
+ line += " 1280x960x32\n"
+ line += "\n"
+ Graphics_ModeCheck = True
+
+ body += line
+
+infile.close()
+
+outfile = open(plist, "w")
+outfile.write(body)
+outfile.close()
Property changes on: branches/ErmaC/package/Scripts/Resolutions/1280x960x32/postinstall
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/dmg/ro.dmg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/dmg/ro.dmg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/dmg/SLAResources
===================================================================
Index: branches/ErmaC/package/Resources/English.lproj/Localizable.strings
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: branches/ErmaC/package/buildpkg.sh
===================================================================
--- branches/ErmaC/package/buildpkg.sh (revision 0)
+++ branches/ErmaC/package/buildpkg.sh (revision 1346)
@@ -0,0 +1,525 @@
+#!/bin/bash
+
+# $1 Path to store built package
+
+packagesidentity="org.chameleon"
+
+packagename="Chameleon"
+
+pkgroot="${0%/*}"
+
+COL_BLACK="\x1b[30;01m"
+COL_RED="\x1b[31;01m"
+COL_GREEN="\x1b[32;01m"
+COL_YELLOW="\x1b[33;01m"
+COL_MAGENTA="\x1b[35;01m"
+COL_CYAN="\x1b[36;01m"
+COL_WHITE="\x1b[37;01m"
+COL_BLUE="\x1b[34;01m"
+COL_RESET="\x1b[39;49;00m"
+
+#version=$( grep I386BOOT_CHAMELEONVERSION sym/i386/vers.h | awk '{ print $3 }' | tr -d '\"' )
+version=$( cat version )
+stage=${version##*-}
+revision=$( grep I386BOOT_CHAMELEONREVISION sym/i386/vers.h | awk '{ print $3 }' | tr -d '\"' )
+builddate=$( grep I386BOOT_BUILDDATE sym/i386/vers.h | awk '{ print $3,$4 }' | tr -d '\"' )
+timestamp=$( date -j -f "%Y-%m-%d %H:%M:%S" "${builddate}" "+%s" )
+
+# =================
+
+develop=" Crazor, Dense, fassl, fxtentacle, iNDi, JrCs, Kabyl, kaitek, mackerintel, mercurysquad, munky, Slice, meklort, mozodojo, rekursor, Turbo, cparm, valv & zef "
+
+credits=" andyvand, asereBLN, Azimut, bumby, cosmo1t, dfe, Galaxy, kalyway, Krazubu, MasterChief, netkas, sckevyn, smith@@, THeKiNG, DutchHockeyPro & Andy"
+
+pkgdev=" blackosx, ErmaC , scrax"
+
+# =================
+
+distributioncount=0
+xmlindent=0
+
+indent[0]="\t"
+indent[1]="\t\t"
+indent[2]="\t\t\t"
+indent[3]="\t\t\t\t"
+
+main ()
+{
+
+# clean up the destination path
+
+rm -R -f "${1}"
+echo ""
+echo -e $COL_BLACK" ----------------------------------"$COL_RESET
+echo -e $COL_BLACK" Building $packagename Install Package"$COL_RESET
+echo -e $COL_BLACK" ----------------------------------"$COL_RESET
+echo ""
+
+outline[$((outlinecount++))]="${indent[$xmlindent]}"
+
+# build core package
+ echo "================= Core ================="
+ ((xmlindent++))
+ packagesidentity="org.chameleon.core"
+ mkdir -p ${1}/Core/Root/usr/sbin
+ mkdir -p ${1}/Core/Root/usr/local/bin
+ mkdir -p ${1}/Core/Root/usr/standalone/i386
+# if [ "$(ls -A "${1%/*}/i386/modules")" ]; then
+# echo "Modules found."
+# mkdir -p ${1}/Core/Root/usr/standalone/i386/modules
+# cp -R ${1%/*}/i386/modules ${1}/Core/Root/usr/standalone/i386
+# else
+# echo "No found modules into dir module"
+# fi
+ ditto --noextattr --noqtn ${1%/*}/i386/boot ${1}/Core/Root/usr/standalone/i386
+ ditto --noextattr --noqtn ${1%/*}/i386/boot0 ${1}/Core/Root/usr/standalone/i386
+ ditto --noextattr --noqtn ${1%/*}/i386/boot0md ${1}/Core/Root/usr/standalone/i386
+# ditto --noextattr --noqtn ${1%/*}/i386/boot0hf ${1}/Core/Root/usr/standalone/i386
+ ditto --noextattr --noqtn ${1%/*}/i386/boot1f32 ${1}/Core/Root/usr/standalone/i386
+ ditto --noextattr --noqtn ${1%/*}/i386/boot1h ${1}/Core/Root/usr/standalone/i386
+ ditto --noextattr --noqtn ${1%/*}/i386/boot1he ${1}/Core/Root/usr/standalone/i386
+ ditto --noextattr --noqtn ${1%/*}/i386/boot1hp ${1}/Core/Root/usr/standalone/i386
+ ditto --noextattr --noqtn ${1%/*}/i386/cdboot ${1}/Core/Root/usr/standalone/i386
+ ditto --noextattr --noqtn ${1%/*}/i386/chain0 ${1}/Core/Root/usr/standalone/i386
+# fixperms "${1}/Core/Root/"
+ ditto --noextattr --noqtn ${1%/*}/i386/fdisk440 ${1}/Core/Root/usr/sbin
+ ditto --noextattr --noqtn ${1%/*}/i386/bdmesg ${1}/Core/Root/usr/sbin
+ local coresize=$( du -hkc "${1}/Core/Root" | tail -n1 | awk {'print $1'} )
+ echo " [BUILD] i386 "
+ buildpackage "${1}/Core" "/" "0" "start_visible=\"false\" start_selected=\"true\"" >/dev/null 2>&1
+
+# build Chameleon package
+ echo "================= Chameleon ================="
+ outline[$((outlinecount++))]="${indent[$xmlindent]}\t"
+ choices[$((choicescount++))]="\n\n"
+
+ # build standard package
+ mkdir -p ${1}/Standard/Root
+ mkdir -p ${1}/Standard/Scripts/Tools
+ cp -f ${pkgroot}/Scripts/Standard/* ${1}/Standard/Scripts
+ # ditto --arch i386 `which SetFile` ${1}/Standard/Scripts/Tools/SetFile
+ echo " [BUILD] Standard "
+ buildpackage "${1}/Standard" "/" "${coresize}" "start_enabled=\"true\" start_selected=\"upgrade_allowed()\" selected=\"exclusive(choices['EFI']) && exclusive(choices['noboot'])\"" >/dev/null 2>&1
+ # End build standard package
+
+ # build efi package
+ mkdir -p ${1}/EFI/Root
+ mkdir -p ${1}/EFI/Scripts/Tools
+ cp -f ${pkgroot}/Scripts/EFI/* ${1}/EFI/Scripts
+ # ditto --arch i386 `which SetFile` ${1}/EFI/Scripts/Tools/SetFile
+ echo " [BUILD] EFI "
+ buildpackage "${1}/EFI" "/" "${coresize}" "start_visible=\"systemHasGPT()\" start_selected=\"false\" selected=\"exclusive(choices['Standard']) && exclusive(choices['noboot'])\"" >/dev/null 2>&1
+ # End build efi package
+
+ # build reset choice package
+ mkdir -p ${1}/noboot/Root
+ echo " [BUILD] Reset choice "
+ buildpackage "${1}/noboot" "/tmpcham" "" "start_visible=\"true\" start_selected=\"false\" selected=\"exclusive(choices['Standard']) && exclusive(choices['EFI'])\"" >/dev/null 2>&1
+ # End build reset choice package
+
+ # build Modules package
+ echo "================= Modules ================="
+ ###############################
+ # AMDGraphicsEnabler.dylib #
+ # ATiGraphicsEnabler.dylib #
+ # IntelGraphicsEnabler.dylib #
+ # klibc.dylib #
+ # NVIDIAGraphicsEnabler.dylib #
+ # Resolution.dylib #
+ # uClibcxx.dylib #
+ ###############################
+ if [ "$(ls -A "${1%/*}/i386/modules")" ]; then
+ {
+ outline[$((outlinecount++))]="${indent[$xmlindent]}\t"
+ choices[$((choicescount++))]="\n\n"
+ ((xmlindent++))
+ packagesidentity="org.chameleon.module"
+# -
+ if [ -e ${1%/*}/i386/modules/AMDGraphicsEnabler.dylib ]; then
+ {
+ mkdir -p ${1}/AMDGraphicsEnabler/Root
+ ditto --noextattr --noqtn ${1%/*}/i386/modules/AMDGraphicsEnabler.dylib ${1}/AMDGraphicsEnabler/Root
+ echo " [BUILD] AMDGraphicsEnabler "
+ buildpackage "${1}/AMDGraphicsEnabler" "/Extra/modules" "" "start_selected=\"false\"" >/dev/null 2>&1
+ }
+ fi
+# -
+ if [ -e ${1%/*}/i386/modules/ATiGraphicsEnabler.dylib ]; then
+ {
+ mkdir -p ${1}/ATiGraphicsEnabler/Root
+ ditto --noextattr --noqtn ${1%/*}/i386/modules/ATiGraphicsEnabler.dylib ${1}/ATiGraphicsEnabler/Root
+ echo " [BUILD] ATiGraphicsEnabler "
+ buildpackage "${1}/ATiGraphicsEnabler" "/Extra/modules" "" "start_selected=\"false\"" >/dev/null 2>&1
+ }
+ fi
+# -
+ if [ -e ${1%/*}/i386/modules/IntelGraphicsEnabler.dylib ]; then
+ {
+ mkdir -p ${1}/IntelGraphicsEnabler/Root
+ ditto --noextattr --noqtn ${1%/*}/i386/modules/IntelGraphicsEnabler.dylib ${1}/IntelGraphicsEnabler/Root
+ echo " [BUILD] IntelGraphicsEnabler "
+ buildpackage "${1}/IntelGraphicsEnabler" "/Extra/modules" "" "start_selected=\"false\"" >/dev/null 2>&1
+ }
+ fi
+# -
+ if [ -e ${1%/*}/i386/modules/klibc.dylib ]; then
+ {
+ mkdir -p ${1}/klibc/Root
+ ditto --noextattr --noqtn ${1%/*}/i386/modules/klibc.dylib ${1}/klibc/Root
+ echo " [BUILD] klibc "
+ buildpackage "${1}/klibc" "/Extra/modules" "" "start_selected=\"false\"" >/dev/null 2>&1
+ }
+ fi
+# -
+ if [ -e ${1%/*}/i386/modules/NVIDIAGraphicsEnabler.dylib ]; then
+ {
+ mkdir -p ${1}/NVIDIAGraphicsEnabler/Root
+ ditto --noextattr --noqtn ${1%/*}/i386/modules/NVIDIAGraphicsEnabler.dylib ${1}/NVIDIAGraphicsEnabler/Root
+ echo " [BUILD] NVIDIAGraphicsEnabler "
+ buildpackage "${1}/NVIDIAGraphicsEnabler" "/Extra/modules" "" "start_selected=\"false\"" >/dev/null 2>&1
+ }
+ fi
+# -
+ if [ -e ${1%/*}/i386/modules/Resolution.dylib ]; then
+ {
+ mkdir -p ${1}/AutoReso/Root
+ ditto --noextattr --noqtn ${1%/*}/i386/modules/Resolution.dylib ${1}/AutoReso/Root
+ echo " [BUILD] Resolution "
+ buildpackage "${1}/AutoReso" "/Extra/modules" "" "start_selected=\"false\"" >/dev/null 2>&1
+ }
+ fi
+# -
+ if [ -e ${1%/*}/i386/modules/uClibcxx.dylib ]; then
+ {
+ mkdir -p ${1}/uClibc/Root
+ ditto --noextattr --noqtn ${1%/*}/i386/modules/uClibcxx.dylib ${1}/uClibc/Root
+ ditto --noextattr --noqtn ${1%/*}/i386/modules/klibc.dylib ${1}/uClibc/Root
+ echo " [BUILD] uClibc++ "
+ buildpackage "${1}/uClibc" "/Extra/modules" "" "start_selected=\"false\"" >/dev/null 2>&1
+ }
+ fi
+ ((xmlindent--))
+ outline[$((outlinecount++))]="${indent[$xmlindent]}\t"
+ }
+ else
+ {
+ echo " -= no modules to include =-"
+ }
+ fi
+ # End build Modules packages
+ ((xmlindent--))
+ outline[$((outlinecount++))]="${indent[$xmlindent]}\t"
+# End build Chameleon package
+
+# build Extras package
+ echo "================= Extras ================="
+ outline[$((outlinecount++))]="${indent[$xmlindent]}\t"
+ choices[$((choicescount++))]="\n\n"
+ ((xmlindent++))
+ packagesidentity="org.chameleon.extras.com"
+
+ # build utility package
+ outline[$((outlinecount++))]="${indent[$xmlindent]}\t"
+ choices[$((choicescount++))]="\n\n"
+ ((xmlindent++))
+ packagesidentity="org.chameleon.utility.com"
+
+ # build package for Chameleon PrefPanel
+ mkdir -p "${1}/PrefPanel/Root"
+ ditto --noextattr --noqtn "${pkgroot}/Configuration/PrefPanel/Chameleon.prefPane" "${1}/PrefPanel/Root"
+ echo " [BUILD] Chameleon Preference Panel "
+ buildpackage "${1}/PrefPanel" "/Library/PreferencePanes/Chameleon.prefPane" "" "start_selected=\"false\"" >/dev/null 2>&1
+ # End build package for Chameleon PrefPanel
+
+ # build package for SMBIOSDefault
+ mkdir -p "${1}/SMBIOSDefault/Root"
+ ditto --noextattr --noqtn "${pkgroot}/Configuration/SMBIOSDefault/smbios.plist" "${1}/SMBIOSDefault/Root"
+ echo " [BUILD] SMBIOSDefault "
+ buildpackage "${1}/SMBIOSDefault" "/Extra/Example" "" "start_selected=\"false\"" >/dev/null 2>&1
+ # End build package for SMBIOSDefault
+
+ # build package for Documentation
+ mkdir -p "${1}/Documentation/Root"
+ cp -f ${pkgroot}/doc/BootHelp.txt ${1}/Documentation/Root
+ cp -f ${pkgroot}/doc/README ${1}/Documentation/Root
+ cp -f ${pkgroot}/doc/Users_Guide0.5.pdf ${1}/Documentation/Root
+ echo " [BUILD] Documentation "
+ buildpackage "${1}/Documentation" "/Library/Documentation/Chameleon2RC5" "" "start_selected=\"false\"" >/dev/null 2>&1
+ # End build package for Documentation
+
+ ((xmlindent--))
+ outline[$((outlinecount++))]="${indent[$xmlindent]}\t"
+ # End utility package
+
+ # build options packages
+ echo "================= Options ================="
+ outline[$((outlinecount++))]="${indent[$xmlindent]}\t"
+ choices[$((choicescount++))]="\n\n"
+ ((xmlindent++))
+
+ # build base options packages
+ packagesidentity="org.chameleon.options.com"
+
+ options=($( find "${pkgroot}/Scripts/BaseOptions" -type d -depth 1 -not -name '.svn' ))
+ for (( i = 0 ; i < ${#options[@]} ; i++ ))
+ do
+ mkdir -p "${1}/${options[$i]##*/}/Root"
+ mkdir -p "${1}/${options[$i]##*/}/Scripts"
+ ditto --noextattr --noqtn "${options[$i]}/postinstall" "${1}/${options[$i]##*/}/Scripts/postinstall"
+ echo " [BUILD] ${options[$i]##*/} "
+ buildpackage "${1}/${options[$i]##*/}" "/" "" "start_selected=\"false\"" >/dev/null 2>&1
+ done
+ # End build base options packages
+
+ # build resolution packages
+ echo "================= Res. Options ================="
+ outline[$((outlinecount++))]="${indent[$xmlindent]}\t"
+ choices[$((choicescount++))]="\n\n"
+ ((xmlindent++))
+ packagesidentity="org.chameleon.resolution"
+ resolutions=($( find "${pkgroot}/Scripts/Resolutions" -type d -depth 1 -not -name '.svn' ))
+ for (( i = 0 ; i < ${#resolutions[@]} ; i++ ))
+ do
+ mkdir -p "${1}/${resolutions[$i]##*/}/Root/"
+ mkdir -p "${1}/${resolutions[$i]##*/}/Scripts/"
+ ditto --noextattr --noqtn "${resolutions[$i]}/postinstall" "${1}/${resolutions[$i]##*/}/Scripts/postinstall"
+ echo " [BUILD] ${resolutions[$i]##*/} "
+ buildpackage "${1}/${resolutions[$i]##*/}" "/tmpcham" "" "start_selected=\"false\"" >/dev/null 2>&1
+ done
+
+ ((xmlindent--))
+ outline[$((outlinecount++))]="${indent[$xmlindent]}\t"
+ # End build resolution packages
+
+ # build Advanced packages
+ echo "================= Adv. Options ================="
+ outline[$((outlinecount++))]="${indent[$xmlindent]}\t"
+ choices[$((choicescount++))]="\n\n"
+ ((xmlindent++))
+
+ packagesidentity="org.chameleon.advanced.options.pkg"
+ optionsadv=($( find "${pkgroot}/Scripts/Advanced" -type d -depth 1 -not -name '.svn' ))
+ for (( i = 0 ; i < ${#optionsadv[@]} ; i++ ))
+ do
+ mkdir -p "${1}/${optionsadv[$i]##*/}/Root"
+ mkdir -p "${1}/${optionsadv[$i]##*/}/Scripts"
+ ditto --noextattr --noqtn "${optionsadv[$i]}/postinstall" "${1}/${optionsadv[$i]##*/}/Scripts/postinstall"
+ echo " [BUILD] ${optionsadv[$i]##*/} "
+ buildpackage "${1}/${optionsadv[$i]##*/}" "/" "" "start_selected=\"false\"" >/dev/null 2>&1
+ done
+
+ ((xmlindent--))
+ outline[$((outlinecount++))]="${indent[$xmlindent]}\t"
+ # End build Advanced packages
+
+ ((xmlindent--))
+ outline[$((outlinecount++))]="${indent[$xmlindent]}\t"
+
+ # End build options packages
+
+ # build theme packages
+ echo "================= Themes ================="
+ outline[$((outlinecount++))]="${indent[$xmlindent]}\t"
+ choices[$((choicescount++))]="\n\n"
+ ((xmlindent++))
+ packagesidentity="org.chameleon.theme.pkg"
+ artwork="${1%/*}"
+ themes=($( find "${artwork%/*}/artwork/themes" -type d -depth 1 -not -name '.svn' ))
+ for (( i = 0 ; i < ${#themes[@]} ; i++ ))
+ do
+ theme=$( echo ${themes[$i]##*/} | awk 'BEGIN{OFS=FS=""}{$1=toupper($1);print}' )
+ mkdir -p "${1}/${theme}/Root/"
+ rsync -r --exclude=.svn "${themes[$i]}" "${1}/${themes[$i]##*/}/Root/${theme}"
+ # #### Comment out thx meklort
+ # ditto --noextattr --noqtn "${themes[$i]}" "${1}/${themes[$i]##*/}/Root/${theme}"
+ # ####
+ find "${1}/${themes[$i]##*/}" -name '.DS_Store' -or -name '.svn' -exec rm -R {} \+
+ find "${1}/${themes[$i]##*/}" -type f -exec chmod 644 {} \+
+ echo " [BUILD] ${themes[$i]##*/} "
+ buildpackage "${1}/${theme}" "/Extra/Themes" "" "start_selected=\"false\"" >/dev/null 2>&1
+ rm -R -f "${1}/${i##*/}"
+ done
+
+ ((xmlindent--))
+ outline[$((outlinecount++))]="${indent[$xmlindent]}\t"
+ # End build theme packages
+
+ ((xmlindent--))
+ outline[$((outlinecount++))]="${indent[$xmlindent]}\t"
+# End build Extras package
+
+# build post install package
+ echo "================= Post ================="
+ mkdir -p ${1}/Post/Root
+ mkdir -p ${1}/Post/Scripts
+ cp -f ${pkgroot}/Scripts/Post/* ${1}/Post/Scripts
+ echo " [BUILD] Post "
+ buildpackage "${1}/Post" "/" "" "start_visible=\"false\" start_selected=\"true\"" >/dev/null 2>&1
+ outline[$((outlinecount++))]="${indent[$xmlindent]}"
+
+# build meta package
+
+ makedistribution "${1}" "${2}" "${3}" "${4}" "${5}"
+
+# clean up
+
+ rm -R -f "${1}"
+
+}
+
+fixperms ()
+{
+ # $1 path
+ find "${1}" -type f -exec chmod 644 {} \;
+ find "${1}" -type d -exec chmod 755 {} \;
+ chown -R 0:0 "${1}"
+}
+
+buildpackage ()
+{
+# $1 Path to package to build containing Root and or Scripts
+# $2 Install Location
+# $3 Size
+# $4 Options
+
+if [ -d "${1}/Root" ] && [ "${1}/Scripts" ]; then
+
+ local packagename="${1##*/}"
+ local identifier=$( echo ${packagesidentity}.${packagename//_/.} | tr [:upper:] [:lower:] )
+ find "${1}" -name '.DS_Store' -delete
+ local filecount=$( find "${1}/Root" | wc -l )
+ if [ "${3}" ]; then
+ local installedsize="${3}"
+ else
+ local installedsize=$( du -hkc "${1}/Root" | tail -n1 | awk {'print $1'} )
+ fi
+ local header="\n\n"
+ header+="\t\n"
+ rm -R -f "${1}/Temp"
+
+ [ -d "${1}/Temp" ] || mkdir -m 777 "${1}/Temp"
+ [ -d "${1}/Root" ] && mkbom "${1}/Root" "${1}/Temp/Bom"
+
+ if [ -d "${1}/Scripts" ]; then
+ header+="\t\n"
+ for script in $( find "${1}/Scripts" -type f \( -name 'pre*' -or -name 'post*' \) )
+ do
+ header+="\t\t<${script##*/} file=\"./${script##*/}\"/>\n"
+ done
+ header+="\t\n"
+ chown -R 0:0 "${1}/Scripts"
+ pushd "${1}/Scripts" >/dev/null
+ find . -print | cpio -o -z -H cpio > "../Temp/Scripts"
+ popd >/dev/null
+ fi
+
+ header+=""
+ echo -e "${header}" > "${1}/Temp/PackageInfo"
+ pushd "${1}/Root" >/dev/null
+ find . -print | cpio -o -z -H cpio > "../Temp/Payload"
+ popd >/dev/null
+ pushd "${1}/Temp" >/dev/null
+
+ xar -c -f "${1%/*}/${packagename// /}.pkg" --compression none .
+
+ popd >/dev/null
+
+ outline[$((outlinecount++))]="${indent[$xmlindent]}\t"
+
+ if [ "${4}" ]; then
+ local choiceoptions="${indent[$xmlindent]}${4}\n"
+ fi
+ choices[$((choicescount++))]="\n\t#${packagename// /}.pkg\n\n"
+
+ rm -R -f "${1}"
+fi
+}
+
+makedistribution ()
+{
+ rm -f "${1%/*}/${packagename// /}"*.pkg
+
+ find "${1}" -type f -name '*.pkg' -depth 1 | while read component
+ do
+ mkdir -p "${1}/${packagename}/${component##*/}"
+ pushd "${1}/${packagename}/${component##*/}" >/dev/null
+ xar -x -f "${1%}/${component##*/}"
+ popd >/dev/null
+ done
+
+ ditto --noextattr --noqtn "${pkgroot}/Distribution" "${1}/${packagename}/Distribution"
+ ditto --noextattr --noqtn "${pkgroot}/Resources" "${1}/${packagename}/Resources"
+
+ find "${1}/${packagename}/Resources" -type d -name '.svn' -exec rm -R -f {} \; 2>/dev/null
+
+ for (( i=0; i < ${#outline[*]} ; i++));
+ do
+ echo -e "${outline[$i]}" >> "${1}/${packagename}/Distribution"
+ done
+
+ for (( i=0; i < ${#choices[*]} ; i++));
+ do
+ echo -e "${choices[$i]}" >> "${1}/${packagename}/Distribution"
+ done
+
+ echo "" >> "${1}/${packagename}/Distribution"
+
+ perl -i -p -e "s/%CHAMELEONVERSION%/${version%%-*}/g" `find "${1}/${packagename}/Resources" -type f`
+ perl -i -p -e "s/%CHAMELEONREVISION%/${revision}/g" `find "${1}/${packagename}/Resources" -type f`
+
+# Adding Developer and credits
+ perl -i -p -e "s/%DEVELOP%/${develop}/g" `find "${1}/${packagename}/Resources" -type f`
+ perl -i -p -e "s/%CREDITS%/${credits}/g" `find "${1}/${packagename}/Resources" -type f`
+ perl -i -p -e "s/%PKGDEV%/${pkgdev}/g" `find "${1}/${packagename}/Resources" -type f`
+
+ stage=${stage/RC/Release Candidate }
+ stage=${stage/FINAL/2.0 Final}
+ perl -i -p -e "s/%CHAMELEONSTAGE%/${stage}/g" `find "${1}/${packagename}/Resources" -type f`
+
+ find "${1}/${packagename}" -name '.DS_Store' -delete
+ pushd "${1}/${packagename}" >/dev/null
+ xar -c -f "${1%/*}/${packagename// /}-${version}-r${revision}.pkg" --compression none .
+ popd >/dev/null
+
+# Here is the place for assign a Icon to the pkg
+# command use to generate the file:
+# ditto -c -k --sequesterRsrc --keepParent Icon.icns Icon.zip
+# ----
+# ditto -xk "${pkgroot}/Icons/pkg.zip" "${pkgroot}/Icons/"
+# DeRez -only icns "${pkgroot}/Icons/Icons/pkg.icns" > tempicns.rsrc
+# Rez -append tempicns.rsrc -o "${1%/*}/${packagename// /}-${version}-r${revision}.pkg"
+# SetFile -a C "${1%/*}/${packagename// /}-${version}-r${revision}.pkg"
+# rm -f tempicns.rsrc
+# rm -rf "${pkgroot}/Icons/Icons"
+# End
+
+ md5=$( md5 "${1%/*}/${packagename// /}-${version}-r${revision}.pkg" | awk {'print $4'} )
+ echo "MD5 (${packagename// /}-${version}-r${revision}.pkg) = ${md5}" > "${1%/*}/${packagename// /}-${version}-r${revision}.pkg.md5"
+ echo ""
+
+ echo -e $COL_BLACK" --------------------------"$COL_RESET
+ echo -e $COL_BLACK" Building process complete!"$COL_RESET
+ echo -e $COL_BLACK" --------------------------"$COL_RESET
+ echo ""
+ echo -e $COL_BLACK" Build info."
+ echo -e $COL_BLACK" ==========="
+ echo -e $COL_BLUE" Package name: "$COL_BLACK"$packagename-${version}-r$revision.pkg"$COL_RESET
+ echo -e $COL_BLUE" MD5: "$COL_BLACK"$md5"$COL_RESET
+ echo -e $COL_BLUE" Version: "$COL_BLACK"$version"$COL_RESET
+ echo -e $COL_BLUE" Stage: "$COL_BLACK"$stage"$COL_RESET
+ echo -e $COL_BLUE" Date/Time: "$COL_BLACK"$builddate"$COL_RESET
+ echo ""
+
+}
+
+main "${1}" "${2}" "${3}" "${4}" "${5}"
+
Property changes on: branches/ErmaC/package/buildpkg.sh
___________________________________________________________________
Added: svn:executable
+ *
Index: branches/ErmaC/package/Icons/pan.zip
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Icons/pan.zip
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Icons/tm.zip
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Icons/tm.zip
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Icons/pkg.zip
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Icons/pkg.zip
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Icons/doc.zip
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Icons/doc.zip
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Icons/dmg.zip
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Icons/dmg.zip
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Icons/Icon.zip
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Icons/Icon.zip
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/package/Icons/i386.zip
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/ErmaC/package/Icons/i386.zip
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Index: branches/ErmaC/CHANGES
===================================================================
--- branches/ErmaC/CHANGES (revision 1345)
+++ branches/ErmaC/CHANGES (revision 1346)
@@ -1,6 +1,7 @@
- Added AtiPorts option to GraphicsEnabler, so users can override the default number of ports. It proved
to be useful when used to limit the number of ports that a framebuffer registers, which seems to be a
- requirement on laptops that can only use 2 ports at the same time. Thanks to AniV for the tip:
+ requirement on laptops that can only use 2 ports at the same time.
+ Thanks to Akbar for testing and AniV also for the tip:
http://forum.voodooprojects.org/index.php/topic,1959.msg10402.html#msg10402
- Added NVidia ION AHCI controllers dev id to AHCIPortInjector kext.
Forgot to mention source on the commit: http://forum.voodooprojects.org/index.php/topic,1170.0.html