YOGYUI

Linux :: Real-Time Ubuntu 22.04 LTS (PREEMPT_RT) 본문

Software/Etc

Linux :: Real-Time Ubuntu 22.04 LTS (PREEMPT_RT)

요겨 2023. 5. 8. 11:03
반응형

 

1. Introduction

로봇공학을 전공했거나 실무에 적용하고 있는 개발자라면 적어도 한번쯤은 EtherCAT(이더캣)을 사용해봤을 것이다

 

서보 모터 드라이버, I/O 보드 등 이더캣 슬레이브(Slave)를 구동하기 위해서는 이더캣 마스터(Master) 디바이스가 필요한데 개발 과정에서는 이더캣 개발사인 Beckhoff 등에서 판매(국내 모터 업체도 꽤 많다)하는 마스터 PC 혹은 마스터 PCI 슬롯 카드를 구매해서 사용하는게 일반적이다

 

좀 더 deep하게 모든 모듈을 내재화하고자하는 회사에서는 이더캣 마스터 모듈 자체도 개발하게 되는데, 일반적으로 Real-Time Linux를 OS로 사용하고 이더캣은 RT-LAB의 SOEM이나 EtherLab의 IgH EthreCAT Master 등 오픈소스 코드를 기반으로 코드를 구현하게 된다 (내가 하고 있는 업무 중 일부...)

※ 이더캣 프로토콜은 빠른 통신 속도보다는 안정적인 통신 주기를 필요로 한다 (주기는 보통 125us~1ms 사이)

 

Real-Time Linux는 일반적으로 우리가 구할 수 있는 Ubuntu에 Real-Time 커널(Kernel) 패치를 통해 구현해야 하며, RT-Preempt 혹은 Xenomai 2개 방식이 널리 사용되는 방식이다

 

이더캣이 워낙에 글로벌하게 사용되는 프로토콜이다보니 RT-Linux를 구축하는 방법에 대해서도 조금만 구글링해보면 자세한 가이드가 워낙에 잘 나와있어서 따라할 수 있긴 한데... 리눅스 커널에 대한 기초적인 이해가 없으면 "내가 대체 뭘 하고 있는거지?"라는 생각이 들게 되고, 구축 과정 자체가 굉장히 난해하고 복잡하다

(Ubuntu LTS 22.04에서는 커널 다운그레이드부터 해야된다...)


But!

올해(2023년) 초 Ubuntu 개발 및 배포 업체 Canonical에서 Real-Time 커널이 내장(무려 커널 5.15 버전 위에 PREEMPT_RT 패치를 적용!!)된 Real-Time Ubuntu 22.04 LTS를 출시했고, 베타 테스트 후 이제 쉽게 해당 OS를 구할 수 있다 

 

https://ubuntu.com/blog/real-time-ubuntu-is-now-generally-available

 

Real-time Ubuntu is now generally available | Ubuntu

Real-time Ubuntu brings end-to-end security and reliability to the time-bound workloads of modern enterprises. With support for real-time compute, Canonical furthers its commitment to providing a best-in-class experience for open-source software consumptio

ubuntu.com

https://www.acontis.com/en/ubuntu-linux-realtime-howto.html

 

Setting up Ubuntu Linux 22.04 for Real-time Performance with EtherCAT

Setting up Ubuntu Linux 22.04 for Real-time Performance with EtherCAT Introduction The quality of EtherCAT communication depends heavily on the accuracy of the EtherCAT cycle. A high amount of jitter in the cycle time has a negative impact on the process d

www.acontis.com

 

링크를 보면 core22가 설치된 Ubuntu 22.04 LTS의 터미널에서 명령어 한줄로 RT 커널을 설치할 수 있다고 한다

다만 Ubuntu Pro 구독이 필요하다고 하는데, 비상업적 용도로는 무료로 구독할 수 있다고 한다

 

- Canonical의 core22가 설치되어 있는지 확인 (default로 설치되어 있지 않을 수 있다)

설치되어 있지 않다면 core22를 설치해주자

 

Pro 구독을 하지 않은 상태에서 다음 명령어를 터미널에서 입력해보자

$ sudo pro enable realtime-kernel

예상대로 Ubuntu Pro 구독이 되지 않은 상태에서는 "you need an Ubuntu Pro subscription"이라는 안내 메시지가 나오게 된다 ㅠ

비상업용도로 Ubuntu Pro를 구독한 뒤, RT 커널을 다시 설치해보자

2. Ubuntu.com 가입 및 Personal Token 발급

Ubuntu Pro는 우리가 평소에 받아쓰던 무료 Ubuntu Desktop/Server와 달리 금액을 지불하고 구매하여 사용해야 하는 OS이다 (Desktop 버전으로 최소 금액은 $25로 크게 부담스러운 금액은 아니다)

다양한 서비스 지원 여부에 따른 가격 정책은 https://ubuntu.com/pricing/pro 에서 확인할 수 있다

 

본 포스팅에서는 비상업적 개인 용도로 Ubuntu Pro를 사용하는 방법에 대해서 알아본다

Ubuntu Pro 홈페이지(https://ubuntu.com/pro) 대문에서 바로 'Register for personal use' 항목을 클릭

Ubuntu.com의 계정으로 로그인해야 한다

계정이 없으면 하나 만들어주자

(계정은 이메일 주소 + 이메일 인증만 거치면 쉽게 생성할 수 있다)

계정이 있을 경우 로그인
계정이 없을 경우 생성

 

최초로 생성했거나, 아무것도 구독하지 않았을 경우 아래와 같은 초기화면을 볼 수 있다

- 어떠한 구입과정 없이도 계정 생성과 동시에 'Free Personal Token'이 발급된다

- PC 5대까지만 무료로 업그레이드 가능하다

3. Ubuntu Pro로 변경

Ubuntu 22.04 LTS가 설치된 상황에서 별도로 OS를 다시 설치할 필요없이 쉽게 업그레이드(?)할 수 있다

 

위에서 발급받은 'Free Personal Token'을 Ubuntu 22.04 터미널에서 다음과 같이 입력

※ 인터넷에 연결된 상태여야 한다

$ sudo pro attach {free personal token}

완료되면 'Software & Updates' 설정에서 Ubuntu Pro가 활성화된 것을 확인할 수 있다

활성화 후 Ubuntu Pro 페이지의 'Your subscription' 메뉴에서 Pro가 활성화된 기기 수를 확인할 수 있다

Ubuntu 최초 설치 시 Pro 활성화 여부를 default로 묻게 되는데, 여기에서 personal token을 입력해서 활성화할 수도 있다 (터미널 작업 불필요)
※ 마찬가지로 인터넷 접속 필요

Token 체크 후 다음과 같이 활성화된다

4. Real-time kernel 설치

Ubuntu Pro 활성화 후 다시 RT 커널을 설치해보자

$ sudo pro enable realtime-kernel

Ubuntu Pro 활성화 여부 체크 후 두 개의 경고 메시지가 출력된다

- 'Livepatch'를 비활성화 (키보드 y 입력)

- 리눅스 커널이 바뀌며, 원상복구를 위해서는 수동으로 작업해야 한다 (키보드 y 입력)

설치 완료 후 'Real-time kernel enabled' 메시지가 출력되며, 리부팅을 하라는 안내메시지가 최종적으로 출력된다

재부팅 후 터미널에서 uname 명령어를 통해 커널 버전을 확인해보자

$ uname -r

2023년 5월 8일 기준 RT 리눅스 커널은 5.15.0-1037-realtime이 설치된다

 

5.15 기반 Real-Time 커널을 이렇게나 쉽게 설치할 수 있다니... 감개무량하다 ^^;

5. Next Job

https://www.acontis.com/en/ubuntu-linux-realtime-howto.html

다른 블로그를 보면 커널 파라미터 세팅에 따라 EtherCAT Cycle Time의 안정성 여부가 크게 달라진다고 한다

PC를 오롯이 EtherCAT Master 디바이스로 활용하려면 커널 파라미터 최적화 과정이 필요한 것 같은데, 이에 대해서는 다음 포스팅에서 알아보도록 하자

※ RT 커널 원상복구 및 Ubuntu Pro detach 방법에 대해서도 다른 글에서 알아보도록 한다

 

반응형
Comments