从网络启动linux调试方法
从网络启动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调试方法相关推荐
- 【树莓派学习笔记】树莓派4B上运行uboot并从网络启动linux内核(上)
[树莓派学习笔记]树莓派4B上运行uboot并从网络启动linux内核(上) 文章目录 [树莓派学习笔记]树莓派4B上运行uboot并从网络启动linux内核(上) 前言 1. 硬件需求与软件版本汇总 ...
- 03 TI OMAPL138E Linux移植 (Davinci) (资源获取+从串口启动UBoot+从网络启动Linux与文件系统)
Date: 2018-02-08 [1.从实际硬件上获取主芯片型号为TI的OMAPL138E ],所属系列为OMAPL1,编译默认配置为davinci或者da850. <以下内容失效>&l ...
- Linux应用程序调试方法
1.概述 可应用与嵌入式的操作系统有Linux.VxWorks等,VxWorks的调试较简单,因为没有虚拟内存的限制,所以支持直接修改内存数据,且支持符号表,因此在shell中可以直接数据全局 ...
- 无法支持python程序的编辑运行和调试_python程序的调试方法
本文讨论在没有方便的IDE工具可用的情况下,使用pdb调试python程序 源码例子 例如,有模拟税收计算的程序: #!/usr/bin/python def debug_demo(val): if ...
- tightvnc viewer 传文件_丢掉U盘,TinyPXESever网络启动WinPE,TightVNC远程控制(无人值守)装系统(无显示器也可测试)...
远程连接成功预览: 写在最前: 1.本教程主要讨论的是PXE网络启动与远程控制,装系统只是其中一种应用方式 2.本次教程使用WMware Player模拟远程计算机来进行演示 3.测试机内存设置480 ...
- linux 启动网络服务,Linux下网络启动服务器安装和配置方法(pxe+tftp+dhcpd)
背景: 在大规模安装服务器时,需要批量自动化方法来安装服务器,来减少日常的工作量,但是批量自动化安装服务器的基础是网络启动服务器(bootserver),下面就是网络启动服务器的安装和配置方法,供大家 ...
- linux 内核调试 booting the kernel.,booting the kernel后无内核启动信息的调试方法
移植内核经常会出现 Uncompressing Linux................................................................ done, ...
- Linux 网络驱动 phy 读写寄存器调试方法
Linux 网络 phy 调试方法 目前嵌入式芯片支持双网卡的有很多.在调试网络驱动时,需要通过mdc 和mdio信号对phy的寄存器进行操作调试.如果每次调试都修改网络驱动的话会很麻烦.下面提供我常 ...
- Linux环境中堆栈和堆相关内存损坏的基本原理和调试方法介绍
本文讲的是Linux环境中堆栈和堆相关内存损坏的基本原理和调试方法介绍, 前言 建议阅读本文之前,你对ARM组件的有个基本了解,本文会先为你介绍32位Linux环境中进程的内存布局,然后再介绍堆栈和堆 ...
最新文章
- Opencv学习笔记(六)SURF学习笔记
- c语言中常用的程序,C语言一些常用语句
- C++ Templates 中的一个例子
- Java集合框架--List、Set、Map
- 《高翔视觉slam十四讲》学习笔记 第七讲 视觉里程计
- 与大数据同行—学习和教育的未来 - 电子书下载(高清版PDF格式+EPUB格式)
- linux中tar命令怎么用,linux tar命令使用详解
- 海康摄像头ffmpeg推流到srs流媒体服务器
- python编写鸡兔同笼程序_编写程序,分享解鸡兔同笼问题? 用Python分享多笼鸡兔同笼...
- 顺序表的初始化、插入、删除、查找
- Make Cents
- https://juejin.im/entry/58622ebc570c3500694ec86c
- 学术论文中常见的英文简写
- 限界上下文(BC)是什么
- 主外键关联删除(on delete set null和on delete cascade)
- 数据库主流容灾方案对比分析
- 编译x86 release版本libcurl,支持https
- 基于Python的国际绝对音名标准频率C语言宏定义(32位无符号整型精度、十二等律体系、A4=440.01000Hz)
- 制作一个心率/脉搏测量硬件
- Oracle 行转列 动态出转换的列