[ 7.282706] initcall usb_serial_module_init+0x0/0x18 returned 0 after 11533 usecs [ 7.290235] calling ci_hdrc_platform_register+0x0/0x1c @ 1 [ 7.295997] initcall ci_hdrc_platform_register+0x0/0x1c returned 0 after 169 usecs [ 7.303629] calling ci_hdrc_usb2_driver_init+0x0/0x10 @ 1 [ 7.309563] initcall ci_hdrc_usb2_driver_init+0x0/0x10 returned 0 after 396 usecs [ 7.317113] calling ci_hdrc_msm_driver_init+0x0/0x10 @ 1 [ 7.322791] initcall ci_hdrc_msm_driver_init+0x0/0x10 returned 0 after 253 usecs [ 7.330249] calling ci_hdrc_imx_driver_init+0x0/0x10 @ 1 [ 7.337205] initcall ci_hdrc_imx_driver_init+0x0/0x10 returned 0 after 1501 usecs [ 7.344723] calling usbmisc_imx_driver_init+0x0/0x10 @ 1 [ 7.351683] initcall usbmisc_imx_driver_init+0x0/0x10 returned 0 after 1458 usecs [ 7.359246] calling tegra_usb_driver_init+0x0/0x10 @ 1 [ 7.365176] initcall tegra_usb_driver_init+0x0/0x10 returned 0 after 667 usecs
时间: 2024-03-28 16:36:51 浏览: 47
这段信息是Linux内核启动时打印的一些调试信息,其中包含了每个模块的初始化过程和返回结果。每条信息都包含以下几个部分:
- `[timestamp]`:当前时间戳,格式为`[秒.微秒]`;
- `calling [function]+0x0/0x[xx] @ [number]`:正在调用的函数名和地址;
- `initcall [function]+0x0/0x[xx] returned [result] after [time] usecs`:函数执行结果和耗时。
其中,`[function]`表示正在调用的函数名,`[result]`表示函数的返回值,`[time]`表示函数的执行时间(单位为微秒)。
在这段信息中,可以看到系统调用了多个USB相关模块的初始化函数,并且每个函数都成功返回(返回值为0)。这些模块包括`usb_serial`、`ci_hdrc`、`usbmisc_imx`等。这些模块的初始化过程通常包括注册设备、申请资源、初始化数据结构等操作,这些操作都是为了让模块能够正常工作。
相关问题
[ 4.746509] initcall phy_init+0x0/0x6c returned 0 after 186 usecs [ 4.763443] initcall usb_init+0x0/0x17c returned 0 after 16525 usecs [ 4.763483] initcall dual_role_class_init+0x0/0x8c returned 0 after 27 usecs [ 4.774618] initcall usb_phy_generic_init+0x0/0x24 returned 0 after 10861 usecs [ 4.774662] initcall usb_udc_init+0x0/0x70 returned 0 after 31 usecs [ 4.774741] initcall serio_init+0x0/0x44 returned 0 after 65 usecs
这是一段内核启动时的日志信息,其中包含了多个 initcall 的执行情况,每个 initcall 都有一个返回值和执行时间。每个 initcall 都是内核中的一个函数,用于初始化某个子系统或者模块,返回值为 0 表示初始化成功,否则表示初始化失败。
该段日志信息中,每个 initcall 的格式为:
```
initcall function_name+offset/length returned return_value after execution_time usecs
```
其中:
- function_name 表示 initcall 对应的函数名;
- offset 表示函数在内存中的偏移量;
- length 表示函数的长度;
- return_value 表示函数的返回值,0 表示成功,非 0 表示失败;
- execution_time 表示函数执行的时间,单位为微秒。
这些信息可以帮助开发人员了解各个子系统或模块初始化的情况,以及定位可能存在的问题。
[ 7.309563] initcall ci_hdrc_usb2_driver_init+0x0/0x10 returned 0 after 396 usecs
这一行文本中,`ci_hdrc_usb2_driver_init+0x0/0x10` 表示函数名,`returned 0` 表示函数返回值为 0,`after 396 usecs` 表示函数执行时长为 396 微秒。
因此,可以使用 sed 命令将这一行文本中的信息提取出来,具体命令如下:
```bash
echo '[ 7.309563] initcall ci_hdrc_usb2_driver_init+0x0/0x10 returned 0 after 396 usecs' | sed -E 's/.*initcall ([^+]+)\+.+ returned ([0-9]+) after ([0-9]+) usecs/\1 \2 \3/g'
```
输出结果为:
```
ci_hdrc_usb2_driver_init 0 396
```
其中,`ci_hdrc_usb2_driver_init` 是函数名,`0` 是函数返回值,`396` 是函数执行时长,三者之间用空格分隔。
该命令的具体解释如下:
- `echo '[ 7.309563] initcall ci_hdrc_usb2_driver_init+0x0/0x10 returned 0 after 396 usecs'`:用于模拟输入原始文本;
- `sed -E`:使用 sed 并开启扩展正则表达式模式;
- `'s/.*initcall ([^+]+)\+.+ returned ([0-9]+) after ([0-9]+) usecs/\1 \2 \3/g'`:使用正则表达式匹配每行中的函数名、返回值和执行时长,并将它们用空格分隔开来;
- `.*initcall`:匹配文本中任意字符,后跟一个空格和 `initcall` 字符串;
- `([^+]+)`:匹配函数名部分,中括号表示匹配其中任意一个字符,加号表示匹配前面的字符至少一次,这里的加号需要使用反斜杠转义;
- `\+.+ returned `:匹配 `+` 和 `returned` 之间的任意字符;
- `([0-9]+)`:匹配返回值部分,中括号表示匹配其中任意一个数字字符,加号表示匹配前面的字符至少一次;
- `after `:匹配 `after ` 字符串;
- `([0-9]+)`:匹配执行时长部分,同上;
- `usecs`:匹配 `usecs` 字符串;
- `/\1 \2 \3/g`:替换成三个匹配到的部分,中间用空格分隔,`g` 表示对每行文本都进行替换操作,而不是只替换第一个匹配项。
阅读全文