x-hyper320에 madplay 올리기

LINUX : ubuntu 9.04
compiler : gcc 4.3.3
cross-compiler : arm-iwmmxt-linux-gnueabi 4.1.1

1. 필요한 소스를 다음의 사이트나 인터넷을 통해 다운로드 한다.
http://sourceforge.net/project/showfiles.php?group_id=12349
madplay-0.15.2b.tar.gz
libmad-0.15.1b.tar.gz
libid3tag-0.15.1b.tar.gz
http://www.gzip.org/zlib
zlib-1.2.2.tar.gz

2. 다운 받은 소스의 압축을 풀고 파일을 확인한다.
# tar zxvf zlib-1.2.2.tar.gz
# tar zxvf madplay-0.15.2b.tar.gz
# tar zxvf libmad-0.15.1b.tar.gz
# tar zxvf libid3tag-0.15.1b.tar.gz
# ls
libid3tag-0.15.1b libmad-0.15.1b madplay-0.15.2b zlib-1.2.2

3. 크로스 컴파일을 위해 다음과 같이 변수를 설정한다.
# export CC=arm-linux-gcc
# export CXX=arm-linux-gcc
# export CPPFLAGS=’-I../libmad-0.15.1b -I../libid3tag-0.15.1b -I../zlib-1.2.2′
# export LDFLAGS=’-L../libmad-0.15.1b -L../libid3tag-0.15.1b -L../zlib-1.2.2′

4. 컴파일 한 라이브러리와 바이너리를 저장할 디렉토리를 생성한다.
# mkdir lib
# mkdir bin

5. 다음 순서에 따라 madplay의 컴파일을 진행하도록 한다.
a. zlib 패키지를 크로스 컴파일 한 후 이동한다.
# cd zlib-1.2.2
# ./configure
# make
# cd ..

b. madplay는 mp3 재생시에 id3tag 정보를 보여주기 때문에 libid3tag 라이브러리를
필요로 한다. 크로스 컴파일 후에는 현재 디렉토리의 .libs 디렉토리에 필요한
라이브러리가 생성되며 madplay 크로스 컴파일 시 사용하게 된다. 또한 타겟보드 (HBESM)
의 /lib 디렉토리에도 복사하여 사용해야 한다.
# cd libid3tag-0.15.1b
# ./configure –host=arm-linux
# make
# cp .libs/libid3tag.a ./
# cd ..

c. libmad 라이브러리를 크로스 컴파일 한 후 이동한다.
# cd libmad-0.15.1b
# ./configure –host=arm-linux
# make
# cp .libs/libmad.a ./
# cd ..

d. 이제 madplay를 컴파일 한 후 생성된 바이너리를 확인하고 미리 만들어 놓은 bin
디렉토리로 복사한다.
# cd madplay-0.15.2b
# ./configure –host=arm-linux
# make
# file madplay
madplay: ELF 32-bit LSB executable, ARM, version 1 (ARM), for GNU/Linux 2.4.19,
dynamically linked (uses shared libs), not stripped
# cp madplay ../bin
e. 타겟보드의 램디스크에 들어갈 madplay의 라이브러리를 미리 만들어 놓은 lib
디렉토리로 복사한다.
# cd libid3tag-0.15.1b/.libs
# cp -dpR libid3tag.so* ../../lib
# cd ../../
# cd libmad-0.15.1b/.libs
# cp -dpR libmad.so* ../../lib
# cd ../../

6. 크로스 컴파일된 라이브러리와 실행파일이 들어있는 bin과 lib 디렉토리를 NFS로 연
결한 후 실행 파일과 라이브러리를 타겟보드의 /usr/bin 과 /lib 디렉토리로 복사하
도록 한다.
<TARGET>
$ mount -t nfs 192.168.123.100:/nfs_resource/ /mnt/nfs
$ cp /mnt/nfs/bin/madplay /usr/bin
$ cp –dpR /mnt/nfs/lib/* /lib

7. 타겟보드에 mp3 파일을 복사한 후 실행해 보도록 한다.
$ madplay test.mp3
MPEG Audio Decoder 0.15.2 (beta) – Copyright (C) 2000-2004 Robert Leslie et al.
Title:
Artist:
Album:
Comment:
error: frame 0: lost synchronization

[출처] Empos2용 Madplayer|작성자 팬더곰

Leave a Reply