美文网首页
RockPI 4A 查看Linux内核映像编译信息

RockPI 4A 查看Linux内核映像编译信息

作者: 小田BSP | 来源:发表于2021-02-01 23:15 被阅读0次

    在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
    

    相关文章

      网友评论

          本文标题:RockPI 4A 查看Linux内核映像编译信息

          本文链接:https://www.haomeiwen.com/subject/qxhetltx.html