В WSL 2 нет /lib/modules/

Использование Vim:

vim +'g/^/exe "norm! 3Wf=5\"' +wq file

Первый аргумент+запускает ряд операций в обычном режиме для каждой строки, увеличивая число в 5 раз. Он использует команду:globalдля запуска этого в каждой строке. Простое использование:normalс диапазоном %normбыло бы проще, если бы мы не использовалиCTRLAдля увеличения числа, а чтобы (легко )передаем этот управляющий символ в Vim, мы создаем команду в виде строки для запуска с :execute, поэтому нам нужен :global.

Второй аргумент + просто сохраняет файл .

Если формат RANDOM TEXT менее регулярен (или если вы просто предпочитаете регулярные выражения ), вместо этого вы можете использовать команду:substitute:

vim +'%s/num2=\zs\d\+/\=submatch(0) + 5' +wq file

При этом используется команда :substituteдля замены части Nв num2=Nсуществующим значением плюс пять.

3
23.06.2020, 01:59
2 ответа

WLS2 не имеет ядра Linux.

there are no kernel headers for WSL's "kernel" (actually a Windows driver)

Источник

Возможно, вам удастся обойтись без компиляции, установив другое ядро ​​

# If asked to install grub, you can simply skip using Esc
sudo update && sudo apt install linux-generic -y


ls /lib/modules
5.7.2-arch1-1

Возможно, у вас будет другой вывод, но у вас должны быть установлены заголовки ядра. Вы можете изменить свою исходную команду, используя все, что вы получите вlib/modules

make -C /lib/modules/<kernel source from previous step>/build M=$(PWD) modules
2
18.03.2021, 23:25

Подсистема Windows для Linux версии 2 использует специальное ядро ​​Linux от Microsoft, которое содержит все скомпилированные драйверы. Хотя оно поддерживает модули, оно не содержит их, как видно из конфигурации . файл . Таким образом, нет причин для отправки каталога /lib/modules.

Кроме того, большинство дистрибутивов Linux, доступных для WSL, вообще не поставляют свои версии WSL с ядром. Поскольку Microsoft поставляет свои собственные продукты, для этого нет причин. Эти дистрибутивы Linux не поставляют сборочные пакеты для ядра Microsoft, потому что они не несут за него ответственности; Microsoft есть, и вам нужно поговорить с ними о пакетах.

Возможно, вы сможете загрузить модули в ядро, если будете использовать стандартные инструменты, но вам, скорее всего, потребуется выполнить сборку с соответствующим деревом исходных текстов. Вы можете либо попытаться найти подходящую версию в репозитории GitHub, на который я ссылался выше, либо вам может потребоваться связаться с Microsoft и запросить исходный код под GPLv2, который они обязаны предоставить вам по запросу.

Замечу, что WSL не предназначен для загрузки пользовательских модулей ядра; он не предназначен для использования в качестве полноценной среды Linux, а скорее для того, чтобы позволить людям разрабатывать и запускать стандартные приложения Linux в Windows. Если вы хотите заняться разработкой ядра Linux, вам, вероятно, потребуется полная установка Linux.

9
18.03.2021, 23:25

Теги

Похожие вопросы