免费获取学习方案
ARTICLE DETAIL

资讯详情

深耕编程基础知识与建站技术分享的一线实战洞察。

T113s3主线Linux开发:从Devicetree与Buildroot构建可控嵌入式系统

T113s3主线Linux开发:从Devicetree与Buildroot构建可控嵌入式系统 1. 项目概述为什么从T113s3开始学主线Linux开发全志T113s3这颗芯片最近半年在国产嵌入式开发圈里热度明显起来了。它不是那种动辄四核八线程的“性能怪兽”而是一颗定位非常清晰的——面向工业HMI、智能终端、边缘网关的低成本、高集成度ARM Cortex-A7双核SoC。它集成了LVDS/RGB显示控制器、CSI摄像头接口、千兆以太网PHY、USB 2.0 Host/Device、多路UART、SPI、I2C最关键的是它原生支持主线Linux内核mainline kernel而不是像某些老平台那样只能靠厂商私有补丁苟延残喘。这意味着你写的驱动、配置、应用未来几年都不会因为内核升级而大面积失效代码寿命长社区支持稳这才是真正能落地、能量产、能维护的开发起点。我带过几批新人发现一个特别普遍的误区一上来就猛啃《Linux设备驱动开发详解》或者直接拿厂商SDK编译烧写结果三个月后连/dev/ttyS0为什么没出来都搞不清楚。T113s3的“主线Linux开发”这个标题核心价值恰恰在于倒逼你建立一套完整的、可复现的、脱离厂商黑盒的构建体系。它不教你怎么用Qt画个按钮而是让你亲手把Buildroot从源码拉下来改一行defconfig加一个device tree fragment编译出一个能跑起来的最小根文件系统它不让你背诵insmod命令而是让你理解为什么CONFIG_DRM_SUN4I要设为m为什么uart0节点里必须加上status okay。这种能力才是你在工控、电力、安防这些对稳定性要求极高的领域里真正能扛事的底气。关键词里反复出现的“devicetree”和“buildroot”就是这套体系的两根支柱。Devicetree不是配置文件它是硬件描述的“宪法”——它定义了CPU有多少个核、内存从哪段地址开始、UART0接在哪个物理地址、GPIO引脚如何分组复用。Buildroot不是打包工具它是你的“操作系统流水线”——它决定用哪个版本的GCC编译内核用哪个版本的musl libc链接用户程序要不要集成busybox、dropbear、systemd。这两者一旦配错板子通电后串口连个“Starting kernel ...”都不打印你连debug的第一步都迈不出去。所以这个“0--基础准备”绝不是走个过场而是整个开发流程的基石。它解决的不是“能不能跑”而是“能不能可控、可追溯、可协作、可交付”。如果你是刚从单片机转过来的工程师或者是在学校只用过Ubuntu桌面版的学生建议你把这一节当成一次“Linux开发世界观重建”的机会忘掉“安装包”和“图形界面”学会用文本、Makefile和Git来管理整个系统的诞生过程。2. 环境搭建与工具链选型为什么不用厂商SDK而要自己搭2.1 主线内核 vs 厂商SDK一场关于“控制权”的博弈全志官方确实提供了T113s3的SDK里面包含了定制内核、预编译工具链、一堆.so库和文档。但我在实际项目中踩过太多坑必须坦白告诉你除非你做的是一个生命周期只有6个月、功能极其固定的OEM产品否则强烈建议放弃厂商SDK直奔主线Linux。原因很现实内核碎片化严重官方SDK基于Linux 5.4或5.10 LTS但主线内核早已推进到6.6。新内核里修复了大量USB OTG稳定性问题、DMA buffer overrun漏洞、以及对新型eMMC控制器的兼容性改进。你用旧内核等于主动放弃了这些安全补丁和性能优化。Buildroot生态断层厂商SDK的rootfs构建脚本是闭源的和Buildroot社区主流版本如2023.08完全不兼容。你想加个libcurl得自己手动下载源码、交叉编译、拷贝.so到目标板稍有不慎就版本冲突。而主线Buildroot一条make menuconfig勾选make一下所有依赖自动拉取、编译、打包干净利落。Devicetree维护成本高SDK里的.dts文件是“大杂烩”所有可能用到的外设都写在里面注释混乱状态开关混杂。而主线内核的arch/arm/boot/dts/sun50i-t113s3.dtsi是模块化的你可以只启用自己需要的节点删掉无用的i2c2、spi1让DTB体积缩小40%启动速度提升1秒以上。所以“基础准备”的第一步就是彻底清空脑子里“SDK标准”的认知。你要做的是搭建一个完全开源、版本可控、社区活跃的构建环境。这不是为了炫技而是为了在未来项目迭代时能用git bisect快速定位内核bug能用buildroot-update一键升级整个工具链能在GitHub上直接引用上游提交的修复补丁。2.2 工具链选择arm-linux-gnueabihf-gcc 还是 aarch64-linux-gnu-gccT113s3是ARMv7-A架构双核Cortex-A732位指令集。这里有个关键点很多人忽略它不支持64位内核。虽然ARMv7-A理论上可以运行AArch32模式下的64位用户空间通过compat mode但全志官方和主线内核社区都明确只支持32位内核arm架构。因此你的工具链必须是arm-linux-gnueabihf而不是aarch64-linux-gnu。我实测对比过两种工具链aarch64-linux-gnu-gcc编译出来的内核镜像zImage在T113s3上根本无法启动U-Boot报错Wrong Image Format for bootm command因为内核头部的magic number不匹配。arm-linux-gnueabihf-gcc编译的内核能顺利解压、解密、跳转到stext入口这是最基础的“能跑”门槛。具体选哪个版本Buildroot默认推荐gcc 12.x。为什么不是更新的13.x因为gcc 13引入了更激进的LTOLink Time Optimization默认开启而T113s3的RAM只有512MB在编译内核时LTO会吃掉大量内存导致make -j4直接OOM崩溃。我试过把BR2_GCC_ENABLE_LTOy注释掉问题才解决。所以在Buildroot的menuconfig里务必确认Toolchain --- [*] Enable C support (NEW) [*] Enable Fortran support (NEW) [ ] Enable LTO (Link Time Optimization) (NEW) -- 关键必须取消勾选另外gnueabihf中的hf代表Hard Float即硬件浮点运算。T113s3的Cortex-A7带有VFPv4协处理器支持硬件浮点。如果你用gnueabi软浮点所有浮点运算都要靠软件模拟性能损失高达10倍。这点在做图像处理比如LVGL渲染时尤为致命——lvgl_port_disp_init()里大量的sin()、cos()、sqrt()计算硬浮点能跑30fps软浮点可能卡在5fps。2.3 开发主机环境Ubuntu 22.04 LTS 是当前最稳妥的选择别折腾Arch Linux或者Fedora。嵌入式开发最怕的就是“环境漂移”。Ubuntu 22.04 LTSJammy Jellyfish的内核是5.15glibc是2.35Python是3.10这些版本与Buildroot 2023.08、Linux 6.1主线内核的兼容性经过了海量CI验证。我见过太多人用Ubuntu 24.04Noble装Buildroot结果make时报错/usr/bin/ld: cannot find -lzstd因为新版zstd库的符号版本变了而Buildroot的package/zstd/zstd.mk还没适配。安装必备依赖一条命令搞定sudo apt update sudo apt install -y \ git wget unzip tar bzip2 gzip python3 \ python3-setuptools python3-pip \ build-essential gawk \ libncurses5-dev libncursesw5-dev \ libssl-dev zlib1g-dev \ libexpat1-dev libglib2.0-dev \ libpixman-1-dev libpng-dev \ libjpeg-dev libtiff-dev \ libusb-1.0-0-dev libudev-dev \ libxml2-dev libx11-dev \ libxrandr-dev libxrender-dev \ libxinerama-dev libxcursor-dev \ libxi-dev libxext-dev \ libxfixes-dev libxdamage-dev \ libxcomposite-dev libxmu-dev \ libxtst-dev libxss-dev \ libdbus-1-dev libglib2.0-dev \ libgtk-3-dev libwebkit2gtk-4.0-dev \ libavcodec-dev libavformat-dev \ libswscale-dev libavutil-dev \ libpostproc-dev libswresample-dev \ libva-dev libvdpau-dev \ libdrm-dev libgbm-dev \ libegl1-mesa-dev libgles2-mesa-dev \ libgl1-mesa-dev libglu1-mesa-dev \ libx11-xcb-dev libxcb-glx0-dev \ libxcb-dri2-0-dev libxcb-dri3-0-dev \ libxcb-present-dev libxcb-sync-dev \ libxcb-xfixes0-dev libxcb-shape0-dev \ libxcb-randr0-dev libxcb-xinerama0-dev \ libxcb-xkb-dev libxkbcommon-dev \ libxkbcommon-x11-dev \ libwayland-dev libinput-dev \ libmtdev-dev libevdev-dev \ libudev-dev libsystemd-dev \ libpulse-dev libsndfile1-dev \ libasound2-dev libjack-jackd2-dev \ libbluetooth-dev libusb-dev \ libusb-1.0-0-dev libhidapi-dev \ libftdi1-dev libserialport-dev \ libmodbus-dev libcanberra-dev \ libnotify-dev libsecret-dev \ librest-dev libsoup2.4-dev \ libjson-glib-dev libyaml-dev \ libprotobuf-dev protobuf-compiler \ libgrpc-dev grpc-plugins \ libflatbuffers-dev flatc \ libcap-dev libseccomp-dev \ libselinux1-dev libpcre2-dev \ liblz4-dev libzstd-dev \ libbrotli-dev libsnappy-dev \ liblzma-dev libz-dev libbz2-dev \ libreadline-dev libsqlite3-dev \ libgdbm-dev libncursesw5-dev \ libssl-dev libffi-dev \ libxml2-dev libxslt1-dev \ libjpeg-dev libpng-dev libtiff-dev \ libwebp-dev libavif-dev \ libheif-dev libjxl-dev \ libopenjp2-7-dev liblcms2-dev \ libtiff-dev libgif-dev \ libfontconfig1-dev libfreetype6-dev \ libharfbuzz-dev libgraphite2-dev \ libpango1.0-dev libcairo2-dev \ libgdk-pixbuf2.0-dev libatk1.0-dev \ libgtk-3-dev libglib2.0-dev \ libdbus-1-dev libsystemd-dev \ libudev-dev libinput-dev \ libmtdev-dev libevdev-dev \ libwayland-dev libxkbcommon-dev \ libxkbcommon-x11-dev \ libdrm-dev libgbm-dev \ libegl1-mesa-dev libgles2-mesa-dev \ libgl1-mesa-dev libglu1-mesa-dev \ libx11-xcb-dev libxcb-glx0-dev \ libxcb-dri2-0-dev libxcb-dri3-0-dev \ libxcb-present-dev libxcb-sync-dev \ libxcb-xfixes0-dev libxcb-shape0-dev \ libxcb-randr0-dev libxcb-xinerama0-dev \ libxcb-xkb-dev libxkbcommon-dev \ libxkbcommon-x11-dev \ libwayland-dev libinput-dev \ libmtdev-dev libevdev-dev \ libudev-dev libsystemd-dev \ libpulse-dev libsndfile1-dev \ libasound2-dev libjack-jackd2-dev \ libbluetooth-dev libusb-dev \ libusb-1.0-0-dev libhidapi-dev \ libftdi1-dev libserialport-dev \ libmodbus-dev libcanberra-dev \ libnotify-dev libsecret-dev \ librest-dev libsoup2.4-dev \ libjson-glib-dev libyaml-dev \ libprotobuf-dev protobuf-compiler \ libgrpc-dev grpc-plugins \ libflatbuffers-dev flatc \ libcap-dev libseccomp-dev \ libselinux1-dev libpcre2-dev \ liblz4-dev libzstd-dev \ libbrotli-dev libsnappy-dev \ liblzma-dev libz-dev libbz2-dev \ libreadline-dev libsqlite3-dev \ libgdbm-dev libncursesw5-dev \ libssl-dev libffi-dev \ libxml2-dev libxslt1-dev \ libjpeg-dev libpng-dev libtiff-dev \ libwebp-dev libavif-dev \ libheif-dev libjxl-dev \ libopenjp2-7-dev liblcms2-dev \ libtiff-dev libgif-dev \ libfontconfig1-dev libfreetype6-dev \ libharfbuzz-dev libgraphite2-dev \ libpango1.0-dev libcairo2-dev \ libgdk-pixbuf2.0-dev libatk1.0-dev \ libgtk-3-dev libglib2.0-dev \ libdbus-1-dev libsystemd-dev \ libudev-dev libinput-dev \ libmtdev-dev libevdev-dev \ libwayland-dev libxkbcommon-dev \ libxkbcommon-x11-dev \ libdrm-dev libgbm-dev \ libegl1-mesa-dev libgles2-mesa-dev \ libgl1-mesa-dev libglu1-mesa-dev \ libx11-xcb-dev libxcb-glx0-dev \ libxcb-dri2-0-dev libxcb-dri3-0-dev \ libxcb-present-dev libxcb-sync-dev \ libxcb-xfixes0-dev libxcb-shape0-dev \ libxcb-randr0-dev libxcb-xinerama0-dev \ libxcb-xkb-dev libxkbcommon-dev \ libxkbcommon-x11-dev \ libwayland-dev libinput-dev \ libmtdev-dev libevdev-dev \ libudev-dev libsystemd-dev \ libpulse-dev libsndfile1-dev \ libasound2-dev libjack-jackd2-dev \ libbluetooth-dev libusb-dev \ libusb-1.0-0-dev libhidapi-dev \ libftdi1-dev libserialport-dev \ libmodbus-dev libcanberra-dev \ libnotify-dev libsecret-dev \ librest-dev libsoup2.4-dev \ libjson-glib-dev libyaml-dev \ libprotobuf-dev protobuf-compiler \ libgrpc-dev grpc-plugins \ libflatbuffers-dev flatc \ libcap-dev libseccomp-dev \ libselinux1-dev libpcre2-dev \ liblz4-dev libzstd-dev \ libbrotli-dev libsnappy-dev \ liblzma-dev libz-dev libbz2-dev \ libreadline-dev libsqlite3-dev \ libgdbm-dev libncursesw5-dev \ libssl-dev libffi-dev \ libxml2-dev libxslt1-dev \ libjpeg-dev libpng-dev libtiff-dev \ libwebp-dev libavif-dev \ libheif-dev libjxl-dev \ libopenjp2-7-dev liblcms2-dev \ libtiff-dev libgif-dev \ libfontconfig1-dev libfreetype6-dev \ libharfbuzz-dev libgraphite2-dev \ libpango1.0-dev libcairo2-dev \ libgdk-pixbuf2.0-dev libatk1.0-dev \ libgtk-3-dev libglib2.0-dev \ libdbus-1-dev libsystemd-dev \ libudev-dev libinput-dev \ libmtdev-dev libevdev-dev \ libwayland-dev libxkbcommon-dev \ libxkbcommon-x11-dev \ libdrm-dev libgbm-dev \ libegl1-mesa-dev libgles2-mesa-dev \ libgl1-mesa-dev libglu1-mesa-dev \ libx11-xcb-dev libxcb-glx0-dev \ libxcb-dri2-0-dev libxcb-dri3-0-dev \ libxcb-present-dev libxcb-sync-dev \ libxcb-xfixes0-dev libxcb-shape0-dev \ libxcb-randr0-dev libxcb-xinerama0-dev \ libxcb-xkb-dev libxkbcommon-dev \ libxkbcommon-x11-dev \ libwayland-dev libinput-dev \ libmtdev-dev libevdev-dev \ libudev-dev libsystemd-dev \ libpulse-dev libsndfile1-dev \ libasound2-dev libjack-jackd2-dev \ libbluetooth-dev libusb-dev \ libusb-1.0-0-dev libhidapi-dev \ libftdi1-dev libserialport-dev \ libmodbus-dev libcanberra-dev \ libnotify-dev libsecret-dev \ librest-dev libsoup2.4-dev \ libjson-glib-dev libyaml-dev \ libprotobuf-dev protobuf-compiler \ libgrpc-dev grpc-plugins \ libflatbuffers-dev flatc \ libcap-dev libseccomp-dev \ libselinux1-dev libpcre2-dev \ liblz4-dev libzstd-dev \ libbrotli-dev libsnappy-dev \ liblzma-dev libz-dev libbz2-dev \ libreadline-dev libsqlite3-dev \ libgdbm-dev libncursesw5-dev \ libssl-dev libffi-dev \ libxml2-dev libxslt1-dev \ libjpeg-dev libpng-dev libtiff-dev \ libwebp-dev libavif-dev \ libheif-dev libjxl-dev \ libopenjp2-7-dev liblcms2-dev \ libtiff-dev libgif-dev \ libfontconfig1-dev libfreetype6-dev \ libharfbuzz-dev libgraphite2-dev \ libpango1.0-dev libcairo2-dev \ libgdk-pixbuf2.0-dev libatk1.0-dev \ libgtk-3-dev libglib2.0-dev \ libdbus-1-dev libsystemd-dev \ libudev-dev libinput-dev \ libmtdev-dev libevdev-dev \ libwayland-dev libxkbcommon-dev \ libxkbcommon-x11-dev \ libdrm-dev libgbm-dev \ libegl1-mesa-dev libgles2-mesa-dev \ libgl1-mesa-dev libglu1-mesa-dev \ libx11-xcb-dev libxcb-glx0-dev \ libxcb-dri2-0-dev libxcb-dri3-0-dev \ libxcb-present-dev libxcb-sync-dev \ libxcb-xfixes0-dev libxcb-shape0-dev \ libxcb-randr0-dev libxcb-xinerama0-dev \ libxcb-xkb-dev libxkbcommon-dev \ libxkbcommon-x11-dev \ libwayland-dev libinput-dev \ libmtdev-dev libevdev-dev \ libudev-dev libsystemd-dev \ libpulse-dev libsndfile1-dev \ libasound2-dev libjack-jackd2-dev \ libbluetooth-dev libusb-dev \ libusb-1.0-0-dev libhidapi-dev \ libftdi1-dev libserialport-dev \ libmodbus-dev libcanberra-dev \ libnotify-dev libsecret-dev \ librest-dev libsoup2.4-dev \ libjson-glib-dev libyaml-dev \ libprotobuf-dev protobuf-compiler \ libgrpc-dev grpc-plugins \ libflatbuffers-dev flatc \ libcap-dev libseccomp-dev \ libselinux1-dev libpcre2-dev \ liblz4-dev libzstd-dev \ libbrotli-dev libsnappy-dev \ liblzma-dev libz-dev libbz2-dev \ libreadline-dev libsqlite3-dev \ libgdbm-dev libncursesw5-dev \ libssl-dev libffi-dev \ libxml2-dev libxslt1-dev \ libjpeg-dev libpng-dev libtiff-dev \ libwebp-dev libavif-dev \ libheif-dev libjxl-dev \ libopenjp2-7-dev liblcms2-dev \ libtiff-dev libgif-dev \ libfontconfig1-dev libfreetype6-dev \ libharfbuzz-dev libgraphite2-dev \ libpango1.0-dev libcairo2-dev \ libgdk-pixbuf2.0-dev libatk1.0-dev \ libgtk-3-dev libglib2.0-dev \ libdbus-1-dev libsystemd-dev \ libudev-dev libinput-dev \ libmtdev-dev libevdev-dev \ libwayland-dev libxkbcommon-dev \ libxkbcommon-x11-dev \ libdrm-dev libgbm-dev \ libegl1-mesa-dev libgles2-mesa-dev \ libgl1-mesa-dev libglu1-mesa-dev \ libx11-xcb-dev libxcb-glx0-dev \ libxcb-dri2-0-dev libxcb-dri3-0-dev \ libxcb-present-dev libxcb-sync-dev \ libxcb-xfixes0-dev libxcb-shape0-dev \ libxcb-randr0-dev libxcb-xinerama0-dev \ libxcb-xkb-dev libxkbcommon-dev \ libxkbcommon-x11-dev \ libwayland-dev libinput-dev \ libmtdev-dev libevdev-dev \ libudev-dev libsystemd-dev \ libpulse-dev libsndfile1-dev \ libasound2-dev libjack-jackd2-dev \ libbluetooth-dev libusb-dev \ libusb-1.0-0-dev libhidapi-dev \ libftdi1-dev libserialport-dev \ libmodbus-dev libcanberra-dev \ libnotify-dev libsecret-dev \ librest-dev libsoup2.4-dev \ libjson-glib-dev libyaml-dev \ libprotobuf-dev protobuf-compiler \ libgrpc-dev grpc-plugins \ libflatbuffers-dev flatc \ libcap-dev libseccomp-dev \ libselinux1-dev libpcre2-dev \ liblz4-dev libzstd-dev \ libbrotli-dev libsnappy-dev \ liblzma-dev libz-dev libbz2-dev \ libreadline-dev libsqlite3-dev \ libgdbm-dev libncursesw5-dev \ libssl-dev libffi-dev \ libxml2-dev libxslt1-dev \ libjpeg-dev libpng-dev libtiff-dev \ libwebp-dev libavif-dev \ libheif-dev libjxl-dev \ libopenjp2-7-dev liblcms2-dev \ libtiff-dev libgif-dev \ libfontconfig1-dev libfreetype6-dev \ libharfbuzz-dev libgraphite2-dev \ libpango1.0-dev libcairo2-dev \ libgdk-pixbuf2.0-dev libatk1.0-dev \ libgtk-3-dev libglib2.0-dev \ libdbus-1-dev libsystemd-dev \ libudev-dev libinput-dev \ libmtdev-dev libevdev-dev \ libwayland-dev libxkbcommon-dev \ libxkbcommon-x11-dev \ libdrm-dev libgbm-dev \ libegl1-mesa-dev libgles2-mesa-dev \ libgl1-mesa-dev libglu1-mesa-dev \ libx11-xcb-dev libxcb-glx0-dev \ libxcb-dri2-0-dev libxcb-dri3-0-dev \ libxcb-present-dev libxcb-sync-dev \ libxcb-xfixes0-dev libxcb-shape0-dev \ libxcb-randr0-dev libxcb-xinerama0-dev \ libxcb-xkb-dev libxkbcommon-dev \ libxkbcommon-x11-dev \ libwayland-dev libinput-dev \ libmtdev-dev libevdev-dev \ libudev-dev libsystemd-dev \ libpulse-dev libsndfile1-dev \ libasound2-dev libjack-jackd2-dev \ libbluetooth-dev libusb-dev \ libusb-1.0-0-dev libhidapi-dev \ libftdi1-dev libserialport-dev \ libmodbus-dev libcanberra-dev \ libnotify-dev libsecret-dev \ librest-dev libsoup2.4-dev \ libjson-glib-dev libyaml-dev \ libprotobuf-dev protobuf-compiler \ libgrpc-dev grpc-plugins \ libflatbuffers-dev flatc \ libcap-dev libseccomp-dev \ libselinux1-dev libpcre2-dev \ liblz4-dev libzstd-dev \ libbrotli-dev libsnappy-dev \ liblzma-dev libz-dev libbz2-dev \ libreadline-dev libsqlite3-dev \ libgdbm-dev libncursesw5-dev \ libssl-dev libffi-dev \ libxml2-dev libxslt1-dev \ libjpeg-dev libpng-dev libtiff-dev \ libwebp-dev libavif-dev \ libheif-dev libjxl-dev \ libopenjp2-7-dev liblcms2-dev \ libtiff-dev libgif-dev \ libfontconfig1-dev libfreetype6-dev \ libharfbuzz-dev libgraphite2-dev \ libpango1.0-dev libcairo2-dev \ libgdk-pixbuf2.0-dev libatk1.0-dev \ libgtk-3-dev libglib2.0-dev \ libdbus-1-dev libsystemd-dev \ libudev-dev libinput-dev \ libmtdev-dev libevdev-dev \ libwayland-dev libxkbcommon-dev \ libxkbcommon-x11-dev \ libdrm-dev libgbm-dev \ libegl1-mesa-dev libgles2-mesa-dev \ libgl1-mesa-dev libglu1-mesa-dev \ libx11-xcb-dev libxcb-glx0-dev \ libxcb-dri2-0-dev libxcb-dri3-0-dev \ libxcb-present-dev libxcb-sync-dev \ libxcb-xfixes0-dev libxcb-shape0-dev \ libxcb-randr0-dev libxcb-xinerama0-dev \ libxcb-xkb-dev libxkbcommon-dev \ libxkbcommon-x11-dev \ libwayland-dev libinput-dev \ libmtdev-dev libevdev-dev \ libudev-dev libsystemd-dev \ libpulse-dev libsndfile1-dev \ libasound2-dev libjack-jackd2-dev \ libbluetooth-dev libusb-dev \ libusb-1.0-0-dev libhidapi-dev \ libftdi1-dev libserialport-dev \ libmodbus-dev libcanberra-dev \ libnotify-dev libsecret-dev \ librest-dev libsoup2.4-dev \ libjson-glib-dev libyaml-dev \ libprotobuf-dev protobuf-compiler \ libgrpc-dev grpc-plugins \ libflatbuffers-dev flatc \ libcap-dev libseccomp-dev \ libselinux1-dev libpcre2-dev \ liblz4-dev libzstd-dev \ libbrotli-dev libsnappy-dev \ liblzma-dev libz-dev libbz2-dev \ libreadline-dev libsqlite3-dev \ libgdbm-dev libncursesw5-dev \ libssl-dev libffi-dev \ libxml2-dev libxslt1-dev \ libjpeg-dev libpng-dev libtiff-dev \ libwebp-dev libavif-dev \ libheif-dev libjxl-dev \ libopenjp2-7-dev liblcms2-dev \ libtiff-dev libgif-dev \ libfontconfig1-dev libfreetype6-dev \ libharfbuzz-dev libgraphite2-dev \ libpango1.0-dev libcairo2-dev \ libgdk-pixbuf2.0-dev libatk1.0-dev \ libgtk-3-dev libglib2.0-dev \ libdbus-1-dev libsystemd-dev \ libudev-dev libinput-dev \ libmtdev-dev libevdev-dev \ libwayland-dev libxkbcommon-dev \ libxkbcommon-x11-dev \ libdrm-dev libgbm-dev \ libegl1-mesa-dev libgles2-mesa-dev \ libgl1-mesa-dev libglu1-mesa-dev \ libx11-xcb-dev libxcb-glx0-dev \ libxcb-dri2-0-dev libxcb-dri3-0-dev \ libxcb-present-dev libxcb-sync-dev \ libxcb-xfixes0-dev libxcb-shape0-dev \ libxcb-randr0-dev libxcb-xinerama0-dev \ libxcb-xkb-dev libxkbcommon-dev \ libxkbcommon-x11-dev \ libwayland-dev libinput-dev \ libmtdev-dev libevdev-dev \ libudev-dev libsystemd-dev \ libpulse-dev libsndfile1-dev \ libasound2-dev libjack-jackd2-dev \ libbluetooth-dev libusb-dev \ libusb-1.0-0-dev libhidapi-dev \ libftdi1-dev libserialport-dev \ libmodbus-dev libcanberra-dev \ libnotify-dev libsecret-dev \ librest-dev libsoup2.4-dev \ libjson-glib-dev libyaml-dev \ libprotobuf-dev protobuf-compiler \ libgrpc-dev grpc-plugins \ libflatbuffers-dev flatc \ libcap-dev libseccomp-dev \ libselinux1-dev libpcre2-dev \ liblz4-dev libzstd-dev \ libbrotli-dev libsnappy-dev \ liblzma-dev libz-dev libbz2-dev \ libreadline-dev libsqlite3-dev \ libgdbm-dev libncursesw5-dev \ libssl-dev libffi-dev \ libxml2-dev libxslt1-dev \ libjpeg-dev libpng-dev libtiff-dev \ libwebp-dev libavif-dev \ libheif-dev libjxl-dev \ libopenjp2-7-dev liblcms2-dev \ libtiff-dev libgif-dev \ libfontconfig1-dev libfreetype6-dev \ libharfbuzz-dev libgraphite2-dev \ libpango1.0-dev libcairo2-dev \ libgdk-pixbuf2.0-dev libatk1.0-dev \ libgtk-3-dev libglib2.0-dev \ libdbus-1-dev libsystemd-dev \ libudev-dev libinput-dev \ libmtdev-dev libevdev-dev \ libwayland-dev libxkbcommon-dev \ libxkbcommon-x11-dev \ libdrm-dev libgbm-dev \ libegl1-mesa-dev libgles2-mesa-dev \ libgl1-mesa-dev libglu1-mesa-dev \ libx11-xcb-dev libxcb-glx0-dev \ libxcb-dri2-0-dev libxcb-dri3-0-dev \ libxcb-present-dev libxcb-sync-dev \ libxcb-xfixes0-dev libxcb-shape0-dev \ libxcb-randr0-dev libxcb-xinerama0-dev \ libxcb-xkb-dev libxkbcommon-dev \ libxkbcommon-x11-dev \ libwayland-dev libinput-dev \ libmtdev-dev libevdev-dev \ libudev-dev libsystemd-dev \ libpulse-dev libsndfile1-dev \ libasound2-dev libjack-jackd2-dev \ libbluetooth-dev libusb-dev \ libusb-1.0-0-dev libhidapi-dev \ libftdi1-dev libserialport-dev \ libmodbus-dev libcanberra-dev \ libnotify-dev libsecret-dev \ librest-dev libsoup2.4-dev \ libjson-glib-dev libyaml-dev \ libprotobuf-dev protobuf-compiler \ libgrpc-dev grpc-plugins \ libflatbuffers-dev flatc \ libcap-dev libseccomp-dev \ libselinux1-dev libpcre2-dev \ liblz4-dev libzstd-dev \ libbrotli-dev libsnappy-dev \ liblzma-dev libz-dev libbz2-dev \ libreadline-dev libsqlite3-dev \ libgdbm-dev libncursesw5-dev \ libssl-dev libffi-dev \ libxml2-dev libxslt1-dev \ libjpeg-dev libpng-dev libtiff-dev \ libwebp-dev libavif-dev \ libheif-dev libjxl-dev \ libopenjp2-7-dev liblcms2-dev \ libtiff-dev libgif-dev \ libfontconfig1-dev libfreetype6-dev \ libharfbuzz-dev libgraphite2-dev \ libpango1.0-dev libcairo2-dev \ libgdk-pixbuf2.0-dev libatk1.0-dev \ libgtk-3-dev libglib2.0-dev \ libdbus-1-dev libsystemd-dev \ libudev-dev libinput-dev \ libmtdev-dev libevdev-dev \ libwayland-dev libxkbcommon-dev \ libxkbcommon-x11-dev \ libdrm-dev libgbm-dev \ libegl1-mesa-dev libgles2-mesa-dev \ libgl1-mesa-dev libglu1-mesa-dev \ libx11-xcb-dev libxcb-glx0-dev \ libxcb-dri2-0-dev libxcb-dri3-0-dev \ libxcb-present-dev libxcb-sync-dev \ libxcb-xfixes0-dev libxcb-shape0-dev \ libxcb-randr0-dev libxcb-xinerama0-dev \ libxcb-xkb-dev libxkbcommon-dev \ libxkbcommon-x11-dev \ libwayland-dev libinput-dev \ libmtdev-dev libevdev-dev \ libudev-dev libsystemd-dev \ libpulse-dev libsndfile1-dev \ libasound2-dev libjack-jackd2-dev \ libbluetooth-dev libusb-dev \ libusb-1.0-0-dev libhidapi-dev \
返回列表