흥미있는 뉴스2009. 2. 3. 18:15
Posted by 삼스
기타/DTV System2009. 2. 3. 11:14
Posted by 삼스
전세계 DAB앙상블 구성 정보를 볼수 있는곳~!
http://www.wohnort.demon.co.uk/DAB/ 

Posted by 삼스
Posted by 삼스
Linux2009. 2. 2. 17:43
위 기술한 라이브러리들의 license정보 정리한 문서
Posted by 삼스
Linux2009. 2. 2. 17:00
libfreetype-license.txt -- Freetype 2 글꼴 엔진

FreeType 2 글꼴 엔진에는 저작권이 부과되며 소프트웨어 라이센스가 없으면 합법적으로 사용할 수 없습니다.
본 프로젝트를 더 많은 개발자가 사용할 수 있도록 본 소프트웨어를 두 가지 상호 배타적인 오픈 소스 라이센스
에 따라 배포합니다.
이것은 *사용자*가 아래에 설명된 두 가지 라이센스 중 *하나*를 선택한 후 프로젝트나 제품에서 FreeType 2를
사용할 때 해당 라이센스의 모든 조항과 조건을 따라야 한다는 의미입니다.

◆ 아래에 첨부된 FreeType 라이센스는, 제품 설명서에 FreeType Project를 명시적으로 언급하도록 지시하는
광고 조항이 *있는* 원본 BSD 라이센스라고 할 수 있습니다. 자세한 내용은 라이센스 파일을 참조하시기 바
랍니다. 이 라이센스는 GNU General Public License를 사용하지 않는 제품에 적합합니다.

◆ 이미 GPL을 사용하고 있는 프로그램을 위한 GNU General Public License 버전 2 역시 아래에 첨부되어 있
습니다(후속 버전이 사용될 수도 있음). FTL은 광고 조항 때문에 GPL과 호환되지 않습니다.
기여를 받은 PCF 드라이버는 X Window System의 라이센스와 유사한 라이센스로 제공됩니다. 이 라이센스는
위의 두 가지 라이센스와 호환됩니다(src/pcf/readme 파일 참조).

FreeType Project 라이센스
2002년 4월 11일
Copyright 1996-2002
David Turner, Robert Wilhelm, Werner Lemberg

소개

FreeType Project는 몇 가지 아카이브 패키지와 함께 배포됩니다. 이 중 일부는 FreeType 글꼴 엔진과 함께
FreeType Project를 사용하거나 FreeType Project와 관련된 다양한 툴과 기여 프로그램을 포함하고 있습니다.
본 라이센스는 그와 같은 패키지에서 발견되는 모든 파일에 적용되며 해당 파일이 포함한 고유의 명시적 라이
센스의 영향을 받지 않습니다. 따라서 FreeType 글꼴 엔진, 테스트 프로그램, 설명서 및 makefile에는 최소한 본
라이센스가 적용됩니다.

본 라이센스는 상업적 제품과 프리웨어 제품의 무료 포함 및 사용을 동일하게 권장하는 BSD, Artistic 및
IJG(Independent JPEG Group) 라이센스를 바탕으로 합니다. 따라서 본 라이센스의 요점은 다음과 같습니다.

◆ 제작자는 본 소프트웨어의 작동에 대해 보장하지 않습니다. 하지만 모든 종류의 버그 보고에는 관심이 있
습니다. (`있는 그대로' 배포)
◆ 본 소프트웨어를 무료로 그 일부 또는 전체를 원하는 방식으로 사용할 수 있습니다. (`사용료 없음')
◆ 본 소프트웨어를 직접 작성했다고 주장해야 할 필요가 없습니다. 프로그램에 본 소프트웨어를 사용하거나
그 일부를 사용하는 경우 문서 안 어느 부분에든 FreeType 코드를 사용했다는 공지를 해야 합니다. (`크레딧')
상업적 제품에서 본 소프트웨어를 수정하거나 수정하지 않은 상태로 포함하는 것을 특별히 허용하고 권장합니다.
FreeType Project와 관련된 모든 보증을 부인하며 FreeType Project와 관련된 어떠한 책임도 지지 않습니다.
마지막으로 본 라이센스를 준수하여 사용한다는 크레딧/부인 고지 사항의 선호하는 형태를 궁금해 하시는 분
들을 위해 다음 텍스트를 제공하오니 참조해 주시기 바랍니다.

"본 소프트웨어의 일부분은 copyright © 1996-2002 The FreeType Project(www.freetype.org)에 기반합니다.
All rights reserved."

법률 용어

1. 정의
본 라이센스 전체에서 `패키지', `FreeType Project' 및 `FreeType 아카이브'는 제작자(David Turner, Robert
Wilhelm 및 Werner Lemberg)가 알파, 베타 또는 최종 릴리스라는 이름을 지정하여 `FreeType Project'로 배포
한 원본 파일 집합을 나타냅니다.
`사용자'는 프로젝트를 사용하는 정식 사용자 또는 사람을 나타내며 여기서 '사용'이란 프로젝트 소스 코드의 컴
파일과 '프로그램' 또는 '실행 파일' 형태로 링크하는 행위를 포함하는 일반 용어입니다.
본 프로그램은 `FreeType 엔진을 사용하는 프로그램'으로 불립니다.
본 라이센스는 원본 아카이브에 배포된 수정되지 않은 원본 형태의 파일에 별도로 언급되어 있지 않는 한 모든
소스 코드, 바이너리 및 문서를 비롯한 원본 FreeType Project에 배포된 모든 파일에 적용됩니다.
특정 파일이 본 라이센스의 적용을 받는지 여부를 확신할 수 없다면 제작자에게 문의하여 확인하십시오.
FreeType Project는 copyright (C) 1996-2000 by David Turner, Robert Wilhelm & Werner Lemberg에 기반합니
다. 아래 지정된 내용을 제외한 모든 권한을 보유합니다(All Rights Reserved).
2. 보증 거부
FREETYPE PROJECT는 상품성 및 특정 목적에 대한 적합성 보증을 포함하여(이에 제한되지 않음) 명시적이거
나 묵시적인 어떤 형태의 보증도 없이 `있는 그대로' 제공됩니다. 원저작자나 저작권 소유자는 FREETYPE
PROJECT의 사용이나 사용할 수 없음으로 인한 어떠한 손해에 대해서도 책임을 지지 않습니다.
3. 재배포
본 라이센스는 FreeType Project(소스 코드와 객체 코드 형태 모두 포함)와 파생물에 대한 사용, 실행, 수행, 컴파
일, 표시, 복사, 파생물 만들기, 배포 및 하위 라이센스 부여를 할 수 있으며, 다음 조건을 전제로 여기서 부여하
는 권한의 일부 또는 전부를 다른 사용자가 시행하는 권리를 부여할 수 있는 전 세계적으로 통용되고 무료이며
영구적이고 취소할 수 없는 권한과 라이센스를 부여합니다.
◆ 소스 코드 재배포에서 본 라이센스 파일(`FTL.TXT')을 변경하지 않은 상태로 유지해야 합니다. 원본 파일에
대한 모든 추가, 삭제 또는 변경은 함께 제공되는 문서에 명시되어야 합니다. 소스 파일의 모든 사본에 변경
되지 않은 원본 파일의 저작권 고지 사항이 보존되어야 합니다.
◆ 바이너리 형태의 재배포에는 배포 설명서에 소프트웨어가 FreeType 팀의 작업에 부분적으로 기반한다는
부인 고지 사항이 포함되어야 합니다. 또한 강제 사항은 아니지만 설명서에 FreeType 웹 페이지로 이동하
는 URL을 삽입해 주시면 좋습니다.
본 조건은 수정되지 않은 파일뿐만 아니라 FreeType Project에서 파생되거나 해당 코드에 기반한 모든 소프트웨
어에 적용됩니다. 본 소프트웨어를 사용하려면 제작자에게 해당 사실을 알려야 합니다. 하지만 제작자에게 비
용을 지불할 필요는 없습니다.

4. 광고
FreeType 제작자 및 기여자와 사용자 모두 사전 서면 허가 없이는 다른 사람의 이름을 상업적 광고나 홍보 목적
으로 이용해서는 안 됩니다.
설명서나 광고 자료에서 본 소프트웨어를 표시할 경우 다음 구문 중 하나 이상을 사용해 주실 것을 권고하지만
강제 사항은 아닙니다. `FreeType Project', `FreeType 엔진', `FreeType 라이브러리', 또는 `FreeType 배포본' 중
하나를 사용해 주십시오.
본 라이센스에 서명하지 않았으므로 요구 사항을 적용할 필요가 없습니다. 하지만 FreeType Project는 저작권이
있는 자료이므로 본 라이센스 또는 제작자와 계약한 제3자가 본 프로젝트의 사용, 배포 및 수정 권한을 부여합
니다. 따라서 FreeType Project를 사용하거나 배포하거나 수정하는 것은 본 라이센스의 모든 조항을 이해하고
수락한다는 의미입니다.
5. 연락처
FreeType과 관련된 메일 목록은 다음 두 가지입니다.
◆ freetype@freetype.org
FreeType의 일반적인 사용과 적용 사례, 라이브러리 및 배포본에 향후 추가할 내용에 대한 의견을 보내 주십시
오. 문서에서 도움이 되는 내용을 찾지 못해 지원이 필요한 경우 이 목록을 이용하여 연락하시기 바랍니다.
◆ devel@freetype.org
버그와 엔진 내부, 설계 문제, 특정 라이센스, 포팅 등에 대한 의견을 보내 주십시오.
◆ http://www.freetype.org
현재 FreeType 웹 페이지가 유지, 관리되고 있습니다. 이 웹 페이지에서 최신 개발 버전을 다운로드하고 온라인
문서를 읽을 수 있습니다.
개별적으로 연락하려면 다음 주소를 사용하시기 바랍니다.
David Turner <david.turner@freetype.org>
Robert Wilhelm <robert.wilhelm@freetype.org>
Werner Lemberg <werner.lemberg@freetype.org>
Posted by 삼스
Linux2009. 2. 2. 16:26

=> 본 문서는 Microsoftware 5월 잡지의 최상훈,이은호님께서 기제하신 "웹서비스지원과 자바의 미래"란 글에서 발췌하였습니다.

오픈소스라이선스는 OSI(Open Source Initiative)에서 심사, 승인한다. 참고로 OSI는 오픈소스를 다음과 같이 정의하고 있다.

오픈 소스는 독립적인 피어 리뷰와 재빠른 소스코드 진화를 지원하여 소프트웨어의 신뢰성과 품질을 촉진하고 있다. OSI의 인증을 받기

위해서는 소프트웨어가 무료로 읽혀지고 재배포, 변경, 수정될 수 있음을 보장하는 라이선스를 통해 배포되어야 한다.

또한, 오픈소스로 규정할 수 있는 10가지 조건(OSD, The Open Source Definition)을 발표하였다.(1998년). OSI에서 승인한 오픈소스 라이선스는 현재 총

58개에 이르며 대표적으로 다음과 같은 소스 라이선스가 있다(표준 기반의 / Open Source GIS 구축지침개발에 관한 연구표준, 한국정보사회진흥원)


GPL : GNU General Public 라이선스 2.0

소프트웨어에 대한 자유로운 사용, 복제, 배포 및 수정을 허용하며, 소프트웨어를 배포하는 경우 저작권 표시, 보증 책임이 없다는 포시 및 GPL에 의해

배포된다는 사실을 명시해 한다. 소프트웨어를 수정하거나 새로운 소프트웨어를 링크시키는 경우 GPL에 의해 소스코드를 공개하야 하며, 특이한 사항은 리눅스를

기반으로 개발된 애플리케이션은 소스를 공개할 필요가 없다.

LGPL : GNU Lesser General Public 라이선스 2.1

GPL라이선스가 제한이 엄격해서 오픈 소스 소프트웨어의 사용을 장려하기 위한 전략적인 차원에서 다소 완화된 라이선스를 정의하였다.

GPL과 대동소이하나 LGPL을 따르는 라이브러리를 링크시킬 경우 해당 응용프로그램의 소스를 공개할 필요가 없다는 점이 큰 차이이다.

BSD : Berkeley Software Distribution 라이선스

GPL, LGPL보다 덜 제한적이기 때문에 허용범위가 넓다. '저작권 표시', '무보증 표시'만 한다면 BSD라이선스를 따르는 프로그램의 소스 코드를 구해

수정한 후 소스를 공개하지 않고 BSD가 아닌 다른 라이선스를 적용하여 판매할 수 있다.

MPL : Mozila Public License 라이선스

네스케이프 브라우저의 오픈소스 버진인 모질라(Mozilla)가 채용한 라이선스 이다. MPL의 경우 MPL하에 배포된 코드를 포함하는 팡리이나, MPL하에 배포된 파일 자체를 수정한 경우에만 소스 코드 배포를 요구한다.



가장 많은 오픈소스를 퍼블리싱하고 있는 sourceforge.net에 등록되어 있는 약 87,000개의 라이선스별 현황은

GPL(112)>LGPL(87)>MIT(9)>BSD(8)>Apache(5)>MPL(4)>PublicDomain(2) 이다.

Posted by 삼스
Android/Porting2009. 2. 2. 14:09

<출처 : http://www.kandroid.org/board/board.php?board=androidsource&command=body&no=6>
 
 Android 전체소스 빌드 방법(Fedora 9)
 Last Modified on 02-Nov-2008



이 글은 RPM기반의 패키지 관리를 채택하고 있는 RHEL/Fedora/CentOS/HaansoftLinux/OpenSUSE 등의
리눅스 배포판을 이용중인 데스크탑 사용자들이 안드로이드의 전체 소스 코드 빌드를 쉽게
접근하기 위하여 작성하였습니다.
 
사실 자주 접속하게 되는 android.git.kernel.org의 웹서버는 Fedora 9서버로 운영되고 있습니다.

*Domain:  android.git.kernel.org
1. OS : Linux  Apache/2.2.9 (Fedora 9) 
2. Last Changed: 27-Oct-2008 12:38:39 GMT
3. IP Address: 130.239.17.12  
4. Netblock Owner: Umea University 
 
*Domain:  source.android.com
1. OS : Linux ( GFE/1.3 WebServer )   * GFE: Google Front End
2. Last Changed: 24-Oct-2008 07:25:02  GMT
3. IP Address: 74.125.47.121 , 66.249.91.121  
4. Netblock Owner: Google Inc. 

또한, 필자가 페도라/우분투를 동시에 사용하고 있는데다가,
칸드로이드 툴체인을 페도라 6, 9을 기준으로 만들어서
이부분으로 인한 안드로이드 full source 개발의 빌드 및 개발에 원할히 참여할수 있기 위함이기도 합니다.
 

구글은 안드로이드 개발을 위하여 우분투를 권장하고 있지만,
다른 리눅스 배포판 사용자들들도 어렵지 않게 안드로이드 개발에 참여할수 있도록 하기위해서
DEB기반의 패키지 관리 방식이 아닌 git방식의 소스컨트롤과 tar소스 설치 방식으로 개발이 되고 있습니다.
(개인적으로 역시 제대로 된 소프트 웨어 설계자[Designer]가 있을떄 뭐가 확실히 다름을 느낍니다.)

따라서, 굳이 레드헷계열 배포판 사용자이기때문에 안드로이드 빌드/개발참여를 위해서
우분투 배포판을 굳이 별도로 설치하여 개발을 하지 않아도 됩니다.

몇년전부터 "미래는 오픈소스를 상용화수준으로  올릴수 있는 기술이 그 기업의 미래 존속과 번영을 유지할
것이다"라고 계속 얘기해왔었는데 이러한 믿음에 구글의 오픈화 큰 시작을 끊어주지 않나 합니다.

필자는 Samsung Sens R60 Plus 노트북에서
안드로이드 전체소스(소스 총 용량: 1.6기가)를 다운로드 하기 위해 무선네트웍 환경에서 2시간 40분의 시간이 소요되었습니다.
그리고나서, 소스를 전체 빌드하기 위해 소요되는 시간은 정확히 1시간 10분이 소요되었습니다.
소요시간은 사용자의 인터넷 속도 환경과 컴퓨터의 사양에 따라 다소 차이가 있을수 있습니다.

만약 필자처럼 "Samsung Sens R60 Plus" 노트북을 사용하고 있는 경우라면,
http://blog.naver.com/invain/80056844207 웹페이지에서
페도라 9 , 우분투 8.10 , winXP DualBoot 사용기를 참고 하면 도움이 되리라 봅니다. 
 
 
1. Fedora 설치용 USB 만들기

지금은 하드웨어 발전이 많이 되어서 기존처럼 시디로 구워서 설치시디를 만든는 것보다
저렴해진 USB 메모리(4기가)를  리눅스 설치용으로 만들면 편리합니다.
http://lubi.sourceforge.net/unetbootin.html 디렉토리에서 UNetbootin(Universal Netboot Installer)프로그램을
이용하면 됩니다. 이 프로그램은 리눅스용 및 윈도우용이 모두 릴리즈 되고 있습니다.
이 프로그램을 이용하여 Fedora , FreeBSD, Frugalware , Linux Mint, Mandriva , NetBSD, openSUSE, Parted Magic,
PCLinuxOS, Ubuntu 등의 다양한 리눅스 배포판 설치용 USB 를 만들수 있습니다.
 
2. 필자의 컴퓨터 환경
 - 필자가 개발용도로 사용하는 노트북의 스펙 정보입니다. 가격대 성능도 중요하지만 개발을 하다보면 여러 물리적 문제들을
   많이 경험하여써  A/S가 제일 원활한 회사의 노트북을 선호하는 편입니다.
 - PC Hardware Spec: Samsung SENS R60 Plus (Core2 Duo T5750 2.0Ghz / 2G DDR2 )
        . cpu MHz   : 1,000.000
        . cache size : 2,048 KB
        . bogomips   : 3,989.85
 - Desktop OS: Fedora Distribution 9 ( Linux Kernel 2.6.27-0.352.rc7.git1 )
 - Network Speed: Wireless Controller (비쏀 통신 서비스) -무선 주파수 시그널 52~78%

 
3. Fedora 9 리눅스 배포판 설치.
 
   - Fedora 9  iso 이미지를 다운로드하도록 합니다.
      그리고나서, xcdroast or k3b와 같은 리눅스 시디굽기 프로그램으로 리눅스 설치 CD를 만듭니다.
      ftp://ftp.kaist.ac.kr/fedora/linux/releases/9/Fedora/i386/iso/Fedora-9-i386-DVD.iso
      http://download.fedoraproject.org/pub/fedora/linux/releases/9/Fedora/i386/iso/Fedora-9-i386-DVD.iso
 
   - 구운 리눅스 시디를 이용하여 자신의 개발용 데스크탑 또눈 노트북에 페도라9 리눅스를 설치합니다.
 
4. Proxy Server을 사용해야 하는 회사의 경우 프록시 설정을 하도록 합니다.
 - 일반적으로 회사의 경우에는 보안 및 사용자 관리를 위해 프록시를 도입하는 경우가 많습니다. 이경우에는 아래와 같이
   프록시 설정을 통해 파일들을 정상적으로 다운로드 할수 있는 개발환경을 갖추어야 합니다.
 
fc9#> vi /etc/profile ( or ~/.bashrc )
export http_proxy=http://proxyserver:proxyport
fc9#> source /etc/profile
fc9#>
fc5#> vi /etc/wgetrc
http_proxy = http://proxyserver:proxyport
ftp_proxy  = http://ftpid:password@proxyserver.port/
use_proxy  = on

 
5.   Root 보안을 위해 sudo 설정 및 SSH  서비스 설정하기
   - 일반 사용자 ID으로 작업을 수행하다가, root권한이 필요한 경우에만 sudo명령을 이용하여
      개발PC의 보안을 도모하는 것이 좋습니다.
 
    invain$> cd /etc/
    invain$> su -
           root pass:******
    root#> chmod   660 /etc/sudoers
    root#> vi /etc/sudoers
       # Allow root to run any commands anywhere
       root    ALL=(ALL)       ALL
       yourid  ALL=(ALL)       ALL
    root#> chmod 440 /etc/sudoers
    root#> su - yourid
    invain$> 

 
  - 개발시에는 SSH 접속통해 개발이 하는 것이 편리합니다.
    ssh 설치 방법은 다음과 같습니다.
 
    invain$> sudo yum install openssh*


 
6. 안드로이 설치 환경 준비
 
    - 기본적으로 다음과 같은 package를 인스톨하여야 합니다.
 
       invain$> sudo yum install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl wget
       invain$> sudo yum install valgrind
 
    - 안드로이드는 Phython 2.4 이상이 요구됩니다.
       Fedora 9에는 이미 Phython 2.5.1버젼이 기본적으로 설치되어 있기 때문에 이 부분은 skip하셔도 됩니다.
       invain$> sudo yum install python*
 
    - JDK 5.0(1.5) Update 12 또는 그 이상이 요구됩니다.
       (Please-install-JDK-5.0,-update-12-or-higher,-which-you-can-download-from-java.sun.com )
       이를 위해선 다음과 같이 설치하시면 됩니다.
 
       invain$> sudo yum install java-* java-1.6.0-openjdk-devel*
       invain$> sudo yum install glibc*
 
    - Git 1.5.4 또는 그 이상 버전, 그리고 Repo가 요구됩니다.

       invain$> mkdir ~/bin
       invain$> cd ~/bin

 
       다음으로 git(Source Control Tool)와 repo(Shell SheScript File)를 설치입니다.
 
       invain$> sudo yum install git git-*    
     
       invain$> cd ~/bin/
       invain$> wget http://android.git.kernel.org/repo
       invain$> chmod a+x ~/bin/repo
 
       invain$> mkdir ~/bin/mydroid
       invain$> cd ~/bin/mydroid
 
       invain$> git config --global user.email "invain@naver.com" <-- 여러분의 이메일주소
       invain$> git config --global user.name "Lim,GeunSik"   <---- 여러분의 영문성명
       invain$> repo init -u git://android.git.kernel.org/platform/manifest.git
  
       여기까지 실행하시면,
       "repo initialized in /home/<your_id>/mydroid" 란 메시지가 콘솔 화면에 출력되어야 합니다.
       이제 환경설정은 모두 준비 완료되신 겁니다.
 

7. 안드로이드 전체 소스(1.6G) 다운로드하기
 
     -  아래과 같이 수행하면 안드로이드 전체 소스를 git를 통해서 다운로드 하게 됩니다.
       필자의 경우 2시간 40분정도의 시간이 소요되었습니다. 다운로드된 소스를 #>tar cjf 명령으로 압축을
       하면 평균적으로 700M정도의 용량이 됩니다.
        ( 2008년 10월 26일 23시 기준으로 Android's GIT 최근  태그 버젼은 1.0.6 이었다. )
 
       invain$> time repo sync

     -  ~/bin/mydroid/.repo/manifests/default.xml  파일에 정의되어 있는 아래의 소스파일들을 다운로드 하게 됩니다.
        여기서 한가지 주의할것은 회사에서 접속하는 경우 http://builds.nightly.webkit.org 사이트 접속이 방화벽으로
        차단되어 있는 경우가 종종 있었습니다. 접속시에 Forbidden(You don't have permission to access / on this server.)
        메세지가 웹브라우저 보이시면 정상적인 접근이 되시는 것입니다.
   
 
   01) http://android.git.kernel.org/pub/bluez-%version%.tar.gz
   02) http://android.git.kernel.org/pub/clearsilver-%version%.tar.gz
   03) http://android.git.kernel.org/pub/dbus-1.0.2.tar.gz
   04) http://android.git.kernel.org/pub/dropbear-%version%.tar.gz
   05) http://android.git.kernel.org/pub/emma-%version%-src.zip
   06) http://android.git.kernel.org/pub/expat-%version%.tar.gz
   07) http://android.git.kernel.org/pub/freetype-%version%.tar.bz2
   08) http://android.git.kernel.org/pub/giflib-%version%.tar.gz
   09) http://android.git.kernel.org/pub/icu4c-%version%-src.tgz
   10) http://android.git.kernel.org/pub/iptables-%version%.tar.bz2
   11) http://android.git.kernel.org/pub/jpegsrc.v%version%.tar.gz
   12) http://android.git.kernel.org/pub/libpcap-%version%.tar.gz
   13) http://android.git.kernel.org/pub/libpng-%version%.tar.gz
   14) http://android.git.kernel.org/pub/libxml2-sources-%version%.tar.gz
   15) http://android.git.kernel.org/pub/nc%version%.tgz
   16) http://android.git.kernel.org/pub/netperf-%version%.tar.gz
   17) http://android.git.kernel.org/pub/openssl-%version%.tar.gz
   18) http://android.git.kernel.org/pub/oprofile-%version%.tar.gz
   19) http://android.git.kernel.org/pub/ppp-%version%.tar.gz
   20) http://android.git.kernel.org/pub/qemu-%version%.tar.gz
   21) http://android.git.kernel.org/pub/safe-iop-%version%.tgz
   22) http://android.git.kernel.org/pub/sqlite-amalgamation-%version%.tar.gz
   23) http://android.git.kernel.org/pub/strace-%version%.tar.bz2
   24) http://android.git.kernel.org/pub/tagsoup-%version%-src.zip
   25) http://android.git.kernel.org/pub/tcpdump-%version%.tar.gz
   26) http://android.git.kernel.org/pub/tinyxml_%version%.tar.gz
   27) http://android.git.kernel.org/pub/wpa_supplicant-%version%.tar.gz
   28) http://android.git.kernel.org/pub/zlib-%version%.tar.bz2
   29) http://builds.nightly.webkit.org/files/trunk/src/WebKit-%version%.tar.bz2


  - ~/bin/mydroid/.repo/projects/ 디렉토리에는 git으로 가져오기 위한 소스파일들에 대한
     git포맷의 리스트가 존재합니다.


 1) bionic.git - modified netbsd c library
 2) bootloader - legacy.git bootloader
 3) build.git -  build script
 4) dalvik.git - stacked based java virtual machine
 5) development.git -  files for development
 6) external (37) - aes.git , dropbear.git ,fdlibm.git ,iptables.git , libpng.git , openssl.git ,
    safe-iop.git , tagsoup.git , apache-http.git , elfcopy.git , freetype.git , jdiff.git ,
    oprofile.git , skia.git , tcpdump.git ,bluez.git , elfutils.git , gdata.git , jhead.git  ,
    netcat.git , ping.git , sonivox.git , tinyxml.git , clearsilver.git , emma.git , giflib.git ,
    jpeg.git , netperf.git ,  ppp.git , sqlite.git  ,  tremor.git , dbus.git , esd.git , libxml2.git ,
    googleclient.git , libffi.git  ,  neven.git ,  protobuf.git , srec.git ,  webkit.git ,
    dhcpcd.git , expat.git , icu4c.git  , libpcap.git , opencore.git , qemu.git , strace.git



 
8. 안드로이드 빌드(1.8G) 하기


       vi 명령으로 로 ~/.bashrc 에 다음과 같이 android 개발을 위한 환경변수를 추가합니다.
       (사실 아래부분은 필요하시지 않으면 않하셔도 됩니다. )
 
       invain$> vi ~/.bashrc
        #export LANG=c
        export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0
        export PATH=.:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:/home/<your_id>/bin:$PATH
        export ANDROID_JAVA_HOME=$JAVA_HOME

       환경설정을 반영하기 위해 다시 로그인 하시던가 아니면 터미날을 종료했다 다시 실행해야 합니다.

       아니면, 그냥 아래의 명령을 실행하면 됩니다.
       csh의  경우엔 invain$>> source ~/.cshrc  를 실행하면 되고,
       bash의 경우엔 invain$>> source ~/.bashrc 를 실행하면 됩니다.

 
      invain$> sudo yum install zlib* libncurses*
      invain$> time make 

 
9. 빌드 결과 확인하기
 
       out 디렉토리에 build된 안드로이드 full package가 위치하게 됩니다.
 
       invain$> cd ~/bin/mydroid/out
       invain$> ls ./
       invain$> du -sh ./mydroid/
                 1.8G    ./mydroid/
       invain$#> tar cjf mydroid.20081027.tar.bz2 ./mydroid
       invain$> ls -al mydroid.20081027.tar.bz2
                 760M
       invain$> ls
       
         Makefile  bootloader  dalvik         external     hardware  packages  recovery
         bionic     build        development  frameworks  kernel     prebuilt    system

       invain$>


10. CPU Core별로 커널소스를 빌드하기

     - 구글은 안드로이드 폰을 상용화하기 위해서 Goldfish는 Linux 2.6.21으로 2007년 6월 29일(금) 최종 개발작업을
        완료하였고, 퀄컴 MSM7XXX 은 Linux 2.6.23으로 2007년 11월 7일 최종 개발 작업을 완료하였습니다.


     - 커널소스의 해당 아키텍쳐별 환경파일은 ./kernel/arch/arm/configs/ 디렉토리에 위치합니다.
 
     - How to build 75XX Core for ARM V6[arm1136] based Real Target
        /home/invain/bin/mydroid/kernel/arch/arm/mach-msm/ 에 코어 파일이 위치한다.
 
        invain$> cd ~/bin/mydroid/kernel
        invain$> make distclean
        invain$> make msm_defconfig ARCH=arm
        invain$> make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-
 
     - How to build  Virtual Core Goldfish for QEMU Based Android Emulator
         /home/invain/bin/mydroid/kernel/arch/arm/mach-goldfish/ 에 코어 파일이 위치한다.

        invain$> cd ~/bin/mydroid/kernel
        invain$> make distclean
        invain$> make goldfish_defconfig ARCH=arm
        invain$> make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-



11. 빌드된 이미지를  Emulator에 적용하기

    - 빌드된 이미지( system.img , data.img, ramdisk.img)들은 아래의 디렉토리에 위치합니다. 
       ~/bin/mydroid/out/target/product/generic/ramdisk.img
       ~/bin/mydroid/out/target/product/generic/system.img
       ~/bin/mydroid/out/target/product/generic/userdata.img

    - 빌드된 이미지를 실행하는 방법은 2가지가 있습니다. 
 
    - 첫번째 방법은  
       ./android-sdk-linux-1.0_r1/tools/lib/images/ 디렉토리에 위의  위의 이미지(*.img)를  복사하시면 됩니다.
       그리고나서, ./android-sdk-linux-1.0_r1/tools/emulator 을 실행하며, 안드로이드 개발환경이 보이게 됩니다.  
      
    - 두번째 방법은 
./emulator -kernel <file> -ramdisk <file>  -image <file> -initdata <file>  으로 실행을 하면 됩니다.
          
    - 세번째 방법은
   
$ cd ~/bin/mydroid/out/host/linux-x86/bin
$ mkdir -p lib/images
$ cd lib/images
$ ln -s ~/bin/mydroid/out/target/product/generic/ramdisk.img  ramdisk.img
$ ln -s ~/bin/mydroid/out/target/product/generic/system.img   system.img
$ ln -s ~/bin/mydroid/out/target/product/generic/userdata.img userdata.img
$ ln -s ~/bin/mydroid/prebuilt/android-arm/kernel/kernel-qemu kernel-qemu
$ ln -s ~/bin/mydroid/development/emulator/skins skins
$ cd ../../
$ ./emulator -wipe-data
 
    개발시에는 3번째 방법이 효율적이고 편리하였습니다.
Posted by 삼스
Linux2009. 2. 2. 13:29
Fedora10의 Networkmanager와 네트웤관리툴(GUI)이 버그가 있어서 네트웤정보 변경이 되지 않을 경우 ...
/etc/sysconfig/network-scripts/ifcfg-eth0 를 직접 편집 가능하다.

파일의 내용은 아래와 같으며 아래에 네트웤관련 정보를 직접 수정할 수 있다.

# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
HWADDR=00:0c:29:85:ba:9b
ONBOOT=yes
SEARCH="yslee"
BOOTPROTO=none
USERCTL=no
PEERDNS=yes
IPV6INIT=no
NM_CONTROLLED=no
TYPE=Ethernet
NETMASK=255.255.255.0
IPADDR=61.36.13.46
GATEWAY=61.36.13.1

편집을 완료하였으면 아래 명령을 수행하여야 한다.

# touch /etc/sysconfig/network-scripts/ifcfg-etho0
#source /etc/sysconfig/network-scripts/ifcfg-etho0
# service network restart

위명령은 관리자권한에서 수행해야 한다.
$su -
#

Posted by 삼스
확장스크립트를 이용한 flash script를 이용한 native code의 통신방법에 대해 정리하겠다.
 
세가지의 연동관련 이슈가 있다.

1) Flash단에서 Native단으로 이벤트 전달
2) Flash단에서 Native단의 상태 얻기
3) Native단의 이벤트 발생시 Flash단에서 그 이벤트를 전달받기

각 이슈별로 Flash단과 Native단관점에서 하는 일은 아래와 같다.

1) Flash단에서 Native단으로 이벤트 전달

    Flash -> ext_fscommand2(arg1, arg2, arg3) 형태로 argument로 구분하여 이벤트를 전달할 수 있다.
    Native -> engine에서 제공하는 callback함수 int onFlashEngineStatus(int stat, void *arg1, void *arg2, void **arg3)로 처리 가능
int onFlashEngineStatus(
int stat,   // status
void *arg1,  // 구분자
void *arg2,  // arg개수
void **arg3) // arg리스트

2) Flash단에서 Native단의 상태 얻기

   Flash단 -> 기본적으로 이벤트 전달할 때와 동일하며 새번째 arg는 script에서 정의된 var값이 넘어간다. 
                   var var1;
                   ext_fscommand(arg1, arg2, "var1")이 호출되면 var1변수값이 변경된다.
   Native단 -> onFlashEngineStatus()에서 arg1과 arg2로 구분하여 해당 이벤트를 전달 받을 수 있으며 이 때 s3wi_setFlashVar()로 값을 채워넣을 수 있다.

3) Native단의 이벤트 발생시 Flash단에서 그 이벤트를 전달받기

   Flash단 -> Listener를 등록하여 Native단의 이벤트를 전달 받을 수 있다.
   messageEvent = new Object();
messageEvent.onEvent = function() {
   if (arguments[0] == "STAT_EVENT_BATTERY")
   {
                 //배터리 레벨표시 아이콘 프레임 변경, arguments[1] = 0~4 까지
                 battery_mc.gotoAndStop(arguments[1])
   }   
else
   {
                 debug_txt.text = "Unkown Event Error";
   }
};
ExtendedEvents.OnM35TPlatformEvent.addListener(messageEvent); // OnM35TPlatformEvent는 native에서 전송시 첫번째 파라메터


  Native단 -> 내부에서 flash단으로 이벤트를 보내야 하는 경우 s3wi_SendExtendedEvent()로 이벤트를 보낼 수 있다.
                  flash_SendExtendedEvent(hFlash, argc, argv))



Posted by 삼스