'혼자서 놀기...'에 해당되는 글 26건

  1. 2009.06.19 Ubuntu에서 Samba setting
  2. 2009.04.02 순대보드 u-boot - 1 4
  3. 2009.04.01 순대보드 CrossCompile 환경 - 2
  4. 2009.03.31 순대보드 CrossCompile 환경 - 1
  5. 2009.03.30 순대보드 사전 작업??
  6. 2009.03.27 순대보드 - AHAV9302 2
2009. 6. 19. 10:49

Ubuntu에서 Samba setting



Samba는 윈도우즈와 리눅스간에 파일을 공유할 수 있는 방법을 제공하는 프로그램이다.
리눅스 서버를 두고, 여기에 여러대의 윈도우즈 클라이언트에서 리눅스 서버에 접근을 해서 마치 자신의 로컬 디스크를 사용하는 것 처럼 사용을 할 수 있도록 해준다는 것이다.

먼저 Samba를 설치한다.
$ sudo apt-get install samba smbfs

Ubuntu에서는 apt-get을 사용하여 설치하려는 프로그램, 또 그와 연관된 프로그램들을 다운로드 받아서 설치할 수 있다.

남은 부분은 Samba에 관한 설정 부분이다.
smb.conf 파일을 열어서 필요한 부분을 수정해주면 된다.
$ sudo vi /etc/samba/smb.conf

...
[global]
...
# 문자셋에 관련된 부분..  윈도우즈에서 한글 깨짐 없이 볼 수 있음..
dos charset = cp949
display charset = UTF8
unix charset = UTF8
...

# 윈도우즈 탐색기에 출력할 컴퓨터 이름
# 기본적으로 제공되는 녀석을 사용한다. 이후에 보게 될 테지만, 디폴트로 사용하면 리눅스 서버의 이름으로 공유
# 폴더를 열 수 있다.
server string = %h server (Samba, Ubuntu)

# 사용자 계정 등 설정
security = share
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
...

# 윈도우즈에서 나타나게될 samba 공유 폴더
#============================ Share Definitions ============================
guest ok = yes
guest account = root

[home]
comment = Home Directories
browseable = no
writable = yes

[root directory]
comment = Root Directory
path = /
writeable = yes
browseable = yes
guest ok = yes

smb.conf 파일의 수정을 마쳤으면, smaba 서버를 재실행하자.
$ sudo /etc/init.d/samba restart

윈도우즈의 시작->실행파일을 열어서 본인이 연결하고자 하는 samba server의 이름, 또는 아이피를 입력하자
이때 \\서버이름, 또는 \\아이피의 형식으로 입력을 해주어야 한다.

아래와 같이 설정했던 Samba의 서버 디렉토리로 접근하는 것을 볼 수 있다.

물론 한글 설정도 해 두었기 때문에 한글이 깨지질 않고 잘 나오는 것도 확인할 수 있다.


'혼자서 놀기...' 카테고리의 다른 글

메모리 단위  (0) 2009.09.01
VMware http://vmware.com/info?id=97. 오류 해결 방법  (0) 2009.08.05
Ubuntu 에서 리눅스 개발환경 설정  (0) 2009.06.22
Ubuntu에서 NFS setting  (0) 2009.06.19
Ubuntu에서 tftp setting  (0) 2009.06.19
2009. 4. 2. 20:20

순대보드 u-boot - 1



uboot라는 녀석을 설치하려 한다. 임베디드 환경에서 가장 많이 사용하는 부트로더라고 한다.

일단 uboot의 소스를 다운로드 받자!!
현재의 버전은 u-boot-1.1.6 u-boot-1.3.4 이고, 소스포지의  uboot 사이트에서 다운로드를 받을 수 있다.
http://sourceforge.net/project/showfiles.php?group_id=65938

최신 버전이 1.1.6인지 1.3.4인지 정확히 모르겠다..
-_- 소스포지에서는 1.1.6으로 나오긴 하는데.. ftp://ftp.denx.de/pub/u-boot에 가보니 1.3.4 버전이 보이네.. ㅋㅋ

콘솔 상에서 다운로드를 받아도 된다.
$ cd /opt/tools/crus
$ wget ftp://ftp.denx.de/pub/u-boot/u-boot-1.1.6.tar.bz2
...

다운로드 받은 u-boot를 /opt/arm9sbc/ahav/backup 에 복사한 후 작업을 하도록 한다.
$ copy u-boot-1.1.6.tar.bz2 /opt/arm9sbc/ahav/backup
$ cd /opt/arm9sbc/ahav
$ . .init-ahav
$  cd ${AHAV_BUILD_DIR}
$ tar -C ${AHAV_BUILD_DIR} -xjf ${AHAV_BACKUP_DIR}/u-boot-1.1.6.tar.bz2
$ cd u-boot-1.1.6

압축을 푼 uboot의 루트 디렉토리의 모양새는 아래와 같다.

일단 기본적으로 u-boot에서 제공하는 파일들은 위에서 보는 것과 같고, 실제 작업을 해야하는 부분들이 존재한다.
실제 순대보드의 메인칩 EP9302는 u-boot에서 기본적으로 제공을 하지 않는다.
하지만, EP9301이라고 하는 비슷한 녀석의 패치파일이 웹상에 있으므로 그놈을 구해서 이리 저리 수정을 해주면 된다고 한다.

일반적으로 u-boot의 작업은 그렇게들 이루어진다고 한다.
제일 좋은 것은 본인이 구현하려는 녀석에 관한 모든 정보가 공개된 것이지만, 그렇지 않다면, 최대한 비슷한 녀석을 구해서 수정을 해줘가며 작업들을 한다고 한다.

EP9301에 대한 패치파일이다.

이 패치를 다운로드 받아서 /opt/arm9sbc/ahav/backup에 저장한다.
그리고 u-boot-1.1.6 디렉토리로 이동하여 패치해준다.
아.. 그전에 리눅스에 패치 툴이 깔려있지 않은 경우 설치를 해주어야 한다.
$ cd ${AHAV_BUILD_DIR}/u-boot-1.1.6
$ sudo apt-get install patch
...
$ patch -p1 -E -d ${AHAV_BUILD_DIR}/u-boot-1.1.6 < ${AHAV_BACKUP_DIR}/u-boot-ep93xx.patch

패치를 실행한 뒤의 모습이다.

아래는 앞으로 우리가 해주어야 할 작업들을 나열한 것이다.
[U] Makefile
[U] include/asm-arm/mach-types.h
[N] include/asm-arm/arch-ep93xx/ep93xx.h
[N] include/configs/ahav9302.h
[N] board/ahav9302/Makefile
[N] board/ahav9302/config.mk
[N] board/ahav9302/u-boot.lds   
[N] board/ahav9302/ahav9302.c
[N] board/ahav9302/flash_cfg.S   
[N] board/ahav9302/pll_cfg.S
[N] board/ahav9302/sdram_cfg.S

[R] cpu/arm920t/ep93xx/Makefile
[R] cpu/arm920t/ep93xx/cpu.c
[R] cpu/arm920t/ep93xx/eth.c
[R] cpu/arm920t/ep93xx/interrupts.c
[R] cpu/arm920t/ep93xx/lowlevel_init.S
[R] cpu/arm920t/ep93xx/speed.c

[U]로 표시된 것은 update(수정)을 의미하고, [N]은 new(새로 생성)을 의미한다. 마지막으로 [R]은 위의 패치를 풀어 생성된 파일을 의미한다.
중점적으로 작업을 해주어야 할 부분은 빨간 색으로 되어 있는 부분이 될 것이다. 녹색으로 된 부분도 이리 저리 세팅에 관련 된 부분은 수정을 해주어야 할 것이고, [R]로 표시된 부분은 왠지 ep93xx에 공통적으로 필요한 녀석들일것 같다는 느낌이.. 그냥 두어도 될 듯하다..

참고로 include/asm-arm/arch-ep93xx/ep93xx.h는 칩 제조사인 Cirrus Logic에서 EP93xx 시리즈를 내어 놓을 때, 레지스터의 주소 등을 정의해 놓은 헤더파일이라고 한다. 이녀석을 참조할 필요가 있다고 한다.

당근이의 AVR 갖구 놀기 까페 참조..



'혼자서 놀기... > 순대보드(AHAV9302)' 카테고리의 다른 글

순대보드 u-boot - 3  (0) 2009.08.11
순대보드 u-boot - 2  (0) 2009.08.11
순대보드 CrossCompile 환경 - 2  (0) 2009.04.01
순대보드 CrossCompile 환경 - 1  (0) 2009.03.31
순대보드 사전 작업??  (0) 2009.03.30
2009. 4. 1. 18:30

순대보드 CrossCompile 환경 - 2



이제 순대보드에 사용할 크로스 컴파일러를 설치할 것이다.

순대보드에 사용할 크로스 컴파일러는 제조사에서 작업을 해 놓은 것이 있어서 그놈을 그냥 가져다가 쓰면 된다고 한다. 뭐지... 그렇게 간단하단 건가?? -_-

http://arm.cirrus.com/files/index.php?path=tools/ 에 방문을 해서 필요한 파일을 다운로드 받으면 될 것이다.

/opt에 tools라는 디렉토리를 하나 만들고 그 디렉토리안에 여러 필요한 툴들을 모아놓고 작업을 할 것이다.
$ cd /opt
$ sudo mkdir tools
$ sudo chown ID:users tools
$ mkdir tools/crus
$ wget http://arm.cirrus.com/files/tools/arm-elf-gcc-3.2.1-full.tar.bz2
...
$ wget http://arm.cirrus.com/files/tools/arm-linux-gcc-4.1.1-920t.tar.bz2
...
$ tar -xjf arm-elf-gcc-3.2.1-full.tar.bz2
...
$ cd usr/local/arm
$ mv 3.2.1-elf /opt/tools/crus
$ cd /opt/tools/crus
$ rm -rf usr
$ tar -xjf arm-linux-gcc-4.1.1-920t.tar.bz2

이렇게 해서 순대보드용 크로스 컴파일러를 설치했다. 너무 간단해서 당황...-_-;;

추가로  링크를 걸어서 추후에 사용하기 편하게 하도록 한다.
$ sudo mkdir /usr/local/arm
$ cd /usr/local/arm
$ ln -s /opt/tools/crus/3.2.1-elf 3.2.1-elf
$ ln -s /otp/tools/crus/4.1.1-920t 4.1.1-920t

제대로 동작하는지 확인해 보자!!

음.. 세상에나.. 크로스 컴파일러 설치가 원래 이렇게 쉬운건가? 라는 생각이 든다..

여튼 일단 크로스 컴파일러 설치까지 성공을 했고.. 시간 되는대로 짬짬히 공부도 해가면서 봐야할 듯 하네..



'혼자서 놀기... > 순대보드(AHAV9302)' 카테고리의 다른 글

순대보드 u-boot - 2  (0) 2009.08.11
순대보드 u-boot - 1  (4) 2009.04.02
순대보드 CrossCompile 환경 - 1  (0) 2009.03.31
순대보드 사전 작업??  (0) 2009.03.30
순대보드 - AHAV9302  (2) 2009.03.27
2009. 3. 31. 20:44

순대보드 CrossCompile 환경 - 1



임베디드 작업은 'Cross Compile(크로스 컴파일)'환경이 갖추어진 상태라야 비로소 제대로 된 작업을 할 수 있다.

근데... '크로스 컴파일' 환경이란 뭐지? -_-

일반적으로 사용하는 데스크톱의 환경을 네이티브 개발환경이라고 한다. 해당하는 플랫폼에서 개발을 하고, 개발을 한 그 플랫폼에서 이런 저런 것들을 실행시키는 환경을 말한다.
쉽게 설명하자면, 리눅스나 윈도우즈가 설치된 데스크톱 기계(x86)에서 어떠한 프로그램을 작성하고, 작성한 프로그램을 동일한 플랫폼(x86)에서 실행시키는 것을 생각하면 될 것이다.

크로스 컴파일환경은 이와는 조금 다르다.
일반적으로 프로그램등을 작성할 때에는 흔히 사용하는 데스크톱(x86) 환경에서 작성을 하게 된다. 하지만 실제 작성한 프로그램 등은 개발한 플랫폼에서 동작하는 것이 아니고, arm 과 같은 별도의 임베디드 기계에서 동작을 하게 된다. 실제 프로그램이 동작해야할 플랫폼에 맞게 컴파일을 해주도록 해주는 녀석을 크로스 컴파일러라고 한다. 그리고 이런 크로스 컴파일을 할 수 있도록 해주는 환경을 크로스 컴파일 환경이라고 한다.

에이.. 그냥 arm 과 같은 임베디드 기계에서 프로그램을 작성하고, 컴파일을 하면 되지 않을까? 라고 생각 할 수도 있지만, 실제 임베디드 기계가 가지고 있는 성는은 데스크톱에 비하면 매우 빈약하다. 좀더 효과적인 작업을 하기 위해 성능이 좋은 데스크톱을 빌려 작업을 한다라고 생각하면 편할 듯 하다.

사실.. 본인도 잘 모른다. 그냥 그런 것 같다 ㅎㅎ

서론이 길긴 했는데.. 그럼 일단 순대보드(AHAV9302)의 크로스 컴파일을 위한 환경을 만들어 보려 한다. 크로스 컴파일을 위한 전용 디렉토리를 만들고, 몇 가지의 환경변수를 등록할 것이다.
'당근이의 AVR 갖구 놀기'에 설명된 대로 따라할 것이다.

리눅스 기계의 /opt 디렉토리로 이동을 하여 다음의 디렉토리들을 생성해 준다.
/opt/arm9sbc                                   
/opt/arm9sbc/ahav
/opt/arm9sbc/ahav/backup           => 포팅할 패키지들과 패치들을 보관하는 곳.
/opt/arm9sbc/ahav/build               => 컴파일 시 사용할 임시 디렉토리.
/opt/arm9sbc/ahav/host               => 컴파일 시 필요한 헤더와 명령어들을 임시로 보관하는 곳.
/opt/arm9sbc/ahav/images           => 램디스크 이미지를 생성하는 곳.
/opt/arm9sbc/ahav/kernel            => 커널 컴파일을 하는 곳.
/opt/arm9sbc/ahav/kernel/.post   => 후기 작업을 위해서 필요한 곳...??
/opt/arm9sbc/ahav/nfs                  => NFS를 사용할 경우에 사용.

/opt 디렉토리로 이동 한 후 아래와 같이 입력을 한다.
$ sudo mkdir arm9sbc
[sudo] password for ID :
$ sudo chown ID:users arm9sbc

위와 같이 해주는 것으로 생성한 arm9sbc는 root 계정이 아닌 일반 사용자 계정으로 사용을 할 수 가 있다. 
ID는 사용자가 접속시 사용하였던 ID가 된다.
참고로.. 이것은 ubuntu 리눅스에서만.. 이런식으로 사용한다.

mkdir 명령을 사용하여 위의 디렉토리들을 생성해 준다.
$ mkdir arm9sbc/ahav
$ mkdir arm9sbc/ahav/backup
...
$ mkdir arm9sbc/ahav/nfs

/opt/arm9sbc/ahav에 환경변수를 설정한다.
$ cd /opt/arm9sbc/ahav
$ vi .initrc-ahav
export PATH=/usr/local/arm/4.1.1-920t/bin:/usr/local/arm/3.2.1-elf/bin:${PATH}
export AHAV_PROJECT_NAME="AHAV9302"
export AHAV_BASE_DIR=/opt/arm9sbc/ahav
export AHAV_BACKUP_DIR=${AHAV_BASE_DIR}/backup
export AHAV_BUILD_DIR=${AHAV_BASE_DIR}/build
export AHAV_HOST_DIR=${AHAV_BASE_DIR}/host
export AHAV_IMAGES_DIR=${AHAV_BASE_DIR}/images
export AHAV_ROOT_DIR=${AHAV_IMAGES_DIR}/root
export AHAV_KERNEL_DIR=${AHAV_BASE_DIR}/kernel
export AHAV_KERNEL_VER="2.6.22.8"
export AHAV_NFS_DIR=${AHAV_BASE_DIR}/nfs

$ chmod 750 .initrc-ahav

$ . .initrc-ahav

여기까지 진행을 하면, 크로스 컴파일 환경을 위한 사전 작업을 마친 것이다.
사전 작업이라고 해봤자... 크로스 컴파일러를 설치할 경로 정도를 설정해 준 것이긴 하지만... -_-

다음 시간에 나머지 작업을 진행해야지...... 슬슬 귀찮아지는데... ㅜ


'혼자서 놀기... > 순대보드(AHAV9302)' 카테고리의 다른 글

순대보드 u-boot - 2  (0) 2009.08.11
순대보드 u-boot - 1  (4) 2009.04.02
순대보드 CrossCompile 환경 - 2  (0) 2009.04.01
순대보드 사전 작업??  (0) 2009.03.30
순대보드 - AHAV9302  (2) 2009.03.27
2009. 3. 30. 20:45

순대보드 사전 작업??



순대보드는 리눅스 상에서 작업이 이루어 질 것이므로.. 일단 리눅스 기계가 하나 있어야 한다.
하지만.. 없는데..-_-

그리하여.. 윈도우즈 기계에 VMWare를 이용하여 셋방살이라도 하나 장만했다.ㅎ
VMWare에 Ubuntu 리눅스 8.10 을 설치하였다. 설치 방법같은 것은 웹검색을 하면 빵빵하게 나올 것이니 그쪽을 참조하는 편이.. 귀찮아.. -_-;;

http://felicity.tistory.com/584 여기에 설치하는 방법 있음...
뉘신지는 모르지만..

대충 설치를 끝내고 몇가지 업데이트 작업을 해준다. 추가로 ssh 를 설치해서 putty 와 같은 터미널을 사용하여 작업을 할 것이다.
$ sudo apt-get update
...
$ sudo apt-get upgrade
...
$ sudo apt-get install ssh
...
$ sudo apt-get install vim
...

ssh 를 설치했으므로.. 이제부터는 터미널로 붙어서 작업을 하면 될 듯 하다.

아... 좀더 예쁜 프롬프트에서 작업하고 싶다면... 여기 를 참조하면 될듯.. ㅋㅋ

vim 세팅을 해주어 좀더 편하게 프로그래밍을 할 수 있도록 한다. 안해도 뭐...
$ vi .vimrc
set cindent
set ai
set si
set tabstop=4
set shiftwidth=4

syntax on

이것 저것 하려하면 한도 끝도 없는데.. 그냥 이정도로 한다.
더 필요하다면.. 웹검색 페이지에서 찾아서 하면 될 듯...

임베디드 리눅스관련해서 검색을 해보니.. NFS, SAMBA, TFTP.. 등 필요한 작업들이 있는 듯 하다. 뭐 필요할 때마다 포스팅을 하기로 하고.. 일단 오늘은 리눅스 깔고 기본적인 개발 환경 세팅까지 마무리!!!


'혼자서 놀기... > 순대보드(AHAV9302)' 카테고리의 다른 글

순대보드 u-boot - 2  (0) 2009.08.11
순대보드 u-boot - 1  (4) 2009.04.02
순대보드 CrossCompile 환경 - 2  (0) 2009.04.01
순대보드 CrossCompile 환경 - 1  (0) 2009.03.31
순대보드 - AHAV9302  (2) 2009.03.27
2009. 3. 27. 11:16

순대보드 - AHAV9302



"당근이의 AVR 갖고 놀기"라는 네이버 까페에서 예전에 공동 구매를 했었던 "AHAV9302" 일명 "순대보드"라는 녀석을 구해서 이런 저런 것들을 해보려 한다.

ARM9 보드로 자세한 스펙같은 것은 제조사인 Cirrus Logic 사이트에서 확인할 수 있다.

홈페이지에 나와있는 스펙을 보면 다음과 같다.
  • 200 MHz ARM920T processor
    • 16 KB data cache and 16 KB instruction cache
    • MMU enabling Linux® and Windows CE®
    • 100 MHz system bus
  • MaverickCrunch™ math engine
    • Floating point, integer and signal-processing instructions
    • Optimization for digital music compression algorithms
    • Hardware interlocks allow in-line coding
  • MaverickKey™ IDs for digital rights management or design IP security (special order feature)
    • 32-bit unique ID
    • 128-bit random ID
  • Integrated peripheral interfaces
    • Five-input A/D converter with 12-bit resolution
    • 1/10/100 Mbps Ethernet MAC
    • Two-port USB 2.0 Full Speed host (OHCI)
    • Two UARTs (16550 type), including soft modem support
    • IrDA interface, slow mode
    • SPI port
  • Interfaces for AC '97 and I²S
  • External memory options
    • 16-bit SDRAM interface, up to two banks
    • 16/8-bit SRAM/Flash/ROM I/F
    • Serial EEPROM interface
  • Internal peripherals
    • Real-time clock with software trim
    • 12 DMA channels for data transfer that maximizes system performance
    • Boot ROM
    • Dual PLLs to control all clock domains
    • Watchdog timer
    • Two general-purpose 16-bit timers
    • General-purpose 32-bit timer
    • 40-bit debug timer
  • General-purpose I/Os (GPIOs)
    • 16 enhanced GPIOs including interrupt capability
    • Eight additional optional GPIOs multiplexed on peripherals
  • Lead-free package

최종적으로 순대보드란 녀석은...
이렇게 생겨먹었다.. ㅋ
사진은 DIYTOY 네이버 카페에서 사알짝 퍼왔음..

꽤 단순해 보이기도 하고 LCD도 없고.. 한데.. 이걸로 뭘 해야할까?? -_-;;


'혼자서 놀기... > 순대보드(AHAV9302)' 카테고리의 다른 글

순대보드 u-boot - 2  (0) 2009.08.11
순대보드 u-boot - 1  (4) 2009.04.02
순대보드 CrossCompile 환경 - 2  (0) 2009.04.01
순대보드 CrossCompile 환경 - 1  (0) 2009.03.31
순대보드 사전 작업??  (0) 2009.03.30