자동차 시장 오픈소스 - 1

컴퓨터공부/오픈소스 2017.01.15 19:18 Posted by 아는 개발자

IoT 기술의 발달로 전보다 자동차 내에 다양한 기능을 넣을 수 있게 되면서 이런 다양한 기술을 자동차 내에 개발 할 수 있는 표준을 제공하는 것이 업계 내에선 화두가 되었다. 이에 따라 큼직한 자동차 회사들은 다른 IT 회사들이 자동차 내 IVI(In Vehicle Infotainment) 소프트웨어 개발할 수 있는 표준을 제공하기 위해 끼리끼리 모여서 오픈소스 프로젝트를 진행하고 있다. 


대표적인 오픈소스 프로젝트로 GENIVI와 AGL(Automotive Grade Linux)가 있다. 두 프로젝트는 여러 면에서 유사한데 굳이 차이점을 고르라면 참여하고 있는 멤버와 AGL이 오픈소스로 유명한 Linux재단에서 운영되고 있다는 점 정도 일 것이다. 두 프로젝트 모두 Yocto 기반의 개발 환경을 두고 있으며 사용하고 있는 OS도 리눅스라는 점에서 동일하다. 내부에 사용하는 소프트웨어들이 조금 차이가 있을 뿐이다.


            


(로고를 클릭하면 프로젝트 공식 홈페이지로 이동한다)


목적도 동일하고 사용하는 플랫폼도 비슷한데 이렇게 둘로 나눠져 있는 이유는 아마 자동차 소프트웨어 시장의 주도권을 잡기 위함일 것이다. 추후 많은 자동차 IVI 소프트웨어 스타트업들이 자동차 시장에 참여할 텐데 OEM이나 FirstTier가 아닌 IT회사들이 초기 플랫폼을 어떤 것으로 선택하느냐가 이들이 만든 소프트웨어가 작동하는 플랫폼을 결정 할 것이고 이는 곧 자동차 업계들이 갖고 있는 플랫폼에서 동작 가능한 소프트웨어의 시장 크기를 결정할 것이다(안드로이드 앱 마켓과 타이젠 앱 마켓을 생각해보면 이해가 빠를 것이다). 미래의 자동차 소비자들은 기존에 자동차가 갖고 있는 성능이나 디자인 뿐만 아니라, 사용자가 원하는 소프트웨어 사용의 유무 또한 중요시 여기게 될 것이다. 데스크탑 시장에서 컴퓨터 게임이 맥북에서 실행이 되지 않아 윈도우를 선택했던 사례처럼 미래 자동차 시장도 "내가 탄 자동차가 내가 원하는 소프트웨어를 지원 하느냐 하지 않느냐"또한 차를 구입하는데 고려할 사항이 될 수 있다. 그렇기 때문에 자동차 업계들은 자신들의 플랫폼을 널리 알려 소프트웨어 개발 회사들이 자기들의 표준에 맞춰 개발하도록 독려 할 필요가 있다.


GENIVI와 AGL모두 공식 홈페이지에는 "우린 비영리 단체이며 IVI 소프트웨어 개발 환경을 제공해 다른 회사들이 쉽게 개발 할 수 있도록 하겠다"고 했지만 정작 이들의 숨은 목적은 결국 자신들이 갖고 있는 플랫폼 시장의 확대이다. 숨은 의도를 생각하면 잠시 괘씸한 기분이 들지만 원래 기업들의 존재의 목적이 이윤 추구가 아닌가. 이 기업들이 모두 모여서 잘 정리해둔 소스코드를 공짜로 볼 수 있다는 것 만으로도 나같은 초짜 개발자들은 감사한 일일지도.. 더구나 이런 프로젝트들 덕분에 초기 기술이 없어도 차량 스타트업이 진출 할 빈틈이라도 노려 볼 수 있는게 아닌가 싶기도 하다.


아무튼 두 프로젝트의 성격은 비슷하니 앞으로 설명은 GENIVI 프로젝트에 맞춰서 설명하도록 하겠다.


앞에서 IVI기반 소프트웨어 개발 환경을 제공 한다고 했는데 이들이 뭘 하는지 이해가 가지 않을 것이다. 그래서 GENEVI에서는 딱 프로젝트 소스코드를 받고 빌드 했을 때 나오는 결과물들을 표로 정리를 해뒀다.



GENIVI 프로젝트 Yocto 소스를 받아 빌드하면 많은 결과물들이 많이 나오는데 크게 커널 이미지와 Rootfs로 나눌 수 있다. 커널 이미지는 Genivi의 OS로 사용되는 이미지이고 Rootfs는 표 상단에 잇는 App& HMI Framework와 Demo App들이 설치되어있다. 빌드된 파일들을 선택한 하드웨어 환경에 적용하면 정상적으로 실행되는 걸 확인 할 수 있다.


(빌드하고 나서 Qemu로 돌려본 Genivi. 생각보다 별로 볼 건 없다)


다양한 하드웨어에 적용 될 수 있도록 만들어 놨는데 위 도표에 있는 하드웨어들이 GENIVI 프로젝트에서 돌릴 수 있는 하드웨어 들이다. 집에 보드 하나 없는 필자의 경우에는 QEMU x86-64에서 한 번 빌드 결과물들을 돌려 봤다. 매우 느릿느릿 하지만 동작하고 UI가 뜨는 것도 확인 했다. 라즈베리파이나 다른 보드에 맞춰 개발하려면 초기 빌드시 위 환경에 맞춰서 빌드 하도록 설정하면 된다. 각 하드웨어마다 필요한 드라이버들이 조금 차이가 있다.


기본적으로 제공되는 Demo Application들은 위에 Demo Apps 카테고리에 있는 것들이다. 그리고 이 애플리케이션 개발 프레임워크는 Qt를 쓰는데 Qt는 오픈소스 C++개발 프레임워크이다. 예전에는 이런 프레임워크 존재 자체도 몰랐었는데 이번에 GENIVI프로젝트를 조사하면서 알게 됐다. 현재 Demo App으로 올라가있는 애플리케이션들은 모두 C++로 만들어져 있다. AGL도 애플리케이션 프레임워크로 Qt를 사용하고 있는데 아마 임베디드 리눅스 환경에서 가장 쉽게 사용 할 수 있는 프레임워크라 그런게 아닌가 싶다.




네비게이션, FM라디오, 차량 온도조절처럼 익숙한 애플리케이션들은 이미 설치 있었고 처음 보는 것은 Connected Home이란 애플리케이션이었다. 이름만 들어도 차량과 집이 연결된다는 느낌을 줬는데 실제로 실행해보니 집을 나가는 버튼(Leaving Home), 집으로 돌아오는 버튼(Coming Home)이 있었고 각 버튼을 눌러보니 집을 나가는 버튼(Leaving Home)을 눌렀을 때는 Vehicle Moving 이라는 알림이 떴고 Coming Home을 눌렀을 때는 집으로 돌아가는 경로를 영상의 형태로 보여줬다. 맨 아래 Smart Home Status라는 버튼이 있었는데 이 버튼은 눌러도 아무런 반응이 없다(아마 QEMU라 느려서 그런 것 같다) 빌드과정에서 Iotivity 오픈소스들을 쭉 받았었는데 아마 그 오픈소스를 활용해 차량에서도 집안의 디바이스들의 상태를 확인할 수 있는 애플리케이션이 아닐까 싶다. 이렇게 데모로 애플리케이션이 나올 정도면 4-5년 후에는 차안에서도 집안의 세탁기를 돌리는 시대가 올 것 같다. 물론 지금 스마트폰으로도 가능하니 그리 놀라운 일은 아닌 것 같기도 하고.

'컴퓨터공부 > 오픈소스' 카테고리의 다른 글

오픈소스 라이센스 정리  (0) 2019.06.09
FFmpeg  (0) 2018.10.31
자동차시장 오픈소스 - 2  (0) 2017.01.31
자동차 시장 오픈소스 - 1  (0) 2017.01.15
이런 오픈 소스도 있다!  (0) 2017.01.07
오픈소스 시작하기  (0) 2017.01.01