【问题标题】:How do we emulate virtual CAN devices from host to Android emulator?我们如何模拟从主机到 Android 模拟器的虚拟 CAN 设备?
【发布时间】:2019-06-03 22:00:13
【问题描述】:

我的主机 Linux 中有虚拟 CAN(vcan0vcan1)。我想让它们在 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 nameDevice 'vcan0' not found这样的错误消息。但是,我已经检查了 vcan0vcan1 在我的主机 Linux 中工作的测试应用程序。有谁知道如何在模拟的 Android 中启用这个vcan0

【问题讨论】:

  • 您的 Android 内核中是否启用了 SocketCAN? CONFIG_CANCONFIG_CAN_VCAN
  • 我使用的是安卓模拟器。所以我没有 Android 内核。
  • 您的模拟器中确实有一个内核。这个article 描述了构建步骤。

标签: android driver qemu can-bus


【解决方案1】:

如果您想从客户系统访问主机系统的真实或虚拟 CAN 总线,那么您可以使用 QEMU SJA1000 CAN 控制器仿真支持。

该支持已在 2.12 QEMU 版本中被 mainlinen 支持。没有使用过Android官方开发环境,不知道是不是最新的QEMU版本。

基本使用说明:https://github.com/qemu/qemu/blob/master/docs/can.txt

要求给定的目标系统支持 PCI 总线,这允许将一些支持的板与 SJA1000 控制器映射到目标。当资源可用时,可以实现对平台总线映射的 SJA1000 或其他控制器仿真的支持。

根据您问题中的示例,我预计

 ~/Android/Sdk/tools/emulator -avd Soham_Device_API_25 -qemu \
      -object can-bus,id=canbus0 \
      -object can-host-socketcan,id=canhost0,if=vcan0,canbus=canbus0 \
      -device kvaser_pci,canbus=canbus0 \

可以工作,但我不确定 ~/Android/Sdk/tools/emulator 是什么以及它如何将参数传递给真正的 QEMU。但它可能会通过它,因为它报告参数不正确。您尝试使用仅用于开发的旧虚拟 can_pci 板模型,并且 QEMU 参数的语法在更改为接受主线所需的 QEMU 对象模型后发生了很大变化。

基于开源开源硬件 CTU CAN FD 核心仿真的 QEMU 和驱动程序对仿真 CAN FD 总线和控制器的支持正在走向主线,但由于缺乏维护者审查,驱动程序等待了一年半。现在审查 QEMU 补丁。现在在项目页面寻找实际代码http://canbus.pages.fel.cvut.cz/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-07
    • 2017-11-21
    • 2011-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-28
    • 2017-06-28
    相关资源
    最近更新 更多