问题标签 [dragonboard]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
120 浏览

uwp - Dragonboard 无法检测到 RawGameController

我正在制作一个在 Arrow Dragonboard 上运行的 UWP 应用程序。Dragonboard 正在运行 Windows IoT (10.0.17763.1)

我已将 USB 操纵杆插入 Dragonboard,但 Windows 似乎没有检测到它。

如果我在本地计算机上运行我的应用程序,并将相同的操纵杆插入我的 PC,则检测到操纵杆。

为了让它工作,我需要在 Dragonboard 上配置一些东西吗?

0 投票
0 回答
35 浏览

android - Dragonboard 410c 开机后自动崩溃

启动后立即与Dragonboard 410candroid崩溃。我用两个不同的新龙板尝试了同样的事情。为了交叉检查,我再次通过 SD 卡安装了一个新的 android,但问题仍然存在。

我想通过龙板运行 ADB 命令。最初它曾经在ADB rootADB reboot命令之后崩溃,我不得不断开并重新连接适配器才能再次启动它。但现在它只是在我写命令之前闪烁然后崩溃。

如果有人可以帮助我解决这个问题并知道这种无限期崩溃背后的原因,那将是一个很大的帮助?

PS: 没有这样的问题201c module

0 投票
3 回答
1362 浏览

uwp - VS 2017 社区:将现有项目的目标更改为 ARM

我正在尝试为 ARM 上的 Windows 10 IoT 重新打包现有桌面应用程序(特别是 Dragonboard 410c)。

我已经安装了 VS 2017 社区版(15.9.6)并且我有这个项目的桌面版本的源代码,虽然我不太了解它。

它目前针对 x86 / x64(两者都可以正常工作),但 ARM 选项不可用。

我是否需要向 VS 添加一些组件,或者手动编辑一些东西才能为 ARM 编译?

当我将 Dragonboard 设置为远程目标时,不出所料地收到此错误:

“错误 DEP3308:部署目标 '192.168.1.119' 不支持针对 X86 平台的项目。支持的平台:ARM。”

很高兴根据需要提供更多信息。

谢谢,

0 投票
0 回答
462 浏览

python - 使用 OpenCV for python 捕获网络摄像头获取白屏抓取

我在带有 Debian OS 的 DragonBoard 410c 上使用 python 2.7 通过 opencv 捕获网络摄像头 Logitech C920,但得到白屏结果。

这是我的整个代码。

没有代码“cap.set(3,1280)”和“cap.set(4,720)”,它运行良好。我可以得到 640x480 的框架。

但是如果我添加代码来改变分辨率,窗口会改变,但框架是白色的。

https://imgur.com/flsKfTp

顺便说一句,如果我将分辨率设置为 800x600,帧将在白屏和相机视图之间闪烁。

我怎么解决这个问题?

0 投票
0 回答
89 浏览

c# - System.OutOfMemoryException 自 WIndows IoT Core 构建 10.0.17763.737

我的 c# UWP 应用程序在 Windows IoT Core (Dragonboard 410c) 上运行。在我的应用程序中,我有一个简单的异常记录器,用于在我的代码中查找问题,因为该项目是一个更大的项目。由于我获得了构建 10.0.17763.737 的更新,因此我每隔几天就会收到一个 System.OutOfMemoryException。我最多能做什么?

0 投票
1 回答
618 浏览

android - 访问运行 Android 的 DragonBoard 410C 上的 GPIO 低功耗连接器

我正在使用最近购买的运行 Android 5.1 操作系统的 DragonBoard 410C 并使用带有 Kotlin 的 Android Studio 生成一个示例应用程序,该应用程序探索了一些硬件,例如 40 针低功耗连接器。

我的问题是如何使用 Kotlin 和 Android Studio 使用 GPIO 引脚访问 40 引脚低功耗连接器。

从我目前的研究来看,mraa 库似乎是通往成功的道路,但是我一直无法找到任何关于在 Kotlin 中使用该库的文档。

如何开始使用带有 Kotlin 的 mraa 库来访问 40 针低功耗连接器?

还是有不同的方法?

我的第一个示例是一个简单的 LED 闪烁应用程序,但是我不知道如何使用 Kotlin 访问低功耗连接器的引脚。

笔记和资源

mraa 文档页面

Libmraa 是一个 C/C++ 库,绑定到 Python、Javascript 和 Java,以与 Galileo、Edison 和其他平台上的 I/O 接口,具有结构化和健全的 API,其中端口名称/编号与您所在的板相匹配。使用 libmraa 不会将您绑定到特定硬件,并在运行时完成板检测,您可以创建可跨受支持平台工作的可移植代码。

用于 mraa GitHub 存储库的 upm 库

UPM 存储库为各种常用传感器和执行器提供软件驱动程序。这些软件驱动程序通过调用 MRAA API 与底层硬件平台(或微控制器)以及连接的传感器进行交互。

哪个 Android 运行哪个 Linux 内核?https://android.stackexchange.com/questions/51651/which-android-runs-which-linux-kernel

sysfs 死了!libgpiod 万岁!(用于 linux 和 CircuitPython 的 libgpiod)

这基本上是将替换我们的 Python DHT 驱动程序的代码,并且具有与任何其他运行 4.8+ 内核的 Linux 板前向兼容的好处。我们将慢慢替换其他 CircuitPython 代码以使用 libgpiod,以便我们可以在 Raspberry Pi、BeagleBone 或 Onion.io 上广泛支持 CircuitPython。

那里没有很多 libgpiod 代码,而且 libgpiod 还没有在 Linux 发行版上上市,这可能是它需要一段时间才能流行起来的原因。有 C 和 Python 的绑定。这是一个脚本,可以通过为您编译它来帮助您入门 https://github.com/adafruit/Raspberry-Pi-Installer-Scripts/blob/master/libgpiod.sh

GitHub https://github.com/IOT-410c/DragonBoard410c_GpioLibrary上的 DragonBoard 410C GPIO 库,它是用 Java 编写的,使用 Linux 的“/sys/class/gpio”方法访问 GPIO 引脚。这看起来像是用于 Coursera 物联网课程的一组存储库中的一个存储库,其中一些使用的是 DragonBoard 410C。

Linux 内核:传统 GPIO 接口

这提供了 Linux 上 GPIO 访问约定的概述。

这些调用使用 gpio_* 命名前缀。其他调用不应使用该前缀或相关的_gpio * 前缀。

Android Studio 和 adb

Android Studio 是用于开发 Android 应用程序的应用程序。可以从https://developer.android.com/studio/releases下载安装

此外还有单独下载的 Android 平台工具。adbshell 应用程序是这些工具的一部分。可以从SDK 平台工具发行说明下载这些工具以进行安装。选择您的操作系统(Windows、Linux、MacOS)所需的特定版本。

安卓的东西

虽然 Android Things 看起来很有帮助,但实际上只支持几块板,而 DragonBoard 410C 不是其中之一。而且我不确定 Android Things 是否可以与 Android 5.1 一起使用。

https://developer.android.com/things/get-started

然而,DragonBoard 410C 有一个 Brillo(现在是 Android Things)端口https://discuss.96boards.org/t/android-things-on-the-dragonboard/1128

Android 开发者 > 文档 > Android Things > 指南 > GPIO

为了打开到 GPIO 端口的连接,您需要知道唯一的端口名称。在开发的初始阶段,或将应用程序移植到新硬件时,通过PeripheralManager使用发现所有可用的端口名称会很有帮助getGpioList()

Android Things GitHub 存储库https://github.com/androidthings/

另请参阅以下有关此主题的 stackoverflow 帖子。请参阅 stackoverflow 中的标签 [android-things]。

GpioCallback 如何连续两次注册“false”?

Android Things Pin 命名约定

PeripheralManagerService 抛出 NoClassDefFoundError

0 投票
1 回答
359 浏览

android - 如何使用 poll(2) 或 select(2) 服务调用来观察伪文件的 Kotlin 更改

我正在使用使用 Android 5.1 和 Kotlin 的 DragonBoard 410C 来试验 40 针低功耗连接器上的 GPIO 针脚。我正在使用的库使用 sysfs 接口与 GPIO 引脚进行交互,这需要在/sys/class/gpio/目录树中打开各种伪文件并读取和写入这些文件的值,请参阅在运行 Android 的 DragonBoard 410C 上访问 GPIO 低功耗连接器

我的理解是,我可以将 GPIO 引脚设置为输入和边沿触发,这将允许我连接一个带有瞬时接触开关的简单电路,并能够检测何时按下开关。

但是,我找到的文档表明,我需要在文件描述符上使用poll(2)系统服务或select(2)/value系统服务,以检测我正在使用的 GPIO 引脚的伪文件何时使用 Edge被检测到,例如/sys/class/gpio/gpio910/value

如何在 Kotlin 中使用带有文件描述符的系统服务poll(2)或系统服务?方法select(2)poll(2)一样的吗?ready()FileReader

也许需要类似于 JavaWatchService功能的东西?http://www.java2s.com/Tutorials/Java/java.nio.file/WatchService/0060__WatchService.poll_.htm

除非这是错误的方法,否则我的计划是拥有一个实用功能,例如:

https://www.kernel.org/doc/Documentation/gpio/sysfs.txt

"value" ... 读取为 0(低)或 1(高)。如果 GPIO 配置为输出,则可以写入该值;任何非零值都被视为高。

如果引脚可以配置为产生中断的中断并且它已被配置为产生中断(参见“边缘”的描述),您可以对该文件进行 poll(2) 并且 poll(2) 将在中断发生时返回触发。如果使用 poll(2),请设置事件 POLLPRI 和 POLLERR。如果使用 select(2),请在 exceptfds 中设置文件描述符。在 poll(2) 返回后,lseek(2) 到 sysfs 文件的开头并读取新值或关闭文件并重新打开以读取值。

“edge”……读作“none”、“rising”、“falling”或“both”。编写这些字符串以选择将使 poll(2) 对“值”文件返回的信号边沿。

只有当引脚可以配置为产生中断的输入引脚时,该文件才存在。

补充说明

注 1:使用该adb实用程序,我能够shell进入我的 DragonBoard 410C 并测试配置物理引脚 26,GPIO971,direction设置为inedge设置为rising。在与物理引脚 23、GPIO938 相连的面包板上使用一个简单的 LED 电路,并将物理引脚 26 的导线添加到由物理引脚 23 管理的 LED,我能够打开 LED,echo 1 > gpio938/value然后cat gpio971/value看到物理引脚 26 的值变高,读数为1. 然后我关闭了连接到物理引脚 23 的 LED echo 0 > gpio938/value,然后cat gpio971/value返回了0预期的值。

然而,这个实验并没有告诉我当 LED 打开和关闭时是否poll(2)会指示变化。gpio971/value

注 1a:我有一个 Native C++ JNI 函数的第一个版本来实现poll(2)服务调用,并且一直在用我的 DragonBoard 410C 对其进行测试。我看到的是该poll(2)函数立即返回POLLINPOLLERR设置在数组的revents成员中。struct pollfd

测试使用连接到面包板行的物理引脚 26,LED 的一条腿连接到物理引脚 23,我可以打开和关闭。当我尝试在 10000 毫秒超时的情况下打开轮询时,调用会立即返回 LED 是否亮起(引脚 26 值为 1)或未亮起(引脚 26 值为 0),同时设置了两个指示灯。

我的期望是,由于我已edge设置为rising,我应该只在 LED 未亮起时才能看到poll(2)返回,然后我将其打开或 10 秒过去了。

我正在继续我的调查,因为它让我感到震惊,我如何使用我在应用程序的 Kotlin 端编写的本机 C++ 函数可能存在问题。

注意 2:我尝试WatchService与我的 Kotlin 应用程序一起使用并遇到了一个错误,WatchService需要 API 级别 26,而我在 Android Studio 中的最低目标是 API 级别 22。看起来WatchService需要 Android 8.0 (Oreo) 而 DragonBoard 是 Android 5.1 (棒棒糖)所以WatchService我无法使用监视文件状态。

0 投票
1 回答
339 浏览

python - python from sync import Sync 给出脚本错误 ModuleNotFoundError: No module named 'sync'

我正在尝试使用来自 Qualcomm 的材料在 Ubuntu 20 下为 DragonBoard 410c 构建我自己的 Android 版本。我已经从 Qualcomm 开发人员门户网站下载了文件,linux_android_board_support_package_vla.br_.1.2.7-01010-8x16.0-4.zip其中包含我解压缩到文件夹中的材料,~/Documents/linux_android_board_support_package_vla.br.1.2.7-01010-8x16.0-4使材料可用包括外壳脚本DB410c_build.sh

解包和设置是通过DB410c_build.sh执行各种操作来完成的,例如.repo使用 shell 脚本使用的 python 文件生成目录树并下载源代码。

我从各种 python 脚本中遇到了许多语法错误,看来这是为 python 2 编写的,到目前为止我已经能够解决。顺便说一句,python --version报告python 2.7.18但我仍然看到表明正在使用 python 3 的错误。

最新的错误来自python脚本,.repo/repo/subcmds/smartsync.py当它执行时,我得到以下错误,我一直无法弄清楚或通过搜索找到解决方案。

完整的python源文件,smartsync.py如下:

这只是从https://developer.qualcomm.com/hardware/dragonboard-410c/software下载的该文件中的 python 脚本的最新问题,试图使用

以前的大多数错误都是由于语法不正确,以及except一些很容易找到解决方案的错误(谢谢 StackOverFlow!)。raiseprintimport

但是我找不到关于这个的任何信息。

0 投票
0 回答
49 浏览

android - build_image.py - 错误:无法构建/target/system.img 空间不足?没有inode?树的大小为 1169788928 字节 (1115 MB)

我正在为参考板 DragonBoard 845c 构建 android-11.0.0_r4。我已经通过执行设置我的构建source build/envsetup.sh,然后是午餐,db845c-userdebug然后是 make -j24. 我收到以下构建错误:

'1>&2; echo '在构建单独的 system_ext.img 时,您不能将文件安装到 out/target/product/db845c/system/system_ext!' 1>&2; 1号出口;fi ) && (ln -sf /system_ext out/target/product/db845c/system/system_ext ) && (mkdir -p out/target/product/db845c/obj/PACKAGING/systemimage_intermediates/out/target/product/db845c/obj/ PACKAGING/systemimage_intermediates && rm -rf out/target/product/db845c/obj/PACKAGING/systemimage_intermediates/system_image_info.txt ) && (echo \"system_fs_type=ext4\" >> out/target/product/db845c/obj/PACKAGING/systemimage_intermediates /system_image_info.txt ) && (echo \"system_selinux_fc=out/target/product/db845c/obj/ETC/file_contexts.bin_intermediates/file_contexts.bin\" >> cp out/target/product/db845c/installed-files.txt \${DIST_DIR}/installed-files-rescued.txt; 退出 1 ) )" 2022-01-03 08:32:35 - build_image.py - 错误:无法从 out/target/product/db845c 构建出/target/product/db845c/obj/PACKAGING/systemimage_intermediates/system.img /system Out of space? Out of inodes? /home/rftest/UWB/dragon/out/soong/.temp/tmpGp99Zy的树大小为1169788928字节(1115 MB),保留空间为0字节(0 MB)。文件系统文件的最大映像大小为 1186566144 字节 (1131 MB),总分区大小为 1186566144 字节 (1131 MB)。来自 out/target/product/db845c/system 的 img 空间不足?没有inode?/home/rftest/UWB/dragon/out/soong/.temp/tmpGp99Zy的树大小为1169788928字节(1115 MB),保留空间为0字节(0 MB)。文件系统文件的最大映像大小为 1186566144 字节 (1131 MB),总分区大小为 1186566144 字节 (1131 MB)。来自 out/target/product/db845c/system 的 img 空间不足?没有inode?/home/rftest/UWB/dragon/out/soong/.temp/tmpGp99Zy的树大小为1169788928字节(1115 MB),保留空间为0字节(0 MB)。文件系统文件的最大映像大小为 1186566144 字节 (1131 MB),总分区大小为 1186566144 字节 (1131 MB)。

我搜索了答案并注意到最大图像大小为 1186566144 字节(1131 MB),而文件大小/home/rftest/UWB/dragon/out/soong/.temp/tmpGp99Zy为 1169788928 字节(1115 MB),小于最大图像大小。我试图重定向构建的输出 - export OUT_DIR_COMMON_BASE=/ext4/path/to/builds但这并没有解决问题。

我该如何解决这个错误

*** 2022 年 1 月 4 日更新 ***
我在查看Android AOSP 构建失败后解决了这个问题 build_image.py for android-10.0.0_r39

我添加BOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE := ext4 到我的/home/dragon/device/linaro/dragonboard/db845c/BoardConfig.mk 然后做了一个 make clean 和 make -j24 以成功构建