概述
macOS配置MITS6.081课程环境 及 解决brew国内下载速度慢的问题
本地环境:macOS Big Sur 11.5.2
对应课程:2019fall
大部分参考于博客https://zhayujie.com/mit6828-env.html以及课程官方网站https://pdos.csail.mit.edu/6.S081/2019/tools.html
接下来默认用户已安装brew、xcode、git。
1. 安装RISC-V toolchain
源码下载:
git clone --recursive https://github.com/riscv/riscv-gnu-toolchain
下载后在源码目录下编译:
./configure --prefix=/usr/local/opt/riscv-gnu-toolchain #配置产物路径
make #编译
出现错误及解决方法:
-
进行./configure时提示缺少GNU的 awk 和 sed:
configure: error: GNU awk not found
。**解决办法:**brew install gawk
以及
brew install gsed` -
make编译时,出现**/…/riscv-gnu-toolchain/riscv-gdb/readline/rltty.c:83:7: error: implicit declaration of function ‘ioctl’ is invalid in C99以及/…/riscv-gnu-toolchain/riscv-gdb/readline/terminal.c:83:7: error: implicit declaration of function ‘ioctl’ is invalid in C99**
**解决办法:**在对应的rltty.c以及terminal.c中均加入头文件#include <sys/ioctl.h>
编译成功后需要配置环境变量,使得我们在terminal中可以正常使用,执行以下几条命令
open -e ~/.zshrc 或 vim ~/.zshrc
export PATH="$PATH:/usr/local/opt/riscv-gnu-toolchain/bin" # 添加环境变量
source ~/.zshrc # 使改动生效
安装并配置完成后,输入:
riscv64-unknown-elf-gcc -v
若成功显示gcc的版本信息,说明安装成功。
补充:./configure、 make 、make install命令
./configure
检测你的安装平台的目标特征,该命令根据给定的参数和系统环境会生成Makefile文件。如./configure --prefix=/usr/local/opt/riscv-gnu-toolchain
指定安装到指定路径下make
根据makefile中的信息编译源码make install
根据makefile中的信息安装文件- 更多细节参考官方文档。
2.安装QEMU
根据官网的说明,最好直接安装qemu-5.1.0,以避免版本不匹配导致的bug。
使用以下命令进行下载:
wget https://download.qemu.org/qemu-5.1.0.tar.xz # 如果下载太慢,可以去qemu官网手动下载对应的包
# 成功下载后解压并进入目录
./configure #默认安装所有目标平台,产物路径为/usr/local/bin
make # 编译
make install # 安装
遇到的错误及解决办法:
-
执行./configure时,遇到错误
ERROR: glib-2.48 gthread-2.0 is required to compile QEMU
以及ERROR: pixman >= 0.21.8 not present. Please install the pixman devel package
解决办法:安装对应的依赖包
brew install glib brew install pixman
-
利用make进行编译时,出现几个小错误,如
install: docs/built/system/qemu.1: No such file or directory
这应该是由于makefile有一点小问题,实际上这些需要的文件都在对应的文件夹下面的一个文件夹里,我们调整它们的位置之后,便可正常进行编译。
3. XV6环境配置
首先从github下载对应的课程源码:
git clone git://github.com/mit-pdos/xv6-riscv-fall19.git
接着在源码目录下进行编译:
make
make qemu # 如果成功进入xv6的shell说明安装成功
GDB调试
可以使用riscv-gnu-toolchain
中的gdb工具对xv6代码进行调试,首先在xv6目录下开启两个终端:
- 终端1执行
make qemu-gdb
即可启动gdb-server - 终端2执行
riscv64-unknown-elf-gdb
可进入gdb-client进行调试
如果一切正常,说明环境配置成功了。
解决brew国内下载速度慢的问题
在进行S6.081遇到的最大问题就是brew和git下载速度过慢。
关于解决brew下载速度慢的办法有三个:
- 改为镜像源,如中科大镜像源、清华大学镜像源
- 给macOS的terminal挂上代理
- 直接去手动下载对应的包,手动在本地进行编译(过于繁琐)
在这次实验中,解决方法是给terminal和git都挂上了代理。
准备:
- vpn
- 查询vpn使用的端口,以填充下面的
yourport
需要的命令为:
vim ~/.zshrc
export export http_proxy="http://127.0.0.1:yourport" # 也可以使用socks代理
source ~/.zshrc
git config --global http.proxy "http://127.0.0.1:yourport"
git config --global https.proxy "http://127.0.0.1:yourport"
最后
以上就是沉静长颈鹿为你收集整理的macOS配置MITS6.081课程环境 及 解决brew国内下载速度慢的问题的全部内容,希望文章能够帮你解决macOS配置MITS6.081课程环境 及 解决brew国内下载速度慢的问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复