반응형

OS: Ubuntu 14.04 (amd64)

ns-3 version: 3.26



ns-3를 설치하는 과정에서 Visualizer (PyViz)도 활성화시키려면 python 관련 패키지들 몇개를 미리 설치해야 하는데, ns-3 공식 안내 페이지 [1]에 나온 대로 설치를 시도하면 python-gnomedesktop 패키지를 설치할 수 없다고 나온다.


$ sudo apt-get install python-dev python-pygraphviz python-kiwi python-pygoocanvas python-gnome2 python-gnomedesktop python-rsvg

Reading package lists... Done

Building dependency tree       

Reading state information... Done

E: Unable to locate package python-gnomedesktop



python-gnomedesktop 대신 python-gnome2-desktop-dev 를 설치하면 된다.


$ sudo apt-get install python-dev python-pygraphviz python-kiwi python-pygoocanvas python-gnome2 python-gnome2-desktop-dev python-rsvg



<참고자료>

[1] PyViz, https://www.nsnam.org/wiki/PyViz 

[2] http://stackoverflow.com/questions/36252495/unable-to-locate-package-python-gnomedesktop-installing-pyviz-in-ns3




반응형
블로그 이미지

Bryan_

,
반응형

OS: Ubuntu 16.04 (amd64)



새로 설치한 지 얼마 안된 우분투 16.04 머신에서 원래 잘 되던 패키지 설치(apt-get install)가 갑자기 진행이 안되면서 아래와 같이 install-info 를 processing하는 동안 에러가 발생했다는 메세지를 내뱉었다.


아래 출력은 openmpi 관련된 패키지를 설치하려고 시도하면서 발생한 에러를 그대로 가져온 것이다.



skylit@ns3sim:~$ sudo apt-get install libopenmpi1.10 libopenmpi-dev openmpi-common openmpi-bin 

Reading package lists... Done

Building dependency tree       

Reading state information... Done

The following additional packages will be installed:

  autotools-dev libhwloc-dev libhwloc-plugins libhwloc5 libibverbs-dev libibverbs1 libltdl-dev libnuma-dev libtool ocl-icd-libopencl1

Suggested packages:

  libhwloc-contrib-plugins libtool-doc opennmpi-doc autoconf automaken gfortran | fortran95-compiler gcj-jdk opencl-icd gfortran openmpi-checkpoint

The following NEW packages will be installed:

  autotools-dev libhwloc-dev libhwloc-plugins libhwloc5 libibverbs-dev libibverbs1 libltdl-dev libnuma-dev libopenmpi-dev libopenmpi1.10 libtool ocl-icd-libopencl1 openmpi-bin

  openmpi-common

0 upgraded, 14 newly installed, 0 to remove and 267 not upgraded.

1 not fully installed or removed.

Need to get 3,618 kB of archives.

After this operation, 15.5 MB of additional disk space will be used.

Do you want to continue? [Y/n] 

Get:1 http://kr.archive.ubuntu.com/ubuntu xenial/main amd64 autotools-dev all 20150820.1 [39.8 kB]

Get:2 http://kr.archive.ubuntu.com/ubuntu xenial/main amd64 libltdl-dev amd64 2.4.6-0.1 [162 kB]

Get:3 http://kr.archive.ubuntu.com/ubuntu xenial/main amd64 libtool all 2.4.6-0.1 [193 kB]

Get:4 http://kr.archive.ubuntu.com/ubuntu xenial/universe amd64 libhwloc5 amd64 1.11.2-3 [99.5 kB]

Get:5 http://kr.archive.ubuntu.com/ubuntu xenial/main amd64 libibverbs1 amd64 1.1.8-1.1ubuntu2 [25.0 kB]

Get:6 http://kr.archive.ubuntu.com/ubuntu xenial/universe amd64 libopenmpi1.10 amd64 1.10.2-8ubuntu1 [2,025 kB]

Get:7 http://kr.archive.ubuntu.com/ubuntu xenial/universe amd64 openmpi-common all 1.10.2-8ubuntu1 [129 kB]

Get:8 http://kr.archive.ubuntu.com/ubuntu xenial/universe amd64 openmpi-bin amd64 1.10.2-8ubuntu1 [100 kB]

Get:9 http://kr.archive.ubuntu.com/ubuntu xenial/main amd64 libnuma-dev amd64 2.0.11-1ubuntu1 [31.7 kB]

Get:10 http://kr.archive.ubuntu.com/ubuntu xenial/universe amd64 libhwloc-dev amd64 1.11.2-3 [155 kB]

Get:11 http://kr.archive.ubuntu.com/ubuntu xenial/main amd64 ocl-icd-libopencl1 amd64 2.2.8-1 [29.7 kB]

Get:12 http://kr.archive.ubuntu.com/ubuntu xenial/universe amd64 libhwloc-plugins amd64 1.11.2-3 [13.2 kB]

Get:13 http://kr.archive.ubuntu.com/ubuntu xenial/main amd64 libibverbs-dev amd64 1.1.8-1.1ubuntu2 [77.6 kB]

Get:14 http://kr.archive.ubuntu.com/ubuntu xenial/universe amd64 libopenmpi-dev amd64 1.10.2-8ubuntu1 [537 kB]

Fetched 3,618 kB in 1s (2,992 kB/s)      

Setting up install-info (6.1.0.dfsg.1-5) ...

/usr/sbin/update-info-dir: 2: /etc/environment: LC: not found

dpkg: error processing package install-info (--configure):

 subprocess installed post-installation script returned error exit status 127

Errors were encountered while processing:

 install-info

E: Sub-process /usr/bin/dpkg returned an error code (1)

skylit@ns3sim:~$



SuperUser에 찾아보니 /etc/environment 파일을 아래와 같이 고치면 해결된다고 한다.


/etc/environment 파일:

LC_ALL="en_US.UTF-8"


실제로 내가 /etc/environment 파일을 열어 보니, LC와 ALL 사이, 그리고 en과 US 사이가 밑줄이 아니라 공백으로 되어 있었다. (LC ALL="en US.UTF-8"


그런데 나는 해당 파일을 전혀 손댄 적이 없었고, 처음에는 이것저것 패키지 설치가 잘 되었던 기억이 나는데, 도대체 어떻게 고쳐진 것일까? ;;





<참고자료>

[1] "Ubuntu 10.04 - install-info error during update", 
http://superuser.com/questions/129049/ubuntu-10-04-install-info-error-during-update



반응형
블로그 이미지

Bryan_

,
반응형

2014년부터 지금까지 Ubuntu 14.04.1 LTS (64bit)를 계속 써 왔고, 다만 아직 16.04로 업그레이드를 하지는 않았다. 16.04로 업그레이드 하라는 안내 메세지가 뜰 때마다 나중에 하겠다는 버튼만 눌렀는데, 그런데 어제 "New important security and hardware support update." 라는 대화창이 뜨면서 업데이트를 하라는 메세지가 화면에 나타났다.


이전에 주기적으로 보던 Software Updater의 앱 업데이트 알림 창도 아니고, 새 버전(16.04)으로 바꾸라는 메세지도 아닌 처음 보는 안내창인데 메세지도 뭔가 심각해 보인다. (-_-) 중요한 보안 업데이트겠거니 생각하고 무심코 업데이트 버튼을 눌렀는데...


그런데 거의 한 시간이나 업데이트를 진행하는 것이었다.

뭘 저렇게 많이 설치하는 걸까?


나중에 다 끝나고 나서 보니...

뭘 많이 설치해서 그랬던 것이 아니고, 뭘 많이 지우느라 그랬던 것이었다! ㅜㅜ


재부팅을 했더니 이상하게 몇몇 앱 아이콘이 사라져 있고(Dropbox, VLC, Terminator 등),  듀얼 모니터 화면도 초기화되어서 화면 순서가 뒤바뀌었다. 그런데 디스플레이 설정을 바꾸려고 보니까 System Settings도 찾을 수 없댄다. (헐?)  게다가 Software Updater도 없어져 있었다. 이건 무슨 시츄에이션?


아니 이게 무슨 재앙인가? ㅜㅜ 인터넷에서 검색해 보니, 위의 업데이트 메세지는 커널을 최신 버전으로 업데이트하는 것과 관련된 것이라고 한다. 실제로 확인해 보니 원래 3.16.X 대의 버전으로 되어 있던 커널이 4.4.0.36-generic을 바뀌어 있었다.

물론 커널을 새 버전으로 바꿔서 잠재적인 보안 문제를 해결하는 것 자체는 좋으나, 이로 인해 기존에 쓰고 있던 앱들이 영문도 모르게 사라지고, 심지어 우분투인데 자기 데스크탑 환경까지 날려먹는 상황을 뭘로 설명해야 할까?


일단 재부팅 후에 unity-control-center, ibus, ubuntu-desktop, 그외 내가 쓰던 앱들(Dropbox, terminator, vlc 등)을 재설치했다. 아마 이외에도 상당히 많은 앱들이 영문도 모르게 삭제되었을 가능성이 높은데, 무엇이 삭제되었는지 아직 다 파악이 되지 않는다. 앞으로 쓰다 보면 뭔가 없어서 또 재설치를 하면 되겠지만, 정말 어이가 없다.

처음 팝업 메세지를 봤을 때 바로 업데이트 버튼을 누르지 말고 검색을 해 봤어야 했다. 나와 입장이 같으면서 업데이트를 진행하지는 않은 채 우분투 측에 불만을 토로하는 글이 있었다. [1] 이걸 먼저 봤어야 하는데...


이건 어떻게 보면 사실상 반 강제적으로 16.04를 쓰라고 유도하는 것이나 마찬가지이다. 그뿐만 아니라, 업그레이드를 하면서 기존의 시스템 설정을 최대한 유지해야 하는데 업그레이드가 아닌 커널 업데이트만으로 운영체제 환경이 통째로 망가지는 상황이니 오히려 16.04로 업그레이드를 할 마음이 싹 사라진다. 업그레이드하고 나서 시스템 어딘가가 망가지고 원래 쓰던 중요한 앱들이 작동하지 못해서 발생하는 손실에 대해 책임지기라도 할까?


PC의 주 운영체제로 윈도우7, 윈도우10을 쓰다가 우분투로 바꾸고 윈도우는 서버에서 VM으로 만들어서 쓰고 있는데, 여전히 우분투는 윈도우에 비해 불안정한 요소가 너무 많은 것 같다. 특히 시스템 업데이트를 할 때 너무 문제가 많다. 윈도우는 7에서 10으로 업그레이드하고 나서 망가진 프로그램이 단 하나도 없었는데, 우분투는 예전에 10.04를 12.04로 바꿀 때도 대다수의 패키지가 망가졌고, 이번에도 단지 커널만 (그것도 우분투가 강요해서) 바꿨는데 데스크탑 환경이 엉망이 되었다.


오픈소스에 무료로 쓰는 입장에서 우분투가 나날이 발전해 가는 모습은 좋지만, 기왕 개선하고 새 버전으로 업데이트를 해주고 싶으면 최대한 기존 시스템 설정이 망가지지 않도록 더 많이 신경을 써 줬으면 좋겠다.


이번 사건 때문에 어딘가 망가져 있을 현재 시스템을 계속 쓰는 것도 찝찝해서, 조만간 14.04 자체를 클린 설치하거나, 좋든 싫든 16.04로 클린 설치를 해야 할 것 같다. 

(우분투 나빠요!! ㅠㅠ 사실 이렇게 말하고도 윈도우로 돌아가지는 않고 우분투나 다른 리눅스 계열을 쓸 궁리를 하고 있으니, 이쯤 되면 그냥 애증의 관계인 듯 하다.)




<참고자료>

[1] Ubuntu Forums, "I thought 14.04 was supported for 5 years so why am I getting HWE stack message?" https://ubuntuforums.org/showthread.php?t=2334371



반응형
블로그 이미지

Bryan_

,
반응형

OS: Ubuntu 14.04 Desktop (amd64)

Device: NETIS WF2190 (Realtek RTL8812au) (802.11ac)


실험에 5GHz 대역으로 작동하는 IEEE 802.11ac를 쓰기 위해서 NETIS NF2190 무선랜카드를 꺼냈다.

대충 이렇게 생겼다.


 



우분투 머신에 USB로 연결했더니 바로 인식되지는 않았다.

lsusb에서는 인식되고 있기 때문에 드라이버만 설치하면 된다.


$ lsusb


...(생략)...

Bus 001 Device 005: ID 0bda:8812 Realtek Semiconductor Corp. RTL8812AU 802.11a/b/g/n/ac WLAN Adapter

...(생략)


내 PC가 그동안 Atheros 계열 무선랜카드를 컴파일하는 데만 집중하느라 Realtek 계열 드라이버가 모두 날아갔을 수도 있고, 원래 인식이 안되는 것일 수도 있다. 아무튼 드라이버를 설치하기 위해서 동봉된 CD에서 linux 디렉토리에 있는 설치 파일이 들어 있는 디렉토리를 복사해 와서 설치를 시도했다.

최상위 위치에 있는 install.sh 실행했더니 중간에 빌드 에러 발생.


인터넷을 뒤져 보다가, 그냥 git에 있는 최신 코드를 가져와서 빌드하기로 했다. [1]


$ git clone https://github.com/gnab/rtl8812au.git

$ cd rtl8812au
$ make
$ sudo make install
$ sudo modprobe 8812au


make는 문제없이 됐다.

sudo make install 명령도 문제없이 되는 듯 했다.

하지만 sudo modprobe 8812au가 되지 않았다.

/lib/modules/($uname -r)/kernel/drivers/net/wireless/ 위치에 8812au.ko가 있는데도 실행이 안됐다.


make 과정 중간에 mcount가 없다는 경고 메세지가 있었고 에러가 아니길래 그냥 넘겼는데, 이게 실제 드라이버의 정상 실행을 막는 원인이었다.

확인해 보니 gcc 버전을 4.8로 바꾸면 해결된다고 한다. [2] 그러고 보니 퀄넷 시뮬레이션 때문에 gcc 버전을 낮춰뒀던 것이 생각났다. 

gcc 버전 변경: http://skylit.tistory.com/23



gcc 버전을 바꾸고 다시 make; sudo make install; sudo modprobe 8812au 를 했더니 랜카드가 드디어 인식이 되었다.

iwconfig 명령으로 새로 보이는 무선랜 인터페이스가 있는지 확인할 수 있다.


$ iwconfig


... (생략)

wlan7     unassociated  Nickname:"<WIFI@REALTEK>"

          Mode:Auto  Frequency=2.412 GHz  Access Point: Not-Associated   

          Sensitivity:0/0  

          Retry:off   RTS thr:off   Fragment thr:off

          Power Management:off

          Link Quality:0  Signal level:0  Noise level:0

          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0

          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

...(생략)




<참고자료>

[1] http://ubuntuforums.org/showthread.php?t=2258715

[2] http://askubuntu.com/questions/468758/modprobe-ndiswrapper-error


반응형
블로그 이미지

Bryan_

,
반응형

OS: Ubuntu 14.04 (desktop, server 모두) amd64



우분투(또는 리눅스) 머신에 원격접속할 때 xrdp를 설치하면 RDP 클라이언트(e.g. 윈도우의 원격 데스크탑 연결)를 쓸 수 있어서 좋지만, 세부 설정을 수정하지 않고 그대로 둘 경우 다음과 같은 두 가지 문제가 발생한다.


  1. (우분투만 해당) 검은색 또는 회색 화면만 나온 채 가만히 있거나, 그 상태로 잠시 있다가 연결이 끊어짐.
  2. 매번 세션이 새로 생성돼서 이전의 작업 환경에 접근할 수 없음.


1번의 경우에는 우분투 기본 세션인 Unity에 버그가 있고 아직 해결되지 않아서 그렇다.

답답하지만 xfce4와 같은 다른 세션을 설치해서 써야 한다. [1]



이 글에서 해결할 문제는 2번이다. 사실 이것은 xrdp 기본 설정이 불친절(?)해서 기존 세션을 재활용하기 위한 옵션을 디폴트에서 볼 수 없기 때문이다.


즉, 원격 세션에서 로그아웃을 하지 않으면 매번 rdp로 로그인할 때마다 새로운 세션이 쌓여서 쓸데없이 메모리를 차지하게 된다. 그 뿐만 아니라 각 세션마다 실행시켜 둔 어플리케이션들도 다 그대로 살아있게 되므로 낭비도 이런 낭비가 없다.


물론 xrdp 설정에서 최대 동시 세션 수를 기본값 10으로 제한해 두기는 했다. 따라서 윈도우 rdp 클라이언트로 리눅스 머신에 10번 넘게 접속해서 세션을 만들기만 하면, 기존의 10개 중 가장 오래 된 세션이 고아 프로세스가 되거나, 아예 에러가 나면서 더이상 연결이 안되는 문제가 발생한다. 이런 문제를 방지한답시고 최대 세션 수를 100개(...)로 늘리라는 조언을 인터넷에서 심심찮게 볼 수 있는데, 그다지 좋은 방법이 아닌 것 같다.


물론 기존 세션을 쓰기 위한 옵션이라고 해봤자 결국 "포트 번호"를 입력하는 것 외에는 아무 것도 없다. ㅡㅡ; 즉, 기존 세션이 각자 포트 번호 하나씩 할당되어 있으니까 포트 번호만 외우고 있으면 나중에 다시 접근할 수 있다. 지금 생성돼 있는 세션과 포트 번호를 리스트로 보여주기라도 하면 좋을 텐데... 뭐 오픈소스니까 직접 그 기능을 코드로 만들어 넣지 않는 이상 너무 많은 것을 기대하지는 말자... ㅜㅜ





<XRDP 기존 세션 재활용 방법>


1. /etc/xrdp/xrdp.ini 파일을 열고, [xrdp1]에 해당되는 항목을 아래와 같이 고친다.


...

[xrdp1]

name=sesman-Xvnc

lib=libvnc.so

username=ask

password=ask

ip=127.0.0.1

port=ask5910

...


원래는 port 부분이 -1로 되어 있고, 로그인 창에서 보이지 않게 되어 있다. 하지만 ask를 추가함으로써 항상 접속할 때마다 포트 번호를 입력할 수 있도록 바꿨고, 그 뒤에는 5910이라는 포트 번호가 기본적으로 입력되어 있도록 설정했다.



2. xrdp 서비스를 재시작한다.


$ sudo service xrdp restart



3. 원격 데스크탑 연결(RDP) 클라이언트로 접속하면, 아래 그림과 같은 로그인 화면이 뜰 것이다.

원래 없던 포트 번호가 표시됨을 알 수 있다.



만약 리눅스 머신을 부팅한 직후 맨 처음 접속하는 경우거나, 기존에 생성된 세션의 포트 번호를 모르겠는 경우에는 아래와 같이 포트 번호를 "-1"로 고쳐서 로그인한다.


(새로운 세션을 만들 때에는 포트에 -1을 입력한다)


새로운 세션이 만들어질 때, 로그 메세지를 자세히 보면 세션이 어느 포트 번호에 할당되는지 알 수 있다. 해당 포트 번호를 기억해 둔다.

(새로운 세션이 포트 번호 5910번에 할당되었음을 알 수 있다.)


원하는 작업을 수행하고, 로그아웃하지 않은 채로 RDP 클라이언트를 종료한다.



4. RDP 클라이언트로 다시 리눅스 서버에 접속한다.

이번에는 로그인할 때 port 부분에 이전에 접속했을 때 할당된 포트 번호를 쓰고 로그인한다. 그러면 방금 전에 작업하던 세션을 그대로 볼 수 있다.





필자의 경우는 리눅스에 RDP로 접속할 때에도 윈도우 서버에 원격접속 하듯이 세션을 여러 개 만들지 않기 때문에, 부팅 직후 맨 처음에 세션을 만들 때 -1로 바꾸는 수고만 하고, 그 뒤에는 항상 맨 처음 시도하는 포트번호가 5910이기 때문에 기본값으로 5910번 포트가 입력되어 있도록 설정해 두었다.


현재로써는 앞으로 쓰기에 이게 가장 손이 덜 가는 설정이라고 생각한다. 하지만 xrdp가 조금 더 친절해져서 리스트 형태로 나열된 기존 세션 중 하나를 눈으로 보고 선택해서 로그인할 수 있도록 개선되면 정말 좋겠다.




<참고자료>

[1] http://yujuwon.tistory.com/entry/%EC%9A%B0%EB%B6%84%ED%88%AC-%EC%9B%90%EA%B2%A9-%EC%A0%91%EC%86%8D


반응형
블로그 이미지

Bryan_

,