기본 콘텐츠로 건너뛰기

추천 가젯

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 외부 환경 에서 기존의 오염된 설정 파일을 ...

Laptop으로 쓰고 있는 lg gram은 이해할 수 없는 부분들이 너무 많다. 요 제품은 13Z940이다.

  • Operating System: Windows 8.1 (64bit)
  • Processor: 4th Gen Intel Core i5-4200U Processor (1.6 GHz, 3M Cache, up to 2.60 GHz)
  • Chipset: Intel HM 77
  • Memory: 4GB (DDR3L 1600MHz)
  • Storage: 128GB SSD (SATA3)
  • Display: 13.3 inch Full HD (1920 x 1080) 16:9 IPS LCD, Edge LED
  • Graphics: Intel HD Graphics 4400
  • Wireless: Intel Dual Band Wireless, Intel WiDi (Wireless Display) & Bluetooth 4.0 + LE (Low Energy)
  • LAN: 10/100 Mbit (Require RJ45 Mini to Standard Adapter - included)
  • Audio: 1.0W x 2 Stereo Speakers, HD Audio, SRS Sound Solutions, built-in Microphone
  • Webcam: 1.3 Megapixels HD
  • Connection: 2 x USB 3.0, 1 x Micro USB 2.0, 1 x Micro SD Card Slot, 1 x HDMI & 1 x Headphone Out
(이미 옛날 제품이다. )
일단 공개되어 있는 스펙은 다음과 같다.  난 OS 없는 버전을 받아다가 우분투를 깔아서 쓴다. 


일단 뭐 intel의 랩탑용 칩셋은 매우 훌륭하다. 뭐 최근에 나오는 랩탑용 cpu는 사무용+간단한 youtube등 동영상 감상들에는 남아도는 성능이다. 

블루투스는 뭐 데스트탑에서 쓰기 유용한 적이 없는 것 같고, 일단 데스크탑에서는 모바일에서첨 최적화가 안되서 동영상 플레이어들이 소리 싱크를 제대로 못한다. (이 것은 우분투로 사용자 경험을 했기 때문일 수 도 있다. )

lan은 뭐라고 적혀있는데, 저거 공간이 좁아서 핀만 맞추어 놓은 아답터가 아니라 그냥  usb micro-b 2.0 이더넷이다. 그러므로 유선 이더넷은 지원하지 않으며 플러그인으로 사용가능하며 초기 패키지로 지급한다가 맞겠다. 

뭐 핸드폰용 메모리카드 사용하시는 분들은 단자가 딱 맞아서 그 용도로 아주 좋을 수 있다. 그래서 그런지 요즘 최신 gram은 c-type을 저자리에 놓아다. 

뭐 여기까지는 그러려니 하겠다. 


도대체 마이크 단자는 왜 안 주는 건지??? 이해를 할 수 없다. 뭔가 전체적으로 모바일 친화적으로 가는 것을 보고, 난  4pin 커넥터를 사용하는 줄 알았는데 그것도 아니더라. 뭐 안 쓰면 그만이긴 하지만 자체 내장 마이크는 랩탑 특성상 화상통화를 하거나 하면 별에별 소음이 다 들어가는데 무슨 의도인 것일까???

그리고 남은 단자는 두개의 usb 3.0단자 그리고 hdmi단자가 있다. 그리고 micro-sd 메모리 카드 단자가 있다. 

두개의 usb 3.0단자는 cpu가 4개를 지원해주므로 테스트는 해봐야하겠지만,
(설마, 이걸 대역폭 나눠쓰는 일은 없겠지...)
대역폭이 어마어마한 캡쳐카드를 두개까지 쓴다거나, usb 3.0을 지원하는 외장 HDD나 SDD에 연결하는데 쓸 수 있을 것 같다. 

그러나 우리의 LG는 테스트하기전에는 알 수 없다. 

이제 micro-sd 메모리 카드 단자가 남았다. 
처음에는 sd카드보다 micro-sd를 어댑터에 끼워쓰거나 아예 이거만 쓰는 일이 많아서 그런가보다라고 생각을 했는데, 자세히 보니 아니다. 

요 단자, pci도 아니고, usb 3.0도 아니고 정확히 usb 2.0에 연결해 놓은 realtek rts5129라는 제품을 사용한다.  일단 카메라 사용자들은 카메라가 열심히 빨리 찍어놓은 사진을 넣는데 한참 걸릴거다. 간편하라고 랩탑 쓰는건데, usb3.0 uhs-i,ii 지원 제품을 반드시 구매해서 들고다녀야 한다. 

핸드폰으로 파일 옮기는 것도, mtp라는 프로토콜이 너무 허접해서 다행이지, 
아니면 느려터져 죽을 뻔 했다. 

쓰기도 읽기도 20MB/s 잠깐 말고는 잘 안넘어간다.  원가절감을 참 이상한 방법으로 한다. 

음? 터치패드를 비롯한 각종 센서, 여러물건들이 대역폭을 잡아먹어도 여기를 원가 절감포인트로 쓰는 것은 좀 아니지 않나???

... 이거 핸드폰에 있는 것도 이 칩셋은 아니겠지......

뭐 핸드폰은 sim card까지 같이 지원해주는 것을 쓰기는 하는데,... 이칩셋도 원래 그기능이 가능하던데... 


삼성은 메모리를 만드는 회사이다보니, 비싼 메모리를 팔아야 되서 그러나 여기서 원가 절감은 안하던데, 아이고 LG야 .... 


댓글