我是靠谱客的博主 沉静长颈鹿,最近开发中收集的这篇文章主要介绍macOS配置MITS6.081课程环境 及 解决brew国内下载速度慢的问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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                                                       #编译

出现错误及解决方法:

  1. 进行./configure时提示缺少GNU的 awk 和 sed: configure: error: GNU awk not found

    **解决办法:**brew install gawk以及brew install gsed`

  2. 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                                      # 安装

遇到的错误及解决办法:

  1. 执行./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
    
  2. 利用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下载速度慢的办法有三个:

  1. 改为镜像源,如中科大镜像源、清华大学镜像源
  2. 给macOS的terminal挂上代理
  3. 直接去手动下载对应的包,手动在本地进行编译(过于繁琐)

在这次实验中,解决方法是给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国内下载速度慢的问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部