1
0
mirror of https://github.com/rcore-os/rCore.git synced 2024-11-23 08:26:17 +04:00
rCore/docs/2_OSLab/g2/environment.md
2018-12-31 22:51:13 +08:00

3.4 KiB
Raw Blame History

环境配置

软件需求

硬件需求

  • 1 块 Raspberry Pi 3 Model A+/B/B+
  • 1 块 4GB 及以上的 microSD 卡与读卡器
  • 1 个 CP2102 USB 转 TTL 模块
  • 若干杜邦线

在模拟器中运行

  • 构建并运行

    git clone https://github.com/wangrunji0408/RustOS.git --recursive
    cd RustOS/kernel
    rustup override set nightly
    make run arch=aarch64 [board=raspi3]
    
  • 使用 GDB 调试

    make debug arch=aarch64
    
  • 反汇编

    make asm arch=aarch64
    
  • 更多 Makefile 选项

    • mode=debug|release:指定 debug 还是 release 模式。默认 debug
    • graphic=on|off:是否启用图形输出。默认 on
    • smp=1|2|3|4|...:指定 SMP 的核数。目前 AArch64 的 SMP 未实现,该选项无效。
    • raspi3_timer=system|generic:使用 Raspberry Pi 的 System Timer 还是 Generic Timer。默认 generic,且在 QEMU 中只能使用 Generic Timer。
    • prefix=<prefix>:指定 AArch64 工具链前缀。默认 aarch64-none-elf-,某些 Linux 中的工具链前缀为 aarch64-linux-gnu-
    • LOG=off|error|warn|info|debug|trace:指定输出日志的级别。默认 warn
    • SFSIMG=<sfsimg>:用户程序 SFS 镜像路径。默认 ../user/img/ucore-aarch64.img,即用 C 语言编写的直接从原 uCore 中移植过来的用户程序。如欲使用 Rust 编写的用户程序可将其设为 ../user/build/user-aarch64.img

在真机上运行

  1. 往 SD 卡中写入 Raspbian 原版系统镜像:直接看 https://www.raspberrypi.org/documentation/installation/installing-images。然后需要将原版的 config.txt 替换为 tools/raspi-firmware/config.txt

  2. 写入 RustOS 内核镜像:

    make install arch=aarch64
    
  3. 连接 Raspberry Pi、CP2102 模块与 PC

    注意最好使用 Raspberry Pi 自带的电源适配器供电,而不要用 CP2102 模块的 +5V 供电(即不用连上图中的红线)。

  4. 使用 screen 与串口进行通信:

    screen /dev/<your-path> 115200
    

    在 macOS 中 CP2102 模块的设备路径一般为 /dev/tty.SLAB_USBtoUART,在 Linux 中一般为 /dev/ttyUSB0

  5. 插入 SD 卡,上电,看终端的输出结果。如果连接了 Raspberry Pi 的 HDMI 接口与显示器,还能看到显示器中有输出。

实用技巧

  1. 从 QEMU 中退出:按 <ctrl-a> c,再输入 q
  2. 从 screen 中退出:按 <ctrl-a> k,再输入 y