[Help]顯卡 NVIDIA GeForce 210 on 2020.04版? [論壇 - Ubuntu安裝問題]


正在瀏覽:   1 名遊客


 到底部   前一個主題   下一個主題  [無發表權] 請登錄或者註冊



[Help]顯卡 NVIDIA GeForce 210 on 2020.04版?
會員二級
註冊日期:
2007/1/13 14:26
所屬群組:
已註冊使用者
等級: 8
HP : 0 / 186
MP : 30 / 7349
EXP: 46
離線
從12.04 32Bits, 12.04 64Bits, 14.04, 16.04, 18.04 安裝桌面與使用, 皆沒什麼問題.

但安裝Ubuntu 20.04 Desktop 一切順利, 裝完開機到登入畫面, 輸入帳號 就卡死了! 有設自動登入卻沒自動登入, 登入出卡死. 會是顯卡不支援嗎?

Thanx.

5/2 22:02:46
應用擴展 工具箱
回覆: [Help]顯卡 NVIDIA GeForce 210 on 2020.04版?
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 35
HP : 172 / 861
MP : 598 / 20660
EXP: 45
離線
================================================================================

[回到索引]

================================================================================

其實我也猜想不出來,那個出錯的因素在那!

目前想到可以做個小實驗,從實驗結果來推測看看,看能不能觸發新的靈感,找到新的方向!

您可以安裝其他的「Window Manager (X window manager)」來登入,嘗試看看。

舉例,可以安裝「openbox」。

先按下「Ctrl + Alt + F1」,然後登入

執行下面指令,安裝「openbox


$ sudo apt-get install openbox



安裝完後,

按下「Ctrl + Alt + F2」(應該是F2, 若是Xubuntu,則是F7)

回到「X display manager」,

再選擇「openbox」這個「xsession」登入,
測試登入後,會不會出現卡住的情形。

也許可以推測排除一些因素。

另外在我的系統「Xubuntu 20.04」是有發現「~/.xsession-errors」這個檔案,我不確定在您的系統有沒有。
因為我不確定是不是我執行「Xephyr」的過程,所產生的。

您可以找找看,若有的話,也可以研究裡面的內容,看看能不能找到一些靈感。

一些log檔,放在「/var/log」這個資料夾,例如「/var/log/syslog」,也可以研究看看。

================================================================================


另外也可以自己建立最簡單的「xsession」,然後登入測試看看。

我之前有建立一些「script」,提供您參考

* demo-start

安裝到系統裡,其實只有兩個檔案

* /usr/share/xsessions/demo-session.desktop
* /usr/bin/demo-session.sh

若是登入後,應該會出現「xterm」,但因為沒有啟動「Window Manager」,
所以視窗是無法移動,也沒有「Window Decoration」。

這時候您可以在「xterm」上面輸入指令,啟動某一個「Window Manager」,

舉例,若有安裝「xfwm4」,就可以執行下面指令


xfwm4 &



啟動後,就可以看到「Window Decoration

也可以移動視窗了。

================================================================================

這時候,您也可以啟動其他的元件,

例如,啟動「tint2



$ tint2 &



就會出現一個「panel」。

================================================================================

注意:

* 上面要登出,只要「killall -9 xterm」就可以登出,
或是直接在「xterm」,下指令輸入「exit」,按下「Enter」,就會關閉「xterm」,就會登出了。
* 在上面提到的「 /usr/bin/demo-session.sh」,裡面啟動的是「xterm」,
您也可以改成其他的「terminal」,例如,我有另外做了一個「zero-session」,是執行sakura (Package: sakura)」。
或是「xterm」也可以改成其他應用程式,例如「firefox」,您可以實驗看看。

================================================================================

另外我之前有嘗試一些建立一些「xsession」,一些安裝的腳本,我都有紀錄在「GitHub」上,提供參考,

其實懂了這些概念,就可以自行做一些排列組合,
選擇自己要的搭配,包含「Window Manager」,「Panel」,「Desktop」,「Compositor」,「Keybind Manager」等等...

在「Ubuntu/Debian」系列裡,提供了蠻多「x-window-manager」的「Package」可以去嘗試的,

或是也可以自行下載來編譯,

舉例,像是這幾天在把玩的

* https://github.com/JLErvin/berry
* https://github.com/tudurom/windowchef
* https://www.uninformativ.de/git/katriawm/file/README.html (這個還沒開始編譯,只有編譯到上面兩個)
* https://github.com/venam/2bwm
* https://github.com/dylanaraps/sowm

或是之前提到的「Awesome」。

其實還有很多,就不列舉了...

再不然可能就要去嘗試「Arch Linux 」的,我看網路上也蠻多在該系統上把玩的。

* https://wiki.archlinux.org/index.php/Window_manager


在把玩的過程,還蠻有趣的,也許會玩到渾然忘我了,記得要吃飯睡覺,呵呵


================================================================================

剛剛提到的「openbox」,

執行


$ dpkg -L openbox | grep xsessions



顯示


/usr/share/xsessions
/usr/share/xsessions/openbox.desktop



執行


$ cat /usr/share/xsessions/openbox.desktop



顯示


[Desktop Entry]
Name=Openbox
Comment=Log in using the Openbox window manager (without a session manager)
Exec=/usr/bin/openbox-session
TryExec=/usr/bin/openbox-session
Icon=openbox
Type=Application



執行


$ file /usr/bin/openbox-session



顯示


/usr/bin/openbox-session: POSIX shell script, ASCII text executable




================================================================================

以上提供參考

報告完畢





================================================================================

關於「openbox」,我個人使用的安裝腳本

* https://github.com/samwhelp/play-ubuntu-20.04-plan/tree/master/prototype/openbox

其他的紀錄在

* https://github.com/samwhelp/play-ubuntu-20.04-plan/tree/master/prototype
* https://github.com/samwhelp/play-ubuntu-20.04-plan/tree/master/prototype-de-wm

================================================================================

[回到索引]

================================================================================

5/3 0:17:38
應用擴展 工具箱
回覆: [Help]顯卡 NVIDIA GeForce 210 on 2020.04版?
會員三級
註冊日期:
2017/3/23 10:15
所屬群組:
已註冊使用者
等級: 9
HP : 0 / 221
MP : 39 / 2126
EXP: 84
離線

5/3 8:44:25
應用擴展 工具箱
回覆: [Help]顯卡 NVIDIA GeForce 210 on 2020.04版?
會員二級
註冊日期:
2007/1/13 14:26
所屬群組:
已註冊使用者
等級: 8
HP : 0 / 186
MP : 30 / 7349
EXP: 46
離線
系統預設啟動是Linux 5.4.0-28-generic , 改選5.4.0-26-generic啟動, 居然可正常自動登入系統. 怪怪 kernel問題?

5/4 8:48:07
應用擴展 工具箱
回覆: [Help]顯卡 NVIDIA GeForce 210 on 2020.04版?
會員二級
註冊日期:
2007/1/13 14:26
所屬群組:
已註冊使用者
等級: 8
HP : 0 / 186
MP : 30 / 7349
EXP: 46
離線
會回應kernel 已有...尚不知為何? 3Q

5/4 21:37:52
應用擴展 工具箱
回覆: [Help]顯卡 NVIDIA GeForce 210 on 2020.04版?
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 35
HP : 172 / 861
MP : 598 / 20660
EXP: 45
離線
================================================================================

[回到索引]

================================================================================

wilhelm 寫到:
系統預設啟動是Linux 5.4.0-28-generic , 改選5.4.0-26-generic啟動, 居然可正常自動登入系統. 怪怪 kernel問題?


wilhelm 寫到:
會回應kernel 已有...尚不知為何? 3Q


收到

================================================================================

雖然我也不曉得關鍵因素是啥,也不見得能解決您的問題,

不過現在您可以正常登入系統了,

那以下就題外話,延續「#2」提到的,來做另外一個小實驗。
也許可以協助您探索理解登入後的大概流程。


之前我在「另一篇討論」,有提到一個工具「xephyr」。

啟動「Terminal 1」。

執行下面指令,安裝「xserver-xephyr」。


$ sudo apt-get install xserver-xephyr



================================================================================

接著下載之前我有寫好的一個「shell script」,將它放到「~/bin」這個資料夾,並且設為可執行。



mkdir -p "$HOME/bin"

wget 'https://raw.githubusercontent.com/samwhelp/play-ubuntu-20.04-plan/master/tool/xephyr/develop-tool/run-ubuntu-session-on-xephyr/bin/xephyr-run-ubuntu-session.sh' -O "$HOME/bin/xephyr-run-ubuntu-session.sh"

chmod u+x "$HOME/bin/xephyr-run-ubuntu-session.sh"


註:關於為何放在「~/bin」,可以參考我之前寫的另一篇討論


================================================================================

先在「Terminal 1」執行下面指令


$ tail -f /var/log/syslog




================================================================================

接著啟動「Terminal 2」執行下面指令


$ xephyr-run-ubuntu-session.sh



然後您就可以觀察「Terminal 1」顯示的訊息。

================================================================================

因為是紀錄在「/var/log/syslog」,所以也可以利用「grep」來過濾獲取要關注的

舉例

執行


$ grep 'gnome-shell' '/var/log/syslog'



執行


$ grep 'gnome-session' '/var/log/syslog'




================================================================================

關於「xephyr-run-ubuntu-session.sh


其中有一段指令如下


env GNOME_SHELL_SESSION_MODE=ubuntu /usr/bin/gnome-session --systemd --session=ubuntu



以下闡述我如何找到這段指令,並且可以搭配「$ man gnome-session」觀看。

執行


$ dpkg -L ubuntu-session | grep xsession | grep 'ubuntu.desktop'



顯示


/usr/share/xsessions/ubuntu.desktop



可以找到「/usr/share/xsessions/ubuntu.desktop」這個檔案


接著可以執行


$ grep '^Exec=' /usr/share/xsessions/ubuntu.desktop



顯示


Exec=env GNOME_SHELL_SESSION_MODE=ubuntu /usr/bin/gnome-session --systemd --session=ubuntu



就可以找到那段指令。

也可以執行下面的指令


grep '^Exec=' $(dpkg -L ubuntu-session | grep xsession | grep 'ubuntu.desktop')



或是也可以加上「 | cut -d '=' -f '2'」來過濾,只留下指令的部份

執行


$ grep '^Exec=' $(dpkg -L ubuntu-session | grep xsession | grep 'ubuntu.desktop') | cut -d '=' -f '2'



顯示


env GNOME_SHELL_SESSION_MODE=ubuntu /usr/bin/gnome-session --systemd --session=ubuntu



================================================================================

關於這行指令的前半段「env GNOME_SHELL_SESSION_MODE=ubuntu 」,只是在「設定環境變數」

關於這個概念,可以參考我之前的「簡易紀錄

後半段「/usr/bin/gnome-session --systemd --session=ubuntu」,則是指令的主體,

我們先忽略「--systemd」這個參數,我還沒去深究,在「18.04」是沒有這個參數的,

所以主要是「/usr/bin/gnome-session session=ubuntu」,而接下來主要是要討論「session=ubuntu」這個部份。

您應該可以在「/usr/share/gnome-session/sessions/」這個資料夾,

找到「/usr/share/gnome-session/sessions/ubuntu.session」這個檔案。

執行下面指令,觀看其內容


$ cat /usr/share/gnome-session/sessions/ubuntu.session



顯示


[GNOME Session]
Name=Ubuntu
RequiredComponents=org.gnome.Shell;org.gnome.SettingsDaemon.A11ySettings;org.gnome.SettingsDaemon.Color;org.gnome.SettingsDaemon.Datetime;org.gnome.SettingsDaemon.Housekeeping;org.gnome.SettingsDaemon.Keyboard;org.gnome.SettingsDaemon.MediaKeys;org.gnome.SettingsDaemon.Power;org.gnome.SettingsDaemon.PrintNotifications;org.gnome.SettingsDaemon.Rfkill;org.gnome.SettingsDaemon.ScreensaverProxy;org.gnome.SettingsDaemon.Sharing;org.gnome.SettingsDaemon.Smartcard;org.gnome.SettingsDaemon.Sound;org.gnome.SettingsDaemon.Wacom;org.gnome.SettingsDaemon.XSettings;



================================================================================

上面的「RequiredComponents=」後面的部份,每一個都是使用「;」來隔開

執行下面指令,將它轉成一行一個顯示



grep '^RequiredComponents=' '/usr/share/gnome-session/sessions/ubuntu.session' | cut -d '=' -f 2 | sed 's/;/\n/g'



顯示


org.gnome.Shell
org.gnome.SettingsDaemon.A11ySettings
org.gnome.SettingsDaemon.Color
org.gnome.SettingsDaemon.Datetime
org.gnome.SettingsDaemon.Housekeeping
org.gnome.SettingsDaemon.Keyboard
org.gnome.SettingsDaemon.MediaKeys
org.gnome.SettingsDaemon.Power
org.gnome.SettingsDaemon.PrintNotifications
org.gnome.SettingsDaemon.Rfkill
org.gnome.SettingsDaemon.ScreensaverProxy
org.gnome.SettingsDaemon.Sharing
org.gnome.SettingsDaemon.Smartcard
org.gnome.SettingsDaemon.Sound
org.gnome.SettingsDaemon.Wacom
org.gnome.SettingsDaemon.XSettings



主要可以在找到這些相關的檔案

* /usr/share/applications/
* /etc/xdg/autostart/

關於「org.gnome.Shell」可以在「/usr/share/applications/」這個資料夾找到,
可以找到「/usr/share/applications/org.gnome.Shell.desktop」這個檔案。

其餘的「org.gnome.SettingsDaemon」開頭的,都可以在「/etc/xdg/autostart/」這個資料夾找到。
舉例,關於「org.gnome.SettingsDaemon.XSettings」
可以找到「/etc/xdg/autostart/org.gnome.SettingsDaemon.XSettings.desktop」這個檔案。


ls /etc/xdg/autostart/org.gnome.SettingsDaemon*



或是執行


ls /etc/xdg/autostart/* -1 | grep org.gnome.SettingsDaemon



顯示


/etc/xdg/autostart/org.gnome.SettingsDaemon.A11ySettings.desktop
/etc/xdg/autostart/org.gnome.SettingsDaemon.Color.desktop
/etc/xdg/autostart/org.gnome.SettingsDaemon.Datetime.desktop
/etc/xdg/autostart/org.gnome.SettingsDaemon.Housekeeping.desktop
/etc/xdg/autostart/org.gnome.SettingsDaemon.Keyboard.desktop
/etc/xdg/autostart/org.gnome.SettingsDaemon.MediaKeys.desktop
/etc/xdg/autostart/org.gnome.SettingsDaemon.Power.desktop
/etc/xdg/autostart/org.gnome.SettingsDaemon.PrintNotifications.desktop
/etc/xdg/autostart/org.gnome.SettingsDaemon.Rfkill.desktop
/etc/xdg/autostart/org.gnome.SettingsDaemon.ScreensaverProxy.desktop
/etc/xdg/autostart/org.gnome.SettingsDaemon.Sharing.desktop
/etc/xdg/autostart/org.gnome.SettingsDaemon.Smartcard.desktop
/etc/xdg/autostart/org.gnome.SettingsDaemon.Sound.desktop
/etc/xdg/autostart/org.gnome.SettingsDaemon.UsbProtection.desktop
/etc/xdg/autostart/org.gnome.SettingsDaemon.Wacom.desktop
/etc/xdg/autostart/org.gnome.SettingsDaemon.Wwan.desktop
/etc/xdg/autostart/org.gnome.SettingsDaemon.XSettings.desktop




================================================================================

在找這些檔案的時候,可以善用「apt-file search」或是「dpkg -S」。
關於「apt-file search」可以用在「尚未安裝」的情境(也可以用在「已經安裝」的情境)。
關於「dpkg -S」可以用在「已經安裝」的情境。

舉例,尋找「org.gnome.SettingsDaemon.XSettings」


$ apt-file search org.gnome.SettingsDaemon.XSettings



顯示


gnome-settings-daemon: /etc/xdg/autostart/org.gnome.SettingsDaemon.XSettings.desktop



若有安裝「Package: gnome-settings-daemon」,

執行


$ dpkg -S org.gnome.SettingsDaemon.XSettings



顯示


gnome-settings-daemon: /etc/xdg/autostart/org.gnome.SettingsDaemon.XSettings.desktop



================================================================================

關於這篇要討論的

* /usr/share/xsessions/ubuntu.desktop
* /usr/share/gnome-session/sessions/ubuntu.session


我另外有製作了一個範例「demo-gnome-session」,放在「GitHub」上,提供您自己做實驗,就不再多做說明了。


================================================================================

另一個實際的案例,則是「budgie-desktop」

執行


$ dpkg -L budgie-core | grep xsessions | grep desktop



顯示


/usr/share/xsessions/budgie-desktop.desktop



執行


grep '^Exec' $(dpkg -L budgie-core | grep xsessions | grep desktop)



顯示


Exec=/usr/bin/budgie-desktop



執行


$ cat /usr/bin/budgie-desktop



顯示


#!/bin/sh

BUDGIE_VERSION="10.5.1"

if [ "$1" = "--version" ]; then
    echo "budgie-desktop $BUDGIE_VERSION"
    echo "Copyright © 2014-2019 Budgie Desktop Developers"
    exit 0
fi

if [ -z $XDG_CURRENT_DESKTOP ]; then
  XDG_CURRENT_DESKTOP=Budgie:GNOME
  export XDG_CURRENT_DESKTOP
fi

exec gnome-session --builtin --session=budgie-desktop $*





執行


$ grep '^RequiredComponents=' '/usr/share/gnome-session/sessions/budgie-desktop.session'



顯示


RequiredComponents=budgie-wm;budgie-daemon;budgie-panel;budgie-polkit;org.gnome.SettingsDaemon.A11ySettings;org.gnome.SettingsDaemon.Color;org.gnome.SettingsDaemon.Datetime;org.gnome.SettingsDaemon.Housekeeping;org.gnome.SettingsDaemon.Keyboard;org.gnome.SettingsDaemon.MediaKeys;org.gnome.SettingsDaemon.Power;org.gnome.SettingsDaemon.PrintNotifications;org.gnome.SettingsDaemon.Rfkill;org.gnome.SettingsDaemon.ScreensaverProxy;org.gnome.SettingsDaemon.Sharing;org.gnome.SettingsDaemon.Smartcard;org.gnome.SettingsDaemon.Sound;org.gnome.SettingsDaemon.Wacom;org.gnome.SettingsDaemon.XSettings;



執行


$ grep '^RequiredComponents=' '/usr/share/gnome-session/sessions/budgie-desktop.session' | cut -d '=' -f 2 | sed 's/;/\n/g'



顯示


budgie-wm
budgie-daemon
budgie-panel
budgie-polkit
org.gnome.SettingsDaemon.A11ySettings
org.gnome.SettingsDaemon.Color
org.gnome.SettingsDaemon.Datetime
org.gnome.SettingsDaemon.Housekeeping
org.gnome.SettingsDaemon.Keyboard
org.gnome.SettingsDaemon.MediaKeys
org.gnome.SettingsDaemon.Power
org.gnome.SettingsDaemon.PrintNotifications
org.gnome.SettingsDaemon.Rfkill
org.gnome.SettingsDaemon.ScreensaverProxy
org.gnome.SettingsDaemon.Sharing
org.gnome.SettingsDaemon.Smartcard
org.gnome.SettingsDaemon.Sound
org.gnome.SettingsDaemon.Wacom
org.gnome.SettingsDaemon.XSettings




================================================================================

關於「/usr/bin/gnome-session」

執行


$ file /usr/bin/gnome-session



顯示


/usr/bin/gnome-session: POSIX shell script, ASCII text executable



執行


cat /usr/bin/gnome-session



顯示


#!/bin/sh

if [ "x$XDG_SESSION_TYPE" = "xwayland" ] &&
   [ "x$XDG_SESSION_CLASS" != "xgreeter" ] &&
   [  -n "$SHELL" ] &&
   grep -q "$SHELL" /etc/shells &&
   ! (echo "$SHELL" | grep -q "false") &&
   ! (echo "$SHELL" | grep -q "nologin"); then
  if [ "$1" != '-l' ]; then
    exec bash -c "exec -l '$SHELL' -c '$0 -l $*'"
  else
    shift
  fi
fi

#SETTING=$(G_MESSAGES_DEBUG= gsettings get org.gnome.system.locale region)
#REGION=${SETTING#\'}
#REGION=${REGION%\'}

if [ -n "$REGION" ]; then
  export LC_TIME=$REGION
  export LC_NUMERIC=$REGION
  export LC_MONETARY=$REGION
  export LC_MEASUREMENT=$REGION
  export LC_PAPER=$REGION
fi

if [ -d "${XDG_RUNTIME_DIR}/systemd" ]; then
  exec /usr/libexec/gnome-session-binary --systemd "$@"
else
  exec /usr/libexec/gnome-session-binary --builtin "$@"
fi




從最後的「exec /usr/libexec/gnome-session-binary」可以了解到,
在「xsession」登入的時候,若是啟動「gnome-session」,
則是可以執行「killall -9 gnome-session-binary」來登出,
這個可以用在當掉的情境,若還可以切換到「Ctrl + Alt + F1」,就可以執行這個指令來登出。


================================================================================

相關的討論

* 回覆: [詢問] Awesome下如何顯示「輸入密碼的視窗」- 「#6
* 回覆: 討論這篇「如何讓gcin開機後不多次執行」- 「#7


================================================================================

以上的提供參考

報告完畢



================================================================================

[回到索引]

================================================================================

5/5 16:52:09
應用擴展 工具箱


 [無發表權] 請登錄或者註冊


可以查看帖子.
不可發帖.
不可回覆.
不可編輯自己的帖子.
不可刪除自己的帖子.
不可發起投票調查.
不可在投票調查中投票.
不可上傳附件.
不可不經審核直接發帖.