linux启动的log能关掉或者不在串口显示吗

linux启动的log能关掉或者不在串口显示吗,第1张

1.准备

串口线一条、手机一个

2.步骤

1将串口线插入电脑USB口,开启另一个终端查看串口设备名,输入下面命令:

dmesg

2找到最下面一行,尾部即是串口设备名称,我这里叫做“ttyUSB0”

3然后安装串口抓取软件,进入Ubuntu软件中心,搜索CuteCom,点击安装即可。

4运行CuteCom,需要root权限,所以通过终端来进行

sudo cutecom

打开后的界面如下:

5在上图位置1,填入/dev/ttyUSB0,位置2选最大参数921600

6准备工作就完毕了,点击Open device按钮,工具开始等待设备接入

7将手机连上串口线,点击开机按钮,位置3中就会将串口log打印出来

8如果需要保存,可以勾选位置4,点击后面的“…”按钮可以选择存储路径。也可以直接在位置3通过复制粘贴 *** 作进行。

3.注意事项

有些手机的串口log是没有打开的,那么就无法抓取得到。串口log一般都在开机后不再输出(影响性能),因此常用于分析开机log。

、去掉printk打印

在linux内核中的/kernel目录下printk.c文件中有一个函数:

static void __call_console_drivers(unsigned long start, unsigned long end)

{

struct console *con

for (con = console_driversconcon = con->next) {

if ((con->flags &CON_ENABLED) &&con->write)

con->write(con, &LOG_BUF(start), end - start)

}

}

去掉如下两行重新编译内核即可:

if ((con->flags &CON_ENABLED) &&con->write)

con->write(con, &LOG_BUF(start), end - start)

2、标准输出、标准错误输出重定向

int main() {

int pid = 0

// fork a worker process

if (pid = fork()) {

// wait for completion of the child process

int status

waitpid(pid, &status, 0)

}

else {

// open /dev/null

int fd_null = open("/dev/null",O_RDWR)

if(dup2(fd_null, 1) == -1)

return 1

if(dup2(fd_null, 2) == -1)

return 1

XX_run()

}

return 0

}

我将标准输出和错误输出重定向到/dev/null中

如果我没有将输出重定向,只是关闭输出,close(1) close(2),程序经常出现错误,这个还需要继续研究。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8308050.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-15
下一篇2023-04-15

发表评论

登录后才能评论

评论列表(0条)

    保存