이 매뉴얼은 JK전자(JK Electronics) 에 의해서 번역, 수정, 작성 되었고 소유권 또한 JK전자(JK Electronics)의 것입니다. 소유권자의 허가를 받지 않고 무단으로 수정, 삭제하거나 배포 할 수 없습니다. 제품 구매 : http://www.toolparts.co.kr | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
S3C6410 Start Kit Linux User Guide | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* Update history - 2011.1.13 : 초기 Release | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1.리눅스 시리얼 포트 터미널 연결 1.2 리눅스 프로그램 테스트 1.2.1 MP3 Player 1.2.2 Using USB Storage 1.2.3 Using SD Memory card 1.2.4 시리얼 포트를 이용한 PC파일 전송 1.2.5 LED 컨트롤 1.2.6 Button Test 1.2.7 Serial Test 1.2.8 Buzzer Test 1.2.9 LCD Backlight Test 1.2.10 I2C EEPROM Test 1.2.11 ADC Test 1.2.12 TV-OUT Test 1.2.13 USB wireless card or SD WiFi Test 1.2.14 Set network connection 1.2.15 How to set MAC address 1.2.16 Telnet log in 1.2.17 FTP setup 1.2.18 NFS 서비스 1.2.19 RTC Test 1.2.20 Auto-run on boot time 1.2.21 How to screenshot 1.2.22 View memory information | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1.리눅스 시리얼 포트 터미널 연결 리눅스 소프트웨어를 개발할 때 대부분의 개발자들은 시리얼 터미널을 통해서 거의 모든 작업을 하게 됩니다. 개발보드가 초기 부팅시에 다음과 같은 비슷한 화면을 보게 될 것입니다. 개발 환경 구축과 컴파일 과정을 하기전에 리눅스에서 몇몇 프로그램 테스트를 먼저 해보도록 하겠습니다. |
Test procedure name | led-player leds | 비고 |
Source file name | led-player.c, led.c | |
Example source file location | CD ROM\Linux\examples.tgz | |
Device name | /dev/leds | |
Kernal driver source code location |
Test procedure name | leds.cgi | 비고 |
Source file name | leds.cgi | |
Example source file location | 개발보드의 /www directory | |
leds.cgi 는 바이너리 파일이 Shell 스크립트 소스 파일 입니다. 웹 브라우저에서 leds.html 파일에 의해서 호출이 됩니다. |
(1) LED Server
개발보드가 부팅이 되면 자동으로 LED Service( /etc/rc.d/init.d/leds )프로그램이 시작 됩니다. 이것은 실제적으로 led-player 스크립트에 의해서 불려지고 이것은 /tmp 디렉토리 밑에서 실행이 되고 led-control 파일이 생성 됩니다. 그리고 아래와 같이 다른 Pipe line 파라미터에 의해서 제어를 할 수 가 있습니다.
#echo 0 0.2 > /tmp/led-control
User LED 4번을 0.2초 간격으로 깜박 거리도록 합니다.
그밖에도 아래와 같은 명령을 내릴 수 가 있습니다.
#echo 1 0.2 >/tmp/led-control
#/etc/rc.d/init.d/leds stop
#/etc/rc.d/init.d/leds start
(2) Individual control LED
/bin/leds 를 통해서 1개의 LED를 컨트롤 할 수 있습니다.
# led
Usage: leds led_no 0|1
led_no는 0 ~ 3까지 선택 할 수 있고, 0:Off, 1:On 입니다. 아래는 LED3을 On 시키는 명령 입니다.
#led 2 1
1.2.6 Button Test
Test procedure name | buttons | 비고 |
Source file name | Buttons_test.c | |
Example source file location | CD ROM\Linux\examples.tgz | |
Device name | /dev/buttons | |
Kernal driver source code location | Linux-2.6.36/drivers/char/mini6410_buttons.c |
아래 명령을 실행하면 현재 버튼들의 상태를 터미널 창에 보여 줍니다.
#buttons
1.2.7 Serial Test
리눅스 개발보드의 시리얼 포트 이름은 "/dev/ttySAC0,1,2,3" 중에 한가지 입니다. 여기서는 시리얼 포트 2번을 테스트 하려고 합니다. 이 테스트를 위해서 PC의 시리얼 터미널 세팅을 다음과 같이 설정 합니다.
baud rate 115200, No flow control 나머지는 기본값으로 세팅 합니다. 물론 개발보드의 COM2포트는 다른 PC나 아니면 개발용 PC의 다른 시리얼 포트에 연결이 되어 있어야 합니다.
아래 명령을 실행하고 타겟 보드와 연결된 PC 터미널 창에서 아무 글자나 입력을 해서 테스트를 해 봅니다.
COM2: 테스트
#armcomtest -d /dev/ttySAC1 -o
COM3: 테스트
#armcomtest -d /dev/ttySAC2 -o
1.2.8 Buzzer Test
Test procedure name | pwm_test | 비고 |
Source file name | pwm_test.c | |
Example source file location | CD ROM\Linux\examples.tgz | |
Device name | ||
Kernal driver source code location |
리눅스 터미널 창에서 "pwm_test" 명령을 입력하면 PWM 에 의해서 부저가 울리게 되고 "+", "-" 키를 입력해서 출력 주파수를 조정 할 수 있습니다. "ESC" 키를 입력하면 테스트가 종료 됩니다.
1.2.9 LCD Backlight Test
Note : 아직 미 구현된 기능 입니다.
LCD Backlight device file : "/dev/backlight-1wire" 입니다. LCD Backlight 조정은 0 ~ 127 단계 까지로 조정 할 수 있습니다. 테스트로 아래 명령은 LCD Backlight를 OFF 하는 멸명 입니다.
# echo 0 > /dev/backlight
기본적으로는 아래와 같이 15 정도의 레벨의 컨트롤 하면 됩니다.
echo 15 > /dev/backlight
1.2.10 I2C EEPROM Test
명령창에서 "i2c -w" 를 입력하면 개발보드의 24C08 EEPROM 메모리에 (0x00-0xff)값을 Write 합니다.
명령창에서 "i2c -r" 를 입력 하면 24C08 EEPROM 메모리에서 데이터를 읽어 옵니다.
1.2.11 ADC Test
Test procedure name | adc-test | 비고 |
Source file name | adc-test.c | |
Example source file location | CD ROM\Linux\examples.tgz | |
Device name | /dev/adc | |
Kernal driver source code location | Linux-2.6.36/drivers/char/mini6410_adc.c |
# adc-test 명령을 입력하면 개발보드의 가변저항 W1의 값을 읽어서 터미널 창에 보여 줍니다. 드라이버 등을 이용해서 W1의 값을 변경해 봅니다.
1.2.12 TV-OUT Test
"/usr/bin" 디렉토리의 tv-test 명령을 실행 합니다. 이 프로그램은 자동으로 "/usr/bin/TestVectors/wanted.264" 파일을 플레이 해서 TV출력으로 보여 줍니다.}
#cd /usr/bin
#tv-test
1.2.13 USB wireless card or SD WiFi Test
다음과 같은 3가지 Wireless 설정 툴을 제공 합니다. "/usr/sbin" 디렉토리에 실행 파일이 있습니다. 여기서 테스트한 USB Wireless network card 모델은 TL-WN321G+ 와 SD-Wifi 모듈 입니다. 아래 그림들에서 보여지는 것들을 네트워크 카드의 종류에 따라서 조금씩 달라 질 수 있습니다.
- scan-wifi - Scan nearby wireless networks
- start-wifi - Used to open the wireless network connection
- stop-wifi - Stop using the wireless network contact
(1) Scan nearby wireless networks
#scan-wifi
위의 그림에서 보면 3개의 wireless AP를 발견 하였고 신호 세기는 "63%" 인것을 알수 있습니다. 그리고 보안 설정이 되어 있습니다.
(2) Wireless network connection
아래 명령을 이용해서 연결을 하거나 파라미터를 주어서 다른 AP에 연결 할 수도 있습니다.
#start-wifi
무선 네트워크의 보안 종류에 따라서 다음과 같은 모드를 지정 할 수 있습니다.
mode - "wpa", "wpa2", "wep", "none". "none" 설정은 보안이 되지 않은 무선 네트워크 연결 모드 입니다.
ssid - 연결 할 무선 AP의 이름을 지정 합니다. 예를 들면 "FriendlyARM4", "NETGEAR" 등 입니다.
password - 보안된 무선 네트워크의 패스워드를 입력 합니다. 보안 문자여서 화면에 표시 되지는 않습니다.
* Connect the open wireless network without a password
Step1 : scan-wifi 명령을 이용해서 wireless network 이름을 찾습니다.
Step2 : start-wifi none FriendlyARM-Test 명령을 이용해서 wireless network 에 연결 합니다.
잠시후에 개발보드에 IP 어드레스 192.168.3.10가 할당이 되고 보드와 연결된 개발용 PC IP address "192.168.3.1" 로 Ping명을 해보면 연결이 된것을 알수 있습니다.
* Connection requires a password to secure wireless network
보안이 없는 네트워크에 연결하는 절차와 비슷하게 하면 됩는데, 한가지 보안 의 종류와 패스워드를 추가해 주어야 합니다.
Step1 : scan-wifi 명령을 이용해서 wireless network 이름을 찾습니다. 위에서와는 다르게 "FriendlyARM-Test" AP가 보안이 설정되어 있음을 알 수 있습니다.
Step2 : "start-wifi wpa FriendlyARM-Test test1234" 명령으로 보안 설정된 무선 AP 에 연결 합니다.
무선 네트워크를 종료 할때에는 "stop-wifi" 명령으로 연결을 닫습니다.
1.2.14 Set network connection
네트워크 설정 명령은 일반적인 리눅스 머신과 크게 다르지는 않습니다. 일반적인 절차는 아래와 같고 사용자의 네트워크 환경에 따라서 IP등은 다를 수 있습니다.
개발용 PC의 명령 프롬프트 창에서 "ipconfig" 명령을 해보면 개발용 PC에 할당된 IP주소를 알 수 있습니다.
개발 보드에서 "/etc/eth0-setting" 파일의 내용을 확인 합니다.
네트워크설정이 맞지 않으면 "/etc/eth0-setting" 파일을 열어서 수정 합니다.
# vi /etc/eth0-setting
개발보드를 재부팅 하지 않고 DNS설정 정보를 바로 적용하려면 아래와 같이 하면 됩니다. 개발보드를 재 부팅 했다면 DNS정보 추가하는 과정은 하지 않아도 됩니다.
먼저 이전에 있던 네트워크 정보를 삭제 합니다.
# rm /etc/resolv.conf
네트워크 정보 파일을 새로 생성 합니다.
#touch /etc/resolv.conf
DNS 정보를 추가 합니다. 물론 vi 에디터를 이용해서 수정 해도 됩니다.
# echo nameserver 202.96.128.86 >> /etc/resolv.conf
모든 설정이 완료되면 개발 보드를 재 부팅 시키고 "ifconfig" 명령으로 설정 내용이 올바르게 반영이 되었는지 확인 합니다.
ping 명령을 해봅니다.
인터넷 브라우저를 실행시켜 봅니다.
개발보드상의 MAC address를 ipconfig 명령으로 설정 할 수 있습니다. 우선 ifconfig 명령으로 현재의 설정을 봅니다.
# ifconfig
현재의 MAC address가 "08:90:90:90:90:90" 로 설정된것을 볼 수 있습니다. 이 설정값은 커널 네트워크 드라이버에 기본값으로 설정된 주소 입니다. 이 설정 값들은 다음 명령에 의해서 다시 설정 할 수 있습니다.
# ifconfig eth0 down
# ifconfig eth0 hw ether 00:11:AA:BB:CC:DD
그러고 나서 다시 네트워크를 테스트 해 봅니다.
# ifconfig eth0 up
# ifconfig
# ping 192.168.1.1
1.2.16 Telnet log in
개발보드는 부팅시에 자동으로 telnet 서비스가 시작되어 있어서 다음과 같이 Windows 운영체제에서 "telnet 192.168.0.46" 명령으로 개발보드의 telnet 서시스에 연결 할 수 있습니다.
1.2.17 FTP setup
개발 보드의 FTP서버 서비스는 부팅시 자동으로 시작되는 서비스 입니다. Windows 개발 PC에서 아래와 같이 로그인해서 테스트를 해 볼수 있습니다. 참고로 여기서는 사용자 ID와 패스워드가 모드 "plg", "plg" 로 하였습니다. FTP전송이 완료되는 /home/plg/test.mp3 파일이 있는것을 확인 할 수 있습니다. 1.2.18 NFS 서비스
개발 보드를 다음 명령으로 NFS서버(server's IP address is 192.168.0.41)에 연결 합니다.NFS서버 PC의 IP주소와 NFS Share디렉토리는 다음과 같습니다.
# mount -t nfs -o nolock 192.168.0.41:/home/nfs_share /mnt
NFS 서버와 마운트가 성공하면 /mnt 디렉토리에 추가가 됩니다. NFS 디렉토리의 마운트 해제는 아래와 같이 합니다.
# umount /mnt
1.2.19 RTC Test
아직 보완이 필요한 명령 입니다.리눅스에서 일반적으로 "date" 명령어로 시간을 설정 할 수 있습니다. 이 개발보드에서는 "hwclock" 명령에 의해서 시간을 설정 할 수 있습니다.
(1) date -s 042916352007 #Set time 2007-04-29 16:34
(2) hwclock -w #Set the time to deposit S3C6410 Internal RTC
1.2.20 Auto-run on boot time
개발보드 부팅시에 자동으로 다양한 프로그램들을 실행 시킬 수 있습니다. 개발보드의 "/etc/init.d/rcS" 파일에서 설정 할 수 있습니다./etc/init.d/rcS 파일의 내용 입니다.
#! /bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin: runlevel=S prevlevel=N umask 022 export PATH runlevel prevlevel # # Trap CTRL-C &c only in this shell so we can interrupt subprocesses. # trap ":" INT QUIT TSTP /bin/hostname FriendlyARM [ -e /proc/1 ] || /bin/mount -n -t proc none /proc [ -e /sys/class ] || /bin/mount -n -t sysfs none /sys [ -e /dev/tty ] || /bin/mount -t ramfs none /dev /bin/mount -n -t usbfs none /proc/bus/usb echo /sbin/mdev > /proc/sys/kernel/hotplug /sbin/mdev -s /bin/hotplug # mounting file system specified in /etc/fstab mkdir -p /dev/pts mkdir -p /dev/shm /bin/mount -n -t devpts none /dev/pts -o mode=0622 /bin/mount -n -t tmpfs tmpfs /dev/shm /bin/mount -n -t ramfs none /tmp /bin/mount -n -t ramfs none /var mkdir -p /var/empty mkdir -p /var/log mkdir -p /var/lock mkdir -p /var/run mkdir -p /var/tmp /sbin/hwclock -s syslogd /etc/rc.d/init.d/netd start echo " " > /dev/tty1 echo "Starting networking..." > /dev/tty1 sleep 1 /etc/rc.d/init.d/httpd start echo " " > /dev/tty1 echo "Starting web server..." > /dev/tty1 sleep 1 /etc/rc.d/init.d/leds start echo " " > /dev/tty1 echo "Starting leds service..." > /dev/tty1 echo " " sleep 1 echo " " > /dev/tty1 /etc/rc.d/init.d/alsaconf start echo "Loading sound card config..." > /dev/tty1 echo " " /sbin/ifconfig lo 127.0.0.1 /etc/init.d/ifconfig-eth0 /bin/qtopia & echo " " > /dev/tty1 echo "Starting Qtopia, please waiting..." > /dev/tty1 |
1.2.21 How to screenshot
"snapshot" 명령을 이용해서 LCD화면의 내용을 png 그래픽 파일로 저장 할 수 있습니다. 실제 명령은 아래와 같습니다.#snapshot pic.png
1.2.22 View memory information
“cat /proc/meminfo" 명령을 이용해서 개발보드의 메모리 정보를 알 수 있습니다.또한 S3C6410의 Multimedia co-processor의 정보를 보기위해서는 cat /proc/videomem" 명령을 이용해서 볼 수 있습니다.
그리고 개발보드이 물리적인 메모리 사이즈는 리눅스 부팅시 U-boot 로깅을 통해서도 볼 수 있습니다.DRAM 사이즈는 개발보드에 따라서 128MB ~ 1.0GB 일수도 있습니다.
댓글 없음:
댓글 쓰기