09-19-2013, 06:35 PM | #1 |
Plugin Developer
Posts: 6,320
Karma: 3966249
Join Date: Dec 2011
Location: Midwest USA
Device: Kindle Paperwhite(10th)
|
Nook STRg doesn't eject completely?
I recently switched from a Win7 laptop to a new Win8 one.
On the new computer, when I eject my Nook STRg, it doesn't eject completely, if you will. The Nook still shows the 'USB Mode' screen, and calibre sorta still thinks it's connected. See the attached image--after I ejected using calibre, there's no Device icon, but if I try to delete a book, I get the delete confirmation for when there is a device attached. I have to physically unplug the Nook to prevent that. Since it still ejects completely as I expect on the Win7 laptop, I suspect either it's a Win8 issue or a USB driver issue of some kind. Does anyone have any ideas or advice? |
09-19-2013, 11:10 PM | #2 |
creator of calibre
Posts: 43,859
Karma: 22666666
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
|
Run in debug mode and see if you get any helpful output
|
Advert | |
|
09-20-2013, 01:04 AM | #3 |
Plugin Developer
Posts: 6,320
Karma: 3966249
Join Date: Dec 2011
Location: Midwest USA
Device: Kindle Paperwhite(10th)
|
On connect I get:
Spoiler:
I would wonder about it reporting as a NOOK_COLOR while the User-defined device info says NOOK_SIMPLETOUCH, but it reports as NOOK_COLOR on the Win7, too.
On eject, I get: Code:
Eject failed: [Error 2] The system cannot find the file specified I know some of the output above is from plugins, so I ran with --ignore-plugins, too. No change. If I eject each drive (the SD card and the Nook) as drives first, it disconnects as expected, but the drives remain defined with media removed. (This is how B&N says to eject.) When I eject from calibre, the drives themselves are removed from the system. This all seems so familiar that feel like it's a problem I solved on the last computer, too. All I remember about it is that I had to plug it into the SS-USB port and not the USB on the other side. I'm using ports labeled SS-USB on the new one, too... |
09-20-2013, 01:22 AM | #4 |
creator of calibre
Posts: 43,859
Karma: 22666666
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
|
Not much I can tell you, calibre uses the CM_Request_Device_Eject api call to eject devices. That is apparently failing on your system, not being a windows user, I haven't a clue as to why that might be.
|
09-20-2013, 01:25 AM | #5 |
creator of calibre
Posts: 43,859
Karma: 22666666
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
|
Furthermore if you are getting no error message when the sd card is not present that means the API call is reporting success.
|
Advert | |
|
09-20-2013, 01:25 AM | #6 |
You kids get off my lawn!
Posts: 4,220
Karma: 73492664
Join Date: Aug 2007
Location: Columbus, Ohio
Device: Oasis 2 and Libra H2O and half a dozen older models I can't let go of
|
I've never bothered to debug (to be honest, don't even know how). But since I switched to Win 7 I've always had to eject first from the taskbar, then from Calibre. If I don't, I have the issue with excess battery draining.
For what it's worth... |
09-20-2013, 01:53 AM | #7 |
creator of calibre
Posts: 43,859
Karma: 22666666
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
|
Looking over the source code, the reason for the error message with the SD card inserted is that the code attempts to eject the device using the drive letters in order. So when the eject is run on the main memory, all drives are removed, as the entire device is ejected. This causes the subsequent eject on the SD card to fail, harmlessly.
|
09-20-2013, 10:38 PM | #8 |
Plugin Developer
Posts: 6,320
Karma: 3966249
Join Date: Dec 2011
Location: Midwest USA
Device: Kindle Paperwhite(10th)
|
Well, I've continued looking, but either I'm the only one having this issue or I'm the only one who cares.
The answer from B&N is to eject each drive (nook & SD card) separately from the file explorer. The answer from Microsoft is 'Safely Remove and Eject' from systray. The programmatic answer from Microsoft is CM_Request_Device_Eject()--which calibre already does and is equivalent to 'Safely Remove and Eject'. All I've come up with so far is that using PowerShell I can do this: Code:
$o = new-object -com Shell.Application $o.Namespace("G:\").Self.InvokeVerb("eject") $o.Namespace("H:\").Self.InvokeVerb("eject") |
09-20-2013, 10:43 PM | #9 |
creator of calibre
Posts: 43,859
Karma: 22666666
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
|
I'll see if it is possible to create an eject utility that first ejects individual drives and then uses CM_Request_Device_Eject
That might do the trick, or it might not...microsofts device subsytem is truly terrible. |
09-21-2013, 12:17 AM | #10 |
creator of calibre
Posts: 43,859
Karma: 22666666
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
|
Try the attached eject utility, to use it run
calibre-eject.exe E F replace E and F with the drives of your nook. This will first eject the individual drives using the technique described here: http://support.microsoft.com/kb/165721 and then call CM_Request_Eject_Device |
09-21-2013, 01:52 AM | #11 |
creator of calibre
Posts: 43,859
Karma: 22666666
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
|
Oh and the code is here, in case you want to play with it.
https://github.com/kovidgoyal/calibr...506f6472277b4a |
09-21-2013, 11:22 AM | #12 | |
Plugin Developer
Posts: 6,320
Karma: 3966249
Join Date: Dec 2011
Location: Midwest USA
Device: Kindle Paperwhite(10th)
|
Quote:
|
|
09-21-2013, 01:41 PM | #13 | |
Grand Sorcerer
Posts: 12,168
Karma: 73448616
Join Date: Nov 2007
Location: Toronto
Device: Nexus 7, Clara, Touch, Tolino EPOS
|
For a long time I've made use of one of the Sysinternal's tools; SYNC.
Quote:
I often do a "sync -e p:" where P is my Kobo. |
|
09-21-2013, 05:16 PM | #14 |
Plugin Developer
Posts: 6,320
Karma: 3966249
Join Date: Dec 2011
Location: Midwest USA
Device: Kindle Paperwhite(10th)
|
For those following along at home, Kovid has committed changes for the next calibre release (presumably) that will add a new command line program for the windows install, 'calibre-eject', described as a 'Helper program for ejecting connected reader devices'.
Since I'm the only one asking for it, I completely agree with his decision not to add it to the eject code used by everyone. Thanks, Kovid, I appreciate it. |
09-21-2013, 10:44 PM | #15 |
creator of calibre
Posts: 43,859
Karma: 22666666
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
|
@JimmXinu: The new calibre-eject helper program will be used for everyone. See the changes to usbms/device.py that I linked to earlier.
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Nook HD Tablet doesn't come up on Calibre | purple_fishy | Barnes & Noble NOOK | 7 | 05-15-2013 05:36 PM |
Nook for PC doesn't display graphics | ButterflyBill | ePub | 8 | 09-28-2011 04:53 PM |
Kindle doesn't disconnect/eject from PC?? | AFK_Matrix | Amazon Kindle | 4 | 05-21-2011 08:27 PM |
new computer doesn't recognize nook | clearrrskyyy | Barnes & Noble NOOK | 0 | 03-28-2011 10:56 PM |
Shortcut to eject nook and SD card? | BarryR | Barnes & Noble NOOK | 2 | 01-23-2011 12:28 PM |