标签: boot

在boot shell脚本中使用覆盆子Pi B +上的tkinter没有显示名称和$ DISPLAY环境变量

如果我做错了,我的第一篇文章如此道歉.

我在python3上使用tkinter编写了一个python脚本,它在IDLE3中运行完全正常.我希望在启动Pi时运行此脚本,因此执行以下过程以使用cron作业运行@reboot. http://www.instructables.com/id/Raspberry-Pi-Launch-Python-script-on-startup/step4/Add-to-your-crontab/

最初我得到了初始化错误,所以我添加了'/ bin/sleep 120;' 到@reboot行,所以它现在读取如下,似乎等待足够长的时间,以便在启动后初始化所有内容.@reboot/bin/sleep 120; sh /home/pi/launcher.sh>/home/pi/logs/cronlog 2>&1

但是在此之后我的cronlog显示以下错误:

回溯(最近通话最后一个):文件"walk.py",第29行,在MyGUI = TK()文件"/usr/lib/python3.2/tkinter/ 初始化的.py",线1701,在初始化 self.tk = _tkinter.create(screenName,baseName,className,interactive,wantobjects,useTk,sync,use)_tkinter.TclError:没有显示名称,没有$ DISPLAY环境变量

现在我在其他线程上看到了这个错误,很多似乎与初始化我不使用的库有关.我想补充一点,我的代码从空闲运行良好,从终端运行良好,我已经制作了launcher.sh并使其可执行,如果我从终端运行'sh launcher.sh'它工作正常,所以launcher.sh shell脚本看起来不错.但在启动时我得到上述错误,我不明白为什么?请帮忙.

我没有这台机器上的代码副本,但我会尝试将其复制并发布作为评论,如果有人认为这将有所帮助.

在此先感谢保罗

以下完整代码


import sys
import tkinter #might not be needed
from tkinter import *
import pymysql
import os.path
import datetime
import json

#Define local database connection
try:
    localdb = pymysql.connect(host="localhost", user="root", passwd="p054169q", db="walk")
except Exception as e:
    sys.exit('Can not locate localdb')

lcur = localdb.cursor()

#Define web database connection (Maybe add later for easy sync) …
Run Code Online (Sandbox Code Playgroud)

boot cron tkinter python-3.x raspberry-pi

6
推荐指数
1
解决办法
5859
查看次数

设备重启后即可使Android调试器保持活动状态

我在调试DeviceBootReceiver中的一些代码时遇到问题(处理android.intent.action.BOOT_COMPLETED意图).我想调试这个位,但是当设备重新启动时,如何使调试器保持活动状态?是否有任何人为此遇到任何黑客攻击?

我想做什么:

  1. 通过Android Studio开始调试应用
  2. 关闭设备电源
  3. 打开设备电源
  4. 当它开始处理android.intent.action.BOOT_COMPLETED意图时仍然可以将调试器附加到我的应用程序

有什么想法吗?

boot android android-intent

6
推荐指数
1
解决办法
1368
查看次数

如何调试间歇性失败的upstart脚本?

我有一个进程,我想尽快开始我的系统rebooted,所以我使用upstart脚本,但有时我注意到的是我的进程在硬重启(插拔和启动机器)期间没有启动所以我认为我的暴发脚本在硬重启后没有被踢进去.我相信Hard Reboot没有运行级别.

我很困惑,为什么有时在重启期间它有效,但有时它不起作用.我该如何调试呢?

以下是我的新贵脚本:

# sudo start helper
# sudo stop helper
# sudo status helper
start on runlevel [2345]
stop on runlevel [!2345]

chdir /data
respawn

pre-start script
  echo "[`date`] Agent Starting" >> /data/agent.log
  sleep 30
end script

post-stop script
  echo "[`date`] Agent Stopping" >> /data/agent.log
  sleep 30
end script

limit core unlimited unlimited
limit nofile 100000 100000
setuid goldy
exec python helper.py
Run Code Online (Sandbox Code Playgroud)

有没有办法调试出来发生了什么?我相信,我可以很容易地重现这一点.关于我在这里可以做什么的任何指示?

注意:

在重新启动期间,有时我会在pre-start脚本中看到我的日志记录,但有时我在重新启动后根本看不到日志记录,这意味着我的upstart脚本未被触发.有什么我需要在运行级别上更改以使其工作?

我有一个在Hypervisor中运行的VM,我正在使用Ubuntu.

linux boot upstart ubuntu-12.04 ubuntu-14.04

6
推荐指数
1
解决办法
549
查看次数

获取python脚本以在mac中启动时运行

如何在每次计算机启动时运行python脚本?

python macos boot

5
推荐指数
1
解决办法
5233
查看次数

重新打包 boot.img 时出错(Android)

我的 Nexus 5 带有 AOSP ROM 4.4.4。

我试图从设备中“拉出”boot.img,解压它,编辑“init.rc”,将其重新打包为 boot.img 并将其刷新到设备。

我遵循了许多指南,但没有一个与我的情况相同:

http://droidcore.blogspot.co.il/2012/12/how-to-edit-initrc-in-android.htmlhttp://www.digitalinternals.com/mobile/android-mmc-mmcblk-partition -布局/259/

  1. 设备分区是 mmcblck 所以从ls -l /dev/block/platform/msm_sdcc.1/by-name/我得到的引导是/dev/block/mmcblk0p19

lrwxrwxrwx 根根 1971-02-28 21:30 启动 -> /dev/block/mmcblk0p19

  1. 我使用以下命令创建了 boot.img:cat /dev/block/mmcblk0p19 > /mnt/sdcard/boot.img并将此 boot.img 拉到我的电脑上。此 boot.img 约为 23 MB。

  2. 我使用http://droidcore.blogspot.co.il/2012/12/how-to-edit-initrc-in-android.htmlunmkbootimg中的工具创建了 boot.img并得到了 2 个文件:哪个大约 500 KB,哪个约为 8.4 MB。我得到的详细信息是:initramfs.cpio.gzkernel.gz

内核大小 8405280

内核地址0x8000

Ramdisk 大小 498992

虚拟盘地址0x2900000

次要尺寸 0

辅助地址0xf00000

内核标签地址0x2700000

Flash页面大小2048

板名称为“”

命令行“console=ttyHSL0,115200,n8 androidboot.hardware=hammerhead user_debug=31 maxcpus=2 msm_watchdog_v2.enable=1”

提取kernel.gz

...正在提取 initramfs.cpio.gz …

linux boot android build linux-kernel

5
推荐指数
1
解决办法
4410
查看次数

谁以及何时分配 PCI/PCIe 设备 BAR 基址?

我正在寻找内核如何进行 PCI/PCIe 枚举和 BAR 分配。

我以为内核会在启动时分配BAR的PCI基地址,但是当我尝试pci earlydump(在内核初始PCI子系统之前)查看BAR值时,我发现所有基地址都已经分配了!?这是否意味着 BIOS 进行 PCI/PCIe 枚举和 BAR 分配?BIOS 如何知道每个 pci 设备的基地址并在没有冲突的情况下分配这些地址?

如果是这样,嵌入式系统(没有 BIOS )如何为 PCI/PCIe 设备枚举和分配基地址?

顺便说一下,我的电脑是 Ubuntu 14.04.1 LTS (x86_64)

boot linux-kernel pci

5
推荐指数
1
解决办法
5313
查看次数

使用bcdedit添加UEFI固件启动项

如何使用bcdedit. 例如,我尝试了以下步骤,但未添加启动项。

bcdedit /create /d "LinuxLoader" /application osloader 
Run Code Online (Sandbox Code Playgroud)

这将返回一个新的 guid(比如 newguid)

bcdedit /set {newguid} device partition=S:
bcdedit /set {newguid} path \boot\efi\bootx64.efi
bcdedit /set {fwbootmgr} displayorder {newguid} /addfirst
Run Code Online (Sandbox Code Playgroud)

提前致谢。

windows boot bcdedit bcdstore uefi

5
推荐指数
1
解决办法
2万
查看次数

Windows 相当于 efibootmgr?

即使我使用 Ubuntu 的 efibootmgr 更改它,Windows 也会继续覆盖 UEFI 引导顺序。但是 BootNext 选项不会被覆盖,也就是说,我可以将 BootNext 设置为 Ubuntu,它会在重新启动时引导到 Ubuntu。因此,我编写了以下脚本以在每次启动到 Ubuntu 时运行:

efibootmgr > file.txt
CURR="$(grep "BootCurrent" file.txt | grep -Eo "[0-9]{4}")"
efibootmgr -n $CURR
rm file.txt
exit 0
Run Code Online (Sandbox Code Playgroud)

这确保我在从 Ubuntu 重新启动时可以启动到 grub。有没有办法从 Windows 执行相同的操作,以便在从 Windows 重新启动时可以启动到 grub?

编辑 :

运行 bcdedit /v 给出(没有 Ubuntu 条目):

Windows Boot Manager
--------------------
identifier              {9dea862c-5cdd-4e70-acc1-f32b344d4795}
device                  partition=\Device\HarddiskVolume1
path                    \EFI\ubuntu\shimx64.efi
description             Windows Boot Manager
locale                  en-US
inherit                 {7ea2e1ac-2e61-4728-aaa3-896d9d0a9f0e}
default                 {9b4692db-d6e1-11e6-8040-f733056555ec}
resumeobject            {9b4692da-d6e1-11e6-8040-f733056555ec}
displayorder            {9b4692db-d6e1-11e6-8040-f733056555ec}
toolsdisplayorder       {b2721d73-1db4-4c62-bf78-c548a880142d}
timeout                 0

Windows Boot …
Run Code Online (Sandbox Code Playgroud)

terminal powershell boot cmd uefi

5
推荐指数
2
解决办法
9923
查看次数

GCP - GPU 暂存时间减少

我有一个应用程序需要尽可能短的启动时间/TTL,并且 GPU 连接到 GCP CE 中的虚拟机。为了降低成本,我的基础设施依赖于随着需求的增加/减少而启动和停止实例。

我在没有 GPU 的情况下使用自定义图像实现了不到 5 秒的启动时间,但一旦连接 GPU,“运行”时间总是超过 20-30 秒。

我尝试了多种不同的发行版、清晰的 Linux、预打包的 Nvidia 驱动程序映像、Fedora 的最小安装、最小化的 Debian、内核和用户空间的减少 - systemd-analyze 说我的启动时间是 3 秒,但使用 GPU 启动虚拟机需要 20 秒 -跑步前“暂存”30 秒。

当 GPU 连接到 VM 时才会发生这种情况,并且移除后,VM 将在 systemd-analyze 提到的时间内启动。它在所有发行版和启动映像中都是一致的。

我是否缺少任何软件包或文档来加快连接 GPU 的暂存时间,或者这是否是 GCP 的 GPU 实例内部暂存的限制?

我非常感谢任何帮助或建议。

如果您也遇到此问题并想跟踪其进度,我创建了一份问题报告: https://issuetracker.google.com/issues/200575905

boot gpu google-compute-engine google-cloud-platform

5
推荐指数
1
解决办法
340
查看次数

蓝屏 - Compute Engine 中的快照恢复 - GCP

我无法使用 Windows Server 2019 恢复实例的快照。当恢复机器开启时生成的快照时,我得到一台机器无法启动并且总是蓝屏的结果。当恢复关闭机器时生成的快照时,一切正常,恢复的机器正常启动。串口 = inaccessible_boot_device 0xffff 谷歌云平台

boot windows-server google-compute-engine google-cloud-platform windows-server-2019

5
推荐指数
1
解决办法
716
查看次数