问题标签 [embedded-linux]
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 进程。对于调试,我希望看到通信返回。
有人可能会认为cat
可以解决问题(看到一个方向):
...但事实并非如此。相反,cat
会窃取一半用于应用程序的数据,这几乎毫无价值。
third-party-app 被硬编码为假设/dev/tty
.
我发现监视通信的一种方法是将/dev/tty
设备重命名为,比如说,/dev/real_tty
并创建一个命名管道/dev/tty
来代替它。然后运行:
...至少会让我看到 的输出,方法是将数据从命名管道/dev/real_tty
复制到./dev/real_tty
/dev/tty
stdout
这种工作但感觉真的很狡猾,并且依赖于更换设备的诡计。它也不能双向工作,因为命名管道只能在一个方向上传输数据。
这样做的正确方法是什么?
如果有人想知道,TTY 设备是与微控制器的 RS-232 链接。该信息不敏感或不安全。所有进程(应用程序和间谍)都可以作为 root 运行。
licensing - 重新打包操作系统软件以供嵌入式使用时的 GPL 许可
我目前正在构建一个基于 Linux 的嵌入式设备,但由于我使用预编译的二进制包构建它,我想知道在这种情况下需要什么来遵守 GPL。包含 GPL 许可文本的副本和指向相关发行版的指针就足够了吗?
我正在决定公司认为最终用户不应该乱搞产品内部的观点是否可以与 Linux GPL 一致,或者我是否应该硬着头皮切换到 FreeBSD。
embedded - 轮询硬件按钮的状态
我需要为在 200mhz MIPS cpu 上运行 embedde linux 的设备实现以下功能:1)如果按下并按住重置按钮不到一秒钟 - 继续重启 2)如果按下并按住重置按钮至少 3 秒。- 使用 NVRAM 中的默认值恢复系统配置,然后重新启动。
我正在考虑两种方法:1)一个守护进程,它通过 GPIO ioctl 以适当的时间不断轮询按钮的状态(可能开销太大,上下文切换很多?) 2)简单的字符驱动程序轮询按钮,测量时间并报告状态,例如,通过 /proc 到用户空间,守护进程或 shell 脚本可以检查并执行所需的操作。
对于这两种情况,我都不知道如何测量时间:(你有什么建议/推荐?
linux - 如何使用mpc8xxx_gpio.c设备驱动
我是设备驱动程序开发的新手。我正在尝试访问 MPC837xERDB 评估板的 GPIO。
我已将其内核升级到linux-2.6.28.9
并启用对mpc8xxx_gpio.c
. 启动时,它成功检测到两个gpio
控制器。
现在我的问题是我将如何使用它与gpio
引脚通信?我是否必须修改mpc8xxx_gpio.c
文件中的代码才能做任何我想做的事情,或者我可以使用内核(/ )中提供gpios
的标准API。我也尝试了标准内核 API,但它失败了。这是我的代码:gpio
gpio_request()
gpio_free()
它给出以下 O/P:
有人可以给我一个示例代码或其他东西。实际上我正在尝试设置 GPIO 引脚号。9 为低电平有效,因为它连接到板上的 LED。
makefile - 交叉编译内核模块
我正在尝试在我的 intel x86 主机上为 ARM 架构交叉编译一个 helloworld 内核(2.6.x)模块。
ARM 的 codesourcery 工具链位于:/home/ravi/workspace/hawk/arm-2009q3
内核源代码位于:/home/ravi/workspace/hawk/linux-opl1
我的制作文件:
当我运行make时,生成的 .ko 是我的主机的,这意味着 makefile 正在调用本机编译器而不是交叉编译器。我做错了什么?交叉编译器的二进制文件在我的路径中。
testing - 对于快速测试,可移植 Linux 还是可移植编程语言?
我目前的角色要求我设置模仿客户的环境并执行各种检查以复制然后分析问题。
很有可能,如果没有方便的基于 linux 的 shell 和一些命令行编程语言(例如 Perl),我经常会发现在 XP、Server 2003、Server 2008 等 Windows 环境中工作会有点痛苦。
当然,我可以将所有东西都安装到新系统上,然后开始工作,但这有点费时和无聊。
所以我想知道哪个是解决这个问题的更好方法?
我可以肯定地使用 Qemu 创建一个不需要任何主机系统干扰的便携式 linux 映像,即使不需要重新启动也可以使用它。这样做的缺点是我必须想办法在托管 Windows 和嵌入式 Linux 之间传输文件。好的部分是我可以使用 Linux 武器库中的所有武器。
或者我可以开始寻找合适的可移植编程语言,例如 Movable Python、Perl 的一些变体,甚至作为嵌入式语言的 Lua。优点:熟悉语言;缺点:必须使用脚本来做所有事情。
我的日常活动包括但不限于:
检查文本日志和/或 xml。
从日志中提取重要部分以进行进一步分析。
一些自动化过程,如应用程序服务器配置等......
自动化功能测试 - 和结果比较
一些系统管理员的工作,网络诊断,检查进程和服务等......
有什么好主意吗?提前非常感谢!
graphics - 哪个图形库更适合嵌入式 linux?
哪个图形库最适合开发字符 LCD 的 GUI 或嵌入式 linux 的简单图形 LCD。? 哪个有更好的性能和支持?
谢谢,尼尔
windows - Nano-X(微窗口)编程指南?
我想了解 Nano-X(Microwindow,嵌入式 GUI)的一些基本编程指南。我知道这是基于 Windows 的编程,但我想要一些可以更好地学习它的教程。我还想在 LCD 上显示图标或图像,那么如何在 Nano-X 或 Microwindow 中实现呢?
我还想要 Microwindow API(不是 Nano-X)的用户 API 手册?有人能帮我吗 ?
谢谢,尼尔
embedded-linux - 交叉编译时如何准备 modules.dep 和 ld.so.cache?
我在 x86 上为 ppc 交叉编译内核模块和一些库。是否可以在我的主机系统上创建 ld.so.cache 和 modules.dep?
PS我正在使用ELDK工具。
linux - 如何在 montavista linux 上为守护进程启用核心转储?
我不确定 stackoverflow 是否是正确的地方,但由于这是用于嵌入式开发,我需要核心转储,这也是用于开发的,我认为这是最好的地方。
我试图以这样一种方式启用全局核心转储,即每次程序以产生核心的方式崩溃时,它都会被写入/foo/bar/core。每次程序崩溃时,它都会覆盖旧的核心文件。目前我已经尝试了以下方法:
将此添加到limits.conf
将此添加到 sysctl.conf:
这没有用。如果我启动系统,执行 a sysctl -p
,ulimit -c unlimited
然后手动重新启动进程(没有 init 脚本),我会在 /foo/bar 中获得一个核心文件,但它附加了 PID。任何帮助将不胜感激。