參考官方文件第三方套件開發指南,在 Windows 的 Ubuntu 18.04 LTS 子系統來進行測試。文件中提到官方github,使用 DSM 6,用到環境設定 pkgscripts-ng 以及 minimalPkg、tmux 與 HelloKernel 三個程式範例:
為了與開發指南之環境相符,進入 Ubuntu 後,先切換為 root 身分,然後下載 pkgscripts-ng:
# sudo -s
# mkdir /toolkit
# git clone https://github.com/SynologyOpenSource/pkgscripts-ng /toolkit/pkgscripts-ng
# mkdir /toolkit
# git clone https://github.com/SynologyOpenSource/pkgscripts-ng /toolkit/pkgscripts-ng
先查詢版本與支援的平台,程式範例是使用 DSM6.0/x64,但我的 DS918+ 是 DSM6.2 / apollolake:
# cd /toolkit/pkgscripts-ng/
# ./EnvDeploy -v 6.0 --list
# ./EnvDeploy -v 6.2 --list
# ./EnvDeploy -v 6.0 --list
# ./EnvDeploy -v 6.2 --list
先安裝兩個平台試試,由於每個平台檔案解開後都超過 3GB,要花一點時間才能完成:
# ./EnvDeploy -v 6.2 -p apollolake
根據開發文件的檔案目錄結構,建立 source 目錄,下載範例檔:
# mkdir /toolkit/source
# cd /toolkit/source# git clone https://github.com/SynologyOpenSource/minimalPkg minimalPkg
# git clone https://github.com/SynologyOpenSource/tmux tmux
# git clone https://github.com/SynologyOpenSource/HelloKernel HelloKernel
產生認證用的 key,輸入姓名、email及密碼:
# gpg --gen-key
複製 key 到 toolchain 目錄:
# mkdir /toolkit/build_env/ds.x64-6.0/root/.gnupg
# cp -r ~/.gnupg/* /toolkit/build_env/ds.x64-6.0/root/.gnupg/
# mkdir /toolkit/build_env/ds.apollolake-6.2/root/.gnupg/
# cp -r ~/.gnupg/* /toolkit/build_env/ds.apollolake-6.2/root/.gnupg/
試著編譯三個範例,minimalPkg 與 HelloKernel 出現 No platform found!的訊息,tmux則有部分步驟通過:
# /toolkit/pkgscripts-ng/PkgCreate.py minimalPkg
# /toolkit/pkgscripts-ng/PkgCreate.py tmux# /toolkit/pkgscripts-ng/PkgCreate.py HelloKernel
看來還有一些設定不符,對照文件說明,檢視 minimalPkg 的檔案,進行修正。
INFO.sh:pkg_util.sh 目錄錯誤,原 pkgscripts 應為 DSM 5 版用的,現在安裝的 DSM 6 目錄為 pkgscripts-ng:
SynoBuildConf/depends:平台版本錯誤,原 6.1 修正為 6.0:
重新編譯一次,成功了。
產生 spk 檔案的命令:
沒有留言:
張貼留言