![Ubuntu Touch - USB 串行驱动程序/模块](https://linux22.com/image/873458/Ubuntu%20Touch%20-%20USB%20%E4%B8%B2%E8%A1%8C%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F%2F%E6%A8%A1%E5%9D%97.png)
我有一台 BQ Aquarius E4.5,想将它连接到各种外围设备,以便用于远程监控/遥测。如果我能让 USB 串行适配器工作,这将很容易做到。
我有一根随身 USB 线,可以插入 USB 记忆棒,它就能正常工作。到目前为止一切顺利。
我尝试插入标准 Aten USB/串行适配器,看到 usbdev1.x 设备出现在 /dev/ 中,但没有看到 /dev/serial 和 /dev/ttyUSB0,就像我将其插入常规 Debian 机器时看到的那样。
同样,插入 Arduino Nano(使用 Future Devices USB UART)即可:Nano 获得电源并且出现 /dev/usbdev1.x 设备 - 但没有 /dev/serial 和 /dev/ttyUSB0。
/var/log/syslog 中除了“USB 设备已连接”之外没有出现任何消息。
我遗漏了什么? 是不是“仅仅” USB 串行模块? 然后 - 如何安装它?
该手机运行的是 Ubuntu Touch 15.04 (r23)。
答案1
感谢 ubuntu,要获得该功能,您必须重新编译内核。如果您仍然感兴趣,请阅读以下内容 :)
所有 USB 串行适配器在任何 UT 内核中都默认禁用。(感谢 ubuntu 如此不酷)[讽刺] 因为你应该只将此设备用于社交* webapps(推特、fazebook、盯着 UT 日历),不敢做任何酷的事情 [讽刺]。查看内核的源代码https://github.com/bq/aquaris-E4.5/tree/aquaris-E4.5/ 更改配置文件以启用您的 USB UART 设备,然后进行交叉编译(我认为最新的最佳说明是如何执行此操作的:https://sturmflut.github.io/ubuntu/bq/2015/07/02/hacking-the-bq-part-4-building-and-booting-a-kernel/) 您应该在上述链接教程中描述的步骤 3 中添加支持您自己的 USB UART 设备的行。要知道要编写的确切字符串,最好查看主线默认内核 (3.4) 树,并添加相应的行。或者查看以下内容....
E.5 源代码树太乱了,我找不到此设备的确切 defconfig,但我熟悉 bq M10 的 defconfig(请注意,它是内核 3.10,而不是 E4.5 上的 3.4,某些设备驱动程序在 3.4 树中不可用),我在下面提供了摘录。找到您的设备,并将确切的字符串复制到之前给出的链接中提到的“项目”配置文件中,并按照说明进行操作,取消注释并将其设置为“y”,步骤 3 如下:
#
# USB port drivers
#
CONFIG_USB_SERIAL=y
# CONFIG_USB_SERIAL_CONSOLE is not set
# CONFIG_USB_SERIAL_GENERIC is not set
# CONFIG_USB_SERIAL_AIRCABLE is not set
# CONFIG_USB_SERIAL_ARK3116 is not set
# CONFIG_USB_SERIAL_BELKIN is not set
# CONFIG_USB_SERIAL_CH341 is not set
# CONFIG_USB_SERIAL_WHITEHEAT is not set
# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
# CONFIG_USB_SERIAL_CP210X is not set
# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
# CONFIG_USB_SERIAL_EMPEG is not set
# CONFIG_USB_SERIAL_FTDI_SIO is not set
# CONFIG_USB_SERIAL_FUNSOFT is not set
# CONFIG_USB_SERIAL_VISOR is not set
# CONFIG_USB_SERIAL_IPAQ is not set
# CONFIG_USB_SERIAL_IR is not set
# CONFIG_USB_SERIAL_EDGEPORT is not set
# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
# CONFIG_USB_SERIAL_F81232 is not set
# CONFIG_USB_SERIAL_GARMIN is not set
# CONFIG_USB_SERIAL_IPW is not set
# CONFIG_USB_SERIAL_IUU is not set
# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
# CONFIG_USB_SERIAL_KEYSPAN is not set
# CONFIG_USB_SERIAL_KLSI is not set
# CONFIG_USB_SERIAL_KOBIL_SCT is not set
# CONFIG_USB_SERIAL_MCT_U232 is not set
# CONFIG_USB_SERIAL_METRO is not set
# CONFIG_USB_SERIAL_MOS7720 is not set
# CONFIG_USB_SERIAL_MOS7840 is not set
# CONFIG_USB_SERIAL_MOTOROLA is not set
# CONFIG_USB_SERIAL_NAVMAN is not set
# CONFIG_USB_SERIAL_PL2303 is not set
# CONFIG_USB_SERIAL_OTI6858 is not set
# CONFIG_USB_SERIAL_QCAUX is not set
# CONFIG_USB_SERIAL_QUALCOMM is not set
# CONFIG_USB_SERIAL_SPCP8X5 is not set
# CONFIG_USB_SERIAL_HP4X is not set
# CONFIG_USB_SERIAL_SAFE is not set
# CONFIG_USB_SERIAL_SIEMENS_MPI is not set
# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
# CONFIG_USB_SERIAL_SYMBOL is not set
# CONFIG_USB_SERIAL_TI is not set
# CONFIG_USB_SERIAL_CYBERJACK is not set
# CONFIG_USB_SERIAL_XIRCOM is not set
CONFIG_USB_SERIAL_WWAN=y
CONFIG_USB_SERIAL_OPTION=y
# CONFIG_USB_SERIAL_OMNINET is not set
# CONFIG_USB_SERIAL_OPTICON is not set
# CONFIG_USB_SERIAL_VIVOPAY_SERIAL is not set
# CONFIG_USB_SERIAL_XSENS_MT is not set
# CONFIG_USB_SERIAL_ZIO is not set
# CONFIG_USB_SERIAL_WISHBONE is not set
# CONFIG_USB_SERIAL_ZTE is not set
# CONFIG_USB_SERIAL_SSU100 is not set
# CONFIG_USB_SERIAL_QT2 is not set
# CONFIG_USB_SERIAL_DEBUG is not set
不残缺的 Linux 只需编译缺少的内核模块即可工作。但在这个类似 Android 的内核中,我非常不确定它是否可以与模块一起工作,至少我找不到任何说明如何在这些联发科 Android 设备上做到这一点。
Ubuntu 似乎从内核中删减了很多好东西,可能是为了隐藏 Unity 占用的大量内存。这种默认设置使得平板电脑/手机无法使用 UT 进行除阅读邮件、发推文、查看 UT 日历和计算 1+1 之外的任何操作。默认情况下,没有什么很酷的功能。