+ /* if we detected SCSI then fixup */
+ if ((handle = fopen("/scsidriver", "r")))
+ {
+ char *driver;
+ fgets(line, STRING_SIZE-1, handle);
+ fclose(handle);
+ line[strlen(line) - 1] = 0;
+ driver = strtok(line, ".");
+ fprintf(flog, "Detected SCSI driver %s\n",driver);
+ if (strlen(driver) > 1) {
+ fprintf(flog, "Fixing up ipfirerd.img\n");
+ mysystem("/bin/chroot /harddisk /sbin/modprobe loop");
+ mkdir("/harddisk/initrd", S_IRWXU|S_IRWXG|S_IRWXO);
+ snprintf(commandstring, STRING_SIZE, "/bin/chroot /harddisk /sbin/mkinitrd --with=scsi_mod --with=%s --with=sd_mod --with=sr_mod --with=libata --with=ataraid /boot/ipfirerd.img %s", driver, KERNEL_VERSION);
+ runcommandwithstatus(commandstring, ctr[TR_BUILDING_INITRD]);
+ snprintf(commandstring, STRING_SIZE, "/bin/chroot /harddisk /sbin/mkinitrd --with=scsi_mod --with=%s --with=sd_mod --with=sr_mod --with=libata --with=ataraid /boot/ipfirerd-smp.img %s-smp", driver, KERNEL_VERSION);
+ runcommandwithstatus(commandstring, ctr[TR_BUILDING_INITRD]);
+ mysystem("/bin/chroot /harddisk /bin/mv /boot/grub/scsigrub.conf /boot/grub/grub.conf");
+ }
+ }
+
+