您的位置:首页 > 其它

关于 printk函数 与 控制台 以及 kernel.printk 的关系 详解

2015-04-01 15:14 661 查看
 


今儿在调查关于 kernel.printk 功能时,发现网上很多理论讲的不清楚,甚至讲错了;

所以 自己 做了个实验来 验证 kernel.printk 的功能;

① kernel.printk = 4 4 1 7(一般默认的情况);

加载驱动模块时,显示信息如下:(会发现insmod 时没有信息打印)

root@QEMU(MPC):/#
root@QEMU(MPC):/# lsmod
Module                  Size  Used by
opwfpga                33808  0
fpga                   78104  0
interrupt              18216  1 fpga
t4240                  44372  0
pld                    18124  0
phy                    13698  0
flash                  13720  0
e6500                  11760  0
dsfpga                 26885  0
clkfpga                97367  1 fpga
bprfpga                22217  0
root@QEMU(MPC):/#
root@QEMU(MPC):/# insmod hello_drv.ko
root@QEMU(MPC):/#
root@QEMU(MPC):/# lsmod
Module                  Size  Used by
<strong><span style="color:#33cc00;">hello_drv               1280  0
</span></strong>opwfpga                33808  0
fpga                   78104  0
interrupt              18216  1 fpga
t4240                  44372  0
pld                    18124  0
phy                    13698  0
flash                  13720  0
e6500                  11760  0
dsfpga                 26885  0
clkfpga                97367  1 fpga
bprfpga                22217  0
root@QEMU(MPC):/#
root@QEMU(MPC):/# rmmod hello_drv
root@QEMU(MPC):/#


 

② kernel.printk = 7 4 1 7(往sysctl.conf 中加入 该值并保存,之后执行命令 sysctl -p )

执行命令sysctl -p命令以及加载驱动模块,显示信息如下 :(会发现insmod 时有信息打印)

root@QEMU(MPC):/# sysctl -p
kernel.hostname = QEMU(MPC)
kernel.sysrq = 1
kernel.core_uses_pid = 1
kernel.panic_on_oops = 1
error: "kernel.unknown_nmi_panic" is an unknown key
kernel.core_pattern = /msyssrv/log/core.%p.%e.%s
kernel.shmmax = 1000000000
kernel.shmall = 2097152
kernel.msgmni = 10000
kernel.msgmax = 81920
kernel.msgmnb = 16777216
kernel.sem = 6000 32000 320 1280
fs.mqueue.queues_max = 5120
fs.mqueue.msgsize_max = 481280
fs.mqueue.msg_max = 5632
net.ipv4.ip_default_ttl = 255
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.arp_filter = 1
net.ipv4.conf.all.arp_filter = 1
net.ipv4.tcp_keepalive_time = 30
net.ipv4.tcp_keepalive_probes = 2
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_wmem = 4096 131070 4194304
net.ipv4.tcp_rmem = 4096 131070 4194304
net.ipv4.neigh.default.unres_qlen = 100
net.ipv6.conf.default.hop_limit = 255
net.ipv6.neigh.default.unres_qlen = 100
net.core.rmem_max = 1572864
net.core.wmem_max = 1572864
net.core.rmem_default = 262142
net.core.wmem_default = 262142
error: "net.sctp.addip_enable" is an unknown key
vm.overcommit_ratio = 99
vm.overcommit_memory = 2
kernel.printk = 7 4 1 7
root@QEMU(MPC):/#
root@QEMU(MPC):/# lsmod
Module                  Size  Used by
opwfpga                33808  0
fpga                   78104  0
interrupt              18216  1 fpga
t4240                  44372  0
pld                    18124  0
phy                    13698  0
flash                  13720  0
e6500                  11760  0
dsfpga                 26885  0
clkfpga                97367  1 fpga
bprfpga                22217  0
root@QEMU(MPC):/#
root@QEMU(MPC):/# insmod hello_drv.ko
Hello module init
root@QEMU(MPC):/# lsmod
Module                  Size  Used by
hello_drv               1280  0
opwfpga                33808  0
fpga                   78104  0
interrupt              18216  1 fpga
t4240                  44372  0
pld                    18124  0
phy                    13698  0
flash                  13720  0
e6500                  11760  0
dsfpga                 26885  0
clkfpga                97367  1 fpga
bprfpga                22217  0
root@QEMU(MPC):/# rmmod hello_drv
Hello module exit
root@QEMU(MPC):/#
root@QEMU(MPC):/#


 

③kernel.printk = 7 4 1 6(往sysctl.conf 中加入 该值并保存,之后执行命令 sysctl -p )

 执行命令sysctl -p命令以及加载驱动模块,显示信息如下 :(会发现insmod 时有信息打印)

root@QEMU(MPC):/#
root@QEMU(MPC):/# sysctl -p
kernel.hostname = QEMU(MPC)
kernel.sysrq = 1
kernel.core_uses_pid = 1
kernel.panic_on_oops = 1
error: "kernel.unknown_nmi_panic" is an unknown key
kernel.core_pattern = /msyssrv/log/core.%p.%e.%s
kernel.shmmax = 1000000000
kernel.shmall = 2097152
kernel.msgmni = 10000
kernel.msgmax = 81920
kernel.msgmnb = 16777216
kernel.sem = 6000 32000 320 1280
fs.mqueue.queues_max = 5120
fs.mqueue.msgsize_max = 481280
fs.mqueue.msg_max = 5632
net.ipv4.ip_default_ttl = 255
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.arp_filter = 1
net.ipv4.conf.all.arp_filter = 1
net.ipv4.tcp_keepalive_time = 30
net.ipv4.tcp_keepalive_probes = 2
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_wmem = 4096 131070 4194304
net.ipv4.tcp_rmem = 4096 131070 4194304
net.ipv4.neigh.default.unres_qlen = 100
net.ipv6.conf.default.hop_limit = 255
net.ipv6.neigh.default.unres_qlen = 100
net.core.rmem_max = 1572864
net.core.wmem_max = 1572864
net.core.rmem_default = 262142
net.core.wmem_default = 262142
error: "net.sctp.addip_enable" is an unknown key
vm.overcommit_ratio = 99
vm.overcommit_memory = 2
kernel.printk = 7 4 1 6
root@QEMU(MPC):/#
root@QEMU(MPC):/# lsmod
Module                  Size  Used by
opwfpga                33808  0
fpga                   78104  0
interrupt              18216  1 fpga
t4240                  44372  0
pld                    18124  0
phy                    13698  0
flash                  13720  0
e6500                  11760  0
dsfpga                 26885  0
clkfpga                97367  1 fpga
bprfpga                22217  0
root@QEMU(MPC):/# insmod hello_drv.ko
Hello module init
root@QEMU(MPC):/#
root@QEMU(MPC):/# lsmod
Module                  Size  Used by
hello_drv               1280  0
opwfpga                33808  0
fpga                   78104  0
interrupt              18216  1 fpga
t4240                  44372  0
pld                    18124  0
phy                    13698  0
flash                  13720  0
e6500                  11760  0
dsfpga                 26885  0
clkfpga                97367  1 fpga
bprfpga                22217  0
root@QEMU(MPC):/# rmmod hello_drv
Hello module exit
root@QEMU(MPC):/#


总结: 所以当 kernel.printk 的第一个值(控制台打印基本信息) 大于 最后一个值(缺省时 printk 打印级别 )

           信息才会显现到控制台;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐