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