在嵌入式Linux上構建2個串列埠控制台

2021-06-12 21:10:36 字數 1084 閱讀 4686

當前的很多嵌入式系統很多使用2個串列埠來進行通訊,乙個串列埠常常作為命令列串列埠,給使用者使用。而另乙個串列埠可以用來通訊或者作為除錯串列埠使用。

本文以兩個串列埠在linux下 乙個作為除錯串列埠,另乙個作為使用者命令列串列埠為例說明。首先,ttys0作為除錯串列埠,而ttys1作為命令列串列埠使用。等系統啟動後,命令列串列埠對使用者是可見的,使用者可以操作。而除錯串列埠只給開發人員使用。

在系統啟動時,傳遞給核心引數時,首先增加console=ttys0 115200n81,至於還需要其他什麼引數,就不多說了。這樣,linux系統會把ttys0作為預設串列埠控制台使用。

接下來要修改/etc/inittab中的內容了,在該檔案注釋有#ttys0::respawn地方增加2行,ttys1::respawn:/sbin/getty -l ttys1 115200 vt100,ttys1::respawn:/sbin/yourprogramm -l ttys1 115200 vt100,這樣系統啟動後會在登陸系統後在串列埠1ttys1上直接執行使用者的程式/sbin/yourprogramm。

如果不需要在串列埠1上使用linux的login,則可以使用乙個-n -l引數,即ttys1::respawn:/sbin/getty -l ttys1 115200 vt100 -n -l /sbin/yourprogramm即可,這樣在啟動系統後直接執行使用者程式,而沒有了busybox的login命令了,而串列埠0上還是有login命令的。

執行級別設定錯了,init 6是重新啟動……,如果設定成6,系統會反覆重啟。進入單使用者可以解決,首先,在grub時,用方向鍵選擇你的linux系統,按下鍵盤上的e,然後用方向鍵選擇kernel那一行,在按下e,輸入1(和前面的內容間用空格分開),然後回車,然後按b鍵,進入單使用者後,修改/etc/inittab中啟動級別為3或者5,重新啟動即可  

# 0 - 停機(千萬不能把initdefault 設定為0 )

# 1 - 單使用者模式

# 2 - 多使用者,沒有 nfs

# 3 - 完全多使用者模式(標準的執行級)

# 4 - 沒有用到

# 5 - x11 (xwindow)

# 6 - 重新啟動 (千萬不要把initdefault 設定為6 )

嵌入式linux在DOM上的構建過程遇到的問題?

核心編譯方面問題 主機環境說明 系統用的是fedora的 核心版本是2.6.24 自己公升過級 gcc版本3.4.3 目標板要用的核心版本是2.6.2 在編譯過程出現 arch i386 kernel process.c 497 error conflicting types for switch ...

用QEMU構建嵌入式LINUX系統

table of contents qemu 從源頭建造 arm工具鏈 linux核心 構建檔案系統 通過nfs使用根檔案系統 配置qemu tap網路 建立執行指令碼 推薦閱讀 在centos上進行虛擬化 qemu xen kvm libvirt ovirt qemu是一套由法布里斯 貝拉 fab...

2,嵌入式Linux之GPIO

2,嵌入式linux之gpio 1,點燈 1 看懂你所用的開發板的原理圖 產看led和gpio管腳是怎麼接線的如圖 2 通過s3c2440晶元控制暫存器配置gpf4 gpf5 gpf6為輸入引腳 來點亮 上圖的led燈 檢視s3c2440晶元手冊 3 配置gpio 使得gpf4 gpf5 gpf6 ...