開發一個新機種
讀完你會知道:從一塊板子到一台能上平台的設備的六個步驟,每一步在本站哪裡做。
從一塊板子到一台能上平台的設備,流程是這樣:
開新機種(儲存即建置) → 取得韌體 → 燒錄 → 取得 AID → 配對上線 → 發佈更新
1. 開新機種
在「我的機種」按「開新機種」,照精靈一步一步選。每一步都只存草稿(24 小時),最後按「儲存並建置 FW」才建立機種。
| 步驟 | 做什麼 |
|---|---|
| 種類 | 先選要做哪一類設備:攝影機、錄影主機、燈具、照明控制、插座與電力、開關、感測器、警報與門禁、窗簾與門、空調、水、閘道、電子紙、健康。只列有開放範本的種類;只有一類時直接跳到範本。 |
| 範本 | 這一類裡的哪一種(例:卡片機、PTZ、門鈴)。範本決定要哪些功能、對板子的要求、後面問哪些選項。沒有可用硬體的範本會灰掉。 |
| 硬體 | 選現成的板子(IO 照實際硬體固定、唯讀),或從 SoC 開始自己定義 IO。板子卡片可以展開看 GPIO、flash 與附件。 |
| 型號 | 型號就是韌體的 product,照品牌命名規則,建立後不能改;生態系建立後也不能改。 |
| 選項 | 主要選項直接改,其餘收在各區的 Advanced;只存跟預設不同的值。 |
| 確認 | 合併後的關鍵值與檢查結果;有要修正的項目時不能儲存。 |
回上一步不會遺失已選的種類與範本;換了種類或範本,後面的選擇會清掉重選。
選項頁怎麼看
- 灰掉的選項目前不能設定,旁邊寫原因:「這塊板子沒有這個硬體」(例:沒馬達就沒有 PTZ)、「iPro85 不支援」(這顆 SoC 做不到,例:H.265)、「韌體還沒支援」。灰掉的不會送出,預設值照樣進設定。
- 建置組合在選項頁最上面。解析度、GOP、fps、碼率預設這類只能在建置時決定的參數,由 Kinio 預先建好的組合決定,選組合就好;這些參數在各區顯示成唯讀(「由建置組合決定」)。好處是不用等編譯:存檔後幾分鐘內就組裝好 FW。
- 找不到想要的組合? 按組合旁的「申請」,填想要的值與用途。申請會開成這塊板子的硬體 issue,在「我回報的硬體問題」看進度;Kinio 加進組合、預建完成後,就能在選項頁選。
- App 可調:有些選項旁邊多一個「App 可調」勾選(例:碼率)。勾了,使用者之後能在 App / VMS 的設定頁調整這個值(範圍照你給的設定);沒勾就不出現在 App。只有協定有對應設定、韌體也能在執行中改的選項才能勾。
- 固定(必要)的選項是這個範本一定要開的(例:BL602 的 Matter 類設備必須支援 Matter),唯讀。
儲存時會做一次自動檢查
平台會把你填的內容、上傳的板級設定對照既有機種、晶片與模組的已知資料做一次一致性檢查,回三種結果:
- 阻擋:明顯錯誤(機種代號與韌體不符、腳位與該晶片對不上、能力與硬體矛盾)。修正後才能儲存,或勾選「我確認這個值是對的」並寫理由,紀錄會留給審核者看。
- 警告:可疑但可能是對的(記憶體很小卻開了很多功能)。
- 建議:可以直接套用的修正值。
檢查只給意見,不會自己改你的資料。
開發環境儲存後立刻可用;要上正式環境需要平台審核。之後「編輯設定」存出的每個新設定版本就是一個新 FW 版本(預設升 minor)。
2. 取得韌體
兩條路:
平台建置(開發環境)。 按「儲存並建置 FW」(或編輯設定後「存成新版本並建置 FW」)時,平台就用你選的建置組合與選項組裝 FW、用開發金鑰簽章,並登記成這個機種的開發版韌體。存好會回到機種頁,上方寫「已開始建置 FW 1.0.x」;建置沒開始時(例:這塊板子還不能平台建置、建置額度已滿)會寫原因,機種照樣建好。
機種頁的「韌體」分頁列出每個韌體版本(同一版重試的合併成一列):設定版本、狀態(排隊中 / 建置中 / 成功 / 失敗)、失敗原因,可以在網頁上直接看建置 log。還在建的時候頁面每 15 秒自動更新。
- 下載:成功的建置可以下載燒錄映像、OTA 包、救援包、
manifest.txt、model.conf與建置紀錄。燒錄映像有兩種:full.bin是整片、可以從空的 flash 首燒;原廠 u-boot 的已出貨板子(例 Fullhan 的 PAC、FH885X)只換 rootfs,產物是rootfs.bin(燒在兩個 rootfs 分割,位址寫在manifest.txt),不能首燒空板,也沒有救援包。產物永久保留,隨時重新下載,不會重建。 - 映像格式:預設建「新出廠」的格式;板子還有其他格式時(例:2505 在外舊機用的「九分割」),在「韌體 › 進階」選了再按「建置」。
- 重新建置:最近一筆失敗時出現。同樣的設定已經建好(或正在建)時不會重建,直接回那一筆。
- 推到開發機:成功的建置旁有〔推到開發機〕,到「開發機與 OTA」分頁勾自己的開發機、按〔推送〕就好,同一頁看每台的進度。
自己編。 用韌體 SDK,接上雲端外掛,編出符合 SWFW v2 的包,在「韌體 › 進階」上傳;版號的前兩段要對到機種的某個設定版本(設定 v1 = 1.0.x)。
不管哪條路,產出的韌體都不含身分,第一次開機才產生金鑰對。
3. 燒錄與第一次開機
燒進板子,開機後設備會:
- 產生金鑰對,把私鑰存進安全儲存區。
- 發現自己沒有 AID,進入啟用等待狀態。
- 除了啟用流程以外什麼都不做。
4. 取得 AID
在「AID」頁下單:開發與小批量測試交給成員(自己),量產交給工廠。交給成員的 AID 留在平台,配對一台還沒有 AID 的設備時由平台送進去;交給工廠的一次匯出、在產線燒錄。詳見「AID 與憑證」。
從這一刻起設備有了身分,可以連上平台。
5. 配對上線
用 App 或網頁主控台把設備綁進一個家戶。綁定時設備要用私鑰簽一段隨機字串證明身分,所以別人無法把你的設備綁走。
綁進哪個家戶,就決定它在哪個環境。
6. 發佈更新
上傳新版韌體、建立發佈、設定灰度比例。設備會在下次檢查時收到。
如果你的專案接了持續整合,建置完成的候選版會自動出現在品牌的發佈審核頁,由品牌負責人核准後才真正發佈。
常見的坑
- 機種代號和韌體
product不一致:六道關卡第一道就擋下。兩邊要一模一樣,包含大小寫。 - 板級數值寫死在程式裡:腳位、分區、記憶體上限要放在設定資料裡,不要編進程式碼,否則每塊板子都得改程式。
- 沒有對時就連線:憑證驗證會失敗。開機流程要先對時。
- 開機就開一堆功能:記憶體緊的晶片會在 OTA 時因為記憶體不足失敗。先量測再決定預設值。