在板载eMMC上设置和定制我的"主"BeagleBone Black(BBB)和应用程序等之后,我想在其他BBB板上复制它.
复制BBB的最佳方法是什么?
我对选项的理解:
哪种可能/最好?
编辑:我目前的解决方案是使用标准图像(来自BeagleBoe网站)进行闪存,然后让脚本按预期进行所有修改.这包括禁用我不需要的许多服务,安装应用程序和配置东西等.如果有一种更简单的方法来制作带有完整图像的SD卡,我仍然感兴趣.
我在Qt视频概述中给出了一个月的视频示例.
我试过那段代码,但只有我得到的是空白方块(QWidget).我使用GStreamer0.10进行Qt5上的媒体播放.我也用gst-launch-0.10命令播放了视频,它运行正常,但我无法确定Qt中发生了什么以及为什么它不起作用?
我查看了位于的X Server的错误日志/etc/X11/Xorg.0.log,当我使用fbdev作为其中配置的显示驱动程序/etc/X11/xorg.conf时显示错误:
"FBDEV(0):FBIOPUTCMAP:参数无效"
当我使用modesetting驱动程序时,一切都行为相同,但没有错误.我发现,当我删除xorg.conf文件并再次启动X服务器时,视频可以正常工作,但缺少颜色和闪烁也可以在我的Ubuntu VM和vnc客户端上运行良好.我们将非常感谢您的建议和帮助.
目标机器:BeagleBone Black
发行:Debian Jessie 8.2
内核版本:4.1.15-ti-rt-r43
/ usr/lib/xorg/modules/drivers中可用驱动程序列表:ati_drv.so,mach64_drv.so,nouveau_drv.so,r128_drv.so,vesa_drv.so,fbdev_drv.so,modesetting_drv.so,omap_drv.so,radeon_drv.所以
当我尝试在Debian Jessie 8.2下的BeagleBone Black上启动我的Qt应用程序时,这是来自Xorg的完整错误日志 - > http://pastebin.com/4x8KztBk
来自/ etc/X11的xorg.conf文件 - > http://pastebin.com/4WhX8pJc
如果您有Beaglebone Black(BBB)并且想要将自己的设备连接到它(不是斗篷),您可能已经听说过设备树.在我的情况下,我想将RTC设备连接到BBB上的I2C总线.网络上散布着大量的信息,本文旨在概述我发现的内容以及完成任务的指南.
因此,我将给出一个在BBB上激活I2C总线的完整示例,以及使用内核中包含的设备驱动程序连接DS1308 RTC芯片.听起来不错?
请继续阅读,如果有任何不明确的地方请留下评论.如果您有点匆忙,您也可以在Github上抓取设备树覆盖代码并飞走.
我在我的BBB上使用ArchLinux ARM主要是因为Arch Linux非常棒而且我使用debianoid发行版可能太愚蠢了.这是系统的屏幕截图 ..
你可能会注意到内核版本已经超过了3.x的东西.您在screenfetch中看不到的是内核使用Capemgr实用程序支持设备树覆盖.
我会尽快做到,你可以在这里,这里,这里和这里找到更深层次的知识.设备树是描述平台上底层硬件的结构.它在嵌入式设备中被大量使用,因为SOC和其他东西没有像PCI这样可以发现设备的总线.它们必须静态定义并附加到"平台总线",以便为内核附带的设备驱动程序提供句柄.
在将设备树引入Linux之前,所有这些工作都必须使用特定的C头文件和自定义实现来完成,然后所有这些都必须合并到主线内核中.因此,这是一个可以想象的详尽的任务,它来到了着名的Linus Torvalds咆哮.在这里,您还可以使用更多设备树背景.
描述我们正在使用的.dts设备树(设备树源)文件,这些文件是人类可读的,并由设备树编译器(dtc)编译成设备树blobs(.dtb),二进制格式.当系统引导引导加载程序(例如u-boot)时,将该blob移交给内核.内核解析它并创建设备树给出的所有设备.
如果您不相信我,请使用设备树编译器进入BBB正在使用的设备树.
如果您尚未安装,请获取相应的包装..
pacman -Sy dtc-overlay
dtc -f -I fs /proc/device-tree | less
Run Code Online (Sandbox Code Playgroud)
less由于该命令生成了大量输出,因此建议使用该寻呼机的管道.结果应该看起来像这样......
设备树的所有部分也可以在内核源代码中进行调查,但由于还有一个包含机制,因此信息在几个文件中分开.
<kernel-source>/arch/arm/boot/dts/..
Run Code Online (Sandbox Code Playgroud)
一些相关文件是:
am335x-bone-common.dtsiam335x-boneblack.dtsam33xx.dtsi注:该
.dtsi文件是等同于.h在C文件或C++,因为他们得到包括(因此"我"末)的.dts文件
它们都描述了与处理器相关的设备,Beaglebone平台上的常用设备或仅适用于Beaglebone Black的设备.
好问题,我看到你还在和我在一起.正如我之前所说,内核启动时会解析设备树blob.因此,当您的系统启动并运行时,整个魔法已经结束.在像BBB这样的平台上有一大堆扩展板(Capes),这需要你每次去另一个斗篷使用时重新编译设备树.
因此,您具有覆盖机制,允许您在运行时在设备树中添加或修改设备!惊人.
注意:为了能够编译设备树覆盖,请确保安装适当的包,如上所述( …
我想在我的beaglebone上访问Logitech c310网络摄像头.对于任何设备ID,它总是返回false,我不知道为什么.
我使用以下代码.
>>> import cv2, numpy as np
>>> cam = cv2.VideoCapture(0)
>>> cam.open(0)
False
Run Code Online (Sandbox Code Playgroud)
相机确实在dev /中显示为video0 root@arm:~#lsusb,如下所示,
root@arm:~# lsusb
Bus 001 Device 002: ID 046d:081b Logitech, Inc. Webcam C310
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Run Code Online (Sandbox Code Playgroud)
我也可以用相机来访问相机v4l2-ctl.请注意,我对OpenCV很新,所以这可能听起来很傻,我提前为此道歉.
我正在研究BeagleBone Black和Debian.我想在我的主板上刷新最新的Debian图像.为此,我从链接下载了最新的Debian图像:BeagleBone Image并使用WinDisk图像编写器准备了SD卡.
根据教程,我已将SD卡插入BeagleBone Black,按下启动按钮并施加电源.SD卡图像已启动.根据教程闪烁eMMC需要大约30-40分钟,所以我等了大约2个小时(只是为了确定).然后我从我的电路板上取下一张SD卡并接通电源.它启动了我之前的图像(eMMC没有被SD卡图像闪烁).对于闪存eMMC,我关注链接:闪烁beagleBone Balck eMMC.
我无法理解我哪里出错了以及如何解决它.
我正在尝试在BeagleBone Black上构建一个交叉编译器,以便从ARM编译为x86.这样做的目的是使用我手头上的低功耗BeagleBone Black作为构建服务器.它已经可以通过mingw-w64为windows编译,但我还需要它来编译Linux x86系统的代码.
但是,当我尝试在BeagleBone Black上编译gcc时,我收到以下错误:
/bin/bash ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../../gcc-4.6.3/gmp -D__GMP_WITHIN_GMP -g -O2 -c -o mpn/div_qr_1n_pi1.lo mpn/div_qr_1n_pi1.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../../gcc-4.6.3/gmp -D__GMP_WITHIN_GMP -g -O2 -c mpn/div_qr_1n_pi1.c -o mpn/div_qr_1n_pi1.o
/tmp/cckCXg2a.s: Assembler messages:
/tmp/cckCXg2a.s:194: Error: thumb conditional instruction should be in IT block -- `movcc r4,#0'
/tmp/cckCXg2a.s:195: Error: thumb conditional instruction should be in IT block -- `movcs r4,#-1'
/tmp/cckCXg2a.s:452: Error: thumb conditional instruction should be in IT block -- `movcc r4,#0'
/tmp/cckCXg2a.s:453: Error: thumb …Run Code Online (Sandbox Code Playgroud) 我正在尝试编译一个程序来放置BeagleBone黑色,但是当我在我的主板上运行程序时我得到了这个错误:
/lib/libc.so.6: version `GLIBC_2.17' not found
Run Code Online (Sandbox Code Playgroud)
我确保我为ARM编译(arm-linux-gnueabi-gcc).
在我的桌面上,我有EGLIBC 2.17-9.我做错了什么?
beaglebone Black处理器包括两个独立的可编程实时单元(PRU).业余爱好者和专业人士对可能将这些单元用于实时应用感到兴奋,这是可以理解的.但是,如果您可以使用RTOS(无论是beaglebone还是Rasberry pi),为什么还需要PRU?
编辑 - 有关信息,BBB的ARM Cortex A8运行频率为1 GHz,频率为1.9 DMIPS/MHz.PRU是以200 MHz运行的简单RISC.
我需要:
能够硬件重置连接USB的设备(华为E220调制解调器)
已尝试软复位(使用unbind/bind和授权0/1),但软件复位不足以使设备再次正常工作; 该设备有一些奇怪的错误,这是由长时间使用(连接几天后)触发的.
使用/ sys/debug/omap_mux找到了很多答案,但是这个设备在新内核中不再存在.
由于这个问题花了两天时间才得到可行的答案,所以我决定在这里发布答案,这对其他人来说可能有用.
我陷入了不那么阳光明媚的交叉编译世界.
我正在尝试为我的BeagleBone Black(运行TI Cortex-A8处理器)编译一个简单的hello world应用程序.
首先,我在x86上编译并成功运行了hello world应用程序 gcc
然后我将编译设置更改为以下内容:
arm-linux-gnueabi-gcc -c -O0 -g3 -Wall main.c -o bin/obj/main.o
arm-linux-gnueabi-gcc bin/obj/main.o -o bin/hello_world
Run Code Online (Sandbox Code Playgroud)
我通过SCP将文件传输到BeagleBone,并设置了可执行权限 chmod +x hello_world
在运行它(./hello_world)时,我唯一的回答是:
-bash: ./hello_world: No such file or directory
Run Code Online (Sandbox Code Playgroud)
正如我所期望file的/sbin/init那样匹配的输出:
$ file hello_world
hello_world: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0x24b659b7a41fe043a6f4649d4ebfb5e692ebf0c7, not stripped
$ file /sbin/init
/sbin/init: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), …Run Code Online (Sandbox Code Playgroud) beagleboneblack ×10
c ×2
embedded ×2
linux ×2
arm ×1
beagleboard ×1
boot ×1
c++ ×1
debian ×1
device-tree ×1
gcc ×1
gpio ×1
gstreamer ×1
opencv ×1
python ×1
qt5 ×1
qtmultimedia ×1
raspberry-pi ×1
rtos ×1
usb ×1