Automotive

BMW의 소프트웨어 플랫폼 (node0)

chbae 2023. 8. 30. 13:56
728x90
반응형

이전 글에서 BMW가 다른 독일 OEM에 비해 전반적인 기술을 도입하는 속도나 성숙도가 느리다고 이야기 했었다. 하지만 계속 느끼고 있었고 오늘 EOSS (Embedded Open Source Summit) 2023에서 다시 한번 확인해본 결과 그렇지 않다는 결론을 스스로 내렸다.

 

지속적으로 오픈소스 컨퍼런스에 활동한 내용들을 발표했고, 이제는 스폰서도 하고, 데모도 지속적으로 한다. 여기서 만난 친구들과 여러 이야기를 나누면 소프트웨어에 대한 성숙도는 다른 독일 자동차 회사보다 훨씬 더 난거 같기도 하다.

 

EOSS 2023에서 BMW 데모

Node0 - BMW 소프트웨어 플랫폼

위의 데모는 최신 건 아니지만 Cluster에서 Linux를 사용하고 많은 곳 (IVI, RSU, 뒷좌석 양쪽 컨트롤러)에서 자체 리눅스 플랫폼인 Node0를 사용하고 있다. 목표는 리눅스에서 사용하고 있는 ECU를 모두 Node0 기반으로 가지고 가는 것이다.

 

BWM의 소프트웨어 플랫폼 Node0는 그럼 무엇인가? Yocto 기반의 리눅스로 만들어져 있고 systemd, dlt-daemon, life cycle managment와 같은 다른 ECU에서 사용할 수 있는 컴포넌트들을 가지고 만들었고 지속적으로 적용하는 ECU를 넓히려고 하고 있다.

 

현재 Yocto dunfell 버전을 사용하고 kirkstone으로 업그레이드 중이라고 한다. 플랫폼 관리의 어려운 점은 reference HW를 찾아서 개발해야하는데 qemu만으로 부족하고, 그렇다고 실제 사용하는 모든 ECU를 대응하기도 어려워서 1개를 잡아서 하고 있다고 한다. 또한 여러 ECU에 적용하다보니 요구사항과 ECU에서 사용하는 SoC가 많이 달라서 적용하는데 어려움이 있다고 한다.

 

현재 내부적으로 플랫폼을 고민하는 입장에서 완전히 공감을 하고 있다. 또한 CI/CD는 Zuul이라는 사용을 하여 개발을 진행하고 있고 수년동안 다양한 노하우를 가지고 있다.

Linux 기반 클러스터

이 외에도 Linux기반의 클러스터를 이미 개발해 양산에 적용했고 이를 추진하기 위해 2년이 걸렸고 매니지먼트를 설득하기 위해 엄청난 시간을 들였다고 한다. 아직 우리는 갈길이 멀지만 말이다. 이 이야기를 할 때 항상 safety 요구사항과 boot time 요구사항은 어떻게 맞출껀데 라는 질문이 나오고 safety는 cluster의 telltale 에서만 사용하고 Samsung이나 Qualcomm SoC에서는 DPU에서 CRC 체크를 지원하여 사용하고, 지원하지 않는 SoC는 작게 micom에서 처리하기도 한다.

 

Safety에 관련된 부분과 일부 카메라 알고리즘은 EOSS 2023에 발표한 https://sched.co/1LbeH 를 한번 가볍게 읽어보면 좋다.

정리

이야기를 정리하지만 BMW는 소프트웨어 쪽에서는 이미 많은 경험과 시행착오를 거쳐 플랫폼을 가지고 있고 CI/CD 구성 등도 AWS를 써서 잘하고 있는 것으로 보인다. 물론 하이퍼바이저 사용하여 양산 등에 대한 고려는 늦지만 소프트웨어 적으로는 잘하고 있는 것으로 보인다.

728x90