기본 콘텐츠로 건너뛰기

추천 가젯

Tmux 환경에서 Vim 컴파일 시 발생하는 termio/termios 감지 오류 해결 방법

 리눅스 환경에서 소스코드를 직접 빌드하다 보면 의외의 환경 변수나 터미널 세션 설정 때문에 엉뚱한 빌드 에러를 마주할 때가 있습니다. 대표적인 예로 Tmux 세션 내부에서 Vim 소스를 컴파일할 때 발생하는 termio/termios 감지 오류 가 있습니다. 이번 글에서는 해당 에러가 발생하는 원인과, 단순한 clean 으로는 해결되지 않는 이유 및 올바른 해결 방법을 정리합니다. 1. 문제 원인 Vim의 소스 코드 빌드 과정( configure )은 시스템이 System V 계열인지 Linux 계열인지 판별하기 위해 termio.h 와 termios.h 헤더 파일 및 터미널 인터페이스를 검사(Probe)합니다. 하지만 Tmux 내부(세션 안)에서 컴파일을 진행할 경우 , Tmux가 제공하는 PTY(Pseudo-Terminal) 환경과 TERM=screen 등의 특수한 환경 변수 영향으로 인해 Autoconf가 터미널 인터페이스를 검출하는 과정에서 오동작을 일으킵니다. 그 결과, 실제 시스템 조건과 무관하게 설정 에러를 발생시키게 됩니다. 2. 왜 make clean 으로는 해결되지 않을까? 일반적인 개발 과정에서는 빌드가 꼬였을 때 make clean 을 실행하곤 합니다. 하지만 make clean 은 컴파일된 오브젝트 파일이나 바이너리( .o 파일 등)만 삭제할 뿐, Autotools가 시스템 환경을 탐색한 결과로 남긴 캐시( config.cache 또는 내부 매크로 변수)나 설정 파일들은 그대로 유지 합니다. 일반적인 상황에서는 시스템의 하드웨어/OS 정보가 바뀌지 않기 때문에 이 잔여물이 문제가 되지 않습니다. 그러나 Tmux나 Screen 같은 터미널 멀티플렉서 환경에서 탐색된 왜곡된 정보가 캐시에 박혀버리면, 나중에 Tmux 외부(일반 터미널)로 나와서 빌드를 시도해도 이전의 오염된 캐시 때문에 계속해서 오류가 발생하게 됩니다. 3. 해결 방법 이 문제를 해결하기 위해서는 반드시 Tmux 외부 환경 에서 기존의 오염된 설정 파일을 ...

ebay 해외배송을 통해 완성한 3달간의 여정... (pcie gigabit ethernet card 설치 삽질기 )





랩탑에 기가비트가 필요해 산 9달러짜리 3포트 USB허브 기능이 있는 기가비트 카드이다. 

또 아래에는 연구실 이더넷 허브가 fast ethernet까지만 지원을 해서 연구실 컴퓨터와 그냥 질격하려고 질렀다. 



그런데 다음과 같이 그래픽카드가 자그마치 세칸이나 차지한다. 아뿔사... 
사실 그래픽카드가 당장 필요한 것은 아니지만 왠지 모를 패배감에 다시 ebay에 추가로 구매하 물품이 있다. 
이 분류 물건들은 원래 목적이 요런데 쓰이도록 만들어야 하는데 그런건 아닌고 먼가 워크스테이션이나 특수 장비를  만들 때 사용하는 것 같다. 조금 길고 케이스 앞면에도 후면처럼 나사박는데가 있으면... 영상단자 같은 것들을 앞으로 뺄 수 있으니까... 그 외는 ... 마이닝 용인데 이 물품은 아래 그림처럼 긴쪽에 플라스틱이 막혀있어서 그래픽 카드는 못 꽂는다. 

지난 주 금요일이 되서야 받은 마지막 물건이다. 

아래와 같이 구성을 했다. 


그래픽카드를 때고 팬이 있던 두번째 자리에 끝단을 꽂고 메인보드가 없는데다가 이걸 연결을 하고 나사를 박아야하는데... 아래 꽂는부위에 높이가 메인보드 두께+ 기둥처럼 생긴 볼트보다도 높아서 저 상태로는 고정이 불가능 하다. 

여러가지 방법으로 해결할 수 있는데. 
1. 후면 브라켓을 분리하고 LP용으로 교체한다.  아래쪽에 빈공간이 생기고 낑기는 부위가 없어서 고정이 정상적이지는 않다. 
2. 후면 브라켓에 새 구멍을 낸다. 실톱 등이 필요하겠지만 훨씬 깔끔하기는 할 것이다. 

그런데 나는 다행히도 자리중 하나에 선정리 공간으로 쓸 뒷길이 있어서 뒷길 자리에다가. 좀 어거지로 밀어넣었더니 잘 고정이 되었다. 

그리고 다시 그래픽카드를 연결하는데... 그래픽카드 제조사 썩을 것들이 공간을 세칸 두칸씩 차지하게 만들면서 아래에 저런 식으로 연장하는 것 조차 못하도록 공간을 빡빡하게 만들어놨다. 

힘으로 밀어넣었다. 그런데 케이블 부분에 히트싱크가 닿았을 수도 있어서 미래에는 어떻게 될지 모르겠다. 탄내가 나면... 다시 분리를 하고 구성을 처음부터 다시 해봤야 겠다. 


제일 좋은 방법은 아크릴판사서 후면 브라켓을 만드는 방법일거라 생각이 드는데... 일단 그래픽카드 만드는 회사들이 쿨링팬 아래에 공간 좀 넉넉하게좀 해주면 좋겠데 아니면... 자체적으로 라이저 카드를 붙여서 팔던가.... 

아니 이미 여러칸을 차지할거면... 8핀이니 6핀이니 꽂지 말고 자기들이 차지한 칸에서 전력 끌어다 쓰면 얼마나 좋아... 결국은 다 파워에서 끌어다 쓰는거면서.... 


댓글