1*2f245829Sagc 2*2f245829Sagc------------------------- 3*2f245829SagcInstalling the OSD System 4*2f245829Sagc------------------------- 5*2f245829Sagc 6*2f245829Sagc 1. Build kernel version 2.4 w/ SMP mode disabled and make sure the 7*2f245829Sagc directory /usr/src/linux points to this build. 8*2f245829Sagc 2. Modify initiator.h and initiator.c (as per the README) to point to 9*2f245829Sagc your intended target. 10*2f245829Sagc 3. Run 'make osd' to build all the OSD executables. In particular, 11*2f245829Sagc you need uosd, so.o, intel_iscsi.o and osdfs.o. 12*2f245829Sagc 4. Run 'make all' to build the remaining executables. 13*2f245829Sagc 5. Select a machine as the target and run "uosd -f" as root on this 14*2f245829Sagc machine. This will create files and directories in /tmp. 15*2f245829Sagc 16*2f245829Sagc---------------------- 17*2f245829SagcTesting the OSD System 18*2f245829Sagc---------------------- 19*2f245829Sagc 20*2f245829Sagc 6. Run utest to make sure the target is working OK. 21*2f245829Sagc 7. Do an "insmod ./so.o" to install the Linux SCSI upper layer driver for OSD. 22*2f245829Sagc 8. Do an "insmod ./intel_iscsi.o" to install the kernel mode iSCSI initiator. 23*2f245829Sagc 9. Do an "insmod ./osdfs.o" to install the file system. 24*2f245829Sagc10. Make the OSD device with "mknod /dev/so0 b 232 0". 25*2f245829Sagc11. Do a "mount -t osdfs /dev/so0 /mnt" to mount the filesystem. 26*2f245829Sagc12. Go to /mnt and run "echo Hello, World! > foo" to create an object 27*2f245829Sagc on the OSD. 28*2f245829Sagc13. Do a "cat foo" to read the object. you should see "Hello, world!" 29*2f245829Sagc 30*2f245829SagcFrom here you should be able to use /mnt as you would any filesystem. 31*2f245829Sagc 32*2f245829Sagc-------------------- 33*2f245829Sagc2.4.18 Modifications 34*2f245829Sagc-------------------- 35*2f245829Sagc 36*2f245829Sagcinclude/scsi/scsi.h:143 37*2f245829Sagc #define TYPE_OSD 0x0e 38*2f245829Sagc 39*2f245829Sagcdrivers/scsi/scsi.h:92: 40*2f245829Sagc #define MAX_SCSI_DEVICE_CODE 15 41*2f245829Sagc 42*2f245829Sagcdrivers/scsi/scsi.h:354: 43*2f245829Sagc #define MAX_COMMAND_SIZE 256 44*2f245829Sagc 45*2f245829Sagcdrivers/scsi/scsi.c:145: 46*2f245829Sagc "OSD ", 47*2f245829Sagc 48*2f245829Sagcdrivers/scsi/scsi_dma.c:248: 49*2f245829Sagc SDpnt->type == TYPE_DISK || SDpnt->type == TYPE_MOD || SDpnt->type == TYPE_OSD) { 50*2f245829Sagc 51*2f245829Sagcdrivers/scsi/scsi_scan.c:644: 52*2f245829Sagc case TYPE_OSD: 53*2f245829Sagc 54*2f245829Sagc---------- 55*2f245829SagcHints/Tips 56*2f245829Sagc---------- 57*2f245829Sagc 58*2f245829Sagc-Field testing on some workstations resulted in compiling errors if highmem support in the kernel as enabled 59