Score:3

Ubuntu 21.10 - ปัญหา GDM - หน้าจอเข้าสู่ระบบ

ธง bg

ฉันเพิ่งอัปเกรดเดสก์ท็อปจาก Ubuntu 21.04 เป็น 21.10 ทุกอย่างทำงานได้ดี! ฉันมีความสุข.

แต่หลังจากนั้นฉันเรียกใช้โปรแกรมผิดที่จะเปลี่ยนพื้นหลังของหน้าจอเข้าสู่ระบบแบบกราฟิกเป็นภาพอื่น

ส่วนใหญ่น่าจะเป็นสคริปต์ที่ฉันเรียกใช้: ฉันดาวน์โหลดโปรแกรมต่อไปนี้ในช่วง 21.04 และติดตั้งและเรียกใช้

 github.com/thiggy01/gdm-background

 gdm-พื้นหลัง/gdm-พื้นหลังตัวช่วย /


#!/usr/bin/env python3

นำเข้า distro
นำเข้า dbus
นำเข้า dbus.service
จาก dbus.mainloop.glib นำเข้า DBusGMainLoop
จาก gi.repository นำเข้า GLib
นำเข้าปิด
จากการเรียกนำเข้ากระบวนการย่อย

คลาส GDMBackground (dbus.service.Object):

    ถ้า distro.id() == 'อูบุนตู':
        default_theme = '/usr/share/gnome-shell/theme/Yaru/gnome-shell-theme.gresource'
    elif distro.id() == 'ป๊อป':        
        default_theme = '/usr/share/gnome-shell/theme/Pop/gnome-shell-theme.gresource'
    
    backup_theme = default_theme + '~'

    def __init__(ตัวเอง, conn=ไม่มี, object_path=ไม่มี, bus_name=ไม่มี):
        dbus.service.Object.__init__(ตัวเอง, conn, object_path, bus_name)

    @dbus.service.method('xyz.thiggy01.GDMBackground', in_signature='s', out_signature='b',
        sender_keyword='ผู้ส่ง', connection_keyword='conn')
    def SetImage(ตัวเอง, งาน, ผู้ส่ง=ไม่มี, conn=ไม่มี):
        action_id = 'xyz.thiggy01.GDMBackground.SetImage'
        ถ้า self._check_polkit_privilege (ผู้ส่ง, conn, action_id):
            ถ้างาน == 'สำรอง':
                ปิดการคัดลอก (self.default_theme, self.backup_theme)
            งาน elif == 'ตั้งค่า':
                shutil.move("/tmp/gdm3/theme/gnome-shell-theme.gresource", self.default_theme)
                กลับทรู
        อื่น:
            กลับเป็นเท็จ

    @dbus.service.method('xyz.thiggy01.GDMBackground', in_signature='s', out_signature='b',
        sender_keyword='ผู้ส่ง', connection_keyword='conn')
    def RestoreBackup(ตัวเอง, งาน, ผู้ส่ง=ไม่มี, conn=ไม่มี):
        action_id = 'xyz.thiggy01.GDMBackground.RestoreBackup'
        ถ้า self._check_polkit_privilege (ผู้ส่ง, conn, action_id):
            ถ้างาน == 'กู้คืน':
                shutil.move(self.backup_theme, self.default_theme)
                กลับทรู
        อื่น:
            กลับเป็นเท็จ

    @dbus.service.method('xyz.thiggy01.GDMBackground', in_signature='s', out_signature='',
        sender_keyword='ผู้ส่ง', connection_keyword='conn')
    def RestartGDM(ตัวเอง, action_id, sender=ไม่มี, conn=ไม่มี):
            ถ้า self._check_polkit_privilege (ผู้ส่ง, conn, action_id):
                โทร (['/usr/sbin/บริการ', 'gdm', 'รีสตาร์ท'])

    def _check_polkit_privilege(ตัวเอง, ผู้ส่ง, conn, action_id):
        ถ้าผู้ส่งเป็นไม่มีและ conn เป็นไม่มี:
            กลับ

        self.proxy_dbus = dbus.Interface(conn.get_object('org.freedesktop.DBus',
            '/org/freedesktop/DBus/Bus', เท็จ), 'org.freedesktop.DBus')
        sender_pid = self.proxy_dbus.GetConnectionUnixProcessID(ผู้ส่ง)

        self.proxy_polkit = dbus.Interface(dbus.SystemBus().get_object(
            'org.freedesktop.PolicyKit1', '/org/freedesktop/PolicyKit1/Authority', เท็จ),
            'org.freedesktop.PolicyKit1.Authority')

        พยายาม:
            (is_auth, is_challenge, รายละเอียด) = self.proxy_polkit.CheckAuthorization(
                ('กระบวนการยูนิกซ์', {'pid': dbus.UInt32(sender_pid, Variant_level=1),
                                  'เวลาเริ่มต้น': dbus.UInt64(0, Variant_level=1)}),
                 action_id, {'':''}, dbus.UInt32(1), 'ยกเลิก')
            ถ้า is_auth:
                กลับทรู
            อื่น:
                กลับเป็นเท็จ
        ยกเว้น dbus.DBusException เป็นข้อผิดพลาด:
            self.proxy_polkit.CancelCheckAuthorization('ยกเลิก')
            ยก

ถ้า __name__ == '__main__':
   
    DBusGMainLoop(set_as_default=True)
    บัส = dbus.SystemBus()
    ชื่อ = dbus.service.BusName('xyz.thiggy01.GDMBackground' บัส)
    gdm_background_helper = GDMBackground(ชื่อ, '/xyz/thiggy01/GDMBackground')
    GLib.MainLoop().รัน()

หลังจากนั้น Ubuntu 21.10 ไม่สามารถโหลดหน้าจอเข้าสู่ระบบแบบกราฟิกได้อีกต่อไป

มีข้อผิดพลาดบนหน้าจอ: ตรวจสอบใบหน้า SAD พร้อมข้อความ "ไม่นะ! มีบางอย่างผิดพลาด" เกิดปัญหาและระบบไม่สามารถกู้คืนได้ โปรดติดต่อผู้ดูแลระบบ

ฉันลองแก้ไขปัญหาโดยใช้ Ubuntu 21.10 โดยใช้โหมดการกู้คืน จากนั้นไปที่รูทและใช้คำสั่ง:

sudo apt ติดตั้ง ubuntu-gnome-desktop
สถานะ systemctl gdm
systemctl เริ่ม gdm

มันใช้ไม่ได้เลย

ฉันสงสัยว่าโปรแกรม/สคริปต์ที่ฉันเรียกใช้ขัดแย้งกับการตั้งค่า GNOME 40 กับ Ubuntu 21.04 โปรดช่วยฉันคืนการตั้งค่าหน้าจอเข้าสู่ระบบ GUI เดิม

ฉันพยายามลงชื่อเข้าใช้ Ubuntu 21.04 โดยใช้ CTRL-SHIFT-F3 จากนั้นฉันก็พิมพ์:

สถานะ systemctl gdm3

gdm.service ทำงานอยู่ (กำลังทำงาน)
การเริ่มต้นตัวจัดการการแสดงผล GNOME.....

แต่มีข้อความแสดงข้อผิดพลาด:

Gdm: GdmDisplay: เซสชันไม่เคยลงทะเบียน ล้มเหลว
Gdm: กระบวนการลูก -2037 ตายไปแล้ว
in flag
คุณสามารถ [แก้ไข] คำถามของคุณเพื่อรวมชื่อโปรแกรมหรือเนื้อหาของสคริปต์ที่คุณเรียกใช้เพื่อเปลี่ยนพื้นหลังของหน้าจอเข้าสู่ระบบได้หรือไม่? นี่อาจช่วยให้ใครบางคนเสนอวิธีแก้ไขปัญหาเฉพาะของคุณ
Greenonline avatar
us flag
โปรด [แก้ไข] คำถามของคุณและใส่ข้อมูลไว้ที่นั่น ไม่ใช่ในความคิดเห็น
John Lo avatar
bg flag
ฉันเพิ่งทำ ขอบคุณ!
John Lo avatar
bg flag
ฉันสิ้นสุดการถอนการติดตั้งเซสชัน gnome, เดสก์ท็อป gnome และ gdm3 เพื่อให้ฉันสามารถกลับไปที่การเข้าสู่ระบบ sddm - โดยใช้ KDE และ XFCE ทันทีที่ฉันติดตั้ง GNOME อีกครั้ง ปัญหายังคงมีอยู่ โปรดแนะนำวิธีแก้ปัญหา ขอบคุณ!
Score:2
ธง ps

ผมมีปัญหาเดียวกัน. ก่อนอื่น คุณจะต้องไปที่คอนโซลรูทการกู้คืน การกด Shift ซ้ายหรือ Escape ระหว่างการบู๊ตควรทำ https://wiki.ubuntu.com/RecoveryMode

สิ่งที่น่าจะเพียงพอ

ฉันติดตั้ง lightdm แล้ว แต่ฉันไม่แน่ใจว่าจำเป็นต้องติดตั้ง lightdm และเปลี่ยนกลับเป็น gdm3 หรือไม่ สิ่งนี้อาจใช้งานได้:

sudo apt ติดตั้ง gdm3 gnome-shell ใหม่ yaru-theme-gnome-shell
sudo บริการ gdm3 รีสตาร์ท

ฉันทำอะไรลงไป

ก่อนอื่นฉันเรียกใช้ตัวเลือกการคืนค่าเพื่อนำไฟล์ต้นฉบับกลับมา ไม่มีผลอะไร. ฉันใช้สคริปต์อื่นที่มีแฟล็ก --restore ไม่ใช่โค้ด Python ที่คุณโพสต์ ดูเหมือนว่าทั้งคู่จะทำสิ่งนี้:

mv /usr/share/gnome-shell/theme/Yaru/gnome-shell-theme.gresource~ \
/usr/share/gnome-shell/theme/Yaru/gnome-shell-theme.gresource

จากนั้นฉันก็ติดตั้ง lightdm

# ควรติดตั้งแล้วแสดง UI เพื่อเปลี่ยนจาก gdm3 เป็น lightdm
sudo apt ติดตั้ง lightdm

รีบูตและใช้งานได้ แต่ UI เกิดข้อผิดพลาดเมื่อฉันกลับเข้าสู่ Gnome ตัวอย่างเช่น การกดปุ่ม Super จะทำให้ช่องค้นหาแอปปรากฏขึ้น แต่ไอคอนถูกวาดทับซ้อนกันและกะพริบเหมือนปัญหาเฟรมบัฟเฟอร์ lightdm ยังแสดง Ubuntu เวอร์ชัน 21.04 ที่มุมล่างซ้าย ฉันไม่คิดว่า lightdm + gnome ได้รับการสนับสนุนอย่างถูกต้องใน 21.10

สุดท้าย ฉันติดตั้ง gdm3, gnome-shell และธีม yaru อีกครั้ง และเปลี่ยนจาก lightdm กลับไปเป็น gdm

sudo apt ติดตั้ง gdm3 gnome-shell ใหม่ yaru-theme-gnome-shell
# เปลี่ยนกลับไปเป็น gdm3
sudo dpkg-กำหนดค่า gdm3 ใหม่ 

รีบูตและทุกอย่างใช้งานได้อีกครั้ง ยังคงเป็นภาพพื้นหลังเริ่มต้นเดิมสำหรับ gdm3 เป็นเรื่องน่าเบื่อที่ต้องแฮ็คเพื่อเปลี่ยนภาพพื้นหลัง แต่เราอยู่ที่นี่

John Lo avatar
bg flag
ขอบคุณ Caller9 ขอบคุณ! โซลูชันของคุณใช้งานได้ ฉันติดตั้ง ubuntu-gnome-desktop ใหม่ พร้อมกับ gdm3 gnome-shell yaru-theme-gnome-shell ตอนนี้ฉันสามารถเข้าสู่ระบบ GNOME40 ภายใต้ GDM ได้แล้ว! สิ่งที่ยอดเยี่ยม .. ชื่นชมมาก!

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา