如何将Qemu中Minix的/usr/src源码同步到本地Git仓库并修改?
嘿,刚好我之前折腾过Minix源码的修改和同步,给你一步步捋清楚怎么把/usr/src同步到本地Git仓库,还能轻松修改后同步回去:
1. 先在Minix里把源码目录变成Git仓库
首先得SSH进你的Minix系统,把/usr/src初始化成Git仓库,不然没法和本地同步:
- 打开本地终端,连接Minix:
ssh -p 10022 user@localhost - 切换到源码目录:
cd /usr/src - 先确认Minix里装了Git,没装的话用
pkg_add git搞定 - 初始化仓库:
git init - 把所有源码文件加入暂存区:
git add . - 提交初始版本:
git commit -m "Initial commit: Full Minix source code"
2. 把Minix的Git仓库同步到本地
这里有两种靠谱的方法,选你顺手的来:
方法1:直接通过SSH克隆(推荐,后续同步更方便)
在本地终端(别在Minix的SSH会话里)执行这条命令,把Minix里的/usr/src仓库克隆到本地的~/local-minix-src目录:git clone ssh://user@localhost:10022/usr/src/ ~/local-minix-src
之后要同步Minix里的更新,直接在本地仓库拉取就行。
方法2:打包拷贝(适合网络慢的场景)
如果SSH克隆速度感人,可以先在Minix里把仓库打包:
- 在Minix的SSH会话里:
cd /usr/src && git bundle create minix-src.bundle --all - 本地用SCP把bundle文件拉过来:
scp -P 10022 user@localhost:/usr/src/minix-src.bundle ~/ - 本地创建仓库并导入bundle:
mkdir ~/local-minix-src cd ~/local-minix-src git init git pull ~/minix-src.bundle
3. 在本地修改源码并同步回Minix
现在你可以在本地的~/local-minix-src目录里随便改代码了——比如调内核逻辑、改系统工具都没问题。修改完之后:
- 先在本地提交你的修改(记得写清楚改了啥,方便后续回溯):
git add . git commit -m "Modify kernel/sched.c: Optimize process scheduling priority logic" - 然后推送到Minix的仓库里:
git push ssh://user@localhost:10022/usr/src/ main
(如果Minix里的Git默认分支是master而不是main,把命令里的main换成master就行)
4. 在Minix里编译修改后的源码
同步回去之后,得编译才能让修改生效:
- SSH进Minix,切换到/usr/src:
cd /usr/src - 用root权限执行编译命令,全量编译用
make build,如果只改了内核,单独编译更快:make kernel - 要是改了内核,编译完记得重启Minix:
reboot
一些小提醒
- 每次本地修改前,最好先拉取Minix里的最新代码,避免冲突:
git pull ssh://user@localhost:10022/usr/src/ main - Minix的编译依赖挺严格的,要是编译报错,先检查是不是改坏了语法或者依赖文件,也可以查/usr/src里的README文档
内容的提问来源于stack exchange,提问作者Jytug
相关产品推荐
相关产品推荐

