노무현 대통령 배너


2006. 6. 20. 17:05

tinylogin 컴파일 하기

tinylogin 컴파일 하기.
글쓴이 : 지노 (2001년 11월 21일 오후 08:57) 읽은수: 1,904 [ 체험수기 인쇄용 페이지 ]
tinylogin 버전은 tinylogin-0.80 버전입니다.
root로 작업을 합니다.
우선 tinylogin을 가져와야 합니다. tinylogin은
http://tinylogin.lineo.com/ 에서
최신 버전을 구하 실 수 있습니다.
다운로드한 tinylogin-0.80.tar.gz 의 압축을 풉니다.
# tar xvfz tinylogin-0.80.tar.gz
압축을 풀면 tinylogin-0.80 디렉토리가 생기게 됩니다.
# cd tinylogin-0.80
1. 압축을 해제한 디렉토리로 이동을 합니다.
우선 BusyBox와 마찬가지로 Config.h 파일을 열어서 자신이 추가해 주고 싶은 프로
그램을 추가해준다.
추가해주는 것은 단지 주석만 제거하면 된다.
우선 저는 이 파일은 건들지 않았습니다. ^^; (기본이 저아..)
2. 그다음은 Makefile의 수정입니다.
<< 수정 후 Makefile >>
47 CROSS = #powerpc-linux-
48 CC = $(CROSS)gcc
49 STRIPTOOL = $(CROSS)strip
<< 수정 후 Makefile >>
47 CROSS = arm-linux-
48 CC = $(CROSS)gcc
49 STRIPTOOL = $(CROSS)strip
------------
CROSS = #powerpc-linux-
------------
원래는 위와 같이 되어(powerpc를 많이 쓰나 봅니다.) 있습니다. 거기에 arm용 cross
컴파일러로 아래와 같이 바꾸어 줍니다.
------------
CROSS = arm-linux-
------------
pwd_grp/Makefile도 수정을 해준다.
--------------------------------
<< 수정 전 Makefile >>
33 #CROSS = #powerpc-linux-
35 STRIPTOOL = $(CROSS)strip
----------------------------------
--------------------------------
<< 수정 후 Makefile >>
33 CROSS = arm-linux-
34 CC = $(CROSS)gcc
35 STRIPTOOL = $(CROSS)strip
----------------------------------
3. make 수행입니다.
그러나 무턱대고 그냥 make를 실행시키면 컴파일이 잘됩니다.
# make
를 수행하면 에러없이 컴파일이 되는 것을 알 수 있다.
컴파일이 제대로 수행되었을때 다음과 같은 메시지를 맨 마지막 부분에서 확인 할 수
있다.
------------------------------------------------------
arm-linux-gcc -Wall -Os -fomit-frame-pointer -D_GNU_SOURCE -DTLG_VER=0.80 -
DTLG_BT=2001.11.21-11:28+0000 -c -o passwd.o passwd.c
arm-linux-gcc -Wall -Os -fomit-frame-pointer -D_GNU_SOURCE -DTLG_VER=0.80 -
DTLG_BT=2001.11.21-11:28+0000 -c -o shadow.o shadow.c
arm-linux-gcc -s -Wl,-warn-common -o tinylogin tinylogin.o env.o obscure.o
pwd2spwd.o setupenv.o shell.o utmp.o utility.o usage.o addgroup.o adduser.o
deluser.o getty.o login.o passwd.o shadow.o -lcrypt pwd_grp/libpwd.a
arm-linux-strip --remove-section=.note --remove-section=.comment tinylogin
./tinylogin.mkll | sort >tinylogin.links
------------------------------------------------------
이렇게 해서 컴파일이 제대로 수행이 되면 컴파일한 바이너리들을 설치 하면 된다.
4. make install
INSTALL파일에서는 단순히 make install을 수행하라고 되어있다.
이렇게 하지 말고 자신이 원하는 곳에 busybox에 관련된 파일을 만들려면
그 후에 다음과 같이 make install을 수행하자.
# make install
그러면 현재 디렉토리 아래에 _install디렉토리가 생기면서 tinylogin에 관련된 파일
들이 설치 될 것이다.
이렇게 설치 한것을 자신이 사용하려는 임베디드 장비의 root파일 시스템을 만들면 된
다.
너무 간단한가?? 크크. 이상 삽질기였슴돠..
<< 참고 사항 >>
만약 Config.h 파일에서
#define TLG_SULOGIN
부분을 활성화 하여 su를 사용하려면,
만들어진 tinylogin의 모드를 변경해 주어야 한다.
모든 만들어 진 것은 _intall디렉에 위치한다. 즉, 이 디렉토리에 있는것만 root이미
지로 만들면 될 것이다.
install 디렉의 bin디렉토리의 내용을 보자.
<< 바꾸기 전 >>
--------------------
tinylogin-0.80/_install/bin# ls -al
drwxr-sr-x 2 root jhpark 4096 11월 21 20:31 .
drwxr-sr-x 5 root jhpark 4096 11월 21 20:31 ..
lrwxrwxrwx 1 root jhpark 9 11월 21 20:31 addgroup -> tinylogin
lrwxrwxrwx 1 root jhpark 9 11월 21 20:31 adduser -> tinylogin
lrwxrwxrwx 1 root jhpark 9 11월 21 20:31 delgroup -> tinylogin
lrwxrwxrwx 1 root jhpark 9 11월 21 20:31 deluser -> tinylogin
lrwxrwxrwx 1 root jhpark 9 11월 21 20:31 login -> tinylogin
lrwxrwxrwx 1 root jhpark 9 11월 21 20:31 su -> tinylogin
-rwxr-xr-x 1 root jhpark 37884 11월 21 20:31 tinylogin
------------------------
# chmod u+s tinylogin 또는
# chmod 4755 tinylogin
를 사용하여 setuid비트를 만들어 주어야 한다.
<< 바꾼 후 >>
--------------------
tinylogin-0.80/_install/bin# ls -al
drwxr-sr-x 2 root jhpark 4096 11월 21 20:31 .
drwxr-sr-x 5 root jhpark 4096 11월 21 20:31 ..
lrwxrwxrwx 1 root jhpark 9 11월 21 20:31 addgroup -> tinylogin
lrwxrwxrwx 1 root jhpark 9 11월 21 20:31 adduser -> tinylogin
lrwxrwxrwx 1 root jhpark 9 11월 21 20:31 delgroup -> tinylogin
lrwxrwxrwx 1 root jhpark 9 11월 21 20:31 deluser -> tinylogin
lrwxrwxrwx 1 root jhpark 9 11월 21 20:31 login -> tinylogin
lrwxrwxrwx 1 root jhpark 9 11월 21 20:31 su -> tinylogin
-rwsr-xr-x 1 root jhpark 37884 11월 21 20:31 tinylogin
------------------------

도움 주신분 : 규행아빠님.