在Linux内核调试时,经常会遇到下面的情况:

1、明明已经修改过代码,为什么功能没生效?

2、明明自己验证的功能没有问题,别人验证就出问题了呢?

遇到事情,不要慌,也不用先拿手机拍个照。

我们先看下Linux内核映像编译信息,判断下系统的Linux内核映像是否正确。

常用的查看内核映像编译信息的方法有:

1、在系统加载Linux内核时,查看启动日志

Starting kernel ...

[   0.000000] Booting Linux on physical CPU 0x0

[   0.000000] Initializing cgroup subsys cpuset

[   0.000000] Initializing cgroup subsys cpu

[   0.000000] Initializing cgroup subsys cpuacct

[   0.000000] Linux version 4.4.154-00036-gcef30e88a9f5-dirty (root@ubuntu) (gcc version 7.3.1 20180425 [linaro-7.3-2018.05 revision d29120a424ecfbc167ef90065c0eeb7f91977701] (Linaro GCC 7.3-2018.05) ) #5 SMP Sun Jan 31 05:56:36 PST 2021

根据上面的启动日志可以得到如下信息:

1)Linux内核版本

Linux内核版本为:4.4.154。Linux内核版本信息也可通过Linux内核代码根目录下的Makefile验证,如下:

root@ubuntu:/home/run/code/rockchip-bsp/kernel# vi Makefile

VERSION = 4

PATCHLEVEL = 4

SUBLEVEL = 154

2)编译用户和主机名称

编译用户为:root;主机名称为:ubuntu。

3)工具链信息

工具链信息为:linaro-7.3-2018.05 revision d29120a424ecfbc167ef90065c0eeb7f91977701] (Linaro GCC 7.3-2018.05)。

4)Linux内核映像编译时间

Linux内核映像编译时间为:Jan 31 05:56:36 PST 2021。

上面日志的解析可以参考内核代码根目录文件:scripts/mkcompile_h。

先把该文件最后一行删除,重新编译内核,然后查看.tmpver.1文件。

scripts/mkcompile_h文件代码修改:

#rm -f .tmpver.1 .tmpver.2

.tmpver.1文件内容:

root@ubuntu:/home/run/code/rockchip-bsp/kernel# cat .tmpver.1

/* This file is auto generated, version 5 */

/* SMP */

#define UTS_MACHINE "arm64"

#define LINUX_COMPILE_BY "root"

#define LINUX_COMPILE_HOST "ubuntu"

#define LINUX_COMPILER "gcc version 7.3.1 20180425 [linaro-7.3-2018.05 revision d29120a424ecfbc167ef90065c0eeb7f91977701] (Linaro GCC 7.3-2018.05) "

2、dmesg

如果系统启动日志没有保存,也可以通过dmesg命令查看。

root@linaro-alip:~# dmesg

[   0.000000] Booting Linux on physical CPU 0x0

[   0.000000] Initializing cgroup subsys cpuset

[   0.000000] Initializing cgroup subsys cpu

[   0.000000] Initializing cgroup subsys cpuacct

[   0.000000] Linux version 4.4.154-00036-gcef30e88a9f5-dirty (root@ubuntu) (gcc version 7.3.1 20180425 [linaro-7.3-2018.05 revision d29120a424ecfbc167ef90065c0eeb7f91977701] (Linaro GCC 7.3-2018.05) ) #5 SMP Sun Jan 31 05:56:36 PST 2021

3、cat /proc/version

除了dmesg命令,还可以通过cat /proc/version查看,显示更为清晰。

root@linaro-alip:~# cat /proc/version

Linux version 4.4.154-00036-gcef30e88a9f5-dirty (root@ubuntu) (gcc version 7.3.1 20180425 [linaro-7.3-2018.05 revision d29120a424ecfbc167ef90065c0eeb7f91977701] (Linaro GCC 7.3-2018.05) ) #5 SMP Sun Jan 31 05:56:36 PST 2021

4、cat /proc/sys/kernel/version

如果是自己调试,也可以使用cat /proc/sys/kernel/version命令,只查看编译时间。

root@linaro-alip:~# cat /proc/sys/kernel/version

#5 SMP Sun Jan 31 05:56:36 PST 2021

5、uname -a

当然也可以使用uname -a命令。

root@linaro-alip:~# uname -a

Linux linaro-alip 4.4.154-00036-gcef30e88a9f5-dirty #5 SMP Sun Jan 31 05:56:36 PST 2021 aarch64 GNU/Linux

最后,秉承买一送一的原则,附赠一条查看系统版本的命令:cat /etc/issue

root@linaro-alip:~# cat /etc/issue

Debian GNU/Linux 9 \n \l

linux内核映像查看,RockPI 4A 查看Linux内核映像编译信息相关推荐

  1. rock64linux,RockPI 4A Linux内核下载与编译

    本文介绍RockPI 4A单板Debian系统Linux内核的下载和编译方法,为后续介绍RockPI 4A单板Linux内核调试进行抛砖引玉. 一.代码下载 Rockpi 4A Debian版本SDK ...

  2. 【正点原子Linux连载】第三十五章 Linux内核顶层Makefile详解 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0

    1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...

  3. 如何查看已安装的Linux内核

    有些时候,你可能需要检查或查看 Linux 系统上已安装内核列表.如果你不知道如何操作,请继续阅读. 查看已安装的Linux内核 RHEL/CentOS/Fedora 在终端中执行如下命令查看已安装的 ...

  4. linux下查看mysql线程_linux-如何查看线程在哪个CPU内核中运行?

    linux-如何查看线程在哪个CPU内核中运行? 在Linux中,假设线程的pid是[pid],则从目录/ proc / [pid]中我们可以获得许多有用的信息. 例如,这些proc文件/ proc ...

  5. 如何查看linux内核大小,如何查看已安装的Linux内核

    有些时候,你可能需要检查或查看 Linux 系统上已安装内核列表.如果你不知道如何操作,请继续阅读. 查看已安装的Linux内核: RHEL/CentOS/Fedora 在终端中执行如下命令查看已安装 ...

  6. linux用cat查看本机ip,linux sh 如何根据出口网关来获取本机出口ip

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 测试机器:华为P7-L07 安卓测试环境:EMUI 3.1 安卓5.1.1(版本号:P7-L07C01B851,基带版本:23.600.06.00.00, ...

  7. linux 查看ip_如何在 Linux 中查看可用的网络接口 | Linux 中国

    对于某些人来说,他们更偏爱在安装完系统后再进行网络的配置或者更改现存的设置.众所周知,为了在命令行中进行网络设定的配置,我们首先必须知道系统中有多少个可用的网络接口.-- Sk 在我们安装完一个 Li ...

  8. linux uname命令参数及用法详解--linux查看系统信息命令

    uname 命令可用于大多数 UNIX 和类 UNIX 系统以及 Linux. 功能说明:uname用来获取电脑和操作系统的相关信息. 语 法:uname [-amnrsvpio][--help][- ...

  9. 如何查看linux系统的存储空间大小,linux 如何查看硬盘大小,存储空间大小等系统信息及硬件信息...

    一.linux CPU大小 [root@idc ~]# cat /proc/cpuinfo |grep "model name" && cat /proc/cpui ...

最新文章

  1. 《Servlet和JSP学习指南》一第2章 Session管理 2.1 网址重写
  2. linux sublime3 插件安装插件,手动安装sublimeText3插件
  3. Zookeeper--Watcher机制源码剖析二
  4. 人脸认证源码faceIdentify
  5. 深度学习03-CNN 应用
  6. 如何在Chrome浏览器中创建账户?
  7. Python使用超高效算法查找所有类似123-45-67+89=100的组合
  8. (day 19 - 动态规划)剑指 Offer 42. 连续子数组的最大和
  9. qq机器人升级最新教程
  10. 计算机省vb二级试题,湖南省计算机二级考试VB试题
  11. 搜索留痕技术工具-免费搜索留痕外链工具发布
  12. 下载webStorm,nodejs,git并简单配置,为JavaScript做准备
  13. 第十五周项目二----用哈希法组织关键字之链地址法
  14. java版溺尸刷怪塔_minecraft河流群系溺尸刷怪塔存档
  15. 广电网络电视怎么服务器连接中断,怎么解决广电网络看电视卡
  16. 3d游戏成套模型素材网站合集看过来
  17. 【GameMaker】加速Runtime下载
  18. python用turtle画一个旋转的风车
  19. 数学之美2 - 概率篇
  20. 华为公司的管理者培养路径图

热门文章

  1. 洛谷P2168 荷马史诗
  2. 2020瑞云渲染微光时刻,感恩有您
  3. lakeshore导出html,Lakeshore游戏创作工具新手图文使用教程
  4. 关于Hadoop下载慢的解决办法
  5. TencentTbs腾讯浏览服务 x5内核使用
  6. 网易智企首发:万字讲透元宇宙前世、今生与未来
  7. python通信工程书籍_年末,等来了这几本重磅新书:深度学习、Python、机器学习......
  8. ruoyi--主子表提交(新增行)--select选项动态绑定问题
  9. 设计的意义:交互的体验界面
  10. 利用脚本监控打印机的墨粉适用状况