본문 바로가기

2014/08

큐비트럭 크로스컴파일 환경 커널컴파일을 로컬에서 돌리니 이게 언제끝날지도 모르고 CPU 선점을 하고 있어 다른작업을 못하고 있음.집에 굴러다니던 오래된 구형 노트북에 크로스컴파일 환경을 구축함. OS : Debian 7.6 http://linux-sunxi.org/Toolchain unstatble http://emdebian.org/crosstools.html stable 더보기
큐비트럭 커널컴파일 http://linux-sunxi.org/Cubietruck/AP6210 큐비트럭 관련 사이트 내용중에 보면 커널 3.4에서는 무선랜+블루투스 드라이버가 커널안에 포함되어 있지 않는다고 나온다. 물론 BLUEZ 나 NetManager 를 통하여 무선랜이나 블루투스를 올릴수는 있지만 확인해본결과 현재까지 블루투스 HCI가 올라오는 리눅스는 데비안, 우분투 두가지였다(큐비안은 미확인) 그래서 직접 커널 컴파일을 해보기로 하고 커널 소스에 패치 실행 후 컴파일 실행. 커널컴파일 안내페이지 http://linux-sunxi.org/Linux_Kernel 크로스컴파일 환경이 아니라 로컬에 SD카드를 마운트하여 실행함. 먼저 AP6210 관련 패치 진행 ap6210 패치 디렉토리토리 내에 2개의 패치파일을 커널 소.. 더보기
큐비트럭 - 로컬에서 직접 개발할때 주의점 이것저것 테스트한다고 패키지 받고 설치하고 커널 컴파일 하는 중에 디스크 용량부족 뜸...하아... sd카드 마운트 할려다가 어차피 너무 지저분해서 그냥 다시 설치하기로함...크로스컴파일 개발환경을 갖추어야할듯... 1. 커널 컴파일을 하여면 최소 2기가 정도의 여유 공간이 필요한데 기본 이미지의 여유공간은 1.8기가 정도이다. 따라서 크로스 컴파일 환경을 갖추거나 외부 메모리를 마운트하여 커널 컴파일을 해야한다. 2. SD카드 마운트 시 Fat32로 마운트 할 경우 커널 소스의 압축이 풀리지 않을 수 있다(소프트 링크가 생성되지 않는다) 더보기
블루투스 구조 블루투스 강좌 ▣ 블루투스(Bluetooth) 프로토콜 스택과 프로파일(Profile) (1)이한욱 (BLUETOOTH Lab. 팀장) 프로토콜(Protocol)이란 디바이스간에 데이터를 송수신하기 위한 하나의 약속을 말한다. 이 프로토 콜은 하나의 통신 시스템의 성능을 결정하는 매우 핵심적인 것이다. 하지만 OSI 7 Layer 나 TCP/IP 등 그 복잡한 계층과 패킷들은 생각만 해도 골치아프게 한다. 블루투스의 프로토콜 역시 그 스택을 보 는 순간 `만만치는 않겠다'는 생각이 들게 한다. 블루투스의 스펙을 크게 두 부분으로 나눈다면 `라디오(Radio) 스펙'과 `프로토콜 스펙'으로 나눌 수 있다. 그러나 실제 블루투스 스펙을 보면 라디오 스펙에 관련된 부분은 100페이지도 되지 않는다. 나 머지 .. 더보기
큐비트럭 블루투스 프로그래밍 - BLE 연결 bluez 에서는 bluetooth 4.0의 core(?)를 지원한다고 나와있으나 bluez에서 제공하는 util을 사용해보면4.0을 스캔하기 위해서는 별도의 스캔 옵션을 주어야 한다. 이말은 4,0 이전 버전과 4.0 버전의 인터페이스가 다르다는 뜻이다. bluetooth 4.0 디바이스를 검색하기 위해서는 hcitool lescan 을 사용해야한다. 사용해보면 알겠지만 이 방법은 사용자가 종료하기 전까지 무한대기한다. 내부 함수를 살펴보면 read 함수를 호출하는데 블루투스 소켓이기 때문에 서비스가 내려가기 전까지 대기할 수 밖에 없는 구조이다. 이 부분은 차후에 수정할 예정이며 아래는 일단 스캔에 설공한 소스예제이다. 이 역시 hcitool 소스에서 필요한 부분만은 편집한 소스이다. #include.. 더보기
큐비트럭 - 블루투스 프로그래밍 - samplescan.c 웹상에서 검색되는 대부분의 블루투스 예제 프로그램은 아래 링크에서 참조된다. http://people.csail.mit.edu/albert/bluez-intro/ 블루투스 스택에 따라 거의 샘플소스를 살펴볼만 하다.그러나 큐비트럭에서는 샘플소스가 제대로 동작하지 않았다(나의 실수인가...) samplescan.c 의 예제를 그래도 구현하였으나 주변 블루투스 기기의 갯수는 제대로 스캐닝되나address 정보와 이름이 나오지 않았다. 그래서 hcitool 의 소스를 참고하여 직접 구현하였다. #include #include #include #include #include #include #include int main(int argc, char **argv){ inquiry_info *info = NULL;.. 더보기
큐비트럭 - 블루투스 개발 페도라에서 블루투스 디바이스가 올라오지 않아서 고생하다가 그냥 포기함..그래서 그냥 디바이스 올라오는 데비안에서 개발 결정. 데비안 설치 요약 설치 후 가장 먼저 /etc/network/interface 에서 네트워크 설정 확인 /etc/apt/sources.list 수정ftp.es.어쩌구 를 ftp.kr 로 변경apt-get update aptitude install -y vim (기본적으로 vim_tiny 만 설치되어 있어 vimrc 가 안먹힌다.)이후에 aptitude install -y bluez libbluetooth-dev gcc (열라 오래 걸림. 의존성 쩌름)/root/.vimrc 설정 그리고 /root/.bashrc 에서 alias 설정 확인 --color~ 풀어줘야 디렉토리랑 파일 색상.. 더보기