Skip to content

Latest commit

 

History

History
248 lines (155 loc) · 10.3 KB

File metadata and controls

248 lines (155 loc) · 10.3 KB

NI 리눅스 드라이버 설치 및 이더넷 장비 설정 통합 가이드

개요

이 문서는 RHEL 9, Rocky Linux 9, AlmaLinux 9 등 최신 엔터프라이즈 리눅스 배포판에서 National Instruments (NI) 드라이버를 설치하고, 이더넷 기반의 cDAQ 장비를 설정할 때 발생하는 주요 문제들을 해결하기 위한 통합 가이드입니다.

이 가이드는 다음 세 가지 핵심 문제를 자동으로 해결하는 데 중점을 둡니다.

  1. DKMS 커널 모듈 빌드 오류: NO_WEAK_MODULES 호환성 문제로 NI 드라이버 커널 모듈 빌드가 실패하는 현상 해결
  2. 최신 커널 dracut 생성 에러 (exit status 2): 커널 업데이트 시 부팅 이미지(initramfs) 저장 폴더(/boot/efi/...) 누락으로 인해 패키지 설치/삭제 과정에서 시스템이 무한 대기(Deadlock)에 빠지는 치명적 오류 완벽 방어
  3. 이더넷(cDAQ) 장비 연결 문제: 방화벽, IP 설정, 장치 미등록으로 인해 NI 소프트웨어가 cDAQ를 인식하지 못하는 현상 해결

초보자도 쉽게 따라 할 수 있도록 전체 과정을 단계별로 상세히 안내합니다.


전체 해결 과정

아래의 6단계를 순서대로 진행하면 NI 드라이버 설치부터 cDAQ 장비 사용 준비까지 모든 과정을 완료할 수 있습니다.

1단계: NI 드라이버 다운로드 및 설치

가장 먼저 National Instruments 공식 웹사이트에서 사용하려는 드라이버(예: NI-DAQmx)를 다운로드하여 설치합니다.

  1. 다운로드한 드라이버 설치 프로그램을 실행합니다.
  2. 설치 과정 중 DKMS 관련 오류 (dkms.conf: Error!, Bad conf file, dracut failed 등)가 발생하더라도 당황하지 마시고 무시한 채 설치를 끝까지 완료합니다. 꼬여버린 시스템은 3단계에서 스크립트로 완벽하게 복구 및 해결할 것입니다.

2단계: 커널 헤더 및 개발 도구 설치 (중요)

DKMS가 커널 모듈을 빌드하려면 현재 실행 중인 커널 버전에 맞는 **커널 헤더(kernel-devel)**와 **개발 도구(gcc, make 등)**가 반드시 필요합니다.

터미널을 열고 아래 명령어를 실행하여 필수 패키지를 설치합니다.

sudo dnf install kernel-devel-$(uname -r) gcc make
  • $(uname -r)는 현재 커널 버전을 자동으로 입력해주는 명령어입니다.

3단계: DKMS 빌드 오류 및 dracut 에러 자동 해결

이제 NI 드라이버의 DKMS 호환성 문제와 최신 커널의 부팅 이미지 경로 누락 문제를 해결할 차례입니다. fix-ni-dkms.sh 스크립트가 이 모든 과정을 자동으로 안전하게 처리해 줍니다.

  1. 스크립트 다운로드
git clone https://github.com/opercjy/ni_linux_driver_dkms.git
cd ni_linux_driver_dkms
  1. 실행 권한 부여
chmod +x fix-ni-dkms.sh
chmod +x remove-ni-dkms.sh
  1. 스크립트 실행 (root 권한 필수)
sudo ./fix-ni-dkms.sh

스크립트가 실행되면서 시스템을 스캔하여 누락된 EFI 디렉토리를 선제적으로 생성하고, NI 커널 모듈을 안전하게 빌드 및 설치합니다. 마지막에 dkms status 결과가 installed 상태로 표시되면 성공입니다. 안정적인 구동을 위해 작업 완료 후 시스템을 한 번 재부팅하는 것을 강력히 권장합니다.


4단계: 이더넷 장비 네트워크 설정

이제 소프트웨어 설치가 끝났으니 하드웨어(cDAQ)를 설정할 차례입니다.

4-1. 물리적 연결 및 IP 주소 확인

컴퓨터와 cDAQ 장비를 동일한 네트워크 계층에 있도록 이더넷 케이블(랜선)로 연결합니다. cDAQ 장비는 기본적으로 DHCP 모드로 설정되어 공유기로부터 IP 주소를 자동으로 할당받습니다. 공유기 설정 페이지 등에서 cDAQ에 할당된 IP 주소(예: 192.168.0.105)를 확인합니다.

ping <cDAQ의 IP> 명령어로 연결을 테스트해 볼 수 있습니다.

4-2. 방화벽 설정

리눅스의 기본 방화벽은 NI 장비와의 통신을 차단할 수 있습니다. 아래 명령어를 실행하여 NI 통신에 필요한 포트를 영구적으로 열어줍니다.

#!/bin/bash
# 이 내용을 쉘 스크립트 파일(예: open_ni_ports.sh)로 저장하여 실행하세요.

PORTS_TCP=(80 3580 5353 31415)
PORTS_UDP=(5353 7865 8473)

echo "NI DAQmx 관련 TCP 포트를 영구적으로 추가합니다..."
for port in "${PORTS_TCP[@]}"; do
    sudo firewall-cmd --permanent --add-port=${port}/tcp
done

echo "NI DAQmx 관련 UDP 포트를 영구적으로 추가합니다..."
for port in "${PORTS_UDP[@]}"; do
    sudo firewall-cmd --permanent --add-port=${port}/udp
done

echo "방화벽 규칙을 다시 로드하여 적용합니다..."
sudo firewall-cmd --reload

echo "완료되었습니다. 현재 적용된 방화벽 규칙 

NI 리눅스 드라이버 설치 및 이더넷 장비 설정 통합 가이드

개요

이 문서는 RHEL 9, Rocky Linux 9, AlmaLinux 9 등 최신 엔터프라이즈 리눅스 배포판에서 National Instruments (NI) 드라이버를 설치하고, 이더넷 기반의 cDAQ 장비를 설정할 때 발생하는 주요 문제들을 해결하기 위한 통합 가이드입니다.

이 가이드는 다음 두 가지 핵심 문제를 해결하는 데 중점을 둡니다.

  1. DKMS 커널 모듈 빌드 오류: NO_WEAK_MODULES 호환성 문제로 NI 드라이버 커널 모듈 빌드가 실패하는 현상
  2. 이더넷(cDAQ) 장비 연결 문제: 방화벽, IP 설정, 장치 미등록으로 인해 NI 소프트웨어가 cDAQ를 인식하지 못하는 현상

초보자도 쉽게 따라 할 수 있도록 전체 과정을 단계별로 상세히 안내합니다.


전체 해결 과정

아래의 6단계를 순서대로 진행하면 NI 드라이버 설치부터 cDAQ 장비 사용 준비까지 모든 과정을 완료할 수 있습니다.

1단계: NI 드라이버 다운로드 및 설치

가장 먼저 National Instruments 공식 웹사이트에서 사용하려는 드라이버(예: NI-DAQmx)를 다운로드하여 설치합니다.

  1. 다운로드한 드라이버 설치 프로그램을 실행합니다.
  2. 설치 과정 중 DKMS 관련 오류 (dkms.conf: Error!, Bad conf file 등)가 발생하더라도 무시하고 설치를 끝까지 완료합니다. 이 오류는 3단계에서 스크립트로 해결할 것입니다.

2단계: 커널 헤더 및 개발 도구 설치 (중요)

DKMS가 커널 모듈을 빌드하려면 현재 실행 중인 커널 버전에 맞는 **커널 헤더(kernel-devel)**와 **개발 도구(gcc, make 등)**가 반드시 필요합니다.

터미널을 열고 아래 명령어를 실행하여 필수 패키지를 설치합니다.

sudo dnf install kernel-devel-$(uname -r) gcc make
  • $(uname -r)는 현재 커널 버전을 자동으로 입력해주는 명령어입니다.

3단계: DKMS 빌드 오류 자동 해결

이제 NI 드라이버의 DKMS 호환성 문제를 해결할 차례입니다. fix-ni-dkms.sh 스크립트가 이 과정을 자동으로 처리해 줍니다.

  1. 스크립트 다운로드

    git clone https://github.com/opercjy/ni_linux_driver_dkms.git
    cd ni_linux_driver_dkms
  2. 실행 권한 부여

    chmod +x fix-ni-dkms.sh
  3. 스크립트 실행

    sudo ./fix-ni-dkms.sh

목록:

sudo firewall-cmd --list-all

4-3. 고정 IP 설정 (선택 사항)

매번 IP가 바뀌는 것이 불편하다면 고정 IP를 설정하는 것이 좋습니다.

  • Linux에서 설정하는 방법 (가장 보편적) 웹 브라우저를 열고 주소창에 cDAQ의 현재 IP 주소를 입력하여 설정 페이지에 접속합니다. Network Configuration 탭으로 이동하여 DHCP를 **Static (고정)**으로 변경하고 원하는 IP 정보를 입력한 후 저장합니다.
  • 터미널 명령어 이용 (고급 사용자용)
# 아래 명령어는 NI-DAQmx 버전에 따라 지원되지 않을 수 있습니다.
sudo nidaqmxconfig --set-net-settings <장치이름> --ip-mode static --ip-addr <고정IP> ...

5단계: 시스템에 장비 등록 및 최종 확인

네트워크 설정이 끝난 장비를 NI-DAQmx 시스템에 공식적으로 등록합니다.

  1. 터미널에서 장치 추가 (고정 IP를 설정했다면 새 IP로 추가)
sudo nidaqmxconfig --add-net-dev <cDAQ의_IP_주소>
  1. 장치 예약(reserve) / 예약 해제(unreserve) 및 리셋(reset) (모듈 인식을 위해)
# 장치 이름은 'nilsdev'로 확인 가능 (예: cDAQ9189-2189707)
sudo nidaqmxconfig --reserve <장치이름>
sudo nidaqmxconfig --reset <장치이름>
sudo nidaqmxconfig --unreserve <장치이름>
  1. 최종 확인
nilsdev

명령어 결과에 cDAQ 섀시와 모든 모듈이 [Not Present] 표시 없이 정상적으로 나타나면 모든 설정이 성공적으로 완료된 것입니다.


문제 해결 및 추가 도구

NI DKMS 모듈 전체 안전 삭제 (remove-ni-dkms.sh)

드라이버가 꼬여서 처음부터 다시 설치하고 싶거나, 패키지 업데이트 중 시스템이 멈췄을 때 시스템에 등록된 모든 NI DKMS 모듈을 깨끗하고 안전하게 삭제할 수 있습니다. 모듈 삭제 시에도 발생하는 dracut 에러(부팅 이미지 재생성 실패)를 사전에 방지하는 방어 로직이 포함되어 있습니다.

sudo ./remove-ni-dkms.sh

주요 터미널 명령어 요약

명령어 설명
nilsdev 시스템에 등록된 모든 NI 장치와 모듈 목록을 보여줍니다.
nidaqmxconfig --add-net-dev <IP> 지정된 IP 주소의 네트워크 장치를 시스템에 추가합니다.
nidaqmxconfig --del-net-dev <이름> 지정된 이름의 장치를 시스템 설정에서 삭제합니다.
nidaqmxconfig --reserve <이름> 장치의 제어권을 독점적으로 가져옵니다. (설정 변경 시 필요)
nidaqmxconfig --unreserve <이름> 장치의 제어권을 반납하여 다른 시스템도 접근하게 합니다.
nidaqmxconfig --reset <이름> 장치를 리셋하여 하드웨어 정보를 다시 읽어옵니다.