Короткий ответ
Вероятно, вы используете WSL1. lsmod
требует WSL2.
Объяснение
Начните с wsl -l -v
(из PowerShell или CMD), чтобы подтвердить версию WSL. Вы, вероятно, увидите что-то вроде:
НАИМЕНОВАНИЕ СОСТОЯНИЕ ВЕРСИЯ
* Убунту работает 1
Одно из основных различий между WSL1 и WSL2:
- WSL1 — это «уровень перевода», который пытается преобразовать системные вызовы Linux в API ядра Windows.
- WSL2 — это «виртуализированная» среда, работающая под настоящим ядром Linux.
Так, например, когда лс
Команда получает список файлов:
- В WSL1 Windows предоставляет этот список файлов, используя Windows API для получения файлов в корневой файловой системе WSL.
- В WSL2 ядро Linux использует файловую систему ext4 на виртуальном диске для получения списка файлов. Для файлов на дисках Windows (например,
/мнк/с
), он использует сетевой протокол 9P для получения файлов.
Удивительно, как много WSL1 может сделать с учетом этого. Но там находятся ограничения. lsmod
является одним из них. Хотя WSL1 предоставляет определенные /прок
сопоставление (например, процессов), концепция «модулей ядра» не имеет особого смысла для сопоставления Windows.
Можно было бы перечислить драйверы Windows, но на самом деле это не принесет никакой пользы.
Преобразовать в WSL2
Предполагая, что у вас уже есть WSL2 включено в Windows вы можете преобразовать свой экземпляр Ubuntu в WSL2, используя:
wsl --set-версия Ubuntu 2
Хотя эта команда довольно безопасна, я бы все же рекомендовал сначала создать резервную копию вашего экземпляра с помощью:
wsl --export Ubuntu backup.tar
Как и с начальным wsl
это команда Windows, поэтому ее нужно будет запускать из PowerShell или CMD.
Установка/включение WSL2
Если у вас не включен WSL2, вы можете сделать это, выполнив шаги 2–5 из этот документ.
Включение WSL2 делает нет обновить уже установленные экземпляры, поэтому вам все равно нужно будет выполнить шаг преобразования (wsl --set-версия
) выше.
Ограничения
Но обратите внимание, что ядро, поставляемое с WSL, уже имеет все доступные скомпилированные модули, поэтому результат lsmod
будет просто пустой список.
Ты может скомпилируйте собственное ядро с загружаемыми модулями, если хотите. Пожалуйста, смотрите Ядро WSL Linux Github и WSL-документ как загрузить WSL с вашим собственным ядром.
Но, надеюсь, это не потребуется для Netextender.