基础

  • 配置petalinux环境
petalinux@bb1824740530:~$ ls
install.exp  petalinux_installation_log  workdir
petalinux@bb1824740530:~$ cd workdir/
petalinux@bb1824740530:~/workdir$ ls
petalinux@bb1824740530:~/workdir$ ifconfig 
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.18.0.19  netmask 255.255.0.0  broadcast 172.18.255.255
        ether 02:42:ac:12:00:13  txqueuelen 0  (Ethernet)
        RX packets 30  bytes 4671 (4.6 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 
petalinux@bb1824740530:~/workdir$ df -h
Filesystem                     Size  Used Avail Use% Mounted on
overlay                        915G  857G   12G  99% /
tmpfs                           64M     0   64M   0% /dev
shm                             64M     0   64M   0% /dev/shm
/dev/mapper/vgubuntu-root      915G  857G   12G  99% /etc/hosts
/dev/mapper/vgubuntu-lv_disk1  7.3T  1.3T  5.7T  19% /home/petalinux/workdir
tmpfs                           32G     0   32G   0% /proc/asound
tmpfs                           32G     0   32G   0% /proc/acpi
tmpfs                           32G     0   32G   0% /proc/scsi
tmpfs                           32G     0   32G   0% /sys/firmware
petalinux@bb1824740530:~/workdir$ git --verison
unknown option: --verison
usage: git [--version] [--help] [-C <path>] [-c <name>=<value>]
           [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
           [-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare]
           [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
           <command> [<args>]
petalinux@bb1824740530:~/workdir$ git -verison 
unknown option: -verison
usage: git [--version] [--help] [-C <path>] [-c <name>=<value>]
           [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
           [-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare]
           [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
           <command> [<args>]
petalinux@bb1824740530:~/workdir$ git -v
unknown option: -v
usage: git [--version] [--help] [-C <path>] [-c <name>=<value>]
           [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
           [-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare]
           [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
           <command> [<args>]
petalinux@bb1824740530:~/workdir$ git --version
git version 2.25.1
petalinux@bb1824740530:~/workdir$ 
petalinux@bb1824740530:~/workdir$ git config --global user.name "test"
petalinux@bb1824740530:~/workdir$ git config --global user.email "test@testc.com"
petalinux@bb1824740530:~/workdir$ source /opt/petalinux/v2021.2/./
.gitignore        .nodistribute     .version-history  components/       doc/              etc/              settings.csh      settings.sh       tools/
petalinux@bb1824740530:~/workdir$ source /opt/petalinux/v2021.2/./settings.sh 
PetaLinux environment set to '/opt/petalinux/v2021.2'
WARNING: /bin/sh is not bash! 
bash is PetaLinux recommended shell. Please set your default shell to bash.
WARNING: This is not a supported OS
INFO: Checking free disk space
INFO: Checking installed tools
INFO: Checking installed development libraries
INFO: Checking network and other services
WARNING: No tftp server found - please refer to "UG1144 2021.2 PetaLinux Tools Documentation Reference Guide" for its impact and solution
petalinux@bb1824740530:~/workdir$ ls
vic_gitlab
petalinux@bb1824740530:~/workdir$ ssh-keygen -t rsa -C "test@test.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/petalinux/.ssh/id_rsa): 
Created directory '/home/petalinux/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/petalinux/.ssh/id_rsa
Your public key has been saved in /home/petalinux/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:7aml/FuIjgpRJGCzwfcn6Tiz2XjAljMcp7RctY9oCT8 test@test.com
The key's randomart image is:
+---[RSA 3072]----+
|o=. .            |
|..++   .         |
| .. o o .        |
|   = * o .       |
|  * % = S .      |
|   ^ E . + o     |
|  o % . . = .    |
|   = o + + .     |
|    o.. =.o.     |
+----[SHA256]-----+
petalinux@bb1824740530:~/workdir$ 
petalinux@bb1824740530:~/workdir$ 
petalinux@bb1824740530:~/workdir$ mv test_gitlab/home/petalinux/.ssh/id_rsa
id_rsa      id_rsa.pub  
petalinux@bb1824740530:~/workdir$ mv test_gitlab/home/petalinux/.ssh/id_rsa
mv: cannot open 'vic_gitlab' for reading: Permission denied
petalinux@bb1824740530:~/workdir$ ls -lah
total 12K
drwxr-xr-x 2 root      root      4.0K Nov  7 06:17 .
drwxr-xr-x 1 petalinux petalinux 4.0K Nov  7 06:18 ..
-rw------- 1 root      root      1.8K Nov  7 06:17 vic_gitlab
petalinux@bb1824740530:~/workdir$ cp test_gitlab/home/petalinux/.ssh/id_rsa.pub 
cp: cannot open 'vic_gitlab' for reading: Permission denied
petalinux@bb1824740530:~/workdir$ cp test_gitlab/home/petalinux/.ssh/id_rsa     
petalinux@bb1824740530:~/workdir$ ls
vic_gitlab
petalinux@bb1824740530:~/workdir$ rm test_gitlab
rm: cannot remove 'vic_gitlab': Permission denied
petalinux@bb1824740530:~/workdir$ ls
petalinux@bb1824740530:~/workdir$ ls /home/petalinux/.ssh/ -lah 
total 16K
drwx------ 2 petalinux petalinux 4.0K Nov  7 06:19 .
drwxr-xr-x 1 petalinux petalinux 4.0K Nov  7 06:18 ..
-rwxr-xr-x 1 petalinux petalinux 1.8K Nov  7 06:19 id_rsa
-rw-r--r-- 1 petalinux petalinux  570 Nov  7 06:18 id_rsa.pub
petalinux@bb1824740530:~/workdir$ chmod -x /home/petalinux/.ssh/id_rsa 
petalinux@bb1824740530:~/workdir$ ls /home/petalinux/.ssh/ -lah
total 16K
drwx------ 2 petalinux petalinux 4.0K Nov  7 06:19 .
drwxr-xr-x 1 petalinux petalinux 4.0K Nov  7 06:18 ..
-rw-r--r-- 1 petalinux petalinux 1.8K Nov  7 06:19 id_rsa
-rw-r--r-- 1 petalinux petalinux  570 Nov  7 06:18 id_rsa.pub
petalinux@bb1824740530:~/workdir$ git clone ssh://git@192.168.3.89:40089/esw/spruce/xlnx/project.git
fatal: could not create work tree dir 'project': Permission denied
petalinux@bb1824740530:~/workdir$ ls
petalinux@bb1824740530:~/workdir$ cd ..
petalinux@bb1824740530:~$ ls -lah
total 44K
drwxr-xr-x 1 petalinux petalinux 4.0K Nov  7 06:18 .
drwxr-xr-x 1 root      root      4.0K Nov  4 07:01 ..
-rw-r--r-- 1 petalinux petalinux  220 Feb 25  2020 .bash_logout
-rw-r--r-- 1 petalinux petalinux 3.7K Feb 25  2020 .bashrc
-rw-r--r-- 1 petalinux petalinux   48 Nov  7 06:15 .gitconfig
-rw-r--r-- 1 petalinux petalinux  807 Feb 25  2020 .profile
drwx------ 2 petalinux petalinux 4.0K Nov  7 06:19 .ssh
-rwxr-xr-x 1 petalinux petalinux  795 Nov  4 06:04 install.exp
-rw-r--r-- 1 petalinux petalinux 1018 Nov  4 07:04 petalinux_installation_log
drwxr-xr-x 2 root      root      4.0K Nov  7 06:20 workdir
petalinux@bb1824740530:~$ 
Display all 1075 possibilities? (y or n)
petalinux@bb1824740530:~$ cd workdir/
petalinux@bb1824740530:~/workdir$ ls
petalinux@bb1824740530:~/workdir$ mkdir petalinux
mkdir: cannot create directory 'petalinux': Permission denied
petalinux@bb1824740530:~/workdir$ ls
petalinux@bb1824740530:~/workdir$ ls -lah
total 8.0K
drwxrwxrwx 2 root      root      4.0K Nov  7 06:20 .
drwxr-xr-x 1 petalinux petalinux 4.0K Nov  7 06:18 ..
petalinux@bb1824740530:~/workdir$ mkdir petalinux
petalinux@bb1824740530:~/workdir$ 
Display all 1075 possibilities? (y or n)
petalinux@bb1824740530:~/workdir$ cd petalinux/
petalinux@bb1824740530:~/workdir/petalinux$ ls
petalinux@bb1824740530:~/workdir/petalinux$ git clone ssh://git@192.168.3.89:40089/esw/spruce/xlnx/project.git
Cloning into 'project'...
The authenticity of host '[192.168.3.89]:40089 ([192.168.3.89]:40089)' can't be established.
ECDSA key fingerprint is SHA256:WczDldsRHABioVaUPSA4B1JSn5dLUFLcnY5pKvesedk.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[192.168.3.89]:40089' (ECDSA) to the list of known hosts.
git@192.168.3.89: Permission denied (publickey).
fatal: Could not read from remote repository.
 
Please make sure you have the correct access rights
and the repository exists.
petalinux@bb1824740530:~/workdir/petalinux$ eval "$(ssh-agent -s)
> "
Agent pid 287
petalinux@bb1824740530:~/workdir/petalinux$ ssh-add ~/.ssh/
id_rsa       id_rsa.pub   known_hosts  
petalinux@bb1824740530:~/workdir/petalinux$ ssh-add ~/.ssh/id_rsa
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/home/petalinux/.ssh/id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
petalinux@bb1824740530:~/workdir/petalinux$ chmod 600 ~/.ssh/id_rsa
petalinux@bb1824740530:~/workdir/petalinux$ ssh-add ~/.ssh/id_rsa
Identity added: /home/petalinux/.ssh/id_rsa (test@test.com)
petalinux@bb1824740530:~/workdir/petalinux$ 
petalinux@bb1824740530:~/workdir/petalinux$ 
petalinux@bb1824740530:~/workdir/petalinux$ ssh-add -l           
2048 SHA256:zmXsd/rDIlKFFKMGhAl78O8NBswNmFD6GCbX2phdpM4 test@test.com (RSA)
petalinux@bb1824740530:~/workdir/petalinux$ git clone ssh://git@192.168.3.89:40089/esw/spruce/xlnx/project.git
Cloning into 'project'...
remote: Enumerating objects: 725, done.
remote: Counting objects: 100% (644/644), done.
remote: Compressing objects: 100% (604/604), done.
remote: Total 725 (delta 338), reused 0 (delta 0), pack-reused 81
Receiving objects: 100% (725/725), 121.31 MiB | 8.59 MiB/s, done.
Resolving deltas: 100% (352/352), done.
petalinux@bb1824740530:~/workdir/petalinux$ 
petalinux@bb1824740530:~/workdir/petalinux$ 
petalinux@bb1824740530:~/workdir/petalinux$ ls
project
petalinux@bb1824740530:~/workdir/petalinux$ cd project/     
petalinux@bb1824740530:~/workdir/petalinux/project$ git switch eli-dev-yf1
Branch 'eli-dev-yf1' set up to track remote branch 'eli-dev-yf1' from 'origin'.
Switched to a new branch 'eli-dev-yf1'
petalinux@bb1824740530:~/workdir/petalinux/project$ cd project-spec/meta-user/recipes-apps/
petalinux@bb1824740530:~/workdir/petalinux/project/project-spec/meta-user/recipes-apps$ git branch   
* eli-dev-yf1
  main
petalinux@bb1824740530:~/workdir/petalinux/project/project-spec/meta-user/recipes-apps$ git branch -l
* eli-dev-yf1
  main
petalinux@bb1824740530:~/workdir/petalinux/project/project-spec/meta-user/recipes-apps$ git branch -a
* eli-dev-yf1
  main
  remotes/origin/HEAD -> origin/main
  remotes/origin/develop
  remotes/origin/develop-rev2
  remotes/origin/develop-rev2-1084
  remotes/origin/develop-rev2-1084-app-pro
  remotes/origin/develop-rev2-app-pro
  remotes/origin/develop-rev2-tmp
  remotes/origin/develop-rev3
  remotes/origin/develop-rev3-1094-app-pro
  remotes/origin/develop-rev3-app-pro
  remotes/origin/develop-rev3-tmp
  remotes/origin/eli-dev-yf1
  remotes/origin/eli-feat-1005-fix
  remotes/origin/eli-feat-hdr-txi
  remotes/origin/eli-feat-rev2-app-pro
  remotes/origin/eli-feat-rev3-app-pro
  remotes/origin/eli-release-rev2
  remotes/origin/eli-release-rev3
  remotes/origin/eli-rev3-testFPGA1
  remotes/origin/eli-rev3-testFPGA2
  remotes/origin/evard-dev
  remotes/origin/main
  remotes/origin/test-rev3-1094
  remotes/origin/vic-dev
  remotes/origin/vic-dev-yf1
  remotes/origin/vic-fix-fpga
petalinux@bb1824740530:~/workdir/petalinux/project/project-spec/meta-user/recipes-apps$ git switch dev
fatal: invalid reference: dev
petalinux@bb1824740530:~/workdir/petalinux/project/project-spec/meta-user/recipes-apps$ git switch dev^C
petalinux@bb1824740530:~/workdir/petalinux/project/project-spec/meta-user/recipes-apps$ cd ..
petalinux@bb1824740530:~/workdir/petalinux/project/project-spec/meta-user$ cd ..
petalinux@bb1824740530:~/workdir/petalinux/project/project-spec$ git submodule init  
Submodule 'kernel' (ssh://git@192.168.3.89:40089/esw/spruce/xlnx/kernel.git) registered for path '../kernel'
Submodule 'project-spec/meta-user/recipes-apps' (ssh://git@192.168.3.89:40089/esw/spruce/xlnx/apps/recipes-apps.git) registered for path 'meta-user/recipes-apps'
Submodule 'u-boot' (ssh://git@192.168.3.89:40089/esw/spruce/xlnx/uboot.git) registered for path '../u-boot'
Submodule 'xsa' (ssh://git@192.168.3.89:40089/esw/spruce/xlnx/xsa.git) registered for path '../xsa'
petalinux@bb1824740530:~/workdir/petalinux/project/project-spec$ git submodule update
Cloning into '/home/petalinux/workdir/petalinux/project/kernel'...
Cloning into '/home/petalinux/workdir/petalinux/project/project-spec/meta-user/recipes-apps'...
Cloning into '/home/petalinux/workdir/petalinux/project/u-boot'...
Cloning into '/home/petalinux/workdir/petalinux/project/xsa'...
Submodule path '../kernel': checked out 'ea8da6ced5c743545e3e0353b02a4b6b9036c9a3'
Submodule path 'meta-user/recipes-apps': checked out 'b53dada61cf496478d5c2ac90a5838e9bb11c814'
Submodule path '../u-boot': checked out '65c126970118f51af2d90acf2e97d52484ba0801'
Submodule path '../xsa': checked out '944552cf6876b5f8c8f2278302e316cfa6697e00'
petalinux@bb1824740530:~/workdir/petalinux/project/project-spec$ cd meta-user/recipes-apps/
petalinux@bb1824740530:~/workdir/petalinux/project/project-spec/meta-user/recipes-apps$ git switch dev
Previous HEAD position was b53dada apps: ps version: v1.0.0.19
Branch 'dev' set up to track remote branch 'dev' from 'origin'.
Switched to a new branch 'dev'
petalinux@bb1824740530:~/workdir/petalinux/project/project-spec/meta-user/recipes-apps$ cd ..
petalinux@bb1824740530:~/workdir/petalinux/project/project-spec/meta-user$ cd ..
petalinux@bb1824740530:~/workdir/petalinux/project/project-spec$ cd ..
petalinux@bb1824740530:~/workdir/petalinux/project$ petalinux-build 
environment: line 106: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
[INFO] Sourcing buildtools
environment: line 72: /opt/petalinux/v2021.2/components/yocto/buildtools/environment-setup-x86_64-petalinux-linux: No such file or directory
[INFO] Building project
petalinux-yocto: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
petalinux-yocto: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
[INFO] Generating Kconfig for project
ERROR: Failed to generate /home/petalinux/workdir/petalinux/project/build/misc/config/Kconfig.syshw
ERROR: Failed to Kconfig project
ERROR: Failed to build project. Check the /home/petalinux/workdir/petalinux/project/build/build.log file for more details...
petalinux@bb1824740530:~/workdir/petalinux/project$ 

网络配置

  • 使用macvlan
  • 使用host
  • 使用bridge

测试环境

启用CI/CD