2016-07-12 64 views
1

在我的Raspberry Pi上運行「uname -a」將產生以下結果: Linux tm-gw 4.4.14-v7 +#896 SMP Sat Jul 2 15:09:43 BST 2016 armv7l GNU/Linux更新Raspberry Pi上的產品/供應商ID(CP210X)

我的問題是,我有一個USB設備哪個供應商和產品ID沒有註冊在CP210x.c文件中,這又意味着即使可以找到,樹莓將不允許與它通信(/ dev/ttyUSB0不存在)。

我試圖下載內核,將ID對添加到cp210x.c文件,重新生成並安裝,這是可行的。 (dmesg將顯示「usb 1-1.4:cp210x轉換器現在連接到ttyUSB0」)

由於我必須在多個樹莓上安裝此程序,所以需要太長的時間,所以我想知道是否有可能在不重新編譯內核的情況下注入USB ID?

我確實嘗試從內核中創建cp210x.ko文件,並通過鍵入「sudo insmod cp210x.ko」將其安裝到新的樹莓上,但是沒有成功。

/Karsten

+0

只有在模塊版本編號完全匹配時才能加載內核模塊。如果你使用你建立的內核啓動樹莓派,insmod cp210x.ko應該可以工作。如果你想保留舊的內核,但是加載了根據你所做的修改的內核源代碼生成的模塊,它將無法工作。 – Sanchayan

+0

我還沒有嘗試過,但你應該能夠執行'echo VEND PROD>/sys/bus/usb-serial/cp210x/new_id'其中'VEND'和'PROD'是4位十六進制供應商和產品新設備的ID。在這之前你可能必須先做一個'modprobe cp210x'。如果有效,請將這些命令放在本地啓動腳本中。 –

+0

@Sanchayan:我試圖在舊的內核中加載新的.ko模塊,你是對的:它沒有工作:-D –

回答

1

感謝Ian Abbott的解決方案。

運行 「須藤modprobe的CP210X」 然後

須藤SH -c '回波10C4 84cc>/SYS /總線/ USB串行/驅動器/ CP210X/NEW_ID'

當在設備插入它作品:-)

+0

很高興你有它的工作。這個設備究竟是什麼?如果您願意,我可以將修補程序提交給相應的Linux維護人員和郵件列表。 –

+0

@Ian Abbott,它是一個生物質鍋爐系統的控制器,我們正在與RP進行接口連接,因此如果它可以成爲已批准設備列表的一部分,那將是一件好事。其實我想知道如何申請更改,因爲我們還有一些應該實施的ID。 –

+0

留意「Documentation/SubmittingPatches」中的建議。基本上是通過適當的總結,描述和「Signed-off-by:」行來創建針對當前「linux-next」內核的補丁。有關cp210x驅動程序的示例補丁,請參閱Linux git存儲庫中'git show --format = email 6627ae19'的輸出。最好在git中工作,因爲它可以生成補丁('git format-patch'),甚至通過電子郵件發送它們('git send-email')。有關發送補丁的位置,請參閱kernel MAINTAINERS文件中的「USB SERIAL SUBSYSTEM」。 –