A Porting Technique of WiFi Device on Android Platform

안드로이드 플랫폼에 WiFi 디바이스 탑재 기법

  • Jeong, Uyeong (Department of Computer Science, Chungbuk National University) ;
  • Ju, Youngkwan (Department of Electrical & Computer Engineering, Chungbuk National University) ;
  • Jeon, Joongnam (Department of Electrical & Computer Engineering, Chungbuk National University)
  • 정우영 (충북대학교 컴퓨터과학과) ;
  • 주영관 (충북대학교 전자정보대학) ;
  • 전중남 (충북대학교 전자정보대학)
  • Received : 2012.06.15
  • Accepted : 2012.06.30
  • Published : 2012.05.31

Abstract

Android platform is a powerful operating system developed on Linux 2.6 Kernel, and provides many features such as comprehensive libraries, a multimedia environment, and powerful interface for phone applications. Since Android is an open operating system, which can be installed in any vendors's equipments. Current smartphones as well as netbooks, navigations, car PCs, tablet PCs, Industrial PCs are used in various fields. It is difficult a lot that to mount to other devices on the Android platform or new devices. In this Paper, The process that data that occurred from a hardware was passed to the highest application and Android platform system for managing hardware devices were analyzed. Building Android & driver compilation environment, How to support the protocol for the use of WiFi in the kernel, How to Mount a WiFi device in the kernel, Device driver registration for the Android platform, WiFi Management Service Daemon (wpa_supplicant) and IP allocation services daemon (dhcpcd) registration, How to create a socket for communication between the daemon (wpa_supplicant) and HAL have been presented. In the experiment using the proposed method, WiFi devices were mounted on the Android platform in the X-86 & ARM family. Understanding the whole process of control flow in Android hierarchy is very important to porting a new device on it. The process included in this paper can help technicians who might encounter the obstacles in their porting works.

안드로이드 플랫폼은 리눅스 2.6 커널을 기반으로 강력한 운영체제와 포괄적 라이브러리, 멀티미디어 환경, 사용자 인터페이스, 폰 애플리케이션 등을 제공한다. 안드로이드는 개방형 운영체제이기 때문에, 어느 벤더기기에든 탑재가 가능하다. 현재 스마트폰뿐만 아니라 넷북, 네비게이션, 카 PC, 태블릿 PC, 산업용 PC 등 여러 분야에서 사용되고 있다. 안드로이드를 다른 기기에 탑재하거나 안드로이드 플랫폼에 새로운 디바이스를 탑재하려면 많은 어려움이 따른다. 본 논문에서는 하드웨어 장치에서 발생한 데이터가 최상위 애플리케이션까지 전달되는 과정과 안드로이드 플랫폼이 하드웨어 디바이스를 관리하는 체계를 분석하고, WiFi 디바이스를 탑재하는 절차를 안드로이드 및 드라이버 컴파일 환경구축, 커널에서 WiFi 사용을 위한 프로토콜 지원, WiFi 디바이스를 커널에 탑재, 안드로이드 플랫폼에 디바이스 드라이버 등록, WiFi 관리서비스 데몬(wpa_supplicant)과 IP 할당서비스 데몬(dhcpcd) 등록, 데몬(wpa_supplicant)과 HAL의 통신을 위한 소켓 생성으로 제시하고 있다. 실험에서는 본 논문에서 제시한 방법을 이용하여 ARM 계열과 X-86 계열의 안드로이드 플랫폼에 WiFi 디바이스를 탑재했다. 안드로이드 플랫폼에 디바이스 탑재 시에는 안드로이드의 소프트웨어 계층을 이해하는 것이 매우 중요하며, 이러한 경험은 안드로이드 플랫폼에 새로운 디바이스를 탑재할 때에도 많은 도움이 될 것이다.

Keywords