반응형

OS: Ubuntu 14.04.2 LTS (amd64)

Chrome: 46.0.2490.71 (64-bit)

Graphics: AMD Radeon HD 7800 Series


우분투에서 크롬을 쓰다가 가끔 화면이 깜빡이면서 얼마 전에 보던 탭(페이지) 화면이 표시되는 현상이 나타났다.

같은 증상이 데비안 계열에서도 있는 듯해 보였고, 우분투에서 많이 나타났으며, 특히 AMD 그래픽카드를 쓰고 드라이버 설치를 통해서 하드웨어 가속을 사용하는 사용자들에게서 문제가 많이 나타났다. Nvidia 계열 그래픽 카드에서는 그런 문제가 많이 나타나는 것 같지는 않아 보였다. (물론 Nvidia 계열에서도 같은 증상을 호소하는 글이 2개 정도 보이기는 했다)


간단한 해결방법은 크롬의 하드웨어 가속 기능을 끄는 것인데, 하드웨어 가속을 안하는 만큼 손해보는 요소도 있으니까 근본적인 해결책은 아니다. 하지만 그럼에도 불구하고 웹 브라우징을 제대로 하지 못할 정도로 심각한 깜빡임 현상을 감수하는 것보다는 하드웨어 가속을 끄는 것이 정신 건강에 이롭다는 생각이 든다.



<크롬 하드웨어 가속 끄는 방법>


1. 주소창에 chrome://settings 입력해서, Settings (설정)에 들어간다.

2. 맨 아래쪽에 Show advanced settings... 링크를 클릭.

3. 또 아래쪽으로 내려가서 "Use hardware acceleration when available"에 표시된 체크를 해제한다.

4. 크롬을 restart 해야 된다는 안내가 나오는데, restart 글자를 누르면 크롬이 재시작된다.


반응형
블로그 이미지

Bryan_

,
반응형

OS: Ubuntu 14.04.2 LTS (amd64)

Type: Eclipse C/C++ Developer, version: Mars.1



이클립스 CDT에 플러그인 설치를 하다가 오류가 나고 매우 느려져서 강제종료를 했더니, 그 후로 이클립스가 시작이 되지 않았다. 더 자세하게 살펴보면, 이클립스가 시작은 되는데 workspace 를 로드하는 과정에서 에러를 겪으면서 종료된다. 에러 메세지는 다음과 같다:

An error has occurred. See the log file

이클립스의 workspace 디렉토리 위치/.metadata/.log.


즉, 새로운 workspace를 만들어서 실행할 수는 있지만 그러면 기존 프로젝트들을 다시 로드하는 것이 귀찮으므로 가급적이면 기존 workspace를 살리는 방법을 찾아야 한다.


여러가지 해결 방법이 있는데, 가장 먼저 이클립스의 workspace 디렉토리 위치/.metadata/.plugins/org.eclipse.core.resources 디렉토리에 있는 .snap 파일을 모두 지우는 것(예: 50.snap)이다.

아쉽게도 나는 이렇게 해도 같은 에러가 나오면서 해결되지 않았다.


두번째 방법으로는 이클립스를 실행할 때, " -clean" 옵션을 주는 것.

이클립스 실행파일 위치에 가서 콘솔에서 $ ./eclipse -clean 을 실행한다.

아쉽게도, 이 방법 또한 효과가 없었다.


대체로 위의 2가지 방법만 언급하는데, StackOverflow에는 다행히 다른 방법이 또 있었다. 

(사실상 기존 workspace를 리셋하는 것과 다를 바가 없지만...)

참조 URL: http://stackoverflow.com/questions/15333825/an-error-has-occured-please-see-log-file-eclipse-juno


아예 이클립스의 workspace 디렉토리 위치/.metadata 디렉토리를 통째로 다른 곳에 백업해 둔다.

그리고 이클립스를 실행하고 해당 workspace를 선택하면, 

이클립스는 마치 맨 처음 실행되는 것처럼 아무 프로젝트도 없이(ㅠㅠ) 켜진다.

그다음 File > Import... > General > Existing Projects into Workspace 선택,

Select root directory: 항목에 기존의 workspace 디렉토리 선택,

그리고 Finish 하면 workspace에 있던 모든 기존 프로젝트들이 나타난다.



반응형
블로그 이미지

Bryan_

,
반응형

Tested OS: Raspbian, Ubuntu 14.04.2 LTS (amd64), Ubuntu 11.04 (i386)

Wireless LAN card: TP-LINK TL-WN722N (chipset: Atheros ath9k_htc)


실험을 위한 애드혹 네트워크 구성을 하는 과정에서, /etc/network/interfaces 파일을 가이드라인에 맞게 고쳤는데도 애드혹 네트워크가 생성되지 않아서 원인을 찾던 중 하나를 발견했다. 사실 이것이 데비안 계열 리눅스에서 발생하는 문제인지, 아니면 ath9k_htc 칩셋에서 지원하지 못하는 것인지는 모르겠다.


일단 가이드라인대로 /etc/network/interfaces 파일을 설정하는 방법은 아래와 같다:


# 무선랜 인터페이스 이름이 "wlan0"일 경우로 가정

auto wlan0

iface wlan0 inet static

address 192.168.3.100  # 연결할 기기마다 1~254 사이의 아무 숫자나 겹치지 않게 정한다.

netmask 255.255.255.0

wireless-channel 11 주변 다른 무선랜 채널 상황을 고려해서 1,6,11 중에서 정한다. 

wireless-essid testAdhocNet # 가급적이면 하이픈(-) 없이, 영문과 숫자조합으로만...

wireless-mode ad-hoc


위와 같이 파일을 저장하고 나서,

만약 Ubuntu desktop을 쓰면서 network-manager 서비스가 실행중이라면 종료한다.

$ sudo service network-manager stop


그리고 네트워크 재시작을 한다.

$ sudo /etc/init.d/networking restart


이후 iwconfig 명령으로 무선랜 인터페이스에 대해서 아래와 같이 "Ad-Hoc" 모드로 나타나는지 확인한다.

$ iwconfig

lo        no wireless extensions.


eth0      no wireless extensions.


wlan0     IEEE 802.11bgn  ESSID:"testAdhocNet"  

          Mode:Ad-Hoc  Frequency:2.462 GHz  Cell: 8A:E1:09:41:AD:43   

          Tx-Power=16 dBm   

          Retry  long limit:7   RTS thr:off   Fragment thr:off

          Power Management:off


내 경우는 ESSID에 하이픈(-)을 2개 이상 넣고서 맨 처음 애드혹 네트워크 설정을 했더니 계속 Mode: Managed로 표시되는 문제가 있었다. 아직 정확한 원인은 모르겠다.

더 황당한 것은, 하이픈을 다 뺀 이름으로 애드혹 네트워크 생성을 성공하고 나서, 다시 하이픈이 2개 이상 들어간 ESSID로 바꿨더니, 그 후로는 하이픈이 들어간 이름으로도 애드혹 네트워크가 문제없이 생성되는 것이었다.


일단은 가장 안정적인 설정(하이픈이 없이 순수 영문과 숫자 조합으로만 ESSID 설정)으로 하는 것이 좋을 것 같다.



반응형
블로그 이미지

Bryan_

,
반응형

OS: Windows 8.1 (64-bit)

Java: 1.8.0_60

Eclipse: Mars (64-bit)

프로젝트가 사용하는 JRE System Library: JavaSE-1.7



이클립스에서 프로젝트를 Export 명령으로 Runnable JAR 파일을 만들고 다른 환경(예를 들면 리눅스가 돌아가는 보드PC 같은 곳)에서 실행하려고 했는데 다음과 같은 에러가 발생했다:




Exception in thread "main" java.lang.UnsupportedClassVersionError: [실행하려는 클래스 이름] : Unsupported major.minor version 52.0

        at java.lang.ClassLoader.defineClass1(Native Method)

        at java.lang.ClassLoader.defineClass(ClassLoader.java:788)

        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:14                                                                    2)

        at java.net.URLClassLoader.defineClass(URLClassLoader.java:447)

        at java.net.URLClassLoader.access$100(URLClassLoader.java:71)

        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)

        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)

        at java.security.AccessController.doPrivileged(Native Method)

        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)

        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)

        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)

        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)



일단 .jar 파일을 돌리려는 대상 보드PC (Odroid)에 설치된 자바는 OpenJDK고 버전이 1.7.0_25다.
이클립스 프로젝트에서 JRE 라이브러리는 비록 1.7로 되어 있었지만, 이클립스가 실제로 사용하는 컴파일러는 1.8로 되어 있었기에 빌드한 버전이 맞지 않아서 생기는 문제였다.

해결하려면 Window > Preferences 에 가서,
Java > Compiler를 선택하고, 오른쪽에 보이는 화면에서 Compiler compliance level을 1.7로 설정한다.


그러면 현재 프로젝트들을 모두 새로 빌드할 것이다.
그 뒤에 다시 Runnable JAR 파일을 만들어서 실행하면 될 것이다.



반응형
블로그 이미지

Bryan_

,
반응형

Tested device: Raspberry Pi 2 (model B)

OpenWrt version: 15.05 (Chaos Calmer)


라즈베리파이에서 이더넷 포트를 외부 인터넷 접속용 wan 인터페이스로 변경해서 연동했더니, LuCI 웹 인터페이스에 접근하지 못할 뿐만 아니라 SSH 접속도 막히게 되었다. 즉, 외부 인터넷에서 SSH(포트 22)와 LuCI(포트 80) 접속이 기본적으로 막혀 있다. 이것은 비단 라즈베리파이 뿐만 아니라 모든 OpenWRT 라우터에 해당된다.

애초에 이더넷 포트를 wan으로 연결하기 전에 LuCI의 System > Administration 페이지에서 "Allow  remote hosts to connect to local SSH forwarded ports" 옵션에 체크를 했지만 기대하던 대로 작동하지 않았다.


이 경우는 /etc/config/firewall 파일을 수정해서 쉽게 해결할 수 있다.


/etc/config/firewall 파일에 아래 내용을 추가해 준다.

# for SSH access

config rule

option src 'wan'

option proto tcp

option dest_port '22'

option target 'ACCEPT'


# for LuCI webpage access

config rule

option src 'wan'

option proto tcp

option dest_port '80'

option target 'ACCEPT'


만약 SSH와 웹 인터페이스의 포트 번호가 다르게 설정되어 있다면 22, 80 대신 해당하는 포트번호를 입력한다.


파일을 저장하고 나서 아래와 같이 firewall을 재시작하고 나면 외부 접속이 가능해진다.

root@OpenWrt:~# /etc/init.d/firewall restart




반응형
블로그 이미지

Bryan_

,