기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.
안녕하세요.
파일시스템 만드는게 생각보다 많이 어렵네요.. busybox 1.9.1로 만들었습니다.
만들고 나니까 3개정도 디렉토리와 1개의 파일이 생기더군요.. 그래서 이래저래 추가 해서 부팅 시키고 다른 드라이버들 다 잡았습니다. 그러나.... gcc library를 안깔았는지 arm-linux로 컴파일 한 파일이 실행이 안되더라고요. 아래는 에러 메세지 입니다.
----------------------------
X-Hyper6400a login: root
Linux X-Hyper6400a 2.6.21.5-cfs-v19 #21 Mon Oct 19 10:47:17 KST 2009 armv6l unkn
login[902]: root login on 'ttySAC0'
[root@ /]$
[root@ /]$ ./test
-ash: ./test: not found
[root@ /]$
--------------------------------
----
test파일 정보입니다.
[root@/home/usr/mnt]# file test
test: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.14, not stripped
-----
장비는 하이버스 6400a 이고요 부트로더는 u-boot 1.1.6 커널은 2.6.21 입니다.
만약에 gcc library가 설치가 안되어 있어서 그런다면 어떻게 설치를 해야 될까요?
toolchain깔려있는 곳에서 복사해올려고 했지만.. 어떤걸 복사해야 될지 모르겠더라고요..
아.. 지금까지 toolchain, u-boot, kernel 다 작업해서 올렸는데 filesystem이 제일 어렵네요. 시간도 엄청 걸리고..ㅠㅠ
제발 답변좀 부탁드리겠습니다.
제가 보기에는 바이너리를 실행하시는 위치에 해당 파일이 없는 것으로 보이네요.^^
위의 글만 보면 현재 target의 / 디렉터리에서 실행하시는 것 같은데 그 위치에 파일이 있는지부터 확인해 보셔야 될 것 같습니다.
라이브러리가 없는 경우라면 보통 어떤 라이브러리를 못 찾는다는 메시지가 나옵니다.
참고적으로 부팅이 되신 걸로 봐서는 기본 라이브러리들은 복사가 되신 듯 하고 특정 바이너리가 필요로 하는 라이브러를 확인하시고자 할 때는 다음과 같이 하시면 됩니다.
# arm-linux-readelf -a test | grep "Shared library"
이렇게 하시면 해당 바이너리가 링크를 걸어 사용하는 라이브러리 목록이 출력됩니다.
출력된 라이브러리를 툴체인 디렉터리에서 링크 파일까지 포함하여 모두 복사하시면 됩니다.