archlinux 下运行 obsidian 报错,黑屏

遇到的问题

今天更新完 arch 发现 obsidian 打不开了,打开也只是黑屏

终端运行 obsidian 报错:

➜  ~ obsidian
2024-01-04 07:41:06 Loading main app package /usr/lib/obsidian/obsidian.asar
Error: ENOENT: no such file or directory, open '/home/caishao/.config/obsidian/obsidian.json'
    at Object.openSync (node:fs:603:3)
    at Object.func [as openSync] (node:electron/js2c/asar_bundle:2:2131)
    at Object.readFileSync (node:fs:471:35)
    at Object.<anonymous> (node:electron/js2c/asar_bundle:2:9462)
    at /usr/lib/obsidian/obsidian.asar/main.js:3:801
    at U (/usr/lib/obsidian/obsidian.asar/main.js:2:3373)
    at z (/usr/lib/obsidian/obsidian.asar/main.js:3:782)
    at module.exports (/usr/lib/obsidian/obsidian.asar/main.js:8:3756)
    at loadApp (/usr/lib/obsidian/app.asar/main.js:294:3)
    at Object.<anonymous> (/usr/lib/obsidian/app.asar/main.js:446:12) {
  errno: -2,
  syscall: 'open',
  code: 'ENOENT',
  path: '/home/caishao/.config/obsidian/obsidian.json'
}
2024-01-04 07:41:06 Checking for update using Github
2024-01-04 07:41:06 Success.
2024-01-04 07:41:06 Latest version is 1.5.3
2024-01-04 07:41:06 App is up to date.
[16851:0104/154110.412194:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 1 times!
[16851:0104/154122.527098:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 2 times!

尝试的解决方案

最开始我注意到日志的时间跟系统时间不匹配,所以我修改了检查了一下时间设置并打开的NTP 和系统同步

caishao@archlinux  ~/.config  timedatectl
               Local time: Thu 2024-01-04 15:36:39 CST
           Universal time: Thu 2024-01-04 07:36:39 UTC
                 RTC time: Thu 2024-01-04 07:36:39
                Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: no
              NTP service: inactive
          RTC in local TZ: no
caishao@archlinux  ~/.config  sudo timedatectl set-ntp true
[sudo] password for caishao:
 caishao@archlinux  ~/.config  timedatectl
               Local time: Thu 2024-01-04 15:38:53 CST
           Universal time: Thu 2024-01-04 07:38:53 UTC
                 RTC time: Thu 2024-01-04 07:38:53
                Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

但是 obsidian 的日志还是跟 universal time 和 RTC time 一样,问了一下 ChatGPT 说暂时可以先不管这个时间。

后面我看到有个报错是 Error: ENOENT: no such file or directory, open '/home/caishao/.config/obsidian/obsidian.json' 就直接在对应目录下新建了一个 obsidian.json 文件,之后重启 obsidian 仍然报错。

2024-01-04 13:53:52 Loading main app package /usr/lib/obsidian/obsidian.asar
SyntaxError: Unexpected end of JSON input
    at JSON.parse (<anonymous>)
    at /usr/lib/obsidian/obsidian.asar/main.js:3:793
    at U (/usr/lib/obsidian/obsidian.asar/main.js:2:3373)
    at z (/usr/lib/obsidian/obsidian.asar/main.js:3:782)
    at module.exports (/usr/lib/obsidian/obsidian.asar/main.js:8:3756)
    at loadApp (/usr/lib/obsidian/app.asar/main.js:294:3)
    at Object.<anonymous> (/usr/lib/obsidian/app.asar/main.js:446:12)
    at Module._compile (node:internal/modules/cjs/loader:1271:14)
    at Object..js (node:internal/modules/cjs/loader:1326:10)
    at Module.load (node:internal/modules/cjs/loader:1126:32)
2024-01-04 13:53:52 Checking for update using Github
2024-01-04 13:53:53 Success.
2024-01-04 13:53:53 Latest version is 1.5.3
2024-01-04 13:53:53 App is up to date.
[3550:0104/215356.003963:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 1 times!
[3550:0104/215356.013548:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 2 times!
[3550:0104/215359.950991:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 3 times!

我想的是这玩意不是配置文件里面的吗,按理说我把 obsidian 卸了重装,再把 .config/obsidian 删了,新装的 obsidian 应该会自动生成配置文件呀,但我重装之后仍然提示 Error: ENOENT: no such file or directory, open '/home/caishao/.config/obsidian/obsidian.json'

当然这里我使用 archlinux 的库装的 obsidian pacman -S obsidian,等会我试一下直接在官网下载。

后面我注意到还有一个 error ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 1 times! 这个好像是硬件加速的问题,要更新硬件固件?或者就是我更新了固件导致跟 obsidian 不兼容了,因为我的桌面环境那些都好好的。

这里我直接先把硬件加速禁掉,问题暂时解决。

➜  ~ obsidian --disable-gpu
2024-01-04 07:54:47 Loading main app package /usr/lib/obsidian/obsidian.asar
Error: ENOENT: no such file or directory, open '/home/caishao/.config/obsidian/obsidian.json'
    at Object.openSync (node:fs:603:3)
    at Object.func [as openSync] (node:electron/js2c/asar_bundle:2:2131)
    at Object.readFileSync (node:fs:471:35)
    at Object.<anonymous> (node:electron/js2c/asar_bundle:2:9462)
    at /usr/lib/obsidian/obsidian.asar/main.js:3:801
    at U (/usr/lib/obsidian/obsidian.asar/main.js:2:3373)
    at z (/usr/lib/obsidian/obsidian.asar/main.js:3:782)
    at module.exports (/usr/lib/obsidian/obsidian.asar/main.js:8:3756)
    at loadApp (/usr/lib/obsidian/app.asar/main.js:294:3)
    at Object.<anonymous> (/usr/lib/obsidian/app.asar/main.js:446:12) {
  errno: -2,
  syscall: 'open',
  code: 'ENOENT',
  path: '/home/caishao/.config/obsidian/obsidian.json'
}
2024-01-04 07:54:47 Checking for update using Github
2024-01-04 07:54:47 Success.
2024-01-04 07:54:47 Latest version is 1.5.3
2024-01-04 07:54:47 App is up to date.

环境配置

archlinux 环境:

                   -`                    caishao@archlinux
                  .o+`                   -----------------
                 `ooo/                   OS: Arch Linux x86_64
                `+oooo:                  Host: 81QM Lenovo XiaoXin-14IWL 2019
               `+oooooo:                 Kernel: 6.6.9-arch1-1
               -+oooooo+:                Uptime: 22 mins
             `/:-:++oooo+:               Packages: 1027 (pacman)
            `/++++/+++++++:              Shell: zsh 5.9
           `/++++++++++++++:             Resolution: 2560x1440
          `/+++ooooooooooooo/`           DE: GNOME 45.2
         ./ooosssso++osssssso+`          WM: Mutter
        .oossssso-````/ossssss+`         WM Theme: Adwaita
       -osssssso.      :ssssssso.        Theme: Adwaita [GTK2/3]
      :osssssss/        osssso+++.       Icons: Adwaita [GTK2/3]
     /ossssssss/        +ssssooo/-       Terminal: alacritty
   `/ossssso+/:-        -:/+osssso+-     CPU: Intel i7-8565U (8) @ 4.600GHz
  `+sso+:-`                 `.-/+oso:    GPU: Intel WhiskeyLake-U GT2 [UHD Graphics 620
 `++:.                           `-/+/   GPU: NVIDIA GeForce MX230
 .`                                 `/   Memory: 3266MiB / 11685MiB

obsidian 版本:1.5.3

刚刚忘说了,有没有路过的好心人救救孩子,呜呜。

今天打开 obsidian ,它好了,虽然还是没搞懂为啥

但是启动的时候还有这玩意报错,不管啦。。

 caishao@bogon  ~  obsidian
2024-01-05 02:32:02 Loading main app package /usr/lib/obsidian/obsidian.asar
SyntaxError: Unexpected end of JSON input
    at JSON.parse (<anonymous>)
    at /usr/lib/obsidian/obsidian.asar/main.js:3:793
    at U (/usr/lib/obsidian/obsidian.asar/main.js:2:3373)
    at z (/usr/lib/obsidian/obsidian.asar/main.js:3:782)
    at module.exports (/usr/lib/obsidian/obsidian.asar/main.js:8:3756)
    at loadApp (/usr/lib/obsidian/app.asar/main.js:294:3)
    at Object.<anonymous> (/usr/lib/obsidian/app.asar/main.js:446:12)
    at Module._compile (node:internal/modules/cjs/loader:1269:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1324:10)
    at Module.load (node:internal/modules/cjs/loader:1124:32)
2024-01-05 02:32:02 Checking for update using Github
[3818:0105/103206.977196:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 1 times!
2024-01-05 02:32:09 Success.
2024-01-05 02:32:09 Latest version is 1.5.3
2024-01-05 02:32:09 App is up to date.
[3818:0105/103209.245459:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 2 times!
[3818:0105/103212.406264:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 3 times!