# switch lvgl platform **Repository Path**: chumenzuoguai/switch-lvgl-platform ## Basic Information - **Project Name**: switch lvgl platform - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-02 - **Last Updated**: 2026-04-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Switch LVGL9 Workspace 这个仓库用于维护一个可复用的 `LVGL 9 + Nintendo Switch` 平台层,以及基于它的示例工程。 当前仓库里已经同时保留了两套打包流程: - `Forwarder`:默认方案,生成 `NRO + NTON Forwarder NSP`,目前这是已验证可正常启动的方案。 - `Native`:原生安装包方案,使用 `hacBrewPack` 生成可安装 `NSP`,目前已经能成功安装,但运行时仍有黑屏问题,暂不作为默认方案。 ## 目录结构 - `platform/switch-lvgl9-platform` Switch 平台抽象层,当前显示后端是 `framebuffer fallback`。 - `apps/lvgl9-demo-nsp` LVGL9 示例工程。 - `scripts` 构建、检查、打包脚本。 - `dist` 构建产物输出目录,不纳入 Git。 - `key` 本地密钥目录,仅本机使用,不纳入 Git。 - `_src` 第三方源码目录,例如本地克隆的 `lvgl`。 - `_downloads/hacBrewPack` 原生 `NSP` 打包工具。 ## 当前状态 - 平台库可正常编译。 - Demo 可生成 `ELF / NSO / NPDM / NRO`。 - 默认推荐使用 `Forwarder` 模式打包。 - `Native` 模式保留在仓库中,用于继续排查原生 `NSP` 黑屏问题。 - `apps/lvgl9-demo-nsp/lvgl9-demo-nsp.nsp` 不是最终安装包,不要直接安装它。 ## 手动构建 在 `WSL Ubuntu 24.04` 中执行: ```bash source /etc/profile.d/devkit-env.sh cd /mnt/d/WorkSpace/switch/platform/switch-lvgl9-platform make -j4 cd /mnt/d/WorkSpace/switch/apps/lvgl9-demo-nsp make -j4 ``` 构建完成后会生成: - `apps/lvgl9-demo-nsp/lvgl9-demo-nsp.elf` - `apps/lvgl9-demo-nsp/lvgl9-demo-nsp.nso` - `apps/lvgl9-demo-nsp/lvgl9-demo-nsp.npdm` ## 一步打包 统一入口脚本: ```powershell .\scripts\package-nsp.ps1 ``` ### 默认模式:Forwarder 直接执行不带参数时,默认走 `Forwarder` 方案: ```powershell .\scripts\package-nsp.ps1 ``` 脚本会: - 在 WSL 中编译工程 - 生成 `NACP` - 把 `ELF` 转成 `NRO` - 调用 `NTON` 生成 Forwarder `NSP` - 把最终产物复制到 `dist/` 默认产物: - `dist/lvgl9-demo-nsp.nsp` - `dist/lvgl9-demo-nsp.nro` ### 原生模式:Native 如需显式生成原生可安装 `NSP`,使用: ```powershell .\scripts\package-nsp.ps1 -PackageMode Native ``` 脚本会: - 在 WSL 中编译工程 - 生成 `NSO / NPDM / control.nacp` - 调用 `hacBrewPack` 生成原生 `NSP` - 把最终产物复制到 `dist/` 默认产物: - `dist/lvgl9-demo-nsp.nsp` - `dist/lvgl9-demo-nsp.elf` 注意: - 该模式目前仅代表“安装包已经生成成功”。 - 当前真机运行时仍存在黑屏问题,暂时不作为推荐方案。 ### 重新完整编译 如果希望先清理再完整重编译: ```powershell .\scripts\package-nsp.ps1 -Clean ``` 如果要对原生模式执行完整重编译: ```powershell .\scripts\package-nsp.ps1 -PackageMode Native -Clean ``` ## 图标说明 - 如果存在 `apps/lvgl9-demo-nsp/icon_AmericanEnglish.dat`,优先使用它。 - 否则如果存在 `apps/lvgl9-demo-nsp/icon.jpg`,会把它作为 `icon_AmericanEnglish.dat` 使用。 - 如果都不存在,则回退到 `libnx` 自带的 `default_icon.jpg`。 `icon_AmericanEnglish.dat` 本质上是一个 `256x256` 的 JPEG 文件,只是文件名不同。 ## 依赖说明 ### Forwarder 模式依赖 - `WSL Ubuntu 24.04` - `devkitPro / libnx` - `nacptool` - `elf2nro` - `NTON` - `key/prod.keys` ### Native 模式依赖 - `WSL Ubuntu 24.04` - `devkitPro / libnx` - `hacBrewPack` - `key/prod.keys` ## 兼容说明 - `scripts/package-forwarder.ps1` 仍然保留,作为旧版单独脚本。 - 现在推荐统一使用 `scripts/package-nsp.ps1`。 - 默认行为已经改为 `Forwarder`,以保证开箱即可用。 ## 安全说明 - `prod.keys` / `title.keys` 只保留在本地 `key/` 或 `C:\Users\28412\.switch\`。 - 这些文件不会进入 Git。 - `dist/` 下的打包产物不建议直接提交到仓库。