Search code examples
macosdriverkernel-extension

CH34x driver/kext installation OSX Sierra


I'm trying to get the drivers on OSX Sierra running. But no result.

My research got me to the following sites: https://github.com/adrianmihalko/ch340g-ch34g-ch34x-mac-os-x-driver https://tzapu.com/ch340-ch341-serial-adapters-macos-sierra/ https://blog.sengotta.net/signed-mac-os-driver-for-winchiphead-ch340-serial-bridge/ http://www.wch.cn/download/CH341SER_MAC_ZIP.html (announced as latest version)

Before i've tried to install them i tried this while i was in recovery mode ( restart with ⌘ + R ).

csrutil enable --without kext

Afterwards i've tried to install the drivers.

This didn't worked out so i've disabled csrutil in recovery mode too.

csrutil disable

My steps for installing each driver

While csrutil is disabled.

  1. Remove the old driver
  2. Install the new one

Removing the driver:

$ sudo su
$ find / | grep usbserial/Library/Extensions/usbserial.kext
...
/Library/Extensions/usbserial.kext/Contents
/Library/Extensions/usbserial.kext/Contents/_CodeSignature
/Library/Extensions/usbserial.kext/Contents/_CodeSignature/CodeResources
/Library/Extensions/usbserial.kext/Contents/Info.plist
/Library/Extensions/usbserial.kext/Contents/MacOS
/Library/Extensions/usbserial.kext/Contents/MacOS/usbserial
/Library/Extensions/usbserial.kext/Contents/Resources
/Library/Extensions/usbserial.kext/Contents/Resources/en.lproj
/Library/Extensions/usbserial.kext/Contents/Resources/en.lproj/InfoPlist.strings
...
$ rm -rf /Library/Extensions/usbserial.kext
$ find / | grep wch
...
/private/var/db/receipts/com.wch.ch34xinstall.mykextdir.pkg.bom
/private/var/db/receipts/com.wch.ch34xinstall.mykextdir.pkg.plist
...
$ rm -rf /private/var/db/receipts/com.wch.*
$ csrutil status
System Integrity Protection status: disabled.

Installing the new one:

  • just installing the .pkg
  • reboot
  • searching for the driver in /dev
  • there was no driver listed

Did i missed something?

Edit: I found out the kext is not loaded. But why?  kext not loaded

Edit2: Now i loaded the kext but the serial driver is not showing in /dev.

tim:~$ sudo kextload -b com.wch.usbserial
Password:
tim:~$

kext loaded

And it is not showing in kextstats.

tim:~$ kextstat | grep com.wch.usbserial
tim:~$

But it can be found.

tim:~$ kextfind -b com.wch.usbserial
/System/Library/Extensions/usbserial.kext
/Library/Extensions/usbserial.kext

Maybe just the kext is not working?

tim:~$ sudo kextutil -b com.wch.usbserial
Password:
Warnings:
    Dependency lacks appropriate value for OSBundleRequired and may not be availalble during early boot:
        com.apple.iokit.IOSerialFamily - Safe Boot

Solution

  • It's working

    I moved the SiLabsUSBDriver ( made a backup to my desktop ), plugged in the the device and i was able to use it.

    The serial driver didn't showed up in /dev/ when no devices with a serial USB port was plugged in!

    See the following screenshot for more information about the driver. SiLabsUSBDriver screenshot