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