美文网首页
IMX6ULL学习笔记(10)——通过TFTP烧录Linux内核

IMX6ULL学习笔记(10)——通过TFTP烧录Linux内核

作者: Leung_ManWah | 来源:发表于2022-10-23 19:52 被阅读0次

    一、搭建环境

    1.1 搭建TFTP服务

    通过以下方式完成TFTP网络系统的搭建:

    • 更新APT包
      sudo apt update
    • 安装TFTP服务器端
      sudo apt install xinetd tftp tftpd -y
    • 创建TFTP共享目录
      我这里使用和NFS共同的目录,你们也可以选择自己熟悉的目录
    mkdir /home/nfs
    sudo chmod -R 777 /home/nfs
    
    • 编辑指定目录
      sudo vim /etc/xinetd.d/tftp
      添加入下代码
    service tftp
    {
    socket_type = dgram
    protocol = udp
    wait = yes
    user = root
    server = /usr/sbin/in.tftpd
    server_args = /home/nfs
    disable = no
    per_source = 11
    cps = 100 2
    flags = IPv4
    }
    
    • 重启服务
      sudo /etc/init.d/xinetd restart

    1.2 搭建局域网环境

    1.2.1 连接到局域网

    开发板与电脑接入到同一个局域网中,然后电脑提供TFTP服务,开发板通过TFTP与电脑连接共享文件。电脑生成的目标板应用程序放在TFTP的共享文件夹内,开发板访问该文件夹执行应用程序进行测试。

    在另一方面,电脑与开发板通过串口连接,使用串口终端控制开发板。


    把虚拟机的网络连接方式改成桥接模式


    如果原来Ubuntu通过WIFI获取网络的,需要先把Windows的WIFI关掉,重新使用有线网络。
    设置IP地址、子网掩码和网关地址

    1.2.2 设置开发板网络

    上电快速按回车进入Uboot



    设置IP地址、子网掩码和网关地址

    setenv gatewayip '192.168.31.1'
    setenv netmask '255.255.255.0'
    setenv ipaddr '192.168.31.107'
    setenv serverip '192.168.31.77'
    setenv ethaddr '32:34:46:78:9A:DC'
    saveenv
    
    • 这里的 192.168.31 为局域网IP前缀(局域网的网络地址),要根据你网络情况填写
    • 这里的 255.255.255.0 为子网掩码,一般为255.255.255.0,如不对请联系你们网络管理员
    • 这里的 192.168.31.77 为TFTP服务器的IP,要根据你网络情况填写
    • 这里的 192.168.31.1107 为板子的IP,要设置为一个未被使用的IP,要根据你网络情况填写

    1.2.3 互ping测试

    连接好网络后在电脑和开发板之间进行互ping测试,以保证网络互通。

    开发板ping电脑:


    二、将Linux内核烧写到开发板中

    将我们编译的 zImage(在arch/arm/boot下) 放到 nfs 目录下

    • SD卡和EMMC板的在uboot下运行如下代码
    run args_mmc_old;
    tftp 0x80800000 zImage;
    load mmc 1:2 0x83000000 /usr/lib/linux-image-4.19.35-imx6/imx6ull-mmc-npi.dtb;
    bootz 0x80800000 - 0x83000000;
    
    • NAND板的在uboot下运行如下代码
    ubi part rootfs;
    ubifsmount ubi0;
    ubifsload 0x84000000 /lib/firmware/fatboot.img;
    tftp 0x80800000 zImage;
    ubifsload 0x83000000 /usr/lib/linux-image-4.19.35-imx6/imx6ull-nand-npi.dtb;
    load ramblock 0:1 0x88000000 /kernel/initrd.img-4.19.35-imx6;
    bootz 0x80800000 0x88000000:${filesize} 0x83000000;
    

    三、查看Linux内核版本

    cat /proc/version


    • 由 Leung 写于 2022 年 10 月 23 日

    • 参考:28.3. TFTP网络系统的搭建
        11.4. TFTP烧写Linux内核(SD/EMMC/NAND通用,一般用于测试)

    相关文章

      网友评论

          本文标题:IMX6ULL学习笔记(10)——通过TFTP烧录Linux内核

          本文链接:https://www.haomeiwen.com/subject/cwuizrtx.html