歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> VMware下CDlinux的串口使用

VMware下CDlinux的串口使用

日期:2017/2/28 16:15:35   编辑:Linux教程

因為想用cdlinux做嵌入式,所以一直想搞定串口維護的問題,之前走了一些彎路,
現在終於搞定了^_^
好像虛擬機的串口只能是com1的(也可能是cdlinux的限制,不確定)
我的本本沒有物理串口。需要使用虛擬串口。
有2個辦法

1.通過vpsm虛擬串口
開始使用vpsm軟件虛擬出com4,對應到tcp端口
VMware的串口選擇com4
使用crt登錄到本機的6020,顯示連接成功
運行echo hi >ttyS3
報錯。說明串口虛擬有問題
折騰了n久,後來
嘗試echo hi > ttyS0 成功
說明雖然虛擬的是com4,但是在CDlinux中還是com1
Cdlinux中有0~3三個串口設備,但是只有ttyS0和ttyS1可以寫入,ttyS2,ttyS3報錯,原因不明

2.改用name pipe proxy軟件實現
Vmare的串口選擇\\.\pipe\com_1。虛擬com1(這個命名管道即使叫com2,實際還是ttyS0)
Named pipe proxy 選擇吧\\.\pipe\com1映射到1500
使用crt登錄到本機的1500,顯示連接成功
Echo hi >/dev/ttyS0
Crt上顯示hi,說明連接成功
運行getty –L 9600 ttyS0 vt100
Crt上出現登錄頁面
登錄也ok

下面就是通過修改inttab可以默認支持串口登錄
Mount /dev/sda1 /media/sda1
Cd /media/sda1
Mkdir init
Mount –o loop initrd /media/sda1/init
Cp –r init init1 #這個init目錄是只讀的,復制一下就可寫了
Cd init1
修改inittab
增加ttyS0::respawn:/sbin/getty –L 9600 ttyS0 vt100
再重新mksquashfs init1 init.md
在復制到啟動目錄,覆蓋原來的initrd
Cp init.md /media/sda1/CDlinux/initrd

如果要把啟動選擇頁面輸出到串口就比較簡單了

直接改/media/sda1/boor/grub/menu.lst就行了

添加如下行:
serial --unit=0 --speed=9600 --word=8 --parity=no --stop=1
terminal --timeout=10 serial console
  grub引導過程中, 會將輸出同時發送到終端屏幕和串口. grub引導過程中將在終端和連接到串口的超級終端上提示Press any key to continue, 每秒鐘提示一次, 共10次, 可修改menu.lst文件terminal行中的--timeout=10改變提示次數, 在這一段時間內, 可以在終端的鍵盤, 或者連接到串口的超級終端中按任意鍵進入grub選擇菜單. 如果10秒內沒有在終端和連接串口的超級終端上按任意鍵, 則grub的選擇菜單將出現在連接串口的超級終端上, 如果希望默認情況下, grub選擇菜單出現在終端上, 則可修改menu.lst將serial console修改為console serial.

將kernel輸出信息輸出到串口

  修改kernel行, 在該行後增加增加
QUOTE:

console=ttyS0,9600n8 console=tty0

Copyright © Linux教程網 All Rights Reserved