部署一个基于VMWare的FreeBSD工作环境

yyi
yyi
2024-02-13 / 0 评论 / 81 阅读 / 正在检测是否收录...

概述

在开发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 文档

img

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前面的注释干掉

img

修改/etc/rc.conf 加入 sshd_enable="YES"

img

修改/etc/ssh/sshd_config

把 PasswordAuthentication 的 no改为yes,注释去掉,允许PAM登录【可选的,我没开其实】

把 PermitRootLogin no 改为 yes,注释去掉【可选的,我不是生产环境,用root方便】

把 PubkeyAuthentication 注释去掉,允许通过key登录,然后自己配个authorized_keys

查看虚拟机ip:

img

img

用passwd改个密码

此时就可以ssh上来啦

img

配置sudo

安装个sudo、创建个用户

pkg install sudo
adduser

img

添加到wheel组,为了可以su到root

pw group mod wheel -m yyi

设置sudoers

visudo

img

这行注释去掉

测试一下即可

img

配置zsh+ohmyzsh

我的这些shell基本上都是一样的ohmyzsh+powerlevel10k,不赘述了

img

配置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

评论 (0)

取消