标签: embedded-linux

在嵌入式Linux中使用mono用于硬件

我正在为一家公司做实习研究.我在使用.Net平台的跨平台实现Mono时遇到了一些问题.我的公司设计硬件和软件.

我使用嵌入式linux的知识非常有限.我在实习期间所在的公司非常注重.NET.但单声道的新发展,他们问自己是否可以针对较小的项目瞄准linux,也避免了他们设计软件和硬件的人的高许可成本.

我已经看过单声道可以做什么(而且还不能做).现在我到达嵌入式问题.我有点迷失在构建嵌入式Linux的故事中.

我看到一些故事,他们只是拿了一些标准的linux库来在硬件上制作嵌入式Linux.我还看到存在特殊的Linux发行版,如uClinux(又名μClinux).那有什么区别,或者它是一样的.当我想在目标deivce上使用嵌入式Linux时,这个过程通常是什么样的?

好吧,比单声道部分,所以基本上我希望能够在嵌入式Linux中运行C#.这里大多数人都使用uclinux,我可以使用单声道吗?我看了一些规格,他们没有内存管理单元(MMU).

所以基本上我担心没有MMU.既然垃圾收集器会如何反应呢?

我希望我没有提出过多的问题,

问候,我已经感谢你阅读了,

本杰明

.net mono uclinux embedded-linux

6
推荐指数
1
解决办法
4642
查看次数

ld.so.1中的ELDK gcc链接器错误

我在一个Ubuntu盒子里安装了ELDK-3.1,效果很好.

在另一台运行64位OpenSuse 12.1的机器上,我克隆了ELDK安装,并且有一段时间它运行良好.

现在,当我尝试配置我的项目时,我看到:

configure: error: C compiler cannot create executables
See `config.log' for more details
Run Code Online (Sandbox Code Playgroud)

日志显示:

configure:3411: ppc-linux-gcc    conftest.c  >&5
/opt/ELDK-3.1/usr/bin/../lib/gcc-lib/ppc-linux/3.3.3/../../../../ppc-linux/bin/ld: warning: ld.so.1, needed by /opt/ELDK-3.1//usr/../ppc_8xx/lib/libc.so.6, not found (try using -rpath or -rpath-link)
/opt/ELDK-3.1//usr/../ppc_8xx/lib/libc.so.6: undefined reference to `_dl_lookup_versioned_symbol_skip@GLIBC_PRIVATE'
...
Run Code Online (Sandbox Code Playgroud)

该文件ld.so.1与目录位于同一目录中libc.so.6.

s -l /opt/ELDK-3.1//usr/../ppc_8xx/lib/ld.so.1 
lrwxrwxrwx 1 root root 11 Jan 31 11:43 /opt/ELDK-3.1//usr/../ppc_8xx/lib/ld.so.1 -> ld-2.3.1.so
Run Code Online (Sandbox Code Playgroud)

据我所知,我正确地定义了所有需要的环境,并尝试使用与Ubuntu框中完全相同的构建系统构建(项目是"自动化").

所以我写了一个脚本试图模仿我的automaked configure所做的一切:

#!/bin/bash


if [ ! -f confdefs.c ]; then
    cat > confdefs.c << EOF
/* confdefs.h */
#define …
Run Code Online (Sandbox Code Playgroud)

c gcc powerpc cross-compiling embedded-linux

6
推荐指数
1
解决办法
1941
查看次数

android中的/tmp在哪里?

我是驱动程序而不是应用程序的开发人员。最近,我将ghostscript移植到android上,在嵌入式linux下运行得很好。但在Android中它不能正常工作,因为它需要/tmp,在我创建/tmp后它可以正常工作。所以,我的问题是android 中的 /tmp 在哪里,或者在我的情况下有其他解决方案吗?

android embedded-linux

5
推荐指数
1
解决办法
5071
查看次数

BeagleBone Black 通过内核驱动程序中断

我正在尝试处理中断,但由于 ioread32,我收到以下错误。

\n\n

正如我在《AM335x SitaraTM 处理器 - 技术参考手册》的“25.3.3 中断特性”一章中看到的

\n\n

为了在 GPIO 引脚上发生定义的事件(电平或逻辑转换)时向主机处理器生成中断请求,必须按如下方式对 GPIO 配置寄存器进行编程:

\n\n

\xe2\x80\xa2 必须在 GPIO_IRQSTATUS_SET_0 和/或 GPIO_IRQSTATUS_SET_1 寄存器中启用 GPIO 通道的中断。

\n\n

\xe2\x80\xa2 必须在 GPIO_LEVELDETECT0、GPIO_LEVELDETECT1、GPIO_RISINGDETECT 和 GPIO_FALLINGDETECT 寄存器中选择输入 GPIO 上触发中断请求的预期事件。

\n\n
[ 1737.604270] Loading hello_interrupts module...\n[ 1737.604426] HI: Initialized GPIO #36 to IRQ #164\n[ 1737.604478] Unhandled fault: external abort on non-linefetch (0x1028) at 0xfa1ac02c\n[ 1737.612611] Internal error: : 1028 [#1] SMP THUMB2\n[ 1737.617696] Modules linked in: hello_interrupts(O+) g_multi libcomposite omap_rng mt7601Usta(O) [last unloaded: hello_interrupts]\n[ 1737.630128] CPU: 0 …
Run Code Online (Sandbox Code Playgroud)

c++ kernel-module embedded-linux beagleboard beagleboneblack

5
推荐指数
1
解决办法
4964
查看次数

Python无法启动新线程,但未达到线程限制

我有一个安装了 Python 3 的嵌入式系统(armv5tejl AT91SAM9X25,具有 128MB RAM,运行基于 buildroot 的 rootfs)。我已经让系统运行很多天了,我开始对其进行一些Python开发工作,但似乎在创建新线程时遇到了问题。

如果我尝试运行以下程序:

Type "help", "copyright", "credits" or "license" for more information.
>>> import threading
>>> import time
>>> def func():
...     i = 0
...     while True:
...         i += 1
...         print(i)
...         time.sleep(1)
...
>>>
>>> func()
1
2
3
^CTraceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 6, in func
KeyboardInterrupt
>>> t = threading.Thread(target=func)
>>> t.start()
Traceback (most recent call last): …
Run Code Online (Sandbox Code Playgroud)

linux multithreading embedded-linux python-multithreading python-3.x

5
推荐指数
1
解决办法
1413
查看次数

ALIX / AMD Geode 上的 nodejs 运行 voyage linux 导致“无效机器指令”

以下调查的结果是:最近的 Node.js 无法移植到 AMD Geode(或其他非 SSE x86)处理器!

\n\n

我深入研究了代码,并陷入了 ia32 汇编器实现中,该实现将 SSE/SSE2 指令深度集成到其代码中(宏、宏、宏……)。主要后果是,由于缺乏更新的指令集扩展,您无法在 AMD geode 处理器上运行最新版本的 Node.js。回退到 387 算术仅适用于 node.js 代码,但不适用于它所依赖的 javascript V8 编译器实现。调整 V8 以支持非 SSE x86 处理器是一件痛苦且需要付出大量努力的事情。

\n\n

如果有人提供相反的证据,我会很高兴听到;-)

\n\n

调查历史

\n\n

我有一个正在运行的 ALIX.2D13 ( https://www.pcengines.ch ),它有一个 AMD Geode LX 作为主处理器。它运行 voyage linux,这是一个基于 debian jessi 的发行版,适用于资源受限的嵌入式设备。

\n\n
     root@voyage:~# cat /proc/cpuinfo \n     processor       : 0\n     vendor_id       : AuthenticAMD\n     cpu family      : 5\n     model           : 10\n     model name      : Geode(TM) Integrated Processor by AMD PCS\n     stepping        : 2\n     cpu MHz …
Run Code Online (Sandbox Code Playgroud)

x86 debian-based embedded-linux node.js debian-jessie

5
推荐指数
1
解决办法
518
查看次数

如何清理 yocto 中的 populate_sdk

我们可以使用-c选项来清理特定的配方,例如:

bitbake -c cleanall core-image-sato
Run Code Online (Sandbox Code Playgroud)

但是当我们尝试构建“SDK”时,我们运行以下命令:

bitbake -c populate_sdk core-image-sato
Run Code Online (Sandbox Code Playgroud)

如何清理上述命令生成的输出。

linux embedded-linux yocto

5
推荐指数
1
解决办法
3706
查看次数

如何检查socketcan中的总线状态

我在嵌入式 Linux 上使用Flexcan 驱动程序,并且有C程序控制 CAN 消息。在我的C程序中,我需要检查 can 总线的状态,例如buss-off或error-active。我可以使用 linux 命令, ip -details -statistics link show can0结果如下:

2: can0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UP mode DEFAULT group default qlen 10
    link/can  promiscuity 0 
    can state *ERROR-ACTIVE (berr-counter tx 0 rx 0) restart-ms 100 
          bitrate 250000 sample-point 0.866 
          tq 266 prop-seg 6 phase-seg1 6 phase-seg2 2 sjw 1
          flexcan: tseg1 4..16 tseg2 2..8 sjw 1..4 brp 1..256 brp-inc 1 …
Run Code Online (Sandbox Code Playgroud)

can-bus embedded-linux socketcan

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

无法打开 /dev/tty(2,3,4)。没有这样的文件或目录

使用 Busybox (1.30.1) 启动 QEMU 时(lkeep 出现错误无法打开 /dev/tty2: 没有这样的文件或目录无法打开 /dev/tty2: 没有这样的文件或目录无法打开 /dev/tty3 : 没有这样的文件或目录 Busybox 正在运行,因为当我运行 ls 时,我看到了这些目录。在网上找到了编辑 inittab 的建议,但 /etc 中没有。所以我在那里放了一个,但没有解决问题。INITTAB在 Busybox .config 中启用

谢谢

linux embedded-linux

5
推荐指数
1
解决办法
5101
查看次数

如何通过 Yocto 在构建时添加用户?

我正在开发一个带有 i.MX6 DL、Yocto Pyro 和内核 4.14.16 的定制板,并试图弄清楚如何添加新用户。我已经尝试过这里提供的建议: How to add an user and re set the root user in yocto? 无济于事。我还尝试按原样运行演示 useradd-example.bb 菜谱(位于菜谱骨架层),但这也不起作用。

它可以编译,我可以构建一个图像,但是当我尝试以任何新用户身份登录时,我登录不正确。如果我以 root 身份登录,则在 /home/ 目录中看不到任何文件夹(我已将根主文件夹移动到 /root)。我猜想是少了点什么。

这是我正在使用的食谱:

SUMMARY = "Add the user accounts that the production printer will need."
LICENSE = "CLOSED"

#inherit extrausers
#
#EXTRA_USERS_PARAMS = "\
#    useradd -P Z2tQc0Ewto0c. mi_printer; \
#    usermod -P Z2tQc0Ewto0c. root;"


#SUMMARY = "Example recipe for using inherit useradd"
#DESCRIPTION = "This recipe serves as an example for using …
Run Code Online (Sandbox Code Playgroud)

embedded-linux yocto

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