Replies: 7 comments 1 reply
-
昵称:阿巴阿巴 |
Beta Was this translation helpful? Give feedback.
-
小作业:完成。 大作业:使用virtio-net驱动走通了添加一个新驱动的流程,在不启用bus-pci时可正常运行,启用bus-pci一直失败。 经过萧老师提示后发现,启动命令改成 make ARCH=aarch64 NET=y LOG=info QEMU_LOG=y BUS=pci FEATURES="bus-pci fp_simd e1000_net" run, virtio-net就能跑在bus-pci上 卡在bus-pci上的时间较多,本周时间不够尝试适配e1000驱动,暂时只能以当前状态提交。各位同学同学加油。 |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
作业地址:https://github.com/nan-mu/Starry_redis_homework
小作业运行截图 |
Beta Was this translation helpful? Give feedback.
-
王延禹 |
Beta Was this translation helpful? Give feedback.
-
软硬兼施小组成员共同努力下,大作业完成: 特别贡献:王延禹 |
Beta Was this translation helpful? Give feedback.
-
开源操作系统训练营
时间:2024-03-11~2024-04-15
课题:ArceOS在ARM64平台的硬件移植及驱动开发
课题目标
学生选修该课题,可以学习到如何一步一步地移植并开发内核驱动;逐步积累并形成学习开发文档;
进而有机会为Rust操作系统开发相关的单位及开源社区,贡献一份自己的力量💪
考核方式
作业提交:
作业安排
1. 小作业
请先同步小作业的代码到本地:
``
git clone https://github.com/elliott10/Starry_homework.git -b arm64-homework1
``
编译 ArceOS/Starry 内核:
尝试运行内核
这时会发现通过运行Qemu启动Arce/Starry内核,却无任何输出;
原因在于当前没有实现完全
Qemu AArch64
平台的输出功能 所依赖的串口驱动;作业:
请补充完善
Qemu AArch64
平台的串口驱动,使ArceOS/Starry系统正常启动并输出字符串。作业提示:
小作业的ArceOS/Starry启动
platforms
是aarch64-qemu-virt
;ArceOS/Starry的字符串的输出与输入,依赖
对
mod console
的定义,以及实现输出函数putchar
, 及输入函数getchar
.正常启动应该会有如下的字符串输出:
2. 大作业
请先同步Arceos/Starry仓库的主分支的最新代码。
接着,同步独立的Intel e1000 Rust网卡驱动仓库,
或者,若不下载到本地,可以通过在
Starry/crates/driver_net/Cargo.toml
crates配置文件中来引入基于Qemu模拟器启动的e1000网卡的参数,可在文件
Starry/scripts/make/qemu.mk
中,对应行添加如下参数:当参考
Intel ixgbe
样例,适配好网络接口,及需要的feature之后,可以用如下参数来编译&启动:作业:
请参照现有的
ixgbe
PCI网卡驱动案例,基于Qemu平台,实现Intel e1000
网卡驱动于Starry上的移植适配,实现系统的网络包的接收发送功能。作业提示:
其中,需要实现的PCI初始化网卡的接口
DriverProbe::probe_pci
如:https://github.com/Arceos-monolithic/Starry/blob/14f9c3bdca4a2c937521370a81718425df05210f/modules/axdriver/src/drivers.rs#L89
需要实现网卡设备的创建及设备接口
NetDriverOps
的impl实现如:https://github.com/Arceos-monolithic/Starry/blob/main/crates/driver_net/src/ixgbe.rs
作业答案
Beta Was this translation helpful? Give feedback.
All reactions