问题标签 [nanopi]
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.
linux - 如何将 appArmor 添加到 Linux 发行版
我正在尝试将 appArrmor 添加到我的img(说明)中。
这是我的设备使用的 .config 文件。
我已经添加CONFIG_SECURITY_APPARMOR=y
CONFIG_SECURITY_APPARMOR_HASH=y
CONFIG_SECURITY_APPARMOR_HASH_DEFAULT=y
CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1
但sudo apparmor_status
仍然返回
apparmor module is not loaded.
我也有疑问
- 有没有办法在正在运行的机器上显示所有 .config 以了解 appArmor 是否确实包含在内。
- 为了使 appArmor 正常工作,我还需要设置其他的东西吗?
arduino - Nanopi M4V2 UART调试
我有一个 SBC Nanopi M4V2(下面给出了板链接以便阅读规范)。我想使用 UART 端口来调试/控制台来检查有什么问题以及为什么我的开发板没有从 micro SD 启动。通过互联网搜索后,我是 SBC 的新手,我知道我需要在板上使用 UART 进行调试。因此,我打算购买一个 TTL 转 USB 串行适配器。搜索后我很困惑,因为有很多品种。我提供下面的链接,任何人都可以回答以下问题
1)Nanopi M4V2在启动过程中可以使用哪些品种进行调试
2)链接 3(下)中给出的每条 TTL 到 USB 电缆的主要区别是什么
链接 1:- Nanopi M4V2 -> https://www.friendlyarm.com/index.php?route=product/product&product_id=268
链接 2:- Nanopi M4V2 硬件规格 -> http://wiki.friendlyarm.com/wiki/index.php/NanoPi_M4V2#Hardware_Spec
链接 2:- TTL 到 USB -> https://www.aliexpress.com/item/4000120687489.html?spm=a2g0s.9042311.0.0.70604c4dZP0BDG
python - 在 python 程序中使用交换空间是个好主意吗?
我目前正在编写一个使用大量 RAM 的 python 程序。我知道我可以使用垃圾收集器来“释放”内存并避免这个问题。但是,我使用 Numba 来加速我的代码,这使得我需要释放 RAM 的部分与垃圾收集器不兼容。另外,它会减慢我的代码到它无论如何都完全没用的地步。现在我正在一台 32 GB RAM 的 MacBook Pro 上测试代码。我对软件开发略知一二,但对硬件一窍不通。我要将我的代码从 Mac 翻译到树莓派和 Nano Pi Fire 3 上。这是因为我使用的是多处理模块(Raspberry Pi 有 4 个内核,Nano Pi Fire 3 有 8 个)。我显然也在使用 MPI 模块来传递消息。我发现在简单搜索后添加更多 RAM 的一种解决方案是交换文件,在我使用的两种类型的板上设置这些文件相当容易。但是,我想知道这对于 python 代码是否真的是一个可行的选择?如果我允许 128 GB 的交换文件并使用 zRAM。这适用于其唯一目的是运行此代码的板,我会不再遇到 RAM 问题吗?
这就是为什么我认为这是 RAM 的问题:
第一个迹象是,如果我不使用 Numba 加速特定功能,那么程序运行完全正常,除了慢一点。但是,当我使用 Numba 的加速时,这是我收到的崩溃报告:
因此,可以看出在我的程序中使用了很多 RAM 和交换空间。如果我找不到解决方案,或者在板上添加交换空间不起作用,那么显然我将不得不牺牲实际工作的速度。但是,如果在我可能浪费时间这样做之前知道我认为可行的解决方案实际上会起作用,那就太好了。
raspberry-pi - 您可以拆焊和更换 Pi 板上的 RAM 吗?
Friendly Electronics 推出了一款小巧紧凑但功能强大的电路板。它被称为 Nano Pi fire 3。它有 8 个内核,非常适合像我这样想要将内核用于集群和多处理 AI 机器的程序员。但是,它只有 1 GB 的内存。因此,我尝试运行的进程之一很容易占用整个电路板的内存。连接与主板兼容的廉价记忆棒以提供更多交换空间是相当容易和直接的。这样做是为了使程序可以继续运行,而不会导致电路板完全耗尽内存。但是,交换空间很慢。特别是因为 Nano Pi 只支持 USB 2.0,所以没有真正快速的方法来利用交换空间。除非我错了,那么请纠正并教我如何以更快的方式使用交换空间。现在,假设我是对的,真正加快主板速度的唯一方法就是给它一个更好的物理 RAM 卡。在 Raspberry Pi 上,这是不可能的/如果你真的不知道你在做什么愚蠢。我之所以这么说是因为 Raspberry Pi 将他们的 RAM 卡直接放在 CPU 的顶部。我不打算发布 Raspberry Pi 的原理图,但欢迎您查看它们并进行事实检查。然而,Friendly Electronics 的 Nano Pi 和其他电路板不这样做。我之所以这么说是因为 Raspberry Pi 将他们的 RAM 卡直接放在 CPU 的顶部。我不打算发布 Raspberry Pi 的原理图,但欢迎您查看它们并进行事实检查。然而,Friendly Electronics 的 Nano Pi 和其他电路板不这样做。我之所以这么说是因为 Raspberry Pi 将他们的 RAM 卡直接放在 CPU 的顶部。我不打算发布 Raspberry Pi 的原理图,但欢迎您查看它们并进行事实检查。然而,Friendly Electronics 的 Nano Pi 和其他电路板不这样做。
(这是 Nano Pi Fire 3 的布局):
这张图片来自http://wiki.friendlyarm.com/wiki/index.php/NanoPi_Fire3
如您所见,该板具有 1 GB 的 DDR3 RAM。购买 16 GB 的 DDR3 RAM 芯片既简单又相当便宜。这对我自己来说是一个非常可行的解决方案,可能还有很多人试图解决他们使用慢板的问题。是否有可能实现我想做的事情?
python - 如何让MPI跨平台发送
我有一个我用 python 编写的程序,它利用了多个不同的 PI 板。主要的是运行在raspios-buster-lite-armhf
. 但是,节点都是在 Nano Pi 上运行的sd-friendlycore-xenial-4.4-arm64
。如果可能的话,我想利用所有这些,这样我的程序就尽可能地高效。我在所有这些设备上都安装了 MPI,并且在一定程度上可以正常工作。这是打印排名和大小的演示 helloworld.py 程序的输出:
如您所见,这确实有效。但是,如果我尝试发送信号,它就不起作用。这是通用代码:
如果我运行它,它会打印send
,然后无限期地停止。但是,如果我将消息从一个节点发送到另一个节点,它就可以发送。显然意味着它无法跨不同平台进行通信,或者我在树莓派上设置的东西非常错误。是否有快速解决此问题的方法,例如在 mpiexec 之后添加一个参数以使其能够跨平台工作?如果我将树莓派切换到 ARM 64 而不是当前的 ARMhf,它会起作用吗?尝试将xenial固件安装到树莓派上并且它会起作用的唯一解决方案是?
echo - 使用 Nano Pi 拨打 SIP 电话 - 我每次说话时都能听到自己的声音(回声/反馈不好)。有什么问题?
我已经在我的 PC 上设置了 Yate SIP 服务器。
我尝试从我的手机向我的 NanoPi 设备拨打 VOIP 电话,一切正常。但是,当我对着手机说话时,不久之后我就可以听到自己的声音了。
注意:我在我的 PC 上运行 Yate 服务器。我在我的 NanoPi 上运行 Twinkle 客户端,并在我的手机上运行 ZoIPer 应用程序来充当客户端。
这是我尝试过的:
- 尝试了不同的端点,只有当端点之一是 NanoPi 时才会出现问题
- 为 NanoPi 尝试了较小的以太网电缆,但仍然会出现回声。
- 尝试从 NanoPi 拔下麦克风/扬声器,回声仍然发生。
- 尝试使用与 Yate 不同的服务器,仍然会出现回声。
- 检查 Wireshark,确认 NanoPi 收到的音频正在发送回服务器。即它正在回响。这是来自 Wireshark 的流。
服务器:192.168.0.98
手机:192.168.0.12
纳米皮:192.168.0.23
任何建议或指示将不胜感激!
python - 在 NanoPi NEO Air 上使用 RPi.GPIO_NP python-lib 的问题
我使用 NanoPi NEO Air 版本:Linux 版本 4.19.20-sunxi (root@armbian.com) (gcc 版本 7.2.1 20171011 (Linaro GCC 7.2-2017.11)) 当我尝试在我的代码中导入这个库时,我有一个导入错误。
运行后pip install --user RPi.GPIO
它会显示一条错误消息,该库只能在 Raspberry Pi 上使用。
arm - Pyinstaller 在构建引导加载程序时找不到目标架构
让我先解释一下我做了什么。和大多数人一样,我首先使用 pip 安装 pyinstaller。
一切似乎都很好。它以“成功完成”消息退出。然后我用一个简单的python代码对其进行了测试。它一直走到最后,然后显示以下消息。
完全不知道,我决定卸载 pyinstaller 并下载源代码以在机器上构建。构建引导加载程序后,它也以“成功完成”退出,但出现另一条警告消息。
我忽略了它并继续安装pyinstaller。它也以成功消息结束。当我测试它时,显示了相同的“不包括预编译的引导加载程序”错误。
这是我从 /proc/cpuinfo 得到的。它是具有 4 核的 NanoPi Neo。
我使用的是今年 6 月发布的来自 FriendlyARM 的最新图像。
好的,该架构未被识别,我也不认为“拇指”是正确的架构。有谁知道如何解决它?非常感谢。
c - 创建 Linux 设备驱动程序以管理 NanoPI TWI (I2C) 寄存器的问题
我正在尝试开发一个 Linux 设备驱动程序来管理 NanoPI Neo 卡(Allwinner H3)的 GPIO 寄存器。
我正在使用一种简单的方法来理解 GPIO 寄存器的行为,仅使用两个驱动程序函数:open
和ioctl
.
目前,我的驱动程序实现能够管理许多寄存器,例如 RTC 和 CPU-PORT,并能够读写其他一些寄存器。
但我在使用/管理 TWI 寄存器 (I2C) 时遇到问题。
阻止我的问题是,无论我在向寄存器本身写入任何值后读取或读取的任何寄存器总是返回 0x00000000,并且在引脚硬件级别似乎没有发生任何事情(PA11/PA12 见下文)
我阅读了CPU 数据表(参见:文档的第 8.1 段)管理 TWI0 的寄存器值和基地址,基地址应为 0x01C2AC00。
我找不到任何 AllWinner H3 GPIO 程序员的参考资料,我不确定是否需要特定操作来激活 TWI 寄存器功能。我所做的唯一操作是将寄存器 PA11 和 PA12 设置为 TWI0_SCK 和 TWI0_SDA 的 I/O。
问题:
你有《全赢H3 GPIO程序员参考》的消息吗?
你知道我必须设置/修改哪个 GPIO 寄存器才能启用 TWI 或至少给我“生命迹象”吗?
我编写的驱动程序的映射和 ioctl 函数的一个非常强大的简化,旨在仅使用 TWI0 寄存器,可能是以下代码,但我的代码要复杂得多,我知道它可以与许多其他寄存器一起使用。
openssl - 为 ARM64 BSD-generic32 交叉编译 OpenSSL
我正在使用 freebsd AMD64 并尝试为在 ARM64 BSD-generic32 上运行的 nanopi R2S 交叉编译 openssl。
这是我迄今为止尝试过的:
自从我为裸机 aarch64 构建以来,我尝试运行不同的命令,如下所示:
pkg 安装 aarch64-none-elf-gcc
该错误指出:
我还尝试将配置链接到 sysroot,如下所示:
./配置BSD-generic32 --sysroot=/usr/local/freebsd-sysroot/aarch64 -prefix=/usr/local/openssl-custom --openssldir=/opt/openssl-custom -Wl,-rpath=/user/本地/openssl-自定义/lib
然后在运行make命令时出现如下错误:
你们对如何为freebsd arm64交叉编译openssl有任何想法吗?
请与我分享您对此的想法,非常感谢您的帮助。