这里我是走了弯路,我当时没有想到还能单独下载交叉编译工具链,所以选择了下载SDK(sdk中包含交叉编译工具链)。
我是后来翻
论坛,在“码农爱学习”大佬的帖子下(
https://occ.t-head.cn/community/ ... 4006906640694579200)发现全志官方还有教程,刚好就有一篇讲helloworld程序的交叉编译,emmm当场高血压要发作了。全志官方教程链接:
https://d1.docs.aw-ol.com/study/study_6helloword/
全志的sdk下载有专有的流程,需要登录全志客户服务平台操作,登录地址如下
https://open.allwinnertech.com/#/login?cas=true
登录后的界面如下:
我们需要下载的SDK如红框所示,点击"SDK"即可进入下载界面,界面如下:
此时点击下载,会弹出免责申明,点击同意之后,会弹出sdk下载说明如下图所示:
这里的下载说明只是简述,详细的流程见如下网址(
http://open.allwinnertech.com/gu ... xia_zai/zi_yuan_ku/),其界面如下:
基本的配置说明以及可能遇到的问题都有一定说明。我的配置流程如下。
公钥的来源可以在Linux下使用“ssh-keygen”指令生成,一路回车即可,最后会在用户目录.ssh目录下生成id_rsa和id_rsa.pub两个文件,其中的id_rsa.pub文件既是公钥文件。将公钥文件按文本方式打开,复制其中的内容。下图是官网上扒下来的生成秘钥的截图。
这是我使用的方法,这样可以使得windows和Linux的秘钥保持一致,操作也比较简单。
点击key->generate key pair之后,保持鼠标在软件界面内移动即可(这个软件已鼠标移动轨迹为基础生成秘钥),生成之后界面如下,key comment文本行可选择性的填写。生成之后记得将公钥和私钥保存下来。将界面上显示的公钥文本复制下来。
按如下步骤(Conversions-> Export OpenSSH key)即可生成Linux下可用的秘钥,假设保存为xxx文件
将xxx文件拷贝到Linux目录~/.ssh下,并在~/.ssh目录下建立文件名为config的文件,在文件中输入如下内容
Iden
tityFile ~/.ssh/xxx
保存文件,将xxx文件权限更改为700。
打开全志官网公钥管理界面(
https://open.allwinnertech.com/#/sdk/0/key),将上述流程中复制的公钥文本复制到公钥文本框中,名称按需填写,点击确定即可添加公钥。
执行如下指令测试公钥是否添加成功:
ssh
USERNAME@sdk.allwinnertech.com
如果添加成功,则会显示如下信息:
注意不能使用Google官方的引导脚本,需要使用全志提供的引导脚本和repo仓库,其流程如下:
使用如下指令下载,需要将username替换成全志官网的账户名。
git clone ssh://username@sdk.allwinnertech.com/git_repo/repo.git
将repo库下载成功之后,修改repo/repo文件中下面一行,将username替换成客户下载账号的用户名
REPO_URL='ssh://username@sdk.allwinnertech.com/git_repo/repo.git'
可执行下面的指令:
cp repo/repo /usr/bin/repo $ chmod 777 /usr/bin/repo
也可以使用ln -s指令创建软连接。
由于全志的repo依赖python2.6~2.7,因此需要安装一个对应版本的python,安装完成之后,记得将将/usr/bin/python替换或者软连接到python2.7。
下载就按下载说明中的步骤执行即可。
- 创建sdk存放文件夹xxx并进入。
- 执行指令 repo init -u ssh://ziqifeinv@sdk.allwinnertech.com/git_repo/D1_Tina_Open/manifest.git -b master -m tina-d1-h.xml
注意这里也许会提示你配置git用户名和邮箱,如下图所示:
可以直接全局配置,也可进入xxx/.repo/manifests.git目录下给当前项目配置。
另外可能会提示身份不一致的问题,如下图所示:
就行文本所提示的那样,可直接在上述repo init指令后接 --config-name yourname并执行,会提示输入name和email,输入并确认即可。
注意多留一点空间,源码不是一般的大啊,起码10G左右。
执行 repo start product-smartx-d1-h-tina-stable-v2.0 --all 指令,创建分支。完成之后代码库状态如下:
至此,源码下载完成了,可以进行tina镜像编译并打包等,各位自行探索,我要他的交叉编译工具链试试helloworld程序。
这里建议将工具链的可执行文件路径加入到环境变量,这样可以在任意地方执行riscv64-unknown-linux-gnu-gcc,还是很方便的,做法也很简单,在~/.bashrc文件末尾加上如下语句:
PATH=$PATH:你riscv64-unknown-linux-gnu-gcc所在的文件夹,如PATH=$PATH:/home/daxiong/Desktop/sipeed_licheeRV_86_panel/tina-d1-h/prebuilt/gcc/linux-x86/riscv/toolchain-thead-glibc/riscv64-glibc-gcc-thead_20200702/bin
然后执行 source ~/.bashrc 就可以导入环境变量了。
这个就比较简单了,主要是使用交叉编译工具链编译一个helloworld程序,然后上传到
开发板上执行,这里我就直接放结果了:
我用的scp指令,直接将Linux虚拟机下的程序传到开发板(虚拟机要装Samba服务)
这倒是挺符合预期的
明天试试移植lgvl,今天太晚了。