2015年10月31日 星期六

[轉之章] USBasp 的驅動程式安裝


因為打算讓電腦重新啟動了,所以就順便將整個 cygwin 給移除掉,可是這軟體,竟然有夠機車的沒有送上 uninstall 的,這是要人怎麼移除?這種軟體既然是透過了安裝的過程裝上來的,總不可能像綠色軟體那種方式,把目錄給砍了就成事了的吧?

還好有合理的懷疑到這種問題,就順到在這邊附上從網路上找來的 cygwin 的移除手段:

  1. C:>takeown /r /d y /f cygwin
  2. C:>icacls cygwin /t /grant Everyone:F
  3. C:\cygwin\bin>.\cygrunsrv.exe -E sshd
  4. C:\cygwin\bin>.\cygrunsrv.exe -R sshd

※ 通常前面兩個會跑一堆檔案,端看之前究竟裝了多少 package 而定;後面那兩個就不一定會有啥動作了,要看有沒有執行它的 server 程式吧~ 吧~ 吧~ 吧~ (因為我實在不懂它)。

※ 然後在寫這記錄時才想到,雖然昨天有看到清除機碼的動作,不過昨天忘了;所以就順便執行 regedit.exe 到上頭去把和 cygwin 相關的機碼都給砍了 ~

也從裝置管理員那邊,把這個 unknown device 的整個驅動程式給砍掉;並順道進去 windows 系統目錄裡頭,看看有沒有沒被清乾淨的,和 libusb 相關的 sys or dll 檔,都給清了。



重新開機後,再次確認一回麵包板上面的線路是沒問題的 ~

然後就再把它和 USB 延長線進行連接 ‧‧‧

好運突然上門來了,電腦抓到這個 USB 裝置了 ~

※ 為了截圖,而且覺得既然系統已經能正常運作了,就算把驅動程式砍掉,再重新來安裝一次,應該還是能成功安裝的吧~ 吧~ 吧~ 吧 ~ 拼了 ~

‧‧‧

還好本回合系統有按照預計的方式進行,不然寫到這邊又遇到 USBasp 又出錯,就不曉得是該繼續記錄還是停下來回頭去查這個又死掉了的問題了。

總算是出現一些,正常狀況下該出現的畫面,也能從這邊看出,它已經不再是一個 unknown device 了:

search new device

當然不用期望 Windows 能在這一個地方就解決掉,這種很難被它搞定的驅動程式的問題:

search new device failed

還是得回到系統的裝置管理員這邊下手的:

windows device manager_uninstall

再來就是,再花點用比較級來說,相對上很短的時間來把 USBasp 這個裝置的驅動程式安裝好;而且,後續的這些步驟就已經算是正常流程了:

點選手動搜尋

PC auto search or manual

點選到 USBasp 的驅動程式目錄 ./usbasp.2011-05-28/bin/win-driver/libusb_1.2.4.0/

USBasp driver dir

確認之後,Windows 的系統門神會跑出來詢問,是否要繼續下去?如果不繼續下去,那之前搞的這堆不就都沒有作用了,不是嗎? =..=|||
所以在這種撞牆撞到快暈死的狀況下,當然會很開心的點選仍然安裝吧!
※ 如果有人會在這個步驟就此罷手,個人會萬分佩服!!!!

vertification alert

安裝完成 (明明檔案不多,可是 Windows 仍然要跑一陣子才搞定)。

USBasp driver installed

安裝完成後顯示在裝置管理員上面的項目:

USBasp driver OK


當安裝完成之後,就開始回頭想,一開始的狀況,為什麼是安裝不成功的,究竟是漏掉了哪些動作嗎?

目前,還沒有辦法很確認,究竟是哪一個環結上出錯,不過倒是確認了某項疏忽,所以才導致了需要自己重新 compile 一個新版的 avrdude,那就是在搜尋 USBasp & unknown device 的過程裡頭,看錯了版本資訊,再加上,上一回合提到的那一段描述:


With WinAVR version 20100110 or older, please use libusb_0.1.12.1.


所以,我以為我下載的 WinAVR-20100110-install.exe 裡頭的 avrdude 應該是比網頁 build avrdude include libusb's new lib 所題到的 Ver 5.5 還要舊的,而且當時真的把版本看成 5.1 啊;但是,以目前的狀況來說並不是如此,所以並不需要為了讓 avrdude 能支援 libusb 這個 library,然後自己再重新 compile 個新的版本出來用 XD

 
C:\>avrdude
Usage: avrdude [options]
Options:
  -p <partno>                Required. Specify AVR device.
  -b <baudrate>              Override RS-232 baud rate.
  -B <bitclock>              Specify JTAG/STK500v2 bit clock period (us).
  -C <config-file>           Specify location of configuration file.
  -c <programmer>            Specify programmer type.
  -D                         Disable auto erase for flash memory
  -i <delay>                 ISP Clock Delay [in microseconds]
  -P <port>                  Specify connection port.
  -F                         Override invalid signature check.
  -e                         Perform a chip erase.
  -O                         Perform RC oscillator calibration (see AVR053).
  -U <memtype>:r|w|v:<filename>[:format]
                             Memory operation specification.
                             Multiple -U options are allowed, each request
                             is performed in the order specified.
  -n                         Do not write anything to the device.
  -V                         Do not verify.
  -u                         Disable safemode, default when running from a script.
  -s                         Silent safemode operation, will not ask you if
                             fuses should be changed back.
  -t                         Enter terminal mode.
  -E <exitspec>[,<exitspec>] List programmer exit specifications.
  -x <extended_param>        Pass <extended_param> to programmer.
  -y                         Count # erase cycles in EEPROM.
  -Y <number>                Initialize erase cycle # in EEPROM.
  -v                         Verbose output. -v -v for more.
  -q                         Quell progress output. -q -q for less.
  -?                         Display this usage.
 
avrdude version 5.10, URL: <http://savannah.nongnu.org/projects/avrdude/>

這個畫面應該說明了一些東西,比方說:

  • 累了嗎?
  • 眼睛老花了嗎?
  • ‧‧‧

簡單的結論是:雖然目前還不明確,系統能正常抓到這個裝置的驅動程式的 機緣巧合? 究竟是什麼;不過,到是可以確認 ~

重新 compile avrdude 的版本,以目前來說,是完全沒有必要的。


#AVR, #USBasp, #avrdude

沒有留言:

張貼留言