Запуск Linux на Windows помощью WSL |
![]() |
Добавил(а) microsin | ||
Установленная платформа виртуальной машины WSL это по сути система утилит Linux поверх Windows 10, которая в некоторых случаях может быть очень полезным инструментом. Например, для кросс-компиляции исходного кода микроконтроллеров. Ниже на примере это будет показано для компиляции примера кода из репозитория Bouffalo SDK [2]. Процесс установки WSL по шагам: 1. Откройте PowerShell или командную строку с правами администратора. Для этого в Windows 10 нажмите комбинацию клавиш Win+X, и в появившемся меню выберите Windows PowerShell (администратор). 2. Введите команду wsl --install и нажмите Enter. Начнется процесс установки,
После окончания установки появится соответствующее сообщение. После этого нужно перезагрузить Windows 10. 3. После перезагрузки установка продолжится, и в результате мы получим командную строку Ubuntu. 4. Команда wsl --list --online покажет список доступных дистрибутивов для установки: PS C:\WINDOWS\system32> wsl --list --online
Ниже приведен список допустимых распределений, которые можно установить.
Установите с помощью команды wsl --install -d < Distro>.
NAME FRIENDLY NAME
Ubuntu Ubuntu
Debian Debian GNU/Linux
kali-linux Kali Linux Rolling
openSUSE-42 openSUSE Leap 42
SLES-12 SUSE Linux Enterprise Server v12
Ubuntu-16.04 Ubuntu 16.04 LTS
Ubuntu-18.04 Ubuntu 18.04 LTS
Ubuntu-20.04 Ubuntu 20.04 LTS
PS C:\WINDOWS\system32>
Вот так, например, можно установить Ubuntu 20.04: PS C:\WINDOWS\system32> wsl --install -d Ubuntu-20.04
Приятно то, что после установки виртуальной машины вы можете легко и непринужденно переходить в командной строке из одной системы в другую: C:\Users\andrey>bash
microsin@DESKTOP-D8E867R:/mnt/c/Users/andrey$ pwd
/mnt/c/Users/andrey
microsin@DESKTOP-D8E867R:/mnt/c/Users/andrey$ exit
logout
C:\Users\andrey>
Если в системе не включена поддержка Hyper-V, то при попытке запуска Linux на виртуальной машине WSL возникнет ошибка: Installing, this may take a few minutes...
WslRegisterDistribution failed with error: 0x80370102
Error: 0x80370102 ?? ??????? ????????? ??????????? ??????, ????????? ??????????? ??????? ?? ???????????.
Press any key to continue...
Для исправления этой ситуации выполните следующие шаги (процедура описана в [3]): 1. Войдите в BIOS, в меню Advanced найдите опцию "Intel Virtualization Technology", и переведите её в состояние "Enabled" (разрешено). Перезапустите систему, и снова попробуйте запустить выбранный дистрибутив командой в PowerShell с правами администратора: PS C:\WINDOWS\system32> wsl --install -d Ubuntu-20.04
Если и на этот раз система не запустится, выполните следующий шаг. 2. Нажмите Win+R, в появившейся строке введите optionalfeatures и нажмите Enter. Найдите раздел настроек Hyper-V, и поставьте там все галочки. [Монтирование дисков Windows в среду Linux WSL] Доступ к дискам Windows возможен через каталог /mnt, там находятся имена локальных дисков. Вывод команды ls /mnt покажет буквы локальных дисков. Например, следующий вывод соответствует дискам C:, M: и P: $ ls /mnt
c m p wsl
Монтировать и демонтировать диски можно командами mount и umount [5]. Вот так, к примеру, можно смонтировать папку C:\Bouffalo в папку ~/Bouffalo: $ sudo mount -t drvfs M:/Bouffalo/ Bouffalo
Демонтирование этой папки: $ sudo umount ~/Bouffalo
[Как перезапустить WSL] Запустите командную строку Powershell с правами администратора. Для этого нажмите Win+X и выберите в меню Windows PowerShell (администратор). Введите в Power Shell команду wsl --shutdown и нажмите Enter, WSL завершится. > wsl --shutdown Для повторного запуска WSL введите команду: > wsl [Как определить, где находится файловая система WSL Linux?] Место расположения папки, где находится файловая система система виртуальной машины Linux, зависит от версии Windows и используемого дистрибутива WSL. • Ранние версии WSL сохраняли файловую систему Linux в каталоге %LOCALAPPDATA%\Lxss\rootfs. • Дистрибутивы WSL, установленные из Windows Store, начиная с Windows Build 16215 (середина 2017 года), используют папку наподобие %LOCALAPPDATA%\Packages\{имяпакета}\LocalState\rootfs. Здесь имяпакета может меняться, в зависимости от установленного дистрибутива виртуальной машины (т. е. выбранной версии Ubuntu или Debian). Для Ubuntu это может быть имя наподобие CanonicalGroupLimited.UbuntuonWindows_{случайнаястрока}, например полный путь до моей установленной машины Ubuntu-20.04 получился такой: %LOCALAPPDATA%\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState\rootfs • Дистрибутивы Linux, установленные другими утилитами, такими как lxRunOffline или WSL-DistroLauncher, могут сохранять файловую систему Linux в любое место. В этом случае попробуйте найти путь с помощью этих утилит [6]. [Компиляция примера кода из Bouffalo SDK] Все последующие шаги мы будем делать в запущенной WSL виртуальной машине Ubuntu-20.04. 1. Закачайте SDK следующей командой: $ git clone https://github.com/bouffalolab/bl_iot_sdk.git
Репозиторий большой, порядка 2 гигабайт, и на закачку понадобится некоторое время. После завершения закачки в домашнем каталоге появится папка bl_iot_sdk, где содержится SDK [2]. 2. Установите make командой: $ sudo apt install make
3. Перейдите в каталог проекта bl602_demo_wifi, и запустите скрипт genromap: $ cd bl_iot_sdk/customer_app/bl602_demo_wifi/
$ ./genromap
Проект скомпилируется, и в каталоге ./build_out появится файл программы bl602_demo_wifi.bin. Его прошить можно через UART микроконтроллера BL602 утилитой bflb_iot_tool. Как это делается, см. [4]. [Ссылки] 1. Установка Linux на Windows с помощью WSL site:microsoft.com. |