cropped-forum.png

論壇總覽 MP500系列微型電腦討論區 EDIMAX 訊舟 EW-7822UAn 無線網卡可以用在 MP510-50 嗎? 回覆至:EDIMAX 訊舟 EW-7822UAn 無線網卡可以用在 MP510-50 嗎?

#1450
Huang Jia-Bin
管理員
    @jb

    大家一定會很有興趣如何判斷某種無線網卡可以不可以支援?

    一、用關鍵字 “EW-7822UAn chipset” 搜尋這支無線網卡用什麼chipset?

    二、找到這個網頁說用的chipset是 Realtek RTL8192CU:

    https://wikidevi.wi-cat.ru/Edimax_EW-7822UAN

    請注意網卡的製造廠常會把裏面chipset替換掉,但是沿用原來的型號。所以必須仔細驗證,或打電話問網卡製造商客服。

    三、在MP510-50,打開檔案總管,在下面路徑尋找驅動程式模組 rtl8192cu.ko:

    /lib/modules/5.15.xx-mp510+/kernel/drivers/net/wireless/realtek

    四、打開資料夾 rtl8192cu,看到 rtl8192cu.ko,即有 rtl8192cu 的驅動程式模組,有支援。請注意,必須chipset編號的每個數字、字母都符合才行。

    如果沒有怎辦?雖然用 github <chipset編號> 通常可以搜尋到驅動程式的原始碼,是否可以按照裏面的說明,自己build,還可以學習一下linux驅動動程式?

    這是高難度,非常不建議。因爲Github裏的那些驅動程式原始碼,通常只是對PC主機板(x86架構)充分測試,而對arm架構沒有測試,問題多多。arm架構又有各式各樣不同的主板:MP510主板、樹莓派主板、各種水果派主板。。。,build的時候,都必須見招拆招的去修改驅動程式原始碼和主機系統。除非是Linux高手,十之八、九會挫敗下來。即使是Linux高手也要花相當多的時間。更要命的是,即使build成功,只要Linux kernel版本更新,又要重新build一次,煩不勝煩。因爲Linux不像Windows那樣,Windows採binary distribution方式,新版Windows kernel通常必須保證向後相容,亦即老的驅動程式保證能在新的kernel執行。Binary Distribution的缺點是Kernel必須包容各式各樣的黨國元老驅動動程式,以致變成臃腫龐大,容易產生各式各樣的安全漏洞。Linux 則採source distribution方式,每個新版本都是將所有kernel 原始碼和驅動程式原始碼重新build一次,如有問題立即修正原始碼。所以linux kernel永遠保持最適狀態。這樣好嗎?不用懷疑,嵌入式系統和網路伺服器市場都是Linux kernel佔大多數,Android手機都是linux kernel,Windows在手機市場掛零。Windows只剩筆電、桌機市場,但是一直被Mac和Linux蠶食。

    用build 驅動程式來學習Linux? 太慘烈了,不是好方法。學習 Linux有更好的方法吧?

    所以如果在 /lib/modules/5.15.xx-mp510+/kernel/drivers/net/wireless/ 裏找不到你想要的無線網卡怎辦?識實務者爲俊傑,改變想法,在裏面挑一個有支援的無線網卡。天下太平。

    或者你對Realtek特別有愛心,去告訴Realtek把你想要網卡的chipset放入linux kernel mainline中。MP510則保證支援Linux kernel mainline中的USB無線網卡。Realtek的無線網卡有一套自己定義的subsystem架構,但是這套subsystem架構不會被linux kernel mainline接受,因爲linux kernel mainline裏有其他廠牌的無線網卡,更還有其他各式各樣的驅動程式,因此不可能會接受Realtek subsystem 架構。所以我們在Github中可以看到Realtek chipset 驅動程式原始碼,但是這驅動程式原始碼卻不能進入Linux kernel mainline 的原因。

    在Linux kernel mainline的好處是,驅動程式原始碼進入mailline,每個新版本,全世界的相關kernel開發者都幫忙測試,一旦有問題,大家都幫忙修改原始碼。能花最少的代價,讓chipset維持最大的市場機會。這也是Ecosystem,生態體系,的真諦。真心擁抱mainline1,市場機會肯定大增。死抱自己的Subsystem,大家都痛苦。