SanLink2 8GFC driver no-go with 10.13

  • 2.1K Views
  • Last Post 12 October 2017
Jyri Palm posted this 27 September 2017

We have a Vtrak system connected to the cylinder MacPro via SanLink, and after doing this update the drives do not mount.  We also have the 10G unit which the new driver fixed.

I don't know if it is the 8G driver, but the system complained that it prevented a Promise extension from loading.  If I go to the Security panel there's a button that says "Allow" but pressing it does nothing, the pane locked or unlocked.

Order By: Standard | Latest | Votes
P B posted this 27 September 2017

I don't know if it is the 8G driver, but the system complained that it prevented a Promise extension from loading.

A. Are you running driver 2.0.7 and do you have any logs indicating why the kernel extension can't load?
B. Did you try to manually start the kernel extension? If so, what error did you receive?
C. Please document your issue, contact Promise Technical Support, and create a case via https://support.promise.com

1. The current SL2 kernel extension (2.0.7) does load properly on the official release of macOS 10.13 (17A365).

kextstat | grep -i sanlink
  182    0 0xffffff7f80f50000 0x90000    0x90000    com.promise.SANLink-FC (2.0.7) 34C49629-A3DA-377A-A705-A2BEBF2FD758 <78 12 5 4 3 1>

2. macOS 10.13 Build Info:

sw_vers
ProductName: Mac OS X ProductVersion: 10.13 BuildVersion: 17A365

3. SANLink2 Utility Info:

mdls -name kMDItemVersion /Applications/SANLink\ Utility.app/
kMDItemVersion = "1.04.0000.08"

4. Kernel logs illustrating the driver initialization phase/sequences:
Note - The same driver can detect the SANLink3 F2; therefore, you will see log entries indicating it could not detect a SANLink3 model.

2017-09-27 01:57:39.037082-0400  localhost kernel[0]: (SANLink-FC) [SL] SANLink2 Driver Loaded
2017-09-27 01:57:40.586824-0400  localhost kernel[0]: (SANLink-FC) [SL] : No SANLink3 F2 connect to the system ...
2017-09-27 01:57:40.907589-0400  localhost kernel[0]: (SANLink-FC) [SL] : No SANLink3 F2 connect to the system ...
2017-09-27 01:57:43.179426-0400  localhost kernel[0]: (SANLink-FC) [SL] ocs_lnx_xport_new_tgt to tgt 0 ctrl:2
2017-09-27 01:57:43.179456-0400  localhost kernel[0]: (SANLink-FC) [SL] begin tgt #0 ctrl:2
2017-09-27 01:57:43.498592-0400  localhost kernel[0]: (SANLink-FC) [SL] ocs_lnx_xport_new_tgt to tgt 0 ctrl:1
2017-09-27 01:57:43.498674-0400  localhost kernel[0]: (SANLink-FC) [SL] begin tgt #0 ctrl:1
2017-09-27 01:57:43.995536-0400  localhost kernel[0]: (SANLink-FC) [SL] finish tgt #0 1 ctrl:2
2017-09-27 01:57:44.314438-0400  localhost kernel[0]: (SANLink-FC) [SL] finish tgt #0 1 ctrl:1

5. mpioutil list (Example with A-Class - A3800f)

    Alias            Vendor           Product          LUN Identifier                      Algorithm             
  1 A_DATA2          Promise          VTrak A3800f     22A7000155EBFECD                    Least Bytes           
  2 A_DATA1          Promise          VTrak A3800f     2272000155237605                    Least Bytes  

6. System Profiler Fibre Channel Domain Excerpt (for security reasons, I have used 'X' place holders for the Node & Port WWNs):

system_profiler SPFibreChannelDataType
Fibre Channel:

    Fibre Channel Domain 1:

      Vendor: Promise
      Product: SANLINK
      Revision: Firmware 1.1.58.0 Hardware b
      Initiator Identifier: 3791655135
      Node World Wide Name: XX:XX:XX:XX:XX:XX:XX:XX
      Port World Wide Name: XX:XX:XX:XX:XX:XX:XX:XX
      Address Identifier: 00:00:02
      Description: Port 1
      Speed: 8 Gigabit
      Topology: Automatic (Point-to-Point)
      Status: Link Established
      Cable Type: Fiber Optic

Fibre Channel Domain 0: Vendor: Promise Product: SANLINK Revision: Firmware 1.1.58.0 Hardware b Initiator Identifier: 3791655135 Node World Wide Name: XX:XX:XX:XX:XX:XX:XX:XX Port World Wide Name: XX:XX:XX:XX:XX:XX:XX:XX Address Identifier: 00:00:02 Description: Port 0 Speed: 8 Gigabit Topology: Automatic (Point-to-Point) Status: Link Established Cable Type: Fiber Optic

Jyri Palm posted this 27 September 2017

1. I only get the 10G driver for kextstat.

2. Same version/build for the OS.

3. SANLink 2 Utility is correct, though I was pulling up the old SANLink at first (dropped 2 in the command above).

4. I see no Kernel entries for FC, since upgrading, even after reinstalling F_MacDrv_V2.0.7.pkg and rebooting.

5. No output for mpioutil list.

6. No output for system_profiler SPFibreChannelDataType, but the GUI does show SANLink2 8GFC for Thunderbolt Bus 1.

Is there something I can do to clear out any old drivers, and try and reinstall again?  Security & Privacy still shows "Software from developer "Promise Technology Mobile Apps" was blocked from loading." So it seems something is hung up in there.

 

P B posted this 28 September 2017

1. Try loading the kext manually using the bundle identifier flag:

sudo kextload -b com.promise.SANLink-FC

OR load it by the location of the kext:

sudo kextload /Library/Extensions/SANLink-FC.kext

2. If loading it manually returns an error such as:

failed to load - (libkern/kext) not loadable (reason unspecified); check the system/kernel logs for errors or try kextutil(8).

2A. You can delete the Kernel Extension located in:

sudo rm -rf /Library/Extensions/SANLink-FC.kext

3. If you executed step 2A, restart the machine and then reinstall the SL2 (2.0.7) driver again.
4. I hope you're doing this on the officially released version of macOS 10.13 (17A365) and not a developer build.
4A. What you're describing, sounds like an issue reported in the Apple Developer Forums:
https://forums.developer.apple.com/thread/79172

For further assistance, please open a case at https://support.promise.com

Jyri Palm posted this 29 September 2017

Indeed this is the issue. "com.promise.SANLink-FC failed to load - (libkern/kext) system policy prevents loading; check the system/kernel logs for errors or try kextutil(8)."

I deleted, rebooted, reinstalled, rebooted, and no dice.  The "Allow" button in the Security pane does nothing, though it never went away after I deleted that kext and rebooted, and the driver for the 10G is working fine.

Opened a support case.

P B posted this 12 October 2017

Please do the following:

1. Delete the SANLink-FC.kext

sudo rm -rf /Library/Extensions/SANLink-FC.kext

2. Shutdown your machine.
3. Reset the NVRAM on your Mac by following this KB:

How to reset NVRAM on your Mac

4. Once you've reset your NVRAM on your Mac and have successfully booted into macOS 10.13, install the driver again.
5. Once prompted to restart the machine by the SL2 driver installer, you will receive a message that the Kernel Extension has been blocked (This is due to User Approved Kernel Extension Loading).
6. Just click OK on the message:
(Note - The message will appear during the installation as the installer is writing the kernel extension to your OS under /Library/Extensions/ and also writing to the kext database)



7. Click Restart via the Installer.
8. One the machine reboots and you successfully login, go to System Preferences > Security & Privacy.
9. You will see the following message:

10. Click Allow and you will be prompted with the following:

11. If you click OK, then you'll have to manually restart your computer. If you click Restart, it'll restart your machine.

12. You can always check the DB to ensure that the kext policy allows the Kernel Extension to load:
0 = Not Allowed to load.
1 = Allowed to load.

sqlite3 /private/var/db/SystemPolicyConfiguration/KextPolicy '.dump kext_policy'
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE kext_policy ( team_id TEXT, bundle_id TEXT, allowed BOOLEAN, developer_name TEXT, flags INTEGER, PRIMARY KEY (team_id, bundle_id) );
INSERT INTO kext_policy VALUES('268CCUR4WN','com.promise.SANLink-FC',1,'Promise Technology Mobile Apps',1);
COMMIT;

13. Check if the SL2 kernel extension loaded by:

kextstat | grep -i sanlink
  182    0 0xffffff7f80f50000 0x90000    0x90000    com.promise.SANLink-FC (2.0.7) 34C49629-A3DA-377A-A705-A2BEBF2FD758 <78 12 5 4 3 1>

13A. You can always check what Kernel Extensions are loaded via System Information > Software > Extensions

14. If for some reason it did not load, load it manually:

sudo kextload -b com.promise.SANLink-FC

15. As long as the SL2 is connected to the TB bus after you complete the above steps, the kernel extension should load automatically. 

This information should get you squared away.

Jyri Palm posted this 12 October 2017

Thanks.  I may try that next time I have physical access to the machine (about a month from now).  Perhaps a new driver will come out before then which would eliminate the need.

P B posted this 12 October 2017

Thanks.  I may try that next time I have physical access to the machine (about a month from now).  Perhaps a new driver will come out before then which would eliminate the need.

It's not the driver's fault, it's due to User Approved Kernel Extension Loading in macOS 10.13. All third party drivers installed require consent from the end-user in macOS 10.13, unless you disable User Approved Kernel Extension Loading all together.

Please read Apple's KB that I posted above for your reference.

You stated:


The "Allow" button in the Security pane does nothing, though it never went away after I deleted that kext and rebooted, and the driver for the 10G is working fine.


In your case, something is stuck in cache (where Allow doesn't remove the message or simply does nothing in
Security & Privacy).
The message on your macOS host in Security & Privacy still remained with the Kernel Extension not being present (deleted). 

When you click Allow, it modifies the kext policy database. 
My instructions above (Clearing the NVRAM) will allow you to consent and load the kernel extension. Once you consent (clicking Allow), you won't have to consent to the kernel extension to load ever again as the database already has the table updated (Once you Allow the kernel extension to load).

This issue has nothing to do with Promise; moreover, a new "feature/enhancement" in macOS 10.13.

I have installed the SL2 driver on (3) 10.13 fresh machines and I consented the kernel extension to load.
This is how 10.13 behaves when installing kernel extensions.

The part where you deleted the kext and the message still remained there, might be something that Apple is aware about and "may" address this in 10.13.1. This is why I stated clearing the NVRAM will resolve your issue.

Close