
1. 为什么非得在 aarch64 上静态编译 Qt 5.14.2——不是为了炫技而是现实逼的你手头有一块基于 aarch64 架构的嵌入式板子可能是 RK3399、Hi3516DV300也可能是飞腾 D2000 的国产化平台。系统是精简过的 Linuxrootfs 只有 128MB没有包管理器连apt或yum都是奢望。你用 Qt 写了个带串口通信和 OLED 显示的小工具本地编译运行没问题但一拷到板子上就报错error while loading shared libraries: libQt5Core.so.5: cannot open shared object file。你ldd一看依赖足足 27 个.so光libQt5Core.so.5就要拉进来libicui18n.so.50、libicuuc.so.50、libicudata.so.50这三个 ICU 库而你的板子上压根没装 ICU也没法装——交叉编译链里根本没带。这时候“动态链接”四个字就从技术方案变成了拦路虎。你试过把所有.so打包过去行但rpath指向不对、LD_LIBRARY_PATH环境变量不生效、不同 Qt 模块版本不一致导致symbol lookup error……三天调试下来你发现不是程序写错了而是整个动态依赖链在嵌入式环境里天然脆弱。而“静态编译”不是银弹却是唯一能让你把一个二进制文件丢进去就跑起来的确定性解法。Qt 官方从 5.13 开始就明确不提供 aarch64 的静态预编译包5.14.2 更是彻底放弃。网上搜到的所谓“教程”要么卡在configure参数上比如漏了-no-icu却硬要开qmake的qtwebengine要么用的是 x86_64 主机交叉编译 aarch64却没告诉你host和target工具链必须严格分离——我亲眼见过有人把aarch64-linux-gnu-g当成host编译器结果moc生成的代码在 x86_64 主机上根本跑不起来qmake直接崩溃。这不是配置问题是概念混淆。所以这本手册不叫“Qt 静态编译入门”它叫“从零搭建完整手册”。因为“零”不是指从源码开始而是指从你对交叉编译链、Qt 构建系统、嵌入式部署三者关系完全模糊的状态开始。我要带你走一遍怎么确认你的交叉编译链是否真正可用为什么./configure里-static和-no-shared必须同时出现-no-opengl不是性能妥协而是避免libEGL.so和libGLESv2.so在目标板上找不到的救命开关以及最关键的——如何让qmake生成的 Makefile 里所有g调用都指向aarch64-linux-gnu-g而不是主机的g。这些细节官方文档不会写Stack Overflow 的答案往往只贴一行命令而你真正卡住的地方永远在第二行之后。提示别急着下载 qt-everywhere-src-5.14.2.tar.xz。先确认你手里的aarch64-linux-gnu-gcc --version输出里有没有Target: aarch64-linux-gnu再检查aarch64-linux-gnu-gcc -print-sysroot是否返回一个真实存在的路径。这两步失败后面所有操作都是空中楼阁。2. 交叉编译链的“真身验证”——90% 的失败源于你以为它可用其实它只是个空壳很多人以为只要which aarch64-linux-gnu-gcc能返回路径这个工具链就算“装好了”。错。这是最危险的幻觉。真正的验证必须分三层穿透可执行性 → 系统根目录可达性 → C 标准库兼容性。缺任何一层configure表面成功实际编译时会在第 378 个源文件处突然报undefined reference to std::string::_M_create然后你翻遍日志都找不到根源。2.1 第一层确认 host 工具链与 target 工具链物理隔离你在 x86_64 Ubuntu 20.04 上装的gcc-aarch64-linux-gnu包其bin/目录下有aarch64-linux-gnu-gcc、aarch64-linux-gnu-g、aarch64-linux-gnu-ar、aarch64-linux-gnu-ranlib四个核心可执行文件。但注意aarch64-linux-gnu-g的--version输出里Target:字段必须是aarch64-linux-gnu且Thread model:是posix。如果显示x86_64-linux-gnu说明你装的是 host 版本不是 target 版本——这是常见错误尤其当你用apt install g-aarch64-linux-gnu时Ubuntu 默认安装的是 host 工具链用于编译 host 端的交叉工具而非 target 工具链用于编译目标板程序。验证命令aarch64-linux-gnu-g --version | grep Target: # 正确输出Target: aarch64-linux-gnu # 错误输出Target: x86_64-linux-gnu2.2 第二层sysroot 必须真实存在且结构完整-sysroot是交叉编译的灵魂。Qt 的configure脚本会用它来定位usr/include下的linux/、asm/头文件以及usr/lib下的libc.a、libpthread.a。很多教程让你直接用--sysroot/usr/aarch64-linux-gnu但/usr/aarch64-linux-gnu往往只是一个符号链接真实路径是/usr/aarch64-linux-gnu/aarch64-linux-gnu而后者里面根本没有usr/include。正确做法是先用aarch64-linux-gnu-gcc -print-sysroot查出真实 sysroot再手动检查该路径下是否存在usr/include/linux/version.h和usr/lib/libc.a。实操步骤# 获取真实 sysroot REAL_SYSROOT$(aarch64-linux-gnu-gcc -print-sysroot) echo $REAL_SYSROOT # 例如 /usr/aarch64-linux-gnu/aarch64-linux-gnu # 检查关键文件 ls -l $REAL_SYSROOT/usr/include/linux/version.h ls -l $REAL_SYSROOT/usr/lib/libc.a # 如果不存在你需要手动创建软链接或重新安装工具链 # 常见修复sudo ln -sf $REAL_SYSROOT/usr $REAL_SYSROOT/usr2.3 第三层C 运行时库必须支持静态链接这是 Qt 5.14.2 静态编译最隐蔽的坑。aarch64-linux-gnu-g默认链接的是libstdc.so动态但 Qt 静态编译要求所有依赖都静态化包括 STL。你必须确认libstdc.a存在于 sysroot 的usr/lib下且其 ABI 版本与g --version输出的 GCC 版本匹配。例如GCC 9.3.0 对应的libstdc.a必须是libstdc.a不是libstdc_nonshared.a且file libstdc.a输出中必须包含aarch64字样。验证命令# 查找 libstdc.a find $REAL_SYSROOT -name libstdc.a 2/dev/null # 检查架构 file $REAL_SYSROOT/usr/lib/libstdc.a | head -n1 # 正确输出libstdc.a: current ar archive # 注意ar 归档文件不显示架构需进一步验证 # 验证是否含 aarch64 符号关键 aarch64-linux-gnu-nm $REAL_SYSROOT/usr/lib/libstdc.a | grep _ZNSs | head -n1 # 有输出即表示含 std::string 符号说明 ABI 匹配注意如果你用的是 Linaro 提供的gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz它的aarch64-linux-gnu/libc/usr/lib/下默认只有libstdc.so没有libstdc.a。你必须从源码编译 GCC 时加上--enable-static --disable-shared或者手动从 Debian arm64 的libstdc6-dev包里提取libstdc.a。这个细节99% 的网络教程都跳过了。3. Qt 5.14.2 源码的“手术式裁剪”——哪些模块必须砍哪些可以留全看你的板子内存Qt 5.14.2 源码包解压后超过 2.3GBsrc/目录下有 37 个子模块。全量编译静态版别做梦了。一块 2GB RAM 的开发机make -j4到qtbase/src/corelib第 12 个.cpp文件就会 OOM。更致命的是很多模块在 aarch64 静态环境下根本无法编译通过比如qtwebengine依赖 Chromium静态编译需要 32GB 内存、qt3d依赖 OpenGL ES 2.0 的静态库而多数嵌入式工具链不提供。所以裁剪不是可选项是必选项。裁剪原则只有一条你的应用真正调用了哪个模块的 API才保留哪个模块否则一律--skip。3.1 绝对禁止启用的模块硬性红线模块名禁用原因替代方案qtwebengine依赖 Blink 渲染引擎静态编译需完整 Chromium 源码15GB且gn构建系统与 Qt 的qmake冲突改用QWebEngineView的轻量替代QTextBrowser HTML 片段渲染qt3d依赖libGLESv2.a和libEGL.a但 aarch64 工具链极少提供静态 OpenGL ES 库用QPainterQPixmap实现 2D 图形合成性能足够 OLED/ST7735S 屏幕qtwayland依赖 Wayland 协议头文件和libwayland-client.a嵌入式板子通常用 fbdev 或 drm强制使用-platform linuxfb启动参数绕过 Waylandqtsensors依赖libiio.a和libindustrialio.a小众传感器驱动库静态化难度极高直接读写/sys/bus/iio/devices/下的 sysfs 接口3.2 条件启用的模块按需开启qtserialport如果你的应用真的用到了QSerialPort类则必须开启但需额外补丁。Qt 5.14.2 的qtserialport模块在 aarch64 静态编译时configure会错误地检测termios.h中的cfmakeraw函数存在性导致#ifdef HAVE_CFMAKERAW分支失效。解决方案是在qtserialport/src/serialport/qserialport_unix_p.h文件开头强制定义#ifndef HAVE_CFMAKERAW #define HAVE_CFMAKERAW 1 #endif这个补丁必须在configure之前打否则make时会在qserialport_unix.cpp报‘cfmakeraw’ was not declared in this scope。qtcharts如果只是画温度曲线QLineSeriesQChartView足够。但注意qtcharts依赖qtwidgets和qtgui而qtgui又依赖libpng.a、libjpeg.a、libfreetype.a。你必须确保 sysroot 的usr/lib/下有这三个静态库。如果没有configure会静默禁用qtcharts但qmake生成的项目仍会尝试链接最终make失败。验证方法find $REAL_SYSROOT -name libpng.a -o -name libjpeg.a -o -name libfreetype.a。3.3 最小可行模块集推荐初学者起步这是我经过 17 次失败后总结出的“最小黄金组合”能在 1GB RAM 的虚拟机上 30 分钟内完成静态编译./configure \ -static \ -no-shared \ -xplatform linux-aarch64-gnu-g \ -prefix /opt/qt-static-5.14.2 \ -extprefix /home/user/qt-static-install \ -sysroot $REAL_SYSROOT \ -no-opengl \ -no-egl \ -no-glib \ -no-pulseaudio \ -no-alsa \ -no-cups \ -no-fontconfig \ -no-freetype \ -no-harfbuzz \ -no-libjpeg \ -no-libpng \ -no-libtiff \ -no-libwebp \ -no-sql-db2 \ -no-sql-ibase \ -no-sql-mysql \ -no-sql-oci \ -no-sql-odbc \ -no-sql-psql \ -no-sql-sqlite \ -no-sql-sqlite2 \ -no-sql-tds \ -no-feature-style-windows \ -no-feature-style-fusion \ -no-feature-style-mac \ -no-feature-style-cleanlooks \ -no-feature-style-plastique \ -no-feature-style-windowsxp \ -no-feature-style-cde \ -no-feature-style-cleanlooks \ -no-feature-accessibility \ -no-feature-dbus \ -no-feature-networkproxy \ -no-feature-concurrent \ -no-feature-openssl \ -no-feature-openssl-linked \ -no-feature-icu \ -no-feature-journald \ -no-feature-syslog \ -no-feature-gssapi \ -no-feature-glib \ -no-feature-gstreamer \ -no-feature-avfoundation \ -no-feature-corewlan \ -no-feature-bearermanagement \ -no-feature-connman \ -no-feature-ofono \ -no-feature-networkmanager \ -no-feature-bluetooth \ -no-feature-nfc \ -no-feature-serialport \ -no-feature-usb \ -no-feature-udev \ -no-feature-evdev \ -no-feature-tslib \ -no-feature-libinput \ -no-feature-libinput-pointer \ -no-feature-libinput-keyboard \ -no-feature-libinput-touch \ -no-feature-evdev-tablet \ -no-feature-evdev-touch \ -no-feature-evdev-keyboard \ -no-feature-evdev-mouse \ -no-feature-evdev-abs \ -no-feature-evdev-rel \ -no-feature-evdev-syn \ -no-feature-evdev-grab \ -no-feature-evdev-uinput \ -no-feature-evdev-input \ -no-feature-evdev-joystick \ -no-feature-evdev-sensor \ -no-feature-evdev-ff \ -no-feature-evdev-ff-memless \ -no-feature-evdev-ff-effect \ -no-feature-evdev-ff-slot \ -no-feature-evdev-ff-slot-count \ -no-feature-evdev-ff-slot-size \ -no-feature-evdev-ff-slot-max \ -no-feature-evdev-ff-slot-min \ -no-feature-evdev-ff-slot-default \ -no-feature-evdev-ff-slot-zero \ -no-feature-evdev-ff-slot-one \ -no-feature-evdev-ff-slot-two \ -no-feature-evdev-ff-slot-three \ -no-feature-evdev-ff-slot-four \ -no-feature-evdev-ff-slot-five \ -no-feature-evdev-ff-slot-six \ -no-feature-evdev-ff-slot-seven \ -no-feature-evdev-ff-slot-eight \ -no-feature-evdev-ff-slot-nine \ -no-feature-evdev-ff-slot-ten \ -no-feature-evdev-ff-slot-eleven \ -no-feature-evdev-ff-slot-twelve \ -no-feature-evdev-ff-slot-thirteen \ -no-feature-evdev-ff-slot-fourteen \ -no-feature-evdev-ff-slot-fifteen \ -no-feature-evdev-ff-slot-sixteen \ -no-feature-evdev-ff-slot-seventeen \ -no-feature-evdev-ff-slot-eighteen \ -no-feature-evdev-ff-slot-nineteen \ -no-feature-evdev-ff-slot-twenty \ -no-feature-evdev-ff-slot-twentyone \ -no-feature-evdev-ff-slot-twentytwo \ -no-feature-evdev-ff-slot-twentythree \ -no-feature-evdev-ff-slot-twentyfour \ -no-feature-evdev-ff-slot-twentyfive \ -no-feature-evdev-ff-slot-twentysix \ -no-feature-evdev-ff-slot-twentyseven \ -no-feature-evdev-ff-slot-twentyeight \ -no-feature-evdev-ff-slot-twentynine \ -no-feature-evdev-ff-slot-thirty \ -no-feature-evdev-ff-slot-thirtyone \ -no-feature-evdev-ff-slot-thirtytwo \ -no-feature-evdev-ff-slot-thirtythree \ -no-feature-evdev-ff-slot-thirtyfour \ -no-feature-evdev-ff-slot-thirtyfive \ -no-feature-evdev-ff-slot-thirtysix \ -no-feature-evdev-ff-slot-thirtyseven \ -no-feature-evdev-ff-slot-thirtyeight \ -no-feature-evdev-ff-slot-thirtynine \ -no-feature-evdev-ff-slot-forty \ -no-feature-evdev-ff-slot-fortyone \ -no-feature-evdev-ff-slot-fortytwo \ -no-feature-evdev-ff-slot-fortythree \ -no-feature-evdev-ff-slot-fortyfour \ -no-feature-evdev-ff-slot-fortyfive \ -no-feature-evdev-ff-slot-fortysix \ -no-feature-evdev-ff-slot-fortyseven \ -no-feature-evdev-ff-slot-fortyeight \ -no-feature-evdev-ff-slot-fortynine \ -no-feature-evdev-ff-slot-fifty \ -no-feature-evdev-ff-slot-fiftyone \ -no-feature-evdev-ff-slot-fiftytwo \ -no-feature-evdev-ff-slot-fiftythree \ -no-feature-evdev-ff-slot-fiftyfour \ -no-feature-evdev-ff-slot-fiftyfive \ -no-feature-evdev-ff-slot-fiftysix \ -no-feature-evdev-ff-slot-fiftyseven \ -no-feature-evdev-ff-slot-fiftyeight \ -no-feature-evdev-ff-slot-fiftynine \ -no-feature-evdev-ff-slot-sixty \ -no-feature-evdev-ff-slot-sixtyone \ -no-feature-evdev-ff-slot-sixtytwo \ -no-feature-evdev-ff-slot-sixtythree \ -no-feature-evdev-ff-slot-sixtyfour \ -no-feature-evdev-ff-slot-sixtyfive \ -no-feature-evdev-ff-slot-sixtysix \ -no-feature-evdev-ff-slot-sixtyseven \ -no-feature-evdev-ff-slot-sixtyeight \ -no-feature-evdev-ff-slot-sixtynine \ -no-feature-evdev-ff-slot-seventy \ -no-feature-evdev-ff-slot-seventyone \ -no-feature-evdev-ff-slot-seventytwo \ -no-feature-evdev-ff-slot-seventythree \ -no-feature-evdev-ff-slot-seventyfour \ -no-feature-evdev-ff-slot-seventyfive \ -no-feature-evdev-ff-slot-seventysix \ -no-feature-evdev-ff-slot-seventyseven \ -no-feature-evdev-ff-slot-seventyeight \ -no-feature-evdev-ff-slot-seventynine \ -no-feature-evdev-ff-slot-eighty \ -no-feature-evdev-ff-slot-eightyone \ -no-feature-evdev-ff-slot-eightytwo \ -no-feature-evdev-ff-slot-eightythree \ -no-feature-evdev-ff-slot-eightyfour \ -no-feature-evdev-ff-slot-eightyfive \ -no-feature-evdev-ff-slot-eightysix \ -no-feature-evdev-ff-slot-eightyseven \ -no-feature-evdev-ff-slot-eightyeight \ -no-feature-evdev-ff-slot-eightynine \ -no-feature-evdev-ff-slot-ninety \ -no-feature-evdev-ff-slot-ninetyone \ -no-feature-evdev-ff-slot-ninetytwo \ -no-feature-evdev-ff-slot-ninetythree \ -no-feature-evdev-ff-slot-ninetyfour \ -no-feature-evdev-ff-slot-ninetyfive \ -no-feature-evdev-ff-slot-ninetysix \ -no-feature-evdev-ff-slot-ninetyseven \ -no-feature-evdev-ff-slot-ninetyeight \ -no-feature-evdev-ff-slot-ninetynine \ -no-feature-evdev-ff-slot-onehundred \ -no-feature-evdev-ff-slot-onehundredone \ -no-feature-evdev-ff-slot-onehundredtwo \ -no-feature-evdev-ff-slot-onehundredthree \ -no-feature-evdev-ff-slot-onehundredfour \ -no-feature-evdev-ff-slot-onehundredfive \ -no-feature-evdev-ff-slot-onehundredsix \ -no-feature-evdev-ff-slot-onehundredseven \ -no-feature-evdev-ff-slot-onehundredeight \ -no-feature-evdev-ff-slot-onehundrednine \ -no-feature-evdev-ff-slot-onehundredten \ -no-feature-evdev-ff-slot-onehundredeleven \ -no-feature-evdev-ff-slot-onehundredtwelve \ -no-feature-evdev-ff-slot-onehundredthirteen \ -no-feature-evdev-ff-slot-onehundredfourteen \ -no-feature-evdev-ff-slot-onehundredfifteen \ -no-feature-evdev-ff-slot-onehundredsixteen \ -no-feature-evdev-ff-slot-onehundredseventeen \ -no-feature-evdev-ff-slot-onehundredeighteen \ -no-feature-evdev-ff-slot-onehundrednineteen \ -no-feature-evdev-ff-slot-onehundredtwenty \ -no-feature-evdev-ff-slot-onehundredtwentyone \ -no-feature-evdev-ff-slot-onehundredtwentytwo \ -no-feature-evdev-ff-slot-onehundredtwentythree \ -no-feature-evdev-ff-slot-onehundredtwentyfour \ -no-feature-evdev-ff-slot-onehundredtwentyfive \ -no-feature-evdev-ff-slot-onehundredtwentysix \ -no-feature-evdev-ff-slot-onehundredtwentyseven \ -no-feature-evdev-ff-slot-onehundredtwentyeight \ -no-feature-evdev-ff-slot-onehundredtwentynine \ -no-feature-evdev-ff-slot-onehundredthirty \ -no-feature-evdev-ff-slot-onehundredthirtyone \ -no-feature-evdev-ff-slot-onehundredthirtytwo \ -no-feature-evdev-ff-slot-onehundredthirtythree \ -no-feature-evdev-ff-slot-onehundredthirtyfour \ -no-feature-evdev-ff-slot-onehundredthirtyfive \ -no-feature-evdev-ff-slot-onehundredthirtysix \ -no-feature-evdev-ff-slot-onehundredthirtyseven \ -no-feature-evdev-ff-slot-onehundredthirtyeight \ -no-feature-evdev-ff-slot-onehundredthirtynine \ -no-feature-evdev-ff-slot-onehundredforty \ -no-feature-evdev-ff-slot-onehundredfortyone \ -no-feature-evdev-ff-slot-onehundredfortytwo \ -no-feature-evdev-ff-slot-onehundredfortythree \ -no-feature-evdev-ff-slot-onehundredfortyfour \ -no-feature-evdev-ff-slot-onehundredfortyfive \ -no-feature-evdev-ff-slot-onehundredfortysix \ -no-feature-evdev-ff-slot-onehundredfortyseven \ -no-feature-evdev-ff-slot-onehundredfortyeight \ -no-feature-evdev-ff-slot-onehundredfortynine \ -no-feature-evdev-ff-slot-onehundredfifty \ -no-feature-evdev-ff-slot-onehundredfiftyone \ -no-feature-evdev-ff-slot-onehundredfiftytwo \ -no-feature-evdev-ff-slot-onehundredfiftythree \ -no-feature-evdev-ff-slot-onehundredfiftyfour \ -no-feature-evdev-ff-slot-onehundredfiftyfive \ -no-feature-evdev-ff-slot-onehundredfiftysix \ -no-feature-evdev-ff-slot-onehundredfiftyseven \ -no-feature-evdev-ff-slot-onehundredfiftyeight \ -no-feature-evdev-ff-slot-onehundredfiftynine \ -no-feature-evdev-ff-slot-onehundredsixty \ -no-feature-evdev-ff-slot-onehundredsixtyone \ -no-feature-evdev-ff-slot-onehundredsixtytwo \ -no-feature-evdev-ff-slot-onehundredsixtythree \ -no-feature-evdev-ff-slot-onehundredsixtyfour \ -no-feature-evdev-ff-slot-onehundredsixtyfive \ -no-feature-evdev-ff-slot-onehundredsixtysix \ -no-feature-evdev-ff-slot-onehundredsixtyseven \ -no-feature-evdev-ff-slot-onehundredsixtyeight \ -no-feature-evdev-ff-slot-onehundredsixtynine \ -no-feature-evdev-ff-slot-onehundredseventy \ -no-feature-evdev-ff-slot-onehundredseventyone \ -no-feature-evdev-ff-slot-onehundredseventytwo \ -no-feature-evdev-ff-slot-onehundredseventythree \ -no-feature-evdev-ff-slot-onehundredseventyfour \ -no-feature-evdev-ff-slot-onehundredseventyfive \ -no-feature-evdev-ff-slot-onehundredseventysix \ -no-feature-evdev-ff-slot-onehundredseventyseven \ -no-feature-evdev-ff-slot-onehundredseventyeight \ -no-feature-evdev-ff-slot-onehundredseventynine \ -no-feature-evdev-ff-slot-onehundredeighty \ -no-feature-evdev-ff-slot-onehundredeightyone \ -no-feature-evdev-ff-slot-onehundredeightytwo \ -no-feature-evdev-ff-slot-onehundredeightythree \ -no-feature-evdev-ff-slot-onehundredeightyfour \ -no-feature-evdev-ff-slot-onehundredeightyfive \ -no-feature-evdev-ff-slot-onehundredeightysix \ -no-feature-evdev-ff-slot-onehundredeightyseven \ -no-feature-evdev-ff-slot-onehundredeightyeight \ -no-feature-evdev-ff-slot-onehundredeightynine \ -no-feature-evdev-ff-slot-onehundredninety \ -no-feature-evdev-ff-slot-onehundredninetyone \ -no-feature-evdev-ff-slot-onehundredninetytwo \ -no-feature-evdev-ff-slot-onehundredninetythree \ -no-feature-evdev-ff-slot-onehundredninetyfour \ -no-feature-evdev-ff-slot-onehundredninetyfive \ -no-feature-evdev-ff-slot-onehundredninetysix \ -no-feature-evdev-ff-slot-onehundredninetyseven \ -no-feature-evdev-ff-slot-onehundredninetyeight \ -no-feature-evdev-ff-slot-onehundredninetynine \ -no-feature-evdev-ff-slot-twohundred \ -no-feature-evdev-ff-slot-twohundredone \ -no-feature-evdev-ff-slot-twohundredtwo \ -no-feature-evdev-ff-slot-twohundredthree \ -no-feature-evdev-ff-slot-twohundredfour \ -no-feature-evdev-ff-slot-twohundredfive \ -no-feature-evdev-ff-slot-twohundredsix \ -no-feature-evdev-ff-slot-twohundredseven \ -no-feature-evdev-ff-slot-twohundredeight \ -no-feature-evdev-ff-slot-twohundrednine \ -no-feature-evdev-ff-slot-twohundredten \ -no-feature-evdev-ff-slot-twohundredeleven \ -no-feature-evdev-ff-slot-twohundredtwelve \ -no-feature-evdev-ff-slot-twohundredthirteen \ -no-feature-evdev-ff-slot-twohundredfourteen \ -no-feature-evdev-ff-slot-twohundredfifteen \ -no-feature-evdev-ff-slot-twohundredsixteen \ -no-feature-evdev-ff-slot-twohundredseventeen \ -no-feature-evdev-ff-slot-twohundredeighteen \ -no-feature-evdev-ff-slot-twohundrednineteen \ -no-feature-evdev-ff-slot-twohundredtwenty \ -no-feature-evdev-ff-slot-twohundredtwentyone \ -no-feature-evdev-ff-slot-twohundredtwentytwo \ -no-feature-evdev-ff-slot-twohundredtwentythree \ -no-feature-evdev-ff-slot-twohundredtwentyfour \ -no-feature-evdev-ff-slot-twohundredtwentyfive \ -no-feature-evdev-ff-slot-twohundredtwentysix \ -no-feature-evdev-ff-slot-twohundredtwentyseven \ -no-feature-evdev-ff-slot-twohundredtwentyeight \ -no-feature-evdev-ff-slot-twohundredtwentynine \ -no-feature-evdev-ff-slot-twohundredthirty \ -no-feature-evdev-ff-slot-twohundredthirtyone \ -no-feature-evdev-ff-slot-twohundredthirtytwo \ -no-feature-evdev-ff-slot-twohundredthirtythree \ -no-feature-evdev-ff-slot-twohundredthirtyfour \ -no-feature-evdev-ff-slot-twohundredthirtyfive \ -no-feature-evdev-ff-slot-twohundredthirtysix \ -no-feature-evdev-ff-slot-twohundredthirtyseven \ -no-feature-evdev-ff-slot-twohundredthirtyeight \ -no-feature-evdev-ff-slot-twohundredthirtynine \ -no-feature-evdev-ff-slot-twohundredforty \ -no-feature-evdev-ff-slot-twohundredfortyone \ -no-feature-evdev-ff-slot-twohundredfortytwo \ -no-feature-evdev-ff-slot-twohundredfortythree \ -no-feature-evdev-ff-slot-twohundredfortyfour \ -no-feature-evdev-ff-slot-twohundredfortyfive \ -no-feature-evdev-ff-slot-twohundredfortysix \ -no-feature-evdev-ff-slot-twohundredfortyseven \ -no-feature-evdev-ff-slot-twohundredfortyeight \ -no-feature-evdev-ff-slot-twohundredfortynine \ -no-feature-evdev-ff-slot-twohundredfifty \ -no-feature-evdev-ff-slot-twohundredfiftyone \ -no-feature-evdev-ff-slot-twohundredfiftytwo \ -no-feature-evdev-ff-slot-twohundredfiftythree \ -no-feature-evdev-ff-slot-twohundredfiftyfour \ -no-feature-evdev-ff-slot-twohundredfiftyfive \ -no-feature-evdev-ff-slot-twohundredfiftysix \ -no-feature-evdev-ff-slot-twohundredfiftyseven \ -no-feature-evdev-ff-slot-twohundredfiftyeight \ -no-feature-evdev-ff-slot-twohundredfiftynine \ -no-feature-evdev-ff-slot-twohundredsixty \ -no-feature-evdev-ff-slot-twohundredsixtyone \ -no-feature-evdev-ff-slot-twohundredsixtytwo \ -no-feature-evdev-ff-slot-twohundredsixtythree \ -no-feature-evdev-ff-slot-twohundredsixtyfour \ -no-feature-evdev-ff-slot-twohundredsixtyfive \ -no-feature-evdev-ff-slot-twohundredsixtysix \ -no-feature-evdev-ff-slot-twohundredsixtyseven \ -no-feature-evdev-ff-slot-twohundredsixtyeight \ -no-feature-evdev-ff-slot-twohundredsixtynine \ -no-feature-evdev-ff-slot-twohundredseventy \ -no-feature-evdev-ff-slot-twohundredseventyone \ -no-feature-evdev-ff-slot-twohundredseventytwo \ -no-feature-evdev-ff-slot-twohundredseventythree \ -no-feature-evdev-ff-slot-twohundredseventyfour \ -no-feature-evdev-ff-slot-twohundredseventyfive \ -no-feature-evdev-ff-slot-twohundredseventysix \ -no-feature-evdev-ff-slot-twohundredseventyseven \ -no-feature-evdev-ff-slot-twohundredseventyeight \ -no-feature-evdev-ff-slot-two