gpt4 book ai didi

用于嵌入式系统的 Linux | NiosII

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:53:10 25 4
gpt4 key购买 nike

我已经为 NiosII 编译了 Linux。我在 RAM 中有一个文件系统。我正在使用 busybox、buildroot 来制作文件系统。然后使用之前创建的文件系统编译内核。

一旦 Linux 启动,如果我运行像 ls 这样的命令(因为我想列出当前文件夹中的目录),它会导致 SEGV(段错误)

dtlinux login: root
Password:
login[547]: root login on 'ttyJ0'

BusyBox v1.23.1 (2015-03-17 16:38:07 CDT) hush - the humble shell
Enter 'help' for a list of built-in commands.

~ # ls
SEGV
~ #

系统中没有我自己开发的其他程序。我只是在尝试使用 hush 的 busybox 1.23.1

如果我运行 help 会发生这种情况:

~ # help
Built-in commands:
------------------
. Run commands in a file
bg Resume a job in the background
break Exit from a loop
...
... (I shortened this it was to long to post)
...
wait Wait for process
~ #

这让我觉得 busybox 的编译是正确的。

有人遇到过类似的问题吗?

最佳答案

是的,ls 程序可能在 undefined behavior 上崩溃了, 与 segmentation violation .检查 ls 不是内置函数(可能使用 which ls 或使用 echo $PATH)

也许您的 libc(或 ls 命令,可能来自 coreutils)构建错误(或某些动态链接问题)。

尝试(交叉)编译一些静态链接的程序(甚至可能是一些hello world)然后尝试将该程序复制到目标系统然后运行它。如果它运行,则意味着内核能够为某些系统调用提供服务,并且可能表明存在构建错误的 libc 或动态链接问题。

(我希望你在桌面上运行 Linux,因为你需要熟悉 Linux 才能调试你的问题)

关于用于嵌入式系统的 Linux | NiosII,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29115369/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com