ZYB ARTICLES REPOS

编译安装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 deviceConfig 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【经测试,貌似没有用,重启会生效。】