邵继华 發表於 2023-8-22 16:51:00

debian安装dnw

<p>&nbsp;</p>
<p>参考:<br>https://blog.csdn.net/qq_37858281/article/details/120584993<br>https://www.xjx100.cn/news/633142.html?action=onClick<br>http://www.ichengxu.cc/show-22-14963-1.html</p>
<p>1. 下载编译DNW<br>1.1 下载<br>https://github.com/changbindu/dnw-linux</p>
<p>1.2 将dnw-linux-master放到 /home/guo/work/linux/tool文件夹, 并进入.<br>$ cd work/linux/tool/dnw-linux-master/<br>~/work/linux/tool/dnw-linux-master$ </p>
<p>屏蔽掉dnw-linux-master/src/driver/Makefile中的secbulk-m := secbulk.o行.<br>否则会报错. 屏蔽即行前加 #.</p>
<p>1.3 编译 <br>$ make</p>
<p>报错: <br>make -C /lib/modules/`uname -r`/build M=`pwd`/src/driver modules<br>make: *** /lib/modules/5.10.0-22-amd64/build: No such file or directory.Stop.<br>make: *** Error 2</p>
<p>原因:<br>没安装内核安装包</p>
<p>/lib/modules/5.10.0-22-amd64$ ls<br>kernel                     modules.builtin.bin      modules.order<br>modules.alias            modules.builtin.modinfomodules.softdep<br>modules.alias.bin          modules.dep            modules.symbols<br>modules.builtin            modules.dep.bin          modules.symbols.bin<br>modules.builtin.alias.binmodules.devname<br>文件夹下根本就没有build文件夹.</p>
<p>解决:参考: https://www.codenong.com/cs106743244/<br>安装linux-headers<br>sudo apt-get install linux-headers-$(uname -r)</p>
<p>/lib/modules/5.10.0-22-amd64$ ls -al</p>
<p>total 4976<br>drwxr-xr-x3 root root    4096 Aug 16 09:52 .<br>drwxr-xr-x5 root root    4096 May 12 11:11 ..<br>lrwxrwxrwx1 root root      38 Apr 22 20:24 build -&gt; /usr/src/linux-headers-5.10.0-22-amd64<br>drwxr-xr-x 12 root root    4096 May 12 11:11 kernel<br>-rw-r--r--1 root root 1242687 May 12 11:12 modules.alias<br>-rw-r--r--1 root root 1189253 May 12 11:12 modules.alias.bin<br>-rw-r--r--1 root root    5541 Apr 22 20:24 modules.builtin<br>-rw-r--r--1 root root       0 May 12 11:12 modules.builtin.alias.bin<br>-rw-r--r--1 root root    6754 May 12 11:12 modules.builtin.bin<br>-rw-r--r--1 root root   38430 Apr 22 20:24 modules.builtin.modinfo<br>-rw-r--r--1 root root497964 May 12 11:12 modules.dep<br>-rw-r--r--1 root root671637 May 12 11:12 modules.dep.bin<br>-rw-r--r--1 root root   476 May 12 11:12 modules.devname<br>-rw-r--r--1 root root153966 Apr 22 20:24 modules.order<br>-rw-r--r--1 root root    1116 May 12 11:12 modules.softdep<br>-rw-r--r--1 root root563210 May 12 11:12 modules.symbols<br>-rw-r--r--1 root root685934 May 12 11:12 modules.symbols.bin<br>lrwxrwxrwx1 root root      39 Apr 22 20:24 source -&gt; /usr/src/linux-headers-5.10.0-22-common</p>
<p>可以看到已经有build文件夹了, 并且是指向/usr/src/linux-headers-5.10.0-22-amd64的.</p>
<p>$ ls /usr/src/<br>linux-headers-5.10.0-22-amd64   linux-kbuild-5.10<br>linux-headers-5.10.0-22-common</p>
<p>1.4 再次编译:<br>成功.</p>
<p>2. 查看开发板USB ID<br>1)选择USB启动模式. (S5PV210设为SD卡启动模式, 但是不插卡, 会转到USB启动模式)<br>2)连接OTG到电脑.<br>3)开机. 将设备(开发板)连接到虚拟机.<br>将设备按USB设备对待. 连接到虚拟机, 可参考: https://www.cnblogs.com/seifguo/p/17647825.html<br>4)查看系统日志.<br>$ sudo dmesg</p>
<p>[   26.955455] 01:20:29.320890 IpcCLT-1427 VBoxDRMClient: IPC client connection started<br>[   26.971168] 01:20:29.336609 main   VBoxClient VMSVGA: Creating worker thread ...<br>[   27.007092] 01:20:29.372628 main   VBoxClient VMSVGA: Service started<br> usb 1-2: new high-speed USB device number 3 using xhci_hcd<br> usb 1-2: New USB device found, idVendor=04e8, idProduct=1234, bcdDevice= 1.00<br> usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0<br> usb 1-2: Product: SEC S5PC110 Test B/D<br> usb 1-2: Manufacturer: System MCU<br>guo@debian:~$ <br>可以看到厂商ID是idVendor=04e8, 产品ID是idProduct=1234.</p>
<p>3. 编译安装DNW<br>3.1 修改驱动. <br>打开dnw-linux-master/src/driver/secbulk.c, 查看secbulk_table[]变量:<br>static struct usb_device_id secbulk_table[]= {<br>        { USB_DEVICE(0x5345, 0x1234) }, /* FS2410 */<br>        { USB_DEVICE(0x04e8, 0x1234) }, /* EZ6410 */<br>        { }<br>};<br>可以看到已定义了{ USB_DEVICE(0x04e8, 0x1234) }, 就不需要改动了.</p>
<p>3.2 修改dnw.c文件<br>unsigned load_addr = 0x57e00000; <br>改为<br>unsigned load_addr = 0xd0020000;</p>
<p>printf("Default load address: 0x57e00000\n"); <br>改为<br>printf("Default load address: 0xd0020000\n");</p>
<p>0xd0020000是S5PV210的默认启动位置.</p>
<p>3.3 编译 安装<br>在dnw-linux-master源码顶层目录下编译安装.<br>guo@debian:~/work/linux/tool/dnw-linux-master$ make<br>guo@debian:~/work/linux/tool/dnw-linux-master$ sudo make install</p>
<p>4. 验证. <br>采用usb启动方式, 使用dnw下载裸机程序到开发板的内存中运行. <br>裸机程序需要加16字节的文件头. <br>如果不加文件头, 需要在3.2步骤中, 将0xd0020000改为0xd0020010.<br>并且开发板需要用usb启动方式(usb启动不校验文件头).<br>注意: 要将将设备连接到虚拟机!!</p>
<p>$ sudo dnw ~/work/linux/sin210/01noos/00test/210.bin </p>
<p>load address: 0xD0020000<br>Writing data...<br>100%        0x00000076 bytes (0 K)<br>speed: infM/S</p>
<p>成功. 可以看到led在闪烁(210.bin是一个led灯闪烁的裸机程序).</p><br><br>
来源:https://www.cnblogs.com/seifguo/p/17649003.html
頁: [1]
查看完整版本: debian安装dnw