zoukankan      html  css  js  c++  java
  • 烧写u_boot系统和linux系统

    今天下午准备烧写一下u_boot还有linux系统,因为是笔记本电脑,吐槽一下,笔记本电脑的usb转串口不是怎么稳定,dnw下对应的驱动也不怎么好用,导致在笔记本电脑上烧写系统的成功率比较低,本来三点钟烧写好了,我想在练一下手,又把烧写好的系统擦除了,结果虚拟机VMware出现了问题,导致又重新在网站上下载最新的版本,今天看来烧系统就像爬了一次高山,在但是忙活了一下午终于还是烧写成功了,这里我要感谢网站上愿意分享的大神,谢谢你们提供的帮主,废话少说,进入今天的正题。

    烧写系统前的材料:linux_imge 和对应的板子上的驱动

    linux_image下载地址http://pan.baidu.com/share/link?shareid=954895128&uk=1194036641

    驱动下载地址:http://pan.baidu.com/share/link?shareid=949036429&uk=1194036641

    系统要求ubuntu上安装有tftp的服务,关于tftp协议的搭建,下面我也给出具体的实践步骤

    1、安装软件包:sudo apt-get install tftpd tftp xinetd

    2、建立配置文件

     在/etc/xinetd.d/下建立一个配置文件tftp 命令:sudo vi /etc/xinetd.d/tftp

     内容如下:

     service tftp  

    {  

        socket_type = dgram  

        protocol = udp  

        wait = yes  

        user = root  

        server = /usr/sbin/in.tftpd  

        server_args = -s /tftpboot  

        disable = no  

        per_source = 11  

        cps = 100 2  

        flags = IPv4  

    3、建立tftp服务文件目录,在上面的配置中有server_args = -s /tftpboot,其中/tftpboot这个目录就是上传文件与下载文件的位置。

     命令:sudo mkdir /tftpboot          --创建/tftpboot目录

     命令:sudo chmod 777 /tftpboot -R   --设置权限为777

    4、重新启动tftp服务

     sudo /etc/init.d/xinetd restart  --重启tftp服务器

     5、测试

    sudo netstat -a | grep tftp      --查看是否启动成功,可以看到udp 0 0 *:tftp *:*

     tftp 192.168.0.200 –g –r xxx

    弄好tftp协议之后,接下来就可以烧写系统了

    记住两个下载地址 0xd0020010,0x23e00000

    0xd0020010为gec210_usb.bin文件的下载地址

    0x23e00000为uboot,内核文件系统等文件的烧写地址

    步骤一:打开dnw,配置configuration中的option选项,将baudrate改为115200,com口改为对应设备管理器中显示的com口,将下载地址改为0xd0020010,打开开发板的电源j2(打上去)改为nandflash启动

    这时dnw会弹出安装驱动,这时找到对应的驱动,安装即可

    点击serial port->connect,usb:ok表示usb线已经和板子正常连接之后点击usb port->transmit,选择linux_image下的gec210_usb.bin文件

    下载时,dnw标题栏的usb状态会有usb:0k变成usb:X,然后迅速变回usb:ok,表示gec_210_usb.bin下载成功,这时210的相关寄存器初始化完毕,然后设置dnw的参数,DOwn更改为0x23e00000接下来下载u-boot-yaffs-7Inch.bin点击usb port->transmit

    下载完成后,按下回车,串口输出信息:

    表示烧写系统已经成功了一半了,但是这里的uboot并没有固化到nand flash中,因此下面要对ubbot进行固化

    在dnw中设置参数

    通过setenv 命令设置相关参数
    # setenv baudrate 115200
    # setenv bootdelay 3
    # setenv ethact dm9000
    # setenv ipaddr 192.168.1.11
    # setenv serverip 192.168.1.22
    # setenv gatewayip 192.168.1.1
    # saveenv

     烧写u-boot,打开虚拟机,将要下载的文件复制到tftpboot文件夹中,这时要下载的是u-boot-yaffs-7Inch.bin

    # tftp 0x40000000u-boot-yaffs-7Inch.bin

    # nand erase 0x0 0x600000

    # nand write 0x40000000 0x0 0x600000
    nand boot启动方式启动

    重启开发板;

    烧写kernel
    # tftp 0x40000000 uImage-VGA800X600

    # nand erase 0x600000 0x500000


    # nand write 0x40000000 0x600000 0x500000


    # setenv bootcmd nand read 0x30008000 0x600000 0x500000 ;bootm 0x30008000


    # saveenv
    重新启动开发板。

    烧写fs


    # tftp 0x40000000 gec-qt4-rootfs-7.img


    # nand erase 0xe00000 0xf200000 //擦除可以擦大点


    # nand write.yaffs 0x40000000 0xe00000 0xxxxx(根据下载大小确定)

    重新启动开发板即可

    烧写流程和使用tftp协议是一样的,这里要注意的是,主机和主板之间必须要拼通,通常要在虚拟机中设置网关,用ifconfig将eth0设置为192.168.1.22,命令为sudo ifconfig eth0 192.168.1.22,在dnw上输入ping 192.168.1.22,这时看主机是否存在,这里有一个小问题,就是你的电脑的无线网卡一定要关闭,否则,将不会拼通,要注意的就是这些,祝大家烧写愉快

    版权所有,转载请注明链接地址http://www.cnblogs.com/fengdashen/p/3296615.html

  • 相关阅读:
    Maven关于web.xml中Servlet和Servlet映射的问题
    intellij idea的Maven项目运行报程序包找不到的错误
    修改Maven项目默认JDK版本
    刷题15. 3Sum
    刷题11. Container With Most Water
    刷题10. Regular Expression Matching
    刷题5. Longest Palindromic Substring
    刷题4. Median of Two Sorted Arrays
    刷题3. Longest Substring Without Repeating Characters
    刷题2. Add Two Numbers
  • 原文地址:https://www.cnblogs.com/fengdashen/p/3296615.html
Copyright © 2011-2022 走看看