{"id":300,"date":"2023-03-26T19:03:15","date_gmt":"2023-03-26T11:03:15","guid":{"rendered":"https:\/\/vm1.go2see.me\/?p=300"},"modified":"2023-03-31T13:44:10","modified_gmt":"2023-03-31T05:44:10","slug":"wsl2%e9%96%8b%e7%99%bc%e7%92%b0%e5%a2%83%e5%85%a8%e8%a8%98%e9%8c%841","status":"publish","type":"post","link":"https:\/\/vm1.go2see.me\/?p=300","title":{"rendered":"WSL2\u958b\u767c\u74b0\u5883\u5168\u8a18\u9304(1) \u524d\u8a00"},"content":{"rendered":"<h1>1 \u524d\u8a00<\/h1>\n<h2>1.1 WSL2 \u4e4b\u524d\u9047\u5230\u7684\u5751<\/h2>\n<p>\u200b   \u76ee\u524d\u4ecd\u7136\u6709\u8a31\u591a\u5d4c\u5165\u5f0f\u958b\u767c\u74b0\u5883\u4e0d\u9069\u7528\u65bcArm Host\uff0c\u5728\u8003\u616e\u66f4\u63db\u96fb\u8166\u6642\uff0c\u4fdd\u5b88\u7684\u9078\u64c7\u63db\u56de Windows\/x86\u7cfb\u7d71\u3002\u6240\u9078\u7684\u4e3b\u6a5f\u81ea\u5e36\u7684OS\u662f Windows11 Home\uff0c\u7576\u9700\u8981Linux\u7684\u958b\u767c\u74b0\u5883\u6642\uff0c\u9078\u64c7\u6709WS\u3001VirtualBox\uff08\u6216 VMWare\uff09\u3001HyperV\u3001Multipass\u3001\u6216\u76f4\u63a5Boot\u6210\u539f\u751fLinux \u3002\u5728\u505a\u904e\u5404\u7a2e\u5617\u8a66\uff0c\u8e29\u904e\u591a\u500b\u5751\u5f8c\uff0c\u9084\u662f\u5148\u9078\u64c7WSL\u3002\u8fd1\u65e5\u5fae\u8edf WSLg \u7684\u91cb\u51fa\uff0c\u4ee5\u53ca\u6709 usbip\u5de5\u5177\u53ef\u5c07 USB\u88dd\u7f6epass\u7d66WSL\u4f7f\u7528\uff0c\u5be6\u9a57\u4e0a\u767c\u73fe\u76ee\u524d\u53ef\u4ee5\u70ba\u5d4c\u5165\u5f0f\u7cfb\u7d71\u7684Linux Host\u63d0\u4f9b\u89e3\u6c7a\u65b9\u6848\u3002<\/p>\n<p>\u4ee5\u4e0b\u662f\u5be6\u9a57\u5931\u6557\u6216\u4e0d\u597d\u7528\u7684Linux\u5b89\u88dd\u65b9\u5f0f\uff0c\u66ab\u6642\u907f\u5751\uff1a<\/p>\n<ol>\n<li>Multipass\uff1a\u96d6\u7136Windows Home \u80fd\u6210\u529f\u5b89\u88dd Hyper-V\uff0c\u4f46Multipass\u5728 Home\u7248\u672c\u4ecd\u7136\u4e0d\u80fd\u4f7f\u7528 Hyper-V\u6a21\u5f0f\uff0c\u53ea\u80fd\u7528 Virtualbox\u6a21\u5f0f\uff0c\u6027\u80fd\u4e0d\u5f70\u3002<\/li>\n<li>Hyprer-V\u3001VirtualBox\u3001VMWare\uff1a\u4e0d\u80fd\u91cb\u653e\u6240\u6709CPU\u7d66Linux\u7cfb\u7d71\uff0cIO\u548c\u7db2\u8def\u6548\u679c\u76f8\u5c0dWSL2\u4e5f\u4e0d\u4f73\u3002<\/li>\n<li>\u5b89\u88dd\u539f\u751fUbuntu 20.04\uff1aASUS N7601 \u7684 Ubuntu \u7a69\u5b9a\u5ea6\u6709\u554f\u984c\uff0c\u8072\u5361\u6709\u554f\u984c\uff0c\u6703\u9ed1\u5c4f\uff0c\u7121\u6cd5\u7e7c\u7e8c\u3002\u64da\u8aacUEFI\u95dc\u9589ACPI\u53ef\u89e3\u6c7a\uff0c22.10 \u597d\u4e9b&#8230;.\u4f46\u5690\u8a66\u5e7e\u5929\u5f8c\u6211\u4e0d\u60f3\u7e7c\u7e8c\u8017\u4e0b\u53bb\u4e86\u3002\u6216\u8a31\u7b49\u672a\u4f86\u7684 Ubuntu \u7248\u672c\u5427.<\/li>\n<\/ol>\n<h3>1.2 WSL2\u7684\u5d4c\u5165\u5f0f\u958b\u767c\u74b0\u5883\u5be6\u8e10\uff1a<\/h3>\n<ol>\n<li>Windows \u9700\u8981\u6253\u958b\u865b\u64ec\u5316\u548cWSL\u529f\u80fd\u624d\u80fd\u5b89\u88ddWSL\u3002<\/li>\n<li>\u5728\u958b\u767c\u5927\u9805\u76ee(\u5982AGL)\u6642\uff0cWSL\u9700\u8981\u64f4\u5145\u865b\u64ec\u786c\u789f\u7a7a\u9593\uff08\u8d85\u904e250G\uff09\u548cRAM\u7a7a\u9593\uff08\u6211\u8a2d\u5b9a\u5230 24G\uff09\uff0c\u624d\u80fd\u6bd4\u8f03\u9806\u5229\u7684\u958b\u767c\u3002<br \/>\nAGL\u8981\u6c42\u7684\u958b\u767c\u74b0\u5883\uff0cubuntu\u9700\u8981\u505c\u7559\u5728 20.04LTS\uff0c22.04\u6703\u6709\u554f\u984c\u3002<\/li>\n<li>(Embedded)\u8981\u5b89\u88dd usbip\uff0c\u4ee5\u5c07USB share\u7d66WSL\uff0c\u9019\u6a23WSL\u5c31\u53ef\u76f4\u63a5\u4f7f\u7528 UART\u3001JLink\u3001Stlink\u63a7\u5236\u5d4c\u5165\u5f0f\u958b\u767c\u677f\u3002<br \/>\nshare\u7684\u904e\u7a0b\u9700\u8981\u7528\u7ba1\u7406\u54e1\u6a21\u5f0f\u7684 Powershell\uff0c\u6211\u662f\u628aWindows Terminal \u7684Powershell\u8a2d\u5b9a\u70ba\u9810\u8a2d\u4ee5\u7ba1\u7406\u54e1\u6253\u958b\uff0c\u9019\u6a23\u5c31\u80fd\u5bb9\u6613\u7684\u7ba1\u7406 WSL\uff0c\u5e76\u80fd\u8f15\u9b06\u7684\u6253\u958b\u591a\u500b Linux Shell\u3002<\/li>\n<\/ol>\n<h3>1.3 WSL2 \u5716\u5f62\u5316\u4ecb\u9762\u8207\u61c9\u7528<\/h3>\n<p>WSL \u53ef\u4ee5\u76f4\u63a5\u547c\u53eb\u5bbf\u4e3b\u6a5f\u7684\u61c9\u7528\u7a0b\u5f0f\u5354\u52a9\u5de5\u4f5c(\u6216\u9700\u8981\u6307\u5b9a\u76ee\u9304)\u3002<\/p>\n<p>\u6b64\u5916\uff0c\u65b0\u7684<strong>WSLg<\/strong>\u53ef\u4ee5\u8b93\u6211\u5011\u7528 Linux\u7684GUI\u958b\u767c\u5de5\u5177\u9032\u884c\u958b\u767c\u3002WSLg \u5176\u5be6\u662f\u900f\u904e RDP \u5c0e\u5411 GUI\u3002\u7576WSL\u4e2d\u6709\u8f38\u5165\u6cd5\u9700\u6c42\uff0c\u5247\u9700\u8981\u5728WSL\u4e2d\u5b89\u88dd\u672c\u5730\u7684\u8f38\u5165\u6cd5\u3002\u3002\u3002<\/p>\n<ol>\n<li>WSLg\u7684\u5716\u5f62\u5de5\u5177\u53ef\u4ee5\u878d\u5408\uff0c\u4f46\u591a\u570b\u8a9e\u8a00\u7684\u986f\u793a\u9700\u8981\u8a2d\u5b9a\uff0c\u4e2d\u6587\u8f38\u5165\u6703\u9700\u8981\u5b89\u88dd\u3002<br \/>\n\u6211\u76ee\u524d\u53ef\u4ee5\u7528fcitx\u670d\u52d9\u8f38\u5165\uff0c\u7528ibus\u670d\u52d9\u76ee\u524d\u672a\u6210\u529f\u3002<\/li>\n<li>Linux\u4e0b\u7684Chrome\u3001gedit\u3001VSCode\u7b49\u5de5\u5177\u5b89\u88dd\u3002<br \/>\n\u9700\u8981\u7684\u8a71\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528Linux\u7684GUI\u5de5\u5177\uff0c\u4e0d\u5fc5\u900f\u904eWindows\u5de5\u5177\u3002<\/li>\n<\/ol>\n<h3>1.4 WSL2 \u8207\u5404\u7a2e\u5d4c\u5165\u5f0f\u7cfb\u7d71\u958b\u767c\u74b0\u5883SDK\u7684\u76f8\u5bb9\u6027\uff1a<\/h3>\n<p>\u5d4c\u5165\u5f0f\u958b\u767c\u9700\u8981\u9023\u63a5\u958b\u767c\u677f\uff0c \u76ee\u524d\u5927\u90fd\u662f\u900f\u904eUSB\u9023\u63a5 Serial Port\u3001Debugger\u3001Programmer\u3001Mass Storage Class Device\u3002WSL Kernel \u652f\u6301\u4f7f\u7528 usbipd \u5c07 USB \u8f49\u63a5\u5230 WSL \u5b50\u7cfb\u7d71\u4e2d\uff0c\u90e8\u5206\u529f\u80fd\uff08\u5982 Mass Storage Class\uff09\u9700\u8981\u91cd\u65b0\u7de8\u8b6fKernel\u3002<\/p>\n<ol>\n<li>VSCode\uff1a VSCode \u652f\u6301\u9060\u7aef\u958b\u767c\uff0c\u53ef\u4ee5\u5728\u5bbf\u4e3b\u6a5f\u548c\u5b50\u7cfb\u7d71\u4e0a\u5b89\u88dd\u63d2\u4ef6\u5354\u540c\u5b8c\u6210\u958b\u767c\u5de5\u4f5c\u3002<\/p>\n<\/li>\n<li>\n<p>AGL\uff1a\u4e00\u5b9a\u8981\u5728 Linux\uff0c\u5efa\u8b70 Ubuntu 20.04\u3002<br \/>\n<span class=\"text-highlighted-inline\" style=\"background-color: #fffd38;\">> WSL2 \u53ef\u5de5\u4f5c\uff0c\u4f46\u7de8\u8b6f\u6642 RAM \u9700\u6c42\u8981\u6ce8\u610f\u3002\u958b 24GB \u4f3c\u4e4e\u53ef\u5de5\u4f5c\u4e86\u3002\u9700\u8981\u6642\u8a2d\u5b9a WSL \u7684 SWAP\u3002<\/span><\/p>\n<\/li>\n<li>\n<p>Zephyr\/Arduino\uff1a\u53ef\u5728 Windows\u4e0b\u958b\u767c\u3002\u5b98\u65b9\u4e0d\u5efa\u8b70\u7528 WSL\uff0c\u56e0\u7232 USB\u9023\u4e0d\u4e0a\u3002\u4f46\u76ee\u524d\u91c7\u7528 usbipd \u5de5\u4f5c\u826f\u597d\u3002<\/p>\n<p><span class=\"text-highlighted-inline\" style=\"background-color: #fffd38;\">> \u7528WSL+ usbipd \u4f86\u958b\u767c\uff0c\u53ef\u4ee5\u76f4\u63a5\u9023\uff0c\u53ef\u4ee5\u9023\u63a5 DFU\u3002<\/span><\/p>\n<\/li>\n<li>\n<p>microPython\uff1a\u53ef\u5728Windows\u4e0b\u958b\u767c\u3002WSL \u4e0b\uff1a<\/p>\n<p><span class=\"text-highlighted-inline\" style=\"background-color: #fffd38;\">> \u7528WSL2+ usbipd \u4f86\u958b\u767c\uff0c\u53ef\u4ee5\u9023\u63a5 DFU\u3002<\/span><\/p>\n<p><span class=\"text-highlighted-inline\" style=\"background-color: #fffd38;\">> \u9023\u63a5 pyboard \u9700\u8981\u8b93 WSL2 \u652f\u6301 USB MSC\uff0c\u624d\u80fd\u7528\u6a94\u6848\u7cfb\u7d71\u5feb\u901f\u7684\u66f4\u65b0\u677f\u4e0a\u8cc7\u6599\u3002MSC\u529f\u80fd\u9700\u8981\u91cd\u65b0\u7de8\u8b6f WSL \u6838\u5fc3\u3002<\/span><\/p>\n<\/li>\n<\/ol>\n<h3>1.5 WSL2 \u8207 Windows \u5bbf\u4e3b\u7684\u6a94\u6848\u7cfb\u7d71<\/h3>\n<ul>\n<li>\n<p>\u5bbf\u4e3b\u7684\u6a94\u6848\u7cfb\u7d71 mount \u5728 <code>\/mnt\/<\/code> \u4e0b\u3002\u5982 <code>\/mnt\/c<\/code> \u662f Windows\u7684 C \u78c1\u789f\uff0c\u4e0d\u904e\u5b58\u53d6\u6027\u80fd\u8f03\u5dee\u3002<\/p>\n<\/li>\n<li>\n<p>WSL2 \u6a94\u6848\u7cfb\u7d71\u5728 Windows\u4e0b\u6703\u88ab\u770b\u6210 \u7db2\u8def\u78c1\u789f\u6a5f\uff0c\u5982  <code>\\\\wsl.loalhost\\Ubuntu-20.04<\/code> \u662f Ubuntu-20.04 \u5b50\u7cfb\u7d71\u7684\u6a94\u6848\u7cfb\u7d71\u6839\u76ee\u9304\u3002\u9700\u8981\u7684\u8a71\u53ef\u4ee5\u9023\u63a5\u6210\u7db2\u8def\u78c1\u789f\u6a5f\u8b93Windows\u5b58\u53d6\u5185\u5bb9\u3002<\/p>\n<\/li>\n<\/ul>\n<h3>1.6 WSL2 \u6027\u80fd\u640d\u8017\u8207\u5c0d\u7b56<\/h3>\n<blockquote>\n<p><strong>\u53c3\u8003 https:\/\/www.zhihu.com\/question\/447007394 \u6578\u64da<\/strong> :<\/p>\n<p>  \u5728\u5341\u4e07\u4e2a\u6587\u4ef6\u89c4\u6a21\u7684 git repo \u4e0b\u6267\u884c <code>git status<\/code> \uff0c\u80fd\u5361\u51e0\u5206\u949f\uff08\u4f7f\u7528\u4e3b\u6a5f\u6587\u4ef6\u7cfb\u7d71\uff09\uff0c<a class=\"wp-editor-md-post-content-link\" href=\"https:\/\/www.zhihu.com\/search?q=virtiofs&amp;search_source=Entity&amp;hybrid_search_source=Entity&amp;hybrid_search_extra={&quot;sourceType&quot;%3A&quot;answer&quot;%2C&quot;sourceId&quot;%3A1757342575}\">virtiofs<\/a> \u548c WSL 1 \u90fd\u53ea\u8981 3 \u79d2\u5de6\u53f3\uff1b\u4f5c\u4e3a\u53c2\u8003\uff0cguest \u539f\u751f\u6587\u4ef6\u7cfb\u7edf\u7ea6 0.3 \u79d2\n<\/p><\/blockquote>\n<p>WSL2 \u7684CPU\u6027\u80fd\u640d\u8017\u8207\u4e3b\u6d41\u7684\u865b\u64ec\u5316\u6280\u8853\u76f8\u4f3c\uff0c\u7d04\u7232 2%\uff0c\u5f88\u4e0d\u932f\u4e86\u3002\u4f46IO\u6027\u80fd\u5dee\u8ddd\u6703\u8f03\u5927\uff0c\u5be6\u6e2c\u5c0d\u4e3b\u6a5f\u7684\u6587\u4ef6\u7cfb\u7d71\u5b58\u53d6\u6703\u975e\u5e38\u6162\uff08\u985e\u4f3c\u7db2\u8def\u78c1\u789f\u6a5f\uff09\uff0c\u5728\u5c0d virtio \u865b\u64ec\u78c1\u789f\u6a5f\u5b58\u53d6\u901f\u5ea6\u8f03\u597d\uff0c\u6027\u80fd\u7d04\u7232\u539f\u751f\u6587\u4ef6\u7cfb\u7d71\u7684 1\/10\u3002<\/p>\n<p>\u6240\u4ee5\u5728\u5927\u578b\u958b\u767c\u9805\u76ee\u4e0a\uff0c\u4e0d\u8981\u628a\u9805\u76ee\u6587\u4ef6\u76f4\u63a5\u653e\u5230\u4e3b\u6a5f\u6587\u4ef6\u7cfb\u7d71\u4e2d\u3002\u5c0dIO\u6027\u80fd\u8981\u6c42\u9ad8\u6642\uff0c\u53ef\u4ee5\u8003\u616e\u7d66\u865b\u64ec\u6a5f\u5be6\u9ad4\u7684SSD\u5206\u5340\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>1 \u524d\u8a00 1.1 WSL2 \u4e4b\u524d\u9047\u5230\u7684\u5751 \u200b \u76ee\u524d\u4ecd\u7136\u6709\u8a31\u591a\u5d4c\u5165\u5f0f\u958b\u767c\u74b0\u5883\u4e0d\u9069\u7528\u65bcArm Host\uff0c\u5728\u8003\u616e\u66f4\u63db&#8230; &raquo; <a class=\"read-more-link\" href=\"https:\/\/vm1.go2see.me\/?p=300\">\u95b1\u8b80\u5168\u6587<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10,13],"tags":[],"class_list":["post-300","post","type-post","status-publish","format-standard","hentry","category-embedded","category-wsl"],"_links":{"self":[{"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=\/wp\/v2\/posts\/300","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=300"}],"version-history":[{"count":7,"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=\/wp\/v2\/posts\/300\/revisions"}],"predecessor-version":[{"id":349,"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=\/wp\/v2\/posts\/300\/revisions\/349"}],"wp:attachment":[{"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=300"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=300"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=300"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}