这是本文档旧的修订版!
目录
DEY嵌入式Linux系统开发环境搭建
嵌入式linux系统通常需要根据目标设备所需的接口和软件包做适当的裁减和定制,来生成可运行在目标设备上的稳定而小巧的Linux系统固件。这主要是因为不同的设备会有不同的接口需求,没有必要做一套大而全的系统和预装不必要的软件和驱动。就像网关设备没必要集成音视频接口和多媒体播放器,而对于需要人机交互的仪器仪表来说图形化的显示界面是必不可少的,因此系统开发的目的是通过为不同设备定制不同的内核和文件系统镜像,减少不必要的软件包和驱动支持,以便让目标系统能更加稳定可靠地运行。
要进行DEY系统开发,首先您需要有一台安装有Linux的操作系统的电脑,我们推荐您安装64bit的Ubuntu22.04等Yocto支持的系统。通常并不建议在Windows下安装个Linux虚拟机这样的方式来搭建DEY系统开发环境,这是因为以Yocto的方式编译定制的Linux比较耗资源和时间。进行DEY开发编译时在Linux环境下进行,最好是使用一台专用的Linux系统开发服务器,通过远程ssh登陆的方式来进行相关的系统开发。
为了确保Yocto开发环境能正常工作,用于开发的电脑配置需要至少需要16G以上的内存,500G以上的硬盘空间。通常建议选配四核以上的CPU以加快编译速度。
制作Ubuntu启动盘并安装
有许多磁盘工具都可以用来制作U盘启动的安装盘,包括一些开源免费的软件,比如Rufus和UNetbootin,LinuxLive USB Creator等等。 以Rufus为例,为了更快完成启动盘制作,能常采用DD的模式来把镜像写入到U盘中。
制作好U盘启动的Ubuntu安装盘,您还需要配置你的电脑BIOS使其支持从U盘启动。现在比较新的电脑一般都默认支持,并且开机时,都有一个启动选项按钮,比如HP的电脑是F9,如果您不清楚,可以进入BIOS查询或是网上搜索一下你的笔记本品牌的开机启动方式按钮。
在开机时选择从U盘启动,就可以按界面提示一步一步完成Ubuntu操作系统的安装。
安装完成后,您还可以选择安装一些常用的软件包,比如中文支持和tftp服务器等,如果您有兴趣,请参考:ubuntu常用软件安装配置
安装前准备工作
由于Yocto4.0后,必须用python3,因此如果您需要同时开发DEY3.2或以前的版本,建议早期的DEY开发环境用docker的方式来安装,这样同一台电脑可以同时维护不同版本的DEY,请参考DEY-AIO项目来搭建系统开发环境。 安装软件前,请先进入root模式,安装所需的依赖包,如果您是
$ sudo apt update $ 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 pylint xterm python3-subunit mesa-common-dev zstd liblz4-tool 确保是用python3,还需要安装这个包 $ sudo apt install python-is-python3
原则上,采用全新安装的ubuntu系统,按上面方式操作,后续编译系统固件就不会有任何问题。如果您只需要编译早期的DEY时,您可以用更早的Ubuntu发行版本。
Yocto开发方式依赖于通过网络下载所需的开源软件包源码,由于Linux中许多上游的开源软件包托管在被GFW和谐掉的服务器上,首次编译时需要科学上网环境。由于国家政策的原因已经不太好购买翻墙路由器。有条件的用户,也可以用境外的云服务器来自己搭建VPN来实现科学上网。如果您有境外的云服务器,需要安装VPN,可以使用peyoot/pvpn这个开源的脚本来实现自动化科学上网环境部署。
如果没有条件科学上网,目前中国区也提供了国内安装和编译的方法,请继续阅读按下面的方法来安装或编译DEY。
使用repo工具安装DEY
完成上述准备工作后,就可以安装repo了,DEY项目托管在github上,采用repo工具来管理软件包的升级和更新。而repo是谷歌开发的git管理工具,因此repo的官方安装方法需要翻墙。目前国内已有repo镜像可以直接使用,你可以国内源来获取可用的repo。此外,Ubuntu 22.04等发行版已经提供repo包,您可以直接用apt的方式安装。
如果您在root终端里,请先退出,将来使用repo也无需用root权限,普通用户就可以 下载repo并移到PATH包含的路径 Repo的下载地址经常变动,但总可以到Google的android开发下载页面找到对的地址,如果Repo下载地址有变,请到http://source.android.com/source/downloading.html查找正确的URL。 #我们将直接下载到/usr/local/bin,请确保是root权取 在普通用户终端窗口执行下面命令,以便在有root权限: $ sudo -H tmux 下载repo,使用下面命令前请确保已经可科学上网,如未设置科学上网,请用参考后面国内源或用apt的方式安装。 #curl -o /usr/local/bin/repo http://commondatastorage.googleapis.com/git-repo-downloads/repo #chmod a+x /usr/local/bin/repo

