【分享】在PetaLinux里為模塊創建補丁


PetaLinux(Yocto)里包含很多軟件模塊。大部分模塊可以直接使用。如果有特殊需求,需要修改某些模塊時,可以按下列辦法先修改,測試成功后,再創建補丁,集成到PetaLinux(Yocto)工程里。

比如客戶需要修改xorg.conf,可以采用下列方式完成。

工具版本

PetaLinux 2020.1,
VCU TRD 2020.1 PetaLinux BSP 工程

選擇工具devtool

缺省情況下,PetaLinux使用bitbake。請在“petalinux-config  → Yocto settings  → Build tool”里,選擇devtool。

hankf@XSZGS4:~/proj/zcu106/v201/vcu-trd-xv20$ petalinux-config 
INFO: sourcing build tools
[INFO] menuconfig project
configuration written to /home/hankf/proj/zcu106/v201/vcu-trd-xv20/project-spec/configs/config

*** End of the configuration.
*** Execute 'make' to start the build or try 'make help'.

[INFO] sourcing build environment
[INFO] generating kconfig for Rootfs
[INFO] silentconfig rootfs
[INFO] generating plnxtool conf
[INFO] generating user layers
[INFO] generating workspace directory
[INFO] successfully configured project

hankf@XSZGS4:~/proj/zcu106/v201/vcu-trd-xv20$ petalinux-build 
INFO: sourcing build tools
[INFO] building project
[INFO] sourcing build environment
[INFO] generating user layers
[INFO] generating workspace directory
[INFO] devtool build-image petalinux-image-minimal
NOTE: Starting bitbake server...
NOTE: Reconnecting to bitbake server...
NOTE: Retrying server connection (#1)...
NOTE: Reconnecting to bitbake server...
NOTE: Previous bitbake instance shutting down?, waiting to retry...
NOTE: Retrying server connection (#2)...
ERROR:  OE-core's config sanity checker detected a potential misconfiguration.
    Either fix the cause of this error or at your own risk disable the checker (see sanity.conf).
    Following is the list of potential problems / advisories:

    Error, TMPDIR has changed location. You need to either move it back to /proj/hankf/zcu106/v201/vcu-trd-xv20/build/tmp or delete it and rebuild
Summary: There was 1 ERROR message shown, returning a non-zero exit code.
ERROR: Failed to start bitbake environment
ERROR: Failed to build project

選擇devtool,編譯報告TMPDIR的錯誤。之前的TMPDIR設置是工程目錄下的“build/tmp”。在執行petalinux-config ,把TMPDIR設置為工程絕對目錄,“/proj/hankf/zcu106/v201/vcu-trd-xv20/build/tmp”。

hankf@XSZGS4:~/proj/zcu106/v201/vcu-trd-xv20$ petalinux-config 

INFO: sourcing build tools
[INFO] menuconfig project
configuration written to /home/hankf/proj/zcu106/v201/vcu-trd-xv20/project-spec/configs/config

*** End of the configuration.
*** Execute 'make' to start the build or try 'make help'.

[INFO] sourcing build environment
[INFO] generating kconfig for Rootfs
[INFO] silentconfig rootfs
[INFO] generating plnxtool conf
[INFO] generating user layers
[INFO] generating workspace directory
[INFO] successfully configured project

獲取軟件包源代碼

執行命令“petalinux-build -c -x modify”,可以把源代碼下載到workspace目錄。執行完成后,目錄“components/yocto/workspace/sources”會增加對應的目錄和文件。

客戶需要修改xorg.conf。以xorg為為軟件包名,執行命令“petalinux-build -c xorg -x modify”,petalinux報告找不到軟件包。

hankf@XSZGS4:~/proj/zcu106/v201/vcu-trd-xv20$ petalinux-build -c xorg -x modify
INFO: sourcing build tools
[INFO] building xorg
[INFO] sourcing build environment
[INFO] generating user layers
[INFO] generating workspace directory
[INFO] devtool modify xorg
NOTE: Starting bitbake server...
NOTE: Reconnecting to bitbake server...
NOTE: Retrying server connection (#1)...
NOTE: Reconnecting to bitbake server...
NOTE: Previous bitbake instance shutting down?, waiting to retry...
NOTE: Retrying server connection (#2)...
Loading cache: 100% |########################################################################################################################| Time: 0:00:00
Loaded 4234 entries from dependency cache.
Parsing recipes: 100% |######################################################################################################################| Time: 0:00:05
Parsing of 2967 .bb files complete (2965 cached, 2 parsed). 4236 targets, 168 skipped, 0 masked, 0 errors.
ERROR: Unable to find any recipe file matching "xorg"
ERROR: Failed to build xorg

搜索xorg.conf,可以看到,在目錄xserver-xf86-config里有,因此執行命令“petalinux-build -c xserver-xf86-config -x modify”。

hankf@XSZGS4:~/proj/zcu106/v201/vcu-trd-xv20$ find -name "*org.conf"
./project-spec/meta-user/recipes-graphics/xorg-xserver/xserver-xf86-config/zynqmp/xorg.conf
./components/yocto/layers/meta-xilinx/meta-xilinx-bsp/recipes-graphics/xorg-xserver/xserver-xf86-config/zynqmp/xorg.conf
./components/yocto/layers/core/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemumips64/xorg.conf
./components/yocto/layers/core/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemuppc/xorg.conf
./components/yocto/layers/core/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemumips/xorg.conf
./components/yocto/layers/core/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemuarm/xorg.conf
./components/yocto/layers/core/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemux86/xorg.conf
./components/yocto/layers/core/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemux86-64/xorg.conf
./components/yocto/layers/core/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/xorg.conf
./components/yocto/layers/core/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemush4/xorg.conf

hankf@XSZGS4:~/proj/zcu106/v201/vcu-trd-xv20$ petalinux-build -c xserver-xf86-config -x modify
INFO: sourcing build tools
[INFO] building xserver-xf86-config
[INFO] sourcing build environment
[INFO] generating user layers
[INFO] generating workspace directory
[INFO] devtool modify xserver-xf86-config
NOTE: Starting bitbake server...
NOTE: Reconnecting to bitbake server...
NOTE: Retrying server connection (#1)...
NOTE: Reconnecting to bitbake server...
NOTE: Previous bitbake instance shutting down?, waiting to retry...
NOTE: Retrying server connection (#2)...
Loading cache: 100% |########################################################################################################################| Time: 0:00:00
Loaded 4234 entries from dependency cache.
Parsing recipes: 100% |######################################################################################################################| Time: 0:00:05
Parsing of 2967 .bb files complete (2965 cached, 2 parsed). 4236 targets, 168 skipped, 0 masked, 0 errors.
INFO: SRC_URI contains some conditional appends/prepends - will create branches to represent these
NOTE: Resolving any missing task queue dependencies
Initialising tasks: 100% |###################################################################################################################| Time: 0:00:00
Sstate summary: Wanted 0 Found 0 Missed 0 Current 0 (0% match, 0% complete)
NOTE: No setscene tasks
NOTE: Executing Tasks
WARNING: No source unpacked to S - either the xserver-xf86-config recipe doesn't use any source or the correct source directory could not be determined
NOTE: Tasks Summary: Attempted 3 tasks of which 0 didn't need to be rerun and all succeeded.
INFO: Adding local source files to srctree...
INFO: Source tree extracted to /home/hankf/proj/zcu106/v201/vcu-trd-xv20/components/yocto/workspace/sources/xserver-xf86-config
WARNING: SRC_URI is conditionally overridden in this recipe, thus several devtool-override-* branches have been created, one for each override that makes changes to SRC_URI. It is recommended that you make changes to the devtool branch first, then checkout and rebase each devtool-override-* branch and update any unique patches there (duplicates on those branches will be ignored by devtool finish/update-recipe)
INFO: Using source tree as build directory since that would be the default for this recipe
INFO: Recipe xserver-xf86-config now set up to build from /home/hankf/proj/zcu106/v201/vcu-trd-xv20/components/yocto/workspace/sources/xserver-xf86-config
[INFO] successfully built xserver-xf86-config

執行完成后,在目錄“components/yocto/workspace/sources”下增加了目錄“xserver-xf86-config/“以及文件”xorg.conf“。

hankf@XSZGS4:~/proj/zcu106/v201/vcu-trd-xv20$ ls components/yocto/workspace/sources/xserver-xf86-config/
oe-local-files  xorg.conf

修改文件

修改相關的文件,比如”xorg.conf“。

hankf@XSZGS4:~/proj/zcu106/v201/vcu-trd-xv20$ ls components/yocto/workspace/sources/xserver-xf86-config/
oe-local-files  xorg.conf
hankf@XSZGS4:~/proj/zcu106/v201/vcu-trd-xv20$ gedit components/yocto/workspace/sources/xserver-xf86-config/xorg.conf  &
[1] 3463

測試修改

修改相關的文件,執行命令“petalinux-build -c ”,比如“petalinux-build -c xserver-xf86-config ”, 執行編譯測試,也可以在單板上測試。

hankf@XSZGS4:~/proj/zcu106/v201/vcu-trd-xv20$ petalinux-build -c xserver-xf86-config 

INFO: sourcing build tools
[INFO] building xserver-xf86-config
[INFO] sourcing build environment
[INFO] generating user layers
[INFO] generating workspace directory
[INFO] Specified component xserver-xf86-config already exists in workspace, Using the same...
[INFO] devtool build xserver-xf86-config
NOTE: Starting bitbake server...
NOTE: Reconnecting to bitbake server...
NOTE: Retrying server connection (#1)...
NOTE: Reconnecting to bitbake server...
NOTE: Previous bitbake instance shutting down?, waiting to retry...
NOTE: Retrying server connection (#2)...
Loading cache: 100% |########################################################################################################################| Time: 0:00:00
Loaded 4234 entries from dependency cache.
Parsing recipes: 100% |######################################################################################################################| Time: 0:00:05
Parsing of 2967 .bb files complete (2964 cached, 3 parsed). 4236 targets, 168 skipped, 0 masked, 0 errors.
Removing 1 recipes from the zcu106_zynqmp sysroot: 100% |####################################################################################| Time: 0:00:00
Loading cache: 100% |########################################################################################################################| Time: 0:00:03
Loaded 4234 entries from dependency cache.
Parsing recipes: 100% |######################################################################################################################| Time: 0:00:05
Parsing of 2967 .bb files complete (2964 cached, 3 parsed). 4236 targets, 168 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies
Initialising tasks: 100% |###################################################################################################################| Time: 0:00:00
Checking sstate mirror object availability: 100% |###########################################################################################| Time: 0:00:00
Sstate summary: Wanted 6 Found 2 Missed 4 Current 59 (33% match, 93% complete)
NOTE: Executing Tasks
NOTE: Setscene tasks completed
NOTE: xserver-xf86-config: compiling from external source tree /home/hankf/proj/zcu106/v201/vcu-trd-xv20/components/yocto/workspace/sources/xserver-xf86-config
NOTE: Tasks Summary: Attempted 459 tasks of which 450 didn't need to be rerun and all succeeded.
INFO: copy to TFTP-boot directory is not enabled !!
[INFO] successfully built xserver-xf86-config
[1]+  Done                    gedit components/yocto/workspace/sources/xserver-xf86-config/xorg.conf

提交更改

測試通過后,進入對應軟件的目錄,比如“components/yocto/workspace/sources/xserver-xf86-config”,通過git命令提交更改。

hankf@XSZGS4:~/proj/zcu106/v201/vcu-trd-xv20/components/yocto/workspace/sources/xserver-xf86-config$ git add xorg.confhankf@XSZGS4:~/proj/zcu106/v201/vcu-trd-xv20/components/yocto/workspace/sources/xserver-xf86-config$ git commit -s
[devtool 23f4304] test
 1 file changed, 2 insertions(+)
 create mode 100644 test.txt

生成patch

命令“petalinux-build -c -x update-recipe”會生成patch。
命令“petalinux-build -c -x finish”會生成patch,並在目錄workspace刪除相關源代碼和目錄。
creates a patch for the committed changes in recipe sources directory and removes the source from workspace.

hankf@XSZGS4:~/proj/zcu106/v201/vcu-trd-xv20$ petalinux-build -c xserver-xf86-config -x update-recipe
INFO: sourcing build tools
[INFO] building xserver-xf86-config
[INFO] sourcing build environment
[INFO] generating user layers
[INFO] generating workspace directory
[INFO] Specified component xserver-xf86-config already exists in workspace, Using the same...
[INFO] devtool update-recipe xserver-xf86-config -a /home/hankf/proj/zcu106/v201/vcu-trd-xv20/project-spec/meta-user -w
NOTE: Starting bitbake server...
NOTE: Reconnecting to bitbake server...
NOTE: Retrying server connection (#1)...
NOTE: Reconnecting to bitbake server...
NOTE: Previous bitbake instance shutting down?, waiting to retry...
NOTE: Retrying server connection (#2)...
Loading cache: 100% |########################################################################################################################| Time: 0:00:00
Loaded 4234 entries from dependency cache.
Parsing recipes: 100% |######################################################################################################################| Time: 0:00:05
Parsing of 2967 .bb files complete (2964 cached, 3 parsed). 4236 targets, 168 skipped, 0 masked, 0 errors.
INFO: Handling main branch (devtool)...
INFO: No patches or local source files needed updating
INFO: Handling branch devtool-override-pn-arm-trusted-firmware...
INFO: No patches or local source files needed updating
INFO: Handling branch devtool-override-pn-device-tree...
INFO: No patches or local source files needed updating
INFO: copy to TFTP-boot directory is not enabled !!
[INFO] successfully built xserver-xf86-config

hankf@XSZGS4:~/proj/zcu106/v201/vcu-trd-xv20$ petalinux-build -c xserver-xf86-config -x finish
INFO: sourcing build tools
[INFO] building xserver-xf86-config
[INFO] sourcing build environment
[INFO] generating user layers
[INFO] generating workspace directory
[INFO] Specified component xserver-xf86-config already exists in workspace, Using the same...
[INFO] devtool finish xserver-xf86-config /home/hankf/proj/zcu106/v201/vcu-trd-xv20/project-spec/meta-user 
NOTE: Starting bitbake server...
NOTE: Reconnecting to bitbake server...
NOTE: Retrying server connection (#1)...
NOTE: Reconnecting to bitbake server...
NOTE: Previous bitbake instance shutting down?, waiting to retry...
NOTE: Retrying server connection (#2)...

Loading cache: 100% |########################################################################################################################| Time: 0:00:00
Loaded 4234 entries from dependency cache.
Parsing recipes: 100% |######################################################################################################################| Time: 0:00:05
Parsing of 2967 .bb files complete (2964 cached, 3 parsed). 4236 targets, 168 skipped, 0 masked, 0 errors.
INFO: Handling main branch (devtool)...
NOTE: Writing append file /home/hankf/proj/zcu106/v201/vcu-trd-xv20/project-spec/meta-user/recipes-graphics/xorg-xserver/xserver-xf86-config_%.bbappend
NOTE: Copying xorg.conf to /home/hankf/proj/zcu106/v201/vcu-trd-xv20/project-spec/meta-user/recipes-graphics/xorg-xserver/xserver-xf86-config/xorg.conf
INFO: Handling branch devtool-override-pn-arm-trusted-firmware...
INFO: No patches or local source files needed updating
INFO: Handling branch devtool-override-pn-device-tree...
INFO: No patches or local source files needed updating
INFO: Cleaning sysroot for recipe xserver-xf86-config...
INFO: Leaving source tree /home/hankf/proj/zcu106/v201/vcu-trd-xv20/components/yocto/workspace/sources/xserver-xf86-config as-is; if you no longer need it then please delete it manually
[INFO] Removing source tree from workspace: /home/hankf/proj/zcu106/v201/vcu-trd-xv20/components/yocto/workspace/sources/xserver-xf86-config
[INFO] successfully built xserver-xf86-config

執行完成后,目錄“project-spec/meta-user/recipes-graphics/xorg-xserver/xserver-xf86-config”下增加了文件xorg.conf。

hankf@XSZGS4:/proj/hankf/zcu106/v201/vcu-trd-xv20/project-spec/meta-user/recipes-graphics/xorg-xserver/xserver-xf86-config$ ls -l
total 8
-rw-rw-r-- 1 hankf hankf  765 Nov 27 14:43 xorg.conf
drwxr-xr-x 2 hankf hankf 4096 Nov 27 15:10 zynqmp

刪除軟件包

如果測試正常,可以執行命令“petalinux-build -c xserver-xf86-config -x reset”,把軟件包從目錄workspace刪除。ug1144建議使用“devtool reset ”。最好使用“petalinux-build -c xserver-xf86-config -x reset”

hankf@XSZGS4:~/proj/zcu106/v201/vcu-trd-xv20$ devtool reset  xserver-xf86-config 
devtool: command not found
hankf@XSZGS4:~/proj/zcu106/v201/vcu-trd-xv20$ petalinux-build -c xserver-xf86-config -x reset

INFO: sourcing build tools
[INFO] building xserver-xf86-config
[INFO] sourcing build environment
[INFO] generating user layers
[INFO] generating workspace directory
[INFO] Specified component xserver-xf86-config already exists in workspace, Using the same...
[INFO] devtool reset xserver-xf86-config
NOTE: Starting bitbake server...
INFO: Cleaning sysroot for recipe xserver-xf86-config...
INFO: Leaving source tree /home/hankf/proj/zcu106/v201/vcu-trd-xv20/components/yocto/workspace/sources/xserver-xf86-config as-is; if you no longer need it then please delete it manually
[INFO] Removing source tree from workspace: /home/hankf/proj/zcu106/v201/vcu-trd-xv20/components/yocto/workspace/sources/xserver-xf86-config
[INFO] successfully built xserver-xf86-config

其它日志

對比下面命令“petalinux-build -c -x update-recipe”和命令“petalinux-build -c -x finish”的結果,命令“petalinux-build -c -x finish”刪除了components/yocto/workspace/sources下的目錄gstreamer-vcu-notebooks。

hankf@XSZGS4:~/proj/zcu106/v201/vcu-trd-xv20/components/yocto/workspace/sources/gstreamer-vcu-notebooks$ git add test.txt

hankf@XSZGS4:~/proj/zcu106/v201/vcu-trd-xv20/components/yocto/workspace/sources/gstreamer-vcu-notebooks$ git commit -s
[devtool 23f4304] test
 1 file changed, 2 insertions(+)
 create mode 100644 test.txt

hankf@XSZGS4:~/proj/zcu106/v201/vcu-trd-xv20$ petalinux-build -c gstreamer-vcu-notebooks  -x update-recipe

INFO: sourcing build tools
[INFO] building gstreamer-vcu-notebooks
[INFO] sourcing build environment
[INFO] generating user layers
[INFO] generating workspace directory
[INFO] Specified component gstreamer-vcu-notebooks already exists in workspace, Using the same...
[INFO] devtool update-recipe gstreamer-vcu-notebooks -a /home/hankf/proj/zcu106/v201/vcu-trd-xv20/project-spec/meta-user -w
NOTE: Starting bitbake server...
NOTE: Reconnecting to bitbake server...
NOTE: Retrying server connection (#1)...
NOTE: Reconnecting to bitbake server...
NOTE: Previous bitbake instance shutting down?, waiting to retry...
NOTE: Retrying server connection (#2)...
Loading cache: 100% |########################################################################################################################| Time: 0:00:00
Loaded 4234 entries from dependency cache.
Parsing recipes: 100% |######################################################################################################################| Time: 0:00:05
Parsing of 2967 .bb files complete (2964 cached, 3 parsed). 4236 targets, 168 skipped, 0 masked, 0 errors.
INFO: Handling main branch (devtool)...
NOTE: Writing append file /home/hankf/proj/zcu106/v201/vcu-trd-xv20/project-spec/meta-user/recipes-multimedia/gstreamer/gstreamer-vcu-notebooks_%.bbappend
NOTE: Copying 0001-test.patch to /home/hankf/proj/zcu106/v201/vcu-trd-xv20/project-spec/meta-user/recipes-multimedia/gstreamer/gstreamer-vcu-notebooks/0001-test.patch
INFO: Handling branch devtool-override-pn-arm-trusted-firmware...
INFO: No patches or local source files needed updating
INFO: Handling branch devtool-override-pn-device-tree...
INFO: No patches or local source files needed updating
INFO: copy to TFTP-boot directory is not enabled !!
[INFO] successfully built gstreamer-vcu-notebooks


hankf@XSZGS4:~/proj/zcu106/v201/vcu-trd-xv20$ ls -l ./components/yocto/workspace/sources/gstreamer-vcu-notebooks/
total 20
lrwxrwxrwx 1 hankf hankf   24 Nov 27 16:49 common.py -> oe-local-files/common.py
lrwxrwxrwx 1 hankf hankf   22 Nov 27 16:49 LICENSE -> oe-local-files/LICENSE
drwxr-xr-x 3 hankf hankf 4096 Nov 27 16:30 oe-local-files
lrwxrwxrwx 1 hankf hankf  160 Nov 27 16:36 oe-logs -> /proj/hankf/zcu106/v201/vcu-trd-xv20/build/tmp/work/zynqmpev-xilinx-linux/gstreamer-vcu-notebooks/0.1-r0/temp
lrwxrwxrwx 1 hankf hankf  155 Nov 27 16:36 oe-workdir -> /proj/hankf/zcu106/v201/vcu-trd-xv20/build/tmp/work/zynqmpev-xilinx-linux/gstreamer-vcu-notebooks/0.1-r0
drwxrwxr-x 2 hankf hankf 4096 Nov 27 16:49 pictures
-rw-rw-r-- 1 hankf hankf   11 Nov 27 16:49 test.txt
lrwxrwxrwx 1 hankf hankf   51 Nov 27 16:49 vcu-demo-camera-decode-display.ipynb -> oe-local-files/vcu-demo-camera-decode-display.ipynb
lrwxrwxrwx 1 hankf hankf   58 Nov 27 16:49 vcu-demo-camera-encode-decode-display.ipynb -> oe-local-files/vcu-demo-camera-encode-decode-display.ipynb
lrwxrwxrwx 1 hankf hankf   48 Nov 27 16:49 vcu-demo-camera-encode-file.ipynb -> oe-local-files/vcu-demo-camera-encode-file.ipynb
lrwxrwxrwx 1 hankf hankf   53 Nov 27 16:49 vcu-demo-camera-encode-streamout.ipynb -> oe-local-files/vcu-demo-camera-encode-streamout.ipynb
lrwxrwxrwx 1 hankf hankf   44 Nov 27 16:49 vcu-demo-decode-display.ipynb -> oe-local-files/vcu-demo-decode-display.ipynb
lrwxrwxrwx 1 hankf hankf   53 Nov 27 16:49 vcu-demo-streamin-decode-display.ipynb -> oe-local-files/vcu-demo-streamin-decode-display.ipynb
lrwxrwxrwx 1 hankf hankf   47 Nov 27 16:49 vcu-demo-transcode-to-file.ipynb -> oe-local-files/vcu-demo-transcode-to-file.ipynb
lrwxrwxrwx 1 hankf hankf   52 Nov 27 16:49 vcu-demo-transcode-to-streamout.ipynb -> oe-local-files/vcu-demo-transcode-to-streamout.ipynb

hankf@XSZGS4:~/proj/zcu106/v201/vcu-trd-xv20$ petalinux-build -c gstreamer-vcu-notebooks  -x finish
INFO: sourcing build tools
[INFO] building gstreamer-vcu-notebooks
[INFO] sourcing build environment
[INFO] generating user layers
[INFO] generating workspace directory
[INFO] Specified component gstreamer-vcu-notebooks already exists in workspace, Using the same...
[INFO] devtool finish gstreamer-vcu-notebooks /home/hankf/proj/zcu106/v201/vcu-trd-xv20/project-spec/meta-user 
NOTE: Starting bitbake server...
NOTE: Reconnecting to bitbake server...
NOTE: Retrying server connection (#1)...
NOTE: Reconnecting to bitbake server...
NOTE: Previous bitbake instance shutting down?, waiting to retry...
NOTE: Retrying server connection (#2)...
Loading cache: 100% |########################################################################################################################| Time: 0:00:00
Loaded 4234 entries from dependency cache.
Parsing recipes: 100% |######################################################################################################################| Time: 0:00:05
Parsing of 2967 .bb files complete (2964 cached, 3 parsed). 4236 targets, 168 skipped, 0 masked, 0 errors.
INFO: Handling main branch (devtool)...
NOTE: Writing append file /home/hankf/proj/zcu106/v201/vcu-trd-xv20/project-spec/meta-user/recipes-multimedia/gstreamer/gstreamer-vcu-notebooks_%.bbappend
NOTE: Copying 0001-test.patch to /home/hankf/proj/zcu106/v201/vcu-trd-xv20/project-spec/meta-user/recipes-multimedia/gstreamer/gstreamer-vcu-notebooks/0001-test.patch
INFO: Handling branch devtool-override-pn-arm-trusted-firmware...
INFO: No patches or local source files needed updating
INFO: Handling branch devtool-override-pn-device-tree...
INFO: No patches or local source files needed updating
INFO: Cleaning sysroot for recipe gstreamer-vcu-notebooks...
INFO: Leaving source tree /home/hankf/proj/zcu106/v201/vcu-trd-xv20/components/yocto/workspace/sources/gstreamer-vcu-notebooks as-is; if you no longer need it then please delete it manually
[INFO] Removing source tree from workspace: /home/hankf/proj/zcu106/v201/vcu-trd-xv20/components/yocto/workspace/sources/gstreamer-vcu-notebooks
[INFO] successfully built gstreamer-vcu-notebooks

hankf@XSZGS4:~/proj/zcu106/v201/vcu-trd-xv20$ ls -l ./components/yocto/workspace/sources/gstreamer-vcu-notebooks/
ls: cannot access '/home/hankf/proj/zcu106/v201/vcu-trd-xv20/components/yocto/workspace/sources/gstreamer-vcu-notebooks/': No such file or directory

另外也可以發現,命令自動創建了文件project-spec/meta-user/recipes-multimedia/gstreamer/gstreamer-vcu-notebooks_%.bbappend,自動復制了文件0001-test.patch到目錄project-spec/meta-user/recipes-multimedia/gstreamer/gstreamer-vcu-notebooks。

hankf@XSZGS4:~/proj/zcu106/v201/vcu-trd-xv20$ ls -l  project-spec/meta-user/recipes-multimedia/gstreamer/gstreamer-vcu-notebooks
total 4
-rw-rw-r-- 1 hankf hankf 440 Nov 27 16:53 0001-test.patch
hankf@XSZGS4:~/proj/zcu106/v201/vcu-trd-xv20$ cat  project-spec/meta-user/recipes-multimedia/gstreamer/gstreamer-vcu-notebooks_%.bbappend 
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"

SRC_URI += "file://0001-test.patch"

hankf@XSZGS4:~/proj/zcu106/v201/vcu-trd-xv20$ cat  project-spec/meta-user/recipes-multimedia/gstreamer/gstreamer-vcu-notebooks/0001-test.patch 
From 23f430438ac6cb1e2e712916f0136fe8a0c8075e Mon Sep 17 00:00:00 2001
From: Hank Hanjie Fu <hankf@xilinx.com>
Date: Fri, 27 Nov 2020 16:47:50 +0800
Subject: [PATCH] test

Signed-off-by: Hank Hanjie Fu <hankf@xilinx.com>
---
 test.txt | 2 ++
 1 file changed, 2 insertions(+)
 create mode 100644 test.txt

diff --git a/test.txt b/test.txt
new file mode 100644
index 0000000..a8a04d9
--- /dev/null
+++ b/test.txt
@@ -0,0 +1,2 @@
+

額外說明

/recipes-graphics/xorg-xserver/xserver-xf86-config/zynqmp和/recipes-graphics/xorg-xserver/xserver-xf86-config/都有xorg.conf。
生效的是文件 ./recipes-graphics/xorg-xserver/xserver-xf86-config/zynqmp/xorg.conf。
文件./recipes-graphics/xorg-xserver/xserver-xf86-config/xorg.conf沒有生效。

參考文檔

來源

https://www.yoctoproject.org/software-item/devtool/

原文

The cornerstone of the extensible SDK is a command-line tool called devtool. This tool provides a number of features that help you build, test and package software within the extensible SDK, and optionally integrate it into an image built by the OpenEmbedded build system.

The devtool command line is organized similarly to Git in that it has a number of sub-commands for each function. You can run devtool –help to see all the commands.

Three devtool subcommands that provide entry-points into development are:

devtool add: Assists in adding new software to be built.
devtool modify: Sets up an environment to enable you to modify the source of an existing component.
devtool upgrade: Updates an existing recipe so that you can build it for an updated set of source files.
As with the OpenEmbedded build system, “recipes” represent software packages within devtool. When you use devtool add, a recipe is automatically created. When you use devtool modify, the specified existing recipe is used in order to determine where to get the source code and how to patch it. In both cases, an environment is set up so that when you build the recipe a source tree that is under your control is used in order to allow you to make changes to the source as desired. By default, both new recipes and the source go into a “workspace” directory under the SDK.

google翻譯

可擴展SDK的基礎是稱為devtool的命令行工具。該工具提供了許多功能,可幫助您在可擴展的SDK中構建,測試和打包軟件,還可以選擇將其集成到OpenEmbedded構建系統構建的映像中。

devtool命令行的組織方式與Git相似,因為每個功能都有許多子命令。您可以運行devtool –help來查看所有命令。

提供開發入口點的三個devtool子命令是:

devtool add:協助添加要構建的新軟件。
devtool Modify:設置環境以使您能夠修改現有組件的源。
devtool升級:更新現有配方,以便您可以為一組更新的源文件構建它。
與OpenEmbedded構建系統一樣,“配方”代表devtool中的軟件包。使用devtool add時,將自動創建一個配方。使用devtool Modify時,將使用指定的現有配方來確定從何處獲取源代碼以及如何對其進行修補。在這兩種情況下,都將建立一個環境,以便在構建配方時使用位於您控制之下的源樹,以允許您根據需要對源進行更改。默認情況下,新配方和源都進入SDK下的“工作區”目錄。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM