2006. 6. 20. 17:05
tinylogin 컴파일 하기
2006. 6. 20. 17:05 in Embedded System/Embedded Linux
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 = #powerpc-linux- 48 CC = $( )gcc 49 STRIPTOOL = $( )strip << 수정 후 Makefile >> 47 = arm-linux- 48 CC = $( )gcc 49 STRIPTOOL = $( )strip ------------ = #powerpc-linux- ------------ 원래는 위와 같이 되어(powerpc를 많이 쓰나 봅니다.) 있습니다. 거기에 arm용 컴파일러로 아래와 같이 바꾸어 줍니다. ------------ = arm-linux- ------------ pwd_grp/Makefile도 수정을 해준다. -------------------------------- << 수정 전 Makefile >> 33 # = #powerpc-linux- 35 STRIPTOOL = $( )strip ---------------------------------- -------------------------------- << 수정 후 Makefile >> 33 = arm-linux- 34 CC = $( )gcc 35 STRIPTOOL = $( )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 ------------------------ 도움 주신분 : 규행아빠님. |
'Embedded System > Embedded Linux' 카테고리의 다른 글
[Embedded Tip] 타겟보드에서 NFS root부팅하기! (0) | 2006.08.30 |
---|---|
[응용] 프로그램 자동 실행 (0) | 2006.08.10 |
bash 크로스 컴파일 주의점 (0) | 2006.06.20 |
프로세스 관리 (0) | 2006.06.02 |
[본문스크랩] Linux Kernel, Embedded Linux, Real Time Linux 관련 .. (0) | 2006.05.30 |