디바이스 드라이버
i.MX6 보드에 zlib 라이브러리 포팅하는 방법을 설명하도록 하겠습니다.
먼저 Zlib 를 포팅하는 방법입니다. Zlib 의 홈사이트는 http://www.zlib.net/ 이며, 현재 최신 버젼은 zlib-1.2.8 입니다.
여기서는 zlib-1.2.3 버젼을 사용하도록 하곘습니다.
버젼은 별 다른 의미는 없습니다. 이 버젼에서 테스트 가능한 프로그램이 있어서 선택한 것입니다.
다운로드 사이트
빌드 옵션
CC=arm-linux-gnueabihf-gcc AR=arm-linux-gnueabihf-ar STRIP=arm-linux-gnueabihf-strip RANLIB=arm-linux-gnueabihf-ranlib ./configure --shared --prefix=/usr/arm-linux-gnueabihf |
빌드하기
root@roy-VPCCB17FK:zlib-1.2.3# CC=arm-linux-gnueabihf-gcc AR=arm-linux-gnueabihf-ar STRIP=arm-linux-gnueabihf-strip RANLIB=arm-linux-gnueabihf-ranlib ./configure --shared --prefix=/usr/arm-linux-gnueabihf
Checking for shared library support...
Building shared library libz.so.1.2.3 with arm-linux-gnueabihf-gcc.
Checking for unistd.h... Yes.
Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf()
Checking for vsnprintf() in stdio.h... Yes.
Checking for return value of vsnprintf()... Yes.
Checking for errno.h... Yes.
Checking for mmap support... Yes.
root@roy-VPCCB17FK:zlib-1.2.3# make
arm-linux-gnueabihf-gcc -fPIC -O3 -DUSE_MMAP -c -o example.o example.c
arm-linux-gnueabihf-gcc -fPIC -O3 -DUSE_MMAP -c -o adler32.o adler32.c
arm-linux-gnueabihf-gcc -fPIC -O3 -DUSE_MMAP -c -o compress.o compress.c
arm-linux-gnueabihf-gcc -fPIC -O3 -DUSE_MMAP -c -o crc32.o crc32.c
arm-linux-gnueabihf-gcc -fPIC -O3 -DUSE_MMAP -c -o gzio.o gzio.c
arm-linux-gnueabihf-gcc -fPIC -O3 -DUSE_MMAP -c -o uncompr.o uncompr.c
arm-linux-gnueabihf-gcc -fPIC -O3 -DUSE_MMAP -c -o deflate.o deflate.c
arm-linux-gnueabihf-gcc -fPIC -O3 -DUSE_MMAP -c -o trees.o trees.c
arm-linux-gnueabihf-gcc -fPIC -O3 -DUSE_MMAP -c -o zutil.o zutil.c
arm-linux-gnueabihf-gcc -fPIC -O3 -DUSE_MMAP -c -o inflate.o inflate.c
arm-linux-gnueabihf-gcc -fPIC -O3 -DUSE_MMAP -c -o infback.o infback.c
arm-linux-gnueabihf-gcc -fPIC -O3 -DUSE_MMAP -c -o inftrees.o inftrees.c
arm-linux-gnueabihf-gcc -fPIC -O3 -DUSE_MMAP -c -o inffast.o inffast.c
arm-linux-gnueabihf-gcc -shared -Wl,-soname,libz.so.1 -o libz.so.1.2.3 adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o zutil.o inflate.o infback.o inftrees.o inffast.o
rm -f libz.so libz.so.1
ln -s libz.so.1.2.3 libz.so
ln -s libz.so.1.2.3 libz.so.1
arm-linux-gnueabihf-gcc -fPIC -O3 -DUSE_MMAP -o example example.o -L. libz.so.1.2.3
arm-linux-gnueabihf-gcc -fPIC -O3 -DUSE_MMAP -c -o minigzip.o minigzip.c
arm-linux-gnueabihf-gcc -fPIC -O3 -DUSE_MMAP -o minigzip minigzip.o -L. libz.so.1.2.3
root@roy-VPCCB17FK:zlib-1.2.3# make install
cp zlib.h zconf.h /usr/arm-linux-gnueabihf/include
chmod 644 /usr/arm-linux-gnueabihf/include/zlib.h /usr/arm-linux-gnueabihf/include/zconf.h
cp libz.so.1.2.3 /usr/arm-linux-gnueabihf/lib
cd /usr/arm-linux-gnueabihf/lib; chmod 755 libz.so.1.2.3
cd /usr/arm-linux-gnueabihf/lib; if test -f libz.so.1.2.3; then \
rm -f libz.so libz.so.1; \
ln -s libz.so.1.2.3 libz.so; \
ln -s libz.so.1.2.3 libz.so.1; \
(ldconfig || true) >/dev/null 2>&1; \
fi
cp zlib.3 /usr/arm-linux-gnueabihf/share/man/man3
chmod 644 /usr/arm-linux-gnueabihf/share/man/man3/zlib.3