近日,黑芝麻智能A1000芯片基礎軟件開發在線研討會在順利完結直播。研討會由黑芝麻智能李坤、中興通訊李玉鵬兩位技術專家主講,主題分別為《視覺感知數據流在A1000平臺上的基礎軟件開發》,以及《中興車用操作系統SafetyLinux在A1000平臺上的適配》。
本文是中興通訊李玉鵬的主講實錄整理,同時附上線本次研討會的直播回放。
李玉鵬:大家下午好,我是李玉鵬,來自中興通訊汽車電子,負責車用操作系統及基礎軟件規劃。今天分享的主題是中興通訊車用操作系統SafetyLinux在黑芝麻智能華山二號A1000平臺上的適配。
中興車用操作系統SafetyLinux
與黑芝麻智能華山二號A1000芯片的匹配
首先,簡單說明下我們為什么要做這個適配工作。大家知道,其實黑芝麻智能A1000芯片配套有對應的SDK和相應的材料,而SDK的默認目標硬件是黑芝麻智能配套提供的評估板。但在實際的應用環境中,不同的域控會有不同的要求和配置,同時對底層的操作系統、軟件也有對應的要求,這也就需要有第三方的操作系統能夠適配黑芝麻智能A1000平臺。
中興SafetyLinux跟黑芝麻智能的A1000芯片做了適配對接。那么相應的適配需要做哪些工作呢?
在介紹具體的適配工作之前,我們先來看一下黑芝麻智能A1000芯片SDK的主要內容,這也是SafetyLinux適配A1000芯片的基礎和前提。
從黑芝麻智能釋放的材料可以看到,其A1000的SDK包含一個Linux內核。基于這個內核可以進行A1000 SoC芯片片內驅動,以及部分內核功能和定制化用戶態組件的開發等。
另外,SDK里也包含了與黑芝麻智能A1000芯片緊密相關的文件系統,其中包括必備的根文件系統、黑芝麻智能軟件開發組件,以及黑芝麻智能定制的其他功能組件。這些組件還是比較豐富的。
除此之外,SDK里還有一些其他資料,也是我們做黑芝麻智能A1000芯片適配所必須的。比如Linux內核源碼、配套開發工具包、二進制固件、樣例代碼、工程模板,以及配套的開發文檔等隨機資料。
總體來說,黑芝麻智能A1000芯片的SDK提供的材料還是比較豐富和全面的,結合黑芝麻智能A1000芯片的SDK和評估板,對于第三方的應用開發,或者第三方OS的移植都有很好的幫助和指導作用。
下面我來介紹下中興SafetyLinux適配黑芝麻智能A1000的具體工作。主要包含以下幾部分:
1、適配分析
首先,需要明確黑芝麻智能A1000芯片SDK的Linux內核版本。對比中興SafetyLinux內核,找出兩個內核以及BSP驅動代碼修改或者變化點,為后續內核移植和補丁的制作做好準備。
其次,要明確內核的配置,也就是黑芝麻智能A1000 SDK對一些驅動開發完成之后,需要做內核的配置修改,從而使BSP驅動生效,這也是我們做黑芝麻智能A1000硬件平臺上OS移植時需要重點關注的。
接下來,需要對SDK里SOC芯片的片內片外驅動所對應的設備樹配置進行區分。比如基于片內的設備樹,需要準備中興SafetyLinux以及目標域控單板的設備樹應該怎么配。這里簡單說下,區分片內片外設備樹的主要考慮是片內的 SoC驅動對應的設備樹基本上和黑芝麻智能A1000緊密相關,無論域控的功能怎么設計,這些驅動都要去集成。
但是片外像智能攝像頭、激光雷達或者其他的智能外設,它的驅動及設備樹配置往往是根據域控的要求來配的。比如你的一款域控里面沒有配激光雷達,那么對應的設備樹配置可能不需要。如果你的攝像頭的個數不一樣,或者攝像頭類型也不一樣,對應的設備樹配置也會有差異。這也是我們要區分片內片外驅動對應設備樹的一個考慮。
最后,還要對SDK編譯生成物的情況進行分析。不同芯片內核編譯完之后,生成鏡像也有所不同,包括對應的設備樹的dtb、ko庫等也是不一樣的。變化或者差異的分析、明確也是為后面真正做內核移植、適配和編譯提供必要的支撐。這也是我們做任何一項復雜工作的基本方法。
2、內核移植
接下來我們看第二步,也是最核心的,即中興SafetyLinux適配黑芝麻智能A1000時的內核移植工作。
首先,基于前面的差異分析,明確黑芝麻智能A1000 SDK里面Linux內核版本和SafetyLinux內核版本的差異,然后形成一個詳細、全面的差異清單。
然后,基于這個清單把黑芝麻智能A1000對應SafetyLinux內核的修改項清單,生成針對SafetyLinux內核或片內驅動的補丁。這里的補丁主要是指變動代碼或變動代碼包的統稱,與我們通常理解的補丁并不完全一樣。通過補丁的方式,我們可以很容易把黑芝麻智能A1000 SDK里面的變化或特有的特性,融合到中興SafetyLinux項目框架(yocto框架)里面去。
接下來也是很關鍵的一步,要解決這些內核和片內驅動,以及補丁合入中興SafetyLinux時引起的可能問題。這類問題主要是因為黑芝麻智能A1000 SDK里面的內核和中興SafetyLinux內核的版本可能存在差異,分支可能也不一樣。比如黑芝麻智能可能基于SDK做了一些特性或者增強改進,中興相應的也在SafetyLinux里面做了一些增強改進,這些增強改進要有機融合在一起,才能形成一個比較好的移植后的版本。所以這類問題的解決還是比較關鍵的。特別是在合成之后,還要經過內核的初步編譯,這里可能也會出現一些異常。這些異常可能也是由各種各樣的原因導致的,這里就需要OS內核研發團隊工程師去做手動處理,逐條分析。分析過程要慎之又慎,因為差異可能會比較多,或者差異涉及的范圍比較廣,需要OS內核專家逐一分析逐一解決。有時候可能還需要從OS大版本的特性整體考慮和提供差異的解決方案,同時還要兼顧邏輯和性能方面的訴求。
所以內核移植是整個適配工作關鍵的一步。當然,中興OS內核團隊有多年的開發經驗,在內核移植方面也是駕輕就熟,后面我也會通過一個成功案例來詳細介紹。
內核移植完成之后,內核和片內的一些驅動代碼和基本變更特性就合入到中興SafetyLinux里面了。
3、內核配置及版本構建
第三步就是內核的配置以及版本的構建。
首先需要進行板級或者片外驅動補丁的制作,也包括黑芝麻智能做的功能增強或功能特性的補丁。這里所說的補丁就是把變化或者新增的功能合進來,當然也包括系統引導補丁等。
補丁制作完成之后,需要在內核中做對應的編譯和配置,將補丁配置到內核中,使變化的補丁生效。這里的補丁可能也包含一些默認的配置,比如RT功能配置、初始化配置等。
這些配置都完成以后,就可以基于yocto框架進行中興SafetyLinux適配黑芝麻智能A1000之后的完整版本的編譯和構建。構建之后還需要進行版本的初步測試、關鍵功能流程的驗證等工作。當然,在測試和驗證過程中也可能會發現各種各樣的問題,需要我們重新進行回歸、測試和版本發布。
這一步做完,中興SafetyLinux適配黑芝麻智能A1000的硬件環境基本的工作就做完了。當然,后面可能會有一些性能方面的專項提優、安全方面的專項增強以及信息安全方面的補丁和增強都要專門考慮,這個需要結合整個技術軟件平臺上面的業務系統一起開展。
到這里,中興SafetyLinux適配黑芝麻智能A1000平臺的基礎工作就做完了。
中興車用操作系統與黑芝麻智能華山二號A1000合作案例
接下來,我會結合中興SafetyLinux和黑芝麻智能A1000硬件平臺的合作案例,來介紹我們移植的具體操作,以及取得的成果和進展。
中興SafetyLinux和黑芝麻智能A1000在L2+自動駕駛場景下有一個很好的合作案例。
上面這張圖展示的就是我們的合作方案架構??梢钥吹?,架構底層是單顆黑芝麻智能A1000 SoC芯片,同時搭載了高性能MCU,來做智駕L2+的行車NOA和停車位的泊車功能。智能外設采用了5R10V的配置,此外還有其他的關聯部件和外設。
在黑芝麻智能A1000 SoC芯片(A核)上部署的是中興SafetyLinux操作系統,采用的是LTS長效演進分支5.10的大版本,支持RT補丁,同時融合了中興針對車輛場景在計算、內存、存儲、文件系統、網絡、維測、容器等方面的增強功能在里面。
在方案架構的基礎軟件層,包含了AUTOSAR AP/CP、DDS、SOA功能框架和功能安全監控框架等。
應用層則包含了第三方和OEM合作伙伴一起實現的智能駕駛的業務應用,比如前面提到的行車、泊車輔助等。
以上是中興SafetyLinux和黑芝麻智能A1000整體合作方案的簡單介紹。
在這個方案里,最核心的功能之一是底層智能外設的驅動適配。從上圖也可以看到,主要的外設是攝像頭,當然也包括雷達、GNSS、IMU等設備沒有體現出來,這些也是整個系統需要接入進來的。此外,NorFlash、eMMC和以太網的驅動也要去集成。
在攝像頭的驅動集成里,除了攝像頭本身,板端攝像頭對應的解串器的集成和適配,以及對應設備樹的配置,也是我們重點要做的工作。除此之外,剛才提到的GNSS、IMU時間同步的外設和流程集成支持,以及安全啟動框架ATF和uboot的集成。還有其他外設的集成,比如毫米波雷達等,但是這個集成可能是在不同的SoC或MCU上進行。以上就是整個案例中智能外設的集成和適配配置。
除了底層的驅動之外,還有黑芝麻智能ISP 、AI框架和第三方組件的集成,這個也是必須的。因為作為底層的基礎軟硬件平臺,要為上層的應用以及基礎軟件框架提供必要的支撐。
黑芝麻智能ISP和AI框架主要包括圖像變換加速庫、視頻編碼庫、深度學習庫、相機ISP處理庫、IPC通信庫、顯示庫、GPU驅動庫等,當然也包含黑芝麻智能AI算子庫的集成。這些庫有些也是黑芝麻智能核心的自主知識產權,對外以庫的形式發布。
在和中興的SafetyLinux集成過程中,為了保證內核代碼和程序的一致性,我們也請黑芝麻智能基于中興的OS工具鏈對這些庫進行編譯,這一點得到了黑芝麻智能很好的支持和配合。
在第三方庫的集成方面,包括基礎軟件庫、基礎軟件框架需要的第三方庫,融合感知、規劃控制以及泊車業務涉及到的相關第三方庫。
這些第三方庫,在中興SafetyLinux集成的時候都會做安全治理。所謂安全治理,就是對第三方庫,尤其是開源庫的安全漏洞進行掃描,然后對必要的庫進行打補丁或者進行安全加固的修改。在修改的基礎上再做通用化或者基本的集成測試,這是中興SafrtyLinux需要做的一些事情,來保證集成的庫在整個操作系統平臺上能夠得到正確的應用,不會存在安全漏洞或者基層功能的bug,從而為上層應用開發提供比較好的支持。
這一頁是中興SafetyLinux和黑芝麻智能A1000在智駕合作案例中取得的一些效果,特別是攝像頭出圖效果的展示。
上面這一列是攝像頭的驅動集成之后,通過攝像頭的出圖效果來判斷功能、驅動和相關組件的集成結果是否正常。
從這個圖上能看到我們在周視攝像頭和環視攝像頭上都有比較好的出圖效果。當然在不同的外部環境下,比如在室外比較好光照情況下,或者室內比較陰暗的場景下,周視和環視也都有比較好的出圖效果。
這里在攝像頭的初始結果里面,一些裁剪或者畸變校正等處理也是基于黑芝麻智能提供的軟件組件來實現的。從這張圖片我們能夠看到也都做到了比較好的集成,并取得了比較好的效果。
下面一排是更上層的應用。我們基于YOLOv5模型樣例,來做AI感知和推理的效果驗證與測試。從攝像頭的圖像和交通視頻流的圖像識別大家可以看到,無論是普通的物體或者道路上的車輛都能做很好的識別。
這也說明了中興SafetyLinux和黑芝麻智能A1000的基礎軟件平臺,對上層組件的集成和業務的支持都取得較好的成果,能夠很好地支撐上層應用的開發。
中興車用操作系統產品規劃及解決方案
這里再簡單介紹下中興的車用操作系統。
今天我們主要介紹的是中興的SafetyLinux。其實中興在底層OS方面有比較完整的布局,包括微內核操作系統,SafetyLinux系統,還有虛擬化Hypervisor以及配套的工具鏈。通過這三種產品的組合,我們能夠比較好的形成智能駕駛、智能座艙和智能車控的OS解決方案,也為車端典型場景應用提供比較好的底層支撐。
此外,中興的微內核操作系統也和黑智能智能A1000平臺做了很好的生態適配對接,目前已做到AI感知推理全流程的打通,并取得了較好的效果。這也得益于黑芝麻智能團隊和硬件平臺對中興很好的支持。
最后我再簡單補充一點,就是中興對于智能駕駛操作系統解決方案的理解。
其實除了中興SafetyLinux與黑芝麻智能A1000共同打造的智能駕駛解決方案,我們還有其他的智能駕駛操作系統解決方案。
比如上圖右側展示的組合監控方案。該方案主要是從SafetyLinux功能安全增強的角度來考慮的。因為中興微內核操作系統已經通過了ISO26262 ASIL-D的管理流程和產品認證,能夠提供比較好的功能安全認證的基礎條件,而通過這種組合監控可以進一步提升整個智駕解決方案的功能安全特性。
在長遠的方案發展層面,中興也有自己的思路。我們分析將來會基于增強的微內核來做智能駕駛底層OS的承載,主要是考慮將來高階自動駕駛下對公共安全要求必將大大提升。中興微內核操作系統本身可以做到ASIL-D的功能安全要求,這樣它就有條件為整個智能駕駛底層OS方案或整個智駕方案,提供一個比較好的或者有條件做到高功能安全等級的要求,這也是中興對智能駕駛演進的基本思路。
今天的分享就是這些,謝謝大家。
審核編輯:湯梓紅
-
操作系統
+關注
關注
37文章
6491瀏覽量
122597 -
移植
+關注
關注
1文章
372瀏覽量
27980 -
智能駕駛
+關注
關注
3文章
2280瀏覽量
48419 -
黑芝麻智能
+關注
關注
1文章
122瀏覽量
3273
原文標題:如何進行內核移植和配置?全解中興SafetyLinux在黑芝麻智能華山二號A1000上的適配 | 公開課實錄
文章出處:【微信號:BlackSesameTech,微信公眾號:黑芝麻智能】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論