如何開放
若您是一家硬體製造商,並已經感受到潛在的商機。以下是幾點建議遵從的開放守則
- 採用開放規格與晶片。
- 嚴格遵守軟體授權。
- 明確標示產品版本。
- 開放 Bootloader 與 Serial Console。
- 提供簡易的韌體復原措施。
首先,在硬體元件採購時,便要注意該元件是否有開放原碼的驅動程式。盡量不要選擇僅提供二進位驅動程式的解決方案或元件,在硬體出廠的時候,也請不要刻意抹去元件名稱。讓開發者有機會可以了解硬體規格,甚至可以先行提供元件的 Datasheet 給社群中的感興趣的資深開發者,或者將驅動程式撰寫工作外包給社群人士,使程式碼自然成為 GPL 授權。其中一個媒介的管道是 Linux Driver Project。
假設您現在的平台已經使用 Linux,請切記務必遵循 GPL 條款,將相關的原始碼資源釋出,基本的檢核可以參照 GPL 軟體授權適法訣竅。筆者曾經在《GPL 遵守實務》一文中提到,若貴公司的產品均為公司內部開發,建議您注意開發流程中可能會失誤的事項,詳情請參考 Software Freedom Law Center 出版的《GPL 遵守實務》 (A Practical Guide to GPL Compliance) 一文,文中解釋了在開發團隊中的建議事情,可以有效避免漏放程式碼。
若您已經有幾個進行中的產品開發計畫,也可以使用 HP 的程式碼檢核軟體 FOSSology 來協助追蹤專案中已用的 GPL 程式碼。另外,若能在公司管理制度內入版權管理,也可以有效的辨識專案中所使用的軟體授權,相關的管理制度 Black Duck Software 的 Eran Strod 這個月在 Embedded Computing Design 發表了一篇相當詳盡的文章 – Hybrid software development: Mixing open source with other code,值得參考。
遵循授權是與開放原碼社群往來的要件,本文開頭提到 Linksys 早在 2003 年就因為違反 GPL 授權,被自由軟體基金會要求改善。但是直到今日,Linksys 常常還是在某些產品的程式碼中缺東缺西,有時甚至「忘了」釋出相關原始碼。在去年 2008 年底,自由軟體基金會已經正式宣告控告 Cisco/Linksys 違反 GPL 授權,並委託 Software Freedom Law Center 代表自由軟體基金會與版權人與 Cisco 對簿公堂。
因此,請不要輕視軟體授權事宜。若法務相關事宜不清楚時,可以洽詢 OSSF 法政組 或 Software Freedom Law Center 諮詢開放原碼相關的法律問題。
部份製造商會在產品出貨時,標示同一個產品型號,但是實際卻非相同硬體版本。為了方便消費者選購,請盡量維持型號與硬體版本的對應關係。甚至,也可以在產品說明上註明,此為社群版本,可安裝第三方韌體等字樣,如此也可幫助銷售量。
開放硬體平台最擔心是上市後,返修率上升,由於重新刷韌體,一定有風險存在,消費者一不小心就會把產品弄成磚頭 (bricked)。但是其實只要產品說明得當,其實可以有效降低退貨、返修的機率。
其中最重要的就是,開放 Bootloader!不要試圖在 Bootloader 中加上存取限制,這樣會妨礙使用者重新刷新韌體的麻煩。另外開放 Serial Console 也可以讓消費者有機會看到系統的運行狀況,可以自行判斷是否為硬體故障問題。
此外,由於一般的更新韌體程序,完全不會更動到 Bootloader,為了讓使用者方便復原或更新韌體,不妨在 bootloader 中開放 tftp 等網路更新功能,並利用工具下載方式,讓使用者可以輕易的復原到原廠或其他韌體。若可以透過工具下載,也可以避免使用者因指令操作錯誤,造成 bootloader 誤洗等無法挽回的錯誤。
揭露: 筆者為 Fonosfera 團隊成員,與文中部份台灣公司有業務往來。