{"id":50541332,"url":"https://github.com/luhuadong/tuxibit","last_synced_at":"2026-06-03T20:01:09.355Z","repository":{"id":109655319,"uuid":"90008213","full_name":"luhuadong/TuxiBit","owner":"luhuadong","description":"TuxiBit - Embedded Linux Device Test Toolkit","archived":false,"fork":false,"pushed_at":"2026-05-22T18:45:10.000Z","size":7118,"stargazers_count":8,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-22T21:36:48.535Z","etag":null,"topics":["device","linux","qt","testing-tools","toolkit"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/luhuadong.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-05-02T08:14:16.000Z","updated_at":"2026-05-22T18:45:14.000Z","dependencies_parsed_at":"2025-05-07T00:41:44.044Z","dependency_job_id":"c4f8fe07-f7b5-450f-8711-aabdb1d5aff7","html_url":"https://github.com/luhuadong/TuxiBit","commit_stats":null,"previous_names":["luhuadong/devicecab","luhuadong/easybench","luhuadong/tuxibit"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/luhuadong/TuxiBit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luhuadong%2FTuxiBit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luhuadong%2FTuxiBit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luhuadong%2FTuxiBit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luhuadong%2FTuxiBit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/luhuadong","download_url":"https://codeload.github.com/luhuadong/TuxiBit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luhuadong%2FTuxiBit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33876894,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-03T02:00:06.370Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["device","linux","qt","testing-tools","toolkit"],"created_at":"2026-06-03T20:01:07.424Z","updated_at":"2026-06-03T20:01:09.290Z","avatar_url":"https://github.com/luhuadong.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TuxiBit\n\n[![GitHubStars](https://img.shields.io/github/stars/luhuadong/TuxiBit?style=flat-square\u0026logo=GitHub)](https://github.com/luhuadong/TuxiBit/stargazers)\n[![GitHub](https://img.shields.io/github/license/luhuadong/TuxiBit.svg)](https://github.com/luhuadong/TuxiBit/blob/master/LICENSE)\n[![GitHub release](https://img.shields.io/github/release/luhuadong/TuxiBit.svg)](https://github.com/luhuadong/TuxiBit/releases)\n\n![](resource/TuxiBit_Banner.png)\n\nTuxiBit 是一个面向嵌入式 Linux 设备的轻量级出厂测试、硬件诊断和板级验证工具，支持图形界面、命令行执行、插件化测试项和测试报告导出。\n\n通过模块化的设计思想对功能进行划分，主要包括：\n\n- 板载硬件设备检测（包括液晶显示屏、触摸屏、摄像头、麦克风、硬盘、串口等等）\n- 系统监控（包括 CPU、内存、硬盘、网络等系统资源）\n- 设备功能配置（包括终端通道、工作模式、视频分辨率设置等）\n\n\n\n## 安装依赖\n\nUbuntu / Debian：\n\n```shell\nsudo apt install cmake pkg-config \\\n    qtbase5-dev qtmultimedia5-dev \\\n    libasound2-dev libgl1-mesa-dev\n```\n\n使用 Qt 6 时额外安装：\n\n```shell\nsudo apt install qt6-base-dev qt6-multimedia-dev libqt6core5compat6-dev\n```\n\n\n\n## 编译步骤（CMake）\n\n1. 配置并编译（自动优先选用已安装的 Qt 6，否则使用 Qt 5）：\n\n   ```shell\n   cmake -B build\n   cmake --build build -j$(nproc)\n   ```\n\n2. 指定 Qt 版本：\n\n   ```shell\n   cmake -B build -DTUXIBIT_FORCE_QT5=ON   # 强制 Qt 5\n   cmake -B build -DTUXIBIT_FORCE_QT6=ON   # 强制 Qt 6（需 Qt 6.2+）\n   ```\n\n3. 可执行文件位于 `build/tuxibit`。\n\n4. 安装到系统（推荐）：\n\n   ```shell\n   sudo ./scripts/cmake-install.sh\n   # 等价于: sudo cmake --install build --prefix /usr\n   ```\n\n   安装内容：`/usr/bin/tuxibit`、`/etc/tuxibit/tuxibit.conf`（首次创建，不覆盖已有配置）、`share/applications/tuxibit.desktop`、`share/tuxibit/deploy/`、`share/tuxibit/fonts/LiHeiPro.ttf`、Freedesktop 图标。安装结束时会尝试刷新图标缓存与 desktop 数据库。\n\n5. 发布打包（CMake staging / CPack）：\n\n   ```shell\n   ./packaging/build-staging.sh          # dist/tuxibit-\u003cver\u003e-linux-\u003carch\u003e.tar.gz\n   cd build \u0026\u0026 cpack -G TGZ             # 或 DEB（Debian/Ubuntu）\n   ```\n\n   详见 [packaging/README.md](packaging/README.md)。遗留自解压安装包：`./packaging/package.sh`。\n\n6. 仅在当前用户目录安装启动器（无需 root，便于 Ubuntu 桌面调试）：\n\n   ```shell\n   chmod +x scripts/install-desktop-local.sh\n   ./scripts/install-desktop-local.sh\n   ```\n\n7. 交叉编译时，在 `cmake -B build` 前加载目标平台的 SDK 环境（例如 Yocto 的 `environment-setup-*`），并确保 `CMAKE_PREFIX_PATH` 指向目标 Qt 安装路径。\n\n8. 裁剪体积（嵌入式部署可选）：\n\n   ```shell\n   arm-poky-linux-gnueabi-strip build/tuxibit\n   ```\n\n\n\n## 目录结构\n\n```bash\nTuxiBit/\n├── CMakeLists.txt          # 构建入口\n├── src/                    # 应用源码\n│   ├── main.cpp\n│   ├── app/                # 主窗口、配置、启动检查、路径解析\n│   ├── widgets/            # 通用控件（PageWidget、StatusBar 等）\n│   ├── pages/              # 功能页面（网络、升级、版本等）\n│   └── modules/            # 功能模块（audio、network、update、monitor…）\n├── config/                 # 运行时配置模板\n├── deploy/                 # 产线工具与数据（eepromARMtool、I210 OTP）\n├── resource/               # Qt 资源（qrc、图标、QSS、字体）\n├── cmake/                  # TuxiBitInstall / Packaging、desktop 模板\n├── packaging/              # staging、CPack、遗留 .run 安装包\n├── scripts/                # 开发辅助脚本\n├── docs/                   # 文档\n└── legacy/                 # 遗留 qmake / JSON / Seat 样例\n```\n\n## 配置与路径\n\n- 主配置模板：`config/tuxibit.conf`\n- 搜索顺序：`/etc/tuxibit/` → `/etc/gbox/`（兼容）→ 程序目录旁 `config/` → 开发树 `config/`\n- 产线工具：`deploy/bin/eepromARMtool`，数据：`deploy/data/I210NIC-origin.otp`（安装后位于 `share/tuxibit/deploy/`）\n\n## 遗留 qmake 构建\n\n`legacy/tuxibit.pro` 仅供参考，推荐使用 CMake。\n\n## 注意事项\n\n- 默认通过 CMake 检测 Qt 版本；摄像头页面在 Qt 5 与 Qt 6 下使用各自的多媒体 API。\n- Qt 6 构建依赖 `Qt6::Core5Compat`，以兼容代码中的 `QTextCodec` 与 `QRegExp`。\n- 中文字体由 `TbPaths::chineseFontFile()` 自动查找（安装路径、`resource/fonts/` 等）。\n- 应用窗口与任务栏图标来自内嵌资源 `:/images/logo.png`；系统菜单/dock 图标名称为 `tuxibit`，需通过 `cmake --install` 或 `scripts/install-desktop-local.sh` 安装到图标主题路径。`StartupWMClass=tuxibit` 与 `QApplication::setDesktopFileName()` 配合，便于 Ubuntu dock 正确分组与固定。\n\n\n\n## 更新图标\n\n图标文件位于 resource 目录，如果更换了图标，只需重新编译即可（让 Qt 资源重新打包新图）：\n\n```bash\ncmake --build build -j$(nproc)\n```\n\n如果使用 Ubuntu 系统，且之前装过桌面图标，还要再装一次并刷新缓存，dock 才会显示新 logo：\n\n```bash\nsudo cmake --install build\n# 或仅本机用户目录：\n./scripts/install-desktop-local.sh\n```\n\nUbuntu dock 若仍显示旧图，可注销再登录，或执行：\n\n```bash\ngtk-update-icon-cache -f -t ~/.local/share/icons/hicolor\n```\n\n\n\n## 配色风格\n\n主色调：橙黄色 `FFD54B`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluhuadong%2Ftuxibit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluhuadong%2Ftuxibit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluhuadong%2Ftuxibit/lists"}