2013年11月6日 星期三

[BBB] 使用USB cable 進行console 連線


工作環境:Debian 7 Wheezy (AMD64)
平台:Beaglebone black (A5B)


先前我透過TI的Android source,成功的在BBB上run 起了Android,但是Android嘛,如果沒有網路,就感覺哪裡怪怪的,但我手頭上又沒有wifi的網路卡,而Beaglebone black上既然有Ethernet介面,當然不能放過啦!


但是當我想要進行IP設定時,我在Android的setting中左找右找,就是找不到Ethernet的設定 ..... 也許是我當初make 環境時沒有加進來吧,這時候我心想沒關係,反正將就點用個ifconfig,應該也能夠上網吧。


使用BBB內建的Ångström Linux時,只要將USB cable接到電腦上,/dev目錄下便有一個ttyACM0可供連線,但使用TI的source時,當我把USB cable插到主機上,想透過主機進行console連線時,我的debain是有辦法辨識出BBB,如下圖:



但是無法產生出ttyACM0,進而導致我無法使用screen之類的軟體進行連線。


為了解決這個問題,請在編譯核心時下完make config的指令指後,先不要make,修改一下.config檔案將以下模組編入核心之中

CONFIG_USB_G_SERIAL=y
然後把以下的模組取消掉(他預設是打開的),如果你沒有將這個模組取消,那g_serial會因為相依性而設不上去。

# CONFIG_USB_G_ANDROID is no set

接著再把編好的核心放到SD卡之中就OK,可以看到已經辨識出ttyACM0的裝置,接著只要使用screen之類的軟體,即可以console登入


# screen /dev/ttyACM0 115200


什麼是 usb_g_serial ?

  The Serial Gadget talks to the Linux-USB generic serial driver.
  This driver supports a CDC-ACM module option, which can be used to interoperate with MS-Windows hosts or with the Linux-USB "cdc-acm" driver.

  CDC : Communications Driver Class
  ACM : Abstract Control Model

  此網站的 2 什麼是CDC類 提供了不錯的解釋
  http://www.autooo.net/utf8-classid124-id44408.html

什麼是 usb_g_android ?

  The Android gadget driver supports multiple USB functions.
  The functions can be configured via a board file and may be enabled and disabled dynamically.

  目前我還不瞭解其真正的功用,但我初步認為應該是跟手機一樣,USB插入電腦之後,可以透過電腦存取手機上的檔案。