从网络启动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 = dgram
  protocol = udp
  wait = yes
  user = root
  server = /usr/sbin/in.tftpd
  server_args = -s /home/hujing/linux/tftpboot/
  disable = no
  per_source = 11
  cps = 100 2
  flags = IPv4
}
  • 启动tftp服务
sudo service tftpd-hpa start
  • 打开/etc/default/tftpd-hpa 文件,将其修改为如下所示内容:
# /etc/default/tftpd-hpa
   
TFTP_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,网络,服务器)