BeagleBone rolling start
Techs( younjin.jeong@gmail.com, 정윤진 )
이번주에 배송이 완료된 BeagleBone 을 오늘에서야 올려 볼 수 있게 되었다. 이 귀여운 보드에는 완벽히 동작하는 리눅스가 Factory Default 로 올려져 있으며, 필요한 경우 안드로이드나 우분투 등 원하는 대로 별도의 OS 를 올리는 것이 가능하다.
BeagleBone 을 구매하면 위와 같이 귀여운 케이스와 USB케이블, 그리고 Kingston MicroSD 아답터와 Linux SDK 가 들어있는 MicroSD 가 함께 배송된다. $89 주제에 내용물도 푸짐하다. BeagleBone 외에도 Beagle Board C4 도 함께 주문했는데, C4의 경우에는 별도로 추가된 패키지가 전혀 없다. 기대하지 말자.
허접해 보이는 케이스는 보드를 보관하기 꼭 알맞은 사이즈로 되어 있다. 필요하다면 아래에 스펀지 등을 넣어 보호 할 수도 있겠지만, 어차피 내부에 전원 등이 포함되어 있지 않으므로 쇼트가 나지는 않겠지 하는 생각에 그냥 들고 다닌다. ㅋ
보드를 처음 노트북과 연결하면, 뭐 별다른 일이 일어나지는 않는다. 만약 맥에서 BeagleBone 을 연결했다면, 사용중인 맥의 버전에 따라 한방에 잘 될 수도, 아니면 시작부터 고생길이 열릴 가능성도 있다.
일단, 개발용 랩탑과 BeagleBone 은 처음에 USB 연결만 있으면 된다. 5V 의 전원은 USB를 통해 공급받으므로 전원에 대해 당장 걱정할 필요도 없다. Mac OSX Leopard 이상의 시스템에 연결 한 경우, 다음과 같은 내용을 확인 할 수 있다.
처음 연결하고 BeagleBone 이 준비가 되면 위와 같이 시스템에 마운트 되며, 안에는 몇가지의 내용이 들어있다. 이들 중 처음에 제일 중요한 것은 Drivers 디렉토리인데, 맥이건 윈도우용이건 BeagleBoard 의 접근을 위해 반드시 설치 해 주어야 한다. 단!, 한가지 조심 할 것은, 사용중인 맥이 32bit 인가 64bit 인가에 따라 보드에 포함된 파일의 사용 여부가 결정 된다는 것이다. 보드에 포함된 드라이버는 32bit 용이며, 따라서 현재 사용중인 시스템이 64bit 인 경우에는 다음의 링크에서 드라이버를 다운로드 받아 설치하도록 하자.
http://www.ftdichip.com/Drivers/VCP.htm
내가 사용중인 맥은 Leopard 였던 시스템을 Lion 으로 업그레이드 한 것인데, 별 이상없이 잘 동작했다. 다만 준호형의 맥은 구매 할 때부터 Lion 이었는데, 정상적으로 보드와 연결되지 않는 현상이 발생했다. 아직 해결하지는 못했지만, 조만간 처리 될 것으로 생각된다.
아무튼 OS 가 32인지 64비트인지 잘 확인하고, 가장 최신버전의 Virtual COM Port 드라이버를 설치하도록 하자.
설치가 완료 된 이후 정상적인 경우라면 /dev/tty.usb 로 시작하는 장치명을 확인 할 수 있을 것이다. 하지만 필자의 경우에는 해당 장치가 나타나지 않았는데, 어쨌든 사용에 이상이 없으므로 무시했다. 문제의 해결을 위해서는 다음의 구글 그룹 페이지를 참고하도록 한다.
http://groups.google.com/group/beagleboard/browse_thread/thread/80a42d16976907a9/de2ad27d8bfeb2de
/dev/tty.usbserial 장치가 나타나지 않더라도, 시스템 환경 설정의 네트워크 부분을 살펴보면 정상적인 경우 다음과 같은 새로운 인터페이스의 확인이 가능하다.
위의 그림처럼 나타난다면, 이제 보드에 접속이 가능하다. 위의 그림처럼 새로운 인터페이스가 나타나지 않는다면, 다음의 커맨드를 맥에서 실행 해 보자.
계정은 root 이며, 패스워드는 없다. 그냥 엔터.
위의 인터페이스에서 알 수 있듯이, 실제 랩탑과 보드의 통신은 usb0 를 통해 이루어 진다. eth0 는 보드에 달려있는 이더넷 포트다. 모든 인터페이스의 설정 정보는 우분투와 동일한 위치인 /etc/network/interfaces 에서 확인이 가능하며, 192.168.7.2 는 usb0 에 고정된 인터페이스이다.
더욱 놀라운 다음의 내용을 살펴보도록 하자.
그렇다. default 로 Node 가 동작중이다. 게다가 이름에서 알 수 있듯이, cloud9 이 포트 3000 에서 돌아가고 있단다. 기가 찰 노릇이 아닌가. 그렇다면 접속 해 볼 일이다.
위의 샘플 코드는 보드에 달려있는 사용자 LED 를 통제하는 101 코드가 들어있다. 위의 Run 버튼을 누르면 보드에서 LED 가 껌뻑 거리는 모습을 볼 수 있을 것이다.
이 보드가 시사하는 바는 무엇인가. Arduino 도 마찬가지지만, BeagleBone 은 보다 강력한 성능으로 주변 장치들을 붙이는 것이 가능하고, UNO 보드들과 마찬가지로 아날로그/디지털의 IN/OUT 통제가 가능하다. 이 작은 시스템은 완벽히 동작하는 리눅스의 구동이 가능하며, 저렴하고, 개발조차 쉽다.
이런 장점은 더이상 논하는 것이 무의미하므로, 그만 쓰도록 하고 이제 이 보드의 성능을 대강 살펴 보자.
이제 정말 달리는 일만 남았다. 아, Lion 에서의 문제는 해결 되는 대로 포스팅!
아참, 그리고 블로그를 깔끔하게 재구성 해 준 퐈이아준 형에게 무한 감사 ㅎㅎ 블로그 노가다 시켜서 미앙~! ㅋ
( younjin.jeong@gmail.com, 정윤진 )
이번주에 배송이 완료된 BeagleBone 을 오늘에서야 올려 볼 수 있게 되었다. 이 귀여운 보드에는 완벽히 동작하는 리눅스가 Factory Default 로 올려져 있으며, 필요한 경우 안드로이드나 우분투 등 원하는 대로 별도의 OS 를 올리는 것이 가능하다.
귀요미_케이스
BeagleBone 을 구매하면 위와 같이 귀여운 케이스와 USB케이블, 그리고 Kingston MicroSD 아답터와 Linux SDK 가 들어있는 MicroSD 가 함께 배송된다. $89 주제에 내용물도 푸짐하다. BeagleBone 외에도 Beagle Board C4 도 함께 주문했는데, C4의 경우에는 별도로 추가된 패키지가 전혀 없다. 기대하지 말자.
귀요미_보드
허접해 보이는 케이스는 보드를 보관하기 꼭 알맞은 사이즈로 되어 있다. 필요하다면 아래에 스펀지 등을 넣어 보호 할 수도 있겠지만, 어차피 내부에 전원 등이 포함되어 있지 않으므로 쇼트가 나지는 않겠지 하는 생각에 그냥 들고 다닌다. ㅋ
연결!!!
보드를 처음 노트북과 연결하면, 뭐 별다른 일이 일어나지는 않는다. 만약 맥에서 BeagleBone 을 연결했다면, 사용중인 맥의 버전에 따라 한방에 잘 될 수도, 아니면 시작부터 고생길이 열릴 가능성도 있다.
일단, 개발용 랩탑과 BeagleBone 은 처음에 USB 연결만 있으면 된다. 5V 의 전원은 USB를 통해 공급받으므로 전원에 대해 당장 걱정할 필요도 없다. Mac OSX Leopard 이상의 시스템에 연결 한 경우, 다음과 같은 내용을 확인 할 수 있다.
BeagleBone Mount
처음 연결하고 BeagleBone 이 준비가 되면 위와 같이 시스템에 마운트 되며, 안에는 몇가지의 내용이 들어있다. 이들 중 처음에 제일 중요한 것은 Drivers 디렉토리인데, 맥이건 윈도우용이건 BeagleBoard 의 접근을 위해 반드시 설치 해 주어야 한다. 단!, 한가지 조심 할 것은, 사용중인 맥이 32bit 인가 64bit 인가에 따라 보드에 포함된 파일의 사용 여부가 결정 된다는 것이다. 보드에 포함된 드라이버는 32bit 용이며, 따라서 현재 사용중인 시스템이 64bit 인 경우에는 다음의 링크에서 드라이버를 다운로드 받아 설치하도록 하자.
http://www.ftdichip.com/Drivers/VCP.htm
내가 사용중인 맥은 Leopard 였던 시스템을 Lion 으로 업그레이드 한 것인데, 별 이상없이 잘 동작했다. 다만 준호형의 맥은 구매 할 때부터 Lion 이었는데, 정상적으로 보드와 연결되지 않는 현상이 발생했다. 아직 해결하지는 못했지만, 조만간 처리 될 것으로 생각된다.
아무튼 OS 가 32인지 64비트인지 잘 확인하고, 가장 최신버전의 Virtual COM Port 드라이버를 설치하도록 하자.
설치가 완료 된 이후 정상적인 경우라면 /dev/tty.usb 로 시작하는 장치명을 확인 할 수 있을 것이다. 하지만 필자의 경우에는 해당 장치가 나타나지 않았는데, 어쨌든 사용에 이상이 없으므로 무시했다. 문제의 해결을 위해서는 다음의 구글 그룹 페이지를 참고하도록 한다.
http://groups.google.com/group/beagleboard/browse_thread/thread/80a42d16976907a9/de2ad27d8bfeb2de
/dev/tty.usbserial 장치가 나타나지 않더라도, 시스템 환경 설정의 네트워크 부분을 살펴보면 정상적인 경우 다음과 같은 새로운 인터페이스의 확인이 가능하다.
RNDIS/Ethernet Gadget Int.
위의 그림처럼 나타난다면, 이제 보드에 접속이 가능하다. 위의 그림처럼 새로운 인터페이스가 나타나지 않는다면, 다음의 커맨드를 맥에서 실행 해 보자.
sudo kextutil FTDIUSBSerialDriver.kext -v위의 커맨드는 USBSerial 드라이버를 로드 하도록 한다. 또는 시스템을 재부팅 해도 된다. 이렇게 드라이버를 로드한 후에 인터페이스가 정상적으로 나타 남에도 불구하고 잘 동작하지 않는다면, Finder 에서 마운트 되어있는 BeagleBone 을 마운트 해제하고 잠시 기다려 보도록 하자. 이후에 정상적으로 192.168.7.2 와 ping 을 주고 받을 수 있다면 모든 준비가 완료 된 것이다.
계정은 root 이며, 패스워드는 없다. 그냥 엔터.
Younjin-Jeongs-MacBook-Pro:Extensions younjinjeong$ ssh root@192.168.7.2
The authenticity of host '192.168.7.2 (192.168.7.2)' can't be established.
RSA key fingerprint is 74:c4:b7:09:4c:3b:37:ba:69:96:b8:ca:09:61:6f:52.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.7.2' (RSA) to the list of known hosts.
root@192.168.7.2's password:
root@beaglebone:~#
root@beaglebone:~# hostname
beaglebone
root@beaglebone:~# whoami
root
root@beaglebone:~# ifconfig
eth0 Link encap:Ethernet HWaddr D4:94:A1:35:CA:6B
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:40
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:12 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:840 (840.0 B) TX bytes:840 (840.0 B)
usb0 Link encap:Ethernet HWaddr 02:09:34:3A:78:D3
inet addr:192.168.7.2 Bcast:192.168.7.3 Mask:255.255.255.252
inet6 addr: fe80::9:34ff:fe3a:78d3/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:233 errors:0 dropped:0 overruns:0 frame:0
TX packets:115 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:38600 (37.6 KiB) TX bytes:15487 (15.1 KiB)
위의 인터페이스에서 알 수 있듯이, 실제 랩탑과 보드의 통신은 usb0 를 통해 이루어 진다. eth0 는 보드에 달려있는 이더넷 포트다. 모든 인터페이스의 설정 정보는 우분투와 동일한 위치인 /etc/network/interfaces 에서 확인이 가능하며, 192.168.7.2 는 usb0 에 고정된 인터페이스이다.
더욱 놀라운 다음의 내용을 살펴보도록 하자.
root@beaglebone:~# uname -a
Linux beaglebone 3.1.0+ #1 Tue Nov 15 15:51:15 CET 2011 armv7l GNU/Linux
root@beaglebone:~# Display all 1046 possibilities? (y or n)
root@beaglebone:~# ps -ef | grep node
root 98 1 0 15:31 ? 00:00:06 /usr/bin/node /usr/share/cloud9/bin/cloud9.js -l 0.0.0.0 -w /var/lib/cloud9 -p 3000root 99 1 0 15:31 ? 00:00:01 /usr/bin/node bone101.jsroot 349 342 0 16:19 pts/0 00:00:00 grep node
그렇다. default 로 Node 가 동작중이다. 게다가 이름에서 알 수 있듯이, cloud9 이 포트 3000 에서 돌아가고 있단다. 기가 찰 노릇이 아닌가. 그렇다면 접속 해 볼 일이다.
잇츠_어메이징_붸붸
위의 샘플 코드는 보드에 달려있는 사용자 LED 를 통제하는 101 코드가 들어있다. 위의 Run 버튼을 누르면 보드에서 LED 가 껌뻑 거리는 모습을 볼 수 있을 것이다.
이 보드가 시사하는 바는 무엇인가. Arduino 도 마찬가지지만, BeagleBone 은 보다 강력한 성능으로 주변 장치들을 붙이는 것이 가능하고, UNO 보드들과 마찬가지로 아날로그/디지털의 IN/OUT 통제가 가능하다. 이 작은 시스템은 완벽히 동작하는 리눅스의 구동이 가능하며, 저렴하고, 개발조차 쉽다.
이런 장점은 더이상 논하는 것이 무의미하므로, 그만 쓰도록 하고 이제 이 보드의 성능을 대강 살펴 보자.
root@beaglebone:~# free
total used free shared buffers cached
Mem:
254176 78908 175268 0 8300 31508
-/+ buffers/cache: 39100 215076
Swap: 0 0 0
root@beaglebone:~# cat /proc/cpuinfo
Processor : ARMv7 Processor rev 2 (v7l)
BogoMIPS : 498.89
Features : swp half thumb fastmult vfp edsp thumbee neon vfpv3 tls
CPU implementer : 0x41CPU architecture: 7
CPU variant : 0x3CPU part : 0xc08
CPU revision : 2
Hardware : am335xevm
Revision : 0000
Serial : 0000000000000000
이제 정말 달리는 일만 남았다. 아, Lion 에서의 문제는 해결 되는 대로 포스팅!
아참, 그리고 블로그를 깔끔하게 재구성 해 준 퐈이아준 형에게 무한 감사 ㅎㅎ 블로그 노가다 시켜서 미앙~! ㅋ
( younjin.jeong@gmail.com, 정윤진 )