我目前正在进行一个项目,尝试以 Raspberry Pi 4 作为主站来实现 Modbus,并控制多个执行器作为从站。为此,我为我的 Pi 购买了一个特殊的防护罩。我运行了一个演示测试程序,确认 Pi 可以与其新的扩展板配合使用,但后来遇到了麻烦。
Shield 用户手册- 在用户手册文件夹内。
掌握:
## To install dependencies:
## sudo pip3 install modbus-tk
##################################################################################################
import serial
import fcntl
import os
import struct
import termios
import array
#import modbus lib
import modbus_tk
import modbus_tk.defines as cst
import modbus_tk.modbus as modbus
#import modbus_tk.modbus_rtu as modbus_rtu
from modbus_tk import modbus_rtu
# RS485 ioctls define
TIOCGRS485 = 0x542E
TIOCSRS485 = 0x542F
SER_RS485_ENABLED = 0b00000001
SER_RS485_RTS_ON_SEND = 0b00000010
SER_RS485_RTS_AFTER_SEND = …Run Code Online (Sandbox Code Playgroud) 看起来我遇到了与docker-compose-usr-local-bin-docker-compose-line-1-not-command-not-found相同的问题,但是当我查看我的 '/usr/local/bin/docker -compose' 文件不为空。另外,当我尝试 pip install 时,它说“已满足要求:docker-compose in /usr/lib/python3/dist-packages (1.27.4)”这让我认为这是别的东西。
我正在 RPI 4 上运行 64 位 Ubuntu 21.10 服务器,具有 4gig 内存和 USB 250gig SSD。我正在启动USB。我使用 Raspberry Pi Imager v1.6.2 来刷新驱动器。uname -r 是“5.13.0-1009-raspi”
我可以运行“sudo docker run hello-world:latest”而不会出现错误。
只是为了清楚起见,我的确切错误:
ubuntu@ubuntu:~$ docker-compose --version
/usr/local/bin/docker-compose: line 1: Not: command not found
ubuntu@ubuntu:~$
Run Code Online (Sandbox Code Playgroud)
编辑:如果我的假设在我的答案中是正确的,那么它可能与64位arm比Ubuntu有更多的关系。以防万一,我还更新了上面的规格。我补充说它是 64 位 Ubuntu。
我更喜欢创建一种情况,其中 Raspberry Pi4 Docker 正在运行,而 SD 卡是只读的。这与覆盖 fs 一起。
\n在docker容器中,数据库正在运行,数据库的数据被写入USB记忆棒(卷映射)。
\n当overlayfs被激活时(重启后,通过\xe2\x80\x9csudo raspi-config\xe2\x80\x9d启用),docker将不再启动。
\nhttps://docs.docker.com/storage/storagedriver/overlayfs-driver/上的步骤\n系统信息:\nLinux raspberrypi 5.10.63-v8+ #1488 SMP PREEMPT Thu Nov 18 16:16:16 GMT 2021 aarch64 GNU/ Linux
\n码头工人信息:
\npi@raspberrypi:~ $ docker info\nClient:\nContext: default\nDebug Mode: false\nPlugins:\n app: Docker App (Docker Inc., v0.9.1-beta3)\n buildx: Build with BuildKit (Docker Inc., v0.6.3-docker)\nServer:\nContainers: 1\n Running: 1\n Paused: 0\n Stopped: 0\nImages: 1\nServer Version: 20.10.11\nStorage Driver: overlay2\n Backing Filesystem: extfs\n Supports d_type: true\n Native Overlay Diff: true\n userxattr: false\n\xe2\x80\xa6\xe2\x80\xa6\xe2\x80\xa6\nRun Code Online (Sandbox Code Playgroud)\n … 我正在尝试为 raspberry pi 4 (linux/arm/v7) 构建 docker 映像。我正在使用 Ubuntu WSL。我已经能够毫无问题地为 Ubuntu WSL 构建映像。我正在使用 docker buildx 构建树莓派 pi4 (armv7) 的映像。我这样创建了构建器:
docker buildx create --name my_builder
Run Code Online (Sandbox Code Playgroud)
但列出构建器后,armv7 似乎与其他平台一起缺失了。知道这怎么可能吗?Ubuntu WSL 不支持这个跨平台吗?我需要直接从 Windows 或其他主机平台执行此操作吗?
> docker buildx inspect
Name: my_builder
Driver: docker-container
Nodes:
Name: my_builder0
Endpoint: unix:///var/run/docker.sock
Status: running
Platforms: linux/amd64, linux/amd64/v2, linux/amd64/v3, linux/386
Run Code Online (Sandbox Code Playgroud)
如果这有帮助:
> docker buildx ls
NAME/NODE DRIVER/ENDPOINT STATUS PLATFORMS
my_builder * docker-container
my_builder0 unix:///var/run/docker.sock running linux/amd64, linux/amd64/v2, linux/amd64/v3, linux/386
desktop-linux protocol not available
default docker
default default running linux/amd64, linux/386
Run Code Online (Sandbox Code Playgroud) 我想在运行 Ubuntu 20.04 Focal 的 AArch64 Raspberry Pi 4 上使用 clang-11。我查看了https://apt.llvm.org/,但 AArch64 预构建二进制文件似乎不可用?
我尝试直接在 Raspberry Pi 上构建 clang,但速度非常慢,最终我的 SD 卡空间不足。
我如何在 x64 笔记本电脑上自己交叉编译 clang?
我正在尝试在运行 Ubuntu 20.10 64 位的 Raspberry Pi 4 上安装 R 4.0.3。它已完全更新。
在我做任何事情之前,我使用 为该操作系统添加了正确的 CRAN 存储库sudo add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu groovy-cran40/'。
当我运行时sudo apt install r-base,出现错误:r-base-core和r-recommendrf都被指定为需要 version >= 4.0.3-1.2010.0,“不会安装”。
单独检查它们,似乎r-base-core是问题所在。如果我尝试自行安装r-recommished,则会收到错误消息,指出它需要“r-base-core (>= 4.0.3-1.2010.0),但要安装 4.0.2-1build1”。
如果我检查https://cloud.r-project.org/bin/linux/ubuntu/groovy-cran40/,我注意到r-base-core 4.0.3 仅在 AMD64 变体中可用,根据amd64中的文件名。我观察到r-base包的文件的文件名中没有amd64 。对我来说,这表明,目前,如果您使用的是 Intel/AMD 64 位平台,则只能在 Ubuntu 20.10 上运行 R 4.0.3。https://cloud.r-project.org/bin/linux/ubuntu/groovy-cran40/Packages似乎支持这一点。
除了等待与更多平台兼容的r-base-core 4.0.3 软件包出现之外,还有其他实用的选择吗?
我尝试在我的 raspberry-pi 4 上安装 PyCharm,但收到此错误:
ERROR: Cannot start PyCharm: No JDK found
我也尝试过:
sudo apt install default-jre
但我仍然收到错误。
iam 无法更新我的馅饼上的任何内容,我收到以下错误 Err:1 http://raspbian.raspberrypi.org/raspbian bullseye InRelease 解决“raspbian.raspberrypi.org”的临时失败
resolv.conf 中的名称服务器是 8.8.8.8
这是 ping 结果 root@raspberrypi:/etc# ping google.com ping: google.com: 名称解析暂时失败
我之前在我的馅饼中安装了馅饼,但之后我格式化了存储卡并安装了新的操作系统。请提出任何修复建议。
我的问题是当我将分辨率设置为高于 640x480 时,输出颜色仅位于右下部分。输出的其余部分呈蓝色。
我有一个带有 4GB 内存的 RaspyberryPi4 和一个 PiCamera V2。最高分辨率下CPU占用率不超过~65%。同样的错误也出现在另一个 rapberrypi 及其 picamera (V2 NOIR) 上。
这是图像(不要关心角落里的白条:它们来自糟糕的屏幕截图)
这是我的 python 脚本:
import cv2
cap = cv2.VideoCapture(0)
width = 640; height = 480
# width = 1920; height = 1080
# width = 3280; height = 2464
cap.set(cv2.CAP_PROP_FRAME_WIDTH, width)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, height)
cv2.waitKey()
print(cap.get(cv2.CAP_PROP_FRAME_WIDTH),cap.get(cv2.CAP_PROP_FRAME_WIDTH))
while cap.isOpened():
ret, frame = cap.read()
cv2.imshow('Resolution: '+str(width)+'x'+str(height), frame)
if cv2.waitKey(25) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)
我知道如果分辨率较高,我会失去较高的帧速率。
有人知道错误的根源可能是什么和/或我如何解决此错误? …
我希望 RPi 4 的 VNC 服务器在启动时自动启动(对于本地连接和互联网连接)。我遵循RealVNC 网站的指南。因此我使用了命令:
sudo systemctl enable vncserver-x11-serviced.service
Run Code Online (Sandbox Code Playgroud)
但它不起作用(对于两种连接类型),我超时了。然后我用这样的自动启动文件尝试了这个解决方案:
[Desktop Entry]
Type=Application
Name=TightVNC
Exec=vncserver :1
StartupNotify=false
Run Code Online (Sandbox Code Playgroud)
但同样,VNC 服务器在重新启动后不会自动启动。SSH 连接工作正常,因此,至少本地 VNC 应该可以工作。即使我使用命令启动VNC服务器,也无法连接。
可能是什么问题?不知道您是否需要更多信息?我正在尝试通过 Windows 上的查看器连接到 VNC 服务器。当我第一次使用 GUI 启动服务器时它正在工作(现在我使用的是没有屏幕的 Pi)。
在此先感谢您的帮助。
我需要有关在运行树莓派操作系统 64 位的树莓派 4 上管理大页的帮助。
我在网上没有找到太多可靠的信息。
首先我重新编译了内核源启用Memory Management options --->Transparent Hugepage Support选项。当我运行命令时:
grep -i huge /proc/meminfo
输出是:
AnonHugePages: 319488 kB
ShmemHugePages: 0 kB
FileHugePages: 0 k
Run Code Online (Sandbox Code Playgroud)
并运行命令:
cat /sys/kernel/mm/transparent_hugepage/enabled
Run Code Online (Sandbox Code Playgroud)
输出是:
[always] madvise never
Run Code Online (Sandbox Code Playgroud)
所以我认为应该设置透明大页(AnonHugePages)。我需要使用 HugePages 使用 mmap 函数、c 代码来映射最大的连续内存块。
mem = mmap(NULL,buf_size,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0);
Run Code Online (Sandbox Code Playgroud)
查看https://www.man7.org/linux/man-pages/man2/mmap.2.html有两个标志来管理大页:MAP_HUGETLB 标志和 MAP_HUGE_2MB、MAP_HUGE_1GB 标志。
我的问题是:要使用 HugePages,我应该以这种方式映射吗?
mem = mmap(NULL,buf_size,PROT_READ|PROT_WRITE,MAP_SHARED,MAP_HUGETLB,fd,0);
Run Code Online (Sandbox Code Playgroud)
内核配置:
CONFIG_SYS_SUPPORTS_HUGETLBFS=y
CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
CONFIG_HAVE_ARCH_HUGE_VMAP=y
CONFIG_TRANSPARENT_HUGEPAGE=y
CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
CONFIG_TRANSPARENT_HUGE_PAGECACHE=y
# CONFIG_HUGETLBFS is not set
Run Code Online (Sandbox Code Playgroud) 我开发了一个使用 Laravel 作为 API 的 React 应用程序。我已经通过 Passport 添加了登录信息,并且非常成功地使用了个人访问客户端方法。我可以添加新用户和令牌,我可以撤销令牌,我可以重置密码...所有 API 调用(登录和注册除外)都由 API 中间件保护并且可以正常工作。如果我从任何这些调用的标头中删除 ,Bearer ${token}由于 ->middleware('auth:api') 包装器,它会返回 401 unauthenticated。
一切都完全按预期进行......直到我将所有内容移至我的 Raspberry Pi 服务器。当我移动所有东西时,问题就开始了。我可以登录并且可以注册,但是一旦我在流程中后续的任何端点调用上使用新的不记名令牌(我从登录或注册调用中收到的),它就会失败并显示 401 未经身份验证,立即地。我运行了php artisan passport:client --personal命令并像往常一样成功地将 id 和密钥输入到我的 .env 文件中。我安装了所有的作曲家和供应商包。我安装了所有的 Passport 包和 CLI 命令。
它仅在使用 auth 中间件的调用上失败。
我做了一些挖掘,似乎我能发现的唯一(显着的)变化是 Pi 运行 32 位 PHP,而我的本地主机运行 64 位 PHP。除此之外,它的代码、数据库、Laravel 和 PHP 版本都相同。
我尝试使用该命令php artisan passport:client --personal --name="app-name" --redirect_uri="http://192.168.1.1/"将记录放入“oauth_clients”表中,但将重定向显示为http://localhost/. 然后,我尝试使用 SQL 手动将名为“redirect”的列的值更改为http://localhost/......但更改又没有任何作用。调用仍会返回 401 未经身份验证。
我能发现的唯一可能存在问题的其他事情是:
apache authentication laravel laravel-passport raspberry-pi4
这个问题可能看起来重复,但我已经尝试了所有其他已有多年历史的解决方案,因此请提供帮助。
我在 Raspberry Pi 上设置了 Pivpn,但无法通过 VPN 访问互联网。
运行时ping 1.1.1.1 -I tun0出现 100% 丢包且无响应。从eth0它的作品。甚至ping 127.0.0.1 -I tun0不起作用。
下面是我的日志,pivpn -d没有显示任何错误。
::: Generating Debug Output
:::: [4mPiVPN debug[0m ::::
=============================================
:::: [4mLatest commit[0m ::::
Branch: master
Commit: 027f257931d1f169e254def5d1552d55810fefda
Author: 4s3ti
Date: Thu Aug 5 15:12:33 2021 +0200
Summary: Latest Changes update.
=============================================
:::: [4mInstallation settings[0m ::::
PLAT=Raspbian
OSCN=stretch
USING_UFW=0
IPv4dev=eth0
dhcpReserv=1
IPv4addr=10.10.70.10/24
IPv4gw=10.10.70.254
install_user=pi
install_home=/home/pi
VPN=openvpn
pivpnPROTO=udp
pivpnPORT=50552
pivpnDNS1=8.8.8.8
pivpnDNS2=8.8.4.4
pivpnSEARCHDOMAIN=
pivpnHOST=REDACTED
TWO_POINT_FOUR=1
pivpnENCRYPT=256 …Run Code Online (Sandbox Code Playgroud) raspberry-pi4 ×13
raspberry-pi ×4
linux ×3
python ×3
docker ×2
raspbian ×2
ubuntu ×2
apache ×1
arm64 ×1
armv8 ×1
buildx ×1
huge-pages ×1
laravel ×1
linux-kernel ×1
llvm-clang ×1
modbus ×1
opencv ×1
openvpn ×1
picamera ×1
pycharm ×1
r ×1
readonly ×1
resolution ×1
rs485 ×1
vnc ×1
vnc-server ×1
vpn ×1