概述
在开发FreeBSD Kernel的过程中,发现基于Linux交叉编译的方法实在是过于不便,大量FreeBSD的脚本都是为了BSD自己准备的,因此搭建一个FreeBSD的开发环境,以便未来减少阻力。
该环境至少应该能支持:
- 基础的代码浏览与修改功能
- 基础的代码提示、补全与Linter
- 完备的编译环境
- 测试编译产生的内核的虚拟机
在这里,编译环境应该是相对好解决的,我们需要自己找到代码提示补全和虚拟机的方案。
FreeBSD
直接下载Index of /releases/VM-IMAGES/13.2-RELEASE/amd64/Latest/,然后新建虚拟机加载即可
如果用vmware,安个tools先
pkg install open-vm-tools
GUI
换个源先
FreeBSD pkg 源使用帮助 ‒ USTC Mirror Help 文档
qcow出现的问题vmdk也一样,需要给虚拟磁盘扩容下先
https://developer.aliyun.com/article/758140?spm=a2c6h.12873581.0.0.34342784yoZBWH
pkg install xorg xfce
startxfce4
共享文件夹挂载
很坑,这里只提供vmware的
在 /boot/loader.conf
加入
fusefs_load="YES"
在 /etc/fstab
加入
.host:/ /root/mnt/hgfs fusefs rw,mountprog=/usr/local/bin/vmhgfs-fuse 0 0
安装tools
pkg install open-vm-tools
mkdir -p /mnt/hgfs
reboot
reboot之后可以执行
kldstat
这里应该有个fusefs.ko就对了
此时可以看看/mnt/hgfs下有没有内容了(当然前提是Vmware里配了)
到此为止,可以通过共享文件夹的方式进行编译了(但是灰常慢)
为FreeBSD配置SSH
修改/etc/inetd.conf,把ssh tcp前面的注释干掉
修改/etc/rc.conf 加入 sshd_enable="YES"
修改/etc/ssh/sshd_config
把 PasswordAuthentication 的 no改为yes,注释去掉,允许PAM登录【可选的,我没开其实】
把 PermitRootLogin no 改为 yes,注释去掉【可选的,我不是生产环境,用root方便】
把 PubkeyAuthentication 注释去掉,允许通过key登录,然后自己配个authorized_keys
查看虚拟机ip:
用passwd改个密码
此时就可以ssh上来啦
配置sudo
安装个sudo、创建个用户
pkg install sudo
adduser
添加到wheel组,为了可以su到root
pw group mod wheel -m yyi
设置sudoers
visudo
这行注释去掉
测试一下即可
配置zsh+ohmyzsh
我的这些shell基本上都是一样的ohmyzsh+powerlevel10k,不赘述了
配置vscode-remote[失败了]
Vscode 的 ssh-remote不支持freebsd,但是配置一下并不难
启用一下freebsd的linux兼容模式
sudo sysrc linux_enable="YES"
sudo service linux start
sudo pkg install linux_base-c7
vscode-remote最后也没成功,因为remote一定要在ssh后面加个命令(即使我在config中已经制定了remote命令)
还是选择git同步吧。
最后记得打个快照
评论 (0)