openSUSE Tumbleweed ARM, 라즈베리 파이와 다양한 보드의 기반을 다듬다

openSUSE Tumbleweed ARM, 라즈베리 파이와 다양한 보드의 기반을 다듬다

openSUSE Tumbleweed는 고정된 버전 대신 새 패키지를 계속 받아들이는 롤링 릴리즈 배포판입니다.

ARM 포트도 같은 방식으로 갱신되지만 PC용 패키지를 그대로 옮기는 일만으로는 충분하지 않습니다. 보드마다 무선 칩과 부트 방식, 펌웨어가 다르기 때문입니다.

라즈베리 파이에서 실제로 마주칠 수 있는 무선 오류부터 가상 머신과 개발 도구까지 범위가 넓습니다.

라즈베리 파이에서 조용해진 무선 연결

Raspberry Pi 5 (출처 : 라즈베리파이 공식 홈페이지)

라즈베리 파이용 raspberrypi-firmware에는 Wi-Fi 검색 중 실제 실패가 아닌 “-52” 오류 메시지가 나타나던 문제가 수정됐습니다.

네트워크 목록을 확인하는 평범한 동작에서 펌웨어가 가짜 실패를 보고하던 현상이라, 사용자는 연결이 잘 된 것인지 혼란스러웠던 적이 있었습니다.

무선 연결을 오래 유지하는 장치라면 메모리 누수도 중요합니다. Linux 7.2.4 커널에서는 Cypress 무선 칩에 사용되는 brcmfmac 드라이버의 SDIO 제어 경로에서 메모리가 계속 잔존하는 문제를 고쳤고, 짧은 테스트에서는 잘 드러나지 않지만 파일 서버나 홈 자동화 장치처럼 며칠씩 켜 두는 보드에서는 체감 차이가 납니다.

커널과 시스템 구성 요소의 동시 업데이트

9월 ARM 스냅샷은 커널을 7.2.5까지 올렸고 보안 수정도 포함했습니다.

Rockchip 계열 보드에 많이 쓰이는 MediaTek 무선 칩셋에는 USB와 SDIO 전송을 위한 여유 공간 처리와 장치 정보 검증이 보강됐습니다. 잘못된 장치 데이터가 들어왔을 때 드라이버가 무리하게 처리하지 않도록 경계를 세운 셈입니다.

Qualcomm 플랫폼을 위한 펌웨어도 늘었습니다. x1e80100, nord, QCS8300 계열에서 모뎀과 DSP, 그래픽 기능을 지원하는 데 필요한 파일이 추가됐습니다. 이런 펌웨어 패키지가 바뀌면 실제 사용 가능 범위도 넓어집니다.

보드가 부팅된다고 해서 모든 주변 기능이 곧바로 동작하는 것은 아니기 때문입니다. 부팅 과정의 작은 부분도 손봤습니다. dracut의 AArch64 그래픽 모듈 목록에는 Qualcomm LPG LED 드라이버가 들어가 초기 RAM 디스크 단계에서 RGB 표시등을 유지할 수 있게 됐습니다.

부팅 중 장치를 확인해야 하는 개발 보드에서는 이런 표시가 고장 진단에 도움이 됩니다. NXP i.MX 8M Plus 평가 키트는 QEMU 11.1.1에서 가상으로 시험할 수 있게 됐습니다. 실제 보드를 매번 준비하지 않고도 이미지와 부팅 절차를 확인할 수 있어 임베디드 소프트웨어를 만드는 사람에게 유용한 변화입니다.

AArch64 개발 환경과 가상화의 폭

glibc는 2.44로 올라갔습니다. AArch64에서 Guarded Control Stack을 사용할 때 관련 동작을 더 단단히 잠그고 SVE와 AdvSIMD를 활용하는 수학 함수의 벡터화도 확대했습니다. 지원하는 프로세서에서 부동소수점 계산을 처리하는 프로그램이 이점을 얻을 수 있지만, 모든 ARM 장치가 같은 명령어 확장을 갖는 것은 아닙니다.

QEMU 11.1.1에는 ARM 가상 머신을 위한 여러 개선이 들어갔습니다. UFS 4.1 기반 기능과 새로운 ARM CPU 특성, virt 보드의 캐시 구성 지정이 포함됐고 i.MX 8M Plus 평가 키트도 에뮬레이션 대상이 됐습니다.

초기 개발과 자동 테스트의 진입 장벽은 낮아집니다. 데스크톱 사용자에게도 변화가 있습니다.

GIMP 3.2.6은 AArch64에서 브러시와 패턴을 클립보드로 옮길 때 사용할 수 있는 최대 크기를 8192로 맞췄습니다.

Shotwell 33.0은 GTK4로 포팅됐고 전체 화면 도구 모음과 슬라이드 쇼 아이콘 문제도 수정했습니다.

원문 뉴스 : 9to5Linux


🐧 Linuxroom의 생각 :

openSUSE는 여러 Linux 배포판중에 하나입니다. 그 중에서 텀블위드는 Arch Linux 처럼 최신 기능이 빠르게 업데이트 되는 롤링 릴리즈 Linux이죠.

이번 업데이트에서는 여러 ARM에 대한 안정성 확대, 다한 ARM 기기등의 부팅 지원 확대 등 여러 지원이 포함된 것으로 보입니다.

특히나 라즈베리 파이에서 Wi-Fi를 검색할 때 실제로는 문제가 없는데, 에러 코드 (-52)를 뱉으면서 인터넷 연결에 문제가 있는 것 처럼 보였던 버그를 수정다고 하네요.

추가로 무선 랜 드라이버에서 메모리가 조금씩 누수되는 문제도 수정되었습니다. 물론 이 업데이트를 적용한다고 해서 속도가 빨라지거나 하는건 아니지만, 며칠씩 계속 켜두는 홈 서버나 스마트홈 기기가 도중에 먹통이 되지 않고 훨씬 안정적으로 돌아가게 됐다는 이야기죠

openSUSE 및 여러 Linux의 개선이 되는건 항상 기분 좋은 일입니다 😄


※ 각주

[1] ARM: 스마트폰과 임베디드 장치에 널리 쓰이는 명령어 구조 계열이며, 여기서는 ARM 기반 프로세서용 리눅스 환경을 뜻합니다. 

[2] 롤링 릴리즈: 정해진 정식 버전으로 한 번에 업그레이드하지 않고 패키지를 계속 최신 상태로 갱신하는 배포 방식입니다.

[3] AArch64: 64비트 ARM 프로세서에서 사용하는 명령어 구조입니다.

[4] brcmfmac: 브로드컴과 Cypress 계열 무선 칩을 지원하는 리눅스 커널 드라이버입니다.

[5] SDIO: 무선 칩 같은 주변 장치가 SD 카드 인터페이스를 확장해 데이터를 주고받는 방식입니다. 

[6] QEMU: 다른 프로세서나 장치 환경을 소프트웨어로 흉내 내 운영체제와 프로그램을 시험하는 가상화·에뮬레이션 도구입니다. 

[7] glibc: 리눅스 프로그램이 파일, 메모리, 네트워크 같은 운영체제 기능을 사용하도록 연결해 주는 표준 C 라이브러리입니다.

[8] SVE와 AdvSIMD: ARM 프로세서에서 여러 데이터를 한 번에 처리해 계산을 빠르게 하는 벡터 명령어 확장입니다. 

[9] initrd: 리눅스가 본격적인 루트 파일 시스템을 마운트하기 전에 임시로 사용하는 초기 파일 시스템입니다.

[10] GTK4: 리눅스 데스크톱 애플리케이션의 창과 버튼 등 그래픽 화면을 만드는 도구 모음입니다.