개요
시리얼 포트를 연결하는 방법
EZ-X5 커널 2.4 에서 설정하는 방법
EZ-X5 커널 2.6 에서 설정하는 방법

개요

EZ-X5에는 총 3개의 시리얼 포트가 있습니다. 이번 시간에는 EZ-X5에서 제공하는 3개의 시리얼 포트를 모두 통신에 사용하는 방법을 알아 보도록 하겠습니다.

EX-X5의 시리얼 포트 구성은 아래의 그림과 같습니다.

그러나!! EZ-X5도 커널 2.6 이상으로 업데이트하셨다면 각 시리얼 포트의 장치명은 아래와 같이 변경됩니다.

이 포트 중에 ttyS02(커널 2.6에서는 ttyPXA02)는 제품 출하 시 콘솔포트로 설정되어 있기 때문에 시리얼 통신으로 사용할 수 없습니다. 그러나 EZ-BOOT 모드의 set 메뉴를 이용하면 콘솔포트인 ttyS02(커널 2.6에서는 ttyPXA02)도 시리얼 통신으로 이용할 수 있습니다.

콘솔포트를 시리얼포트로 사용할 때 주의점 콘솔포트를 시리얼포트로 설정해도 부트로더가 부팅하여 커널이 부팅하기 전까지는 콘솔포트로 부트로더의 부팅 메시지가 출력됩니다. 그러므로 보드가 부팅 후에 부트로더의 부팅 메시지가 콘솔 포트로 출력되는 것에 유의해야 합니다.

ttyS01과 ttyS02(커널 2.6에서는 ttyPXA00와 ttyPXA01)을 시리얼 포트로 사용하기 위해서는 아래의 그림에 해당하는 점퍼를 모두 USRT쪽으로 연결해야 합니다.

시리얼 포트를 연결하는 방법

아래의 그림은 PC 또는 다른 시스템에 직접 연결되는 female 포트와 EZ-X5의 연결을 보여 줍니다. 이렇게 연결된 femail 포트는 다른 PC 또는 다른 시스템과 연결할 때 중간에 크로스 케이블이 필요 없습니다.

이해를 돕기 위해 간략 그림입니다.

 

EZ-X5 커널 2.4 에서 설정하는 방법

변경하는 방법을 간단히 정리하면 아래와 같습니다.

  1. /etc/inittab 의 내용 중 TO 설정 내용을 주석 또는 삭제합니다.
  2. EZBOOT의 set 메뉴를 이용하여 console 설정 내용을 삭제합니다.

커널 2.4일 경우에는 /etc/ 에 있는 inittab 의 내용을 바꾸어야 하므로 아래의 강좌 내용에 따라 yaffs 모드로 변경하시십시오.

EZ-Board의 램 디스크 모드와 YAFFS 모드 변경하기

또는 아래의 설명에 따라 inittab 내용을 수정한 램디스크 이미지를 미리 EZ-X5에 쓰기를 하십시오.

/etc/inittab 의 내용입니다. 주석 처리로 표시된 곳의 T0 행을 삭제 또는 주석 처리하십시오.

              :

# Example how to put a getty on a serial line (for a terminal)
#
#  T0:12345:respawn:/sbin/getty -L ttyS02 115200 vt100    <--- 주석 처리
#T1:12345:respawn:/sbin/getty -L tty1 115200 vt100
#T2:12345:respawn:/sbin/getty -L tty2 115200 vt100
# T1:23:respawn:/sbin/getty -L ttyS1 115200 vt100

#Example how to run portslave
#
#T0:23:respawn:+/usr/sbin/portslave 0
#T1:23:respawn:+/usr/sbin/portslave 1
#T2:23:respawn:+/usr/sbin/portslave 2

내용 수정 후에는 보드를 EZ-BOOT 모드로 부팅하신 후, set 메뉴에서 콘솔포트 지정을 삭제하면 모든 작업이 끝이 납니다.

WELCOME EZBOOT.X5 V1.7...................for PXA255
Program by You Young-chang, fooji (FALinux Co.,Ltd)
Last Modify 2004.11.17

Boot Flash Check ......................
  Detect AM29LV400 (BOTTOM)Flash : 22BA
  SIZE 4M-BIT [512Kbyte]

NAND Chip Check .......................
  Detect SAMSUNG [ec:76] 64MByte
  BAD BLOCK SCAN ->  Kernel, Ramdisk Bad Block [0]

CS8900 Init............................
  Mac Address  : [00 A2 75 F2 36 38]
  Detect value : [3000:3000]
  Chip ID      : [0E63:000A]

Quickly Autoboot [ENTER] / Goto BOOT-MENU press [space bar].    <--- 스페이스 키를 누릅니다.

EZBOOT>set                                                      <--- set 실행


 ^^;
  1. MAC Address            [00:a2:75:f2:36:38]
  2. LOCAL IP               [192.168.10.165]
  3. HOST IP                [192.168.10.31]
  4. Host tftp directory    []
  5. zImage      file name  [zImage.x5]
  6. ram disk    file name  [ramdisk.x5-12M.gz]
  7. boot loader file name  [ezboot.x5]

  A. Autoboot wait time     [3]
  B. Boot Menu Key          [ ]
  C. Copy Ramdisk [Y/N]     [Y]
  D. Architecture Number    [303]
  E. Serial FF/BT/ST(0/1/2) [2]
  F. NAND-Partition MByte   [1:5:58] (kernel:ramdisk:app)
  W. Watchdog (sec, off=0)  [0]

  K. Kernel CMD 1st [noinitrd root=/dev/mtdblock2]
  M. Kernel CMD 2nd [console=ttyS02,115200]                     <--- 삭제할 내용입니다.
  N. Kernel CMD 3rd []

  L. Load Default
  P. Apply & Exit
  S. Save
  0. Exit

  Select >>m
  M. Kernel CMD 2nd [console=ttyS02,115200]
     Newvalue :        <---- 아무것도 입력하지 말고 바로 엔터키를 누릅니다.

 ^^;
  1. MAC Address            [00:a2:75:f2:36:38]
  2. LOCAL IP               [192.168.10.165]
  3. HOST IP                [192.168.10.31]
  4. Host tftp directory    []
  5. zImage      file name  [zImage.x5]
  6. ram disk    file name  [ramdisk.x5-12M.gz]
  7. boot loader file name  [ezboot.x5]

  A. Autoboot wait time     [3]
  B. Boot Menu Key          [ ]
  C. Copy Ramdisk [Y/N]     [Y]
  D. Architecture Number    [303]
  E. Serial FF/BT/ST(0/1/2) [2]
  F. NAND-Partition MByte   [1:5:58] (kernel:ramdisk:app)
  W. Watchdog (sec, off=0)  [0]

  K. Kernel CMD 1st [noinitrd root=/dev/mtdblock2]
  M. Kernel CMD 2nd []          <--- 내용이 삭제되었습니다.
  N. Kernel CMD 3rd []

  L. Load Default
  P. Apply & Exit
  S. Save
  0. Exit

  Select >>s         <-- 변경된 내용을 저장합니다.
    Erase : OK                                                                 
    Write : OK                                                                 

  ...Saved

 ^^;
  1. MAC Address            [00:a2:75:f2:36:38]
  2. LOCAL IP               [192.168.10.165]
  3. HOST IP                [192.168.10.31]
  4. Host tftp directory    []
  5. zImage      file name  [zImage.x5]
  6. ram disk    file name  [ramdisk.x5-12M.gz]
  7. boot loader file name  [ezboot.x5]

  A. Autoboot wait time     [3]
  B. Boot Menu Key          [ ]
  C. Copy Ramdisk [Y/N]     [Y]
  D. Architecture Number    [303]
  E. Serial FF/BT/ST(0/1/2) [2]
  F. NAND-Partition MByte   [1:5:58] (kernel:ramdisk:app)
  W. Watchdog (sec, off=0)  [0]

  K. Kernel CMD 1st [noinitrd root=/dev/mtdblock2]
  M. Kernel CMD 2nd []
  N. Kernel CMD 3rd []

  L. Load Default
  P. Apply & Exit
  S. Save
  0. Exit

  Select >>0             <--- EZBOOT로 빠져 나갑니다.

EZBOOT>rst    <--- 보드를 리부팅합니다.

WELCOME EZBOOT.X5 V1.7...................for PXA255
Program by You Young-chang, fooji (FALinux Co.,Ltd)
Last Modify 2004.11.17

Boot Flash Check ......................
  Detect AM29LV400 (BOTTOM)Flash : 22BA
  SIZE 4M-BIT [512Kbyte]

NAND Chip Check .......................
  Detect SAMSUNG [ec:76] 64MByte
  BAD BLOCK SCAN ->  Kernel, Ramdisk Bad Block [0]

CS8900 Init............................
  Mac Address  : [00 A2 75 F2 36 38]
  Detect value : [3000:3000]
  Chip ID      : [0E63:000A]

Quickly Autoboot [ENTER] / Goto BOOT-MENU press [space bar].....
Copy Kernel Image .....
Copy Ramdisk Image .....
Starting kernel [MARCH 303]...
Uncompressing Linux................................................. done, booting the kernel.

          더 이상 문자 출력이 없습니다.
          이제 콘솔포트를 이용하여 시리얼 통신을 할 수 있습니다.

콘솔포트가 통신용 포트로 변경 되었기 때문에 이제부터는 LAN포트를 이용하여 연결해서 작업해야 합니다.

EZ-X5의 IP로 텔넷을 연결합니다. 콘솔포트였던 ttyS02로 문자열을 출력하여 수신이 되는지 확인합니다. EZ-보드에서는 별다른 설정을 하지 않는 이상 모든 시리얼 포트는 9600 baud, 8 data bits, none parity, 1 stop bits 입니다.

Welcom to J.D&T EZBOARD.


ez-x5 login: root
[root@ez-x5 /root]$ ls -al > /dev/ttyS02       <--- /dev/ttyS02 로 디렉토리 내용을 전송합니다.
[root@ez-x5 /root]$

콘솔포트였던 ttyS02과 연결된 포트에서 디렉토리 내용이 출력되면 성공한 것입니다. 아래의 그림은 jwRsMonitor로 테스트한 모습니다.

EZ-X5 커널 2.6 에서 설정하는 방법

커널 2.6에서의 작업은 더 간편합니다. EZBOOT모드의 set 메뉴에서 console 정보만 삭제하시면 됩니다.

  1. EZBOOT의 set 메뉴를 이용하여 console 설정 내용을 삭제합니다.

이후에 ttyPXA00부터 ttyPXA01, ttyPXA02 장치명으로 시리얼 테스트를 해 보십시오.

강좌 참고 현재 제공되는 EZ-X5의 커널 2.6 버전으로는 ttyPXA01 장치명만 시리얼 통신이 안 될 수 있습니다. (주)FALINUX에서도 확인된 내용으로 곧 문제를 해결한 새로운 커널을 준비한다고 합니다. 혹, ttyPXA01로 시리얼 통신이 되지 않으신다면 커널 버전을 확이하여 주십시오.