實現ARM——Linux的自動登錄


    在使用Linux系統嵌入式開發時,往往需要設備繞過Linux的登錄系統使其自動啟動,比如我們常用的SSH客戶端等。網上確實有很多方法,不知道是因為我們的ARM9板子是私人訂制的緣故還是什么原因,試了很多方法都不行,只有一種方法可行,特此記錄。

一、更新mingetty:

  1、到網站http://www.filewatcher.com/m/mingetty-1.07.tar.gz.13435-html下載mingetty-1.07.tar.gz;

  2、解壓:tar -zxvf mingetty-1.07.tar.gz,進入解壓后的目錄;

  3、修改mingetty.c中的代碼,僅需兩步:

  (1)第352行的 char *logname,*s  更改為 char *logname = "root",*s;

  (2)把第409-415行注釋掉,如下代碼:

  /* if (autologin) {

    do_prompt(0);

    printf("login:%s(automatic login)\n",autologin);

    logname = autologin;

   }else

   while((logname = get_logname()) == 0)

   /* do nothing */  /* ; */

   4、修改 makefile:

   CC = arm-none-lonux-gnueabi-gcc;(此處應是交叉編譯的安裝路徑)

  5、編譯生成mingetty:# make;

  6、更新mingetty程序拷貝到根文件系統的 /sbin 目錄下,mingetty的源碼就更改完成了。

二、更新login:

  1、到網站:http://www.filewatcher.com/_/?q=util-linux-2.13-pre7.tar.bz2下載源代碼;

  2、解壓:tar -jxvf util-linux-2.13-pre7.tar.bz2,解壓后的文件夾為 util-linux-2.13-pre7,進入此目錄,其中login的源碼目錄為 util-linux-2.13-pre7/login-utils,然而 login-utils 文件中不存在make 文件,因此需要自己編寫命令生成 login;

  3、修改login.c中的代碼:

  (1)把第344行的 passwd_req = 1 更改為 passwd_req = 0;

  (2)在文件中添加 locale.h 頭文件: #include <locale.h>;

  4、編譯生成 login :

  # arm-none-linux-gnueabi-gcc -o login login.c  ../lib/setproctitle.c checktty.c  -Wall  -lcrypt  -I  ../inlucde/ ;  

  5、更新 login :

  將生成的 login 程序拷貝到根文件系統的 /bin 目錄下。

三、修改 inittab 文件:

  將根文件系統 /etc/inittab 文件中的最后的登錄語句 #S2:2345:respawn:/sbin/getty 115200 ttyS2 改為 S2:2345:respawn:/sbin/mingetty ttyS2;

  將修改后的根文件系統重新下載到系統中,系統啟動時就會直接登錄,不需要輸入用戶名和密碼了。

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM