我有一张带有运行 Linux 的 IMX6 CPU 的物理卡(我从制造商网站的源代码编译的内核)。我还有一个 USB 蜂窝调制解调器加密狗,我想与该卡一起使用。然而,当我将加密狗插入卡中时,我在 dmesg
中得到了这个:
[ 29.825491] usb 1-1: new high-speed USB device number 2 using ci_hdrc
[ 29.983396] usb-storage 1-1:1.0: USB Mass Storage device detected
[ 29.991796] scsi0 : usb-storage 1-1:1.0
[ 30.987573] scsi 0:0:0:0: Direct-Access ALCATEL Mass Storage 2.31 PQ: 0 ANSI: 2
[ 30.996027] scsi 0:0:0:1: CD-ROM ALCATEL Mass Storage 2.31 PQ: 0 ANSI: 2
[ 31.008487] sd 0:0:0:0: [sda] Attached SCSI removable disk
看起来 Linux 将该设备识别为大容量存储设备(它兼作存储设备),而不是调制解调器。当我将同一个加密狗插入普通的 Ubuntu 机器时,我得到了这个:
[264822.947101] usb 1-5: new high-speed USB device number 12 using ehci-pci
[264823.086874] usb 1-5: New USB device found, idVendor=1bbb, idProduct=0017
[264823.086880] usb 1-5: New USB device strings: Mfr=3, Product=2, SerialNumber=[REDACTED]
[264823.086883] usb 1-5: Product: HSPA Data Card
[264823.086886] usb 1-5: Manufacturer: USBModem
[264823.086888] usb 1-5: SerialNumber: [REDACTED]
[264823.089483] option 1-5:1.0: GSM modem (1-port) converter detected
[264823.089685] usb 1-5: GSM modem (1-port) converter now attached to ttyUSB1
[264823.089816] option 1-5:1.1: GSM modem (1-port) converter detected
[264823.090019] usb 1-5: GSM modem (1-port) converter now attached to ttyUSB2
[264823.090150] option 1-5:1.2: GSM modem (1-port) converter detected
[264823.090311] usb 1-5: GSM modem (1-port) converter now attached to ttyUSB3
[264823.090433] option 1-5:1.3: GSM modem (1-port) converter detected
[264823.090574] usb 1-5: GSM modem (1-port) converter now attached to ttyUSB4
[264823.090666] usb-storage 1-5:1.4: USB Mass Storage device detected
[264823.090916] scsi host16: usb-storage 1-5:1.4
[264823.091067] option 1-5:1.5: GSM modem (1-port) converter detected
[264823.091133] usb 1-5: GSM modem (1-port) converter now attached to ttyUSB5
[264824.089843] scsi 16:0:0:0: Direct-Access ALCATEL Mass Storage 2.31 PQ: 0 ANSI: 2
[264824.090238] sd 16:0:0:0: Attached scsi generic sg2 type 0
[264824.093552] sd 16:0:0:0: [sdb] Attached SCSI removable disk
我知道如何通过在 menuconfig
中选择它们来在外部和内核中编译模块。但是,我不知道我应该为这个设备编译哪些模块,如果它们包含在内核源代码中的话。我如何找到要编译的模块/驱动程序?
最佳答案
USB 调制解调器通常作为大容量存储设备启动,以允许安装驱动程序。
您可以使用 USB_ModeSwitch 等软件强制它改变模式。 (这可能已经安装并在您的 Ubuntu 系统上运行)
如果做不到这一点,许多人会在弹出存储空间时切换模式(如通过 eject
)。
关于linux - USB调制解调器的交叉编译驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35827772/