【发布时间】:2019-06-03 22:00:13
【问题描述】:
我的主机 Linux 中有虚拟 CAN(vcan0、vcan1)。我想让它们在 Android 虚拟设备 (AVD) 中可用。我正在使用 Androi Studio 中的 AVD 管理器创建 AVD。但是,我似乎无法完成这项工作。
我通过以下命令在我的主机 Linux 中创建虚拟 CAN 设备:
modprobe can
modprobe can_raw
modprobe vcan
sudo ip link add dev vcan0 type vcan
sudo ip link set up vcan0
ip link show vcan0
以上命令来自SocketCAN wiki。
我尝试通过以下命令在模拟的 android 中模拟 vcan0,但它不起作用:
~/Android/Sdk/tools/emulator -avd Soham_Device_API_25 -qemu -device can_pci,canbus=canbus0,host=vcan0
或
~/Android/Sdk/tools/emulator -avd Soham_Device_API_25 -qemu -device -device mioe3680_pci,canbus1=canbus0,host1=vcan0
还有很多其他的。但是它们都不起作用并抛出像'can_pci' is not a valid device model name和Device 'vcan0' not found这样的错误消息。但是,我已经检查了 vcan0 和 vcan1 在我的主机 Linux 中工作的测试应用程序。有谁知道如何在模拟的 Android 中启用这个vcan0?
【问题讨论】:
-
您的 Android 内核中是否启用了 SocketCAN?
CONFIG_CAN、CONFIG_CAN_VCAN等 -
我使用的是安卓模拟器。所以我没有 Android 内核。
-
您的模拟器中确实有一个内核。这个article 描述了构建步骤。
标签: android driver qemu can-bus