이 매뉴얼은 JK전자(JK Electronics) 에 의해서 번역, 수정, 작성 되었고 소유권 또한 JK전자(JK Electronics)의 것입니다. 소유권자의 허가를 받지 않고 무단으로 수정, 삭제하거나 배포 할 수 없습니다. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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 파일에 의해서 호출이 됩니다. |
||
| 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 |

리눅스 개발보드의 시리얼 포트 이름은 "/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

| 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" 키를 입력하면 테스트가 종료 됩니다.

Note : 아직 미 구현된 기능 입니다.
LCD Backlight device file : "/dev/backlight-1wire" 입니다. LCD Backlight 조정은 0 ~ 127 단계 까지로 조정 할 수 있습니다. 테스트로 아래 명령은 LCD Backlight를 OFF 하는 멸명 입니다.
# echo 0 > /dev/backlight
기본적으로는 아래와 같이 15 정도의 레벨의 컨트롤 하면 됩니다.
echo 15 > /dev/backlight
명령창에서 "i2c -w" 를 입력하면 개발보드의 24C08 EEPROM 메모리에 (0x00-0xff)값을 Write 합니다.

명령창에서 "i2c -r" 를 입력 하면 24C08 EEPROM 메모리에서 데이터를 읽어 옵니다.

| 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의 값을 변경해 봅니다.

"/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" 명령으로 연결을 닫습니다.
네트워크 설정 명령은 일반적인 리눅스 머신과 크게 다르지는 않습니다. 일반적인 절차는 아래와 같고 사용자의 네트워크 환경에 따라서 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
개발보드는 부팅시에 자동으로 telnet 서비스가 시작되어 있어서 다음과 같이 Windows 운영체제에서 "telnet 192.168.0.46" 명령으로 개발보드의 telnet 서시스에 연결 할 수 있습니다.




| #! /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 |


