{"id":528,"date":"2023-10-27T23:57:09","date_gmt":"2023-10-27T15:57:09","guid":{"rendered":"https:\/\/vm1.go2see.me\/?p=528"},"modified":"2025-02-28T02:35:22","modified_gmt":"2025-02-27T18:35:22","slug":"agl-with-diff-sdk-path-pike-or-master","status":"publish","type":"post","link":"https:\/\/vm1.go2see.me\/?p=528","title":{"rendered":"AGL with diff SDK path (19.0.0 Salmon now)"},"content":{"rendered":"<h1>AGL 19.0.0 Salmon \u7684\u6a39\u8393\u6d3e5 \u5be6\u9a57<\/h1>\n<p>(2025 2 14 updated)<\/p>\n<p>\u5efa\u7acb\u5b98\u65b9\u7684 IVI flutter demo \u7522\u54c1<\/p>\n<h2>\u74b0\u5883\u5efa\u7acb<\/h2>\n<ol>\n<li>ubuntu 22.04 AGL \u958b\u767c\u74b0\u5883\u5b89\u88dd<\/li>\n<\/ol>\n<pre><code class=\"language-sh\"># ubuntu22.04 \u4f7f\u7528 pylint \u5305\uff0c\u53d6\u4ee3\u820a\u7684 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-dev libsdl1.2-dev pylint xterm python3-subunit mesa-common-dev zstd liblz4-tool curl ovmf -y<\/code><\/pre>\n<p>repo \u5de5\u5177\u8a2d\u7f6e<\/p>\n<pre><code class=\"language-sh\"># \u4e0b\u8f09 repo\u5de5\u5177\u5230\u672c\u5730\u9810\u8a2d\u4f4d\u7f6e\ncurl https:\/\/storage.googleapis.com\/git-repo-downloads\/repo > $HOME\/.local\/bin\/repo\n$ chmod a+x $HOME\/.local\/bin\/repo\n# google repo \u8cec\u865f\u8a2d\u7f6e\ngit config --global user.email \"cyue12@gmail.com\"\ngit config --global user.name \"cyue12\"<\/code><\/pre>\n<ol start=\"2\">\n<li>\u5efa\u7acb  agl release \u5de5\u7a0b\u76ee\u9304, \u8207 agl \u7684\u6e90\u78bc\u4e0b\u8f09\/\u5feb\u53d6 \u76ee\u9304\u3002\u76ee\u524d\u7684\u6700\u65b0 agl release\u662f 19.0.0 salmon<\/li>\n<\/ol>\n<pre><code class=\"language-sh\">export AGL_TOP=\/home\/agl\nmkdir -p $AGL_TOP\/downloads ; mkdir -p $AGL_TOP\/sstate-cache\nwget https:\/\/download.automotivelinux.org\/AGL\/release\/salmon\/agl-salmon-19.0.0.tar.bz2\ntar -xvf agl-salmon-19.0.0.tar.bz2\nmv agl-salmon-19.0.0 $AGL_TOP\/salmon\n\n# repo AGL \u6293\u53d6\u5de5\u7a0b\u5230 release \u76ee\u9304\uff1a[salmon]\ncd $AGL_TOP\/salmon\nrepo init -b salmon -u https:\/\/gerrit.automotivelinux.org\/gerrit\/AGL\/AGL-repo\nrepo sync\n\n# tree \u6aa2\u67e5 \u5de5\u7a0b\u76ee\u9304\u662f\u5426 OK\n# .\n# \u251c\u2500\u2500 bsp\n# \u251c\u2500\u2500 external\n# \u251c\u2500\u2500 meta-agl\n# \u251c\u2500\u2500 meta-agl-cluster-demo\n# \u251c\u2500\u2500 meta-agl-demo\n# \u251c\u2500\u2500 meta-agl-devel\n# \u251c\u2500\u2500 meta-agl-extra\n# \u2514\u2500\u2500 meta-agl-telematics-demo\ntree -L 1<\/code><\/pre>\n<ol start=\"3\">\n<li>\u6dfb\u52a0\u6211\u7684 <code>$AGL_TOP<\/code> \u8207\u61f6\u4eba alias \u5230 <code>~\/.bashrc<\/code>\u3002<br \/>\nagl \u5de5\u7a0b\u6703\u4e0b\u8f09\u5927\u91cf\u7684\u958b\u6e90\u4ee3\u78bc\uff0c\u5e0c\u671b\u9019\u4e9b\u4e0b\u8f09\/\u4e0b\u8f09\u5feb\u53d6\u662f\u5927\u5bb6\u5171\u7528\u7684\uff0c\u5c31\u4e0d\u5fc5\u591a\u6b21\u7684\u4e0b\u8f09\u3002<br \/>\n\u76ee\u524d\u6211\u5b9a\u7fa9\u4e86\u4e00\u500b AGL_TOP\uff0c\u6307\u5411 <code>~\/agl<\/code>, \u8003\u616e\u653e\u5728 <code>\/home\/agl<\/code> \u6216\u5176\u4ed6\u7684\u5171\u7528\u5340\u3002\u5e0c\u671b\u4e0d\u540c\u7684 release\uff0c \u4e0d\u540c\u7684\u4eba\u7684\u4e0b\u8f09\u5feb\u53d6\u90fd\u4fdd\u5b58\u5728\u6b64\u3002\u9700\u8981\u958b\u767c AGL\u7684\u4eba\u53ef\u4ee5\u5c07\u4ee5\u4e0b\u7684\u8a2d\u7f6e\u653e\u5230 <code>~\/.bashrc<\/code>\uff1a<\/li>\n<\/ol>\n<pre><code class=\"language-sh\">echo \"\n# AGL settings:\nexport AGL_TOP=\/home\/agl\nalias agl='. $AGL_TOP\/salmon\/meta-agl\/scripts\/aglsetup.sh'\nalias agl-cache='ln -fs $AGL_TOP\/downloads downloads; ln -fs $AGL_TOP\/sstate-cache sstate-cache'\n\">> ~\/.bashrc<\/code><\/pre>\n<blockquote>\n<p>\u5176\u4e2d\uff1a<\/p>\n<ul>\n<li>agl : \u547c\u53eb aglsetup.sh \u5efa\u7acb\u5de5\u7a0b\u9805\u76ee\u3002\u7528  <code>agl -h<\/code> \u770b\u5de5\u7a0b\u9078\u9805\u3002<\/li>\n<li>agl-cache : \u628a\u7576\u524d\u5de5\u7a0b\u9805\u76ee\u7684\u4e0b\u8f09\/\u5feb\u53d6\u5340\uff0c\u6307\u5411\u5230\u591a\u4eba\u5171\u7528\u7684\u4e0b\u8f09\u8207\u5feb\u53d6\u5340\u3002<\/li>\n<\/ul>\n<\/blockquote>\n<h2>\u5de5\u7a0b\u8a2d\u7f6e<\/h2>\n<ol>\n<li>\u7528\u6211\u7684\u61f6\u4eba alias \u5728\u500b\u4eba <code>$HOME\/rpi5<\/code> \u4e0b\u5efa\u7acb Raspberry Pi5 \u7684 AGL \u958b\u767c\u5de5\u7a0b, \u4e26\u5c07 download cache link \u5230<code>$AGL_TOP<\/code> \u4e0b\u7684\u5c0d\u61c9\u5730\u65b9\u3002<\/li>\n<\/ol>\n<pre><code class=\"language-sh\">cd ~\nagl -f -b rpi5 -m raspberrypi5 agl-demo agl-devel\nagl-cache<\/code><\/pre>\n<blockquote>\n<ul>\n<li><code>agl --help<\/code> \u53ef\u4ee5\u67e5\u770b\u6240\u6709\u652f\u6301\u7684\u5de5\u7a0b\u9805\u76ee\u3002<\/li>\n<li>\u5de5\u7a0b\u74b0\u5883\u8a2d\u7f6e\u5f8c\uff0c\u6703\u8df3\u5230 <code>-b<\/code> \u6307\u5b9a\u7684\u76ee\u9304\u5de5\u4f5c\u3002<\/li>\n<li>agl-cache \u93c8\u63a5\u5230\u5927\u5bb6\u7684\u4e0b\u8f09 cache, \u4e0d\u505a\u7684\u8a71\uff0c \u6703\u5728\u81ea\u5df1\u7684\u4f4d\u7f6e\u4e0b\u8f09<\/li>\n<\/ul>\n<\/blockquote>\n<ol start=\"2\">\n<li>\u8a2d\u7f6e\u5f8c\uff0c\u6703\u770b\u5230\u652f\u6301\u7684\u7522\u54c1\u529f\u80fd\u3002<\/li>\n<\/ol>\n<pre><code>    ------------ aglsetup.sh: Done\n    Common targets are:\n    - meta-agl layer:\n      - included by default\n        * agl-image-boot                (just enough to boot)\n        * agl-image-minimal             (minimal filesystem with APIs)\n        * agl-image-minimal-crosssdk    (crosssdk for ^^)\n\n        * agl-image-weston              (minimal filesystem with weston)\n        * agl-image-compositor          (minimal filesystem with AGL compositor)\n\n    - meta-agl-demo:                    (IVI demo with UI)\n      - with 'agl-demo'\n        * agl-ivi-image                 (base for IVI targets)\n        * agl-ivi-image-crosssdk        (sdk for ^^)\n\n        * agl-ivi-demo-qt               (IVI Qt demo image)\n        * agl-ivi-demo-qt-crosssdk      (sdk for ^^)\n        * agl-ivi-demo-flutter          (IVI Flutter demo image)\n        * agl-ivi-demo-html5            (IVI HTML5 demo image)\n\n        * agl-cluster-demo-qt           (cluster Qt demo image)\n        * agl-cluster-demo-flutter      (cluster Flutter demo image)\n\n        * agl-telematics-demo           (telematics demo image)\n\n        * agl-gateway-demo              (gateway demo image)<\/code><\/pre>\n<h2>\u70d8\u7119\u7522\u54c1<\/h2>\n<ol>\n<li>\u70d8\u7119\u6211\u7684 ivi demo flutter \u7522\u54c1<\/li>\n<\/ol>\n<pre><code class=\"language-sh\">time bitbake agl-ivi-demo-flutter<\/code><\/pre>\n<p>\u7d93\u904e\u6f2b\u9577\u7684\u4e0b\u8f09\u8207\u7de8\u8b6f\u6253\u5305\uff0c\u5de5\u7a0b\u7d50\u679c\uff1a<\/p>\n<pre><code class=\"language-test\">    NOTE: Your conf\/bblayers.conf has been automatically updated.\n    Loading cache: 100% |                                                                                                                                | ETA:  --:--:--\n    Loaded 0 entries from dependency cache.\n    Parsing recipes: 100% |###############################################################################################################################| Time: 0:01:15\n    Parsing of 3348 .bb files complete (0 cached, 3348 parsed). 5323 targets, 639 skipped, 1 masked, 0 errors.\n    NOTE: Resolving any missing task queue dependencies\n    NOTE: Multiple providers are available for runtime kuksa-can-provider-conf (kuksa-can-provider, kuksa-can-provider-conf-agl)\n    Consider defining a PREFERRED_RPROVIDER entry to match kuksa-can-provider-conf<\/code><\/pre>\n<pre><code>Build Configuration:\nBB_VERSION           = \"2.8.0\"\nBUILD_SYS            = \"x86_64-linux\"\nNATIVELSBSTRING      = \"ubuntu-22.04\"\nTARGET_SYS           = \"aarch64-agl-linux\"\nMACHINE              = \"raspberrypi5\"\nDISTRO               = \"poky-agl\"\nDISTRO_VERSION       = \"19.0.0\"\nTUNE_FEATURES        = \"aarch64\"\nTARGET_FPU           = \"\"\nmeta-raspberrypi     \nmeta-lts-mixins_u-boot \nmeta-selinux         \nmeta-pipewire        \nmeta-agl-flutter     \nmeta-flutter         \nmeta-flutter-apps    \nmeta-app-framework   \nmeta-agl-kuksa-val   \nmeta-agl-demo        \nmeta-networking      \nmeta-python          \nmeta-filesystems     \nmeta-multimedia      \nmeta-clang           \nmeta-qt5             \nmeta-oe              \nmeta-agl-core        \nmeta-agl-bsp         \nmeta                 \nmeta-poky            = \"<unknown>:<unknown>\"\n...\n```<\/code><\/pre>\n<h2>\u71d2\u9304\u5230\u76ee\u6a19\u6a5f\u4e0a<\/h2>\n<p>\u5efa\u7acb\u7684\u93e1\u50cf\u5728\uff1a<\/p>\n<pre><code class=\"language-sh\">rpi5\/tmp\/deploy\/images\/raspberrypi5\/agl-ivi-demo-html5-raspberrypi5-64.rootfs.wic.xz\n\n$ export IMAGE_NAME=agl-ivi-demo-html5-raspberrypi5-64.rootfs.wic.xz<\/code><\/pre>\n<p>\u71d2\u9304\u6211\u7684\u5de5\u7a0b\uff08\u6a39\u8393\u6d3e\u8981\u71d2\u5230 SD\u5361\u4e0a\u518d\u632a\u5230\u6a5f\u5668\u4e0a\u958b\u6a5f\uff09<\/p>\n<pre><code class=\"language-bash\"># \u67e5\u770b\u639b\u8f09\u7684 SD\u5361\u662f\u54ea\u500b blkdevice\u3002\u4e0d\u8981\u71d2\u932f\u4e86!!\n# \u6bd4\u5982\u8aaa mmcblk0 mmcblk0p1  sdc1 ... \u6703\u5728 \/dev \u4e0b\nlsblk\n\n# \u5378\u8f09 SD\u5361\nsudo umount <sdcard_device_name>\n\n# \u8907\u88fd\u5230\u5361\u4e0a\nxzcat ${IMAGE_NAME} | sudo dd of=<sdcard_device_name> bs=4M\nsync<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>AGL 19.0.0 Salmon \u7684\u6a39\u8393\u6d3e5 \u5be6\u9a57 (2025 2 14 updated) \u5efa\u7acb\u5b98\u65b9\u7684 IV&#8230; &raquo; <a class=\"read-more-link\" href=\"https:\/\/vm1.go2see.me\/?p=528\">\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],"tags":[],"class_list":["post-528","post","type-post","status-publish","format-standard","hentry","category-agl","category-embedded","category-linux"],"_links":{"self":[{"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=\/wp\/v2\/posts\/528","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=528"}],"version-history":[{"count":49,"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=\/wp\/v2\/posts\/528\/revisions"}],"predecessor-version":[{"id":530,"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=\/wp\/v2\/posts\/528\/revisions\/530"}],"wp:attachment":[{"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=528"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=528"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vm1.go2see.me\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=528"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}