{"id":309,"date":"2023-03-26T20:36:12","date_gmt":"2023-03-26T12:36:12","guid":{"rendered":"https:\/\/vm1.go2see.me\/?p=309"},"modified":"2023-03-29T17:07:36","modified_gmt":"2023-03-29T09:07:36","slug":"wsl2%e9%96%8b%e7%99%bc%e7%92%b0%e5%a2%83%e5%85%a8%e8%a8%98%e9%8c%844","status":"publish","type":"post","link":"https:\/\/vm1.go2see.me\/?p=309","title":{"rendered":"WSL2\u958b\u767c\u74b0\u5883\u5168\u8a18\u9304(4) \u5d4c\u5165\u5f0f\u5de5\u7a0b-AGL\u7bc7"},"content":{"rendered":"<h1>4. WSL2 \u5d4c\u5165\u5f0f\u5de5\u7a0b-AGL\u7bc7<\/h1>\n<p>\u8eca\u898f\u7d1a Linux (Automotive Grade Linux) \u5728 2022 \u6700\u65b0release \u7684 branch \u662f needlefish\u3002\u4f46\u76ee\u524d \u5728\u6a39\u8393\u6d3e4 \u6211\u53ea\u7de8\u8b6f\u6210\u529f\u4e0a\u4e00\u7248\u7684 marlin \u7684 agl-demo-platform\u3002<\/p>\n<h2>4.1 <code>.bashrc<\/code> \u8a2d\u7f6e<\/h2>\n<p>\u6211\u5728 <code>.bashrc<\/code>  \u70ba AGL\u6dfb\u52a0\u4e86\uff1a<\/p>\n<pre><code class=\"language-sh line-numbers\">#==== AGL\nexport AGL_TOP=~\/AGL\n#export AGL_BRANCH=needlefish\nexport AGL_BRANCH=marlin\n#export AGL_BRANCH=master\n\nexport AGL_SDK=$AGL_TOP\/$AGL_BRANCH\n\nalias agl-create='mkdir -p $AGL_SDK;cd $AGL_SDK;repo init -b $AGL_BRANCH -u https\uff1a\/\/gerrit.automotivelinux.org\/gerrit\/AGL\/AGL-repo;repo sync'\n\nalias agl-qemu86='cd $AGL_TOP;source $AGL_SDK\/meta-agl\/scripts\/aglsetup.sh -f -m qemux86-64 -b build-${AGL_BRANCH}-x86 agl-demo agl-devel'\n\nalias agl-rpi4='cd $AGL_TOP;source $AGL_SDK\/meta-agl\/scripts\/aglsetup.sh -f -m raspberrypi4 -b build-${AGL_BRANCH}-rpi4 agl-demo'\n\nalias agl-rpi4-devel='cd $AGL_TOP; source $AGL_SDK\/meta-agl\/scripts\/aglsetup.sh -f -m raspberrypi4 -b build-${AGL_BRANCH}-rpi4 agl-demo agl-devel'\n#alias agl-rpi4-devel-all='cd $AGL_TOP; source $AGL_SDK\/meta-agl\/scripts\/aglsetup.sh -f -m raspberrypi4 -b build-${AGL_BRANCH}-rrpi4 agl-demo agl-devel agl-all-&gt;\nalias agl-rpi4-html5='cd $AGL_TOP; source $AGL_SDK\/meta-agl\/scripts\/aglsetup.sh -f -m raspberrypi4 -b build-${AGL_BRANCH}-rrpi4 agl-demo agl-devel agl-image-graphical-html5'\n\n\nalias agl-cache='mkdir -p ${AGL_SDK}-cache\/downloads;mkdir -p ${AGL_SDK}-cache\/sstate-cache;ln -s ${AGL_SDK}-cache\/downloads downloads; ln -s ${AGL_SDK}-cache\/sstate-cache sstate-cache'\nalias bb-demo='time bitbake agl-demo-platform'\nalias bb-html5='time bitbake agl-demo-platform-html5'\n\n# \u4e0b\u9762\u6307\u4ee4\u6dfb\u52a0 Yacto \u548c AGL\u7684\u6e90\u955c\u50cf\u670d\u52a1\nalias bb-addmirrors='sed -i \"s@#SSTATE_MIRRORS ?= \\\"f@SSTATE_MIRRORS ?= \\\"f@g\" conf\/local.conf ; sed -i \"s@#SSTATE_MIRRORS += \\\"f@SSTATE_MIRRORS += \\\"f@g\" conf\/local.conf'\n\n#alias bb-makelink='ln -s \/media\/psf\/AllFiles\/Volumes\/Work\/AGL\/sstate-cache sstate-cache;ln -s \/media\/psf\/AllFiles\/Volumes\/Work\/AGL\/downloads downloads'\n\n<\/code><\/pre>\n<h2>4.2 toolchain \u5b89\u88dd<\/h2>\n<pre><code class=\"language-sh line-numbers\"># AGL marlin \u6587\u6863\u53ea\u8bf4\u8981\uff1a\n# - git 1.8.3.1 \u4ee5\u4e0a\n# - tar 1.2.7 \u4ee5\u4e0a\n# - python 3.4 \u4ee5\u4e0a\n# - gcc5 \u4ee5\u4e0a\n# - curl \u52a0\u4e0a yacto \u7684\u9700\u6c42\n\n# yacto\u8bf4 ubuntu \u4e0b\u8981\u5b89\u88c5\uff08\u6211\u52a0\u4e0a curl\uff0c \u6bd4AGL\u8bf4\u7684\u591a\u4e86zstd\u7b49\u3002\u3002\u3002\uff09\uff1a\n# \uff08ubuntu22.04 \u4f7f\u7528 pylint \u5305\u66f4\u540d\/\u53d6\u4ee3 pylint3 \u5305\uff09\nsudo apt install gawk wget git diffstat unzip texinfo gcc build-essential chrpath socat cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint xterm python3-subunit mesa-common-dev zstd liblz4-tool curl -y\n\n# \u4f7f\u7528 python3 \u53d6\u4ee3\u7cfb\u7edf\u9884\u8bbe\u7684 python2\nmkdir -p ~\/bin\nln -s \/usr\/bin\/python3 ~\/bin\/python\n<\/code><\/pre>\n<h2>4.3 repo \u5b89\u88dd<\/h2>\n<pre><code class=\"language-sh line-numbers\">mkdir -p ~\/bin\nexport PATH=~\/bin\uff1a$PATH\ncurl https\uff1a\/\/storage.googleapis.com\/git-repo-downloads\/repo &gt; ~\/bin\/repo\nchmod a+x ~\/bin\/repo\n# \u8bbe\u5b9a\u7f3a\u7701\u7684 git \u7684\u7528\u6237\u8d26\u53f7\u90ae\u7bb1\u3002repo\u662f\u7528 git \u7ba1\u7406\/\u4e0b\u8f7d\u5de5\u7a0b\u7684\u3002\ngit config --global user.email \"cyue12@me.com\"\ngit config --global user.name \"cyue12\"\n\n<\/code><\/pre>\n<h2>4.4 \u57f7\u884c alias \u8a2d\u7f6e\u7684\u5de5\u7a0b\u8207 bitbake \u70d8\u7119 AGL<\/h2>\n<pre><code class=\"language-SH line-numbers\"># \u62c9\u53d6 repo \u5de5\u7a0b\uff08\u6839\u64da $AGL_TOP $AGL_BRANCH $AGL_SDK \uff0c\u5c07\u5de5\u7a0b\u62c9\u5230\u6307\u5b9a\u4f4d\u7f6e\uff09\nagl-create\n\n# \u5efa\u7acb\u6a39\u8393\u6d3e\u9700\u8981\u7684 build\u74b0\u5883\nagl-rpi4\n\n# \u628a download \u548c sstate \u76ee\u9304\u7368\u7acb\uff0c\u65b9\u4fbf\u5099\u4efd\u4e26\u7bc0\u7701\u4e0d\u540c\u8a2d\u7f6e\u4e0b\u7684\u4e0b\u8f09\u6642\u9593\nagl-cache\n\n# \u904b\u884c bitbake \u5efa\u7acb agl-demo-platform\nbb-demo\n<\/code><\/pre>\n<p>\u9664\u4e86\u5b98\u65b9\u7684 <code>AGL_TOP<\/code>\uff0c\u52a0\u4e0a\u4e86 <code>AGL_BRANCH<\/code> \u548c <code>AGL_SDK<\/code> \u5169\u500b\u8b8a\u6578\u3002<\/p>\n<p>\u6b64\u5916\uff0c\u6211\u7528 alias \u5efa\u7acb\u4e86\u5e7e\u500b\u5225\u540d\uff0c\u4f86\u7c21\u5316build\u5de5\u4f5c\uff0c\u6d41\u7a0b\u5982\u4e0b\uff1a<\/p>\n<ul>\n<li>agl-create \uff1a \u5f9e repo \u62c9\u51fa\u7576\u524d AGL_BRANCH \u7684 SDK  \uff08scripts\uff09\u3002<\/li>\n<li>agl-rpi4-devel \uff1a \u5efa\u7acb\u6a39\u8393\u6d3e demo + devel \u7684 build \u76ee\u9304\uff0c\u4e4b\u5f8c\u5c07\u5728\u6b64\u76ee\u9304build\u3002<\/li>\n<li>agl-cache\uff1a build\u76ee\u9304\u4e0b\u6307\u5411\u6211\u7684 cache\u4f4d\u7f6e\uff0c\u9019\u6a23\u4e0d\u540c\u7684\u5de5\u7a0b\u4e0d\u5fc5\u91cd\u8907\u4e0b\u8f09\u5df2\u4e0b\u8f09\u7684 sourcecode\u3002<\/li>\n<li>bb-demo\uff1a \u7528 bitbake \u5efa\u7acb demo code \uff08qt\u7248GUI\uff09\u3002<\/li>\n<\/ul>\n<hr \/>\n<blockquote><p>\n  RAM 24G\u3001DISK 320G \u53ef\u4ee5\u7de8\u8b6f\u6210\u529f demo\n<\/p><\/blockquote>\n<hr \/>\n<p>\u90e8\u5206 code \u9700\u8981\u5927\u91cf\u7684 RAM \u4f86 build\u3002 \u6211\u768432GB\u7b46\u8a18\u672c\u7684WSL2 \u9810\u8a2d\u4f7f\u752816GB\u7684RAM\u3002\u53ef\u4ee5\u53e6\u958b terminal\uff0c\u7528 <code>top<\/code> \u4f86\u770b\u7cfb\u7d71\u73fe\u6cc1\u3002\u6bd4\u5982 mozjs \u9700\u8981 6GB\uff0c\u591a\u5de5\u6642\u53ef\u80fdfail\uff0c\u9700\u8981\u591a bitbake\u5e7e\u6b21\u3002\u3002\u3002<\/p>\n<h2>4.5 \u71d2\u9304\u93e1\u50cf\u5230 TF Card<\/h2>\n<p>\u4f7f\u7528\u6a39\u8393\u6d3e\u5b98\u7db2\u7684\u93e1\u50cf\u71d2\u9304\u5668\u5c07\u93e1\u50cf\u71d2\u9304\u5230TF\u5361\u5373\u53ef\u904b\u884c\u3002\u525b\u70d8\u7119\u597d\u7684\u93e1\u50cf\u4f4d\u7f6e\u5728\uff1a<\/p>\n<pre><code class=\"language-sh line-numbers\">&lt;BUILD DIR&gt;\/tmp\/deploy\/images\/raspberrypi4-64\/agl-demo-platform-raspberrypi4-64.wic.xz \n<\/code><\/pre>\n<blockquote><p>\n  \u6a39\u8393\u6d3e4\u4e0b\u7684 AGL demo \u4e0d\u652f\u6301 USB Boot\uff0c\u53ea\u80fd\u7528\u50b3\u7d71\u7684 SD Card Boot\u3002\n<\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>4. WSL2 \u5d4c\u5165\u5f0f\u5de5\u7a0b-AGL\u7bc7 \u8eca\u898f\u7d1a Linux (Automotive Grade Linux) \u5728&#8230; &raquo; <a class=\"read-more-link\" href=\"https:\/\/vm1.go2see.me\/?p=309\">\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":[7,10,11,13],"tags":[],"class_list":["post-309","post","type-post","status-publish","format-standard","hentry","category-agl","category-embedded","category-linux","category-wsl"],"_links":{"self":[{"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=\/wp\/v2\/posts\/309","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=309"}],"version-history":[{"count":4,"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=\/wp\/v2\/posts\/309\/revisions"}],"predecessor-version":[{"id":341,"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=\/wp\/v2\/posts\/309\/revisions\/341"}],"wp:attachment":[{"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=309"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=309"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=309"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}