我正在为英特尔Edison构buildYocto镜像。
其中一个映像的组件是使用特定于Edison的修补程序的u-boot。 默认情况下,Edison的UART端口用于u-boot控制台。 我想禁用这个function,但只在串行接口上(u-boot也在USB上监听,需要保留)。
我主要关心的是UART端口上的“ 按任意键停止自动引导 ”function。 我需要此端口来连接可能在主设备启动过程中发送的附件。
我如何解决这个问题? 有没有一个环境variables,或者我需要修改源?
提前致谢!
差不多一年后,我又回到这个问题了,现在我已经设法找到了一个合适的解决方案。
我正在研究的这个板子在BSP上有一个相当新的u-boot 。 要禁用串行控制台,我必须执行以下操作:
将以下定义添加到板的配置标题(位于include / configs / board.h中 ):
#define CONfig_disABLE_CONSOLE #define CONfig_SILENT_CONSOLE #define CONfig_SYS_DEVICE_NULLDEV
检查您的主板是否在同一个文件中启用了early_init_f :
#define CONfig_BOARD_EARLY_INIT_F 1
找到arch文件(类似arch / x86 / cpu / architecture / architecture.c ),并把这个调用添加到它的early_init_f函数中。 它实际上修改了电路板的全局数据变量以具有这些标志:
gd->flags |= (GD_FLG_SILENT | GD_FLG_disABLE_CONSOLE);
int board_early_init_f(void) { gd->flags |= (GD_FLG_SILENT | GD_FLG_disABLE_CONSOLE); return 0; }
而已。 希望这可以帮助别人!
要在U-Boot中禁用串行控制台,需要重新配置U-Boot。 U-Boot主分支的文档: Readme.silent
根据那一个,你需要设置:
CONfig_SILENT_CONSOLE CONfig_SILENT_CONSOLE_UPDATE_ON_SET CONfig_SYS_DEVICE_NULLDEV
如果你只想让U-Boot保持沉默, CONfig_SILENT_U_BOOT_ONLY也是需要的。
您可能还需要使用CONfig_SILENT_CONSOLE_UPDATE_ON_RELOC进行测试,并可能将silent 1添加到CONfig_EXTRA_ENV_SETTINGS 。
==更新==
有关可能的解决方法,请参阅以下选项:
CONfig_ZERO_BOOTDELAY_CHECK CONfig_AUTOBOOT_KEYED CONfig_AUTOBOOT_KEYED_CTRLC CONfig_AUTOBOOT_PROMPT CONfig_AUTOBOOT_DELAY_STR CONfig_AUTOBOOT_STOP_STR
这些选项至少会让你有一种需要魔法字符串来停止启动的方法。 这可能足以帮助你。 请参阅README.autoboot
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。