在Linux中安裝dnw

  因爲我的電腦是win10的,搞了半天都裝不了dnw,索性就想能不能在linux中直接安裝呢。網上搜了一大堆教程,很亂,這裏我做個整理吧。我的板子是s5pv210的,系統是ubuntu14.0的。

  1.首先下載usb驅動和下載工具,用的是點擊打開鏈接提供的。我下載之後放到共享文件夾中,然後在虛擬機中解壓。

  2.然後會發現有四個文件(如果有多個,請先make clean清除一下),可以先看一下readme,裏面有講的很清楚的過程。

  3.先進入secbulk_driver的usb驅動文件夾,先make clean清除一下,然後vim secbulk.c中修改一下其中的一段代碼。

        #ifdef OK6410 
              #define         DOWNLOAD_USB_ID_MAJOR           0x04e8
             #define         DOWNLOAD_USB_ID_MINOR           0x1234
        #else                                           /* add your usb info if neccessary */
        #define         DOWNLOAD_USB_ID_MAJOR           0x04e8
              #define         DOWNLOAD_USB_ID_MINOR           0x1234
        #endif

      我們要改的是DOWNLOAD_USB_ID_MAJOR 和DOWNLOAD_USB_ID_MINOR 後面的值,此值是需要在命令行中輸入lsusb可以得到的(不同的flash要在那個表單中加入一些設備相關的信息類似ID號,在程序加載的時候自動讀取芯片內部ID和這個相比較,沒有註冊的設備是不會被系統支持的,可以通過lsusb獲得idProduct和idVendor,需要在插上板子,並準備下載時此時設備連上時lsusb)

 4.保存退出。之後編譯一下並加載內核模塊:

     $make -C /lib/modules/`uname -r`/build M=`pwd` modules

5.我們把這個文件可以保存在一個比較方便的文件夾中,比如mkdir /root/mydriver

   然後把cp secbulk.ko /root/mydriver  

   用insmod命令加載模塊 : insmod ./secbulk.ko

   加載後用dmesg命令可以看到模塊已經成功加載
        [  238.007970] secbulk:secbulk loaded
        [  238.009101] usbcore: registered new interface driver secbulk

6.vim /etc/init.d/rc.local  在文件中加入insmod /root/mydriver/secbulk.ko一行

   這是因爲開機的時候不會自動加載,這樣每次都要先加載纔可以使用,很麻煩,此時將其加入開機腳本,
使其得到自動加載(注意有的時候是/etc/rc.local,還有/root/mydriver是我們自己剛纔自己添加的)

7.我們再進入dnw_src的文件夾中,同樣先make clean 清除一下。然後vim dnw.c,修改dnw.c中的前面

     const char* dev = "/dev/secbulk0";

      static long DOWNLOAD_ADDR = 0xd0020010;這個是你的程序的下載地址,自行修改。

     保存退出,make編譯一下。將生成的可執行文件copy到/usr/local/bin目錄$ cp dnw /usr/local/bin

      這樣這樣就可以在shell下面直接使用dnw命令了

8.這樣我們就已經設置完成了。這個時候我們打開按下板子開關,連接好usb下載線,然後輸入

   $dnw -f filename 你自己的文件名,發現下載成功。


  注意:有時候由於內核的升級,運行時會提醒Can not open /dev/secbulk0的錯誤,此時需要重新到secbulk目錄執行$make -C /lib/modules/`uname -r`/build M=`pwd` modules,然後加載模塊$sudo insmod ./secbulk.ko即可!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章