위성 STB 인 TD9000 을 나 나름대로 이해한 것들을 정리했다. 기존의 ST와는 달리 최종적으로 오브젝트 파일이 하나가 아니기 때문에 각각의 오브젝트 파일이 어디에 있고, 어떤 역할을 하며, 어떻게 만드는 지 알아야 한다.
여기서는 세부적인 소스코드를 보기전에 각 디렉토리의 경로에 대해서 알아보도록 하겠다.

Selevision Makefile 분석

먼저 i.sh 실행하고 나서 Selevision 이라는 오브젝트 파일이 어떻게 나오는지 컴파일 시의 메세지를 통해 알아보자!
다음은 가장 마지막에 앞에서 컴파일한 오브젝트 파일을 각 라이브러리들과 참조해서 최종적인 Selevision 이라는 실행파일을 만드는 메시지이다.

/DATA/HardHat/devkit/ppc/405/bin/ppc_405-g++ -Wl,-rpath,/DATA/Green/Working/QTE/qte-pallas/lib -o Selevision obj/main.o 
obj/main_widget.o obj/login_profile.o obj/main_win.o obj/window_mode.o obj/main_win_login_user.o obj/main_win_login_password.o 
obj/main_win_service.o obj/main_win_main_menu.o obj/program_guide.o obj/program_guide_detail.o obj/program_guide_search.o obj/recording.o 
obj/recorded_content.o obj/organizing_channels.o obj/organizing_favorites.o obj/system_setup.o obj/main_win_ser_tvservices.o 
obj/main_win_ser_favlist.o obj/main_win_ser_chinfo.o obj/system_chsearch_pidbox.o obj/system_url_input.o obj/system_chsearching.o 
obj/system_util.o obj/system_network.o obj/system_sat_tpbox.o obj/system_ci.o obj/system_common.o obj/mp3_list.o obj/mp3_player.o 
obj/commercial_wnd.o obj/volume_wnd.o obj/fax_answer.o obj/fax_viewer.o obj/teletext_win.o obj/main_utility.o obj/xvr_win.o 
obj/moc_main_widget.o obj/moc_login_profile.o obj/moc_main_win.o obj/moc_main_win_service.o obj/moc_main_win_main_menu.o 
obj/moc_program_guide.o obj/moc_program_guide_search.o obj/moc_program_guide_detail.o obj/moc_recording.o obj/moc_recorded_content.o 
obj/moc_main_win_ser_tvservices.o obj/moc_main_win_ser_chinfo.o obj/moc_system_url_input.o obj/moc_system_chsearching.o 
obj/moc_organizing_channels.o obj/moc_organizing_favorites.o obj/moc_system_setup.o obj/moc_system_network.o obj/moc_system_ci.o 
obj/moc_mp3_player.o obj/moc_commercial_wnd.o obj/moc_volume_wnd.o obj/moc_fax_answer.oobj/moc_fax_viewer.o obj/moc_teletext_win.o 
obj/moc_main_utility.o  -L/DATA/Green/Working/QTE/qte-pallas/lib -L/DATA/HardHat/devkit/ppc/405/target_td9000/DTVRo/lib -lSelevision_common
-lSCommon -lDVB -lK_Base -lTUPVRFS -lModem -lLanguage -lqte

주의깊게 봐야할 부분은 마지막 부분이다. 참조하는 라이브러리들은 디바이스와 관련된 것들이다.

번호 옵션 소스경로
1 -L/DATA/Green/Working/QTE/qte-pallas/lib /DATA/Green/Working/QTE/qte-3.2.1-pallas-small-unicodeTBL
2 -L/DATA/HardHat/devkit/ppc/405/target_td9000/DTVRo/lib 단순히 라이브러리를 모아둔 곳
3 -lSelevision_common /DATA/Green/Working/SELEVISION/Selevision/Selevision_common
4 -lSCommon /DATA/Red/Working/SCommonLib
5 -lDVB /DATA/Green/Working/TD9000/libDVB
6 -lK_Base /DATA/Red/Working/KLib-1.1.0
7 -lTUPVRFS /DATA/Green/Working/TUsermodePVRFS
8 -lModem /DATA/Green/Working/TD9000/libModem
9 -lLanguage /DATA/Green/Working/TD9000/libLanguage
10 -lqte /DATA/Green/Working/QTE/qte-pallas-small-unicodeTBL
  1. -L : 라이브러리 경로를 등록한다.
  2. -l : 라이브러리 이름을 지정한다.
번호 설명
1 QTE 라이브러리가 있는 디렉토리 지정
2 NFS 부팅시 사용되는 디렉토리로서, 모든 라이브러리들이 들어있으며, make install 하면 이곳으로 자동으로 복사된다
3 해당 디렉토리에서 i.sh 하면 자동으로 복사된다
4 Red 디렉토리에 있지만, 컴파일러만 크로스 컴파일러를 사용하도록 되어있다
5 해당 디렉토리에서 make; make install 하면 자동으로 복사된다
6 해당 디렉토리에서 make install 시에 컴파일이 된다
7 튜너와 관련한 소스 프로그램
8 모뎀과 관련한 소스 프로그램
9 언어와 관련한 소스 포르그램
10 QTE 라이브러리

그 밖의 라이브러리

/DATA/HardHat/devkit/ppc/405/target_td9000/DTVRo/lib 아래는 위에서 언급한 라이브러리들 말고도 다른 라이브러리들이 있다.

번호 이름 소스경로
11 libCI.so /DATA/Green/Working/TD9000/libDVB-1.1.6/CAM
12 libmpegdemux.so /DATA/Red/Working/HXDemux
13 libnvram_edit.so /DATA/Green/Working/TD9000/nvram

Selevision 생성시에는 링크를 안하지만, NFS 마운트 디렉토리에는 있는 것을 보면, 필요한 것 같다.

  • computer/celrun/td9000_의_이해.txt
  • Last modified: 4 years ago
  • by likewind