야호! 강좌다~ 글이 너무 간만에 올라왔죠? 강좌를 목이 빠져라 기다리신 분들에게는 정말 죄송하다는 말씀을 드리고 싶습니다. 먹고살기 위해 잠깐 바빴습니다. 사실, 가장 많이 하는 거짓말이 '나 오늘 바뻐' 라는데, 정말 바빴어요. 믿어주세요. ㅜ_ㅜ 아무튼 오늘 잠시 일을 뒤로 미루고 강좌를 계속 하기 위해 또닥또닥 키보드를 두드릅니다.
포럼을 운영하면서 받는 질문 중에 하나가 NFS 연결이 잘 안 된다는 것이었습니다. 저는 지금껏 CentOS를 사용해 왔기 때문에 RedHat 계열에 대해서만 아는대로 말씀을 드렸는데, 요즘은 우분투를 많이 사용하시잖아요. 그래서 시원한 답변을 못 드렸는데, 오늘 구차니의 잡돵사니 모음에서 도움이 될 만한 정보를 구했습니다. 우분투에서 NFS 연결이 잘 안 되시는 분은 참고하세요.
오늘은 EZJTAG-USB의 부트로더(EZ-bootloader.bin)를 라이팅 할 거에요. 부트로더라고 호칭하니까 왠지 근사해 보이죠. 하지만 이 부트로더도 한낱 펌웨어에 불과해요. ‘준비 5. 펌웨어 라이트’ 문서에서 펌웨어를 라이트하는 방법을 설명했죠. 부트로더도 이와 동일한 방법으로 라이팅 해요. 라이팅 방법은 많은 부분이 이전 문서와 중복이 되요. 그래서 중복 내용은 생략하고, 차이점만 설명하게요. 라이팅 방법을 모르신다면 ‘준비 5’ 문서를 다시 한번 보세요. 그럼 시작!
며칠 전에 int64 변수에 대한 문의를 받았습니다. 에프에이리눅스에서 제공하는 EZ보드는 32비트 OS를 사용하고 있는데, 64비트 정수를 사용하고 싶다는 얘기였습니다. 리눅스 일반 C 문법만 알고 있었던 저는 난감할 수 밖에 없었습니다. 그래서 답변을 미루고 방법을 찾았는데, 일반 C 문법에는 없는 "long long" 변수 타입을 제공하고 있네요. 다른 분께도 도움이 되지 않을까 해서 제가 확인한 long long 변수에 대해 간단히 소개합니다.
일단, 경축! 안드로이드를 이지보드에서 포팅하기 위해서 시작된 강좌, 이지랑드로랑이 드디어 10번째 강의를 맞이하였습니다. 얼씨구나 좋구나~ 기쁜일이 아닐 수 없습니다. 조회수가 적으면 의욕도 안생기고 해서 뭐하나 해서 금방 접어버리게 되는데 여러분들이 많이 봐주시니 저도 이제 압박이 되어 강좌를 빼먹지 않고 진행할 수 있도록 더 신경쓰는 것 같아요. 앞으로도 많은 관심 부탁드립니다.
도와주세요!!에 인터넷 연결 상태를 어떻게 확인할 수 있는가에 대한 질문이 있었는데, 짜라님께서 아주 명쾌한 답변을 주셨네요. 특정 사이트로 PING을 때리고 그 결과값을 확인하는 것이죠. ping google.com -c 1 | grep "1 received" | wc -l 저는 이 방법을 popen()으로 처리해 보았습니다. 아래 처럼 말이죠. ^^
전 시간에 사운드를 살리고 소리를 들어보자고 하더니... 소리는 들어보지도 못하고 다음장이 되었습니다. 이번장의 목표는 SD 카드만을 메모리스틱으로 인지하는 안드로이드의 입맞을 맞춰주는 일입니다. 이지보드에 SD 카드를 딱! 하고 꼽으면 안드로이드가 털컥!! 하고 인지할 수 있게만 해주면 됩니다.
이전 장에서 리는 안드로이드의 전력 문제를 해결하고 어느정도 사용할 수 있도록 만들었습니다. (물론 Fake 지만...) 아무튼, 베터리도 없는 장비에서 안꺼지고 잘 돌아가게 한거면 1차적인 목적은 이룬거니까요. 이번에는 소리를 나도록 할 건데요, 이건 Fake로 하면 큰일납니다. (소리 안나요. ^^)
오늘은 EZJTAG-USB(AT91SAMS256)에 펌웨어를 라이트해보죠.
지금까지 설명한 ‘준비문서’들의 내용은 오늘을 위한 준비였어요.
시작하기 앞서서 오늘에 내용을 진행하려면 두 가지의 준비가 필요해요. 첫째로 EZJTAG-USB에는 SAM-BA boot가 로딩되어 있어야 하고요.
텔넷에서 작업하다 보면, 이전에 어떻게 작업했는지 궁금할 때가 있습니다. 보통 스크롤 바를 올려 보지만, 한계가 있지요. 몇 페이지가 고작이니까 말이죠. 또는 history 명령을 사용합니다. 이전에 실행했던 명령 행을 볼 수 있으니까요. 명령을 알 수 있지만, 결과를 볼 수 없죠. 이럴 때는 scipt 쉘 명령을 사용해 보세요. 정말 편합니다.
xLib의 기본 사용법에 대한 설명입니다. gxLib는 Device Context 개념을 적용했기 때문에 그래프출력 대상이 다르더라도 같은 함수 이름을 사용합니다. 즉, 하드웨어의 화면이나 비트맵, JPEG, PNG에 선을 그린다고 한다면, 출력 대상이 다르더라도 모두 gx_line()을 사용합니다.
소켓 통신을 하려면 반드시 결정해야 하는 것이 PORT 번호입니다. 여러분은 어떤 번호를 사용하나요? 저는 지금껏 1,000번 이하만 피하면 된다고 알고 있었습니다. 그래도 안전을 지킨다고 4,000번 이상을 사용했는데, 4,000번 대를 사용한다고 해도 안전한 것이 아니군요.
오늘은 HostPC에 ‘SAM-BA boot’ 드라이버를 설치할거에요. 드라이버를 설치하는 이유는요. 첫째로 윈도우가 ‘SAM-BA boot’ 장치(프로그램)을 인식할 수 있도록 만들고요.
둘째는 윈도우 프로그램(‘SAM-BA’)에게 그 장치를 이용할 수 있는 경로를 제공하는 거에요.