Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Several Issues on Linux Compilation #41

Open
summer-zgy opened this issue Sep 13, 2024 · 7 comments
Open

Several Issues on Linux Compilation #41

summer-zgy opened this issue Sep 13, 2024 · 7 comments

Comments

@summer-zgy
Copy link

Hello, according to the official documentation section 'Compiling Linux Kernel with OpenSBI', the compiled fw-payload.elf is not executable. Is there anything that needs to be adjusted here?
Also, could you please provide the version of linux_kernel used for linux.bin in xiangshan's ready to run?

@cebarobot
Copy link
Member

Sorry, but the infomation your provide is not enough. What do you mean not executable? On what platform? Is there any error log?

By the way, XiangShan/NEMU just accepts flat binary. If you use an elf file, that won't work.

I think the README has mentioned the verison of linux kernel. It is 6.1.83.

@summer-zgy
Copy link
Author

感谢您的回复,我目前的问题有两个:
第一个是我按照这个编译流程,编译出了一个Linux.bin,并且拿这个bin在Xiangshan环境去运行,这个bin无法正常运行完成,log在附件发送.
run-linux.log

第二个问题是我想编译出一个可以执行的elf文件,在其他环境使用,目前按照提供的编译流程,她的格式是DYN(共享目标文件),是否有编译上需要调整的地方,可以编出一个可执行文件.

@cebarobot
Copy link
Member

对于第一个问题,您提供的 log 中没有什么有效的调试信息。从指令数看,您运行的指令数还太少;从周期数和 IPC 看,您的 IPC 明显偏低。请提供更多信息,例如使用的香山的版本号等。

对于第二个问题,openSBI 编译出的 elf 文件应该是可用的,但我们本身不会用到它。对于 OpenSBI 和 Linux 编译中的问题,我们仅能对有关香山的部分进行支持。对于其他问题,请咨询其他专家、社区。

@shinezyy
Copy link
Contributor

shinezyy commented Sep 19, 2024

我按照这个编译流程

你这样说话,我们仍然不知道你按照的是什么编译流程。你应该提供你参考的编译流程和操作记录。

@summer-zgy
Copy link
Author

对于第一个问题,您提供的 log 中没有什么有效的调试信息。从指令数看,您运行的指令数还太少;从周期数和 IPC 看,您的 IPC 明显偏低。请提供更多信息,例如使用的香山的版本号等。

对于第二个问题,openSBI 编译出的 elf 文件应该是可用的,但我们本身不会用到它。对于 OpenSBI 和 Linux 编译中的问题,我们仅能对有关香山的部分进行支持。对于其他问题,请咨询其他专家、社区。

好的.感谢!
我使用的XiangShan版本号是:commit 8fae59bba57fd80fcd1d85aadbf87895b97d167a (HEAD)
Author: Easton Man [email protected]
Date: Mon Jan 8 11:12:15 2024 +0800

ibuffer: use bypass for better timing (#2568)

运行的命令是:./build/emu -i case地址 --no-diff -b 0
运行的case是按照XiangShan官方文档中编译出的linux.bin(https://docs.xiangshan.cc/zh-cn/latest/tools/opensbi-kernel-for-xs/),完全按照文档基础配置
运行该case后就hang在了,instrCnt = 1,479,719, cycleCnt = 14,399,699, IPC = 0.102760

@summer-zgy
Copy link
Author

我按照这个编译流程

你这样说话,我们仍然不知道你按照的是什么编译流程。你应该提供你参考的编译流程和操作记录。

您好:
编译按照的是XiangShan官方文档中的[编译使用 OpenSBI 的 Linux Kernel]的流程,完全按照默认流程,没有增加别的需求.https://docs.xiangshan.cc/zh-cn/latest/tools/opensbi-kernel-for-xs/
编译出的elf是DYN类型,预期是想得到一个EXEC类型:
readelf -a fw_payload.elf
ELF 头:
Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
类别: ELF64
数据: 2 补码,小端序 (little endian)
Version: 1 (current)
OS/ABI: UNIX - System V
ABI 版本: 0
类型: DYN (共享目标文件)
系统架构: RISC-V
版本: 0x1

@cebarobot
Copy link
Member

好的.感谢! 我使用的XiangShan版本号是:commit 8fae59bba57fd80fcd1d85aadbf87895b97d167a (HEAD) Author: Easton Man [email protected] Date: Mon Jan 8 11:12:15 2024 +0800

这个香山的版本太老了,我们已经无法对其做支持。建议您在 NEMU 上先运行这一工作负载来确认其正确性,并且切换到较新版本的香山(例如主线)。

类型: DYN (共享目标文件)

这个问题是存粹的软件问题,这些软件都是由上游维护的,我们无法为您解答相关问题。您可以在其社区向软件开发者提问,或者在互联网上搜索,如:Why does GCC create a shared object instead of an executable binary according to file?

Maxpicca-Li added a commit that referenced this issue Sep 23, 2024
- spike commit: 60fcb37ac083b2a45ecedbbf6306ec6efd4dd56e
- spike config: CPU=XIANGSHAN

Including:
* feat(diff): support svpbmt (#41)
Maxpicca-Li added a commit that referenced this issue Sep 23, 2024
- spike commit: 60fcb37ac083b2a45ecedbbf6306ec6efd4dd56e
- spike config: CPU=XIANGSHAN

Including:
* feat(diff): support svpbmt (#41)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants