Linux WiMAX Driver 實作現況分析
前陣子接受 DigiTimes 的「手持行動裝置開發關鍵軟體技術發展」研討會邀請,當時就在思考要以什麼主題為主。一些題目大概都是老生常談了,而且又不想以介紹性的方式進行。想了又想,發現最近最當紅的主題非 WiMAX 莫屬,WiMAX 也是今年 Computex 展的主題,因此決定以 Intel 的 [Linux WiMAX development project] 專案做為討論標的。5 月 29 日這一天的演講就以「Linux WiMAX Driver 實作現況分析」定題了。
linuxmax.org 是 Intel 所支持的一個專案計畫,此計畫目前已釋出第一個 WiMAX device driver 以及 WiMAX stack。目前在 linuxwimax.org 上已能找到 Intel WiMAX Connection 2400m 的驅動程式,以及一個 WiMAX stack 驅動程式(subsystem)。2400m 是一個符合 mobile WiMAX 標準的 WiMAX chipset,mobile WiMAX 是行動 WiMAX 的一個標準(802.16e),主要給行動裝置使用。
當天的演講投影片可由此下載 [introduction_wimax_driver.pdf]。雖然定題為「Linux WiMAX Driver 實作現況分析」,不過若以 device driver 的角度來看,其實會變得比較像是在講 USB 與 network device 的 subsystem。若是以整個架構來看,WiMAX driver 在分層設計這裡已經有很不錯的實作,包含以下二個部份:
1. 透過 netlink layer 做為 user-to-kernel 的介面,在 application 端也有 API 的實作,可透過 libnl 來操作 WiMAX 的設定。
2. 針對 device driver 提供分層架構設計:struct wimax_dev 以及 wimax_dev_add()。
另外,為了解 WiMAX driver 與 kernel-space 的緊密性關性,我們透過了 2400m 的驅動程式來分析其架構關係,以及 I/O 處理方法。初步了解,WiMAX device driver 仍是透過 transport layer 來做處理,WiMAX stack 目前只提供 netlink layer 給下層的裝置驅動程式。其餘部份大略整理於投影片中,請指教。