Lars Melin <larsm17@xxxxxxxxx> writes: > On 2016-01-14 20:02, Oliver Neukum wrote: >> On Wed, 2016-01-06 at 23:50 -0200, Jose Alonso wrote: > >>> In order to run Heimdall, I think that a better solution would be to >>> temporarily "blacklist" the module "cdc_acm". >> >> No. That is no solution. A user may really need cdc-acm. >> Your work around may cut somebody's connect to the web. >> >> Regards >> Oliver > > Heimdall could easily unbind the cdc_acm driver from the device when > it wants to communicate directly with the endpoints and not going > through the created ttyACM device. It already does that: bool BridgeManager::ClaimDeviceInterface(void) { Interface::Print("Claiming interface...\n"); int result = libusb_claim_interface(deviceHandle, interfaceIndex); #ifdef OS_LINUX if (result != LIBUSB_SUCCESS) { detachedDriver = true; Interface::Print("Attempt failed. Detaching driver...\n"); libusb_detach_kernel_driver(deviceHandle, interfaceIndex); Interface::Print("Claiming interface again...\n"); result = libusb_claim_interface(deviceHandle, interfaceIndex); } #endif (from https://github.com/Benjamin-Dobell/Heimdall/blob/master/heimdall/source/BridgeManager.cpp#L230 ) IIUC, the problem is that cdc-acm does this when probing the device: acm->line.dwDTERate = cpu_to_le32(9600); acm->line.bDataBits = 8; acm_set_line(acm, &acm->line); where acm_set_line() is defined as #define acm_set_line(acm, line) \ acm_ctrl_msg(acm, USB_CDC_REQ_SET_LINE_CODING, 0, line, sizeof *(line)) The 04e8:685d device is buggy as hell, and might not survive any unexpected USB request. And it probably excpects the exact USB packets received from whatever Windows tool Samsung use in their firmware developmen lab and absolutely nothing else... So unbinding the driver might not be enough. Heimdall must prevent cdc-acm from probing the device in the first place. And since this is not usable as an ACM device in any case, blacklisting it in the driver seems like the obvious choice. Bjørn -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html