노무현 대통령 배너


2006. 3. 28. 10:44

[본문스크랩] RPM 형식의 ARM 용 소프트웨어를 푸는 법

RPM 형식의 ARM 용 소프트웨어를 푸는 법
목차 | 이전 | 다음

1. 개요

이 문서는 RPM 형식의 ARM용 소프트웨어를 풀러서 보드에 패치하는 방법에 대한 팁 문서이다.

.2. 사전 가정

◆ 이 문서는 와우 리눅스 기준으로 개발 환경 호스트가 설치되어 있는 것을 가정한다.

◆ 이 문서는 nfs 환경으로 이지보드 리눅스에서 마운트가 가능한 상태를 가정한다.

/mnt/nfs 에 마운트 되어야 한다.

3. ARM 용 RPM

ARM용 RPM은 어디서 구할까 ?

보통 보드에 포팅하기 위해서는 패케지를 구해서 컴파일 하는 과정을 통과 해야 한다.

하지만 이것이 그리 쉬운 것이 아니다.

하지만 이지보드의 StrongARM과 같은 ARM 계열의 소프트웨어는 웬만한것은 rpm으로 나와 있다.

이를 이용하면 컴파일 과정을 생략하여 바로 사용할 수 있다.

하지만 이것이 PC에서 하는 것처럼 아주 간단한 것은 아니다.

약간의 수작업이 필요하기 때문이다.

일단 ARM용 RPM 이 있는 곳을 알아보자.

http://www.rpmfind.net/linux/RPM/NetWinder_ARM_Linux.html

바로 이곳이다.

엄청난 패케지들이 arm용으로 포팅 되어 있다.

주의 할점은 이 패케지들은 일단 armv4l의 코어라는 점이다.

일단 이지보드에 있는 StrongARM은 이 코어 해당되므로 무난하다.

한가지 주의 할점은 이것이 모두 실행된다는 보장은 없다는 것이다.

왜냐하면 어플리케이션은 공유 라이브러리와 연관도어 있기 때문이고

의존 관계가 있는 패케지에 대한 문제도 있기 때문이다.

하지만 패케지를 컴파일하는 것보다 일단은 간단하므로 먼저 이것을 시도해보는 것이 유리하다.

4. RPM 풀기

일단은 rpm을 적당한 디렉토리에 가져다 놓는다.

야기서 한번 예를 들기 위해서

cpio-2.4.2-13.armv4l

이란 패케지를 시험해 보자

우선 이 패케지 rpm을 다운한다.

다운 하는 위치는 아무 디렉토리나 괜찮다.

본인은

/var/data/project/rpm/cpio

로 하기로 하였다.

다운 로드 한 화일면은 다음과 같다.

cpio-2.4.2-13.armv4l.rpm

이것을 푸는 명령은 의외로 간단하다.

rpm2cpio cpio-2.4.2-13.armv4l.rpm | cpio -ivd

명령을 수행하면 다음과 같은 디렉토리가 생긴다.

bin/cpio
usr/doc/cpio-2.4.2
usr/doc/cpio-2.4.2/NEWS
usr/doc/cpio-2.4.2/README
usr/info/cpio.info.gz
usr/man/man1/cpio.1

위 결과를 보면을 알겠지만 각 디렉토리 별로 구별되어 풀려 진다.

우리에게 필요한 것은 cpio 명령 뿐이다.

왜냐 하면 임베디드 보드의 적은 저장 용량을 생각해야 하기 때문이다.

일단 이것을 nfs 시스템을 이용하여 보드의 /bin/디렉토리에 cpio를 넣는다.

다음은 cpio를 그냥 수행하여 동작하는가를 확인한다.

다음과 같이 나오면 성공적으로 수행된것이다.

이렇게 나오지 않고 라이브러리 어쩌구 저쩌구 하는 말이 나오면 가야할길이 좀 더 험난해진다. ^^

왜냐하면 해당 공유 라이브러리들을 구해서 설치하거나 해야 하기 때문이다.

본인은 그런 상황이면 과감하게 패케지 소스를 구해서 컴파일 하기 시작한다.

쉽죠? ^^

(허걱~~) 위 그림을 보니 nfs에서 바로 수행 했는데 사실 문제 되지는 않습니다.

목차 | 이전 | 다음