跳转至

源码下载

您可以到全志客户服务平台获取相关源码:全志客户服务平台-资源下载
具体步骤如下。

登录全志客户服务平台官网

全志客户服务平台官网:全志客户服务平台
image-20210304100944411

注册账号

点击“立即注册”进行注册,注册表示同意全志科技相关用户协议。这里为了演示注册了一个用户名为123456的账号,请记住你的用户名,之后需要使用。

image-20210304101119394

生成钥匙对

首先我们需要一个钥匙对作为身份认证。打开之前配置好的Linux环境,这里演示使用的环境为 Ubuntu 16.04。

虚拟机安装请参考:编译环境配置 章节

使用 ssh-keygen 命令生成钥匙对。会让你输入路径,密钥密码。回车默认即可。

tina@VirtualBox:~$ ssh-keygen -t rsa

他会输出这样的内容

Generating public/private rsa key pair.
Enter file in which to save the key (/home/tina/.ssh/id_rsa): 
Created directory '/home/tina/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/tina/.ssh/id_rsa.
Your public key has been saved in /home/tina/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:hq5+CgAoqthKDxk+rw3mW6vt2TQ6VWtd+F9Ft3ttYBI tina@VirtualBox
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|.           E   o|
|+         .  . .o|
|+      o . .. o..|
|o.    o S o  o .+|
|+oo  o + . .   o+|
|oOo..oo     . ...|
|+.Xo*.o      .   |
|.==@=+           |
+----[SHA256]-----+

现在 ls ~/.ssh 文件夹可以看到一个公钥文件 id_rsa.pub 和密钥文件 id_rsa。可以使用cat 命令导出公钥。

tina@VirtualBox:~$ cat ~/.ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDW57CsnzEHwOlgUzqqvivmFToRsG8yMHiEfJe2o1FyZ0hrhzBr98GyQDPCd9JdaQkL1n2L+s50VFsUh1utiHYb4q96OfThu6csnSByFCbTtC2QfAO8knY3RkEIPrtozqsqjaVWifdT8lZ7Q2HtKiMtJ570zLy38Z5dH8ZGF4KBuJ3cPjMpwLovupgwnSWhanypURk93C1W4Fzh58WSWEpIe0GchYVfe76PYyuXfJ3WqqDcyv9jY8p2fQhmpn0wTD05RtmhlvVfraxbFcTDZAW1cOmgBbdH5l1YK85AbkQPjnn7LPkmhw52aJtV3xJ4jJtArNKXQw3ytfzZm/eFMHRj tina@VirtualBox

添加公钥

登录账号,点击上方菜单栏【资源下载】 左侧菜单栏的【公钥管理】找到右上角【创建】添加公钥,将刚才获得的公钥添加到此处(cat命令输出的全部内容),名称可以随便起一个,不影响其他操作。

image-20210304102808035

代码下载

点击【资源下载】--> 【SDK目录】--> 【D1-H】,可以看到 D1-H Tina SDK,点击下载会提示相关下载命令操作(这里图片使用的是 R329 的 SDK,但是操作是相同的,无视即可)。

image-20220620145927382

安装repo引导脚本

下载Tina前需要使用AW提供的引导脚本和repo仓库,如已安装了google官方引导脚本,请将google官方引导脚本替换成AW提供的引导脚本,两者不兼容。

使用 git 命令从全志服务器下载安装repo引导脚本,将username替换成客户下载账号的用户名

tina@VirtualBox:~$ git clone ssh://username@sdk.allwinnertech.com/git_repo/repo.git

示例(用户名是123456),询问 Are you sure you want to continue connecting (yes/no)? 的时候需要输入 yes

tina@VirtualBox:~$ git clone ssh://123456@sdk.allwinnertech.com/git_repo/repo.git

Cloning into 'repo'...
The authenticity of host 'sdk.allwinnertech.com (192.168.82.12)' can't be established.
ECDSA key fingerprint is SHA256:4/KSpPDtBnMDCx6aIqGWqTZqGG68yfZql5n3mI7zEqk.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'sdk.allwinnertech.com,192.168.82.12' (ECDSA) to the list of known hosts.
remote: Counting objects: 4032, done.
remote: Compressing objects: 100% (1262/1262), done.
remote: Total 4032 (delta 2733), reused 3932 (delta 2709)
Receiving objects: 100% (4032/4032), 977.88 KiB | 0 bytes/s, done.
Resolving deltas: 100% (2733/2733), done.
Checking connectivity... done.

如果遇到需要输入密码的情况,如下所示:

allwinner@VirtualBox:~$ git clone ssh://123456@sdk.allwinnertech.com/git_repo/repo.git
Cloning into 'repo'...
The authenticity of host 'sdk.allwinnertech.com (192.168.82.12)' can't be established.
ECDSA key fingerprint is SHA256:4/KSpPDtBnMDCx6aIqGWqTZqGG68yfZql5n3mI7zEqk.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'sdk.allwinnertech.com,192.168.82.12' (ECDSA) to the list of known hosts.
123456@sdk.allwinnertech.com's password: 

这是钥匙对配置错误的问题。请检查:

  • ls ~/.ssh/ 是否有钥匙对
  • ~/.ssh/ 文件夹下是否存在多个钥匙对,是否选择了正确的钥匙对
  • ssh 是否应用了钥匙对的设置
  • ~/.ssh/ 文件夹的权限是否为 700 (drwx------)
  • 客户服务平台的公钥是否提交并匹配本地密钥
  • 用户名大小写是否一致

可以参考 SDK下载常见问题及解决方案 进行解决。

然后repoclone到本地了,使用 ls 列出

tina@VirtualBox:~$ ls
repo

修改repo/repo 文件中下面一行,将username替换成客户下载账号的用户名,例如这里的123456,请注意大小写

# 替换前
REPO_URL='ssh://username@sdk.allwinnertech.com/git_repo/repo.git'
# 替换后
REPO_URL='ssh://123456@sdk.allwinnertech.com/git_repo/repo.git'

image-20220620150928669

保存,退出即可。

最后还需要把repo引导脚本添加到自己计算机环境变量中

cp repo/repo /usr/bin/repo
chmod 777 /usr/bin/repo

如果报错 Permission denied 请使用 sudo

# 使用sudo前
tina@VirtualBox:~$ cp repo/repo /usr/bin/repo
cp: cannot create regular file '/usr/bin/repo': Permission denied

# 使用sudo后
tina@VirtualBox:~$ sudo cp repo/repo /usr/bin/repo
tina@VirtualBox:~$ sudo chmod 777 /usr/bin/repo

即可使用,输入 repo help 测试是否成功

tina@VirtualBox:~$ repo help
usage: repo COMMAND [ARGS]

repo is not yet installed.  Use "repo init" to install it here.

The most commonly used repo commands are:

  init      Install repo in the current working directory
  help      Display detailed help on a command

For access to the full online help, install repo ("repo init").

如果报错以下内容,重新检查之前的环境变量是否正确配置。

tina@VirtualBox:~$ repo help
No command 'repo' found, did you mean:
 Command 'repo' from package 'phablet-tools' (universe)
 Command 'repo' from package 'repo' (universe)
 Command 'rep' from package 'rep' (universe)
repp: command not found

下载 SDK

首先创建一个文件夹存放下载的 SDK

tina@VirtualBox:~$ mkdir tina-D1-H

进入刚才创建的文件夹中

tina@VirtualBox:~$ cd tina-D1-H

使用用户名123456初始化repo仓库

tina@VirtualBox:~/tina-D1-H$ repo init -u ssh://123456@sdk.allwinnertech.com/git_repo/D1_Tina_Open/manifest.git -b master -m tina-d1-h.xml

如果此时提示需要输入密码,请检查:

  • repo/repo 文件中的用户名是否已经修改
  • 是否使用了google官方的repo引导脚本而不是AW的repo引导脚本
  • repo init -u 后面的初始化地址是否错误
  • repo init -u 后面的初始化地址是否为客户服务平台的最新版本
  • 用户名大小写是否一致
  • 用户名是否设置错误

可以参考 SDK下载常见问题及解决方案 进行解决。

如果此时提示 fatal: manifest 'xxxxx.xml' not available ,请检查 repo init -u 后面的初始化地址是否错误

如果此时提示 fatal: empty ident name (for <xxxx>) not allowed 请使用下面的命令配置git用户名与邮箱。

git config --global user.email "you@example.com"
git config --global user.name "Your Name"

发生以上错误后请 rm -rf .repo 删除 .repo 文件夹再重新尝试拉取。

最后repo引导脚本会提示是否使用彩色终端输出,输入 y 允许即可。

Testing colorized output (for 'repo diff', 'repo status'):
  black    red      green    yellow   blue     magenta   cyan     white 
  bold     dim      ul       reverse 
Enable color display in this user account (y/N)? 

最后,使用repo引导脚本同步仓库即可,同步完成后会自动签出 sdk 的代码,创建分支开始开发

tina@VirtualBox:~/tina-D1-H$ repo sync
tina@VirtualBox:~/tina-D1-H$ repo start product-smartx-d1-tina-v1.0-release --all

参考链接

全志客户服务平台指南:全志客户服务平台-资源下载