Linux 或软件控制的帧缓冲区与 GPU 内存有什么区别?有没有好的图解指南来解释 Linux 帧缓冲区的工作原理?在带有 GPU 的嵌入式板上,我们通常使用帧缓冲区还是 GPU 来处理实时视频输入?
我正在尝试减小嵌入式系统的大小。所以我正在研究我可以删除什么。
最大的文件之一是:libicudata.so.52.1,长度为 23 Mo。这是我系统的重要组成部分。
我想根据以下标准在 iPhone、iPad 和 Kindle 等嵌入式设备上测试触摸面板:
做一个手势,比如点击、滑动、捏合(放大/缩小)10000 次,并验证每次手势确实被检测到并被检测为点击、滑动、捏合(放大/缩小)。
在触摸面板(屏幕)上轻敲 10000 次,并确保软件堆栈报告的触摸位置坐标确实是您轻敲的位置。
我还想了解更多关于我可以做什么其他触摸测试的想法?
我已经为 i386 编译了一个带有 Buildroot 的嵌入式 Linux。我没有编辑太多,只是默认。现在我想在qemu下运行它。但我看到的唯一一件事是:

我正在使用以下选项运行 qemu:
qemu-system-i386 -kernel vmlinux -hda rootfs.ext2 -m 256
Run Code Online (Sandbox Code Playgroud)
为什么会发生这种情况?我已经按照 buildroot 文档中的示例进行了编译。
我有一个使用 buildroot 构建的嵌入式系统。我遇到了许多网络问题,其中之一是我的机器尽管位于同一子网上,但无法看到其网关。我曾尝试使用 wireshark 来分析发生了什么但没有成功,因此作为最后的手段,我正在考虑尝试关闭对 IPv6 的支持,因为我不需要它(我的设备不需要 DNS 或任何类似的东西,只需要能够与其子网上的其他本地计算机通信)。我已经读到我可以通过编辑关闭 IPv6,/etc/modprobe.conf但我的设置中不存在此文件。我还能做些什么来禁用 IPv6 或者是在没有 IPv6 支持的情况下从头开始构建内核的唯一选择?
我一直在我的系统上使用以下命令来创建 .cpio 存档来为我的嵌入式目标设备创建一个 initramfs
sudo find . | cpio -H newc -oc > ~/initramfs.cpio
Run Code Online (Sandbox Code Playgroud)
这一直对我有用,没有任何问题。昨天我正在生成一个新的存档,我收到以下错误:
cpio: Archive format multiply defined: Operation not permitted
cpio: ./etc/shadow: Function open failed: Permission denied
cpio: ./usr/lib/ssh-keysign: Function open failed: Permission denied
64842 blocks
Run Code Online (Sandbox Code Playgroud)
我过去从未收到过这些错误,提到的打开失败的文件也没有被触及,所以我不明白为什么会发生这种情况。我使用 Ubuntu 包管理器更新了我的主机系统,因此我的cpio包也可能已更新。由于所有让我非常困惑的错误,我显然不相信这里生成的 initramfs。我能想到的唯一选择是尝试找出我的cpio版本是否已更改,如果已更改,请删除并替换为我拥有的旧版本。有什么办法可以在我的系统(Ubuntu 12.04)上找到这些信息?或者有其他方法可以解决这个问题吗?
我想要一个在第一次运行和重新启动服务时表现不同的服务。这可以用 systemd 实现吗?(我在嵌入式操作系统中使用 systemd)。
我尝试使用 ExecReload 和 ExecStart,但仅当我使用命令“systemctl restart”时才运行 ExecReload。另一方面 ExecStart 在服务重启后运行(我有 Restart=on-failure 和 RestartSec=5)。
我想perf在 Renesas 目标上使用,我配置了 yocto“local.conf”,如本链接所示。
#avoid stripping binaries
INHIBIT_PACKAGE_STRIP = "1"
#add the debug information
EXTRA_IMAGE_FEATURES= "debug-tweaks tools-debug dbg-pkgs tools-profile"
#format the debug info into a readable format for PERF
PACKAGE_DEBUG_SPLIT_STYLE = 'debug-file-directory'
Run Code Online (Sandbox Code Playgroud)
perf正在工作,但我需要监视需要使用的上下文切换perf timechart以及依赖于性能事件的其他命令,但这些命令找不到此路径 "/sys/kernel/debug/tracing/events" 。
我应该怎么做才能用我的内核编译这个文件夹及其文件?
我们有基于 beaglebone 黑色的定制板,具有 256MB RAM 和 4GB eMMC。主板运行 Linux 内核 4.9
我们遇到了一种情况,我们在其中创建了一个文件tempfs,然后在验证之后,我们必须将它移动到 eMMC 的 ext4 分区。只归档一个certificate
在某些情况下,我们在一个目录中有多个证书,因此我们必须将整个目录从 tempfs 移动到 eMMC 上的 ext4 分区。
所以,我们所担心的问题之一是atomicity的mv(移动)操作。
根据rename系统调用 Linux 手册页重命名文件是一个原子操作。
http://man7.org/linux/man-pages/man2/rename.2.html
但是我们不确定重命名操作是否涉及在两个文件系统之间移动文件,原子性仍然可用。所以问题是将文件从原子移动tmpfs到ext4原子吗?
显然,一种可能的解决方案是将文件保存在同一分区上的不同文件夹中(显然在同一文件系统上)并使用mv. 对于使用以下重命名方法的目录
SRC_dir --> TMP_DEST_dir
DEST_dir --> BAK_DEST_dir
TMP_DEST_dir --> DEST_dir
delete BAK_DEST_dir
Run Code Online (Sandbox Code Playgroud)
对替代品的任何建议?
编辑
在我得到回复后,我尝试在板上遵循测试代码,
#include <stdio.h>
#include <errno.h>
int main()
{
int retcode = 0;
system("touch /tmp/rename_test");
retcode = rename("/tmp/rename_test", "/home/fs_rename_test");
if ( retcode …Run Code Online (Sandbox Code Playgroud) 我很想找到减少启动时间的方法,特别是在嵌入式相关环境中。
我已经在某处阅读了一种避免内核加载某些驱动程序或模块的方法,但我完全迷失了,而且我在互联网上找到的所有信息都非常复杂和密集。
任何人都可以提出实现这一目标所需的一般步骤吗?也许我错了,这与内核无关。
embedded ×10
linux ×4
linux-kernel ×2
bash ×1
boot ×1
buildroot ×1
cpio ×1
debian ×1
debugging ×1
ext4 ×1
framebuffer ×1
initramfs ×1
ipv4 ×1
ipv6 ×1
networking ×1
perf ×1
qemu ×1
raspberry-pi ×1
rename ×1
systemd ×1
tmpfs ×1
touch-screen ×1
touchpad ×1
video ×1
yocto ×1