源码下载
D1s 与 D1-H 使用相同的源码仓库,下载 D1-H 的源码即可。
您可以到全志客户服务平台获取相关源码:全志客户服务平台-资源下载
具体步骤如下。
登录全志客户服务平台官网
全志客户服务平台官网:全志客户服务平台
注册账号
点击“立即注册”进行注册,注册表示同意全志科技相关用户协议。这里为了演示注册了一个用户名为123456的账号,请记住你的用户名,之后需要使用。
生成钥匙对
首先我们需要一个钥匙对作为身份认证。打开之前配置好的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
命令输出的全部内容),名称可以随便起一个,不影响其他操作。
代码下载
点击【资源下载】--> 【SDK目录】--> 【D1-H】,可以看到 D1-H Tina SDK
,点击下载会提示相关下载命令操作(这里图片使用的是 R329 的 SDK,但是操作是相同的,无视即可)。
安装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下载常见问题及解决方案 进行解决。
然后repo
就clone
到本地了,使用 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'
保存,退出即可。
最后还需要把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
V1.0 版本硬件安装 D1s Nezha 补丁包
下载下来的 SDK 默认是不支持 D1s Nezha v1.0 开发板的,需要额外安装补丁包以支持 D1s Nezha v1.0 开发板。
首先前往【全志在线开发者社区 - 资源下载】下载 D1s哪吒 Patch
下载后重命名为 d1s-nehza-package.tar.gz
传入上面下载好的 SDK 更目录。
打开命令行,解压即可
tar xvf d1s-nehza-package.tar.gz
参考链接
全志客户服务平台指南:全志客户服务平台-资源下载