# Phytium-Linux-Yocto **Repository Path**: phytium_embedded/phytium-linux-yocto ## Basic Information - **Project Name**: Phytium-Linux-Yocto - **Description**: 本项目发布了基于Yocto 4.0的phytium Linux sdk 组件, 适用于飞腾CPU,包括编译工具,交叉工具链,启动镜像文件,文件系统,请依据本项目的readme和《飞腾嵌入式Linux Yocto4.0用户手册》来构建 Phytium Embedded Linux. - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 19 - **Forks**: 13 - **Created**: 2022-08-09 - **Last Updated**: 2025-06-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # phytium-linux-yocto Yocto Project 是一个开源的协作软件,提供模板、工具和方法帮你创建定制的 Linux 系统和嵌入式产品,而无需关心硬件体系。适合嵌入式Linux开发人员使用。 phytium-linux-yocto基于Yocto,适配了飞腾E2000,D2000,FT-2000/4等CPU和X100套片,支持用户定制系统。 用户手册位于https://gitee.com/phytium_embedded/phytium-embedded-docs/tree/master/linux # 预备知识 Yocto涉及了rootfs、make、Kconfig、Linux command、Shell scripts、U-Boot、Linux kernel、dts等相关知识,了解与熟悉它们有助于Yocto的使用。 了解上述知识,可以参考Wiki:[相关知识与学习链接](https://gitee.com/phytium_embedded/phytium-linux-yocto/wikis/%E7%9B%B8%E5%85%B3%E7%9F%A5%E8%AF%86%E4%B8%8E%E5%AD%A6%E4%B9%A0%E9%93%BE%E6%8E%A5) # 开发环境 ## 系统要求 我们只支持在Ubuntu22.04、Debian11这二种x86主机上运行,最少4GB内存,磁盘剩余空间至少50GB ## 通过脚本自动设置编译环境 进入工程根目录执行以下命令自动完成开发环境设置 ``` $ git clone https://gitee.com/phytium_embedded/phytium-linux-yocto.git $ cd phytium-linux-yocto $ source phyt_yocto_setenv.sh 该脚本实现了自动安装主机环境、工具链部署和构建目录生成 $ bitbake core-image-minimal ``` ## 手动设置编译环境 phytium-linux-yocto 需要主机系统上安装如下软件包 ``` $ sudo apt-get install build-essential chrpath cpio debianutils diffstat file gawk gcc git iputils-ping libacl1 liblz4-tool locales python3 python3-git python3-jinja2 python3-pexpect python3-pip python3-subunit socat texinfo unzip wget xz-utils zstd ``` ## 通过repo manifest获取phytium-linux-yocto ``` 安装 repo 工具: $: mkdir ~/bin $: curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo $: export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo' $: chmod a+x ~/bin/repo Download the Yocto layers: $: export PATH=~/bin:${PATH} $: mkdir $: cd $: repo init -u https://gitee.com/phytium_embedded/phytium-linux-yocto -m default.xml $: repo sync --force-sync ``` # 支持开发板 支持飞腾嵌入式CPU, E2000 D2000 FT-2000/4 等CPU. # 构建镜像 ## 构建phytium 镜像: ``` $: . ./setup-env -m phytium $: bitbake core-image-minimal 或: $: bitbake core-image-xfce 或: $: bitbake phydisk ``` ## 支持GNOME桌面 ``` $: bitbake core-image-gnome ``` ## 支持编译SD卡镜像 在local.conf 里添加变量如下变量 MACHINE_FEATURES:append = " sd" ``` $ bitbake phydisk ``` 镜像的输出位置 tmp/deploy/images/phytium/. # phydisk镜像的使用 Phydisk.img 镜像包含了根文件系统、内核、设备树和GRUB。 使用img 镜像安装系统,不需要像之前那样将存储设备手动分区再拷贝文件,只需要将phydisk.img文件写入存储设备即可。 ``` $ sudo umount /dev/sdb\* $ sudo dd if=phydisk.img of=/dev/sdb bs=1M $ sync ``` ## Uefi启动系统 如果是使用phydisk.img 镜像安装系统,将存储设备接到开发板,启动开发板电源,进入UEFI 模式,选择启动的介质,即可自动启动系统。 ## Uboot启动 安装系统后,将存储设备接到开发板,启动开发板电源,串口输出U-Boot命令行,设置U-Boot环境变量来启动系统。 ``` =>setenv bootargs console=ttyAMA1,115200 audit=0 earlycon=pl011,0x2800d000 root=PARTUUID="0a52c129-7e0f-43ad-989f-d96b07ccdbb2" rootdelay=5 rw; =>setenv bootcmd 'usb start;fatload usb 0:1 0x90100000 Image;fatload usb 0:1 0x90000000 e2000q-demo-board.dtb;booti 0x90100000 - 0x90000000' =>saveenv ``` ## 登录 文件系统只需要输入用户名root,按回车键,没有密码。 # 编译构建 Multilib Yocto 支持构建multilib系统,系统同时运行32位和64为应用程序 修改 local.conf - 添加下列内容 require conf/multilib.conf MULTILIBS = "multilib:lib32" DEFAULTTUNE_virtclass-multilib-lib32 = "armv7athf-neon" - 添加32 位库到文件系统 IMAGE_INSTALL:append = " lib32-glibc lib32-libgcc lib32-libstdc++" # 外部工具链使用 工具链下载地址:https://gitee.com/phytium_embedded/phytium-rogue-umlibs/raw/develop/pre-toolchain/phytium-glibc-x86_64-meta-toolchain-aarch64-toolchain-4.0.6.sh 安装工具链到64位X86开发主机上 $ sh phytium-glibc-x86_64-meta-toolchain-aarch64-toolchain-4.0.6.sh 修改 local.conf 添加下列内容 EXTERNAL_TOOLCHAIN = "/path/to/your/external-toolchain-installed" TCMODE = "external-oe-sdk" PREFERRED_PROVIDER_virtual/crypt = "libxcrypt" PREFERRED_PROVIDER_linux-libc-headers = "glibc-external" PREFERRED_PROVIDER_linux-libc-headers-dev = "glibc-external" PREFERRED_PROVIDER_virtual/linux-libc-headers = "glibc-external" # 常见问题 ## 如何编译Linux RT 内核? 在local.conf 里添加变量 PREFERRED_PROVIDER_virtual/kernel = "linux-phytium-rt" . ## 如何编译Linux 4.19 版本内核 ? 在local.conf 里添加变量 PREFERRED_VERSION_linux-phytium = "4.19". ## 如何编译用户自定义内核 ? 在 local.conf 里添加下列变量 INHERIT += "externalsrc" EXTERNALSRC:pn-linux-phytium = "path-to-your-source-tree". ## 如何编译最小文件系统 ? 在 local.conf 里添加下列变量 DISTRO_FEATURES:remove = " x11 opengl virtualization polkit pam seccomp" $ bitbake core-image-minimal # 贡献 请提交补丁给 guochunrong@phytium.com.cn # 维护者 GuoChunRong ``