강좌 & 팁
1. 자동로그인을 처리 하기 위하여 다음과 같은 소스코드를 작성 하여 컴파일 한다.
소스 작성
# vi falogin.c
----------- 본문 내용 ---------------
#include <unistd.h>
int main()
{
execlp( "login", "login", "-f", "root", 0);
return 0;
}
----------- 본문 내용 ---------------
컴파일 하기
# arm-linux-gcc -o falogin falogin.c
# cp falogin /nfs/auto/.
2. 램디스크로 부팅되는 상태에서 플래쉬로 부팅되도록 바꾼다.
보드를 부팅하여 다음과 로그인 하고 ./mkflashroot 명령을 이용하여 플래쉬로 부팅 되도록 한다.
Welcome to FALinux (www.falinux.com)
Linux Kernel 2.6.21-falinux
falinux login: root
[root@falinux ~]$ ./mkflashroot
mkflashroot ver 1.1 (www.falinux.com)
wait about 20sec ...
backup app
mkdir: Cannot create directory `/tmp/': File exists
rm: unable to remove `/app/lost+found': Directory not empty
copy /bin
copy /dev
copy /etc
copy /home
copy /lib
copy /root
copy /sbin
copy /tmp
copy /usr
copy /var
mkdir ...done
restore app
please reboot system and enter EZBOOT->set
Select >> LF
: will be changed [noinitrd root=/dev/mtdblock2]
[root@falinux ~]$ reboot -f
위의 리부팅 명령어로 재부팅을 하여 부트로더로 진입한다.
EZBOOT> set
... ( 생략 ) ...
16) KCMD 1 : mem=64M
17) KCMD 2 : initrd=0xA0800000,5M root=/dev/ram ramdisk=16384
18) KCMD 3 : console=ttyPXA2,115200
19) KCMD 4 : video=ezfb:panel:2
20) KCMD 5 :
21) KCMD 6 :
L) Load default
LF) load KCMD2 root=flash
LR) load KCMD2 root=ramdisk
M) generlate Mac address
S) Save to flash
P) aPply & exit
Q) Quit
Select >> lf
...Loaded default
^^;
... ( 생략 ) ...
16) KCMD 1 : mem=64M
17) KCMD 2 : noinitrd root=/dev/mtdblock2 rootfstype=yaffs2
18) KCMD 3 : console=ttyPXA2,115200
19) KCMD 4 : video=ezfb:panel:2
20) KCMD 5 :
21) KCMD 6 :
L) Load default
LF) load KCMD2 root=flash
LR) load KCMD2 root=ramdisk
M) generlate Mac address
S) Save to flash
P) aPply & exit
Q) Quit
...write 32768 complete
...verify complete
...Saved
^^;
... ( 생략 ) ...
17) KCMD 2 : noinitrd root=/dev/mtdblock2 rootfstype=yaffs2
18) KCMD 3 : console=ttyPXA2,115200
19) KCMD 4 : video=ezfb:panel:2
20) KCMD 5 :
21) KCMD 6 :
L) Load default
LF) load KCMD2 root=flash
LR) load KCMD2 root=ramdisk
M) generlate Mac address
S) Save to flash
P) aPply & exit
Q) Quit
Select >> q
EZBOOT>
위와 같은 명령을 이용하여 부트로더에서 SET으로 진입 후 LF 명령을 이용하여 플래쉬로 부팅되도록 부트로더의 설정을 변경 한다.
생성된 falogin 바이너리파일을 /sbin 디렉토리에 복사 한다.
$ mount -t nfs -o nolock,rsize=1024,wsize=1024 [ServerIP]:/nfs /mnt/nfs
$ cp /mnt/nfs/auto/falogin /sbin/.
=================
/etc/inittab 파일에 아래와 같은 부분을 다음과 같이 수정함.
------- 수정전 ------------
#T0:12345:respawn:/sbin/getty -L ttySAC0 115200 vt100
------- 수정후 ------------
T0:12345:respawn:/sbin/getty -n -l /sbin/faautologin -L ttySAC0 115200 vt100
=================
수정이 끝나고 재부팅을 하여 자동로그인이 되는지 확인해 본다.
======================== 아래와 같이 자동 로그인이 잘 된다. ======================
Starting system logger: [ OK ]
Starting INET services: [ OK ]
[root@falinux ~]$
참고 만일 램디스크를 이용하여 자동로그인을 처리 하려면 램디스크에서 위에서 말한 부분을 바꾸어 주고 램디스크를 재작성 하면 됩니다.
Ctrl-C 먹나요?