기타

KuroBOX HG에의 인스톨

kuro-box_hg.jpg

KuroBOX/HG스펙

CPU PowerPC 266MHz
RAM 128MB
Flash ROM 4MB
LAN 1000BASE-T/100BASE-TX/10BASE-T×1 포트
외부 IO USB2.0×2 포트
HDD 3.5 인치 UltraATA 1개를 별도 준비.
OS 디폴트에서는 Montavista Linux(Kernel2.4.17)

인스톨의 흐름

 Debian, Vine, GentooLinux에서 동작하고 있지만, 패키지의 풍부함, 쉬운 업그레이드로 인해 Debian를 추천합니다. 대략의 순서는 이하와 같습니다.

  1. 여기에서 Debian 이미지를 다운로드
  2. KuroBOX 부속 CD에 동봉되고 있는 KuroBoxSetup.exe를 사용해 이미지를 KuroBOX에 전개
  3. 이 단계에서는 Debian3.0(Woody)이므로, Debian3.1(Sarge)으로 업그레이드 합니다.
  4. pkg_install_debianSarge.sh로 패키지를 인스톨
  5. OpenRTM-aist-0.4.0을 빌드, 인스톨

이와 같이, Debian 인스톨 후는 i386의 Debian와 같은 순서로 인스톨 할 수 있습니다.

OS교체

kernel image의 입수

 OS의 교체 방법에 대해서는 아래에서 다운로드해 주십시오.

 다운로드한 이미지를, 이 후의 순서에 필요한 이름으로 rename 하고 ZIP파일을 이하에 둡니다.

인스톨러의 준비

 KuroBOX 부속 CD-ROM의 내용을 적당한 디렉토리에 복사합니다. KuroBoxSetup.exe가 존재하는 장소(CD-ROM의 루트)에 있는 image.zip를 image.zip.org등으로 rename 해 앞에서 다운로드한 image.zip를 대신에 여기에 둡니다.

EM 모드로 변경

 KuroBOX를 EM모드로 변경합니다. 참고

 EM모드는 인스톨러가 인식 가능한 모드로 KuroBoxSetup.exe를 사용해 이미지를 전송하려면 이 모드로 할 필요가 있습니다. 구입 직후 HDD를 연결한지 얼마 안된 때는 이 모드가 되어 있습니다.

 이미 KuroBOX 부속의 Linux를 인스톨 하고 있는 경우는, 이하와 같이 EM모드로 변경할 수 있습니다.

 EM모드로 변경
 # echo -n 'NGNG' > /dev/fl3
   혹은
 # /usr/bin/write_ng
 # reboot
 전원을 꺼, 재차 전원을 넣는다

 EM모드로부터 돌아온다
 # echo -n 'OKOK' > /dev/fl3
   혹은
 # /usr/bin/write_ok
 # reboot

 혹은, HDD의 파일 시스템을 파괴하는 것으로 강제적으로 EM모드로 할 수 있습니다.
 # rm -rf /
   혹은
 # dd if=/dev/zero of=/dev/hda bs=1024 count=1024

이미지의 전송

 KuroBOX가 EM모드가 되면 방금전 Debian의 이미지로 바꾸어 넣은 KuroBOX 인스톨러의 KuroBoxSetup.exe를 기동하고, 새로운 이미지로 셋업 합니다. KuroBoxSetup.exe를 기동해도 [KuroBOX가 찾을 수 없습니다.] 라고 하는 메세지가 나오면, EM모드로 되어 있지 않을 가능성이 있습니다. 아무 일도 없으면 셋업은 완료하고 KuroBOX를 재기동 하면 사용 가능하게 됩니다.

설정

 상기의 Debian 이미지로 바꾸어 넣은 KuroBOX의 디폴트의 설정은 이하와 같습니다.

디폴트 유저
유저명 tmp-kun
패스워드 tmp-kun
root
유저명 root
패스워드 root
네트워크 설정
IP주소 192.168.0.100
Gateway 주소 192.168.0.1
DNS 주소 192.168.0.1

 IP주소는 고정입니다. 설정을 하는 PC에는 터미널 소프트를 인스톨 하고, IP주소를 KuroBOX에 연결되도록(192.168.0.1 mask 255.255.255.0 등) 설정해 LAN로 접속합니다.

 telnet 192.168.0.100
 Debian GNU/Linux 3.0 KURO-BOX
 KURO-BOX login: tmp-kun
 Password: tmp-kun
 중략:
 Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
 permitted by applicable law.
 KURO-BOX:~> su
 # 

어카운트 tmp-kun으로 로그인해 root가 되어 설정을 실시합니다.

예를 들어, IP주소를 설정하려면,

 # vi /etc/network/interfaces
 IP주소를 편집
 
 # vi /etc/hosts.allow
 hosts.allow를 편집

 IP주소를 변경했을 경우 hosts.allow도 잊지 않고 변경합니다. 이것을 하지않고 디폴트와 다른 네트워크 주소로 하면 두 번 다시 로그인할 수 없게 됩니다.

Sarge를 업그레이드

 이 단계에서는 Debian3.0(Woody)이 인스톨 되어 있습니다.  현행 버전 Debian3.1(Sarge)으로 업그레이드 한다.

/etc/apt/sources.list의 편집

디폴트의 /etc/apt/sources.lismaruiha\t는 sources.list.org 등으로 rename하여, 이하의 2행을 sources.list에 추가합니다.

 deb http://cdn.debian.or.jp/debian/ sarge main contrib non-free
 deb-src http://cdn.debian.or.jp/debian/ sarge main contrib non-free

수정이 끝나면,

 apt-get update
 apt-get dist-upgrade 

업그레이드때, 여러가지를 묻지만 기본적으로 디폴트로 해도 됩니다. 단, /etc/init.d/halt를 수정하기 때문에 전원 버튼에 의한 shutdown가 무효되므로, /etc/init.d/halt의 PATH의 다음의 행에

 PATH=/sbin:/bin:/usr/sbin:/usr/bin
 echo -n "EEEE" > /dev/ttyS1
 sleep 3

2행 추가한다.

TIPS

xterm, kterm을 인스톨 해 두면 리모트로부터 액세스 할 때 편리합니다만, 디폴트의 상태로는 xterm, kterm 모두 pty 주위의 에러로 기동하지 않습니다. /etc/fstab를 이하와 같이 변경할 필요가 있습니다.

 /etc/fstab
 none   /dev/pts     devpts  gid=5,mode=20           0 0
 ↓이와 같이 변경
 none   /dev/pts     devpts  gid=5,mode=620          0 0

xterm, kterm을 인스톨 합니다. XLib 관계도 동시에 인스톨 되므로, 용량에 주의.

 # apt-get install xterm
 # apt-get install kterm

OpenRTM-aist의 빌드

패키지의 인스톨

패키지의 인스톨에는 OpenRTM-aist-0.4.0 부속의 Debian용 패키지 인스톨러(pkg_install_debianSarge.sh)를 그대로 사용할 수 있습니다. OpenRTM-aist-0.4.0의 소스 전개 후, 사용자를 root로 변경하여 build 디렉토리 아래의 pkg_install_debianSarge.sh를 실행할 뿐입니다.

 > tar xvzf OpeNRTM-aist-0.4.0.tar.gz
 > cd OpenRTM-aist-0.4.0
 > cd build
 > ls
 생략
 README.Debian  makewrapper.py             pkg_install_vl32.sh
 autogen        pkg_install_debianSarge.sh  pkg_install_vl4.sh
 생략
 > su
 # ./pkg_install_debianSarge.sh

이것으로 패키지의 인스톨은 완료입니다.

OpenRTM-aist의 빌드

이후는 통상의 PC와 완전히 같습니다.

 > cd OpenRTM-aist-0.4.0
 > ./configure
 > make
 > su
 # make install

다만, 빌드에는 상당한 시간(1시간 45분 전후)을 필요로 합니다.

 > time make
 6048.130u 156.950s 1:43:36.53 99.8%     0+0k 0+0io 762267pf+0w

사례

KuroBOX에의 OpenRTM-aist의 인스톨에 대해 (株)前川製作所 技術研究所 基盤技術開発G 山下智輝씨의 OpenRTM-aist-0.2.0 인스톨 리포트가 참고 되었습니다. 또, 아래와 같은 Web 페이지의 참고로 했습니다. 감사합니다.

KuroBox PRO에의 인스톨

kuro-box_pro.jpg

KuroBox PRO 스펙

CPU Marvell88F5182 (ARM9Core/400MHz)
RAM 128MB(DDR2)
Flash 메모리 256MB(NAND) /Linux2.6.12.6
LAN 1000BASE-T/100BASE-TX/10BASE-T×1 포트
외부 IO USB2.0×2 포트, S-ATA×2, PCIex1×1, UART×1, GPIO×2, I2C×1, JTAG(ARM20pin)
HDD 3.5 인치 S-ATA 1개를 별도 준비.

인스톨의 흐름

KuroBox PRO의 Debian화에 대해서는 몇가지 예가 있습니다만, sushi-k일지2 라는 웹페이지에 가장 쉽게 Debian화할 수 있는 방법이 소개되고 있으니 참고해 주십시오.
  • sushi-k일지2 웹페이지의 순서에 따라서 Debian화한다.
  • 필요한 패키지를 apt-get로 인스톨(혹은 인스톨 스크립트를 사용)
  • OpenRTM-aist의 빌드
  • 인스톨

OS교체

sushi-k일지2 웹페이지의 순서로 사용하는 하드 디스크는 포맷되지 않는 것이 필요합니다.

tar의 교체

BusyBox의 tar는 사용할 수 없기 때문에 tar를 바꿔 넣습니다.

 # wget http://w3.quake3.jp/sushi-k/pool/kuropro/debian/gnutar_kuropro.gz
 Windows로부터 samba 경유로 KuroBox에 전송 해도 상관하지 않습니다
 # gzip -dc gnutar_kuropro.gz >/bin/tar
 # chmod a+x /bin/tar [Enter]

Debian화 킷의 인스톨

Debian화 킷을 다운로드해 루트에 전개합니다.

 # wget http://w3.quake3.jp/sushi-k/pool/kuropro/debian/debian_kit.tar.gz [Enter]
 # tar xvzpf debian_kit.tar.gz -C / [Enter]

Debian 이미지의 전송

KuroBox PRO는 공유 디렉토리의 mtd device (/mnt/mtd)에
  • uImage.buffalo
  • hddrootfs.tar.gz
  • ChangeMeDevHDD
  • ChangeMyUbootEnv

를 넣고, 뒷면의 리셋 스위치를 길게 누르면, HDD 부트용의 시스템 구축을 자동으로 개시합니다.(메뉴얼에 기술되어 있음) 거기서, Debian의 디스크 이미지를 여기 에서 다운로드하여 이러한 파일을 mtd device에 둡니다. Windows로부터 samba 경유라도 좋으며, wget로 취득해도 OK.

HDD 부트 환경 구축

 뒷면의 리셋 스위치를 5초 정도 길게 누릅니다.  그러면, 전면의 오렌지 색의 info 램프가 점멸되고 HDD의 파티션 설정, 포맷, 이미지의 전개등을 진행합니다.  이러한 작업중도 로그인한 채로 안의 상태를 볼 수 있으므로, 로그아웃 할 필요는 없습니다. info 램프의 점멸이 사라지면 작업이 종료된 것입니다. 재기동하면 Debian화 된 KuroBox가 기동할 것입니다.

설정

 재기동 직후, 이 시스템은 이하의 설정으로 되어 있습니다.

IP 주소 192.168.1.81
root 패스워드 kuroadmin

로그인은 ssh에서만 가능하므로, 적당한 ssh 클라이언트로부터 로그인해 설정합니다.

OpenRTM-aist의 빌드

패키지의 인스톨

패키지의 인스톨에는 OpenRTM-aist-0.4.0 부속의 Debian용 패키지 인스톨러(pkg_install_debianSarge.sh)를 그대로 사용할 수 있습니다. OpenRTM-aist-0.4.0의 소스 전개 후, 사용자를 root로 변경해 build 디렉토리 아래의 pkg_install_debianSarge.sh를 실행합니다.

 > tar xvzf OpenRTM-aist-0.4.0.tar.gz
 > cd OpenRTM-aist-0.4.0
 > cd build
 > ls
 생략
 README.Debian  makewrapper.py             pkg_install_vl32.sh
 autogen        pkg_install_debianSarge.sh  pkg_install_vl4.sh
 생략
 > su
 # ./pkg_install_debianSarge.sh

이것으로 패키지의 인스톨은 완료입니다.

OpenRTM-aist의 빌드

 이후는 일반 PC와 완전히 같습니다.

 > cd OpenRTM-aist-0.4.0
 > ./configure
 > make
 > su
 # make install

다만, 빌드에는 상당한 시간(1시간 45분 전후)을 필요로 합니다.

 > time make
 5898.850u 251.470s 1:43:47.10 98.7%     0+0k 0+0io 278pf+0w

KuroBox HG와 그다지 큰 차이 없습니다.

링크

Armadillo240에서 RT컴포넌트를 기동

a220-angle-250.jpg a240-long-150.jpg

Armadillo240는 アットマークテクノ에서 판매하고 있는, ARM를 탑재한 Linux탑재 가능한 소형 CPU보드입니다.

Atmark Techno, Inc.에서 ATDE2(Atmark Techno Development Environment)와 GNU 크로스 개발툴, AtmarkDist라고 하는 3개의 개발툴이 제공되어 간단하게 크로스 개발을 실시할 수 있습니다.
여기에서는 Armadillo로 실행할 수 있는 RT컴포넌트의 실행 파일을 크로스 개발합니다. 그 후, Armadillo 기동해 RT컴포넌트가 자동으로 기동하는 이미지 파일(romfs:루트 파일 시스템)을 작성합니다.

작업의 흐름

  • 크로스 개발 환경의 정비
  • ATDE2의 정비(필요한 패키지의 인스톨)
  • OpenRTM-aist의 크로스 컴파일과 인스톨
  • RT컴포넌트의 크로스 컴파일
  • Armadillo240상에서 실행 파일을 기동
  • Armadillo240의 이미지 파일을 작성
  • RtcLink상에서 동작 확인

크로스 개발 환경의 구축

Armadillo로 실행할 수 있는 RT컴포넌트의 실행 파일을 크로스 컴파일로 작성합니다. Atmark Techno, Inc.에서 Armadillo 시리즈의 개발 환경이 VM이미지로 배포되고 있어 크로스 개발 환경에 필요한 툴이 사전에 인스톨 되어 있습니다.

ATDE2와 VMware의 다운로드

ATDE2
ATDE2(Atmark Techno Development Environment)는 AtmarkTechno로부터 배포되고 있는 Admadillo의 크로스 개발 환경을 위한 VMware용의 가상 PC이미지입니다. 실체는 Debian GNU Linux로 크로스 개발에 필요한 툴 체인이 미리 인스톨 되어 있습니다.
    • 여기에서 무료로 다운로드 받을 수 있습니다.
VMware Player
VMware Inc. 에서 무료로 배포되고 있는 가상 PC소프트로 VMware의 가상 PC이미지를 실행할 수 있습니다. ATDE2를 기동하기 위해서 필요합니다. Windows버전과 Linux버전이 있습니다만, 이하 Windows버전의 VMware Player를 사용하는 것으로서 진행합니다.
    • 여기에서 무료로 다운로드 받을 수 있습니다.

ATDE2와 VMware의 기동

  • VMware로 ATDE2를 기동합니다.

※ATDE2-20071018.zip파일의 압축을 해제해 폴더안의 ATDE2.vmx를 더블 클릭 또는 VMware의 [file]-[Open]에서 압축을 해제한 폴더안의 ATDE2-20071018의 ATDE2.vmx를 선택해 주십시오.

ATDE.png
VMware로 ATDE2를 기동

  • ”이 가상 머신을 기동”으로 기동합니다.
  • 로그인 작업은 없고 ATDE2의 Desktop가 표시됩니다.

ATDE2 개발 환경의 정비

ATDE2는 이미 크로스 컴파일 환경이 갖추어지고 있습니다만, OpenRTM의 RT컴포넌트를 크로스 개발할 수 있는 환경으로 정리할 필요가 있습니다. 기동한 ATDE2상에서 이하의 소스와 셸 스크립트를 다운로드해 홈 디렉토리 이하의 적당한 작업 디렉토리에 넣어 둡니다.

    • config100.sh
      • 전개한 OpenRTM-0.4.2.tar.gz, 또는 OpenRTM-1.0.0.tar.gz 중에서 실행해, 크로스 컴파일에 필요한 옵션을 지정하고 configure를 실시할 수 있습니다.
      • OpenRTM-0.4.2 대응, OpenRTM-1.0.0 대응으로 나누었습니다.2010/01/21
    • arm-cross-install.sh
      • OpenRTM-1.0.0 대응이 되었습니다.2009/12/28
      • OpenRTM의 ARM 크로스 컴파일 환경을 Debian 호스트에게 구축합니다.
  • arm-cross-install.sh는 apt-get 커멘드로 deb 패키지를 다운로드합니다. deb 패키지를 두고 있는 URL를 sources.list에 추가합니다. su커멘드로 사용자를 root(패스워드:root)로 바꿔 /etc/apt/sources.list에 아래의 URL를 추가해 주세요.
     deb http://downloads.pylone.jp/cross-toolchain/deb ./
     deb http://www.openrtm.org/pub/Linux/debian/ etch main
  • root인 상태로 apt-get 커멘드로 패키지를 인스톨 합니다.
     # apt-get update
     # apt-get install python-yaml  (yes 또는 Y를 입력해 인스톨을 완료해 주세요.)
    • python-yaml 패키지는 OpenRTM의 인스톨 후, rtc-template에서 필요합니다.
  • arm-cross-install.sh로 OpenRTM-aist의 ARM 크로스 컴파일 환경을 구축합니다. 다수의 데이터가 다운로드되므로 적당한 작업 디렉토리를 작성해 그 중에 arm-cross-install.sh를 실행해 주십시오.
     # sh arm-cross-install.sh  (yes 또는 Y를 입력해 인스톨을 완료해 주세요.)
    • arm-cross-install.sh를 실행하는 것으로 OpenRTM-aist를 크로스 컴파일 하기 위해서 필요한 패키지군이 다운로드·인스톨 됩니다만, 그 부작용으로서 gdm등의 일부의 패키지가 삭제되어 버립니다. gdm가 삭제되면 그래피컬한 데스크탑 화면이 나오지 않게 되어 버리기 때문에, 되돌리고 싶은 경우는 이하와 같이 gdm를 재차 인스톨 다시 합니다.
       # apt-get install gdm   (yes 또는 Y를 입력해 인스톨을 완료해 주세요.)
       # /etc/init.d/gdm start
  • 이상으로 ATDE2 환경의 정비는 완료입니다.

OpenRTM-aist의 크로스 컴파일

OpenRTM-aist의 빌드

OpenRTM-aist-0.4.2의 소스 코드를 홈 디렉토리 등의 적당한 디렉토리에 압축을 해제해 주십시오. 압축해제 후, 작성된 디렉토리로 이동합니다.

 # tar zxvf OpenRTM-aist-0.4.2.tar.gz
 # cd OpenRTM-aist-0.4.2
통상, 여기서 configure를 실행합니다만 OpenRTM를 크로스 컴파일 하려면 configure에 적절한 옵션을 지정할 필요가 있습니다. 위에서 다운로드한 config.sh를 사용하면, 크로스 컴파일에 필요한 옵션을 지정해 configure를 실행할 수 있기 때문에, 여기에서는 config.sh를 사용합니다. config.sh를 현재의 디렉토리에 복사해 인스톨한 디렉토리를 인수로 지정해 실행합니다.
 # cp ../config.sh ./
 # sh config.sh /usr/arm-linux-gnu
config.sh가 정상적으로 종료한 것을 확인해 주세요. 빌드가 정상적으로 종료하면 make 합니다.
 # make
인스톨 하기 위해서는 적어도,
 OpenRTM-aist-0.4.2/rtm
 OpenRTM-aist-0.4.2/rtm/idl
 OpenRTM-aist-0.4.2/utils/rtm-config
 OpenRTM-aist-0.4.2/utils/rtm-naming
 OpenRTM-aist-0.4.2/utils/rtc-template
이하의 디렉토리가 정상적으로 빌드 되어 있을 필요가 있습니다. 빌드가 정상적으로 종료하면 헤더 파일, 라이브러리, 유틸리티 커멘드군을 인스톨 합니다.

OpenRTM-aist의 인스톨

config.sh로 지정한 /usr/arm-linux-gnu/에 인스톨 됩니다.
 # make install
/usr/arm-linux-gnu/share/examples/에 샘플 실행 파일이 생성되어 있습니다.

RT컴포넌트의 크로스 개발

이상으로, RT컴포넌트를 크로스 개발하는 환경이 갖추어졌습니다. 여기에서는 예로서 샘플에 포함되는 SeqOutComp의 소스를 사용해 크로스 컴파일 해 보겠습니다.

RT컴포넌트의 크로스 개발

  • RT컴포넌트를 크로스 개발하려면, 크로스 개발용의 커멘드를 사용할 필요가 있으므로, 이하와 같이(/usr/arm-linux-gnu/bin) 패스를 설정합니다. 패스를 설정할 때에, /usr/arm-linux-gnu/bin가 PATH의 선두가 되도록 주의해 주십시오.
     > export PATH=/usr/arm-linux-gnu/bin:$PATH

rtc-template로 SimpleIO의 RT컴포넌트를 생성한다.

샘플을 작성하기 위해 적당한 디렉토리를 작성해, 거기에 OpenRTM의 샘플 SeqOut의 소스에 포함되는 이하의 파일을 복사해 주십시오.

 SeqOutComp.cpp        SeqOut.h    SeqOut.cpp    Makefile.SeqOut

 > mkdir test
 > cp (인스톨 디렉토리)/OpenRTM-aist-0.4.2/examples/SeqIO/SeqOutComp.cpp ./test/
 (상기의 커멘드로 모두 복사해 주십시오.)

OutPort가 여덟 개 있는 SeqOutComp 컴포넌트를 생성합니다.

RT컴포넌트의 빌드

생성된, Makefile.SeqOut의 내용을 확인해 주십시오.CXX=로 시작되는 행이 없는 경우, 컴파일러에 크로스용의 컴파일러를 이하와 같이 지정할 필요가 있습니다.

 환경 변수를 설정해 make

 > CXX=arm-linux-gnu-g++ make -f Makefile.SeqOut
 또는,
 > export CXX=arm-linux-gnu-g++
 > make -f Makefile.SeqOut

make가 정상적으로 완료되면, SeqOutComp의 실행 파일이 생성됩니다.

RT컴포넌트의 실행

크로스 개발한 실행 파일, 라이브러리 등을 USB 메모리에 복사해, Armadillo240상에서 기동합니다.

USB 플래쉬 메모리의 준비

Armadillo240상에서 RT컴포넌트를 실행하는데 필요한 파일을 USB 메모리에 복사·생성합니다.

실행 파일
Armadillo240상에서 실행하고 싶은 RT컴포넌트의 실행 파일.

이 예에서는, 방금전 크로스 컴파일 한 SeqOutComp를 사용합니다. SeqOutComp를 USB 메모리의 적당한 장소(루트 디렉토리 등)에 복사합니다.

라이브러리
ATDE2의/usr/arm-linux-gnu/lib 이하에는 ARM용의 라이브러리가 저장되어 있습니다.

이 디렉토리내의 라이브러리 가운데, 이하의 것을 USB 메모리에 복사합니다.  USB 플래쉬 메모리에 라이브러리를 두는 디렉토리 lib를 작성합니다.

 >mkdir lib
 또는,
 GUI의 경우, 오른쪽 마우스 버튼 클릭으로 폴더를 작성합니다

/usr/arm-linux-gnu/lib의 라이브러리를 복사할 때에, 이하와 같이 이름을 변경해 주십시오.

  • OpenRTM-aist-0.4.2의 경우
    • 라이브러리명 변경  복사할 때에 이하와 같이 이름을 변경해 주십시오.
라이브러리명 라이브러리명 변경 후
libomniDynamic4.so.0.6 libomniDynamic4.so.0
libomniORB4.so.0.6 libomniORB4.so.0
libomnithread.so.3.1 libomnithread.so.3
libRTC-0.4.2.so.0.0.4 libRTC-0.4.2.so.0
librt.so.1 librt.so.1(변경 없음)
libACE.so.5.4.7 libACE.so.5.4.7(변경 없음)
  • OpenRTM-aist-1.0.0의 경우
    • 라이브러리명 변경
라이브러리명 라이브러리명 변경 후
libm-2.3.6.so libm.so.6
libomiDynamic4.so.0.6 libomniDynamic4.so.0
libomnithread.so.3.1 libomnithread.so.3
librt.so.1 librt.so.1(변경 없음)
libRTC-1.0.0.so.0.0.4 libRTC-1.0.0.so.0
libstdc++.so.6.0.8 libstdc++.so.6
libuuid.so.1.2 libuuid.so.1
rtc.conf
이하와 같은 rtc.conf를 텍스트 문자 편집기 등을 사용해 작성해 주십시오.

Armadillo상에서는 네임서버를 기동하지 않으므로 다른 PC상에서 네임서버를 기동해 주십시오. rtc.conf의 corba.nameservers의 옵션에는 그 네임서버를 기동한 PC의 주소를 지정합니다.

 corba.nameservers: 192.168.100.1 (자신의 네임서버 IP주소를 입력)
 naming.formats: %n.rtc

※ ATDE2로의 USB 메모리의 마운트
VMware(ATDE2)를 기동중에 PC에 USB 플래쉬 메모리를 넣으면 자동으로 마운트되어 Desktop상에서 확인할 수 있습니다.

자동으로 마운트되지 않을 때는 VMware(ATDE2)의 단말에서 su커멘드로 유저를 root로 변경하여 mount를 다시 합니다.

  • USB 메모리의 마운트
     > su
     # mkdir /mnt/(적당한 디렉토리)
     # mount -t vfat /dev/sdb1 /mnt/(위에서 작성한 디렉토리)
  • USB 메모리의 언마운트
      Desktop상에 USB 메모리의 아이콘이 표시되고 있을 때는 마우스 오른쪽 버튼 클릭>언마운트 해주십시오.
      또는, 콘솔로부터 커멘드로 언마운트 할 수 있습니다.
     # umount /mnt/(위에서 작성한 디렉토리)

USB 플래쉬 메모리의 디렉토리 구조

USB 플래쉬 메모리의 준비를 끝내면, USB 메모리는 아래와 같은 디렉토리 구조가 됩니다.

  • OpenRTM-aist-0.4.2

  USB 메모리 -+- lib --+- libomniDynamic4.so.0
                |     +- libomniORB4.so.0
                |     +- libomnithread.so.3
                |     +- libRTC-0.4.2.so.0
                |     +- librt.so.1
                |     +- libACE.so.5.4.7
               |
               +- SeqOutComp 
               |
               +- rtc.conf

  • OpenRTM-aist-1.0.0

  USB 메모리 -+- lib --+- libm.so.6
                |     +- libomniDynamic4.so.0
                |     +- ibomnithread.so.3
                |     +- librt.so.1
                |     +- libRTC-1.0.0.so.0
                |     +- libstdc++.so.6
                |     +- libuuid.so.1
               |
               +- SeqOutComp 
               |
               +- rtc.conf

Armadillo240로 실행 파일을 기동

USB 메모리의 마운트 설정, 라이브러리 PATH의 설정을 변경해 실행 파일을 기동합니다. PC와 Armadillo를 시리얼 케이블로 접속해 Armadillo상의 Linux의 시리얼 콘솔로부터 로그인하는 것으로 Armadillo상의 Linux를 조작할 수 있습니다. 이하의 하기 쉬운 방법으로 진행해 주십시오.

ATDE2상으로부터 minicom로 조작

ATDE2상으로부터 단말에뮬레이터의 프로그램minicom로 조작합니다. PC의 시리얼 포트와 Armadillo의 시리얼 포트를 시리얼 케이블로 접속해 주십시오. 시리얼 포트가 없는 PC의 경우는 USB 시리얼 변환 케이블 등을 사용할 필요가 있습니다. Armadillo의 시리얼 케이블의 접속 방법에 관해서는, Armadillo의 메뉴얼을 참조해 주십시오.

※VMware의 가상 머신의 디바이스의 설정을 이하와 같이 해 주십시오.

 도구모음>VM>설정>하드웨어 태그
  (VMwareWorkstation와 VMwareConsole로 설정할 수 있습니다.)
VMwareUseSerialSetting.png
VMware의 USB 시리얼 포트 설정

접속의 체크를 확인해 주십시오.

VMwareComSeting.png
VMware의 시리얼 포트 설정

디바이스 스테이터스의 체크와 접속>물리 시리얼 포트를 사용으로 포트를 확인해 주십시오. ATDE2의 단말로부터, 단말에뮬레이터 minicom를 기동합니다.

 > minicom
enter를 누르면 Armadillo240의 login 화면이 됩니다. 이후는 공통의 조작으로 진행해 주십시오.

Windows로부터 단말에뮬레이터(teraterm)로 조작

Windows에서 TeraTerm 등의 단말에뮬레이터를 사용해 Armadillo의 시리얼 콘솔과 접속할 수도 있습니다. TeraTerm는 여기에서 무료로 다운로드할 수 있습니다. 이하의 설정으로 기동해 주십시오.

  • 도구모음>설정>시리얼 포트 설정>
    • 포트/임의
    • baud rate/115200
    • 데이터/8bit
    • 패리티/none
    • 스톱/1bit
    • flow 제어/none

상기의 설정으로 기동하면, Armadillo240의 로그인 화면이 표시됩니다. ※표시되지 않을 때는 Enter를 눌러주십시오. 이후는 공통의 조작으로 진행해 주십시오.

공통의 조작

USB 메모리를 Armadillo에 꼽아 주십시오. Armadillo의 로그인 화면에서 root(패스워드 :root)로 로그인해 주십시오. 디폴트의 mount는 옵션(umous=111)으로, 어느 유저도 실행을 할 수 없는 퍼미션 설정입니다.

한 번 언마운트 하고 나서, 기입·실행 가능한 -o rw옵션으로 재마운트 합니다.

 # umount /dev/sda1
 # mount -t vfat -o rw /dev/sda1 /home/www-data/storage/
라이브러리 패스를 설정하기 위해, 커멘드로 유저를 게스트로 변경해 USB 메모리로 이동합니다.
 # su guest
 > cd /home/www-data/storage
라이브러리의 패스를 설정합니다.(라이브러리가 놓여져 있는 디렉토리를 지정해 주십시오.)
 > export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/home/www-data/storage/
 > ./SeqOutComp (실행 파일이 실행되었습니다)
RT컴포넌트가 기동합니다.

※RtcLink로부터도 확인할 수 있습니다.

이 방법에서는 Armadillo의 기동을 할 때마다 설정을 수정하지 않으면 안됩니다. 다음의 장에서는, Armadillo의 기동 후 RT컴포넌트가 자동으로 기동하는 이미지 파일을 작성해 Armadillo에 다운로드합니다.

Armadillo240의 이미지 파일을 작성한다

지금까지 방법으로는 Armadillo의 기동 마다 단말 에뮬레이터로 설정을 변경할 필요가 있습니다. 여기에서는 AtmarkTechno,Inc로부터 제공되고 있는 atmark-dist를 사용해, Armadillo240의 기동 후 RT컴포넌트가 자동으로 기동하는 이미지 파일을 작성해 Armadillo에 다운로드합니다.

개발 환경의 정비

 RT컴포넌트를 크로스 컴파일 한 ATDE2의 환경을 그대로 사용합니다. ATDE2상에 이하의 항목을 다운로드해 주십시오.

Atmark-dist
Armadillo의 userland의 이미지 파일을 작성합니다.
    • 여기에서 무료로 다운로드 할 수 있습니다.
Linux 커널
Atmark-dist로 이미지 파일을 작성할 때 필요합니다.
    • 여기에서 무료로 다운로드 할 수 있습니다.(Armadillo240의 경우)
    • openrtm_new.patch, Atmark-dist(2009/03/18)의 ver 업에 수반해 patch 파일을 수정했습니다.(2010/02/12)

atmark-dist의 빌드와 설정

여기에서는 Armadillo의 userland의 이미지 파일을 작성합니다. 여기서 작성하는 이미지 파일을 사용하면, USB 메모리에 미리 인스톨 된 RT컴포넌트를 자동적으로 기동할 수 있게 됩니다.

RT컴포넌트의 기동의 구조

USB 메모리를 /home/openrtm/에 마운트해 Armadillo의 기동 후 /home/openrtm/boot.sh를 기동시킵니다. boot.sh는 USB 메모리내의 라이브러리 패스를 통해 실행 파일을 기동합니다.
  • OS의 설정
    • USB 메모리를 쓰기, 실행 가능하게 /home/openrtm/에 마운트한다.
    • USB 메모리마운트시에, USB 메모리 바로 밑의 boot.sh를 기동한다.
  • USB 플래쉬 메모리의 내용
    USB 메모리에 이하의 파일을 준비해 주십시오.
boot.sh
Armadillo240 기동 후, 기동하는 셸 스크립트입니다. USB 메모리의 바로 밑에 아래와 같은 boot.sh를 준비해 주십시오. 라이브러리 PATH를 통해, 실행 파일을 기동합니다.
    •  ※rtc.conf를 USB 메모리 바로 밑에 라이브러리를 lib디렉토리에 두었을 때의 설정입니다. USB 메모리의 디렉토리 구조에 따라 수정해 주십시오.

 #!bin/sh
 . /etc/default/openrtm.conf
 export LD_LIBRARY_PATH=$LIBPATH:/home/openrtm/lib/
 /home/openrtm/SeqOutComp(실행 파일명)  -f  /home/openrtm/rtc.conf

atmark-dist 빌드

ATDE2상에서, atmark-dist와 linux커널, openrtm.patch를 다운로드해 압축을 해제해 주십시오.

 > tar zxvf atmark-dist--20090318.tar.gz
 > tar zxvf linux-2.6.12.3-a9-15.tar.gz
압축을 해제한 atmark-dist의 디렉토리로 이동해, linux커널의 심볼릭 링크를 합니다.   ※링크 이름은 linux의 ver에 관계없이 ./linux-2.6.x로 해주십시오.
 > ln -s ../linux-2.6.12.3-a9-15 ./linux-2.6.x 
make config합니다. 이후의 질문에는 아래와 같이 입력해 주십시오.
 > make config
 Select the Vendor you wish to target  :Atmarktechno(입력)
 Select the Product you wish to target  :Armadillo-240.Recover(입력)
 Kernel is linux-2.6.x            :default(enter해도 OK)
 defined CONFIG_DEFAULTS_CROSSDEV_DEFAULT:none(enter해도 OK)
 Default all settings            :y(입력)
 Customize Kernel Settings          :n(enter해도 OK)
 Customize Vendor/User Settings       :n(enter해도 OK)
 Update Default Vendor Settings       :n(enter해도 OK, 종료)

openrtm.patch를 복사해 이하의 순서로 패치를 해주십시오.

 > cp openrtm.patch /atmark-dist-YYYYMMDD/vendor/AtmarkTechno/Armadillo-240.Recover/openrtm.patch
 > cd /atmark-dist-YYYYMMDD/vendor/AtmarkTechno/Armadillo-240.Recover/
 > patch -p1 <openrtm_new.patch
 (패치 종료) atmark-dist-YYYYMMDD디렉토리로 이동해, make dep all해주십시오.
 > cd ../../../
 > make dep all
make dep all중 이하와 같은 에러 메세지가 표시됩니다만, romfs는 정상적으로 생성됩니다.
 /bin/sh: extensions/.dccp-test: 허가가 없습니다
 /bin/sh: extensions/.layer7-test: 허가가 없습니다
 /bin/sh: extensions/.statistic-test: 허가가 없습니다
 make[2]: 디렉토리 `/home/atmark/Desktop/foratde/forkernel/atmark-dist-200807 17/user/iptables'에 들어갑니다
 romfs-inst.sh /bin/iptables
 romfs-inst.sh -l /bin/iptables /bin/iptables-save
 ln: `/bin/iptables'에 액세스중: 그런 파일이나 디렉토리는 없습니다
 romfs-inst.sh -l /bin/iptables /bin/iptables-restore
 ln: `/bin/iptables'에 액세스중: 그런 파일이나 디렉토리는 없습니다
make 종료후, images 디렉토리에 4개의 파일이 생성됩니다.
 > ls images
  linux.bin linux.bin.gz romfs.img romfs.img.gz
다음의 장에서 romfs.img.gz를 Armadillo에 씁니다.

이미지 파일을 Armadillo240에 다운로드한다

생성한 userland의 이미지 파일 romfs.img.gz를 Armadillo240에 다운로드합니다. Armadillo는 점퍼핀(2)을쇼트 해, 전원을 넣어 두어 주십시오(Armadillo하드웨어 메뉴얼 의 16P를 참고해주십시오)

VMware(ATDE2), Windows 어느 쪽에서에서도 다운로드할 수 있습니다.

ATDE2상으로부터 다운로드한다

여기 에서 VMware의 가상 머신의 디바이스 설정을 실시하고 나서 진행해 주십시오.

  • Armadillo-240와 PC를 USB 시리얼 케이블(또는 시리얼 케이블)로 연결합니다.
  • ATDE2의 단말 콘솔로부터 hermit로 images/romfs.img.gz를 다운로드합니다.
     > hermit download -i images/romfs.img.gz -r userland --port /dev/ttyUSB0 (또는, /dev/ttyS0) 
 다운로드는 8분 정도 걸립니다.
  • completed라고 표시되면 완료입니다. serial: completed 0x004455fd (4478461) bytes. (완료)
       

    Windows상에서 다운로드한다

Armadillo240의 본체와 함께 제공되고 있는 CD-ROM의 downloader>win32>Hermit.zip를 Widows상에 놓아주십시오.

  • Windows상에 Hermit.zip의 압축을 해제하고 Hermit.exe를 더블 클릭으로 기동합니다.
    hermit.png

    Windows상의 Hermit
  • Armadillo240를 PC 시리얼 포트로 접속해 주십시오.
  • ATDE2에 생성된 romfs.img.gz를 windows상으로 이동해 주십시오.
  • 표시된 다이얼로그로 시리얼 포트를 설정해, Download를 누릅니다. images로 작성한 romfs.img.gz를 Region으로 userland를 설정해 실행 버튼을 눌러 다운로드합니다.(8분 정도 걸립니다.)
  • 다운로드가 완료되면 Hermit에 표시됩니다.

RT컴포넌트의 실행·확인

RTCLink를 기동해 RT컴포넌트의 기동을 확인합니다.

  • 이미지 파일의 다운로드 완료 후, Armadillo의 점퍼핀(2)의 쇼트를 해제해, 재기동합니다.
  • RT컴포넌트를 실행할 때, rtc.conf로 지정한 네임서버를 기동합니다.
    • Windows의 경우
      • 프로그램 메뉴의 「OpenRTM-aist」→「example」→「NameService.bat」를 실행합니다.
      • 혹은, OpenRTM-aist\bin에 있는 rtm-naming.bat를 더블 클릭 해 기동합니다.
    • linux의 경우
      • su커멘드로 유저를 root로 변경하여 네임서버를 기동합니다.
         > su
         # /etc/init.d/omniorb4-nameserver start
  • RTCLink를 기동해 네임서버에 컴포넌트가 생성되어 있는 것을 확인해 주세요.
    • ※네임서버가 표시되어 있지 않을 때는 Connect Name Server 버튼을 눌러 네임서버를 추가 접속해 주십시오.

응용예

Armadillo + URG 센서

Armadillo와 호쿠요 전기 URG 센서와 조합해 분산 센서 시스템을 간단하게 구축하기 위한 유닛입니다. Armadillo상에서는 URG 센서 RT컴포넌트가 동작합니다.(Armadillo 전원을 켬과 동시에 RTC가 자동 기동합니다.) PoE (Power over Ether) 대응의 Armadillo를 사용하는 것으로 LAN 케이블만으로 통신 및 전원공급이 가능합니다. URG 센서도 PoE 로부터의 전원 공급으로 동작합니다. 케이블 1개만으로 센서 배치가 가능하므로, 분산 센서 시스템을 용이하게 구축할 수 있습니다.

Armadillo_URG.png
분산 LRF 유닛

Armadillo_URG3.png
PoE (Power over Ether) HUB에 의해 전원 공급이 가능