OpenELEC/OpenELEC.tv — pull request #269 by eesprit (2012-03-03 18:24:12+00:00)
Title: iSCSI support

Hi,

Those patches + package add iSCSI support to openelec.
Actually, openelec already support NBD boot (Network Block Device).
iSCSI has the same goals as NBD, except that iSCSI is an accepted industry standard, even available on home devices (Synology, or QNap NAS supports it, FreeNAS too) whereas NBD isn't (UNIX only).

I take a lot of care to be sure that the added code doesn't break anything :
- the iscsistart command is only built and installed in intramfs if ISCSI_SUPPORT="yes" is defined in options (by default "no", and if ISCSI_SUPPORT isn't defined at all, then it does not built nor even downloaded the source package).
- the init script works as before, it just call iscsistart if some kernel boot options relative to ISCSI are passed. It changes nothing to the boot process (iscsistart will create one or several block device(s) as /dev/sdX, that's all)
- I'm using it for month, no problem at all.
For reference : http://openelec.tv/forum/12-guides-tips-and-tricks/7636-iscsi-on-boot-support

The source package is hosted on my own website because open-iscsi hasn't release a tarball since august (http://www.open-iscsi.org/bits/) and iBFT support (iSCSI Boot Firmware Table), which is a killing feature, is only available from git.
You can modify the PKG_SITE to point to the openelec.tv website + build a tarball from open-iscsi GIT (http://github.com/mikechristie/open-iscsi) if you have security concerns, which I, as a sysadmin, will totally understand.

I made the default to not build "iscsistart" to not make the kernel heavier, but that only add ~300Ko to it :
$ ll target/
total 216064
-rw-r--r-- 1 esprit esprit 3886288 mars 3 18:37 OpenELEC-ION.x86_64-devel-20120303165221-r9979.kernel
-rw-r--r-- 1 esprit esprit 4175424 mars 3 18:52 OpenELEC-ION.x86_64-devel-20120303184850-r9979.kernel

Feel free to ask questions or comments if you have anything stopping you to include this in the official repository.

Cheers ! ;-)