我在Raspberry Pi上的Occidentalis操作系统(Raspbian的一个变种)上安装了OpenCV,使用了jayrambhia的脚本:https://github.com/jayrambhia/Install-OpenCV/blob/master/Ubuntu/opencv_latest.sh.它安装了2.4.5版本.
当我尝试在python程序中导入模块cv2时,我收到以下消息:
pi@raspberrypi~$ python cam.py
Traceback (most recent call last)
File "cam.py", line 1, in <module>
import cv2
ImportError: No module named cv2
Run Code Online (Sandbox Code Playgroud)
cv2.so存储在
pi@raspberrypi~$ python cam.py
Traceback (most recent call last)
File "cam.py", line 1, in <module>
import cv2
ImportError: No module named cv2
Run Code Online (Sandbox Code Playgroud)
在/ usr/local/lib中还有一些名为python3.2和python2.6的文件夹,这可能是个问题,但我不确定.
这可能是路径错误吗?任何帮助(Linux新手).
谢谢.
我正在尝试使用运行Debian的Raspberry Pi上的Python 2.6访问串口.我的脚本命名serial.py尝试导入pySerial:
import serial
ser = serial.Serial('/dev/ttyAMA0', 9600)
ser.write("hello world!")
Run Code Online (Sandbox Code Playgroud)
由于某种原因,它拒绝与此错误建立串行连接:
AttributeError: 'module' object has no attribute 'Serial'
Run Code Online (Sandbox Code Playgroud)
当我尝试在交互式Python解释器中键入相同的代码时,它仍然无法正常工作.
奇怪的是,它曾经在几个小时前工作.
可能是什么问题呢?我试图修复一段时间,再次安装pySerial,重写我的代码,仔细检查串口等.
提前致谢!
我正在尝试为我的Ubuntu机器上的Raspberry Pi进行交叉编译.
在我最初的尝试中,我使用的是arm-linux-gnueabi编译器,它可以在Ubuntu repo中找到.我得到了这个工作.我能够构建所有依赖项并在我的cmake项目中使用交叉编译器.
但是,我相信我应该使用hf版本,所以我切换到arm-linux-gnueabihf.然后我意识到这不适用于Raspberry Pi,因为它是armv6.
经过一些谷歌搜索后,我找到了GitHub预先构建的工具链.
我下载了工具链,但我真的不明白如何"安装"它.我将文件解压缩到我的主目录.目录结构如下所示:
/gcc-linearo-arm-linux-gnueabihf-raspbian
/arm-linux-gnueabihf
/bin
(contains g++, gcc, etc)
/lib
(contains libstdc++ library)
/bin
(contains arm-linux-gnueabihf-g++, arm-linux-gnueabihf-...)
/lib
(gcc lib stuff)
Run Code Online (Sandbox Code Playgroud)
如果我将目录更改为INNER bin文件夹,我可以从终端编译测试程序,没有任何问题.
~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/
arm-linux-gnueabihf/bin$ g++ test.cpp -o test
Run Code Online (Sandbox Code Playgroud)
然后我尝试在OUTER bin文件夹中编译测试程序,该文件夹包含工具的前缀版本.
~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin$
arm-linux-gnueabihf-g++ test.cpp -o test
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用编译器时(从内部bin目录之外),它无法找到工具链附带的libstdc ++共享库:
arm-linux-gnueabihf-gcc: error while loading shared libraries:
libstdc++.so.6: cannot open shared object file: No such file or directory.
Run Code Online (Sandbox Code Playgroud)
此外,我希望能够使用编译器而无需导航到bin目录.所以我尝试添加OUTER bin目录(因为我想要前缀版本)和两个lib目录到我的PATH:
export PATH=$PATH:~/tools/.../bin
export PATH=$PATH:~/tools/.../lib
export PATH=$PATH:~/tools/.../.../lib
Run Code Online (Sandbox Code Playgroud)
但是,这会导致相同的错误.我应该如何"安装"工具链,以便我可以随处使用工具链,就像我使用Ubuntu repo中的交叉编译器一样?
我正在做一个覆盆子pi的气球项目.当我们有可能恢复树莓派时,它很可能会在农村地区,我想安全地关闭pi.如果没有附近的路由器或网络,我想知道是否有办法将带有以太网电缆的树莓派直接连接到笔记本电脑上?
我已经看过很多关于在Raspberry Pi上运行Mono/.NET代码的讨论.在Raspberry Pi上实际运行任何Mono代码是否有任何成功?
在他们的网站上,他们列出了几个在该设备上运行的Linux发行版,其中一些发行版包括Mono.但是,没有详细说明Mono是否适用它.
有工作实施吗?
我正在使用带有Raspberry pi的7"TFT LCD显示器,任何人都可以告诉我如何改变Raspberry Pi的屏幕分辨率以及7"TFT LCD显示器的分辨率应该是多少.
TL/DR:我在哪里可以找到有关为ARM(gnueabi)平台(旨在在Raspberry Pi设备上运行)构建GCC 4.7.0交叉编译工具链的更多信息?
我刚买了一个全新的Raspberry Pi,我非常渴望为它开始编程.我已经设法安装了GCC工具链(我正在使用Arch Linux系统映像)并编译了一些基本程序,一切正常.
我也尝试编译Boost库,因为我经常在我的项目中使用它们,一切似乎都按照说明(./bootstrap.sh+ ./b2)工作正常,除了编译速度很慢的事实.我把它放了几个小时,但它几乎没有超过前几个源文件.在我让它运行过夜之后,我发现构建过程由于RAM短缺而中止.
所以,我的猜测是,Rasp Pi的功能不足以编译像Boost这样大小的东西.所以,我想到了交叉编译.但是,即使有很多关于ARM在线交叉编译的信息,我觉得它很混乱.一个人甚至从哪里开始?
我最近在我的Raspberry Pi上有一个GCC版本(4.7.0),所以我想要用相同的版本进行交叉编译.哪里可以获得ARM的GCC 4.7.0工具链?(我将在x86 CentOS 6.2上编译)
编辑:
我释放了不需要的GPU内存并在USB驱动器上设置了4GB交换分区,而构建文件在NFS共享上.Boost现在编译得更快,因此它是可管理的.我仍然想知道如何在我的x86 PC上设置GCC 4.7工具链进行交叉编译,因为我打算做很多编译,我希望它尽可能快.
编辑2:
由于GCC 4.7.0相对较新,似乎没有预先构建的交叉编译器(i386-> ARM).我可能不得不自己构建一个,这似乎是一个非常重要的任务(我已经尝试过并且失败了).有没有人知道要建立GCC交叉编译器的教程,希望是最近的版本之一?
我已经尝试过这个很棒的shell脚本(它非常适合构建同一个arch编译器)并且我已经成功构建了binutilsGCC的先决条件,但是GCC构建仍然失败了很多神秘的错误.我真的迷失在这里,所以我非常感谢你的帮助.
Raspberry Pi上的GCC配置了
--prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib
--mandir=/usr/share/man --infodir=/usr/share/info
--with-bugurl=https://bugs.archlinux.org/
--enable-languages=c,c++,fortran,lto,objc,obj-c++ --enable-shared
--enable-threads=posix --with-system-zlib --enable-__cxa_atexit
--disable-libunwind-exceptions --enable-clocale=gnu
--disable-libstdcxx-pch --enable-libstdcxx-time
--enable-gnu-unique-object --enable-linker-build-id --with-ppl
--enable-cloog-backend=isl --enable-lto --enable-gold
--enable-ld=default --enable-plugin --with-plugin-ld=ld.gold
--with-linker-hash-style=gnu --disable-multilib --disable-libssp
--disable-build-with-cxx --disable-build-poststage1-with-cxx
--enable-checking=release --host=arm-unknown-linux-gnueabi
--build=arm-unknown-linux-gnueabi
Run Code Online (Sandbox Code Playgroud)
编辑3:
我设法使用这个shell脚本为ARM构建一个4.7 GCC工具链(yay!),如用户dwelch在评论中所建议的那样.我还构建newlib并libstdc++使用本文作为指南.工具链工作正常,但是我在我的Raspberry Pi上运行可执行文件,它失败了Illegal instruction …
我在覆盆子pi上运行自己的http服务器.问题是当我停止程序并重新启动它时,端口不再可用.有时我在收到大量请求时会遇到同样的问题.
我想使用SO_REUSEADDR,以便即使出现错误但我也可以继续使用该端口但是没有运气设置它.以下是我的代码.
我得到的错误是"绑定时出错:地址已在使用中".
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
void error(const char *msg)
{
perror(msg);
exit(1);
}
int main(int argc, char *argv[])
{
printf("Starting Listener\n");
int sockfd, newsockfd, portno;
socklen_t clilen;
char buffer[256];
struct sockaddr_in serv_addr, cli_addr;
int n;
if (argc < 2) {
fprintf(stderr,"ERROR, no port provided\n");
exit(1);
}
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd < 0)
error("ERROR opening socket");
bzero((char *) &serv_addr, sizeof(serv_addr));
portno = atoi(argv[1]);
serv_addr.sin_family = AF_INET; …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 Windows 中的PuTTY登录我的 Raspberry Pi 。然而,每当我尝试使用默认用户名和密码( pi* 和raspberry)登录我的 Raspberry Pi 时,它都会显示Access Denied。
我创建了wpa_supplicant.conf文件和 ssh 文件。这是它的第一次启动。我正在使用最新版本的 Raspbian Lite 操作系统。
将MonoDevelop的编译到ARMv6的,主要是让我能得到它在我运行树莓派?
我注意到Debian可以在Raspberry Pi上运行,而Debian有一套Mono的驱动程序.
那么这是否意味着我们将能够在Mono中发展?
raspberry-pi ×10
arm ×3
c++ ×2
linux ×2
mono ×2
python ×2
.net ×1
c ×1
ethernet ×1
gcc ×1
monodevelop ×1
opencv ×1
serial-port ×1
sockets ×1
ssh ×1