DEY-ALL-IN-ONE快速开发调试基于Digi平台的项目
DEY-ALL-IN-ONE是Digi中国区推出的开源项目。旨在帮助新用户快速掌握基于Digi ConnectCore开发套件的DEY嵌入式系统开发和版本控制管理技巧。本项目适合用Digi开发套件或工控主板(单板机),以及基于Digi单板机设计的用户项目,通过本项目,用户可以在不深入了解yocto的基础上,学会快速的系统开发技巧,了解设备树和内核配置在项目文件夹中的位置,并学习设备树驱动的修改和定制rootfs的方法。
DEY-ALL-IN-ONE目前支持imx6ul,imx8m nano,imx8x三大主流平台。下载安装好DEY-ALL-IN-ONE,您就已经安装好多平台多版本的DEY系统开发环境。
一、安装DEY-ALL-IN-ONE
您需要准备一台干净的Linux机器并安装有桌面系统,以Ubuntu 18.04为例,首先预安装Yocto必要的软件包:
sudo apt update sudo apt install curl gawk wget git-core diffstat unzip texinfo gcc-multilib g++-multilib build-essential \ chrpath socat cpio python python3 python3-pip python3-pexpect \ libsdl1.2-dev xterm libncurses5-dev libncursesw5-dev lzop
为了更高效地并行开发多个项目,您需要用git版本控制的方法来管理项目。如果公司没有配备git服务器,并且出于安全考虑也不愿意使用开放源码的github或gitee等码云服务,那么您还可以使用免费私密的Eccee Git服务,进一步操作前,请先注册个帐号。 (注:代码托管到服务器上并非必要,本地也可以用git管理多个版本,只是出于安全考虑最好将成熟的代码版本存放在服务器上,以便本地修改出错时及时恢复可用版本。 先配置一下本地git的全局用户名和邮箱
git config --global user.name "your name" git config --global user.email "your email"
下载DEY-ALL-IN-ONE
cd git clone http://gitlab.eccee.com:11080/digirobin/dey-all-in-one
首次使用DEY-ALL-IN-ONE,您还需要把DEY版本和官方同步,这里用到repo工具是Google提供的,如果您无法翻墙,可以使用国内的repo镜像。
如果您在root终端里,请先退出,将来使用repo也无需用root权限,普通用户就可以 下载repo并移到PATH包含的路径 $ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo $ chmod +x repo $ sudo mv repo /usr/local/bin/ 指定REPO_URL为国内源 $ nano ~/.bashrc 在该文件末尾加上一行 export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/' 然后CTRL+O保存后,按CTRL+X退出,执行下面命令使之生效 $ source ~/.bashrc 这样,以后在登录用户下,就可以直接使用repo了
用repo下载官方的DEY版本,您可以安装多个DEY版本,也可以只安装最新的版本(当前为3.0),以DEY3.0为例
cd cd dey-all-in-one/dey-3.0 repo init -u https://github.com/digi-embedded/dey-manifest.git -b zeus repo sync --no-repo-verify
创建新项目并编译,以cc8x为例
git reset --hard cd cd cc8x/3.0/ source ../../dey-3.0/mkproject.sh -p ccimx8x-sbc-pro git reset --hard bitbake dey-image-qt <code> 注意上面中的git reset --hard, 在和官网同步DEY时,会覆盖dey-all-in-one中的改动,两个git reset --hard均是为了复原dey-all-in-one中的变动。第一个是为了让创建项目的脚本支持自定义的meta-custom,这当中有向rootfs添加自定义文件的例子。第二个是为了把本地配置变动conf/local.conf等也复原。 由于编译时有时会用编译生成的文件覆盖变动,所以有一个版本控制的源码托管平台很重要,只有这样才能实现多平台多版本的开发。
- 拉取现有项目源码进行编译
为了方便dey-all-in-one的脚本识别和执行发布,当您创建分支时,请以cc6ul,cc8mn,cc8x作为前缀。我们以cc8x-fusion10分支为例。默认的镜像由于支持最新的LCD开发套件(友达光电工业屏),有些用户手上有上一代的Fusion 10“屏,可以通过修改设备树来实现更换不同显示屏的支持。
git pull origin cc8x-fusion10:cc8x-fusion10 cd cd cc8x/3.0/ source dey-setup-environment git reset --hard bitbake -C compile virtual/kernel bitbake dey-image-qt
- 发布编译结果
不论是新项目,还是拉取项目分支编译,最终需要把编译结果拷出来,以供卡刷或是tftp网络升级固件使用。dey-all-in-one利用脚本快速将所需的固件拷贝到release目录下,或是拷贝到tftp服务器的根目录中,以方便用户使用。 Digi中国区也可以利用该脚本将最新的官方固件编译结果发布到dey-mirror服务器上以供国内用户快速下载和测试。
使用方法:
$ ./copyrelease.sh 然后根据提示选择平台和版本,镜像名称等,最终根据选择内容将结果拷本到release目录中不同平台的对应路径下。