Home > iSCSI, NAS, Tech > iSCSI initiator (netbsd-iscsi-initiator) for OS X Mountain Lion (10.8.2)

iSCSI initiator (netbsd-iscsi-initiator) for OS X Mountain Lion (10.8.2)

January 13th, 2013 Leave a comment Go to comments

I am playing around with iSCSI for my macbook pro. Looked around and the used to be free SNS globalSAN iSCSI is no longer free. ATO is too expensive to play with. Saw that macport has a netbsd-iscsi, so went that route.


$ sudo port install netbsd-iscsi-initiator
---> Computing dependencies for netbsd-iscsi-initiator
---> Dependencies to be installed: netbsd-iscsi-lib
---> Building netbsd-iscsi-lib
Error: org.macports.build for port netbsd-iscsi-lib returned: command execution failed
Error: Failed to install netbsd-iscsi-lib
Please see the log file for port netbsd-iscsi-lib for details:
/opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_netbsd-iscsi-lib/netbsd-iscsi-lib/main.log
Error: The following dependencies were not installed: netbsd-iscsi-lib
To report a bug, follow the instructions in the guide:

http://guide.macports.org/#project.tickets

Error: Processing of port netbsd-iscsi-initiator failed

Poking in main.log show the error at compiling disk.c.


:info:build /bin/sh ../../libtool --tag=CC --mode=compile /usr/bin/clang -DHAVE_CONFIG_H -I. -I../../include -I../../include -I/opt/local/include -pipe -O2 -arch x86_64 -MT libiscsi_la-disk.lo -MD -MP -MF .deps/libiscsi_la-disk.Tpo -c -o libiscsi_la-disk.lo `test -f 'disk.c' || echo './'`disk.c
:info:build /usr/bin/clang -DHAVE_CONFIG_H -I. -I../../include -I../../include -I/opt/local/include -pipe -O2 -arch x86_64 -MT libiscsi_la-disk.lo -MD -MP -MF .deps/libiscsi_la-disk.Tpo -c disk.c -fno-common -DPIC -o .libs/libiscsi_la-disk.o
:info:build disk.c:811:40: error: assignment to cast is illegal, lvalue casts are not supported
:info:build *((uint64_t *) ((void *)data + 8)) = (uint64_t) ISCSI_HTONLL(key);
:info:build ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
:info:build 1 error generated.
:info:build make: *** [libiscsi_la-disk.lo] Error 1

So I patched that line.


- *((uint64_t *) (void *)data + 8) = (uint64_t) ISCSI_HTONLL(key);
+ *((uint64_t *) ((void *)data + 8)) = (uint64_t) (ISCSI_HTONLL(key));

and now it builds. I just got to play with this to see if it works. More to report later.

Categories: iSCSI, NAS, Tech Tags: ,
  1. Dennis Juhler Aagaard
    January 14th, 2013 at 14:15 | #1

    Please keep us posted about this development. If you like i would like to test the binary if you pack it. :-)
    -Dennis

  2. January 14th, 2013 at 14:28 | #2

    I run into some other issues in getting it to work with my ReadyNAS NV+. I need to put sometime into debugging this. Then I’ll put together a HOW-TO using this initiator.

    tinmbp:~ tin $ sudo iscsi-initiator -v 5 -h 192.168.2.60 -D
    pid 1397:initiator.c:2222: ***ERROR*** Bad Status-Class: got 2, expected 0
    pid 1397:initiator.c:2018: ***ERROR*** initiator_cmd_t failed
    pid 1397:initiator.c:716: ***ERROR*** login_phase_i() failed
    pid 1397:initiator.c:1301: ***ERROR*** enqueue_worker: discovery_phase() failed (ignoring command)
    
  3. February 5th, 2013 at 08:25 | #3

    Thanks for documenting your patch. I’ve built it as well and am also looking into resolving the other bugs. Just curious if you ever got any further before I put too much work into this.

  4. February 5th, 2013 at 23:15 | #4

    Sorry, I’ve been so busy that I have not had time to work on this. Feel free to jump in.

  1. No trackbacks yet.