# Phytium-Linux-Yocto **Repository Path**: qin-xiupup/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**: 0 - **Forks**: 13 - **Created**: 2024-05-24 - **Last Updated**: 2024-05-24 ## 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 首先,phytium-linux-yocto 需要主机系统上安装如下软件包 ``` sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib 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 libncursesw5-dev openssl libssl-dev 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 $: PATH=~/bin:${PATH} Download the Yocto layers: $: export PATH=~/bin:${PATH} $: mkdir $: cd $: repo init -u ssh://git@gitee.com:22/phytium_embedded/phytium-linux-yocto.git -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 ## 支持编译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 # 编译构建 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++" # 常见问题 ## 如何编译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 ``