給嵌入式linux串列埠新增密碼的一些總結

2021-08-20 08:12:21 字數 1676 閱讀 8434

要新增串列埠登入密碼就需要修改 /etc/inittab 檔案的配置 但是不同的開發板情況不一樣,有的是沒有這個檔案的,busybox會檢查/etc/inittab檔案是否存在, 如果此檔案不存在, busybox會使用預設的inittab的配置。它主要會為系統重引導,系統掛起以及init重啟動設定預設的動作。此外, 它還會為頭四個虛擬控制台(/dev/tty1到/dev/tty4)設定啟動shell的動作。如果並未建立這些裝置檔案, busybox將會報錯。 如果存在/etc/inittab檔案, busybox會予以剖析, 並將其中的命令記錄在內部的資料結構中, 以便適時執行。 busybox能

夠識別的inittab檔案格式, 在busybox套件附帶的文件中有很好的說明。

inittab裡面的內容有一定的格式,具體格式網上很多,這裡就不再細說了。

一、如果是有這個檔案 vi /etc/inittab 開啟

修改/etc/inittab檔案

把::askfirst:-/bin/sh

tty2::askfirst:-/bin/sh

等全部注掉

增加一行

::respawn:/sbin/getty -l ttys0 115200 vt100

這個ttys0是串列埠裝置的裝置檔案但是不同的系統,裝置檔名由於串列埠驅動的不同而不同,那麼如何確認自己的串列埠裝置是哪乙個呢

方法是 :

cd /dev //開啟顯示裝置檔案的資料夾 dev

ls ttys* //顯示所有前四個字母是ttys的裝置檔案

我的系統裡出現的是 ttysac0 、ttysac1、ttysac2、ttysac3、ttysac4

用來確定是哪個串列埠裝置的方法是 echo qqqqqqq > /dev/ttysac0我把上面5個裝置全試了一遍發現只有ttysac0可以列印出 qqqqqqq 說明ttysac0就是我要找的串列埠裝置檔案。

然後 我將::respawn:/sbin/getty -l ttys0 115200 vt100中的ttys0替換為 ttysac0

然後儲存退出

然後在命令列下敲入passwd

這時系統會提示你給root設定乙個密碼,設定密碼並確認密碼後

reboot重新啟動

重啟後就會需要使用者名稱跟密碼。

****** login: //root

passwd:// 輸入之前設定的密碼

但是每次退出時必須用exit命令退出終端,如果直接拔掉串列埠線,下次插上則可以直接進入系統,不需要輸入密碼。

有的文章說終端設定中流控要選擇xon/xoff,不然沒有辦法輸入使用者名稱密碼。但我嘗試了流控選擇 「無」 輸入使用者名稱和密碼也是可以進入的。

有必要提一下的是 sbin下的getty是linux下的乙個開啟和設定終端的命令,進行終端的開啟、終端初始化、設定終端。

二、如果/etc下沒有 inittab 這個檔案,busybox會使用預設的inittab的配置

也就是說預設的啟動指令碼將會被啟動,如果想要設定乙個串列埠登入密碼,需要在/etc下建立乙個inittab檔案,檔案的內容是

::sysinit:/etc/init.d/rcs //sysinit後面的路徑是系統啟動所需要的啟動指令碼,系統的不同路徑也不一樣,可以根據自己的需要進行新增

::respawn:/sbin/getty -l ttys0 115200 vt100 // ttys0根據( 一、)中的方法填寫

然後設定密碼,重啟 就ok了

嵌入式串列埠

一 使用ads1.2平台設計程式,並具有以下功能 30分 要求 在micro 2440 平台下實現,串列埠輸入字元控制蜂鳴器發聲。當串列埠傳送 a b c d 時,蜂鳴器發出不同的聲音。組合語言,c 彙編混合程式設計都可以 area xie code,readonly entry ldr r13,0...

嵌入式linux串列埠程式設計(二)

com writer.c include uart api.h int main void if set com config fd,115200,8,n 1 0 配置串列埠 dowrite fd,buff,strlen buff while strncmp buff,quit 4 close fd...

嵌入式linux使用者密碼驗證

嵌入式linux使用者登入密碼驗證 開發板啟動核心後,一般是直接按回車鍵就能直接進入檔案系統,以前一直搞不懂為什麼不需要使用者密碼 驗證,今天上網檢視了一下,原來是因為配置檔案的問題。原來一直以為使用者密碼驗證是由運用程式做的,後來,上網查了一下,原來是由檔案系統完成的,在編譯busybox的時候把...