# Yocto on FreeBSD
此處放置 Yocto 在 FreeBSD 上的測試與實驗記錄
實驗記錄
---
## Quick build 嘗試
照著官方的 [Quick Build](https://docs.yoctoproject.org/brief-yoctoprojectqs/index.html) 並選用 `core-image-full-cmdline` 的 target 在 ubuntu 的虛擬機上跑了一遍,確定可以正常用 qemu 執行。
> [10 Images](https://docs.yoctoproject.org/ref-manual/images.html)
在看文章並嘗試的時候有發現目前 Yocto 完全只有 Linux 相關的 layer,並不支援其他的作業系統,看起來之後恐怕連最底下的 openembeded layer 都不能 reuse,原本 Yocto 提供的 POKY 也是完全派不上用場,值得慶幸的是至少可以拿來當成寫法的參考。
安裝紀錄
---
FreeBSD 上因為部分 CLI 工具的 interface 和 GNU 系列不一樣,在腳本執行上結果會有所不同
```shell=
$ pkg install python3 py39-sqlite3
$ sh
$ . oe-init-build-env
```
照官網直接執行會吐 `BUILDDIR` 的環境變數錯誤,需要註解掉 `scripts/oe-buildenv-internal` 中有用到 readlink 的變數設定
嘗試執行
```shell=
$ bitbake core-image-minimal
```
無法連線到 bitbake server,貌似執行時 bitbake 會起一個後端伺服器來執行 task,現在要馬是 server 執行不正常沒辦法接收連線不然就是 socket 位置錯了,不排除其他可能
> 貌似 socket 連線有點問題,`bitbake/lib/bb/server/process.py` 的 `recv_fds` 裡面收到的資料可能是錯的,導致連線失敗
## BitBake 移植
```shell
$ sudo pkg install wget
```
原因: socket.recv_fds 功能不正常,可寫一個 reproduce repo
Python socket.recvmsg 功能不正常,可先測試 FreeBSD 上的 libc recvmsg 是否正常
###### tags: `FreeBSD` `Yocto` `Book`
{"title":"Yocto on FreeBSD","breaks":true,"description":"View the book with “<i class=\"fa fa-book fa-fw\"></i> Book Mode”.","contributors":"[{\"id\":\"700f0e99-624c-48e0-9c59-deacbfb0f5f7\",\"add\":1148,\"del\":397}]"}