linux开发中常用的命令及技巧(连载)
1.在内核或uboot目录下搜索相关内容/文件名时:
grep "USB" * -nR
find -name "*USB*"
2.查看系统中设备
cat /proc/devices
3.查看系统时间(RTC)
date /* 显示系统时间 */
date 123015402011.30 /* 设置系统时间 date [MMDDhhmm[[CC]YY][.ss]] */
hwclock -w /* 把系统时间写入RTC */
短电,重启,执行date
( 参考RTC驱动)
4.查看系统中断占用情况
cat /proc/interrupts
5.查看、“”杀死“”当前进程
PS命令
eg: kill -9 774 //杀死774号进程
6.打印相关命令
echo create /dev/aaa > /dev/console
7。查看挂载设备
cat /proc/mounts
8.对比目录下文件
diff -r 目录1 目录2
9.查看现有驱动模块
lsmod
10.查看加载失败模块
/lib/systemd/systemd-modules-load
11.建立符号链接(软连接)目录
eg: ln -s 4.4.12-g15ea277/ 4.4.12
12.输入子系统调试(参考相关章节相关部分)
(1)cat /dev/tty1
(2) hexdump /dev/event1
13.在开机日志中查找信息
dmesg | grep mtp_probe
14.查看系统中的中断
cat /proc/interrupts
15.查看隐藏内容的最简单方法是在文件浏览器打开时使用Ctrl + h组合键
16.dmesg命令被用于检查和控制内核的环形缓冲区。kernel会将开机信息存储在ring buffer中。
您若是开机时来不及查看信息,可利用dmesg来查看。开机信息保存在/var/log/dmesg
文件里。
也可以在加载模块时查看各种信息,可以直接使用dmesg 命令
屏幕显示不下过多信息时,也可以使用dmesg > dmesg.txt将信息保存至文件中查看
注意:dmesg命令好用但是必须经常手动操作,而且万一加载的驱动程序有问题导致内核崩溃,也无法及时看到内核printk的打印,可以参考
韦东山三期项目2第1.1.7节中 "设置ubuntu让它从串口0输出printk信息(并使用文件作为串口)"的方法来进一步查看内核打印信息
17. uname -a 用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)
18.linux系统内核目录在 KERN_DIR = /usr/src/linux-headers-2.6.31-14-generic
19.
在这个网站创建新的sources.list
http://repogen.simplylinux.ch/
1. 选择国家
2.选择相邻的ubuntu版本
3. 选择"Ubuntu Branches"
4. 生成sources.list
5. 把得到内容替换到/etc/apt/sources.list
6. sudo apt-get update
sudo apt-get install xawtv
20.
modprobe命令用于智能地向内核中加载模块或者从内核中移除模块。
modprobe可载入指定的个别模块,或是载入一组相依的模块。modprobe会根据depmod所产生的相依关系,决定要载入哪些模块。若在载入过程中发生错误,在modprobe会卸载整组的模块。
sudo modprobe vivi 会安装vivi驱动程序及所依赖的其它驱动程序,当需要加载所依赖的其它驱动程序,又不需要vivi时,可先执行此命令,再rmmod vivi. 此方法可以用来调试自己写的驱动程序。
21.
strace命令
strace -o xawtv.log xatv //跟踪xawtv应用程序,将所有执行的系统调用等信息存在xawtv.log文件中。进而分析这个应用程序的行为。也有助于分析复杂设备的驱动,分析复杂驱动最好的办法是分析应用程序对其的调用过程。
22.lsusb查看到USB设备信息(Bus device ID),例如 BUS 001 Device 007: ID 1e4e:0102
使用 lsusb -V -D 厂家ID值 ,例如 lsusb -V -D 0x1e4e:
查看对应id值设备的所有描述符
23.查看内核配置
cat /boot/config-`uname -r` | grep OPROFILE
posted on 2019-06-26 13:29 lh03061238 阅读(308) 评论(0) 编辑 收藏 举报