从网络启动linux调试方法

目录

  • 从网络启动linux调试方法
  • 一、目的
  • 二、SSH和TFTP环境创建
    • 1.连接开发板和电脑/路由器
    • 2.设置板卡环境变量
    • 3.测试网络通信是否正常
    • 4.网络调试之NFS调试方法
      • (1)在ubuntu中安装NFS服务
      • (2)创建共享目录
      • (3)配置nfs
      • (4)重启NFS服务:
      • (5)SSH服务开启
      • (6)开发板uboot命令格式
    • 4.网络调试之TFTP调试方法
      • (1)ubuntu搭建tftp服务器
      • (2)创建服务器目录
      • (3)配置tftp

一、目的

从网络启动 linux 系统的唯一目的就是为了调试!我们可以设置 linux 从网络启动,也就是将 linux 镜像文件和根文件系统都放到 Ubuntu 下某个指定的文件夹中,这样每次重新编译 linux 内核或者某个 linux 驱动以后只需要使用 cp 命令将其拷贝到这个指定的文件夹中即可,这样就不用需要频繁的烧写 EMMC,这样就加快了开发速度。

二、SSH和TFTP环境创建

1.连接开发板和电脑/路由器

用网线连接开发板和路由器(或者开发板和电脑),建议开发板和主机 PC 都连接到同一个路由器上

2.设置板卡环境变量

设置步骤如下:

setenv ipaddr 192.168.2.115          //开发板 ip 地址
setenv ethaddr 00:04:9f:04:d2:35      //开发板网卡 mac 地址
setenv gatewayip 192.168.2.1         //开发板默认网关
setenv netmask 255.255.255.0         //开发板子网掩码
setenv serverip 192.168.2.102        //服务器地址,也就是 ubuntu 地址
saveenv                             //保存环境变量

3.测试网络通信是否正常

ping 192.168.2.102

注意!只能在 uboot 中 ping 其他的机器,其他机器不能 ping uboot,因为 uboot 没有对 ping命令做处理,如果用其他的机器 ping uboot 的话会失败!

4.网络调试之NFS调试方法

(1)在ubuntu中安装NFS服务

sudo apt-get install nfs-kernel-server rpcbind

(2)创建共享目录

在ubuntu用户目录下./linux/nfs,此文件夹供nfs服务器使用,后面可以通过开发板的网络文件系统来访问nfs文件夹

(3)配置nfs

sudo vi /etc/exports
打开/etc/exports 以后在后面添加如下所示内容:
/home/hujing/linux/nfs *(rw,sync,no_root_squash)

(4)重启NFS服务:

sudo /etc/init.d/nfs-kernel-server restart

(5)SSH服务开启

Ubuntu下开启SSH服务:
sudo apt-get install openssh-server
上述命令安装 SSH 服务, SSH 的配置文件为/etc/ssh/sshd_config,使用默认配置即可。

(6)开发板uboot命令格式

nfs [loadAddress] [[hostIPaddr:]bootfilename]

  • loadAddress 是要保存的 DRAM 地址
  • [[hostIPaddr:]bootfilename]是要下载的文件地址。
  • 使用 nfs 命令来将 zImage 下载到开发板 DRAM 的 0X80800000 地址处:
    nfs 80800000 192.168.2.102:/home/hujing/linux/nfs/zImage

4.网络调试之TFTP调试方法

(1)ubuntu搭建tftp服务器

sudo apt-get install tftp-hpa tftpd-hpa
sudo apt-get install xinetd

(2)创建服务器目录

mkdir /home/hujing/linux/tftpboot
chmod 777 /home/hujing/linux/tftpboot

(3)配置tftp

  • 新建文件/etc/xinetd.d/tftp
    如果没有/etc/xinetd.d 目录的话自行创建, 然后在里面输入如下内容:
server tftp
{socket_type = dgramprotocol = udpwait = yesuser = rootserver = /usr/sbin/in.tftpdserver_args = -s /home/hujing/linux/tftpboot/disable = noper_source = 11cps = 100 2flags = IPv4
}
  • 启动tftp服务
sudo service tftpd-hpa start
  • 打开/etc/default/tftpd-hpa 文件,将其修改为如下所示内容:
# /etc/default/tftpd-hpaTFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/hujing/linux/tftpboot"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="-l -c -s"
  • 重启tftp服务
sudo service tftpd-hpa restart
  • 将 zImage 镜像文件拷贝到 tftpboot 文件夹中,并且给予 zImage 相应的权限,命令如下:
cp zImage /home/hujing/linux/tftpboot/
cd /home/hujing/linux/tftpboot/
chmod 777 zImage
  • 在uboot中使用tftp命令:
    格式:tftpboot [loadAddress] [[hostIPaddr:]bootfilename]
loadAddress 是 文 件 在 DRAM 中 的存 放 地 址
[[hostIPaddr:]bootfilename]是要从 Ubuntu 中下载的文件
  • 将 tftpboot 文件夹里面的 zImage 文件下载到开发板 DRAM 的 0X80800000 地址处 :
    tftp 80800000 zImage

从网络启动linux调试方法相关推荐

  1. 【树莓派学习笔记】树莓派4B上运行uboot并从网络启动linux内核(上)

    [树莓派学习笔记]树莓派4B上运行uboot并从网络启动linux内核(上) 文章目录 [树莓派学习笔记]树莓派4B上运行uboot并从网络启动linux内核(上) 前言 1. 硬件需求与软件版本汇总 ...

  2. 03 TI OMAPL138E Linux移植 (Davinci) (资源获取+从串口启动UBoot+从网络启动Linux与文件系统)

    Date: 2018-02-08 [1.从实际硬件上获取主芯片型号为TI的OMAPL138E ],所属系列为OMAPL1,编译默认配置为davinci或者da850. <以下内容失效>&l ...

  3. Linux应用程序调试方法

    1.概述     可应用与嵌入式的操作系统有Linux.VxWorks等,VxWorks的调试较简单,因为没有虚拟内存的限制,所以支持直接修改内存数据,且支持符号表,因此在shell中可以直接数据全局 ...

  4. 无法支持python程序的编辑运行和调试_python程序的调试方法

    本文讨论在没有方便的IDE工具可用的情况下,使用pdb调试python程序 源码例子 例如,有模拟税收计算的程序: #!/usr/bin/python def debug_demo(val): if ...

  5. tightvnc viewer 传文件_丢掉U盘,TinyPXESever网络启动WinPE,TightVNC远程控制(无人值守)装系统(无显示器也可测试)...

    远程连接成功预览: 写在最前: 1.本教程主要讨论的是PXE网络启动与远程控制,装系统只是其中一种应用方式 2.本次教程使用WMware Player模拟远程计算机来进行演示 3.测试机内存设置480 ...

  6. linux 启动网络服务,Linux下网络启动服务器安装和配置方法(pxe+tftp+dhcpd)

    背景: 在大规模安装服务器时,需要批量自动化方法来安装服务器,来减少日常的工作量,但是批量自动化安装服务器的基础是网络启动服务器(bootserver),下面就是网络启动服务器的安装和配置方法,供大家 ...

  7. linux 内核调试 booting the kernel.,booting the kernel后无内核启动信息的调试方法

    移植内核经常会出现 Uncompressing Linux................................................................ done, ...

  8. Linux 网络驱动 phy 读写寄存器调试方法

    Linux 网络 phy 调试方法 目前嵌入式芯片支持双网卡的有很多.在调试网络驱动时,需要通过mdc 和mdio信号对phy的寄存器进行操作调试.如果每次调试都修改网络驱动的话会很麻烦.下面提供我常 ...

  9. Linux环境中堆栈和堆相关内存损坏的基本原理和调试方法介绍

    本文讲的是Linux环境中堆栈和堆相关内存损坏的基本原理和调试方法介绍, 前言 建议阅读本文之前,你对ARM组件的有个基本了解,本文会先为你介绍32位Linux环境中进程的内存布局,然后再介绍堆栈和堆 ...

最新文章

  1. Opencv学习笔记(六)SURF学习笔记
  2. c语言中常用的程序,C语言一些常用语句
  3. C++ Templates 中的一个例子
  4. Java集合框架--List、Set、Map
  5. 《高翔视觉slam十四讲》学习笔记 第七讲 视觉里程计
  6. 与大数据同行—学习和教育的未来 - 电子书下载(高清版PDF格式+EPUB格式)
  7. linux中tar命令怎么用,linux tar命令使用详解
  8. 海康摄像头ffmpeg推流到srs流媒体服务器
  9. python编写鸡兔同笼程序_编写程序,分享解鸡兔同笼问题? 用Python分享多笼鸡兔同笼...
  10. 顺序表的初始化、插入、删除、查找
  11. Make Cents
  12. https://juejin.im/entry/58622ebc570c3500694ec86c
  13. 学术论文中常见的英文简写
  14. 限界上下文(BC)是什么
  15. 主外键关联删除(on delete set null和on delete cascade)
  16. 数据库主流容灾方案对比分析
  17. 编译x86 release版本libcurl,支持https
  18. 基于Python的国际绝对音名标准频率C语言宏定义(32位无符号整型精度、十二等律体系、A4=440.01000Hz)
  19. 制作一个心率/脉搏测量硬件
  20. Oracle 行转列 动态出转换的列

热门文章

  1. Paraview——三维模型中二维切面矢量流场制作
  2. Matlab画图函数
  3. InstallShield 软件打包完整教程(含添加自定义依赖环境)
  4. 算法导论第四章4.1-5 dp解法
  5. 监控windows某个服务当服务停止后自动重启服务
  6. eclipse中集成tomcat8
  7. RECS高管教练课程是什么?
  8. Lua游戏开发(一)---Lua语言
  9. unity图片去除白色实现扣图功能
  10. Jensen不等式、数值积分的变分界、KL散度