单板计算机(Lubuntu 15.10,内核版本 4.2.0-41-generic)在运行各种应用程序时一直冻结,最重要的是我们正在开发的自动数据采集应用程序,但仅使用 Firefox 时也可能发生这种情况。当机器闲置时,它没有冻结。我找到了一种解决方法,即在lightdm
服务停止的情况下以控制台模式运行。希望我能够将其缩小到 GUI 模式下发生的具体事情,但如果我能让它正常工作,控制台模式实际上不是一个糟糕的解决方案。系统实际上不需要任何用户交互。
为了以控制台模式启动,我遵循了建议[1][http://ubuntuhandbook.org/index.php/2014/01/boot-into-text-console-ubuntu-linux-14-04/]和[2][如何在启动时禁用 X 以便系统以文本模式启动?,即编辑/etc/default/grub
并更改GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”
为GRUB_CMDLINE_LINUX_DEFAULT=”text”
,并取消注释GRUB_TERMINAL=console
并运行sudo update-grub
。
仅此一点并没有什么区别。我尝试按照第二篇文章中针对 systemd 的步骤进行操作(据我所知,这台机器上使用该系统):
运行
sudo systemctl enable multi-user.target --force
。响应是:单元文件没有 [Install] 部分。它们不适用于使用 systemctl 启用。出现此类单元的可能原因如下:
- 可以通过从另一个单元
.wants/
或.requires/
目录进行符号链接来静态启用一个单元。 - 一个单位的目的可能是充当对其有需求依赖的其他单位的助手。
- 在需要时可以通过激活(套接字、路径、计时器、D-Bus、udev、脚本 systemctl 调用……)启动一个单元。
我在评论中看到其他人也遇到了这个错误,但没有更多信息。现在我不知道这是否导致了进一步的问题,或者是其他问题,但我继续执行下一步:
- 可以通过从另一个单元
sudo systemctl set-default multi-user.target
。 回复:/etc/systemd/system/default.target
创建了从到 的符号链接/lib/systemd/system/multi-user.target
。
此后,系统启动进入控制台模式。但是,由于某种原因,键盘不活动 10 分钟后屏幕变黑(我想是的),我无法再使用键盘或鼠标将其唤醒。系统没有冻结:程序继续运行并保存数据,直到我关闭系统(重新启动后我可以看到)并且键盘响应 Num Lock 键。在 GUI 中,它实际上会在几个小时内挂起。但这很奇怪,非常不方便。
但更重要的是,我无法返回 GUI 模式。我尝试了sudo startx
,它开始绘制一些窗口并挂起,我也尝试了sudo service lightdm start
,它会弹出 GUI 登录提示,但我实际上无法登录,它只是一次又一次地弹出。我以前在系统磁盘空间不足时见过这种情况(现在空间充足)。
我怀疑 GPIO 驱动程序没有加载。无论如何,系统现在还不能完全正常运行,因此至少出于这个原因,我想返回 GUI 模式并检查它是否仍像以前一样工作。
我该如何撤销 systemd 更改,或者有没有更简单的方法可以切换到 GUI 并真正让它工作?为什么屏幕会死机?
提前谢谢了!
更新:也没有网络连接(它在 GUI 中工作)并且看起来运行级别 2 和 5 的启动脚本没有被执行。
更新 2:我忘了说这也与硬件有关。数据采集系统使用单板计算机。有两种变体:旧款使用 Pico 板,新款使用 Advantech 板,后者功耗更低,并具有内置 GPIO。冻结问题仅发生在 Advantech 板上。
答案1
我暂时通过从 lightdm 切换到 GDM 解决了这个问题。现在进行更多测试。