The server ('target') is running OmniOS, an OpenSolaris/Illumos derivative. I think that is working alright because if I follow the instructions for initiating a connection on an already-running Gentoo client ('initiator'), it all works fine.

and that NFS line is the working one so static IP is working correctly.

That stuff is all on a small local boot filesystem on flash storage --- I'm not using TFTP / PXE.

The other deviation from the published instructions is that I'm not using initrd as I don't see why it should be needed or what would go in it.

I've experimented with the boot line, adding real_root=/dev/sdb1, and adding :3260 to the iscsi_address argument.

I stress that the panic occurs when it tries to mount the boot iSCSI disk. I've already prepared the disk (as the presence of /dev/sdb1 above implies) by mounting it from the running system, then copying everything from a snapshot of the NFS root filesystem, but it isn't getting as far as complaining about init not found or anything like that.

So can anyone suggest what might be going wrong ?_________________Michael Mounteney

The answer is that iSCSI requires certain libraries to be loaded, so an initrd with busybox and other bits is required. Run away.

Making it out to be much more difficult then it needs to be. All that is needed is to install 'genkernel' and run the following to generate the initramfs:

genkernel --install --iscsi initramfs

You will find a initramfs now in your /boot directory.
This command works even if you don't use genkernel to create the kernel.

In addition to the kernel options you listed, make sure you select the iscsi_ibft driver as well. Its located at Firmware Drivers -> iSCSI Boot Firmware Table Attributes.
Also, I found that no matter if I compile the iscsi drivers into the kernel or as modules, the initramfs was still needed - I got kernel panic on boot without it.