差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
digi:arm-embedded:linux:dey:system-development [2023/07/03 12:52] – robin | digi:arm-embedded:linux:dey:system-development [2024/07/29 11:48] (当前版本) – robin | ||
---|---|---|---|
行 3: | 行 3: | ||
- | 要进行DEY系统开发,首先您需要有一台安装有Linux的操作系统的电脑,我们推荐您安装64bit的[[http:// | + | 要进行DEY系统开发,首先您需要有一台安装有Linux的操作系统的电脑,我们推荐您安装64bit的[[http:// |
- | 为了确保Yocto开发环境能正常工作,用于开发的电脑配置需要至少需要8G以上的内存,200G以上的硬盘空间。通常建议选配四核以上的CPU以加快编译速度。 | + | 为了确保Yocto开发环境能正常工作,用于开发的电脑配置需要至少需要16G以上的内存,500G以上的硬盘空间。通常建议选配四核以上的CPU以加快编译速度。 |
====制作Ubuntu启动盘并安装==== | ====制作Ubuntu启动盘并安装==== | ||
行 19: | 行 19: | ||
====安装前准备工作==== | ====安装前准备工作==== | ||
+ | 由于Yocto4.0后,必须用python3,因此如果您需要同时开发DEY3.2或以前的版本,建议早期的DEY开发环境用docker的方式来安装,这样同一台电脑可以同时维护不同版本的DEY,请参考[[https:// | ||
安装软件前,请先进入root模式,安装所需的依赖包,如果您是 | 安装软件前,请先进入root模式,安装所需的依赖包,如果您是 | ||
< | < | ||
$ sudo apt update | $ sudo apt update | ||
+ | $ sudo apt install gawk wget git diffstat file unzip texinfo gcc build-essential chrpath socat cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint xterm python3-subunit mesa-common-dev zstd liblz4-tool | ||
+ | 确保是用python3, | ||
+ | $ sudo apt install python-is-python3 | ||
+ | </ | ||
+ | 原则上,采用全新安装的ubuntu系统,按上面方式操作,后续编译系统固件就不会有任何问题。如果您只需要编译早期的DEY时,您可以用更早的Ubuntu发行版本。 | ||
+ | <hidden 使用旧版ubuntu注意事项> | ||
+ | 原则上,需要采用Ubuntu 18.04及其以上的版本来从事开发,对于DEY 3.2之前的版本,使用旧版本的Ubuntu仍可以正常编译,使用Ubuntu编译DEY3.2之前的版本,可以用 | ||
+ | < | ||
$ 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 | $ 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 | ||
- | DEY 4.0以上需要更多的一些包,可以使用下面命令检查额外的一些包是否安装 | ||
- | $ sudo apt install gawk wget git diffstat unzip texinfo gcc build-essential chrpath socat cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint3 xterm python3-subunit mesa-common-dev zstd liblz4-tool | ||
</ | </ | ||
- | 原则上,采用最新版本全新安装的ubuntu系统,上述的包已经足够。如果您的电脑是很早以前就安装好的,内核较旧且没有怎么更新过,有可能还需要再加装一些软件包,以防止系统不断更新后出现编译出错的情况。比如< | + | 更早的版本需要要加装一些硬件增强包。 |
Ubuntu 16.04和14.04的包名有所不同,请根据你的系统版本操作: | Ubuntu 16.04和14.04的包名有所不同,请根据你的系统版本操作: | ||
Ubuntu 14.04: | Ubuntu 14.04: | ||
行 38: | 行 44: | ||
$ sudo apt install linux-generic-hwe-16.04 | $ sudo apt install linux-generic-hwe-16.04 | ||
</ | </ | ||
+ | |||
</ | </ | ||
- | Yocto开发方式依赖于通过网络下载所需的开源软件包源码,由于Linux中许多上游的开源软件包托管在被GFW和谐掉的服务器上,因此如果办公环境能够翻墙最为方便。由于国家政策的原因已经不太好购买翻墙路由器。有条件的用户,也可以用境外的云服务器来自己搭建VPN来实现翻墙。如果您有境外的服务器,需要协助安装VPN,请联系。 | + | Yocto开发方式依赖于通过网络下载所需的开源软件包源码,由于Linux中许多上游的开源软件包托管在被GFW和谐掉的服务器上,首次编译时需要科学上网环境。由于国家政策的原因已经不太好购买翻墙路由器。有条件的用户,也可以用境外的云服务器来自己搭建VPN来实现科学上网。如果您有境外的云服务器,需要安装VPN,可以使用[[https:// |
- | 如果没有条件翻墙,目前中国区也提供了国内安装和编译的方法,请继续阅读按下面的方法来安装或编译DEY。 | + | 如果没有条件科学上网,目前中国区也提供了国内安装和编译的方法,请继续阅读按下面的方法来安装或编译DEY。 |
====使用repo工具安装DEY==== | ====使用repo工具安装DEY==== | ||
+ | 接下来首先要安装repo, | ||
+ | 我们将直接下载到/ | ||
+ | < | ||
+ | $ sudo -H tmux | ||
+ | </ | ||
+ | 下载repo,使用下面命令前请确保已经可科学上网,如未设置科学上网,请用参考后面国内源或用apt的方式安装。 | ||
+ | < | ||
+ | $ curl -o / | ||
+ | $ chmod a+x / | ||
+ | </ | ||
- | 完成上述准备工作后,就可以安装repo了,DEY项目托管在github上,采用repo工具来管理软件包的升级和更新。而repo是谷歌开发的git管理工具,因此repo的官方安装方法需要翻墙。目前国内已有repo镜像可以直接使用,你可以用下面方法来获取国内可用的repo. | + | 如果无法翻墙,也可以用国内源或系统发行版官方源的方式安装,< |
+ | Ubuntu 22.04 或其它提供官方repo下载的发行版,可以直接使用官方源安装,如: | ||
+ | < | ||
+ | $ sudo apt install repo | ||
+ | </ | ||
+ | 如果发行版不带repo,又无法科学上网,可使用清华源的方式安装repo | ||
< | < | ||
- | 如果您在root终端里,请先退出,将来使用repo也无需用root权限,普通用户就可以 | ||
- | 下载repo并移到PATH包含的路径 | ||
$ curl https:// | $ curl https:// | ||
$ chmod +x repo | $ chmod +x repo | ||
行 60: | 行 80: | ||
这样,以后在登录用户下,就可以直接使用repo了 | 这样,以后在登录用户下,就可以直接使用repo了 | ||
</ | </ | ||
- | <hidden 如果可以翻墙,也可以用官方repo的下载方法,点击展开查看详情> | ||
- | < | ||
- | 如果你已经用了国内repo源,请略过,除非您想用Google官方的repo源,请确定您已经翻墙 | ||
- | Repo的下载地址经常变动,但总可以到Google的android开发下载页面找到对的地址,如果Repo下载地址有变,请到http:// | ||
- | # | ||
- | 在普通用户终端窗口执行下面命令,以便在有root权限: | ||
- | $ sudo -H byobu | ||
- | 下载repo | ||
- | #curl -o / | ||
- | #chmod a+x / | ||
- | </ | ||
- | |||
</ | </ | ||
- | 接下来就可以去下载DEY, | + | 接下来就可以去下载DEY,请在普通用户权限下操作,将来DEY只需用登录用户的权限,可把命令中的$USER换成您电脑的用户名: |
- | 请在普通用户权限下操作,将来DEY只需用登录用户的权限,注意把命令中的robin换成您电脑的用户名: | + | |
新建一个DEY源码目录 | 新建一个DEY源码目录 | ||
进一步操作前,需要退出root,因为yocto的项目编译不推荐用root,而是用你的用户名,在上面创建dey安装目录时我们已经把该目录提定给自己登录系统时的用户。 | 进一步操作前,需要退出root,因为yocto的项目编译不推荐用root,而是用你的用户名,在上面创建dey安装目录时我们已经把该目录提定给自己登录系统时的用户。 | ||
- | 如果您还是root的终端,请先执行退出root权限的会话终端,切换到普通用户的会话窗口。 | + | 如果您还是root的终端,请先执行退出root权限的tmux会话终端,切换到普通用户的会话窗口。 |
< | < | ||
- | exit | + | $ exit |
</ | </ | ||
安装前,先根据所需的DEY版本准备一个安装目录 | 安装前,先根据所需的DEY版本准备一个安装目录 | ||
< | < | ||
- | $ sudo install -o robin -g robin -d / | + | $ sudo install -o $USER -g $USER -d / |
- | | + | |
- | (或者,我们在同一台电脑上要安装不同版本的dey,也可以多一级目录,甚至可以指定小版本号以明确您 同步的是哪个版本,比如dey 3.0的代号gatesgarth,最后一次更新是dey-3.2-r3.1。 | + | |
- | $ sudo install -o robin -g robin -d / | + | |
- | ) | + | |
</ | </ | ||
上面命令中,我们新建了一个dey-4.0的目录,DEY有不同的版本支持不同的内核版本和硬件平台,您可以到 | 上面命令中,我们新建了一个dey-4.0的目录,DEY有不同的版本支持不同的内核版本和硬件平台,您可以到 | ||
行 107: | 行 110: | ||
$ repo init -u https:// | $ repo init -u https:// | ||
$ repo sync -j4 --no-repo-verify | $ repo sync -j4 --no-repo-verify | ||
- | (如果您的电脑是双核的,请用-j2或是不用-j4这个参数,或是只用repo sync命令) | ||
</ | </ | ||
注意,官方的版本代号永远都指向DEY-m.n的最新版本,您如果在后续使用中,用repo sync更新DEY安装目录,在DEY的安装目录下的source/ | 注意,官方的版本代号永远都指向DEY-m.n的最新版本,您如果在后续使用中,用repo sync更新DEY安装目录,在DEY的安装目录下的source/ | ||
- | 在同一台电脑上可以安装多个版本,对于不同的大版本号(dey2.0/ | + | Digi会维护每个已经发行的版本(包括小版本号和大版本号),所以如果您在已经在某个版本上成熟开发应用,也无需使用最新的大版本。如果要在同一电脑上使用不同的DEY版本,建议使用DEY-AIO项目。 |
<hidden DEY1.6等早期版本的安装方法> | <hidden DEY1.6等早期版本的安装方法> | ||
行 124: | 行 126: | ||
====其它安装DEY的方法==== | ====其它安装DEY的方法==== | ||
- | 我们推荐您使用repo工具来安装DEY,这样您能比较方便地获取最新的DEY版本。如果访问国内repo源不便时,又不能通过翻墙下载repo的时候,您也可以参照下面方法安装指定的DEY版本。< | ||
- | **压缩包解压直接安装** | ||
- | < | ||
- | * [[# | ||
- | * [[# | ||
- | |||
- | <pane id=" | ||
- | 请到下面链接下载指定版本的压缩包 \\ | ||
- | < | ||
- | DEY 2.6下载:http:// | ||
- | |||
- | </ | ||
- | |||
- | 解压安装能让您快速安装和编译测试DEY,但它没有和官方的发布保持更新,所以为了取得更新版本和更好的管理维护,建议用repo的方式来安装。\\ | ||
- | 下载好DEY压缩包文件后,用下面命令解压到/ | ||
- | < | ||
- | cd /usr/local/ | ||
- | sudo tar -jxvf dey-2.6r22.tar.bz2 -C /usr/local | ||
- | sudo chown -R myuserid: | ||
- | </ | ||
- | 这样就安装好了DEY 2.6-r2.2。 | ||
- | 为了正常编译,您还需下载编译过程生成的downloads目录, | ||
- | < | ||
- | x00下载: http:// | ||
- | x01下载:http:// | ||
- | 请在Linux主机上保存,然后用下面命令合并 | ||
- | cat x* > dey26-cc6ul-downlods.tar.gz | ||
- | tar zxvf dey26-cc6ul-downloads.tar.gz | ||
- | </ | ||
- | |||
- | </ | ||
- | <pane id=" | ||
- | 请到下面链接下载指定版本的压缩包 \\ | ||
- | < | ||
- | DEY 2.4下载:http:// | ||
- | </ | ||
- | 解压安装能让您快速安装和编译测试DEY,但它没有和官方的发布保持更新,所以为了取得更新版本和更好的管理维护,建议用repo的方式来安装。 | ||
- | 下载好DEY压缩包文件后,用下面命令解压到/ | ||
- | < | ||
- | cd /usr/local/ | ||
- | sudo tar -jxvf dey2.4r2.tar.bz2 -C /usr/local | ||
- | sudo chown -R myuserid: | ||
- | </ | ||
- | 这样就安装好了DEY 2.4r2。 | ||
- | 为了正常编译,您还需下载编译过程生成的downloads目录, | ||
- | < | ||
- | 本地编译所需downloads压缩包下载: | ||
- | |||
- | 请在Linux主机上保存,然后用下面命令合并 | ||
- | tar jxvf dey24r2downloads.tar.bz2 | ||
- | </ | ||
- | |||
- | </ | ||
- | |||
- | </ | ||
- | 注意这个downloads的位置默认在你的项目文件夹内,你也可以在项目配置中更改为上一级目录,如果您在配置文件conf/ | ||
- | \\ | ||
**docker安装** | **docker安装** | ||
- | 略 | + | DIGI中国区维护一个[[https:// |
- | **Git安装** | + | **带预编译项目的虚拟机镜像** |
+ | 我们推荐您使用repo工具来安装DEY,这样您能比较方便地获取最新的DEY版本。如果访问国内repo源不便时,又不能通过翻墙下载repo的时候,您也可以参照下面方法安装指定的DEY版本。< | ||
+ | 虚拟机镜像往往非常大,这不是推荐的方式,为了取得更新版本和更好的管理维护,建议用repo的方式来安装。但如果您系统开发中遇到科学上网等问题,可以向Digi中国区索取您所需的版本。 | ||
- | 还有一种方式是用ECCEEgit来安装DEY。在国内repo工具无法下载的时候,git下载成为一个获取最新DEY的渠道。ECCEE git服务器是免费安全的企业版本控制管理平台,通过ECCEE git服务,您可以为企业搭建一个私密的git服务器,它和github的区别在于,github只能托管免费开源的代码,私密的需要付费并且费用很贵,而Eccee git目前能接受免费的私密git服务托管,为您企业内部的团队协作和版本控制提供简单和高效的平台。详细用法请参考[[digi: | ||
- | 您只需注册Ecceegit服务,就可以直接用git来colone一个DEY本地库。 | ||
- | |||
- | DEY 2.6的地址为: | ||
- | |||
- | 以dey 2.2为例,完整的步骤请参考下述命令: | ||
- | < | ||
- | 在你的用户名下,下面的robin请改为你的用户ID | ||
- | sudo install -o robin -g robin -d / | ||
- | cd / | ||
- | git clone http:// | ||
- | 或是,如果您有相应的Ecceegit帐号,用SSH检出 | ||
- | git clone ssh:// | ||
- | 相应地,当创建项目时, | ||
- | |||
- | </ | ||
</ | </ | ||
行 330: | 行 261: | ||
< | < | ||
CC6或CC6UL用下面命令编译 | CC6或CC6UL用下面命令编译 | ||
- | bitbake dey-image-qt | + | bitbake |
+ | 镜像名可以是core-image-base, | ||
</ | </ | ||
行 337: | 行 269: | ||
bitbake dey-image-graphical | bitbake dey-image-graphical | ||
</ | </ | ||
- | 默认地,这将编译一个基于X11视窗并带QT库支持的镜像。编译时间根据电脑配置不同而略有不同,使用较新的高配置电脑,编译时间仍可能长达6个小时以上。因此,建议您在执行这个命令时做好让电脑整夜编译的准备。 | + | 编译时间根据电脑配置不同而略有不同,使用较新的高配置电脑,编译时间仍可能长达6个小时以上。因此,建议您在执行这个命令时做好让电脑整夜编译的准备。 |
- | 如果只需要编译基于framebuffer并带QT库支持的镜像,需要在配置文件conf/ | ||
- | < | ||
- | DISTRO_FEATURES_remove = " | ||
- | </ | ||
- | 同样的命令执行编译过程,这将会生成一个不带X11视窗系统的镜像。 | ||
如果连LCD液晶屏显示都不需要,可以编译一个不带屏显支持的固件镜像: | 如果连LCD液晶屏显示都不需要,可以编译一个不带屏显支持的固件镜像: | ||
< | < | ||
bitbake core-image-base | bitbake core-image-base | ||
</ | </ | ||
- | 编译好的镜像可以在项目文件夹下/ | + | 编译好的镜像可以在项目文件夹下/ |
* 启动镜像,扩展名为vfat, | * 启动镜像,扩展名为vfat, | ||
* 不同格式后缀的根文件系统镜像,包括: | * 不同格式后缀的根文件系统镜像,包括: | ||
行 358: | 行 285: | ||
* Linux内核镜像,.bin后缀,可以烧入到已有的FAT启动分区 | * Linux内核镜像,.bin后缀,可以烧入到已有的FAT启动分区 | ||
* Linux内核设备树镜像,.dtb后缀,可以烧入到已有的FAT启动分区 | * Linux内核设备树镜像,.dtb后缀,可以烧入到已有的FAT启动分区 | ||
+ | |||
+ | 对于ST系的固件名称略有不同,可以[[https:// | ||
您可以用Uboot命令把镜像写入eMMC或SD卡, | 您可以用Uboot命令把镜像写入eMMC或SD卡, |