linux-kernel – 从压缩的内核映像中获取uname信息

有没有一种很好的方法从压缩内核映像中提取uname所做的相同信息?我希望能够在嵌入式 Linux系统上检查坐在休眠mtd中的内核的狗标签,并将其与当前运行的内核进行比较.

解决方法

对于使用gzip压缩的Linux映像,请使用:
dd if=arch/arm/boot/zImage bs=1 skip=$(LC_ALL=C grep -a -b -o $'\x1f\x8b\x08\x00\x00\x00\x00\x00' arch/arm/boot/zImage | cut -d ':' -f 1) | zcat | grep -a 'Linux version'

对于使用xz压缩的Linux映像,请使用:

dd if=arch/arm/boot/zImage bs=1 skip=$(LC_ALL=C grep -a -b -o $'\xFD\x37\x7A\x58\x5A\x00' arch/arm/boot/zImage | head -n 1 | cut -d ':' -f 1) | xzcat | grep -a 'Linux version'

由于图像文件包含压缩流结束后的数据,因此您将收到可忽略的错误.

字符串常量似乎是冻结的用户空间可见内核API的一部分:

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob;f=init/version.c;hb=HEAD#l40

相关文章

文章浏览阅读1.8k次,点赞63次,收藏54次。Linux下的目录权限...
文章浏览阅读1.6k次,点赞44次,收藏38次。关于Qt的安装、Wi...
本文介绍了使用shell脚本编写一个 Hello
文章浏览阅读1.5k次,点赞37次,收藏43次。【Linux】初识Lin...
文章浏览阅读3k次,点赞34次,收藏156次。Linux超详细笔记,...
文章浏览阅读6.8k次,点赞109次,收藏114次。【Linux】 Open...