Raspberry pi 4 - 具有自定义GUI界面和快速启动速度。

问题描述 投票:0回答:1

我正试图在Raspberry Pi 4上实现这个目标。

  • 少于10秒的启动时间
  • 自定义UI(例如用pythonGtk构建)

我已经尝试过用以下方法编辑bootconfig.txt。

# Disable the rainbow splash screen
disable_splash=1
# Disable bluetooth
dtoverlay=pi3-disable-bt
#Disable Wifi
dtoverlay=pi3-disable-wifi
dtoverlay=sdtweak,overclock_50=100
# Set the bootloader delay to 0 seconds. The default is 1s if not specified.
boot_delay=0
# Overclock the raspberry pi. This voids its warranty. Make sure you have a good power supply.
force_turbo=1

此外,我有一个A2类10 SdCard,我已经禁用了几乎所有我不需要的服务。

我最好的结果是14秒的启动时间,直到我的应用程序开始,但我需要让它更快......

我想在速度上达到这样的效果,但是使用GTK,而不是QT。https:/www.youtube.comwatch?v=TTcP3xeLrEY

linux raspberry-pi embedded-linux
1个回答
1
投票

GTK 是一个用 C 编码的工具包,可以从 C 代码中调用。

在实践中,Python可能比同等的C代码慢10倍。

您是否考虑过从 Xorg 用一个最小的窗口管理器和一个用C语言编码的客户端?没有一行Python?当然,阅读更多关于 X Windows系统协议 和建筑,那么关于 EWMH.

所以.., 删除Python解释器 在您的RaspBerryPi上(可能是 /usr/bin/python)和 用一个等价的Python脚本代替所有旧的Python脚本 ELF 可执行文件 或在C++中编译,并进行了优化(所以 gcc -O3海湾合作委员会). 另见 linuxfromscratch.org 的灵感和指导。

我想在速度上实现类似的东西,但使用GTK

当然,你要使用GCC的 交叉编译器.

如果还是不行(经过几周的努力),请用更强大的硬件来替换你的硬件。

对你来说,安装一个Linux发行版,如 蝶变 在你的开发笔记本或台式机上。因为你在开发电脑上学习的大部分内容(例如 高级Linux编程)可以应用到RaspBerrry Pi上。而在Debian笔记本上交叉构建一个 树莓 RaspBerryPi是 真的 容易。专注于学习低级的东西,从他们的C代码开始。如:直接用GUI编码,用 Xlib (没有GTK,没有Qt)。同样的C语言代码很可能很容易被 手提 如果你仔细写的话--从x86Debian到你的Raspberry Pi。

你可以阅读 从开机到到bash提示怎么做?该文档的大部分内容与运行RaspBian的RaspBerryPi有关。

您甚至可以避免启动任何Xorg或其他的应用程序。显示服务器 (例如 WayLand)的RaspBerryPi上。这肯定会让它启动得更快。

您可以将您的 /sbin/init 程序 由你自己的一个完全用C语言编码的进程来执行。该进程在不到一秒的时间内启动,并分叉所有其他进程。你的自定义GUI可能只是 Xorg 与您的单一X11客户端用C语言编码。

观察一下,你可以拥有RaspBian上运行的所有代码的源代码(数百万行源代码)。然后下载它,研究它,并优化它。当然这可能需要几十年的时间。


0
投票

我目前也在尝试用我的Raspberry Pi 4达到快速启动时间,但如果没有激进的解决方案,如buildroot或unikernel,我无法突破10秒的墙。

你的系统需要什么?在Raspbian上,你可以使用这两个命令来验证是什么拖慢了启动过程。

systemd-analyze critical-chain

 systemd-analyze blame

关键链将显示红色的服务阻止启动.在我的设置,我可以取消激活所有这些服务 :

 hciuart #GPIOs
 nmbd    
 smbd
 wpa_supplicant
 systemd-timesyncd
 rpi-eeprom-update.service
 raspi-config.service
 networking

只要使用 sudo systemctl disable SERVICE 另外,在启动时的cmdline.txt文件中,你可以添加以下信息 quiet fastboot 它将进一步减少启动时间


0
投票

首先,这是个糟糕的问题。你没有提供任何关于你的启动过程的细节,也没有提供你使用的OSconfiguration来帮助人们。

不管怎么说,你似乎主要关注的是短时间内的启动时间。既然你的问题是通用的......这里有一个通用的答案:启动过程没有什么神奇的地方。没有配置文件中的fast_boot=1选项能让你在0秒内启动,而不是15秒。你想要更快的启动?那就少做一点。

  1. 扔掉像Python这样的慢速垃圾
  2. 从你的init系统中删除不必要的应用程序加载(sysvinitsystemdwhatever)
  3. 从内核启动中移除不必要的驱动加载。从削减设备树开始,只初始化你真正需要的硬件。
  4. 优化你的bootloader(u-boot?),只初始化你真正需要的硬件(显然要关闭任何可能实现的提示和定时器)

这就是你如何启动更快。

© www.soinside.com 2019 - 2024. All rights reserved.