Skip to content

OSH-2019/x-i-m-feeling-lucky

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OSH 大作业

成员

  • 刘云飞 PB17051044
  • 李维晟 PB17000100
  • 汪若辰 PB17000098
  • 余磊 PB17051053

项目

A. [Final] Implementing an OS for Raspberry Pi 3 in Rust

B. Enhanced Distributed File System

记录

课程规划

(来自隔壁小组

  • 第一二周:提交分组名单与初拟题目
  • 第三周:第一次作业(作业+实验0)
  • 第二周与第三周:确认选题,开始调研
  • 第四周与第五周:正式提交项目选题,提交调研报告(即总体设计报告第一部分)
    1. 调研报告:项目背景、立项依据、前瞻性/重要性分析、相关工作(科研和工业界)(十五页)
  • 第五周:第二次作业(作业+实验1)
  • 第五周及第六周:设计报告第二部分:可行性报告
    1. 可行性报告:可行性分析,包括理论依据、技术依据、创新点(10页)
    2. 概要设计报告
  • 第七周:第三次作业(作业+实验2)
  • 第八周:中期汇报
  • 第九周:前三次实验检查
  • 第11周:第四次作业(作业+实验3)
  • 第16周:期末考试
  • 第17及18周:项目检查与实验3检查

Get Started

软硬件环境

硬件

  • 树莓派 3B+
  • CP2102 USB to TTL 转接线
  • Micro SD 卡
  • 读卡器

软件

安装 Rust

$ curl https://sh.rustup.rs -sSf | sh

更改 Rust 工具链版本

$ cargo install --version 0.3.10 xargo
$ rustup default nightly-2018-01-09
$ rustup component add rust-src

安装 aarch64-none-elf 工具

$ wget https://cs140e.sergio.bz/files/aarch64-none-elf-linux-x64.tar.gz
$ tar -xzvf aarch64-none-elf-linux-x64.tar.gz

aarch64-none-elf/bin目录添加到PATH环境变量即可。

克隆项目

$ git clone https://github.com/OSH-2019/x-i-m-feeling-lucky
$ cd x-i-m-feeling-lucky

安装 ttywrite 工具

$ cd cs140e/1-shell/ttywrite
$ cargo install

若出现类似error: non-string literals in attributes, or string literals in top-level positions, are experimental的错误,需按照提示在某文件中添加#![feature(attr_literals)]。要添加这一行的文件需要根据报错的文件位置来确定,具体方法为,若报错的文件为*/src/../..*rs,则在*/src/lib.rs中添加#![feature(attr_literals)]。若下文中出现同样报错,再次按此操作即可。

在 Micro SD 中放入启动必需文件

启动必需文件有 4 个:start.elf, bootcode.bin, config.txt, kernel8.img

https://github.com/raspberrypi/firmware/tree/master/boot 下载start.elfbootcode.bin文件,新建文本文件config.txt,内容如下:

kernel_address=0x4000000
device_tree=

获取kernel8.img

$ cd cs140e/os/bootloader
$ make
$ cp build/bootloader.bin kernel8.img

也可以在cs140e/os/files_used_to_boot文件夹下直接找到这 4 个文件。

把 Micro SD 卡用 MBR 分区表建立一个 FAT32 分区,将这 4 个文件放入分区根目录内。

连接设备

Micro SD 卡插入树莓派中,使用 USB to TTL 转接线将树莓派和电脑相连,连接方式如下。

img

运行

进入/dev文件夹,找到ttyUSB开头的一项,记下这个名字,然后将cs140e/os/kernel/MakefilePI_TTY ?= /dev/ttyUSB0做相应修改。

kernel目录下执行命令:

$ make install

如果出现访问/dev/ttyUSB*权限不足的问题,需要将您当前的用户添加到/dev/ttyUSB*所在组中:

首先获取其所在组:

$ ls -la /dev/ttyUSB*

若输出结果如下,说明其所在组为dialout

crw-rw---- 1 root dialout 188, 0 Jul  5 19:43 /dev/ttyUSB0

将当前用户添加到该组中:

$ sudo adduser $(whoami) dialout

注销并重新登录,再次使用make install传输kernel.bin文件。

待传输完成后,执行命令:

$ screen /dev/ttyUSB0 115200 # if your TTY device differs, modify ttyUSB0 appropriately.

Enjoy it!

img

About

x-i-m-feeling-lucky created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages