'임베디드'에 해당되는 글 112건

  1. 2007.05.15 [ramdisk] sysvinit 설치하기
  2. 2007.05.14 [ramdisk] 필수 라이브러리 리스트
  3. 2007.05.09 [ramdisk] /etc/mtab 설정
  4. 2007.05.09 [ramdisk] /dev/nfs 장치 파일 만들기
  5. 2007.05.09 [tinylogin] getty, login 구성
  6. 2007.05.04 bash shell arm용으로 포팅
  7. 2007.05.04 arm용 gdb 포팅
  8. 2007.04.11 busybox 1.5.0 크로스 컴파일 하기
  9. 2007.03.12 [u-boot] 램디스크 읽어오는 부분 수정 - /lib_arm/armlinux.c
  10. 2007.03.12 MTD 관련 소프트웨어 구하고 포팅하기

[ramdisk] sysvinit 설치하기

arm으로 포팅하기 위해 컴파일 할 때 Makefile에서 STATIC는 설정하지 않도록 한다.
중간에 정적라이브러리 설정 때문에 에러나는 경우가 있다.
make를 끝낸 후, 설치 하기 위해 src디렉토리 밑에 _install 디렉토리를 생성하고, 그 안에
bin, sbin, usr/bin, usr/sbin, usr/share, usr/share/man/man1, usr/share/man/man8
디렉토리가 필요하다.
그리고
$ sudo make ROOT=${PWD}/_install install
해 주면, _install 디렉토리 안에 바이너리들이 설치된다.

[ramdisk] 필수 라이브러리 리스트

libnss_dns      : dns를 nss 루틴

[ramdisk] /etc/mtab 설정

/etc/mtab은 현재 마운트된 블록 시스템 정보를 표시하는 파일이다.
/proc 파일 시스템이 마운트된 후 /proc/self/mounts에 있는 정보를 가져오는 식으로 작동
하기 때문에 위에 파일로 심볼릭 링크를 걸어 주면 된다.
/etc/mtab이 제대로 설정되면, command line 에서 mount 했을 때 마운트 정보가 표시 된다.

'임베디드' 카테고리의 다른 글

[ramdisk] sysvinit 설치하기  (0) 2007.05.15
[ramdisk] 필수 라이브러리 리스트  (0) 2007.05.14
[ramdisk] /dev/nfs 장치 파일 만들기  (0) 2007.05.09
[tinylogin] getty, login 구성  (0) 2007.05.09
bash shell arm용으로 포팅  (0) 2007.05.04

[ramdisk] /dev/nfs 장치 파일 만들기

/dev/nfs는 임베디드 시스템에서 nfs를 이용한 램디스크 구성시 서버측에 있어야 되는 장치 파일이다.
mknod /dev/nfs b 0 255


'임베디드' 카테고리의 다른 글

[ramdisk] 필수 라이브러리 리스트  (0) 2007.05.14
[ramdisk] /etc/mtab 설정  (0) 2007.05.09
[tinylogin] getty, login 구성  (0) 2007.05.09
bash shell arm용으로 포팅  (0) 2007.05.04
arm용 gdb 포팅  (0) 2007.05.04

[tinylogin] getty, login 구성

램디스크 구성에서 getty, login 같은 부분은 tinylogin으로 대체하는게 좋다.
tinylogin에 관계된 설정 파일에는
/etc/issue(로그인시 출력하는 문구), /etc/motd(Message of the day), /etc/passwd, /etc/shadow, /etc/group(호스트 시스템에 있는 파일을 수정해서 사용),
/etc/securetty(시스템 관리자가 로그인이 가능한 터미널 장치 등록),
/etc/nsswitch.conf(Name Service Switch)

==============================================================
shadow 파일의 기본적인 내용
root::11904:0:99999:7:::
==============================================================

==============================================================
securetty 내용
ttyS0
ttyS1
ttyS2
==============================================================

==============================================================
nsswitch.conf 내용
passwd:      compat
shadow:      compat
group:         compat
hosts:         compat
==============================================================




'임베디드' 카테고리의 다른 글

[ramdisk] /etc/mtab 설정  (0) 2007.05.09
[ramdisk] /dev/nfs 장치 파일 만들기  (0) 2007.05.09
bash shell arm용으로 포팅  (0) 2007.05.04
arm용 gdb 포팅  (0) 2007.05.04
busybox 1.5.0 크로스 컴파일 하기  (0) 2007.04.11

bash shell arm용으로 포팅

$ ac_cv_sys_restartable_syscalls=yes ac_cv_func_setvbuf_reversed=yes bash_cv_have_mbstate_t=yes
./configure --build=i686-linux --host=arm-linux --enable-readline
$ make all

$ arm-linux-strip bash


configure 전에 여러 선언을 하는 이유는 컴파일 도중 선언된 3개의 항목에 대해서 테스트를 하는데,
크로스 컴파일 환경에서는 cpu 아키텍처가 다르기 때문에 에러가 나온다. 테스트를 건너뛰게 선언한 것

$ arm-linux-objdump -x bash | grep NEEDED

위에 명령어로 나온 필요 라이브러리를 타켓 시스템에 같이 설치 하도록 하자

arm용 gdb 포팅

GDB 패케지 설치
GDB는 크로스 컴파일 툴체인의 순서와 상관없이 언제든지 설치가 가능합니다.
다음과 같이 설치하면 됩니다.
[root@armpro download]# tar zxvf gdb-5.3.tar.gz
이 명령을 수행하면 gdb-5.3 란 디렉토리가 생깁니다.
[root@armpro download]# cd gdb-5.3
[root@armpro gdb-5.3]# ./configure --target=arm-linux --build=i686-pc-linux-gnu --prefix=/usr
[root@armpro gdb-5.3]# make
[root@armpro gdb-5.3]# make install
아마도 별 에러 없이 끝날 것 입니다.
제대로 설치되었다면 다음과 같은 명령을 치면 아래와 같이 나열됩니다.

busybox 1.5.0 크로스 컴파일 하기

Makefile에서

ARCH   ?= arm
CROSS_COMPILE    ?= arm-linux-

두 부분을 설정한 다음 make menuconfig로 설정후 make && make install 하면 arm용
busybox가 만들어진다.

[u-boot] 램디스크 읽어오는 부분 수정 - /lib_arm/armlinux.c

if (data) {
        temp = ntohl(hdr->ih_load);
        if (temp == 0)
        {   // mkimage로 주소를 지정하지 않은 경우
            temp = 40200000;
            initrd_start = ntohl(temp);
            initrd_end = initrd_start + len;
            memmove ((void *) initrd_start, (uchar *)data, len);
            printf ("   Loading Ramdisk to 0x40200000, end %08lx ... ", initrd_end);
        }
        else
        {   // mkimage로 이미지에 주소(Load addr, Entry Point)를 지정한 경우
            initrd_start = ntohl(hdr->ih_load);
            initrd_end = initrd_start + len;
            memmove ((void *) initrd_start, (uchar *)data, len);
            printf ("   Loading Ramdisk to %08lx, end %08lx ... ", initrd_start, initrd_end);
            //printf ("Ramdisk load address chnage from 0x%08x to 0x%08x with %u bytes\n\n",data, initrd_start,len);
        }
        printf ("OK\n");
}

MTD 관련 소프트웨어 구하고 포팅하기

MTD 관련 소프트웨어 구하고 포팅하기
1. 개요

이 문서는 MTD와 관련된 유틸리티를 구하고 이지보드용으로 포팅하는 방법을 진행한 순으로 기록한 문서이다.

2. 사전 조건

이 과정은 ARM용으로 포팅된 zlib 관련 라이브러리가 크로스 컴파일 환경에 설치되었다는 것을 조건으로 둔다.

이 조건에 만족되지 않는다면 zlib 라이브러리 포팅 ( arm ) 강좌를 참조하여 환경 구성후 처리하여야 한다.

3. 사이트 소개

MTD 관련 공식 사이트는

http://www.linux-mtd.infradead.org/

이다

4. 구하기 설치하기

다음으로 접속하면 mtd관련 화일을 얻을수 있다.

http://www.falinux.com/win/06_ramdisk/020_mtd_util/<font%20size="2">ftp://ftp.uk.linux.org/pub/people/dwmw2/mtd/cvs/%20</font>

이곳에서 보면 날짜별로 snapshot 형식으로 압축하여 관리하고 있는데 이중 가장 최근 것을 받아 오면 된다.

본인은 mtd-snapshot-20020731.tar.bz2을 받아 내렸다.

다음은 이 화일 적당한 디렉토리에 놓고 다음과 같은 과정을 취하여 푼다.

bunzip2 mtd-snapshot-20020731.tar.bz2

tar xvf mtd-snapshot-20020731.tar

이 과정이 끝나면 mtd란 디렉토리가 생긴다.

5. 포팅하기

유틸리티만 포팅하는 것에 중점을 두기로 하였다

util 디렉토리로 이동한다.

cd util

Makefile 에 다음을 추가 한다.

CC = arm-linux-gcc
LD = arm-linux-ld
AR = arm-linux-ar
AS = arm-linux-as
RANLIB = arm-linux-ranlib
NM = arm-linux-nm

CFLAGS += -I../include -O2 -Wall 이 있는 라인 위 쪽에 추가하면 된다.

컴파일 한다.

make

6. PC용 포팅하기

mkfs.jffs2 유틸은 pc용이 필요하다.

이때는 5. 포팅하기에서 설명한 것과는 다르게 수행한다.

util 디렉토리로 이동한다.

cd util

컴파일 한다.

make


prev 1 ··· 6 7 8 9 10 11 12 next