- 必須要enable mender-client 的 dbus 功能。
- 數於 add-on
- mender-connect 有 opensource,有 build from source 的說明
build 完,dd 發現沒有 enable ssh server。
參考這一篇,選 target : core-image-full-cmdline 就會包含 ssh server。
或是修改 build/conf/local.conf ,用 EXTRA_IMAGE_FEATURES 變數加上 ssh-server-openssh
其實..依照說明O:
export BRANCH="dunfell" source setup-environment raspberrypi之後,就會進入 build 目錄,然後顯示:
You can now run 'bitbake <target>' Common targets are: core-image-minimal core-image-sato meta-toolchain meta-ide-support其中 core-image-sato 就是有dropbear (小型 ssh server) 的 config。
core-image-sato 的話,出現 Error:
ERROR: File system image of partition None is larger (417792 kB) than its allowed size 204800 kBsato 好像包含x11, 太大了。
在 build/conf/local.conf 中,comments 有:
Mender storage configuration # # More details on these variables is available at # https://docs.mender.io/devices/yocto-project/partition-configuration#configuring-storage # # Also, please be sure to check other config files as other # layers, config fragments, etc may attempt to set values # for specific platforms. Using "bitbake -e可能可以用來改 partition 大小。" # can help determine which files are setting these values # in a given configuration. # # MENDER_STORAGE_TOTAL_SIZE_MB = "2048" # MENDER_BOOT_PART_SIZE_MB = "16" # MENDER_DATA_PART_SIZE_MB = "1024" # MENDER_STORAGE_DEVICE = "/dev/mmcblk0" # MENDER_BOOT_PART = "${MENDER_STORAGE_DEVICE_BASE}1" # MENDER_DATA_PART = "${MENDER_STORAGE_DEVICE_BASE}4" # MENDER_ROOTFS_PART_A = "${MENDER_STORAGE_DEVICE_BASE}2" # MENDER_ROOTFS_PART_B = "${MENDER_STORAGE_DEVICE_BASE}3"
加入 MENDER_STORAGE_TOTAL_SIZE_MB = "4096" 後,好像就 build OK 了。
這個 target run 起來沒有 uart console。所以還是不能用。
最後是用 core-image-full-cmdline
run 起來後有 ssh
但是 mender authorize 還是有問題。
ref: 說明 meta-mender layer
下面的各個 layer:
meta-mender-core:
- build command
- image partition
- bootloader
meta-mender-community: 一堆板子相關的設定
meta-mender-demo 跟 demo 板有關。
build for production有說明如何build profuction image (不是跟 demo server 連線?)
要先remove meta-mender-demo layer。
要準備好 cert.ca,如果server 是 self signed,那還要有 server 的 ca.
對應的 mender server,不要做demo mode,做 production mode。參考installation with docker compose。
依照3.4.0 板來做,最後 ./run up -d 之後,user-admin 這個container 一直 fail, restart。
用 docker log 看,是 key 的 permission。
發現是依照keygen 的 production/key-generated/keys/useradm/private.key 和 deviceauth/private.key 的 attrib 沒有 rw,都改 777 後再啟動就 OK 了。
另外,browser 要對 domain name,不能對 ip 作用。
結果 server.crt 還是沒 build 進去,因為缺了 meder-server-certifaction 這個 layer.
查,dunfell 這個branch 還沒有這個 layer..
yocto 的 branch name : Release
所以dunfell 後的LTS 是 Kirkstone
嘗試用這格 branch 試試..
一樣先follow 這個,只是 BRANCH=kirkstone。
作完setup-environment 後,在 build 下,依照這篇 修改 local.conf
certification 那邊,就抄local.conf 的, copy 過來,果然是新版bitbake 的語法。
這個..參考yocto: fetching from local directory:
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"是真的 project folder 下有一個 files 目錄。
然後..下面這個file..
SRC_URI += " file://app.tgz"是說,找local file,不是到網路上的link..
沒有留言:
張貼留言