crash-utility / crash

Linux kernel crash utility
https://crash-utility.github.io
788 stars 266 forks source link

Unable to load compressed module *.ko.zst file using mod command #179

Open youzhongyang opened 2 months ago

youzhongyang commented 2 months ago

On Ubuntu 24.04, the .ko drivers are delivered as compressed zst files. The mod command in crash utility can't load the compressed driver file. Once decompressed, it works, but it's very inconvenient if I have to decompress manually.

It would be nice if the mod command can automatically decompress the file and try to load it.

crash> !find /usr/lib/debug/ -name overlay.ko.zst
/usr/lib/debug/lib/modules/6.8.0-31-lowlatency/kernel/fs/overlayfs/overlay.ko.zst

crash> mod -s overlay
mod: cannot find or load object file for overlay module

crash> mod -s overlay /usr/lib/debug/lib/modules/6.8.0-31-lowlatency/kernel/fs/overlayfs/overlay.ko.zst
mod: /usr/lib/debug/lib/modules/6.8.0-31-lowlatency/kernel/fs/overlayfs/overlay.ko.zst: not an ELF format object file
Usage:
  mod -s module [objfile] | -d module | -S [directory] [-D|-t|-r|-R|-o|-g]
Enter "help mod" for details.

crash> !zstd -d /usr/lib/debug/lib/modules/6.8.0-31-lowlatency/kernel/fs/overlayfs/overlay.ko.zst
/usr/lib/debug/lib/modules/6.8.0-31-lowlatency/kernel/fs/overlayfs/overlay.ko.zst: 3820609 bytes

crash> mod -s overlay
     MODULE       NAME                     TEXT_BASE         SIZE  OBJECT FILE
ffffffffc2327040  overlay               ffffffffc2307000   212992  /usr/lib/debug/lib/modules/6.8.0-31-lowlatency/kernel/fs/overlayfs/overlay.ko