身为硬件工程师,掌握一些简单的Linux调试指令也是一项基本功,新板子回来,不等驱动工程师上手,一般先自己简单测试一下基础功能,好做到心里有底。下面我将列举一些常用的Linux指令,建议收藏以备不时之需。0、板子上电之前,当然应该优先检查电源对地是否短路,上电量一下各电源输出是否正常,需要烧录的芯片先烧录好,然后插上调试口(有串口、有网口、有usb)看log是否正常。准备工作都做好了,就可以开始调试了。1、一般上电之后,串口会有开机启动log,大部分情况串口波特率115200或者9600,可以看到上电会打印一大堆的log,里面有没有错先不管,关键是得能正常进入系统。一般系统起来之后需要输入用户名和密码,一般情况下都是用户名:root,密码:root。2、lsusb | 查看 USB 设备(调试器、USB 串口、U 盘),由于大部分usb设备的驱动都是Linux系统自带,很多上电都能看到设备。比如图中标红的就是挂载的华为5G模块,可以明显看出HUAWEI字样,其他的是系统内部hub不用理会。这样就可以放心的让驱动工程师去调试usb驱动了。如果不认,那就检查模块供电和控制信号,数据信号是否正确。3、lspci | 查看 PCIe/PCI 设备(SSD、网卡、显卡、板载硬件,一般pcie设备只有上电扫描一次,如果想再次扫描,需要输入 echo 1 >/sys/bus/pci/rescan4、ifconfig|看网络配置,是使用频率极高的指令,可以查看有几个网卡、ip是多少,是否link,网络链接速度是多少。eth0 表示第一块网卡。
第一行 Link encap:Ethernet 表示连接类型为以太网,HWaddr 00:16:3E:00:1E:51 为网卡的物理地址; 第二行 inet addr:10.160.7.81 为网卡的 IPv4 地址,Bcast:10.160.15.255 为广播地址,Mask:255.255.240.0 为子网掩码; 第三行 UP(代表网卡开启状态),BROADCAST(支持广播),RUNNING(代表网卡的网线被接上),MULTICAST(支持组播),MTU:1500(最大传输单元 1500 字节),Metric:1 表示网卡路由数据包优先级,数值越低,优先级越高; 第四、五行:接收、发送数据包情况统计; 第七行:接收、发送数据字节数统计信息。
常用修改ip的指令:ifconfig eth0 192.168.3.1。如果网卡显示的不全可以ifconfig -a。5、ping |测试网络连通性,常用的ping指令,跟电脑相似,ping 192.168.3.100。6、top|动态查看cpu目前使用的程序,配合kill命令可以关掉正在跑bug的程序。比如先输入top找到卡死的程序PID,之后kill -9 刚才的PID(必杀),就可以杀掉卡死的程序。killall -9 要杀的程序名,可以不用知道PID就杀程序,支持*代替。7、ls |看当前文件夹下的所有文件。cd |相对路径切换(基于当前目录);cd / |绝对路径(从根目录开始),配合tab键可以补全后续字母(需要后续只有唯一一个文件);cd .. |返回上一个目录。8、chmod| 修改文件权限(设备文件、驱动执行权限),常用chmod 文件名 777,把文件赋予最高权限。9、dmesg | 内核硬件日志(看设备挂载、报错、PCIe 枚举、SSD 识别。10、reboot | 重启设备,如果在uboot里reset是重启。