[{"data":1,"prerenderedAt":372},["ShallowReactive",2],{"/blog/linux-waydroid-nvidia":3,"tag-tech":357,"tag-linux":369},{"id":4,"title":5,"body":6,"date":337,"description":12,"excerpt":338,"extension":342,"hidden":343,"kebabTitle":344,"meta":345,"navigation":92,"path":346,"rawbody":347,"seo":348,"sitemap":349,"stem":352,"tags":353,"__hash__":356},"blog/blog/tech/linux-waydroid-nvidia.md","在Linux上运行Waydroid模拟器和NVIDIA运行游戏",{"type":7,"value":8,"toc":335},"minimark",[9,13,18,21,32,35,38,176,183,214,221,227,238,248,254,257,274,277,283,290,312,316,319,328,331],[10,11,12],"p",{},"需求是在Arch Linux（Wayland/KDE）上用安卓模拟器运行プロセカ等游戏，并尝试使用独显。此外还尝试了使用独显跑其他Electron程序。",[14,15,17],"h1",{"id":16},"waydroid配置","Waydroid配置",[10,19,20],{},"首先安装waydroid和相关的便利脚本：",[22,23,28],"pre",{"className":24,"code":26,"language":27},[25],"language-text","paru -S waydroid waydroid-script-git\n","text",[29,30,26],"code",{"__ignoreMap":31},"",[10,33,34],{},"后者是一个可以方便地给waydroid安装各种常用组件的脚本，也可以直接在github上找到它自己配置运行，从aur安装就是省事一些。",[10,36,37],{},"waydroid的相关常用指令如下：",[22,39,43],{"className":40,"code":41,"language":42,"meta":31,"style":31},"language-bash shiki shiki-themes github-light github-dark","waydroid init # 第一次启动时的初始化\nwaydroid init -s GAPPS # 初始化并自动安装GApps，如果是为了运行游戏推荐安装\nwaydroid      # 直接启动\n\nwaydroid session start/stop/restart # 管理waydroid会话，基本上等同于模拟器的开关机\nsudo waydroid container start/stop/restart # 管理容器，在waydroid会话起不来、修改waydroid配置等之后重启\nsudo systemctl start/stop/restart waydroid-container.service # 管理服务，上述两个都起不来的时候重启\n\nwaydroid upgrade -o # 更新配置文件之后应用\n\nwaydroid shell # 进客户机的shell\n","bash",[29,44,45,62,79,87,94,108,125,141,146,160,165],{"__ignoreMap":31},[46,47,50,54,58],"span",{"class":48,"line":49},"line",1,[46,51,53],{"class":52},"sScJk","waydroid",[46,55,57],{"class":56},"sZZnC"," init",[46,59,61],{"class":60},"sJ8bj"," # 第一次启动时的初始化\n",[46,63,65,67,69,73,76],{"class":48,"line":64},2,[46,66,53],{"class":52},[46,68,57],{"class":56},[46,70,72],{"class":71},"sj4cs"," -s",[46,74,75],{"class":56}," GAPPS",[46,77,78],{"class":60}," # 初始化并自动安装GApps，如果是为了运行游戏推荐安装\n",[46,80,82,84],{"class":48,"line":81},3,[46,83,53],{"class":52},[46,85,86],{"class":60},"      # 直接启动\n",[46,88,90],{"class":48,"line":89},4,[46,91,93],{"emptyLinePlaceholder":92},true,"\n",[46,95,97,99,102,105],{"class":48,"line":96},5,[46,98,53],{"class":52},[46,100,101],{"class":56}," session",[46,103,104],{"class":56}," start/stop/restart",[46,106,107],{"class":60}," # 管理waydroid会话，基本上等同于模拟器的开关机\n",[46,109,111,114,117,120,122],{"class":48,"line":110},6,[46,112,113],{"class":52},"sudo",[46,115,116],{"class":56}," waydroid",[46,118,119],{"class":56}," container",[46,121,104],{"class":56},[46,123,124],{"class":60}," # 管理容器，在waydroid会话起不来、修改waydroid配置等之后重启\n",[46,126,128,130,133,135,138],{"class":48,"line":127},7,[46,129,113],{"class":52},[46,131,132],{"class":56}," systemctl",[46,134,104],{"class":56},[46,136,137],{"class":56}," waydroid-container.service",[46,139,140],{"class":60}," # 管理服务，上述两个都起不来的时候重启\n",[46,142,144],{"class":48,"line":143},8,[46,145,93],{"emptyLinePlaceholder":92},[46,147,149,151,154,157],{"class":48,"line":148},9,[46,150,53],{"class":52},[46,152,153],{"class":56}," upgrade",[46,155,156],{"class":71}," -o",[46,158,159],{"class":60}," # 更新配置文件之后应用\n",[46,161,163],{"class":48,"line":162},10,[46,164,93],{"emptyLinePlaceholder":92},[46,166,168,170,173],{"class":48,"line":167},11,[46,169,53],{"class":52},[46,171,172],{"class":56}," shell",[46,174,175],{"class":60}," # 进客户机的shell\n",[10,177,178,179,182],{},"如果是从aur安装的waydroid-script，可以使用",[29,180,181],{},"sudo waydroid-extras"," 启动，安装相关扩展。第一步直接选安卓13就行。",[184,185,186,202,208],"ul",{},[187,188,189,192,193,196,197,201],"li",{},[29,190,191],{},"libndk"," / ",[29,194,195],{},"libhoudini"," 用于在x86设备上运行arm应用的转译层，",[198,199,200],"strong",{},"几乎必安","。后者似乎对游戏的兼容性比较好，反正对プロセカ前者跑不起来，只能用后者。",[187,203,204,207],{},[29,205,206],{},"magisk"," 无痛root",[187,209,210,213],{},[29,211,212],{},"gapps"," 第一步没有安GApps的可以在这里安",[10,215,216,217,220],{},"如果你使用dae或者其他透明代理工具，务必在其配置文件（例如",[29,218,219],{},"/etc/dae/dae.config","）中绑定waydroid的网口，否则安卓设备会无法联网。例如：",[22,222,225],{"className":223,"code":224,"language":27},[25],"global {\n  lan_interface: waydroid0 # 绑定waydroid网口\n  wan_interface: auto # 使用 \"auto\" 自动侦测 WAN 接口。\n}\n",[29,226,224],{"__ignoreMap":31},[10,228,229,230,233,234,237],{},"接下来修改waydroid的配置文件 ",[29,231,232],{},"/var/lib/waydroid/waydroid.cfg","，在",[29,235,236],{},"[properties]"," 段落添加内容。",[10,239,240,241,244,245,247],{},"先添加这两行模拟WIFI和触摸事件。如果需要对特定包启用而不是全部包，将",[29,242,243],{},"*","替换为包名，允许",[29,246,243],{},"的通配。",[22,249,252],{"className":250,"code":251,"language":27},[25],"persist.waydroid.fake_touch = *\npersist.waydroid.fake_wifi = *\n",[29,253,251],{"__ignoreMap":31},[10,255,256],{},"然后修改渲染设置，如果希望使用集成显卡（我是Intel）：",[22,258,262],{"className":259,"code":260,"language":261,"meta":31,"style":31},"language-int shiki shiki-themes github-light github-dark","persist.waydroid.gpu_mode = vd\nro.hardware.vulkan = lvp  # 此处似乎可选lvp和swiftshader，需要根据waydroid设备中的驱动决定。我使用了lvp\n","int",[29,263,264,269],{"__ignoreMap":31},[46,265,266],{"class":48,"line":49},[46,267,268],{},"persist.waydroid.gpu_mode = vd\n",[46,270,271],{"class":48,"line":64},[46,272,273],{},"ro.hardware.vulkan = lvp  # 此处似乎可选lvp和swiftshader，需要根据waydroid设备中的驱动决定。我使用了lvp\n",[10,275,276],{},"如果希望使用nvidia显卡：",[22,278,281],{"className":279,"code":280,"language":27},[25],"ro.hardware.gralloc = gbm\nro.hardware.egl = mesa\nro.hardware.vulkan = nvidia\nro.hardware.opengl = mesa\n",[29,282,280],{"__ignoreMap":31},[10,284,285,286,289],{},"一般来说 ",[29,287,288],{},"nvidia-drm"," 应该已经启用了。最后重载Waydroid配置、重启容器应该就可以了。",[22,291,295],{"className":292,"code":293,"language":294,"meta":31,"style":31},"language-shell shiki shiki-themes github-light github-dark","waydroid upgrade -o\nsudo systemctl restart waydroid-container.service\nwaydroid session start\n","shell",[29,296,297,302,307],{"__ignoreMap":31},[46,298,299],{"class":48,"line":49},[46,300,301],{},"waydroid upgrade -o\n",[46,303,304],{"class":48,"line":64},[46,305,306],{},"sudo systemctl restart waydroid-container.service\n",[46,308,309],{"class":48,"line":81},[46,310,311],{},"waydroid session start\n",[14,313,315],{"id":314},"使用n卡运行electron应用","使用N卡运行Electron应用",[10,317,318],{},"electron的渲染压力对集成显卡来说还是有点高了，好在对electron应用来说启用N卡很简单：",[22,320,322],{"className":292,"code":321,"language":294,"meta":31,"style":31},"DRI_PRIME=1 MESA_LOADER_DRIVER_OVERRIDE=nvidia electron . --enable-features=VaapiVideoDecoder --enable-unsafe-swiftshader --disable-gpu-sandbox --enable-gpu-rasterization\n",[29,323,324],{"__ignoreMap":31},[46,325,326],{"class":48,"line":49},[46,327,321],{},[10,329,330],{},"设置两个环境变量，传点参数就好了。总之这个也是LLM给的，能用就行。",[332,333,334],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":31,"searchDepth":81,"depth":81,"links":336},[],"2026-04-14T07:48:30.000Z",{"type":7,"value":339},[340],[10,341,12],{},"md",false,"linux-waydroid-nvidia",{},"/blog/tech/linux-waydroid-nvidia","---\ntitle: 在Linux上运行Waydroid模拟器和NVIDIA运行游戏\nkebabTitle: linux-waydroid-nvidia\ndate: 2026-04-14T15:48:30+08:00\ntags:\n  - tech\n  - linux\nsitemap:\n  loc: /blog/linux-waydroid-nvidia\n  lastmod: 2026-04-14T15:48:30+08:00\n---\n\n\n需求是在Arch Linux（Wayland/KDE）上用安卓模拟器运行プロセカ等游戏，并尝试使用独显。此外还尝试了使用独显跑其他Electron程序。\n\n\u003C!-- more -->\n\n# Waydroid配置\n首先安装waydroid和相关的便利脚本：\n```\nparu -S waydroid waydroid-script-git\n```\n后者是一个可以方便地给waydroid安装各种常用组件的脚本，也可以直接在github上找到它自己配置运行，从aur安装就是省事一些。\n\nwaydroid的相关常用指令如下：\n```bash\nwaydroid init # 第一次启动时的初始化\nwaydroid init -s GAPPS # 初始化并自动安装GApps，如果是为了运行游戏推荐安装\nwaydroid      # 直接启动\n\nwaydroid session start/stop/restart # 管理waydroid会话，基本上等同于模拟器的开关机\nsudo waydroid container start/stop/restart # 管理容器，在waydroid会话起不来、修改waydroid配置等之后重启\nsudo systemctl start/stop/restart waydroid-container.service # 管理服务，上述两个都起不来的时候重启\n\nwaydroid upgrade -o # 更新配置文件之后应用\n\nwaydroid shell # 进客户机的shell\n```\n\n如果是从aur安装的waydroid-script，可以使用`sudo waydroid-extras` 启动，安装相关扩展。第一步直接选安卓13就行。\n\n- `libndk` / `libhoudini` 用于在x86设备上运行arm应用的转译层，**几乎必安**。后者似乎对游戏的兼容性比较好，反正对プロセカ前者跑不起来，只能用后者。\n- `magisk` 无痛root\n- `gapps` 第一步没有安GApps的可以在这里安\n\n如果你使用dae或者其他透明代理工具，务必在其配置文件（例如`/etc/dae/dae.config`）中绑定waydroid的网口，否则安卓设备会无法联网。例如：\n```\nglobal {\n  lan_interface: waydroid0 # 绑定waydroid网口\n  wan_interface: auto # 使用 \"auto\" 自动侦测 WAN 接口。\n}\n```\n\n\n接下来修改waydroid的配置文件 `/var/lib/waydroid/waydroid.cfg`，在`[properties]` 段落添加内容。\n\n先添加这两行模拟WIFI和触摸事件。如果需要对特定包启用而不是全部包，将`*`替换为包名，允许`*`的通配。\n```\npersist.waydroid.fake_touch = *\npersist.waydroid.fake_wifi = *\n```\n\n然后修改渲染设置，如果希望使用集成显卡（我是Intel）：\n```int\npersist.waydroid.gpu_mode = vd\nro.hardware.vulkan = lvp  # 此处似乎可选lvp和swiftshader，需要根据waydroid设备中的驱动决定。我使用了lvp\n```\n如果希望使用nvidia显卡：\n```\nro.hardware.gralloc = gbm\nro.hardware.egl = mesa\nro.hardware.vulkan = nvidia\nro.hardware.opengl = mesa\n```\n\n一般来说 `nvidia-drm` 应该已经启用了。最后重载Waydroid配置、重启容器应该就可以了。\n```shell\nwaydroid upgrade -o\nsudo systemctl restart waydroid-container.service\nwaydroid session start\n```\n\n\n# 使用N卡运行Electron应用\n\nelectron的渲染压力对集成显卡来说还是有点高了，好在对electron应用来说启用N卡很简单：\n```shell\nDRI_PRIME=1 MESA_LOADER_DRIVER_OVERRIDE=nvidia electron . --enable-features=VaapiVideoDecoder --enable-unsafe-swiftshader --disable-gpu-sandbox --enable-gpu-rasterization\n```\n设置两个环境变量，传点参数就好了。总之这个也是LLM给的，能用就行。",{"title":5,"description":12},{"loc":350,"lastmod":351},"/blog/linux-waydroid-nvidia","2026-04-14T15:48:30+08:00","blog/tech/linux-waydroid-nvidia",[354,355],"tech","linux","OaMMrRv2bKekB2e_IfeWbcGlTTweya64gszPgLkPdlg",[358,360,362,363,365,367],{"id":359},"blog/blog/tech/arch-linux-exp.md",{"id":361},"blog/blog/tech/frontend-lib.md",{"id":4},{"id":364},"blog/blog/tech/moqi-shuangpin.md",{"id":366},"blog/blog/tech/pjsk-asset-memo.md",{"id":368},"blog/blog/tech/vue-startpack.md",[370,371],{"id":359},{"id":4},1776153015922]