ubuntu内核信息从串口0打印到文件

不想每次都用dmesg来看信息,我们希望把信息打印到串口,可是用没有物理串口,怎么办?

  用ubuntu上的虚拟串口。

打开ubuntu的设置,点Add添加一个serial port设备,选Output to file,如到C:\kernel.txt.

 a. 设置vmware添加serial port, 使用文件作为串口

然后,启动ubuntu。根据ubuntu serial console login文档 修改启动参数,

修改 # gedit /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT=""     //去除原来的quiet splash
GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200n8"  //添加引号内的文字
sudo update-grub
sudo reboot

c. ubuntu禁止root用户登录

先修改root密码: sudo passwd root

然后执行"su root"就可以用root登录了 

d. echo "8 4 1 7" > /proc/sys/kernel/printk 

再次重启后,只要执行这2个命令就可以:

su root

echo "8 4 1 7" > /proc/sys/kernel/printk 

执行以上4步就可以在ubuntu串口中打印信息。


2.  '\r\n'与'\n'的问题
\r 是回车,return
\n 是换行,newline
我们在平时使用电脑时,已经习惯了回车和换行一次搞定,敲一个回车键,即是回车,又是换行,但在早期的打字机上,要另起一行打字需要两个步骤,首先要发送命令"\r”将打字头复位,即回车,然后再发送命令"\n”让打字机走纸移到下一行,所以这个历史遗留问题导致了如今我们在DOS-Windows的系统里需要区分"\r\n”和“\n”,但在Unix中只有"\n”。
用UltraEdit打开文本查看,会看到换行处显示的是0x0D0A,0x0D即"\r”,0x0A即"\n”。
有时候在文本文件中出现■这样的符号,是因为没有"\r\n"连用,导致不能正确回车换行。
在C中读取文本时,"\r\n”已自动转成"\n”。
在Unix下,通常只有\r,如果是\r\n,用vi打开会看到行末有【^M】符号。















你可能感兴趣的:(Linux)