2023年4月14日 星期五

[RPi] no authorized to perform operation

使用 2023-02-21-raspios-bullseye-armhf-full.img 的版本,或是有更新 raspberrypi-kernel,當按住 pico 的 BOOTSEL 要更新韌體時,出現 "no authorized to perform operation" 錯誤訊息。

爬文後,發現是 udisks daemon security policy 造成的。步驟是修改 /usr/share/polkit-1/actions/org.freedesktop.UDisks2.policy。
===
  <!-- Mounting filesystems -->
  <action id="org.freedesktop.udisks2.filesystem-mount">
    <description>Mount a filesystem</description>
...
    <defaults>
      <allow_any>auth_admin</allow_any>
      <allow_inactive>auth_admin</allow_inactive>
      <allow_active>yes</allow_active>
    </defaults>
  </action>
===

改為
===
  <!-- Mounting filesystems -->
  <action id="org.freedesktop.udisks2.filesystem-mount">
    <description>Mount a filesystem</description>
...
    <defaults>
      <allow_any>yes</allow_any>
      <allow_inactive>yes</allow_inactive>
      <allow_active>yes</allow_active>
    </defaults>
  </action>
===

修改後不用重啟任何服務,直接再做一次就 OK 了

2023年4月12日 星期三

[RPi] cannot currently show the desktop

幾個方法:

1. 設定桌面登入。sudo raspi-config > 1 System Options > S5 Boot / Auto Login > B4 Desktop Autologin

2. 重新安裝 LXsession 程式,sudo apt-get install --reinstall libgtk2.0-0 && sudo apt-get install --reinstall lxsession

3. 正確設對桌面解析度(例如 800x600)。/boot/config.txt
===
hdmi_force_hotplug=1
framebuffer_width=800
framebuffer_height=600
hdmi_group=2
hdmi_mode=9
===

4. 正確設對 VNC 解析度(例如 800x600)。sudo raspi-config > 2 Display Options > D5 VNC Resolution > 800x600

5. 設定正確螢幕解析度。sudo raspi-config > 2 Display Options > D1 Resolution > DMT Mode 9 800x600 60Hz 4:3 (2022-01 以後預設不出現/不適用)


最後找了半天,比較了正常的和不正常的設定,包括 /etc/vnc 和 /etc/X11 下面的所有檔案和目錄,看不出差異。

又參考這篇翻了 /var/log/vncserver-x11.log 和 sudo systemctl status vncserver-x11-serviced.service 服務狀態,發現雖然服務有啟動,但是出現 "AgentInitCheck: agent comms failure" 錯誤訊息,實際上 vncserver-x11 沒有正常啟動。

最後找到這篇,雖然解法不正確,但有提供方向 ==>
The "direct capture" option is not working when running VNC Server on Raspberry Pi OS with the KMS driver (vc4-kms-v3d). The Fake KMS driver (vc4-fkms-v3d) is not affected.


簡單說,把 /boot/config.txt 裡面的 dtoverlay=vc4-kms-v3d 註解掉,重開機後收工!

參考:
* How to Fix Raspberry Pi's 'Cannot Currently Show the Desktop' Error
* Disabling direct capture on Raspberry Pi using the command line