- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在运行由 Yocto Zeus 构建的 Linux 内核 4.14.149,我正在运行 2019.07 U-boot。在我们安全团队的建议下,我正在尝试摆脱 Linux 控制台。我不担心调试(一旦我让它工作起来);我们还有其他方法可以让系统退出机器,这不会在软件开发板上完成。该机制已经到位,并且已经过测试。我们有一个 i.MX6 作为我们的核心(这是一个嵌入式系统),我们在开发板上有专用的 UART5 到我们的控制台。
我尝试了几种不同的方法来做到这一点。第一个是禁用帧缓冲区控制台内核配置 ( CONFIG_FRAMEBUFFER_CONSOLE
)。这种方法的主要问题是它禁用了启动画面。我们在 U-boot 中有一个启动画面(它被 Linux 再次显示),但是 Linux 在启动时似乎重置了帧缓冲区或其他东西,导致显示闪烁并在我们之前显示为空白应用程序启动,这是 Not Acceptable (这也是我们在 U-boot 和 Linux 中都显示启动画面的原因)。
我还尝试在我们的命令行上设置“console=”。这与我们想要实现的目标很接近,因为控制台不再从 UART 出来,但我们看到它开始出现在启动屏幕顶部的显示屏上。我还没有找到任何方法来解决这个问题(如果需要,我可以上传屏幕截图)。
完全消除控制台参数似乎不起作用,它仍然出现在 UART 中。这是基于 the serial console documentation 的预期结果它说它只使用第一个可用的设备。
我曾尝试在 Linux 源代码中注释掉 main.c 中的控制台初始化,它爆炸得相当快。
我尝试将其设置为 netconsole(请参阅 Where do you send the kernel console on an embedded system? ),但启动画面仍然被覆盖,与设置 it nothing case 相同。
我尝试的最后一件事就是将它设置为一个虚假设备(Linux 命令行上的“console=ttymxc9”)。虽然这似乎有效(显示器或 UART 上没有数据),但它似乎在启动过程中停止(崩溃?)并且无法获取日志(它在我们的应用程序服务运行之前停止)。我说停顿是因为我们已经为 Linux 配置了心跳,而且我们仍然可以得到正确的 LED 心跳行为。然而,我添加到我们的构建中的所有 systemd 服务都没有运行(我添加了一个以在启动后将 journalctl 日志文件保存到外部 SD 卡上的文件以进行调试,直到我开始工作)
在这一点上,我已经没有关于如何在保持启动画面完整的同时摆脱控制台的想法。禁用 Linux 控制台的正确方法是什么?
最佳答案
对于内核版本 5.11 及更高版本:
在来自 make menuconfig
的“设备驱动程序”下的子菜单“字符设备”中,有一个名为“空 TTY 驱动程序”( CONFIG_NULL_TTY
)的选项,您可以启用和添加 console=ttynull
到内核启动 cmdline,以便所有控制台输出都将被简单地丢弃。
您也可以禁用 CONFIG_VT
和 CONFIG_UNIX98_PTYS
,因为您根本不需要通过控制台与您的程序进行交互。
对于较旧的内核(如我的 4.14):
您可以通过以下差异添加此支持:https://lore.kernel.org/lkml/20190403131213.GA4246@kroah.com/T/然后按照上面的说明进行操作。
关于linux - 如何在使用 Yocto 构建的嵌入式系统上关闭控制台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66924745/
这个问题困扰了我几天。 这是我的相关 Storyboard布局: 我已经将阳光下的每个布局都设置为所有三个 View Controller ,并且仍然得到一个在横幅 View 上方有一个“间隙”的结果
我正在我的 C++ 程序中嵌入一个网页。我遇到的问题是,在嵌入式页面的 javascript 中,我可以捕获 onkeypress,但不会触发 onkeydown 和 onkeyup。 如果我在非嵌入
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 5年前关闭。 Improve this qu
我有一个 java web 应用程序。我想创建一个嵌入式 LDAP 服务器,当 web 应用程序运行时,我将向 LDAP 插入一些记录,并且有另一个 web 应用程序将访问此 LDAP 以获取信息。可
我正在尝试通过 tomcat maven 插件将 war 部署到嵌入式 tomcat 服务器。控制台显示服务器启动正常。 看来 war 还没有展开。当我访问 http://localhost:9090
假设我有如下函数: bigrams=[(k,v) for (k,v) in dict_bigrams.items() if k[:pos_qu]==selection[:pos_qu
我读过一些关于 python 嵌入式 C++ 的教程。我曾引用过 python 对象。 https://docs.python.org/3/c-api/function.html Python 脚本:
我正在使用嵌入式应用程序,在调试期间,调试器无法解析宏符号(我的理论:因为宏在预处理中丢失了)。我最终不得不先在源代码中找到宏,然后使用定义来监视变量。 我的问题是:有没有办法将宏定义合并到 elf
首先我要说的是我开发的是基于cortex m4的嵌入式设备应用。 我有引导加载程序和主应用程序通用的功能。现在我为引导加载程序和应用程序编译源文件 2 次。但是我的双库 dfu 空间不足,我想在 RO
作为嵌入式 C 编程的初学者,我很好奇每个(根据我的经验)程序执行是如何从 main() 函数开始的?这就像链接器识别 main() 并将那个“特殊” 函数的地址放入重置 vector 指向的地址。
在我的实时嵌入式处理器固件中,我需要十进制数字的格式化打印。标准 printf/sprintf 在工具链中不可用,所以我需要自己实现它。 我使用了除以十并取余的天真方法。但是我的目标处理器本身不支持除
我有编程经验,但在软件开发方面了解不多。我目前正在为我工作的公司编写一个软件,我开始挑战自己代码的可读性。 我想知道这是否是嵌入式 if 语句的“有效”替代方案,或者我是否可以使用更好的方法。 假
我有一个运行嵌入式 Linux 的嵌入式目标,我想计算以下时间: 1) 高速缓存读/写时序2) uncache 内存读/写时序 Linux 中是否有任何标准测试来计算上述时间? 我已经编写了自己的测试
大多数嵌入式设备都是为了在通常资源受限或低规格的设备上执行特定任务而构建的。 因此,大多数嵌入式开发人员需要去除不必要的库和模块,并为其特定设备和用例创建自定义分发。我们先来了解一下嵌入式 Linu
我正在嵌入式处理器上编写一个简单的裸机应用程序。作为此应用程序的一部分,它必须使用 malloc 在大约 256kB 的堆上分配一些内存。注意:最初这是在 main 中静态分配的,但在一定的大小限制下
我正在尝试为我 friend 的婚礼建立一个网站。我使用的是 Bootstrap 5,嵌入的视频没有填满屏幕大小。这是一个 live test page HTML: 您还需要代码吗?我想让视频的全宽
我有一个项目,我尝试为微 Controller 构建固件并尝试更好地控制所使用的优化标志。我想,而不是使用 -O flag 分别指定不同的优化标志。不幸的是,-O 似乎发生了一些优化魔法。我无法使用单
我正在使用双核设备,并且要求核心 A 创建一个数据结构,其中包含在核心 B 上运行的函数列表的参数,定期更新它并通知核心 B。参数和类型的数量可以改变在运行期间。 我的计划如下.. 创建一个 Para
我们有一个 Microsoft.Phone.Controls.WebBrowser内嵌控件 StackPanel , 在 PivotItem 内在 Windows Phone 8 上。以简化的形式,它
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 2 年前。 Improve this ques
我是一名优秀的程序员,十分优秀!