ubuntu 自动登录/图形界面启动流程

2023-05-16

ubuntu 自动登录/图形界面启动流程

    • 启动流程
    • 配置greeter和desktop自动登录
    • 配置自动登录后进入的desktop
    • 总结

这两天在Jetson nano 上想做一个跳过用户界面直接自动登录到桌面的功能。本来很简单的在System Setting 的Account里打开一下auto login就完成的事情,结果一直是重启两次后就不生效了。研究了两天Ubuntu DM的流程,就顺便记录下来。
如果你也是用的Nvidia的平台并且遇到了和我一样的问题,可以直接跳到最后看看这个坑在哪里。


启动流程

首先简单梳理一下ubuntu 图形界面的启动流程,方便后面理解

  1. 设备内核启动init进程读取inittab获取运行级别
  2. 找到/etc/rcX.d 启动各个服务。图形化Xwindows的服务器xorg就在这开始初始化。
  3. Xwindows会根据/etc/X11/default-display-manager 启动一个显示管理器一般有gdm/gdm3/lightdm
  4. 对应的DM会根据自己配置(/etc/gdm3或/etc/lightdm)启动desktop,常用有unity/LXDE/gnome(ubuntu)
    我们在开机或者是休眠唤醒后看到的登录界面,其实就是第三步Display Manager的欢迎界面。我们要做的就是不显示这个登录界面,直接进入desktop。

配置greeter和desktop自动登录

  • 确认环境配置
    各个网站上一堆关于Ubuntu自动登录的配置,上来就让改这个改那个,改了lightdm配置其实用的是gdm3,这肯定是不生效的。我们要先查看自己的系统环境,使用的究竟是什么。
    查看Display Manager
    $ systemctl status display-manager.service在这里插入图片描述
    查看Desktop
    $ echo $XDG_CURRENT_DESKTOP
    确认自己环境中的greeter和desktop,找到下面对应得修改自动登录方式即可。

  • 配置Display Manager
    DM是由Xwindow启动,配置文件目录为/etc/X11/
    网络上有说修改/etc/X11/default-display-manager更换DM得说法
    $ cat /etc/X11/default-display-manager
    /usr/sbin/lightdm
    或是
    /usr/sbin/gdm3
    我在Ubuntu 18.04.5 LTS环境中尝试并未生效。
    有效得切换DM方案是
    $ sudo dpkg-reconfigure lightdm
    或者
    $ sudo dpkg-reconfigure gdm3
    然后重启
    $ sudo reboot
    当然,前提是你已经安装了gdm3或者lightdm。
    ------------------------------------------------------------------------------------------------------------
    关于gdm3和lightdm的区别
    gdm3是ubuntu正统得最新发布桌面管理器,lightdm得宗旨则是面向全平台方便移植。
    从界面美观和实用性上讲,gdm都要优于lightdm。
    关于启动速度,我对比测试了一下没有明显得差距。

    ------------------------------------------------------------------------------------------------------------

  • GDM3 配置
    gdm3得相关配置文件在/etc/gdm3目录下
    gdm预留了custom.conf 文件方便用户更改配置。
    $ cat /etc/gdm3/custom.conf
    在这里插入图片描述
    配置gdm3自动登录只需要在custom.conf的daemon节点下添加
    AutomaticLogin=你的用户名
    AutomaticLoginEnable=True
    “=”后面空格和true的大小写都是无所谓的。
    有些文章中提到的在桌面系统菜单中user account里打开autologin,其实也是系统自动修改了custom.conf中这两个属性的值。

    更多关于gdm的配置,包括root用户自动登录,修改欢迎界面背景字体等配置,请查看archlinux GDM文档说明

  • LightDM 配置
    若你使用的lightdm,可以在/etc/lightdm目录下找到对应的配置文件
    /etc/lightdm/lightdm.conf
    也可在这个目录下自己创建一个50-myconfig.conf文件
    /etc/lightdm/lightdm.conf.d/50-myconfig.con
    系统会优先读取lightdm.conf.d中的配置。
    $ cat /etc/lightdm/lightdm.conf.d/50-myconfig.conf
    在这里插入图片描述
    若要打开自动登录,在conf文件中添加
    $ autologin-user=username
    同时需要将对应的用户名和密码添加到autologin和nopasswdlogin组中
    $ groupadd -r nopasswdlogin
    $ gpasswd -a username nopasswdlogin
    然后在/etc/pam.d/lightdm 首行添加如下
    auth sufficient pam_succeed_if.so user ingroup nopasswdlogin
    在这里插入图片描述
    即可完成lightdm 自动登录到桌面的配置。
    更多关于lightdm的配置请查看https://wiki.archlinux.org/title/LightDM


配置自动登录后进入的desktop

通过上面的配置,就可以跳过DM直接进入桌面。但是系统内有多个桌面的用户可能会发现,进入的desktop并不是自己想要的。
这里就需要配置DM启动的桌面。首先查看系统中支持哪些桌面
$ ls /usr/share/xsessions/
ubuntu-communitheme-snap.desktop unity.desktop ux-LXDE.desktop ux-openbox.desktop ux-ubuntu.desktop
若是起用了wayland 需要查看
$ ls /usr/share/wayland-sessions/
这里看到我们支持4个桌面:unity,LXDE,openbox,ubuntu
然后再系统的Accoutserver配置文件中修改默认的Xsession
$ sudo vim /var/lib/AccountsService/users/yourusename
在这里插入图片描述
修改要启动的桌面后重启,即可自动登录到对应的桌面。
XSession=untiy
这个步骤对应lightdm配置文件中也有,但是由于AccountService影响,在lightdm中修改并不会生效。
或者有个简单的方法,就是在配置自动登录前,通过登录界面选择需要的桌面,然后开启自动登录,后面会保存当前的配置。
在这里插入图片描述


总结

到这里正常的系统环境应该都可以成功设置自动登录到桌面了。但是在我环境中,每次配置完第三次重启时,就又会出现登录界面。偶然在nvidia 论坛上看到一个类似问题的帖子,才发现问题出在nvgpu.ko。
由于我重新编译了kernel,导致nvgpu.ko 和kernel不兼容,需要进行strip操作。
$ <tool_chain_path>/aarch64-linux-gnu-strip -–strip-unneeded <path-of-kernel-module.ko>
$ /usr/bin/aarch64-linux-gnu-strip --strip-unneeded /lib/modules/4.9.253-tegra/kernel/drivers/gpu/nvgpu/nvgpu.ko
执行命令后重启,一切终于正常了。

简单记录了自动登录到桌面的步骤和流程,时间有限,期间关于wayland,终端模式自动登录,终端直接启动app等后面有空再记录吧,如有问题可以留言和我沟通

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ubuntu 自动登录/图形界面启动流程 的相关文章

  • Spring知识点整理

    目录 Spring是什么 xff1f 对AOP的理解 解释一下Spring AOP里面的几个名词 Spring AOP 和AspectJ AOP有什么区别 JDK动态代理和CGLIB动态代理的区别 JavaConfig方式如何启用AOP 如
  • Method threw ‘java.lang.IllegalStateException‘ exception. Cannot evaluate org.apache.hadoop.mapreduc

    在本地调试hadoop mapreduc时断点看到这个信息 xff0c 且程序执行不成功 xff0c 以为是这个问题导致的 xff0c 网上查了很久也没有解决办法 xff0c 后来发现这个并不影响主要功能 如果不想看到它可以在idea进行配
  • Thread.sleep()关于让不让出cpu时间片

    1 证明 思路 xff1a 反证法 假如Thread sleep xff0c 不让出cpu时间片 xff0c 创建1000个线程 xff0c 每个线程执行sleep 方法 则cpu的使用率一定很高 xff0c 贴上代码 xff1a publ
  • 阿里巴巴校园招聘2019面试总结

    写在前面 面的岗位是c 43 43 开发 xff0c 二面跪了 xff0c 但依然想些出来分享一下 博主4月份开始着手找实习 xff0c 期间面过两次阿里都挂在第一面 xff0c 7月份至今在科大讯飞实习 xff0c 这期间内推阿里 xff
  • YY直播黑盒测试工程师笔试题

    1 请写出二进制数10111101对应的八进制 十六进制 十进制 2 黑盒测试用例的设计方法有哪些 xff1f 3 你所在项目用到的互联网协议有哪些 xff1f 请列举 4 数据库DB有两张表 xff0c 一张学生信息表Student xf
  • 如何判断是客户端问题还是服务器问题

    举个例子 xff0c 下载了个词典PC客户端 xff0c 发现词典上的一些解析出现是HTML代码 xff0c 例如 lt b gt lt b gt 什么的 xff0c 用fiddler抓包一下相关的接口jsonapi xff0c 发现相应的
  • U盘系统、格式化等问题的解决办法

    一 U盘快速格式化与正常格式化区别 1 快速格式化时间非常短 基本上瞬间完成 xff0c 如果硬盘有坏道 xff0c 不会出现任何提示 正常格式化时间非常的长 1 2 3小时不等 xff0c 但会在格式化的时候全面检测硬盘 xff0c 如果
  • python经典书籍推荐-7本经典的Python书籍,你都读过了么?

    许多程序员都认为Python是最适合作为入门的编程语言 xff0c 而有的程序员却认为Python是你应该学的最后一门编程语言 xff0c 无论如何 xff0c 毋庸置疑Python是一门非常流行的编程语言 xff0c 根据TIOBE In
  • python画轨迹曲线-matplotlib绘制随机行走轨迹图

    coding utf 8 author 61 39 pythonwu 39 date 61 34 2018 6 15 16 09 34 from random import choice randint import matplotlib
  • python游戏编程入门书籍推荐-游戏编程入门书籍推荐:想要游戏编程尽快入门这些书不要错过...

    游戏编程一直都是编程之中的一大热点 xff0c 这也是由于游戏本身的火热造成的结果 xff0c 所以每年都有很多人在关注着游戏编程 介于此小编今天就来将一些好的游戏编程入门书籍推荐给大家 xff0c 希望对想要了解和学习游戏编程的朋友能够有
  • 用python画关系网络图-使用Python的networkx绘制精美网络图教程

    最近因为数学建模3天速成Python 然后做了一道网络的题 xff0c 要画网络图 在网上找了一些 xff0c 发现都是一些很基础的丑陋红点图 xff0c 并且关于网络的一些算法也没有讲 xff0c 于是自己进http networkx g
  • reactor和proactor模式

    首先就第一篇 Reactor模式 xff0c 或者叫反应器模式 做一下笔记 xff1a 刚开店做生意 xff0c 老板为了给顾客一个美好的印象 xff0c 给顾客最好的服务 xff0c 一对一 随着经营的生意越来越好 xff0c 顾客多了
  • 进程间通信的方式——信号、管道、消息队列、共享内存

    进程间通信的方式 信号 管道 消息队列 共享内存 多进程 xff1a 首先 xff0c 先来讲一下fork之后 xff0c 发生了什么事情 由fork创建的新进程被称为子进程 xff08 child process xff09 该函数被调用
  • 利用netstat查看http为短连接还是长连接?

    最近 xff0c 公司在做Redis替换memcached的项目 xff0c 那mc可以设置是长连接 xff0c 那组件中的Redis到底用的是长连接还是短连接呢 xff1f 大牛军哥只给我一个命令 xff1a netstat anp gr
  • 系统总体结构设计

    系统总体结构设计 系统设计工作应该自顶向下地进行 首先设计总体结构 xff0c 然后再逐层深入 xff0c 直至进行每一个模块的设计 总体设计主要是指在系统分析的基础上 xff0c 对整个系统的划分 xff08 子系统 xff09 机器设备
  • 业务层 、服务层、数据层、表现层

    表现层 xff1a 它一方面为用户提供了交互的工具 xff0c 另一方面也为显示和提交数据实现了一定的逻辑 xff08 页面展示和各种交互包括提交 xff09 业务逻辑层 xff1a 包含了系统所需要的所有功能上的算法和计算过程 xff0c
  • Java FTPClient上传图片

    首先要使用common net的包 xff1a FTP服务器搭建过程 xff1a https mp csdn net postedit 88722082 package com taotao test ftp import java io
  • 直播疑难杂症排查(7)— 黑屏、花屏、闪屏问题

    本文是 直播疑难杂症排查 系列的第七篇文章 xff0c 我们来重点看看直播中常见的各种黑屏 花屏 闪屏问题 首先我们要明白 xff0c 黑屏 花屏 闪屏等问题 xff0c 可能是推流端的问题 xff0c 也可能是播放器的问题 xff0c 遇
  • 视频编码:H.264编码

    本文参考毕厚杰老师 新一代视频压缩编码标准 H 264 AVC 一书以及雷霄骅博客 视音频编解码技术零基础学习方法 整理 1 概念部分 xff1a H 264编码 xff1a 视频编解码技术有两套标准 xff0c 国际电联 xff08 IT
  • war包方式部署solo博客

    solo xff0c 一款小而美的博客系统 xff0c GitHub xff1a https github com b3log solo 环境和文件准备 服务器 xff1a 用的阿里云服务器 xff0c 系统是 CentOS 7 3 64

随机推荐

  • 游戏服务器之网关实现

    网关需要与客户端保证连接 这里网关使用Netty4来做为网络通信框架 它也是目前在Java游戏服务器开发中 xff0c 长连接使用最多的框架 1 xff0c 管理与客户端的连接 客户端连接到网关之后 xff0c 并且验证过之后 xff0c
  • zeromq源码分析笔记之准备

    zeromq这个库主要用于进程通信 xff0c 包括本地进程 网络通信 xff0c 涉及到一些基础知识 xff0c 主要包括管道通信 xff0c socket编程的内容 xff0c 反应器模式 xff08 使用IO多路复用实现 xff09
  • MySQL灵魂十连

    1 SQL语句执行流程 MySQL大体上可分为Server层和存储引擎层 两部分 Server层 xff1a 连接器 xff1a TCP握手后服务器来验证登陆用户身份 xff0c A用户创建连接后 xff0c 管理员对A用户权限修改了也不会
  • 前端面试知识点

    本专题按照以下几个方便进行整理 xff1a HTTP amp amp 浏览器HTML amp amp CSSJS TS ES6VueReact构建工具 amp amp 工程化性能优化 适合初次全面复习的同学 xff0c 查缺补漏 xff0c
  • 使用matplotlib绘制动画

    使用matplotlib绘制动画的步骤 本文采用moviewriter来绘制 xff0c 避免采用matplotlib animition的动画绘制方法 xff0c 将动画简化为图片一帧一帧播放 使用总共三步 xff0c 如下代码所示 补充
  • CUDA与cuDNN

    1 什么是CUDA CUDA ComputeUnified Device Architecture xff0c 是显卡厂商NVIDIA推出的运算平台 CUDA是一种由NVIDIA推出的通用并行计算架构 xff0c 该架构使GPU能够解决复杂
  • JAVAFX 简易项目构建从0到1全流程

    1 安装JDK 2 安装SceneBuilder 可集成到eclipse等IDE中 3 在IDE中新建Java Project项目 并按设计的架构设计建立代码架构 例如 xff1a 4 新建要搭建的界面fxml文件 xff0c 用Scene
  • Pandas DataFrame

    http pandas pydata org pandas docs stable api html dataframe 构造函数 方法描述DataFrame data index columns dtype copy 构造数据框 属性和数
  • Android Settings定制

    android frameworks base packages SettingsLib 7 0重构Settings后多出来的部分 android frameworks base packages SettingsProvider sett
  • GNOME图形界面的基本操作

    成功登录进入CentOS系统之后 xff0c 我们首先看到的桌面就是GNOME图形界面 xff0c 下面来看一下相关的基本操作 个性化设置 1 xff0c 设置屏幕分辨率 进入菜单 2 xff0c 更换桌面背景 进入下面菜单 选择一张背景图
  • 连接服务器VNC

    1 xff0c 启动vnc vncserver 2 xff0c 提示输入密码 3 xff0c Would you like to enter a view only password y n 选择n 4 xff0c 会生成一个端口号 5 更
  • Android基础知识(七):Activity互调之间的生命周期变化与onNewIntent()触发机制

    Android基础知识 xff08 七 xff09 xff1a Activity互调之间的生命周期变化与onNewIntent 触发机制 一 Activity切换的生命周期 前面Android基础知识 xff08 五 xff09 xff1a
  • 二叉树节点和度的关系及特点

    写在前边的话 xff1a 你的支持是我写作的动力 xff0c 有帮助到你的话麻烦点赞 加收藏 呦 感激不尽 xff01 如有错误也请留言指正 目录 一 完全二叉树 节点总数的特点 二 二叉树 度的特点 1 n0与n2的关系 2 节点总数和度
  • 平衡二叉树的最大深度和最少节点数

    写在前边的话 xff1a 你的支持是我写作的动力 xff0c 有帮助到你的话麻烦点赞加收藏呦 感激不尽 xff01 如有错误也请留言指正 考研数据结构练习 xff0c 欢迎订阅我的专辑 考研数据结构题型分类讲解练习 目录 一 知识点 二 例
  • dataturks解析

    34 34 34 根据大json写小json 34 34 34 with open 39 pay json 39 as f datas 61 f readlines for data in datas data 61 data strip
  • STM32串口之环形队列接收数据

    原文链接 xff1a STM32串口之环形队列接收数据 码代码的应该学数据结构都学过队列 环形队列是队列的一种特殊形式 xff0c 应用挺广泛的 因为有太多文章关于这方面的内容 xff0c 理论知识可以看别人的 xff0c 下面写得挺好的
  • Linux使用ssh远程登陆

    什么是SSH xff1f 简单说 xff0c SSH是一种网络协议 xff0c 用于计算机之间的加密登录 如果一个用户从本地计算机 xff0c 使用SSH协议登录另一台远程计算机 xff0c 我们就可以认为 xff0c 这种登录是安全的 x
  • 使用Vscode 编译 开发 调试 STM32单片机 VScode+openocd+STM32CubeMX+GDB

    Vscode 编译 开发 调试 STM32单片机 为什么记录这篇文章环境准备软件及工具下载软件安装 VScode功能搭建使用STM32CubeMX生成带有makefile的工程配置VScode工程 使用vscode 开发 xff0c 编译
  • 出错信息“module or group tools is not avaliable”

    出错信息 module or group tools is not avaliable 使用yum安装软件时 xff0c 有时会出现这个问题 xff0c 可能是需要安装的软件来自第三方 解决办法 yum install epel relea
  • ubuntu 自动登录/图形界面启动流程

    ubuntu 自动登录 图形界面启动流程 启动流程配置greeter和desktop自动登录配置自动登录后进入的desktop总结 这两天在Jetson nano 上想做一个跳过用户界面直接自动登录到桌面的功能 本来很简单的在System