{"id":3246,"date":"2025-08-01T19:48:05","date_gmt":"2025-08-01T11:48:05","guid":{"rendered":"https:\/\/jir.idv.tw\/wordpress\/?p=3246"},"modified":"2025-08-01T19:48:05","modified_gmt":"2025-08-01T11:48:05","slug":"ubuntu%e5%8d%87%e7%b4%9a%e5%88%b024-04-2%e5%be%8c%ef%bc%8c%e6%9c%ac%e4%be%86google-remote-desktop%e5%8f%af%e4%bb%a5%e7%94%a8%ef%bc%8c%e8%ae%8a%e6%88%90%e4%b8%8d%e8%83%bd%e7%94%a8%e7%9a%84%e5%8f%af","status":"publish","type":"post","link":"https:\/\/jir.idv.tw\/wordpress\/?p=3246","title":{"rendered":"UBUNTU\u5347\u7d1a\u523024.04.2\u5f8c\uff0c\u672c\u4f86google remote desktop\u53ef\u4ee5\u7528\uff0c\u8b8a\u6210\u4e0d\u80fd\u7528\u7684\u53ef\u80fd\u89e3\u6cd5"},"content":{"rendered":"<p>\u554f\u984c\u95dc\u9375\u5b57\uff1a<br \/>\nxf86OpenConsole: Cannot open virtual console 2 (Permission denied)<br \/>\nchrome-remote-desktop[xxxxx]: xdpyinfo:\u00a0 unable to open display &#8220;:20&#8221;.<\/p>\n<p>\u7e3d\u4e4b\uff0c\u6211\u5df2\u7d93\u8017\u4e86\u4e09\u5929\u5728\u91cd\u88ddCRD\u5957\u4ef6\uff0c\u5b83\u5c31\u662f\u4e00\u76f4\u4e0d\u80fd\u6b63\u5e38\u555f\u52d5\u3002<br \/>\n\u6bcf\u5929\u554fAI\u9019\u500b\u67e5\u3001\u90a3\u500b\u67e5\uff0c\u554f\u5230\u6211\u90fd\u6709\u61f7\u7591\u4eba\u751f\u7684FU&#8230;\u3002<br \/>\n\u4eca\u5929\u4e0b\u73ed\u7279\u5225\u6c89\u4e0b\u5fc3\u4f86\uff0c\u597d\u597d\u7684\u7814\u7a76PYTHON\u7d50\u69cb\u7684\u7a0b\u5f0f\u78bc\uff0c\u548cAI\u8549\u6d41\u8549\u6d41\u3002<\/p>\n<p>\u7e3d\u4e4b\uff0c\u5b83\u5c31\u662f\u4e0d\u77e5\u9053\u70ba\u4ec0\u9ebcsystemctl\u670d\u52d9\u555f\u52d5\uff0c\u8b93\u6211\u7684\u4f7f\u7528\u8005\u5e33\u865f\u547c\u53eb\/dev\/tty2\u87a2\u5e55\u6642\uff0c\u660e\u660e\u6709tty\u548cvideo\u7fa4\u7d44\u6b0a\u9650\u7684\u72c0\u6cc1\uff0c\u5b83\u5c31\u662f\u4e0d\u80fd\u901a\u904e\u6aa2\u67e5\uff0c\u8aaa\u6b0a\u9650\u4e0d\u8db3\u3002<br \/>\n\u4e5f\u56e0\u70ba\u9019\u6a23\uff0c\u5b83\u5c31\u4f3c\u4e4e\u4e0d\u80fd\u89f8\u767c\u5224\u65b7\u8ff4\u5708\uff0c\u627e\u4e0d\u5230\u7de8\u865f:20\u7684\u865b\u64ec\u87a2\u5e55\uff0c\u9020\u6210\u555f\u52d5\u5931\u6557\u7684\u7d50\u679c\u3002<\/p>\n<p>\u6700\u5f8c\uff0c\u7d42\u65bc\u8b93\u6211\u627e\u5230\u8fa6\u6cd5\uff0c\u9806\u4fbf\u7d66\u81ea\u5df1\u8a18\u9304\u9047\u5230\u7684\u554f\u984c\u5982\u4f55\u8655\u7406\u3002<br \/>\n\u8a66\u8457\u7de8\u8f2f\u9019\u500b\u6a94\u6848\uff0c\u627e\u52301380\u884c\uff1a<br \/>\n<code>nano -l \/opt\/google\/chrome-remote-desktop\/chrome-remote-desktop<\/code><br \/>\n\u628a\u9019\u500bself.use_xvfb\u6aa2\u67e5\uff0c\u6539\u6210\u5f37\u5236\u89f8\u767c\u4f7f\u7528\u865b\u64ec\u986f\u793a\u5361\u3002<br \/>\n<code>  def __init__(self, sizes, host_config):<br \/>\n    super(XDesktop, self).__init__(sizes, host_config)<br \/>\n    self.xorg_conf = None<br \/>\n    self.audio_pipe = None<br \/>\n    self.server_supports_randr = False<br \/>\n    self.randr_add_sizes = False<br \/>\n    self.ssh_auth_sockname = None<br \/>\n    ### modify here by JIR 250801<br \/>\n    #self.use_xvfb = self.should_use_xvfb()<br \/>\n    self.use_xvfb = True<br \/>\n    global g_desktop<br \/>\n    assert(g_desktop is None)<br \/>\n    g_desktop = self<\/code><\/p>\n<p>\u4fee\u6539\u5b58\u6a94\u5f8c\uff0c\u5728\u57f7\u884c\u4e00\u6b21\u670d\u52d9\uff0c\u61c9\u8a72\u5c31\u6703\u770b\u5230\u9019\u53f0\u4e3b\u6a5f\u4e0a\u7dda\u5230\u6e05\u55ae\u88e1\u9762\u4e86\u3002<br \/>\n<code>sudo systemctl restart chrome-remote-desktop@[USERNAME].service<\/code><\/p>\n<p>\u7e3d\u4e4b\uff0c\u8ddfAI\u4ea4\u6d41\u7684\u7d50\u679c\u3002<br \/>\n\u770b\u8d77\u4f86CRD\u7684\u8ff4\u5708\u5224\u65b7\uff0c\u6703\u5148\u78ba\u8a8dXORG\u7684\u8a2d\u5b9a\u865b\u64ec\u74b0\u5883\u80fd\u4e0d\u80fd\u7528\uff0c\u4e0d\u80fd\u7528\u624d\u9078\u64c7XVFB\u865b\u64ec\u986f\u5361\u4f7f\u7528\u3002<br \/>\n\u6211\u7684\u4e3b\u6a5f\u73fe\u5728\u5347\u7d1a\u5230UBUNTU24.04.2\u5f8c\uff0c\u4e5f\u4e0d\u77e5\u9053\u5957\u4ef6\u66f4\u65b0\u5230\u4ec0\u9ebc\uff0c\u6216\u8005\u7248\u672c\u6709\u4ec0\u9ebc\u6b0a\u9650\u66f4\u52d5\u6216\u653f\u7b56\u6aa2\u67e5\u3002<br \/>\n\u53cd\u6b63\u5c31\u662f\u8b93CRD\u5ffd\u7136\u4e0d\u80fd\u4e0a\u7dda\uff0c\u4e00\u76f4\u8aaa\u4e0a\u9762\u90a3\u5169\u500b\u554f\u984c\u95dc\u9375\u5b57\u3002<br \/>\n\u7d42\u65bc\u80fd\u6b63\u5e38\u4f7f\u7528\u4e86&#8230;\u7d2f\u3002<\/p>\n<p>\u7e7c\u7e8c\u4fee\u5176\u5b83\u5f8c\u4f86\u767c\u73fe\u7684BUG\u7a0b\u5f0f\u548c\u529f\u80fd\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u554f\u984c\u95dc\u9375\u5b57\uff1a xf86OpenConsole: Cannot open virtual console 2 (Permission denied) chrome-remote-desktop[xxxxx]: xdpyinfo:\u00a0 unable to open display &#8220;:20&#8221;. \u7e3d\u4e4b\uff0c\u6211\u5df2\u7d93\u8017\u4e86\u4e09\u5929\u5728\u91cd\u88ddCRD\u5957\u4ef6\uff0c\u5b83\u5c31\u662f\u4e00\u76f4\u4e0d\u80fd\u6b63\u5e38\u555f\u52d5\u3002 \u6bcf\u5929\u554fAI\u9019\u500b\u67e5\u3001\u90a3\u500b\u67e5\uff0c\u554f\u5230\u6211\u90fd\u6709\u61f7\u7591\u4eba\u751f\u7684FU&#8230;\u3002 \u4eca\u5929\u4e0b\u73ed\u7279\u5225\u6c89\u4e0b\u5fc3\u4f86\uff0c\u597d\u597d\u7684\u7814\u7a76PYTHON\u7d50\u69cb\u7684\u7a0b\u5f0f\u78bc\uff0c\u548cAI\u8549\u6d41\u8549\u6d41\u3002 \u7e3d\u4e4b\uff0c\u5b83\u5c31\u662f\u4e0d\u77e5\u9053\u70ba\u4ec0\u9ebcsystemctl\u670d\u52d9\u555f\u52d5\uff0c\u8b93\u6211\u7684\u4f7f\u7528\u8005\u5e33\u865f\u547c\u53eb\/dev\/tty2\u87a2\u5e55\u6642\uff0c\u660e\u660e\u6709tty\u548cvideo\u7fa4\u7d44\u6b0a\u9650\u7684\u72c0\u6cc1\uff0c\u5b83\u5c31\u662f\u4e0d\u80fd\u901a\u904e\u6aa2\u67e5\uff0c\u8aaa\u6b0a\u9650\u4e0d\u8db3\u3002 \u4e5f\u56e0\u70ba\u9019\u6a23\uff0c\u5b83\u5c31\u4f3c\u4e4e\u4e0d\u80fd\u89f8\u767c\u5224\u65b7\u8ff4\u5708\uff0c\u627e\u4e0d\u5230\u7de8\u865f:20\u7684\u865b\u64ec\u87a2\u5e55\uff0c\u9020\u6210\u555f\u52d5\u5931\u6557\u7684\u7d50\u679c\u3002 \u6700\u5f8c\uff0c\u7d42\u65bc\u8b93\u6211\u627e\u5230\u8fa6\u6cd5\uff0c\u9806\u4fbf\u7d66\u81ea\u5df1\u8a18\u9304\u9047\u5230\u7684\u554f\u984c\u5982\u4f55\u8655\u7406\u3002 \u8a66\u8457\u7de8\u8f2f\u9019\u500b\u6a94\u6848\uff0c\u627e\u52301380\u884c\uff1a nano -l \/opt\/google\/chrome-remote-desktop\/chrome-remote-deskt&#8230; <a href=\"https:\/\/jir.idv.tw\/wordpress\/?p=3246\" class=\"readmore\">Read more (\u5b8c\u6574\u6587\u7ae0\u5167\u5bb9)<span class=\"screen-reader-text\">UBUNTU\u5347\u7d1a\u523024.04.2\u5f8c\uff0c\u672c\u4f86google remote desktop\u53ef\u4ee5\u7528\uff0c\u8b8a\u6210\u4e0d\u80fd\u7528\u7684\u53ef\u80fd\u89e3\u6cd5<\/span><span class=\"fa fa-angle-double-right\" aria-hidden=\"true\"><\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[4],"tags":[],"class_list":["post-3246","post","type-post","status-publish","format-standard","hentry","category-4","content-layout-excerpt-thumb"],"jetpack_featured_media_url":"","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/jir.idv.tw\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/3246","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jir.idv.tw\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jir.idv.tw\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jir.idv.tw\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jir.idv.tw\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3246"}],"version-history":[{"count":1,"href":"https:\/\/jir.idv.tw\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/3246\/revisions"}],"predecessor-version":[{"id":3247,"href":"https:\/\/jir.idv.tw\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/3246\/revisions\/3247"}],"wp:attachment":[{"href":"https:\/\/jir.idv.tw\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3246"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jir.idv.tw\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3246"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jir.idv.tw\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3246"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}