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
rCore-Tutorial-Book-v3/chapter0/5setup-devel-env #11
Comments
请问虚拟磁盘文件可以传一份到清华云盘上吗? |
想问下有docker镜像吗 |
虚拟磁盘文件已经传到清华云盘上了。 |
抱歉,暂时还没有。 |
我弄了个docker镜像,不想重新配一遍的话可以用一下 |
安装rustup target add riscv64gc-unknown-none-elf提示 |
Rust 官方并没有为 riscv64gc-unknown-none-elf 这个 target 提供标准库 std,而只有核心库 core 。所以是因为现在 build 的项目用到了标准库 std 才出现了这个问题,详情参考文档第一章第二小节的 移除标准库依赖 。 |
M1 MacbookPro 正常启动 Qemu 安装:执行:
然后需要加一个补丁,以避免 // util/osdep.c
// 在 int qemu_mprotect_none(void *addr, size_t size) 函数中加入 m1 平台判断
int qemu_mprotect_none(void *addr, size_t size)
{
#ifdef _WIN32
return qemu_mprotect__osdep(addr, size, PAGE_NOACCESS);
#elif defined(__APPLE__) && defined(__arm64__)
/* Workaround mprotect (RWX->NONE) issue on Big Sur 11.2 */
return 0;
#else
return qemu_mprotect__osdep(addr, size, PROT_NONE);
#endif
} 开始构建:
构建完毕,注意设置 qemu 的 PATH 为 build 目录。 以上。应该就可以在 M1 上正常使用 Qemu 了。 |
qemu-riscv64在mac下怎么没有呢?
|
Ubuntu-20.04(wsl2)环境下安装后,使用qemu-system-riscv64命令提示libtinfo.so.6不存在;Ubuntu-18.04(wsl2)正常 |
rust安装脚本中toolchain需要手动选择nightly,否则默认安装的为default版本 |
按照实验指导书中所述进行qemu的手动编译安装,wsl2 ubuntu20.04未发现此情况。请确认你正确的进行了编译安装。
可以通过在项目根目录下添加写有
|
楼上大佬提供的docker镜像下载如果慢的话,使用如下pull姿势,亲测可行: |
@zeyuanj @dinghao188 请问这个 dinghao188/rcore-tutorial 的dockerfile 在哪里? |
brew install qemu 经过测试, |
@Hunter-CH3 macOS(Arm) 下 5.2.50 版本的 qemu 同样会在 make run 的时候报错(invalid instruction)。 我还以为是我自己的问题呢。。。 看来是qemu的问题 |
@zeyuanj 你提供的这个镜像地址返回 403 |
@ZhangHanDong 同样启动qemu 后加载sbi报错
降到5.2.0,之后会出现 所以貌似又无解了 |
安装完rust后,需要切换到nightly,要不然RV64裸机应用那里的实验通不过。
|
@imjustfly 你是在用m1 吗? |
发到这了 https://github.com/dinghao188/rcore-tutorial-v3-docker; 这个里面的rust是最小化安装的 |
Q:windows下可以开展OS实验的方便环境吗?
注:编译运行一般在命令行通过 make run等完成。 |
安装WSL2应该不需要加入预览体验计划吧 |
@ZhangHanDong M1 没错。你上面那个手动的patch是修复M1 macos 11.2 下的 然而,rustsbi表示必须在5.1以下的qemu中使用: https://github.com/luojia65/rustsbi/issues/12#issuecomment-784900685 所以,我也懒得研究把5.2.50中对于mmap syscall的使用的修改port到5.1去了,毕竟只是一时兴起想学习一下这个项目,我还是直接docker或者ssh 一个linux主机吧。 |
@imjustfly 你看我上面那个 qemu 的clone仓库是patch版本的,修复了 Could not allocate dynamic translator buffer . 然而,还是docker吧,等qemu后面完全兼容m1再切吧 |
@ZhangHanDong 哦哦,了解。多谢! |
结合 @dinghao188 提供的 Dockerfile 给实验环境加了个 Docker 支持,方便使用。 |
不需要加入 实验指导书中已有安装讲解,你也可以参考微软的指南 https://docs.microsoft.com/zh-cn/windows/wsl/install-win10 |
不好意思,我可能描述有误,仅就docker pull来说,我这边的网下载原始镜像速度有点慢,添加pdockerhub.azk8s.cn后加速成功,类似于更换下载源实现镜像加速(其他方式如阿里云等效果不好)可能仅针对自己的环境有效,不具有普遍性 |
请问为什么make run报错呀 |
按照“Github Classroom方式进行在线OS 环境配置”章节中的说明,在 vscode的console中执行make codespaces_setenv和make setupclassroom_testX失败是怎么回事呢?@yghhust ➜ /workspaces/lab0-0-setup-env-run-os1-yghhust (main) $ make codespaces_setenv
|
VMware虚拟机方式应该是最省心的了,你只需要下好Ubuntu 22.04的iso文件,下载本文提供的虚拟磁盘文件,新建虚拟机时注意选择磁盘文件,就能直接打开了 |
注意,最后网络问题virtio-drivers切到gitee上时,需要添加rev,virtio-drivers = { git = "https://gitee.com/rcore-os/virtio-drivers", rev = "4ee80e5" } |
切换到gitee仍然无法访问。 Caused by: Caused by: Caused by: Caused by:
if the git CLI succeeds then Caused by: |
gitee上没有lose-net-stack,你不能将https://github.com/yfblock/lose-net-stack改成https://gitee.com/yfblock/lose-net-stack。如果你用的是ubuntu,你可以试试执行 |
千万不要!! |
os目录下执行
|
我的问题,高版本的qemu没有 |
按照文档下载QEMU并编译,运行
|
运行 |
个人在ArchLinux下尝试配置qemu环境和实验环境,只需要
一条命令即可,这个安装的版本是8.0.1的(2023.9.19),之后直接在clone下的rCore-Tutorial-v3的os目录下进行make run即可,我能够直接输出RustSBI图样及Rust user_shell的那些应用。 至于之前的riscv环境和rust环境按照教程即可,唯一不同的是安装riscv-elf-gdb,没有中间那个unknown字样,这些可以在extra仓库里搜索到。 后续运行若出现什么问题会回来回帖补充。 |
make run 报下面的错误 lk@ubuntu20:~/repo/rCore-Tutorial-v3/os$ make run
(rustup target list | grep "riscv64gc-unknown-none-elf (installed)") || rustup target add riscv64gc-unknown-none-elf
riscv64gc-unknown-none-elf (installed)
cargo install cargo-binutils
Updating crates.io index
Installing cargo-binutils v0.3.6
error: failed to compile `cargo-binutils v0.3.6`, intermediate artifacts can be found at `/tmp/cargo-install7OjPSu`.
To reuse those artifacts with a future compilation, set the environment variable `CARGO_TARGET_DIR` to that path.
Caused by:
failed to run `rustc` to learn about target-specific information
Caused by:
process didn't exit successfully: `rustc - --crate-name ___ --print=file-names --crate-type bin --crate-type rlib --crate-type dylib --crate-type cdylib --crate-type staticlib --crate-type proc-macro --print=sysroot --print=split-debuginfo --print=crate-name --print=cfg` (exit status: 1)
--- stderr
error: unknown print request `split-debuginfo`
make: *** [Makefile:43: env] Error 101 |
The above problem has been fixed. |
error: failed to select a version for the requirement |
error: failed to select a version for the requirement 这个关联的版本已经下线了:https://docs.rs/funty/1.2.0/funty/index.html |
如果变异 qemu 大于 7.2 版本要注意安装 slirp,否则 sudo apt install libslirp-dev
./configure --target-list=riscv64-softmmu,riscv64-linux-user --enable-slirp |
老师,我按照教程安装qemu后输入“qemu-riscv64 --version“命令,发现版本还是4.2.1 |
在 "GDB 调试支持" 一节提到:
如若默认使用 |
我make run之后卡在这里不动了,怎么回事 |
@Max-Ming 看起来没什么问题,可能只是这一步比较慢?如果还有问题的话报一下平台和Qemu版本。 |
验证了以上方法可行, 需要额外安装一个vscode的插件: C/C++ IntelliSense, debugging, and code browsing. (插件名字就叫C/C++) |
@wyfcyx 好像是qemu版本低了,应该使用7.0.0版本 |
注意!注意!注意!在虚拟机vmware上使用磁盘文件的,不要用qemu5.0.0版本,使用qemu7.0.0 |
一、如果想用gdb-dashboard插件的话,只是将所有出现于 Makefile文件 中的 riscv64-unknown-elf-gdb 替换成 riscv64-unknown-elf-gdb-py可能不太行(至少我没有成功,插件依然使用不了,另外我的环境是ubuntu20.04,python版本为python2.7、python3.8)二、可以选择自行编译riscv64-unknown-elf-gdb,就按照 https://rcore-os.cn/rCore-Tutorial-deploy/docs/pre-lab/gdb.html 提供的方法(亲测行得通)三、不过按照这个网站编译的话需要注意一下几点1、用python2环境2、不要编译版本太高的gdb,我最初选择编译的是gdb14.1,莫名报错编译失败,后来使用gdb10.1版本源码编译就成功了四、这是我在我上面提到的环境下编译好的支持gdb-dashboard插件的gdb, 希望对你有所帮助链接:https://pan.baidu.com/s/1VBRWAwWoEgZxRDhGwLxjTA?pwd=btcc |
调了好几天了,我用VMware虚拟机的方式makerun的时候出现了错误:error[E0599]: the method For more information about this error, try |
@MR-Promethus 请问是哪个分支呢?是k210分支吗? |
为什么我使用ubuntu22.04的安装了docker,如何使用docker进行本地os开发环境配置,到cd /mnt这步发现/mnt目录下是空的? |
arch用cargo安装cargo-binutils找不到rust-objdump等可执行文件的话 可以在aur里找 |
实验环境配置 — rCore-Tutorial-Book-v3 0.1 文档
https://rcore-os.github.io/rCore-Tutorial-Book-v3/chapter0/5setup-devel-env.html
The text was updated successfully, but these errors were encountered: