标签: beagleboneblack

复制相同的BeagleBone Black设置

在板载eMMC上设置和定制我的"主"BeagleBone Black(BBB)和应用程序等之后,我想在其他BBB板上复制它.

复制BBB的最佳方法是什么?

我对选项的理解:

  1. SD卡:通过插入准备好的包含图像的SD卡并在加电时按下"启动"开关对每块电路板进行编程.
    • 我应该如何从主BBB准备.img文件或SD卡?
    • 图像应复制到板载eMMC,以便之后可以移除SD卡.
  2. USB:通过USB将板连接到(Win7)PC进行编程.
    • 是否可以从PC上编写完整的板载eMMC?
    • 用哪个应用程序来写作?
    • 如何准备将要写入的图像,从主BBB开始?
  3. 以太网:使用默认的angstrom发行版启动后通过LAN进行编程.
    • 局域网甚至可能吗?
    • 如何写作?
    • 如何准备将要写入的图像,从主BBB开始?

哪种可能/最好?

编辑:我目前的解决方案是使用标准图像(来自BeagleBoe网站)进行闪存,然后让脚本按预期进行所有修改.这包括禁用我不需要的许多服务,安装应用程序和配置东西等.如果有一种更简单的方法来制作带有完整图像的SD卡,我仍然感兴趣.

linux boot embedded-linux beagleboard beagleboneblack

20
推荐指数
3
解决办法
3万
查看次数

Qt5 VideoOverview示例无效

我在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

linux gstreamer qt5 beagleboneblack qtmultimedia

19
推荐指数
1
解决办法
531
查看次数

如何使用设备树覆盖在Beaglebone Black上添加i2c设备?

我为什么要读这个?

如果您有Beaglebone Black(BBB)并且想要将自己的设备连接到它(不是斗篷),您可能已经听说过设备树.在我的情况下,我想将RTC设备连接到BBB上的I2C总线.网络上散布着大量的信息,本文旨在概述我发现的内容以及完成任务的指南.

因此,我将给出一个在BBB上激活I2C总线的完整示例,以及使用内核中包含的设备驱动程序连接DS1308 RTC芯片.听起来不错?

请继续阅读,如果有任何不明确的地方请留下评论.如果您有点匆忙,您也可以在Github上抓取设备树覆盖代码并飞走.

首先要做的事情.

我在我的BBB上使用ArchLinux ARM主要是因为Arch Linux非常棒而且我使用debianoid发行版可能太愚蠢了.这是系统的屏幕截图 ..

BBB上的ArchLinux屏幕截图

你可能会注意到内核版本已经超过了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.dtsi
  • am335x-boneblack.dts
  • am33xx.dtsi

注:该.dtsi文件是等同于.h在C文件或C++,因为他们得到包括(因此"我"末)的.dts 文件

它们都描述了与处理器相关的设备,Beaglebone平台上的常用设备或仅适用于Beaglebone Black的设备.

你提到叠加层,那是什么?

好问题,我看到你还在和我在一起.正如我之前所说,内核启动时会解析设备树blob.因此,当您的系统启动并运行时,整个魔法已经结束.在像BBB这样的平台上有一大堆扩展板(Capes),这需要你每次去另一个斗篷使用时重新编译设备树.

因此,您具有覆盖机制,允许您在运行时在设备树中添加或修改设备!惊人.

注意:为了能够编译设备树覆盖,请确保安装适当的包,如上所述( …

device-tree beagleboneblack

18
推荐指数
1
解决办法
2万
查看次数

cv2.VideoCapture.open()始终返回FALSE

我想在我的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很新,所以这可能听起来很傻,我提前为此道歉.

python opencv beagleboneblack

15
推荐指数
2
解决办法
4万
查看次数

无法从SD卡BeagleBone Black中删除eMMC

我正在研究BeagleBone Black和Debian.我想在我的主板上刷新最新的Debian图像.为此,我从链接下载了最新的Debian图像:BeagleBone Image并使用WinDisk图像编写器准备了SD卡.

根据教程,我已将SD卡插入BeagleBone Black,按下启动按钮并施加电源.SD卡图像已启动.根据教程闪烁eMMC需要大约30-40分钟,所以我等了大约2个小时(只是为了确定).然后我从我的电路板上取下一张SD卡并接通电源.它启动了我之前的图像(eMMC没有被SD卡图像闪烁).对于闪存eMMC,我关注链接:闪烁beagleBone Balck eMMC.

我无法理解我哪里出错了以及如何解决它.

debian beagleboneblack

14
推荐指数
3
解决办法
3万
查看次数

在BeagleBone Black上构建gcc失败了

问题

我正在尝试在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)

gcc cross-compiling beagleboneblack

12
推荐指数
1
解决办法
1189
查看次数

/lib/libc.so.6:找不到版本"GLIBC_2.17"

我正在尝试编译一个程序来放置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.我做错了什么?

c embedded beagleboneblack

11
推荐指数
2
解决办法
3万
查看次数

为什么在拥有RTOS时需要可编程实时单元(PRU)?

beaglebone Black处理器包括两个独立的可编程实时单元(PRU).业余爱好者和专业人士对可能将这些单元用于实时应用感到兴奋,这是可以理解的.但是,如果您可以使用RTOS(无论是beaglebone还是Rasberry pi),为什么还需要PRU?

编辑 - 有关信息,BBB的ARM Cortex A8运行频率为1 GHz,频率为1.9 DMIPS/MHz.PRU是以200 MHz运行的简单RISC.

embedded rtos raspberry-pi beagleboneblack

11
推荐指数
2
解决办法
8466
查看次数

使用BeagleBone Black内核> = 3.8关闭/打开USB电源

我需要:

  • 关闭 - >睡几秒钟 - >打开beaglebone black的USB电源

能够硬件重置连接USB的设备(华为E220调制解调器)

已尝试软复位(使用unbind/bind和授权0/1),但软件复位不足以使设备再次正常工作; 该设备有一些奇怪的错误,这是由长时间使用(连接几天后)触发的.

使用/ sys/debug/omap_mux找到了很多答案,但是这个设备在新内核中不再存在.

由于这个问题花了两天时间才得到可行的答案,所以我决定在这里发布答案,这对其他人来说可能有用.

usb gpio beagleboneblack

10
推荐指数
1
解决办法
7826
查看次数

尝试在目标设备上运行交叉编译的可执行文件失败:没有这样的文件或目录

我陷入了不那么阳光明媚的交叉编译世界.

我正在尝试为我的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)

c c++ arm cross-compiling beagleboneblack

10
推荐指数
1
解决办法
6961
查看次数