The Crostini VM kernel is built from the ChromeOS kernel source tree,
rather than a Debian kernel, so using $(uname -r) will not find a
corresponding Debian linux-headers package. If you have software that
requires Linux headers to build, you can try installing a
linux-headers package with a similar version, but software that
requires kernel headers to build is likely not going to work as
described below.
The Crostini VM environment (aka termina) is currently using Linux
5.10, and it uses a kernel configuration from here:
https://source.chromium.org/chromiumos/chromiumos/codesearch/+/main:src/third_party/kernel/v5.10/chromeos/config/termina/
(You can find the whole kernel source tree in the parent v5.10
directory.)
This has recently been reorganized to use the splitconfig
infrastructure, so the final configuration is derived from a default
set of configuration options combined with the termina base.config
plus the architecture-specific configs. You can extract the actual
running configuration using `zcat /proc/config.gz` within Crostini.
As Dmitry mentioned, the termina kernel is built without module
support (CONFIG_MODULES=n), so all necessary drivers are built in, and
there are no modules associated with this kernel. Therefore the
/lib/modules directory does not need to exist.
This also means you cannot build or install custom kernel modules for
the Crostini kernel:
https://chromium.googlesource.com/chromiumos/docs/+/HEAD/containers_and_vms.md#Can-I-install-custom-kernel-modules
If you have a Chromium OS development environment
(
https://chromium.googlesource.com/chromiumos/docs/+/main/developer_guide.md),
you can modify and build Crostini yourself and deploy it on a
developer-mode Chromebook
(
https://chromium.googlesource.com/chromiumos/docs/+/HEAD/crostini_developer_guide.md),
although this is probably not what you are looking for exactly.
Thanks,
-- Daniel