如何在Ubuntu下面識別Galaxy Nexus設備

最近入手了Galaxy Nexus手機,可是因爲一直在Ubuntu下面開發,而Ubuntu不能直接識別GalaxyNexus的MTP設備,致使了16G的Rom在Ubuntu下面徹底沒法識別,只能經過adb push和adb install的方法來安裝程序,沒有充分發揮磁盤存儲器的做用。所以,上網搜索了幾種辦法,折騰了挺久終於解決了。

解決辦法以下:
1. 安裝必要的MTP工具集:sudo apt-get install mtp-tools mtpfs
2.  打開Galaxy Nexus,選擇MTP設別的存儲方式,而不是PTP。如圖示。
3.  檢測你的設備的idVendor和idProduct號。mtp-detect | grep idVendor (獲取的號碼就是輸出的紅色字段,idVendor: 04e8)mtp-detect | grep idProduct(獲取的號碼就是輸出紅色字段,idProduct: 685c)
4.  編輯設備文件,沒有就添加。gksu gedit /etc/udev/rules.d/51-android.rules
在其中加入:SUBSYSTEM==」usb」, ATTR{idVendor}==」VENDORID」, ATTR{idProduct}==」PRODUCTID」, MODE=」0666″
其中,VENDORID替換位你簽名的idVendor的值,即04e8,後面的PRODUCTID同理。注意,引號必定注意全角和半角,不放心手動輸入一遍。
5. 啓動相關服務和規則,設置掛載點,並賦予讀寫可執行權限。
sudo service udev restartsudo mkdir /media/GalaxyNexussudo chmod a+rwx /media/GalaxyNexussudo adduser YOURUSERNAME fuse(將你的用戶名替換這裏的YOURUSERNAME)
而後編輯文件,gksu gedit /etc/fuse.conf,將最後一行簽名的#去掉,即將原來的「#user_allow_other」變爲「user_allow_other」。

6.  而後,利用別名機制,實現掛載和彈出。
echo 「alias android-connect=\」mtpfs -o allow_other /media/GalaxyNexus\」" >> ~/.bashrc
echo 「alias android-disconnect=\」fusermount -u /media/GalaxyNexus\」" >> ~/.bashrc
source ~/.bashrc(再次注意簽名的全角和半角符號,手動輸入一遍避免出錯)
7.  而後,此時運行android-connect可能還不能識別設備,註銷以後登陸進去,再次運行android-connect,便可成功。不過,掛載的過程有點慢,須要等上1分鐘左右,開始可能誤覺得沒有掛載,不事後來會彈出相應的文件瀏覽器,並能夠完整的看到文件,拷貝,編輯。

至此,整個過程成功,通過測試徹底可用。

附記:若是嚴格按照上面的步驟,而且注意了全角和半角符號,仍然出現了問題,能夠檢測是不是libmtp這個庫運行不正常,可能在最新的Ubuntu下面,較久版本的不能正常運行,此時,能夠按照下面的步驟來更新到最新的libmtp庫,而後便可成功。通過測試,也沒問題(此步驟能夠在前面全部步驟以前進行)
sudo apt-get install libusb-devwget [url]http://downloads.sourceforge.net/project/libmtp/libmtp/1.1.1/libmtp-1.1.1.tar.gz[/url]tar -xvf libmtp-1.1.1.tar.gzcd libmtp-1.1.1./configure --prefix=/usrmakesudo make installsudo cp 69-libmtp.rules /etc/udev/rules.d (mayby not needed)sudo service udev restart實際上,通過上面這9個步驟以後,就可使用mtp設備了,由於已經可使用mtp-dectect,mtp-files等命令來查看設備以及相關的文件了,還能夠操做其中的文件,可是,使用命令行的方式比較麻煩,因此才須要mtp-tools mtpfs這些工做實現MTP設備的掛載,拷貝,從而像磁盤那樣操做。
相關文章
相關標籤/搜索