博客
关于我
Linux内核调试手段
阅读量:496 次
发布时间:2019-03-07

本文共 2024 字,大约阅读时间需要 6 分钟。

1、 nfs命令

在uboot中使用nfs命令将Ubuntu中的Linux镜像和设备树下载到DRAM中,然后直接运行。也就是网络调试,通过网络调试时Linux开发最常用的方法之一。

在量产的时候,半导体商一般提供一个烧写固话的软件,一般这个是产品发布固化程序用。在开发调试阶段可以nfs命令

2、在uboot挂载根文件系统root_nfs,下载更新板子的内核、zmage、设备树dtb文件

sudo apt-get install nfs-kernel-server # 安装 NFS服务器端

ifconfig eth0 up 启动网卡。

sudo ifconfig eth0 192.168.1.119 up (ifconfig 查看eth0 是否有ip 没有则手动设置ip)
这里有必要关闭下ubuntu的防火墙:
sudo ufw disable命令来关闭防火墙 ,测试完成后开启sudo ufw enable命令来开发防火墙
查看防火墙sudo ufw status命令查看当前防火墙状态

sudo gedit /etc/exports (修改NFS的配置文件,文件在主目录下的/etc/exports)

在文件末尾里面添加我们的根文件系统自定义名为目录root_nfs (这个文件名可以自定义)和定义访问权限。根文件系统的路径也是可以自定义的。只要在exports填写路径即可。

/home/用户名/root_fs *(rw,sync,no_root_squash)

修改NFS的配置文件,重启NFS 服务器sudo /etc/init.d/nfs-kernel-server restart

测试服务器是否能背挂载

sudo mount -t nfs 192.168.1.119:/home/用户名/root_fs /mnt (挂载自己)
192.168.1.119 ubuntu自己自身IP地址

通过终端板子设置

进入uboot设置板子ip 192.168.1.2 setenv ipaddr 192.168.1.2

在uboot下敲入以下命令,下载更新板子的内核、zmage、设备树dtb文件

=> ping 192.168.1.119 #ping ubuntu

Using ethernet@020b4000 device
host 192.168.1.119 is alive #alive说明通信成功
=>

=>     => setenv serverip 192.168.1.119  #/设置服务器的 IP 地址,这里指的是 Ubuntu 主机 IP=> setenv ipaddr 192.168.1.2  #设置开发板的 IP 地址。=> setenv nfsroot /home/用户名/fs_rootfs  #设置 nfs 文件系统所在目录。=> run netboot  #设置完成后,运行网络启动系统命令=>

3、根文件系统root_nfs挂载在某个目录下,更新传输板子文件系统的文件

在内核运行起来后,更新传输板子文件系统的文件

将ubuntu/home/用户名/root_fs的root_fs挂载在mnt目录下。如果板子没有mnt目录需要手动创建mkdir mnt

或者传输文件比如hello.c到test目录下
[root@imx6ull:~]# mkdir mnt
[root@imx6ull:~]# mount -t nfs -o nolock,vers=3 192.168.1.199:/home/用户名/root_fs /mnt
[root@imx6ull:~]# cp /mnt/hello.c ./test

注意:确认板子和ubuntu是否是同一个网段,板子和ubuntu要设置成在一个网段才能通信。

不是用ifconfig 网卡名 ip up 进行设置比如

ifconfig eth0 192.168.1.119 up

4、板子使用ubuntu里面根文件系统root_nfs

直接去挂载NFS:

重启开发板进入u-boot命令行。
输入 setenv bootargs noinitrd root=/dev/nfs nfsroot=192.168.1.119:/home/用户名/root_fs ip=192.168.1.119:192.168.1.2:192.168.1.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0
saveenv 保存 reboot重启。

ok NFS启动完成。

5、gdb + gdbserver(可以在QtCreate、Eclisp、VSCode里面搭建界面调试环境)

arm-linux-gdb(gdb-multiarch) + gdbserver

6、 野火linux教程

章节:产品详情–》

转载地址:http://pqpcz.baihongyu.com/

你可能感兴趣的文章
Net处理html页面元素工具类(HtmlAgilityPack.dll)的使用
查看>>
Net操作Excel(终极方法NPOI)
查看>>
Net操作配置文件(Web.config|App.config)通用类
查看>>
net网络查看其参数state_dict,data,named_parameters
查看>>
Net连接mysql的公共Helper类MySqlHelper.cs带MySql.Data.dll下载
查看>>
NeurIPS(神经信息处理系统大会)-ChatGPT4o作答
查看>>
neuroph轻量级神经网络框架
查看>>
Neutron系列 : Neutron OVS OpenFlow 流表 和 L2 Population(7)
查看>>
new Blob()实现不同类型的文件下载功能
查看>>
New Concept English three (35)
查看>>
NEW DATE()之参数传递
查看>>
New Journey--工作五年所思所感小记
查看>>
new Queue(REGISTER_DELAY_QUEUE, true, false, false, params)
查看>>
New Relic——手机应用app开发达人的福利立即就到啦!
查看>>
new work
查看>>
new 一个button 然后dispose,最后这个button是null吗???
查看>>
NewspaceGPT的故事续写能力太强了
查看>>
NewspaceGPT绘制时序图
查看>>
NewspaceGPT绘制类图
查看>>
new一个对象的过程
查看>>