问题标签 [petalinux]
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 - 嵌入式linux中rootfs中多个源文件时如何构建?
我有一个简单的 c 应用程序
Ctest.c 文件
我有那些 new.c 和 new.h 文件。
new.h 文件为
我的 new.c 文件为
当我尝试在我的嵌入式 linux 工具中使用构建命令来编译和生成二进制文件时,构建失败,这是我为 rootfs 上的应用程序更改的 make 文件。
为应用程序 Ctest 制作文件:
这是我在编译时的错误日志
我知道我需要在构建应用程序的 make 文件或 bitbake 文件中进行更改,即 Ctest.bb 文件如果是这样,有哪些更改?我正在使用 petalinux 2017.1
应用程序的 bitbake 文件是
如何将 new.h 文件放入 make 文件中,还是需要更改 bitbake 文件?
opencv - 问题在 x86_64 主机上为 ARM 交叉编译 opencv 2.4.11
我一直在尝试为 ARM 目标系统交叉编译 opencv。我的项目依赖于使用 opencv 2.4.11。
目标系统是在 Zynq Ultrascale+ FPGA 的四核 Cortex A53 上运行的 petalinux 2017.2。
我的主机系统是 Ubuntu 16.04 x86_64。
我使用以下 toolchain.cmake 文件进行配置:
我执行了以下步骤:
如您所见,构建过程失败:错误:未知寄存器名称 'st' in 'asm'。似乎它试图用 ARM 编译器解释 x86_64 库
在构建过程中不时会出现这样的警告,这表明设置的路径有问题:
对我来说,不清楚为什么它采用主机路径而不是给定的目标根路径。
bash - 如何在没有 stdbuf 和类似工具的情况下取消缓冲传统运行二进制文件的标准输出
我想监视将要启动的程序的实时输出。我试图通过将程序的输出重定向到管道然后从监视脚本中读取管道来做到这一点。
然后从监控脚本
但是,由于 >> 中的缓冲区,没有输出。无论如何我可以禁用这个缓冲区?我在准系统嵌入式系统 (petalinux) 上运行,因此我无法访问 unbuffer、脚本或 stdbuf 来帮助我。
我已经在另一个可以使用 unbuffer 的平台上尝试了这些脚本,它可以按我的预期工作。
有什么办法可以配置这个缓冲区,或者使用另一个二进制文件来重定向?
编辑:我无权访问我尝试运行的命令的源代码。它是一个遗留的二进制文件。
c - Net-SNMP 一次只运行一个处理程序吗?
情况是访问硬件组件的多个 MIB 自定义处理程序,如果有时间我们并行运行 2 个处理程序,则会导致错误。注意:获取和设置请求使用相同的硬件组件。
shell - 如何构建 openembedded 包
我有非商业许可证的 petalinux 用户包。我正在尝试LICENSE_WHITELIST = "non-commercial"
在 local.conf 文件的末尾添加这些行,但它没有编译我的包库,因为我知道我需要在URL: git://github.com/openembedded/openembedded-core.git
我的 local.conf 文件中指定以下内容,因为它试图从中获取URL ftp://ftp.netperf.org/netperf/archive/netperf-2.6.0.tar.bz2
不是正确的那一个。如何通过将以下文件添加到白名单许可证并指定 URL 来更改以下文件。
linux-kernel - 在内核中启用 initramfs 时使用 NFS 引导 microzed 7010 板
我正在为我的项目使用 petalinux 和 vivado 2016.04 和 microzed 7010 板。
我已按照步骤操作 => 我已通过跳线将板设置为 QSPI 模式。我已经对船上的 imaged.ub 进行了 TFTP(运行 netboot),并通过 NFS 从我的 PC 安装了屋顶。
为此,当在 petalinux-config 中配置 NFS 时,我必须手动禁用内核配置中的 initramfs。
如果我没有在内核中禁用 initramfs (petalinux-config -c kernel ) 但配置了 NFS (petalinux-config),则 rootfs 将从 QSPI 挂载。
我是 petalinux sdk 和 microzed board 的初学者。即使我配置了 nfs 但没有在内核中禁用 initramfs 并且我的 bootargs 是什么原因使它从 QSPI 挂载 rootfs
输入: 1。“bootargs=console=ttyPS0,115200 earlyprintk root=/dev/nfs nfsroot=172.16.9.187:/tftpboot/nfsroot,tcp,v4 ip=172.16.9.25 rw”
手动我交叉验证了 NFS 从 PC 到板的 rootfs 安装。
2. “mount -o nolock -t nfs ip_addr:/tftpboot/nfsroot /home/root/”
任何帮助将不胜感激。提前致谢。
问候, 普里塔姆
yocto - -sh /usr/local/sbin/wpa_supplicant 没有这样的文件或目录
我已经构建了 TI wilink 实用程序,然后将其集成到我的 rootfs 中。这是使用 petalinux 2016.4 完成的,并在 yocto build 中创建了一个安装模板应用程序,以复制 rootfs 中的所有工具和库。当我打开 BOOT.bin 和 image.ub 时,我看到了文件和库,但是当我尝试运行例如 wpa_supplicant 时,它甚至wpa_supplicant -h
不起作用。它向我显示错误:
-sh:/usr/local/sbin/wpa_supplicant:没有这样的文件或目录。
该文件存在并且还具有可执行权限。你知道为什么它不能运行吗?谢谢
c - I2C IOCTL 写入失败
嘿,我正在尝试为运行 PetaLinux(嵌入式 Linux 操作系统)的嵌入式系统编写用户空间应用程序以将一些数据移动到 I2C,尽管我认为这不是影响问题的原因。我收到连接超时和分段错误。
该函数具有指示它写入第一个 I2C 总线的宏。我在 main 中指定要写入的数据并将其传递给 i2c_write,然后将其传递给 i2c_ioctl_write。
这是代码:
当我在 QEMU 上运行程序时,我得到以下输出:
main i2x_write i2c_ioctl_write 缓冲区分配成功...缓冲区设置成功...设置 I2C 消息设置 I2C IOCTL 有效负载 cdns-i2c e0004000.i2c:超时等待完成 写入 IOCTL 连接超时。分段故障
我认为它在线上失败了
但我不知道为什么。有效载荷是否构造不当?
更新:这是当前代码:
我能够通过删除 free() 来摆脱 seg 错误,所以谢谢。我已经查明了发生在 Cadence I2C 驱动程序中的超时的确切问题:
这仍在发生。
如前所述,我向从站写入的方式可能存在一些问题,导致从站不发送 ACK,从而导致超时。我不确定我需要写哪些寄存器。我感觉需要更改 I2C_DEVICE 宏以及 addr 和 reg 变量。
linux-kernel - 使用 u-boot 启动时,zImage 未进行解压缩
我正在开发 microzed 7010 板,我手动编译了内核、u-boot、fsbl 和 .bit (vivado)。主板在所有设置下都能正常启动(不使用 petalinux)。但我注意到内核不是解压缩内核……使用 zImage 或 uImage。而我可以看到带有 petalinux 图像的引导日志。
输入 :
1. zImage 环境是
2. 引导日志是 =>
3. 在 u-boot 我给了 bootz 支持
4. uImage由
是什么导致它不解压缩内核?u-boot 是否压缩内核并启动?
任何帮助将不胜感激。
谢谢和问候, 普里塔姆
yocto - how to find out what recipe failed
I'm building a Xilinx image for an FPGA with Yocto. I'm somewhat new to Yocto. One of the recipes failed. From the output I can't figure out which one. Unfortunately I can't paste the log. For some reason stackoverflow
won't allow me to do it.