标签: embedded-linux

有没有办法确定Linux可执行文件是否在ARM处理器上使用软浮点?

有没有办法确定Linux可执行文件是否在ARM处理器上使用软浮点?

谢谢,本

linux arm embedded-linux

3
推荐指数
1
解决办法
218
查看次数

Linux旧密码文件 - 逆转

我目前正试图"破解"linux嵌入式设备.该设备有一个不应该使用的telnet守护进程.无论如何,我从制造商网站上获取了二进制固件并成功提取了根文件系统.顺便说一句,我现在有/ etc/passwd文件.

passwd文件看起来像这样:

root:{10 char long}:0:0:root:/ bin:/ bin/sh

我的问题是:它可以是什么类型的哈希?crypt()哈希方法将返回13个字符串的字符串.

如果我知道哈希方法,我可以强制或替换它...

非常感谢你

linux embedded-linux

3
推荐指数
1
解决办法
2192
查看次数

创建符号链接以供其他Linux实例使用

我正在使用linux开发嵌入式应用程序.我有一个HOST Linux发行版(fedora)和一个TARGET linux发行版(不确定它是什么,但它没关系).

TARGET文件系统是HOST文件系统中的文件夹.例如,TARGET通过HOST文件系统上的/ home/paul/target/rootfs中的nfs引导,其中通常是linux文件结构.

我正在向TARGET添加一个守护程序.我在HOST上交叉编译它并使用make目标(make install)将文件复制到TARGET文件系统并设置守护进程运行.我复制

  • 守护进程二进制文件
  • 一些libs和一个启动脚本
  • 一些符号链接(符号链接),以方便守护进程的自动启动

这些是后者给我带来的问题.为了在启动时自动启动,我需要在/etc/rc.d/rc0.d到rc6.d的TARGET fs中创建符号链接,这指向我的启动脚本/etc/rc.d/init/d/MDNS.

问题是我需要在HOST机器上创建这些符号链接,但是要由TARGET使用.因此,他们无法指向HOST机器所看到的完整路径,他们需要指向TARGET运行时看到的路径.

所以举个例子

我需要在/home/paul/target/rootfs/etc/rc0.d中创建符号链接,但符号链接需要调用K16mdns并指向/etc/init.d/mdns而不是/ home/paul/target/rootfs /等/ init.d /的MDNS

如何使用ln命令执行此操作?我需要为ln指定3个东西(除了-s标志): - 链接文件名,链接的目标和创建链接的目录.我在ln手册页中看不到这个组合.

它总是似乎最终破坏HOST上的/etc/rc.d目录或者使用仅与HOST相关的路径在TARGET fs中创建符号链接,这些路径显然会失败(TARGET没有路径/ home/paul/target /rootfs/etc/init.d/mdns).

当我在TARGETs命令行上手动创建符号链接时,一切都很好但很明显这不是一个实用的解决方案.

先感谢您.

linux embedded symlink embedded-linux

3
推荐指数
1
解决办法
2460
查看次数

测量linux内核从启动到用户空间所需的时间

是否有基于内核检测的方法来测量内核在启动期间转移到用户空间的时间?我可以使用printk的定时信息,但我只是不确定,放置此printk的确切位置,以便观察内核何时转移到Userspace.

linux kernel kernel-module linux-kernel embedded-linux

3
推荐指数
1
解决办法
1052
查看次数

来自strtol的意外输出

我正在尝试创建一个小程序,它接收物理内存位置并打印存储在该位置的数据.我将两个参数传递给程序 - 我要打印的内存的地址和大小(以字节为单位).

我遇到的问题是当我传入的地址超过某个值时,strtol()函数会传递一个无意义的值.代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <sys/mman.h>
#include <asm-generic/fcntl.h>
#include <unistd.h>

int main(int argc, char** argv)
{
    unsigned int mem_address,mem_size;
    int loop, i;
    int *ptr, *mem_address_current;

    printf("mem_addr: %s\n",argv[1]);
    printf("mem_size: %s\n",argv[2]);

    mem_address = strtol(argv[1], NULL, 16);
    mem_size = strtol(argv[2], NULL, 16);

    printf("mem_addr: %x\n",mem_address);
    printf("mem_size: %x\n",mem_size);

    int mem_dev = open("/dev/mem", O_RDWR);

    if(mem_dev == -1)
    {
        printf("No worky\n");
        exit(1);
    }

    int alloc_mem_size, page_mask, page_size;
    void *mem_pointer, *virt_addr;

    page_size = sysconf(_SC_PAGESIZE);
    alloc_mem_size = (((mem_size / page_size) + 1) * page_size);
    page_mask …
Run Code Online (Sandbox Code Playgroud)

c embedded embedded-linux

3
推荐指数
1
解决办法
251
查看次数

SystemProperties.set需要什么Linux权限才能工作?(机器人)

SystemProperties.set需要什么Linux权限才能工作?(机器人)

我正在编写一个在Android设备上的系统/应用程序中运行的应用程序.

它正在运行

机器人:sharedUserId = "android.uid.systemui"

在Android.mk中

LOCAL_CERTIFICATE:=平台

但是,我发现我无法创建,编写或设置属性.在控制台中,我可以做一个getprop,setprop.但是,我的程序无法创建它.

ls -l/data/property /

表明它不存在.

        Slog.d(TAG, "key is not set, will set APPLE");
        SystemProperties.set(keyName, favorite);
        if(SystemProperties.get(keyName).equals(favorite)) {
            Slog.d(TAG, keyName + " = " + SystemProperties.get(keyName));
        } else {
            Slog.e(TAG, "setting SystemProperties failed. value written = " + SystemProperties.get(keyName));
        }
Run Code Online (Sandbox Code Playgroud)

logcat的:

Line 1365: D/MyTag( 2593): keyName: persist.fruit.user.favorite
Line 1373: D/MyTag( 2593): keyName has value []
Line 1377: D/MyTag( 2593): key is not set, will set APPLE
Line 1381: E/MyTag( 2593): setting SystemProperties failed. …
Run Code Online (Sandbox Code Playgroud)

linux android embedded-linux

3
推荐指数
1
解决办法
3559
查看次数

用Real Time Linux开始编程的最佳方法是什么?

尽管我已经用C实现了许多项目,但是我对操作系统完全陌生。我在发现板(STM32)上尝试了实时linux,并获得了正确的LED闪烁结果,但是由于我只是按照步骤进行操作,并且无法在Internet上找到每个步骤的完整说明,因此我并没有真正理解整个过程。

我想在实时Linux上实现调度。最好的开始方法是什么?有可用的网站,书籍,教程吗?

完整的RTLinux流程描述将不胜感激。

感谢在广告中。

real-time rtos embedded-linux

3
推荐指数
1
解决办法
3692
查看次数

Yocto中BSP和分布层之间有什么区别

您能简单解释一下BSP和分布层是什么,它们之间有什么区别?

实际上我并不是在寻找Yocto项目的手册参考资料,但是很高兴按照你的理解得到解释.

embedded metadata embedded-linux bitbake yocto

3
推荐指数
1
解决办法
1150
查看次数

如何创建特定于机器的配方?

我想知道是否有机会仅通过文件名创建机器特定的配方,以便我有类似这样的层结构:

\-> recipes-example
     \-> example
         \-> example_1.0.bb_machine1
         \-> example_1.0.bb_machine2
Run Code Online (Sandbox Code Playgroud)

刚刚读过几乎完整的Yocto文档,并且认为我曾经偶然发现这个创建机器特定配方的机会,但无法重新修改它.

备选方案也很受欢迎,但我知道像这个例子的bash解决方案:

do_install() {
   case ${MACHINE} in
      < case statements [...] >
}
Run Code Online (Sandbox Code Playgroud)

recipe embedded-linux bitbake yocto

3
推荐指数
1
解决办法
2152
查看次数

错误文件名太长Yocto Project

我正在开发一个Yocto项目,版本:poky-jethro

我想为Raspberry Pi构建一个版本的发行版poky

Build Configuration:
BB_VERSION        = "1.28.0"
BUILD_SYS         = "x86_64-linux"
NATIVELSBSTRING   = "Ubuntu-14.04"
TARGET_SYS        = "arm-poky-linux-gnueabi"
MACHINE           = "raspberrypi"
DISTRO            = "poky"
DISTRO_VERSION    = "2.0.1"
TUNE_FEATURES     = "arm armv6 vfp arm1176jzfs callconvention-hard"
TARGET_FPU        = "vfp"
meta              
meta-yocto        = "jethro:3b223f75eec1738fbc913858e8e11c8305e3edcb"
meta-oe           
meta-multimedia   
meta-networking   
meta-python       = "jethro:c305ac5d2f5285d5eec8952a4ca7f3b4f89aed96"
meta-qt5          = "jethro:9bfcf79fcd824efb9f2a9bd72ecbedfee1315c96"
meta-raspberrypi  = "jethro:f2cff839f52a6e6211337fc45c7c3eabf0fac113"
meta-rpi          = "jethro:3ef71867eeb3669da40019469385a437843e8245"
Run Code Online (Sandbox Code Playgroud)

我成功地在另一个操作系统"Ubuntu-14.0403"上构建系统但是当我尝试在另一个版本"Ubuntu-14.0404"上构建系统时

出现此错误

[Errno 36]文件名太长

[Errno 36]文件名太长

embedded-linux openembedded bitbake ubuntu-14.04 yocto

3
推荐指数
1
解决办法
2130
查看次数