OpenXiangShan / XiangShan-doc

Documentation for XiangShan
https://xiangshan-doc.readthedocs.io
Creative Commons Attribution 4.0 International
342 stars 130 forks source link

riscv-pk打包bbl后启动时所有动态链接库均无法找到 #83

Closed YudeFang closed 7 months ago

YudeFang commented 7 months ago

image 如图,nemu的log显示即使before_workload也无法进行任何动态链接,busybox我使用静态链接后可以正常工作了。请问这种情况该怎么解决,全改静态链接么

xyyy1420 commented 7 months ago

before_workload完全没有任何依赖,更不用说libc了

YudeFang commented 7 months ago

可以提供下稳定的gcc版本么,我目前注释掉了所有spec有关的东西只跑beforeworkload和trap指定依然会报动态链接错误,我怀疑可能是gcc版本问题。

xyyy1420 commented 7 months ago

riscv-gnu-toolchains

YudeFang commented 7 months ago

我在执行指令的脚本里尝试了执行ls /lib 我发现所有的动态链接库都有 但他不知道为啥就是找不到,请问是需要添加LD_LIBRARY_PATH么 如果要添加要修改哪个文件呢 image

shinezyy commented 7 months ago

我在执行指令的脚本里尝试了执行ls /lib 我发现所有的动态链接库都有 但他不知道为啥就是找不到,请问是需要添加LD_LIBRARY_PATH么 如果要添加要修改哪个文件呢 image

我们建议尝试用NEMU运行ready-to-run里面的linux.bin看能否运行。

其实Linux启动配置不属於香山这个组织应该回答的范围。虽然我们一般会尽力回答,但是你遇到的问题我们确实没遇到过,通过网络上提供的信息,我们暂时也没有什么线索。

你遇到的这个问题也让我们意识到我们现有方式的不足:

YudeFang commented 7 months ago

我解决了上面那个问题,通过往run.sh里面添加了这行命令 image 但是遇到了一个新的问题是spec中的程序又无法找到了 报错信息如下

===== Start running SPEC2006 =====

======== BEGIN mcf ========

ld-linux-riscv64-lp64d.so.1 libm.so.6

libc.so.6 libpthread.so.0

libdl.so.2 libresolv.so.2

764318717d9e7f0f657133f6faf58247 /spec/astar_base

Thu, 01 Jan 1970 00:00:19 +0000

/spec

total 4164

drwxr-xr-x 2 0 0 0 Mar 7 2024 .

drwxr-xr-x 16 0 0 0 Jan 1 00:00 ..

-rwxr-xr-x 1 0 0 4194312 Jun 3 2005 BigLakes2048.bin

-rwxr-xr-x 1 0 0 591 Jun 3 2005 BigLakes2048.cfg

-rwxr-xr-x 1 0 0 56720 Mar 2 2024 astar_base

-rwxr-xr-x 1 0 0 370 Mar 7 2024 run.sh

/spec/run.sh: line 14: ./astar_base: not found

Thu, 01 Jan 1970 00:00:19 +0000

我在执行指令的脚本里尝试了执行ls /lib 我发现所有的动态链接库都有 但他不知道为啥就是找不到,请问是需要添加LD_LIBRARY_PATH么 如果要添加要修改哪个文件呢 image

我们建议尝试用NEMU运行ready-to-run里面的linux.bin看能否运行。

其实Linux启动配置不属於香山这个组织应该回答的范围。虽然我们一般会尽力回答,但是你遇到的问题我们确实没遇到过,通过网络上提供的信息,我们暂时也没有什么线索。

你遇到的这个问题也让我们意识到我们现有方式的不足:

  • 文档散乱
  • 即使用户99% follow了散乱的文档,但是仍然可能因为本地其它环境导致workload生成出错。我们会在不远的未来尝试解决这个问题,比如提供docker或者虚拟机镜像。
YudeFang commented 7 months ago

我在执行指令的脚本里尝试了执行ls /lib 我发现所有的动态链接库都有 但他不知道为啥就是找不到,请问是需要添加LD_LIBRARY_PATH么 如果要添加要修改哪个文件呢 image

我们建议尝试用NEMU运行ready-to-run里面的linux.bin看能否运行。

其实Linux启动配置不属於香山这个组织应该回答的范围。虽然我们一般会尽力回答,但是你遇到的问题我们确实没遇到过,通过网络上提供的信息,我们暂时也没有什么线索。

你遇到的这个问题也让我们意识到我们现有方式的不足:

  • 文档散乱
  • 即使用户99% follow了散乱的文档,但是仍然可能因为本地其它环境导致workload生成出错。我们会在不远的未来尝试解决这个问题,比如提供docker或者虚拟机镜像。

astar_base这个文件通过ls命令可以看到确实存在在/spec下,并且当前工作目录通过pwd显示也在/spec下,但是执行astar_base的时候找不到这个文件

shinezyy commented 7 months ago

我在执行指令的脚本里尝试了执行ls /lib 我发现所有的动态链接库都有 但他不知道为啥就是找不到,请问是需要添加LD_LIBRARY_PATH么 如果要添加要修改哪个文件呢 image

我们建议尝试用NEMU运行ready-to-run里面的linux.bin看能否运行。 其实Linux启动配置不属於香山这个组织应该回答的范围。虽然我们一般会尽力回答,但是你遇到的问题我们确实没遇到过,通过网络上提供的信息,我们暂时也没有什么线索。 你遇到的这个问题也让我们意识到我们现有方式的不足:

  • 文档散乱
  • 即使用户99% follow了散乱的文档,但是仍然可能因为本地其它环境导致workload生成出错。我们会在不远的未来尝试解决这个问题,比如提供docker或者虚拟机镜像。

astar_base这个文件通过ls命令可以看到确实存在在/spec下,并且当前工作目录通过pwd显示也在/spec下,但是执行astar_base的时候找不到这个文件

一般的,出现这种情况,要么是文件没有可执行权限,要么是指令集或者ABI不匹配

YudeFang commented 7 months ago

感谢回答 能否把你们样例中的astar_base biglake2048.cfg这三个文件发一下呢 因为我感觉我的spec交叉编译是没有问题的,我无法确定这件事因为我没有riscv的机器。所以如果能测试一下你们正确的程序我可以确定是否是abi的问题

我在执行指令的脚本里尝试了执行ls /lib 我发现所有的动态链接库都有 但他不知道为啥就是找不到,请问是需要添加LD_LIBRARY_PATH么 如果要添加要修改哪个文件呢 image

我们建议尝试用NEMU运行ready-to-run里面的linux.bin看能否运行。 其实Linux启动配置不属於香山这个组织应该回答的范围。虽然我们一般会尽力回答,但是你遇到的问题我们确实没遇到过,通过网络上提供的信息,我们暂时也没有什么线索。 你遇到的这个问题也让我们意识到我们现有方式的不足:

  • 文档散乱
  • 即使用户99% follow了散乱的文档,但是仍然可能因为本地其它环境导致workload生成出错。我们会在不远的未来尝试解决这个问题,比如提供docker或者虚拟机镜像。

astar_base这个文件通过ls命令可以看到确实存在在/spec下,并且当前工作目录通过pwd显示也在/spec下,但是执行astar_base的时候找不到这个文件

一般的,出现这种情况,要么是文件没有可执行权限,要么是指令集或者ABI不匹配

xiaokamikami commented 7 months ago

感谢回答 能否把你们样例中的astar_base biglake2048.cfg这三个文件发一下呢 因为我感觉我的spec交叉编译是没有问题的,我无法确定这件事因为我没有riscv的机器。所以如果能测试一下你们正确的程序我可以确定是否是abi的问题

我在执行指令的脚本里尝试了执行ls /lib 我发现所有的动态链接库都有 但他不知道为啥就是找不到,请问是需要添加LD_LIBRARY_PATH么 如果要添加要修改哪个文件呢 image

我们建议尝试用NEMU运行ready-to-run里面的linux.bin看能否运行。 其实Linux启动配置不属於香山这个组织应该回答的范围。虽然我们一般会尽力回答,但是你遇到的问题我们确实没遇到过,通过网络上提供的信息,我们暂时也没有什么线索。 你遇到的这个问题也让我们意识到我们现有方式的不足:

  • 文档散乱
  • 即使用户99% follow了散乱的文档,但是仍然可能因为本地其它环境导致workload生成出错。我们会在不远的未来尝试解决这个问题,比如提供docker或者虚拟机镜像。

astar_base这个文件通过ls命令可以看到确实存在在/spec下,并且当前工作目录通过pwd显示也在/spec下,但是执行astar_base的时候找不到这个文件

一般的,出现这种情况,要么是文件没有可执行权限,要么是指令集或者ABI不匹配

OK

YudeFang commented 7 months ago

I have resolve this problem , thank you all

shinezyy commented 7 months ago

I have resolve this problem , thank you all

How? Can you provide your solution, which might help others

YudeFang commented 7 months ago

I have resolve this problem , thank you all

How? Can you provide your solution, which might help others

later I will PR to the checkpoint branch in OpenXiangShan/riscv-rootfs repository