ฉันกำลังตั้งค่าเซิร์ฟเวอร์คอนโซลและฉันจำเป็นต้องกำหนดอัตราการรับส่งข้อมูลที่ถูกต้องของพอร์ตของฉัน ฉันต้องการทำสิ่งนี้จากบรรทัดคำสั่งถ้าเป็นไปได้ ไม่มีใครรู้ได้อย่างไร
ฉันกำลังตั้งค่าเซิร์ฟเวอร์คอนโซลและฉันจำเป็นต้องกำหนดอัตราการรับส่งข้อมูลที่ถูกต้องของพอร์ตของฉัน ฉันต้องการทำสิ่งนี้จากบรรทัดคำสั่งถ้าเป็นไปได้ ไม่มีใครรู้ได้อย่างไร
คำตอบ:
โปรแกรมที่คุณค้นหาเรียกว่า "setserial"
setserial
เฉพาะ Linux เท่านั้น แต่คุณสามารถใช้stty
คำสั่ง (มีอยู่ใน Unix ใดก็ได้) เพื่อตรวจสอบความเร็วและคุณสมบัติอื่น ๆ ของ tty ใด ๆ
stty
ทำงานกับอินพุตมาตรฐานดังนั้นstty < /dev/ttyXX
จะให้ข้อมูลเกี่ยวกับ tty นั้น หรือหากคุณอยู่ในสถานการณ์ที่คุณไม่สามารถตั้งค่าอินพุตมาตรฐานของstty
คุณสามารถใช้-F /dev/ttyXX
ตัวเลือก
เมื่อคุณพูดถึงคอนโซลของเซิร์ฟเวอร์และคำถามนี้ถูกแท็กด้วย linux ฉันจะถือว่าคุณกำลังเชื่อมต่อกับเซิร์ฟเวอร์ linux เซิร์ฟเวอร์ต้องได้รับการกำหนดค่าให้ใช้คอนโซลอนุกรมเพื่อให้มีสถานที่สองแห่งที่จะตรวจสอบ
การตั้งค่าเคอร์เนลเกี่ยวข้องกับการเพิ่มพารามิเตอร์ "คอนโซล" ในบรรทัดคำสั่งของเคอร์เนลของคุณ ตัวอย่างเช่นการเพิ่ม "console = ttyS0,9600" บอกให้เคอร์เนลส่งข้อความไปยังพอร์ตอนุกรมแรก (/ dev / ttyS0, COM1 ในเงื่อนไข DOS / Windows) ที่ 9600 baud คุณสามารถเพิ่มสิ่งนี้ลงในบรรทัดคำสั่งผ่านการกำหนดค่าบูตโหลดเดอร์ของคุณ หากใช้ด้วงนี้มักจะเป็นไฟล์ชื่อ /boot/grub/grub.conf โปรดทราบว่าคุณสามารถมีหลายพารามิเตอร์คอนโซลสำหรับแป้นพิมพ์ / คอนโซลวิดีโอแบบดั้งเดิม (tty0) เช่นเดียวกับอนุกรม (/ dev / ttyS0) สำหรับ exaxmple: "console = tty0 console = ttyS0,9600"
ในการให้พรอมต์เข้าสู่ระบบผ่านทางอนุกรมคุณจะต้องแก้ไข / etc / inittab และเพิ่ม / แก้ไขบรรทัดดังต่อไปนี้ s0: 12345: respawn: / sbin / agetty 9600 ttyS0 vt100 บรรทัดนี้บอกให้โปรแกรม agetty วางไข่พร้อมต์การล็อกอินบน / dev / ttyS0 ที่ 9600 baud
หมายเหตุปกติแล้วคุณจะต้องการจับคู่พอร์ตอนุกรมและอัตรารับส่งข้อมูลระหว่างการตั้งค่าเคอร์เนลและ agetty โดยการตรวจสอบการกำหนดค่าข้างต้นคุณควรจะสามารถกำหนดอัตรา baud ของเซิร์ฟเวอร์ได้
stty -F /dev/ttyXX