在我对带有树莓派 4“RPI 一体式”PC的评测结束时,我注意到该系统似乎也与 NanoPi M4V2 单板计算机兼容。所以我就打算试试,我现在已经试过了,事实证明在 10.1 英寸显示屏内组装电路板比我最初想象的要容易一些。这意味着我现在拥有一台运行 Ubuntu Hirsute 或 Debian Buster(可更换)和 Armbian XFCE 桌面环境的 NanoPi M4V2 一体机了。这个一体机大多数功能都是可以正常运行的,包括显示和无线连接,但触摸屏功能仍然有一些问题。

以下是我最初遵循的步骤:
- 从Armbian下载ArmbianBuster XFCE镜像,并用类似于USBimager的工具将其烧录到microSD卡。
- 将 microSD 卡插入开发板。
- 在显示器中安装 USB Type-C 和 HDMI-A 适配器。
- 将 NanoPi M4V2 SBC 的 USB Type-C 和 HDMI 端口插入适配器。
- 安装显示套件中的RPI3侧板,带有USB端口、以太网开口、下方天线接口。
- 用四颗螺丝(或三颗,因为我丢了一颗)将电路板固定在显示器上。
- 安装用于触摸屏显示器的 USB 电缆(绿色、白色、黑色)。
- 将两个 SMA 连接器连接到 RPI3 侧板的剩余两个孔

- 合上显示器的底盖,并用产品提供的螺丝固定它
- 安装两根 2.4/5.8 GHz 天线

- 连接电源线,似乎就大功告成?
实际上是,没那么快!当 Armbian 启动时,它会要求用户在终端中输入新的 root 密码。所以我连接了我的无线键盘 USB接收器,然后,我居然无法打字输入。我借了一个 USB 键盘,但我还是不能打字输入。嗯?这是怎么回事呢?接着我就断开 USB 触摸屏的连接线,然后就成功了!之后我就能够使用无线鼠标和键盘完成设置、配置 WiFi 和浏览网页了。

触摸屏不工作而且还导致其他 USB 设备不工作的问题其实真的很奇怪。那么,接下来我们一起来看看当我们连接 USB 电缆时会发生什么吧,如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Jan 23 14:43:46 nanopim4v2 kernel: [ 2022.707554] usb 5-1.3: new full-speed USB device number 5 using xhci-hcd Jan 23 14:43:46 nanopim4v2 kernel: [ 2022.846721] usb 5-1.3: New USB device found, idVendor=0416, idProduct=c168 Jan 23 14:43:46 nanopim4v2 kernel: [ 2022.846742] usb 5-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3 Jan 23 14:43:46 nanopim4v2 kernel: [ 2022.846751] usb 5-1.3: Product: MTouch Jan 23 14:43:46 nanopim4v2 kernel: [ 2022.846758] usb 5-1.3: Manufacturer: TSTP Jan 23 14:43:46 nanopim4v2 kernel: [ 2022.846765] usb 5-1.3: SerialNumber: CMTP_1.0 Jan 23 14:43:46 nanopim4v2 kernel: [ 2022.852061] usb 5-1.3: ep 0x81 - rounding interval to 32 microframes, ep desc says 40 microframes Jan 23 14:43:56 nanopim4v2 kernel: [ 2032.895554] xhci-hcd xhci-hcd.8.auto: xHCI host not responding to stop endpoint command. Jan 23 14:43:56 nanopim4v2 kernel: [ 2032.895589] xhci-hcd xhci-hcd.8.auto: Assuming host is dying, halting host. Jan 23 14:43:56 nanopim4v2 kernel: [ 2032.909118] xhci-hcd xhci-hcd.8.auto: HC died; cleaning up Jan 23 14:43:56 nanopim4v2 kernel: [ 2032.915224] usb 5-1: USB disconnect, device number 2 Jan 23 14:43:56 nanopim4v2 kernel: [ 2032.915259] usb 5-1.3: USB disconnect, device number 5 Jan 23 14:43:56 nanopim4v2 kernel: [ 2032.916507] usb 6-1: USB disconnect, device number 2 |
刚开始操作的时候它很好地识别出来了,但随后出现了错误,最终xHCI主机停止,所有 USB 外围设备也都断开了连接。Debian Buster 镜像运行 Linux 4.4,所以我猜想可能是驱动程序的问题?我在 Linux 5.10 上尝试了 Armbian Bullseye(客户端/无头)镜像,但还是发生了类似的问题。

在 Armbian 中向下滚动,Linux 5.13 也有不稳定的镜像。所以,我就用 XFCE 刷了 Ubuntu Hirsute,但却没有任何改变,如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
_ _ ____ _ __ __ _ ___ ______ | \ | | _ \(_) | \/ | || \ \ / /___ \ | \| | |_) | | | |\/| | || |\ \ / / __) | | |\ | __/| | | | | |__ _\ V / / __/ |_| \_|_| |_| |_| |_| |_| \_/ |_____| Welcome to Armbian 21.08.1 Hirsute with bleeding edge Linux 5.13.12-rockchip64 System load: 2% Up time: 17 min Local users: 2 Memory usage: 21% of 3.77G IP: 192.168.100.104 CPU temp: 45°C Usage of /: 32% of 15G [ 4 security updates available, 14 updates total: apt upgrade ] Last check: 2021-08-26 09:29 [ General system configuration (beta): armbian-config ] jaufranc@nanopim4v2:~$ sudo tail -f /var/log/syslog [sudo] password for jaufranc: Jan 24 03:27:23 nanopim4v2 anacron[4540]: Updated timestamp for job `cron.daily' to 2022-01-24 Jan 24 03:27:23 nanopim4v2 systemd[1]: Starting Daily apt upgrade and clean activities... Jan 24 03:27:23 nanopim4v2 systemd[1]: Starting Cleanup of Temporary Directories... Jan 24 03:27:23 nanopim4v2 systemd[1]: systemd-tmpfiles-clean.service: Succeeded. Jan 24 03:27:23 nanopim4v2 systemd[1]: Finished Cleanup of Temporary Directories. Jan 24 03:27:23 nanopim4v2 systemd[1]: apt-daily-upgrade.service: Succeeded. Jan 24 03:27:23 nanopim4v2 systemd[1]: Finished Daily apt upgrade and clean activities. Jan 24 03:27:24 nanopim4v2 cracklib: no dictionary update necessary. Jan 24 03:27:24 nanopim4v2 anacron[4489]: Job `cron.daily' terminated Jan 24 03:29:11 nanopim4v2 systemd[1]: Started Session 9 of user jaufranc. Jan 24 03:30:01 nanopim4v2 CRON[4868]: (root) CMD (/usr/lib/armbian/armbian-truncate-logs) Jan 24 03:30:01 nanopim4v2 CRON[4867]: (CRON) info (No MTA installed, discarding output) Jan 24 03:30:09 nanopim4v2 kernel: [ 1089.411130] usb 3-1.2: new full-speed USB device number 5 using xhci-hcd Jan 24 03:30:10 nanopim4v2 kernel: [ 1089.561002] usb 3-1.2: New USB device found, idVendor=0416, idProduct=c168, bcdDevice= 0.00 Jan 24 03:30:10 nanopim4v2 kernel: [ 1089.561044] usb 3-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 Jan 24 03:30:10 nanopim4v2 kernel: [ 1089.561068] usb 3-1.2: Product: MTouch Jan 24 03:30:10 nanopim4v2 kernel: [ 1089.561087] usb 3-1.2: Manufacturer: TSTP Jan 24 03:30:10 nanopim4v2 kernel: [ 1089.561105] usb 3-1.2: SerialNumber: CMTP_1.0 Jan 24 03:30:20 nanopim4v2 kernel: [ 1100.011163] xhci-hcd xhci-hcd.1.auto: xHCI host not responding to stop endpoint command. Jan 24 03:30:20 nanopim4v2 kernel: [ 1100.011203] xhci-hcd xhci-hcd.1.auto: USBSTS: Jan 24 03:30:20 nanopim4v2 kernel: [ 1100.024802] xhci-hcd xhci-hcd.1.auto: xHCI host controller not responding, assume dead Jan 24 03:30:20 nanopim4v2 kernel: [ 1100.025575] xhci-hcd xhci-hcd.1.auto: HC died; cleaning up Jan 24 03:30:20 nanopim4v2 kernel: [ 1100.027969] usb 3-1: USB disconnect, device number 2 Jan 24 03:30:20 nanopim4v2 kernel: [ 1100.028018] usb 3-1.2: USB disconnect, device number 5 Jan 24 03:30:20 nanopim4v2 kernel: [ 1100.029502] usb 4-1: USB disconnect, device number 2 |
不过,我还是可以使用 Ubuntu 镜像,而且浏览网页也没有任何问题。唯一比较烦的还是 USB 触摸屏问题。

之后,我用 modprobe 加载 hid-multitouch 模块也并没有解决这个问题。其实,TSTP Mtouch 驱动程序成为 Linux 内核的一部分已有好几年了,所以这极有可能是硬件问题。

USB 线只传输 GND 和数据信号,因此 5V 信号应该还是来自显示器中的另一个位置,我怀疑 5V 信号或接地可能也存在问题,这才导致 USB 主机将其完全关闭了。总之,到目前为止我还没有找到什么好的解决办法。

文章翻译者:Nicholas,技术支持工程师、瑞科慧联(RAK)高级工程师,深耕嵌入式开发技术、物联网行业多年,拥有丰富的行业经验和新颖独到的眼光!