-
-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Empty serial port details on OS X 10.11 (El Capitan) Beta 3 #552
Comments
Some drivers dont seem make the information available to the same/right place for certain devices. Try a regular ftdi style device which is what we're mainly concerned with atm. See below on Yosemite:
The requisite code is here if you want to take a look: https://github.com/voodootikigod/node-serialport/blob/master/src/serialport_unix.cpp#L496 |
I did try with an FTDI device (Particle Photon). That's where I discovered the "bug" at first. When posting this issue, the Photon wasn't plugged in, so the list was incomplete. Here's the list with the Photon plugged in:
Installed driver is the FTDI VCP driver version 2.3 (which is the most recent). The only other thing that I noticed is different is the file name of the FTDI device. |
Yosemite resolves my Photon correctly.
|
Yeah, both my Spark Core and Photon work fine on Yosemite. Since you also have experience with the Photon: the initial setup has you do Now it's possible the FTDI driver is broken on El Capitan and just doesn't publish the manufacturer, serial number etc. or this library needs a fix for El Capitan. In any case, it's not really urgent. There will probably be several more El Capitan betas before the final release and who knows what's going to change. I just thought I'd let you guys know that there is a possible issue. |
Yeah sure, definitely happy to reopen and track it here as it changes. Are you sure you're using the FTDI VCP drivers. What if you remove them and let the default Apple ftdi plist match? |
Ok, so with the Apple driver loaded I get pretty much the same:
If I unload the Apple driver and load the FTDI driver:
I'm a bit out of my depth here since I have never worked with drivers directly. Besides unloading/loading the kext and replugging the device in between there is nothing else I'd have to do, right? |
I'm seeing this as well with the 10.11 beta (15A226f). It's preventing communication with my X-Carve. I took a stab at debugging it yesterday but I went into a rathole of trying to get the right dependencies to compile and ended up with a bit of a mental breakdown. |
So the problem here is that IOUSBDevice has turned into IOUSBHostDevice in the IO Registry and the search algorithm in GetUsbDevice() is failing to find the right entries. The data is there, but I'm not sure how to find it.
There's no kIOUSBHostDevice, and various stabs I've made at making tiny tweaks to the code have failed to do the right thing. I'm wondering if it might be better to restructure this to start with the serial node and work up the tree from there. |
Wondering what the current status of this is? El Capitan is scheduled for release in 2 days. |
Apple claims that IOUSBDevice should continue to work in El Capitan (https://developer.apple.com/library/prerelease/mac/releasenotes/Darwin/RN_USB/Articles/10_11Changes.html#//apple_ref/doc/uid/TP40007739-CH3-SW1) so I'm curious what's going on here. I can confirm this is still an issue on the El Capitan Gold Master though. |
Confirming that this is an issue after release... |
Double confirmed |
I also have this problem. Why am I always so eager to upgrade? |
That's why they call it "the bleeding edge"! And to make my comment be nearly useful, @oskay has done some digging on Pyserial and found some kind of fix in reading twice. evil-mad/wcb-ink#42 Might possibly lead to a better understanding of what it could take to get the right information, or it's a red herring ;) 🐟 |
@darkwinternight, where exactly did you change the name of your device—in the |
Back in July when I was playing with this and wanted to get my milling machine working, I made some local hacks and got it to the "works for me" stage. I remember thinking I needed to do a bunch more work before submitting a pull request, but now it's October and I've forgotten everything about it. So I'm just dropping this here on the off chance it helps somebody: masto/node-serialport@113378b [edit] Ah, looking at it I see now why it's not production-worthy. I just look for a node where "USB Product Name" = "Generic CDC". That isn't necessarily going to find all serial ports, just the ones I'm interested in. Probably the whole device matching logic needs to be rewritten to change the assumptions, if it's going to work on both pre-and-post El Capitan. |
@helenvholmes inside the node-serial package |
Look at this https://www.youtube.com/watch?v=0zuRukW7o0A
|
@xvoland this is a great find 😄 Sadly this did not resolve the problem for me on El Capitan. Still getting empty port objects when listing. This might solve for unsigned drivers that SIP is blocking and hence the devices not showing up, but this is slightly different - the devices show up but no info about them is being returned. I can verify that my Arduino IDE still works with an Uno, but not listing correctly in serialport. Does anyone have the same experience as this? |
We have also confirmed that the issues are independent of SIP. |
I've traced this issue down to |
Similar issue here, although I am having a hard time following the content of this thread. I'll just watch. |
If you want to hack around it locally, I think the code I posted earlier should work (maybe you need to change the product name to match your device). I've been using it for several months. IMO there are too many assumptions about the structure of the IO Registry tree in the current code to get a "proper" fix (i.e. one that works for all devices, on all OS versions) by just changing a line or two. If nobody else is particularly excited by that, I may take a stab at it tomorrow. |
I tried pluggin in my intel edison with my mac running el capitan. Cant see the cu.usbserial in /dev |
has anyone got a working solution? |
The solution was pulled into master some time ago #607 Just update to latest. If you don't want 2.x.x for some reason, youre going to have to back port that patch. |
It appears as though the registry topology has changed in 10.11. In order to fix that, this code assumes nothing about the path, but instead works on the assumption that we can already find the registry entry as soon as the device is enumerated. By increasing the bounds of the search we have a better chance of finding the registry entry that we are looking for refs: serialport/node-serialport#552
Hey,
I just wanted to let you know that on OS X 10.11 (El Capitan, Beta 3), the serial ports can be enumerated correctly, but vendorId, productId, etc. are always empty:
Anything I can do to help debug this?
The text was updated successfully, but these errors were encountered: