编译安装Minix3
准备
到minix的官网 https://www.minix3.org/
下载Minix 3.3.0的CD镜像文件 http://download.minix3.org/iso/minix_R3.3.0-588a35b.iso.bz2
解压缩
bzip2 -d minix_R3.3.0-588a35b.iso.bz2
得到minix_R3.3.0-588a35b.iso
创建一个硬盘镜像文件
qemu-img create minix.img 8G
安装
将minix_R3.3.0-588a35b.iso
安装到硬盘镜像文件minix.img
中
qemu-system-i386 -net user -net nic,model=virtio -m 1024 -cdrom minix_R3.3.0-588a35b.iso -hda minix.img -boot d
如果提示
WARNING: Image format was not specified for 'minix.img' and probing guessed raw.
Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
Specify the 'raw' format explicitly to remove the restrictions.
qemu-system-i386: -drive format=raw: A block device must be specified for "file"
可以用这个方式启动
qemu-system-i386 -net user -net nic,model=virtio -m 1024 -drive file=minix.img,format=raw,index=0,media=disk
启动后输入root
登录系统,再输入setup
命令,按提示一步步安装。
只是在选择Ethernet Chip
的时候选12
Virtio network device
,Config network using DHCP or manually?
选1. Automatically using DHCP
完成之后执行poweroff
关机
使用
关机后从硬盘启动Minix 3
qemu-system-i386 -net user -net nic,model=virtio -m 1024 -drive file=minix.img,format=raw,index=0,media=disk
登录之后应该就能联网了,可以执行pkgin install
安装必要软件了。如pkgin install vim
编译Minix3
要想编译minix 3.3.0,直接用 minix 3.3.0系统是不行的。
需要使用更高的版本。 参考此处: build minix error #297
wget -c http://download.minix3.org/iso/snapshot/minix_R3.4.0rc6-d5e4fc0.iso.bz
gnuzip minix_R3.4.0rc6-d5e4fc0.iso.bz
qemu-img create minix_R3.4.0rc6.img 8G
qemu-system-i386 -smp cpus=4 -net user -net nic,model=virtio -m 1024 -cdrom minix_R3.4.0rc6-d5e4fc0.iso -drive file=minix_R3.4.0rc6.img,format=raw,index=0,media=disk
如上述安装完成后
poweroff
从已经安装的硬盘镜像启动
qemu-system-i386 -smp cpus=4 -net user -net nic,model=virtio -m 1024 -drive file=minix_R3.4.0rc6.img,format=raw,index=0,media=disk
初始化开发环境
pkgin up
pkgin_sets
签出minix代码
cd /usr
git clone git@github.com:Stichting-MINIX-Research-Foundation/minix.git src
git clone前要做生成密钥之类的事,但也可以git clone https://github.com/Stichting-MINIX-Research-Foundation/minix.git
开始编译
cd /usr/src
make build MKUPDATE=yes
当完整编译过一次后,如果只想编译内核,完全可以
cd /usr/src/minix/kernel
make kernel MKUPDATE=yes
编译完后可以,cp kernel /boot/minix_latest/
SSH
pkgin install openssh
/usr/pkg/etc/rc.d/sshd onestart
如果想通过qemu连接到minix的ssh,可以用如下命令启动minix,然后通过宿主机端口2222连接到minix
qemu-system-i386 -smp cpus=4 -net user,hostfwd=tcp::2222-:22 -net nic,model=virtio -m 1024 -drive file=/Users/ace/Downloads/minix_R3.4.0rc6_src_full_compiled.img,format=raw,index=0,media=disk
开启远程登录需要编辑/usr/pkg/etc/ssh/sshd_config
,修改PermitRootLogin
行为PermitRootLogin yes
,保存退出。并给root账户设置密码。
然后/usr/pkg/sbin/sshd -f /usr/pkg/etc/ssh/sshd_config
【经测试,貌似没有用,重启会生效。】