gpt4 book ai didi

linux - 将 printk 发送到串口

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:56:40 42 4
gpt4 key购买 nike

我正在尝试为 Linux 内核调试一个模块。我听说可以将控制台输出发送到串行端口。我在 vmware 上运行 Ubuntu 并想向主机发送 printk 消息。我已经设法建立了一个串行连接,并且可以通过键入 echo > simething/dev/ttyS1 向主机发送回显但我不知道如何将控制台上的输出发送到 ttyS1。

我的主要问题是,当模块/内核崩溃时,最后的 printk 消息会丢失,甚至不会显示,它只是缓冲。

最佳答案

在 guest Linux 内核上

sudo vim /etc/default/grub  
GRUB_CMDLINE_LINUX="console=ttyS1,115200n8 console=tty0 ignore_loglevel"
sudo update-grub

注意:- 内核参数 "ignore_loglevel" 会将所有内核消息打印到控制台。用于调试。

现在在控制台 ttyS1 上启用 getty
Upstart 系统
1) 创建一个名为/etc/init/ttyS1.conf 的文件,其中包含以下内容:

# ttyS0 - getty
#
# This service maintains a getty on ttyS1 from the point the system is
# started until it is shut down again.

start on stopped rc RUNLEVEL=[12345]
stop on runlevel [!12345]

respawn
exec /sbin/getty -L 115200 ttyS1 vt102

2)请 Upstart 启动getty

sudo start ttyS1  

对于 Systemd 系统

$ sudo systemctl enable serial-getty@ttyS1.service
$ sudo systemctl start serial-getty@ttyS1.service
$ sudo systemctl daemon-reload

关于linux - 将 printk 发送到串口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36649176/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com