Ubuntu와 Windows 멀티부팅 시 시스템 시간 변경 문제 해결

Ubuntu와 Windows를 듀얼부팅으로 사용하는 경우, Ubuntu를 사용한 다음 윈도우로 부팅하면 현재 시각이 다른 값으로 설정되어 있다. 자동으로 조정 기능을 껐다가 키면 다시 정상 시각으로 설정되지만 매번 그러기엔 아주 귀찮다.

Ubuntu에서 시각을 UTC를 기준으로 삼아 사용해서 생기는 문제인데, 이를 사용하지 않고 로컬타임으로 사용하게끔 하면 문제는 해결된다.

16.04 이후 버전부터는 터미널에서 다음과 같이 입력한다.

$ sudo timedatectl set-local-rtc 1

이렇게 되면, 이제 서로 다른 운영체제로 부팅하더라도 시스템의 시간은 변경되지 않는다.

Advertisements

Fix the freezing when lid close for XPS9570 on Ubuntu 18.04

해결 방법을 찾아보면 9570 뿐만이 아니라, 외장 GPU를 사용하는 대부분의 델 랩탑에 해당되는 내용인듯. Ubuntu를 사용하다가 노트북을 닫거나, Sleep 모드로 전환 후 다시 노트북을 깨우려고 하면 멈춰버리는 현상이 발생함. 어쩔수 없이 강제 재부팅을 해야 되서 엄청 불편한데, 구글링 후 해결 방법을 찾아봄.

$ sudo vi /etc/default/grub

다음과 같이 수정함.

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX="mem_sleep_default=deep"

저장하고, 다음의 명령어로 업데이트 완료 후 재부팅.

$ sudo update-grub

잠재우기 모드를 아예 강제로 deep 모드로 해버리는 것 같은데, 이렇게 되면 suspend 모드로 전환하거나 다시 복귀할때 시간이 좀 걸림. 아주 완전한 해결책은 아니지만, 그래도 멈추진 않으니 이대로 사용하는 수 밖에. .^^

Disable TouchPad while Typing on Ubuntu 16.04

Ubuntu 18.04에선 기본으로 제공하는 기능인데, 16.04에선 해당 옵션 선택 기능이 없음. 터미널 사용 중이거나 프로그래밍 중 터치패드가 작동되서 여기저기 튀는 현상때문에 골치가 아픈데… 다음과 같이 설정하면 기능 적용됨.

$ sudo vi /usr/share/X11/xorg.conf.d/51-synaptics-quirks.conf

파일 내에 다음과 같은 내용을 추가.

Section "InputClass"
Identifier "SynPS/2 Synaptics TouchPad"
      MatchProduct "SynPS/2 Synaptics TouchPad"
      MatchIsTouchpad "on"
      MatchOS "Linux"
      MatchDevicePath "/dev/input/event*"
      Option "Ignore" "on"
EndSection

재부팅하면 해결.

Solve “permission denied” when using libusb on Ubuntu

libusb를 이용한 디바이스를 Ubuntu에 연결하고, 관련 프로그램을 실행시 “Permission denied” 혹은 알수없는 오류를 발생하는 경우가 있다. 보통 sudo 명령을 이용하여 실행하면 잘 해결되는 경우인데, 매번 sudo를 붙여서 실행하는 것이 번거롭다. 이때는 udev 룰을 추가하면 해결된다. (제조사에서 제공하는 경우도 있다.)

사용자가 udev 룰을 추가하려면 해당 디바이스의 Vender ID, Product ID를 알아내야 한다. 이는 디바이스를 연결하고, 터미널에서 다음과 같이 입력한 다음 확인이 가능하다.

$ dmesg

이때 나오는 메시지 중 idVendor, idProduct에 나오는 값을 기억한다.

/etc/udev/rules.d 에 다음과 같이 파일을 작성한다.

$ cd /etc/udev/rules.d
$ vi 99-<user_device>.rules

SUBSYSTEM=="usb", ATTRS{idVendor}=="<Vendor ID>", ATTRS{idProduct}=="<Product ID>", MODE="0666"

저장한 다음, 디바이스를 뽑았다가 다시 꼽으면 해결된다.

Install specific version when using apt

When you need specific version of package, you can install the version you want using apt.

To show the list versions of package,

 $ sudo apt-cache policy <package-name>

To install specific version,

$ sudo apt install <package-name>=<version-you-want>;

Example:

$ sudo apt-cache policy librealsense2
librealsense2:
  Installed: (none)
  Candidate: 2.16.4-0~realsense0.127
  Version table:
     2.16.4-0~realsense0.127 500
        500 http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo xenial/main amd64 Packages
     2.16.3-0~realsense0.115 500
        500 http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo xenial/main amd64 Packages
     2.16.3-0~realsense0.103 500
        500 http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo xenial/main amd64 Packages
     2.16.3-0~realsense0.97 500
        500 http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo xenial/main amd64 Packages
...

$ sudo apt install librealsense2=2.11.1-0~realsense0.70

Ignore installed package when using pip

If you have an error when you install python package using pip like this,

Cannot uninstall '~~~'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

You can solve this problem by adding this option:

--ignore-installed

For example,

$ sudo pip install <package-name-to-install> --ignore-installed <package-name-get-error>