歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux技術

在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即可!
Copyright © Linux教程網 All Rights Reserved