Showing posts with label linux. Show all posts
Showing posts with label linux. Show all posts

2015-04-02

Sudden unexpected LOGOUT using Pure data on Ubuntu 14.04

Pd 사용중 갑자기 로그아웃이 되며 우분투 로그인창이 뜨는 현상이 발생했다. 작업 중이던 모든 데이터가 유실되는 치명적인 버그다. 이것 때문에 작업도 못 하고 일주일 동안 고생했다. 

 

이 기현상은 우분투 14.04에서만 나타났으며, 범인은 Intel Graphic Driver였다. NVIDIA만 아니면 될 줄 알았는데, 인텔도 믿으면 안 되나보다...

 

인텔이 제공하는 최신 드라이버를 사용하려면 (귀찮게도) 14.10으로 업그레이드 해야만 한다. 인텔이 (괘씸하게도) 14.04 지원을 중단했다.

 

자 포맷을 하고, 인텔 드라이버를 다운받고, 설치하면 문제가 사라졌다.

 

현상1:

http://forum.pdpatchrepo.info/topic/7614/solved-pd-crashes-x-server

 

현상2:

http://askubuntu.com/questions/349010/computer-randomly-loggin-out-on-ubuntu-13-04

 

인텔 최신 드라이버 다운로드:

https://01.org/linuxgraphics/downloads/2015/intelr-graphics-installer-linux-1.0.8

 

 

2014-09-26

ubuntu 14.04 Jack Audio 설정

1. Jack 설치하기

$ sudo apt-get install jackd qjackctl

자동으로 jack2가 설치되고 다음과 같은 물음창이 뜬다. jack과 jack2의 차이점은 32/64 bit인 것으로 보인다.(확인필요) OS가 32비트면 jack(1)이 설치될 것이다.

리얼타임으로 jack에게 권한을 주겠냐는 말이다. 높은 priority가 필요하다. 즉 루트권한이 필요하다. yes를 누른다.

다음은 루트권한을 주기위한 작업이다.

$ sudo cp /etc/security/limits.conf /etc/security/limits.conf.original

$ sudo nano /etc/security/limits.conf

다음을 추가한다.

### realtime permission for jackd

@audio   -  rtprio     99

@audio   -  memlock    unlimited

@audio   -  nice      -10

===========

원문 설명이다.

* The 'memlock' line determines the amount of memory available to users in the group "audio". 

* The 'nice' line, has to do with how long the processor will wait for processes queued from group "audio".

* The 'rtprio' line assigns an extremely high priority to the group "audio".

The nice and rtprio settings will basically give your audio top priority at the cpu which is a necessity for live work.

============

Realtime support를 위해 오디오 그룹을 만들고 자신의 유저아이디를 추가한다.

$ sudo usermod -a -G audio 자신의유저아이디

재부팅한다.

참고:

http://ubuntuforums.org/showthread.php?t=806730

https://help.ubuntu.com/community/UbuntuStudioPreparation

http://ubuntuforums.org/showthread.php?t=843012

2. Jack 서버가 실행된 상태에서 유튜브나 웹에서 오디오 재생이 안됨, Jack 비호환 앱들의 소리 안남 해결.

Pulseaudio -> Alsa -> Jack 로 자동으로 루팅해 주는 간단히 툴이 있다.

$ sudo apt-get install pulseaudio-module-jack

Pulseaudio setting에서 각 어플리케이션 메뉴가 뜨는데, Built-in Audio대신에 Jack sink (PulseAudio Jack Sink)로 선택해 주면 된다.

**추가: 약간의 버그: pass through 설정 한 뒤에 가끔 Jack sink로 선택이 안되고 다른 걸로(Speakers나 Headphone) 선택이 되면서 소리가 안 나는 현상이 있다. 매번 사운드를 열어서 클릭해 줘야 하는데, 마이너한 버그로 보인다. 아직 해결방법은 없어서 매번 클릭하고 있다. 아직 참을만 해서 방법을 안 찾아보고 있다. PulseAudio 대신 Cadence를 쓰면 해결이 된다는 제보가 있었다.

설정이 끝나면 다음과 같이 Jack을 기본 오디오관리자로 설정하고 어떤 프로그램이든 연결해서 쓸 수 있다. MacOS X의 Core Audio보다 강력한 기능이다.

참고:

https://help.ubuntu.com/community/UbuntuStudio/ProAudioIntro/1204#The_Pulse_Audio_to_Jack_Bridge_-_using_both_at_once

https://help.ubuntu.com/community/UbuntuStudioPreparation#PulseAudio_and_Jack_working_together

Cadence라는것도 있다. 아직 안써봄. Макс Нойперт에 의하면 Qjackctl보다 좋다고 한다.

http://kxstudio.sourceforge.net/Documentation:Manual:cadence_introduction

 

2014-09-25

T530, Ubuntu 14.04 Installation

Specs:

Model: Lenovo Thinkpad T530

CPU: i5-3230M CPU 

GPU: Intel HD4000 only

Storage: 250 SSD

Network: Intel Corporation Centrino Advanced-N 6205 [Taylor Peak] (rev 34)

Misc.: No FireWire

 

1. No WiFi after suspend (처음 설치시에 발생했는데, 두번째 재설치 하니까 사라졌다. 그새 업데이트 되었나?)

<<주의!!>> 처음에 우분투를 설치할 때 Wifi를 연결하지 마라!! 이 작업이 끝난 뒤에 연결하는것이 안전하다. 왜냐면, wpa인증문제가 꼬이는것인데, wpa파일이 컴퓨터에 저장되면 아무리 해도 무선랜이 안살아난다. 이 경우 공유기를 껏다 키거나, 안되면 공유기 SSID를 변경해야 한다. 귀찮으니 처음에는 랜선으로 설치하고 이 작업이 끝나고 나중에 무선랜을 연결하자.

잠자기에 들어간 뒤 와이파이가 잡히지 않는 문제가 있다. wpa 인증문제인 것 같다. sh 파일을 만들어 등록하면 해결된다. T530의 무선칩셋은 Centrino Advanced-N 6250이다. 이 문제와 칩셋은 연관이 없다. 

$ sudo touch /etc/pm/sleep.d/wakenet.sh

$ sudo chmod +x /etc/pm/sleep.d/wakenet.sh

$ sudo nano /etc/pm/sleep.d/wakenet.sh

nano가 열리면 복사해서 붙여 넣는다.

###############################

#!/bin/bash

# T530 No Wifi after suspend

case "$1" in
thaw|resume)
nmcli nm sleep false
pkill -f wpa_supplicant
;;
*)
;;
esac
exit $?

###############################

참고: http://ubuntuforums.org/showthread.php?t=2218043

 

2.TPB (ThinkPad Buttons)

씽크패드시리즈의 버튼을 연결해주는 작은 앱이다. sudo권한이 필요하다. 업데이트후 볼륨버튼이 안 먹히면 이것으로 해결. 데몬실행은 sudo tpb -d 그런데 우분투 14.04 에서 일단 기본적으로 다 되서 딱히 필요는 없다. 마이크뮤트버튼에 라이트는 안 들어온다.

http://manpages.ubuntu.com/manpages/precise/man1/tpb.1.html

설치:

$ sudo apt-get install tpb

실행: (메뉴얼은 tpb --help)

$ sudo tpb -d

씽크패드 특별버튼 참고: http://www.thinkwiki.org/wiki/How_to_get_special_keys_to_work

여기에 해결방법이 있는데 귀찮아서 패스: http://askubuntu.com/questions/125367/enabling-mic-mute-button-and-light-on-lenovo-thinkpads

2014-09-24

Xubuntu 14.04 설치

Xubuntu는 Ubuntu 기반이며 XFCE를 데스크탑 환경으로 쓰고 있다. 내가 보기엔 Linux Mint보다 훨씬 더 이쁘다. 속도는 XFCE니까 두말할 나위가 없다. 원래 맥을 오래 써서 맥과 비슷하게 패널을 만들어 보았다. 내가 쓰는 환경이다. 심심하지만 뭐 쓸만하다.

S16BCD~E

1. Mac에서 Bootable USB 만들기

맥에서는 iso를 바로 못 굽고 img로 바꿔줘야 한다. (뒤에 자동으로 dmg가 붙을 것이다. 정상이다)

$ hdiutil convert -format UDRW -o 타겟파일.img 소스파일.iso

빈 USB를 꼽고 포맷한다. (주의: 데이타 다 없어진다)

$ diskutil list 로 확인하고 diskutil unmountDisk /dev/disk숫자 로 언마운트

dd로 이미지를 복사한다. (주의: 실수하면 외장하드 날릴 수 있다.) disk 대신 rdisk(raw disk)를 쓰면 빠르다.

$ sudo dd if=위에서변환한파일.img.dmg of=/dev/rdisk숫자 bs=1m

이미지 복사가 끝나면 인식할 수 없다는 메세지가 뜬다.(정상이다) Eject를 눌러 제거한다. 우분투를 설치할 PC에 꼽고 부팅한다.

2. 설치

설치는 별거 없다. 주의할 점은 Something else를 선택해야 한다. 그래야 파티션 설정이 가능함. 파티션은 다음과 같다.

sda: SSD 250G 

sda1: 32G ext4

sda2: 32G swap area

sda3: 나머지전부 ext4

이름을 만들고 다음으로 넘긴다. 인터넷 연결을 지금 하지 않는다. 시간이 많이 걸리고 나중에 하는게 빠르다. 나머지는 다 기본설정으로 한다.

3. 설치 후 처음 부팅

네트워크를 잡고 Language support 업데이트.

서버가 한국서버로 되어있나 확인 하고, 업데이트와 업그레이드를 실행 (업그레이드 할 때는 아무것도 건드리지 않는 것이 좋다.)

$ sudo apt-get update && sudo apt-get upgrade

업그레이드 끝나면 재부팅 한다.

$ sudo reboot

4. 한글 설정

ibus를 설치한다.

$ sudo apt-get install ibus ibus-hangul

ibus 셋업을 실행한다. start it? 이라고 물어보면 yes한다.

$ ibus-setup

IBus Preference가 뜨면 Input Method 탭에서 Customize active input method를 클릭하고 Show all input methods를 누르고 Korean > Hangul(태극무늬)를 클릭하고 Add를 눌러 추가한다.

Settings>Language Support로 가서 Language 탭에서 Keyboard input method system을 IBus로 바꾼다.

재부팅을 해야 한글 입력이 제대로 될 것이다.

$ sudo reboot

한영 전환은 기본값이 Ctrl+Space 이다. 한/영키 전환은 트릭을 써야해서 일단 패스한다. 트레이창에 태극무늬가 나오면 한글이다. 

한글 상태에서 창에 글을 쓰려고 하면 조그만한 팝업이 뜨는데 안뜨게 하는 방법:

IBus Preferences로 간다.

$ ibus-setup

General 텝에서 Font and Style항목에서 Show property panel을 Hide automatically를 Do now show로 바꾸면 된다.

한자키 설정:

IBusHangul Setup을 실행한다.

$ ibus-hangul

Hanja 탭으로 가서 Add 누르고 한자키를 누른다.

Control_R로 등록될 것이다.

Switcher 화면 안나오게:

아예 안나오게는 안 되는데, 한/영 바뀌는 창이 떠서 불편하다.

Switcher Window 안 나오게하기

dconf-editor를 실행하고 desktop > ibis > general > switcher-delay-time 이 기본 400으로 돼 있는데 이를 1000(1초) 등 더 긴 값으로 설정해준다.

참고:

한글설정

http://kwonnam.pe.kr/wiki/linux/inputmethod

5. 네트워크 경고 없애기 (Network service discovery disabled)

우분투의 버그인것 같다. AVAHI 경고다. 1을 0으로 바꾸면 사라진다.

$ sudo nano /etc/default/avahi-daemon

1을 0으로 바꿔서 자동감지를 끈다. 저장후 재부팅

이것을 AVAHI_DAEMON_DETECT_LOCAL=0 이것으로 바꾸면 된다. AVAHI_DAEMON_DETECT_LOCAL=1

6. 투명 터미널 앱 Tilda, Guake 설치

기본 터미널 앱이 별로 안 이뻐서 즐겨쓰는 Tilda를 설치하겠다.

$ sudo apt-get install tilda guake

시작프로그램에 등록한다.

Settings > Session and Startup > Application Autostart > Add

시작시 약간 딜레이를 주지 않으면 투명 transparency가 제대로 동작 안한다. 딜레이를 약간 주자. 3초로 했다. 컴퓨터 성능에 따라 3~10 조절한다.

bash -c "sleep 3 && tilda &"

Guake도 같은식으로 등록 

시작시 자동으로 실행되며 창 끄고 닫기는 F1키다. 사이즈는 취향대로 하고 투명도는 17정도가 적당하다.

7. Samba 설치

파일 공유를 위해 삼바를 설치한다.

$ sudo apt-get install samba samba-common system-config-samba python-glade2 gksu

삼바 설정창은 우분투와는 다르게 Settings 하위메뉴에 들어가 있다.

8. gnome-disk-utility 설치

자동마운트를 지원하는 그놈디스크유틸리티를 설치하자. fstab 을 설정하기 귀찮을때 유용하다.

sudo apt-get install gnome-disk-utility

자동마운트 옵션은 다음과 같다.

Mount at startup 체크

Show in user interface 언!체크

9. 시계표시설정

%y-%m-%d %a %R 로 한다. 포맷은 "14-12-31 토 12:30" 이런식이다.

10. XFCE 관련 악세서리 설치

$ sudo apt-get install xfce4-goodies

11. MOKA 아이콘팩 설치. 꽤 예쁜 아이콘셋이다.

$ sudo add-apt-repository ppa:moka/stable

$ sudo apt-get update

$ sudo apt-get install moka-icon-theme

다 좋은데 아쉽게도 볼륨아이콘과 네트워크 아이콘은 업데이트가 안된다. Indicator-plugin 아이콘은 따로 관리되나보다.

12. 코덱설치, 제한된 멀티미디어 코덱을 설치하자.

$ sudo apt-get install xubuntu-restricted-extras libavcodec-extra

13. 시스템 인디케이터 설치. 우분투에서 쓰던 꽤 괜찮은 모니터다.

$ sudo apt-get install indicator-multiload gnome-system-monitor

14. 영역선택 캡쳐 단축키 등록. 부분을 지정해서 캡쳐할수 있다 편하다.

Settings > Keyboard > Application shortcut

xfce4-screenshooter -r 으로 등록한다. -f fullscreen, -w windows, -r region

15. 영어사전 프로그램 설치

사전프로그램 goldendict 리눅스에서는 꽤 쓸만하다. 다음사전을 쓸수 있다.

$ sudo apt-get install goldendict

다음 미니 영한사전을 추가한다

http://engdic.daum.net/dicen/small_search.do?endic_kind=all&m=all&nil_profile=vsearch&nil_src=engdic&q=%GDWORD%

시스템전역에서 Ctrl+C+C로 사전을 불러올수 있다. 아주 편하다. 나는 이 단축키를 Ctl+C+D로 바꾸었다.

참고: http://nundol.egloos.com/viewer/10838933

16. Dropbox patch

100000개 이상의 파일을 모니터할 수 없다는 이유로 에러를 낸다. 패치를 하자.

$ sudo nano /etc/sysctl.conf

파일 맨 끝에 다음을 추가한다.

fs.inotify.max_user_watches=100000

참고: http://askubuntu.com/questions/148171/dropbox-error-echo-100000-sudo-tee-proc-sys-fs-inotify-max-user-watches

17. 어플리케이션숏컷 버그

Settings > Window Manager > Keyboard에서 숏컷을 지정할 수 있는데, 내 경우에 Move Workspace to X번 메뉴가 먹통이다. 이것을 바꾸어서 조정하면 잠깐 되는데 재부팅 하면 다시 먹통이 된다. 알려진 버그인것 같다. 빨리 고쳐지길.

참고: xfce4의 버그이다. 여기에 개발자의 멘트와 임시방편이 있음.

https://bugs.launchpad.net/ubuntu/+source/xfce4-settings/+bug/1292290

18.커널패닉 발생

리눅스 커널은 Linux 3.13.0-36-generic #63-Ubuntu SMP x86_64 GNU/Linux

Wifi카드와  출돌해서 생기는게 아닐까 추측하고 있다. Intel Centrino Advanced-N 6205(Taylor Peak)

 

이것은 우분투 12.04 32비트 Fallback mode에서 발생한 커널패닉

kernel panic not syncing vfs unable to mount root fs on unknown-block(0,0)

#### 커널패닉 원인!!

Kernel 3.13.0-36-generic #63-Ubuntu 설치하면 커널패닉이 일어난다. dist-upgrade하면 이것이 업데이트되는데 t530에서 커널패닉발생. 커널업그레이드를 막을 방법을 찾아야 한다.

업데이트하기전:

Linux umi 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

업데이트후:

kernel update 이것이 문제의 원인

우분투 14.04 로 가서 커널업데이트만 하지 않으면 문제는 없음.

2014-01-11

GPT Partition 지우기

WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.

 

이런 에러가 있다. 에러는 아니고 그냥 괜찮은 경고다. 하지만 이걸 없애고 싶다.

 

1. 없앨 하드를 확인한다.

sudo fdisk -l

 

2. parted 로 지운다. (X는 번호다)

sudo parted /dev/sdX

 

다음을 실행한다.

mklabel msdos

 

물어본다. 지울꺼냐고?

Warning: The existing disk label on /dev/sda will be destroyed and all data on this disk
will be lost. Do you want to continue?
Yes/No? yes

 

또 물어본다.

Warning: /dev/sda contains GPT signatures, indicating that it has a GPT table. However, it
does not have a valid fake msdos partition table, as it should. Perhaps it was corrupted
-- possibly by a program that doesn't understand GPT partition tables. Or perhaps you
deleted the GPT table, and are now using an msdos partition table. Is this a GPT partition
table?
Yes/No? yes

 

나간다.

quit

 

끝

 

참고:

http://ubuntuforums.org/showthread.php?t=1973295

2014-01-10

리눅스에서 라즈베리파이 SD CARD 백업하고 복원하기

1. 리눅스에 카드를 넣는다.

 

2. 어떤 카드인지 확인

sudo dmesg | tail

 

나는 sdb1으로 확인이 되었다. 하부 파티션이므로 sbd1 이더라도 sbd로 사용한다. 숫자1은 뺀다.

 

3. 이미지를 복사한다.

 

a> 첫번 째 방법, 압축없이, 편의상 홈폴더(~/)에 한다.

sudo su

dd bs=4M if=/dev/디스크(번호없이) | pv | dd of=~/파일.img

 

a> 복원하기

sudo su

dd if=~/파일.img |pv| dd bs=4M of=/dev/디스크(번호없이)

 

b> 두 번째 방법, 압축해서 복사, `date +%d%m%y`은 날짜를 자동으로 입력해 주는 스크립트다.

sudo su

dd bs=4M if=/dev/디스크(번호없이) | gzip > ~/파일이름`date +%d%m%y`.gz

 

b> 복원하기

sudo su

gzip -dc ~/이미지.gz |pv| dd bs=4M of=/dev/디스크(번호없이)

 

끝

 

참고:

http://www.raspberrypi.org/phpBB3/viewtopic.php?f=91&t=46911

2014-01-08

맥/리눅스 라즈베리파이 SD Card 복사(clone)하기

터미널에서 SD Card 위치 확인하기

(맥) diskutil list

(리눅스) sudo dmesg | tail

 

1. 일반복사

sudo  dd  if=/dev/disk번호  of=~/Desktop/Pi.img

 

2. 안전복사, bs=1는 block size다

sudo  dd  if=/dev/disk번호  of=~/Desktop/Pi.img  bs=1m

 

3. 압축복사, 16기가가 2기가로 줄여버린다. (리눅스에서는 bs=1m을 bs=1M로 고친다)

sudo  dd  if=/dev/disk번호  bs=1m  |  gzip  >  ~/Desktop/Pi.gz

 

4. 복사 하는 중에 진행 상황 보기, pv설치 필요

 

pv설치

(맥) brew install pv    /  (리눅스) sudo apt-get install pv  

 

pv활용 (리눅스에서는 bs=1m을 bs=1M로 고친다)

sudo  dd  if=/dev/disk번호  bs=1m  |  pv  |  dd  of=~/Desktop/Pi.img

 

5. 진행상황 보면서 압축복사 (리눅스에서는 bs=1m을 bs=1M로 고친다)

sudo  dd  if=/dev/disk번호  bs=1m  |  pv  |  gzip  >  ~/Desktop/Pi.gz

 

복사된 이미지는 바탕화면에 있다.

 

참고:

http://stackoverflow.com/questions/14203873/cloning-a-bootable-sd-card-from-linux-using-dd-command

http://smittytone.wordpress.com/2013/09/06/back-up-a-raspberry-pi-sd-card-using-a-mac/

2014-01-06

라즈베리파이로 웹서버 만들기

웹서버를 만들어 보자.

 

1. 안전을 위해 비밀번호를 바꿔준다. 기본 계정은 pi다. 비밀번호를 잊어먹지 않는다!

passwd pi

 

2. 웹서버의 날짜가 중요하다. 날짜와 시간을 정확히 맞추자. 지역을 선택하면 알아서 맞춰준다.

sudo dpkg-reconfigure tzdata

 

3. 웹서버를 설치하고 재시작한다.

sudo apt-get install apache2 php5 libapache2-mod-php5

sudo service apache2 restart

 

*** 에러발생?

restart 시 에러가 발생할 수 있다. 

pi@iu ~ $ sudo service apache2 restart
[....] Restarting web server: apache2apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName

 

에러 해결법 설정파일을 연다.

sudo nano /etc/apache2/apache2.conf 

 

다음을 파일의 맨 끝에 추가한다.

ServerName localhost

*** 에러해결!

 

4. 테스트를 해 본다.

내부 ip를 웹브라우저에 적으면 It works 라고 나올 것이다.

 

5. MySQL을 설치한다.

sudo apt-get install mysql-server mysql-client php5-mysql

 

6. 만들어진 웹 서버의 파일저장소의 소유권을 가진다.

sudo chown -R pi /var/www

 

6. 파일서버(ftp)를 설치한다.

sudo apt-get install vsftpd

 

7. 파일서버를 수정한다.

sudo nano /etc/vsftpd.conf

 

편의상 주석처리한 후 다시 쓰겠다.

anonymous_enable=YES 를 #anonymous_enable=YES 로 주석처리한다.

 

파일의 끝에다가 이것을 붙여 넣는다.

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
chroot_local_user=YES
user_sub_token=$USER
local_root=/home/$USER/ftp

 

마지막엔 이것도 추가한다. (웹서버를 위한 것 /var/www/)

force_dot_files=YES

 

파일서버를 재시작한다.

sudo service vsftpd restart

 

8. 홈폴더(~/)에다 바로가기를 만들어 준다.

ln -s /var/www/ ~/www

 

9. DDNS와 포트포워딩을 한다. 포트는 80번이다. 귀찮으면 DMZ로 한다.

 

임시로 만들어진 웹 페이지이다. 이제 열심히 웹 프로그래밍을 공부하자.

Screen Shot 2014 01 06 at 4 33 17

 

끝

 

추가: 아파치2 문제 해결

 

간혹 에러가 뜬다.

Screen Shot 2014 01 06 at 4 55 00

 

해결방법은 이렇다.

 

새 문서를 만든다.

sudo nano /etc/apache2/conf.d/name

 

문서는 비어있고 다음을 적는다.

ServerName localhost

 

아파치를 재시작한다.

sudo service apache2 restart 

 

추가: MySQL 에러?

 

에러처럼 보이는데 에러가 아닙니다. 정상 메세지 입니다.

[info] Checking for tables which need an upgrade, are corrupt or were not closed cleanly..

 

참고:

http://www.wikihow.com/Make-a-Raspberry-Pi-Web-Server

 

아파치2문제해결(본문이 아니라 밑의 첫 리플이 해답)

http://aslamnajeebdeen.com/blog/how-to-fix-apache-could-not-reliably-determine-the-servers-fully-qualified-domain-name-using-127011-for-servername-error-on-ubuntu

 

마이에스큐엘 에러?

http://www.2by2host.com/articles/corrupt-not-cleanly-closed-upgrade-needing-table/

라즈베리파이로 FTP 파일 서버 만들기

FTP 서버를 만들어 보자.

 

1. 파일서버를 설치한다.

sudo apt-get install vsftpd

 

2. 설정파일을 고친다.

sudo nano /etc/vsftpd.conf

 

편의상 주석처리한 후 다시 쓰겠다.

anonymous_enable=YES 를 #anonymous_enable=YES 로 주석처리한다.

 

파일의 끝에다가 이것을 붙여 넣는다.

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
chroot_local_user=YES
user_sub_token=$USER
local_root=/home/$USER/ftp

 

마지막엔 이것도 추가한다. (웹서버를 위한 것 /var/www/)

force_dot_files=YES

 

3. 서버를 재시작한다.

sudo service vsftpd restart

 

4. 파일폴더를 만들고, 권한설정을 한다. <user>는 pi로 바꾸면 된다.

mkdir /home/<user>/ftp
mkdir /home/<user>/ftp/files
chmod a-w /home/<user>/ftp

 

5. 상단 공유기에서 21번 포트를 열어줘야 한다. FTP는 21번 SFTP는 22번이다. 귀찮으면 DMZ ip로 설정하면 된다.(단 보안에 주의)

 

6. DDNS설정을 한다. ddns서버 이름을 적으면 외부에서도 접속이 가능하다. ftp://주소 이것도 가능.

 

사용방법은 다음과 같다. 파일질라가 유명하다.

Screen Shot 2014 01 06 at 3 38 03

 

웹에서 ftp://주소 로 들어가도 된다.

Screen Shot 2014 01 06 at 3 43 20

 

7. 공유기 설정

인터넷라인 — 공유기1 — 공유기2 — 서버

 

최상단 공유기1의 설정이다. (유럽은 아직도 느린 ADSL회선이다. 한국이랑 전화방식 모뎀이 틀리다.)

DDNS 설정은 최상단에서 해야한다.

Screen Shot 2014 01 06 at 3 46 46

 

하단 공유기2 DMZ 설정이다.

Screen Shot 2014 01 06 at 3 49 08

 

끝

 

참고:

http://www.ducky-pond.com/posts/2013/Aug/install-an-ftp-server-on-rpi/

라즈베리파이 전원 끄기 및 안전 종료

이런 기초적인 포스트를 쓸 줄은 몰랐다.

 

내가 주로 했던 종료방식은 sudo halt 였다. 그런데 이 것이 문제가 있었다.

 

문제가 뭐냐면 external HDD un-mount가 안되고 종료가 되버려서 하드 분리시에 에러가 날 수가 있었다.

 

모든 하드를 umount 하고 종료하려면 shutdown 을 써야 한다. shutdown now 라고만 치면 종료가 안 된다. 비밀번호 물어보면서 재부팅.

 

제대로 된 종료 명령은 이렇다.

sudo shutdown -h now


끝

리눅스/라즈베리파이 부팅로그 확인하기 (bootlogd)

부팅하면 가끔 에러메세지가 나오는데, 이걸 확인하기가 힘들다. bootlogd 라는 것으로 확인이 가능하다.

 

1. 설치한다. bootlogd

sudo apt-get install bootlogd

 

2. 파일을 만든다.

sudo nano /etc/default/bootlogd 

 

3. 저장하고 종료

# Run bootlogd at startup ?

BOOTLOGD_ENABLE=yes

 

4. 재부팅 하고 부트로그 확인. 그냥 하면 아직 없다고 나온다.

cat /var/log/boot

 

5. 폰트깨짐과 칼라링 수정

 

기본적으로는 이렇게 나온다.

Screen Shot 2014 01 05 at 18 53 57

 

 

하지만 명령어를 바꾸면 이쁘게 잘 나온다. 이것은 현재 데비앙 버그라고 한다. 고쳐주겠지 언젠간.

sed 's/\^\[/\o33/g;s/\[1G\[/\[27G\[/' /var/log/boot

 

출력은 다음과 같이 잘 나온다.

Screen Shot 2014 01 05 at 21 59 08

 

7. 매번 이렇게 길게 적기 힘드니까 스크립트로 만들자.

sed 's/\^\[/\o33/g;s/\[1G\[/\[27G\[/' /var/log/boot 이것은 너무 길다.

 

~/.profile에 추가한다.

alias bootlogd-sed = "sed 's/\^\[/\o33/g;s/\[1G\[/\[27G\[/' /var/log/boot"

 

바로가기를 만들면, bootlogd-sed 라고 만 치면 된다.

 

alias 만들기는 다음을 참조:

http://jonghyunkim816.blogspot.de/2013/10/755.html

 

끝

 

참고:

http://rasp485berry.wordpress.com/elements/master-central-unit/setup/1-system-boot-log-enable/

http://forums.debian.net/viewtopic.php?f=30&t=84590

 

기본 메뉴얼:

https://wiki.debian.org/bootlogd

 

폰트깨짐과 칼라문제 해결:

http://stackoverflow.com/questions/10757823/display-file-with-escaped-color-codes-boot-messages-from-bootlog-daemon

2014-01-05

현재 등록된 update-rc.d 시작 프로그램의 리스트를 확인하기

명령어를 친다.

ls /etc/rc?.d

 

다음과 같이 나온다.

Screen Shot 2014 01 05 at 5 20 36

 

나는 시작프로그램은 jong-blahblah 와 같은 형식으로 만들었다.

 

grep 검색어로 지정해서 찾는다. 

ls /etc/rc?.d | grep jong-

 

Screen Shot 2014 01 05 at 5 21 00

 

ls /etc/rc0.d 로 확인해 보는 게 더 깔끔하겠다.

 

다음과 같이 나온다.

2013-12-23

compiling leapmotion.pd_linux on Ubuntu 12.04 (32 bit)

LeapMotion용 Pure Data Object는 Chikashi Miyama가 제작하였다. 맥과 리눅스를 지원한다. 맥용은 컴파일 된 파일이 있지만, 리눅스용으로 컴파일을 안 해놔서 직접 해야만 한다. 매우 번거롭긴 한데, 리눅서들은 뭐 그러려니 하고 만다. 자 험난한 길을 가보자.


 393268 leap motion controller


간략화된 순서는 다음과 같다.
1. Flext 설치. 이 것은 Pd 오브젝트를 만드는 것을 도와주는 프로그램이다.
2. LeapMotion SDK 설치. 이 것은 립모션 API가 들어있다. 제조사에서 공개해 준 것이라 믿을만 하다.
3. Pd_leapmotion 컴파일 하기. 위의 두 프로그램을 사용해 .pd_linux 파일을 만드는 것이다.


그렇게 쉽지는 않고 약간 복잡하다. 본격적으로 시작해 보자.


1. Pd_leapmotion 다운받기:
https://github.com/chikashimiyama/Pd_leapmotion

Pd_leapmotion을 다운받고 압축을 푼다. ~/Download 에다 받는다. https://github.com/chikashimiyama/Pd_leapmotion
해당 폴더는 여기에 있을 것이다. ~/Download/Pd_leapmotion-master


2. Flext 설치와 컴파일: 가서 설명을 보고 다운을 받는다:
http://grrrr.org/research/software/flext/

설치를 하자. 아마 svn이 없다고 나올 수도 있다 그러면 svn을 설치하자. sudo apt-get install subversion로 가능.
$ svn co https://svn.grrrr.org/ext/trunk/flext flext

컴파일러 확인. flext를 컴파일 하기 위해서 g++ 버젼을 확인하자. 3.3 이상이면 OK. 그 이하면 곤란하다.
$ g++ --version

다운받은 해당 디렉토리로 가서 컴파일 한다. 만일 에러가 나면 sudo로 해본다.
$ cd ~/Download/flext
$ bash build.sh pd gcc
$ bash build.sh pd gcc install

처음에 받은 Pd_leapmotion 폴더로 가서 익스터널을 컴파일 한다. 중요! flext와 Pd_leapmotion이 둘 다 ~/Download폴더에 있어야 한다.
$ cd ~/Download/Pd_leapmotion-master
$ bash ../flext/build.sh pd gcc
(생략) $ bash ../flext/build.sh pd gcc install
$ bash ../flext/build.sh pd gcc clean

다시 flext 폴더로 가서 설정을 한다.
$ cd ~/Download/flext
$ ./bootstrap.sh

bootstrap.sh가 안되면 Bootstrapping failed 메세지
$ sudo apt-get install libtool

도움말을 한번 본다. 상황에 따라 다르기 때문에 꼭 이것을 참고해야 한다.
$ ./configure --help

Pd source를 다운받고 압축을 푼다. ~/Download 폴더에 푼다. http://msp.ucsd.edu/software.html

소스 폴더를 잘 알아 놓는다. 내 경우엔 이렇다. /home/사용자/Downloads/pd-0.45-3/src

다시 flext 폴더로 가서 마무리 한다. 매뉴얼엔 sysdir이라고 나와 있는데, 도움말에는 sdkdir로 하라고 나와있다. 이거 틀리면 안된다. 겨우 알아냈다.
$ ./configure --enable-system=pd --with-sdkdir=/home/jong/Downloads/pd-0.45-3/src

flext 설치를 마무리 한다.
$ make $ sudo make install


3. LeapMotion SDK for Linux 설치. 가서 다운받고 압축을 푼다. ~/Download에 푼다:
https://developer.leapmotion.com/downloads

중요한 파일은 libLeap.so 이 파일이다. 경로는 ~/Downloads/LeapDeveloperKit/LeapSDK/lib/x86/ 혹은 /x64 에 있다. 자신의 OS에 맞는 것을 쓴다. Pd 유저라면 대부분 32비트 버젼일 것이다.


4. 설치를 도와줄 package.txt 파일 만들기. 중요한 파일인데 안 들어있다. 직접 만들어야 한다.
$ cd ~/Download/Pd_leapmotion-master
$ touch package.txt
$ nano package.txt

문서 편집기가 열리면 다음과 같이 적고 저장한다. INCPATH+와 LDFLAGS를 적어주어야 한다. 만약 안 되면 LDFLAGS를 빼고 해보자.
NAME=leapmotion
SRCDIR=.
SRCS=main.cpp Dispatcher.cpp
INCPATH+= -I/해당/경로/LeapDeveloperKit/LeapSDK/include
LDFLAGS='-L/해당/경로/LeapDeveloperKit/LeapSDK/lib/x86 -lLeap'



5. flext를 이용해서 Pd_leapmotion 컴파일 하기. 로그를 잘 보고 만약 에러가 나면 sudo로 다시 시도.
$ cd ~/Download/Pd_leapmotion
$ bash ../flext/build.sh pd gcc
$ (sudo) bash ../flext/build.sh pd gcc install    (여기서 에러가 났던 걸로 기억한다. 그러면 sudo를 쓰자.)

에러가 날 때 대처법: sudo로 실행해 본다. 나는 gcc install 할 때 에러가 났다. 그래서 sudo bash ../flext/build.sh pd gcc install 로 해결.
컴파일이 완료 되었다. 우리가 원하던 그 파일은 ~/Download/Pd_leapmotion-master/pd-linux/release-single 에 있다.
파일이름은 Pd_leapmotion.pd_linux 이다.


6. Pd에서 그냥 로드하면 에러가 난다. sudo와 LD_PRELOAD=를 안 붙이면, Pd로 오브젝트를 불러 올 때 다음과 같은 에러가 난다.
undefined symbol: _ZTIN4Leap9InterfaceE
leapmotion
... couldn't create


7. 실행할 때 Pd에 옵션을 붙여줘야 이 오브젝트를 제대로 로드할 수 있다. 아니면 에러가 난다. 실행 시 유의사항: sudo 로 해야한다. LD_PRELOAD=를 붙여준다. 이 것은 아까 언급한 SDK의 libLeap.so를 필요로 한다.

libLeap.so를 복사한다. 이름을 libLeap-x86.so로 바꾸었다. 64비트인지 32비트인지 정확히 알아야 한다.
$ cp ~/Download/LeapDeveloperKit/LeapSDK/lib/x86 ~/Download/Pd_leapmotion-master/pd-linux/release-single/libLeap-x86.so pd

다음과 같이 Pd를 실행하고, Pd_leapmotion-help.pd를 열어본다.
$ LD_PRELOAD=/home/jong/Downloads/leapmotion-linux-compile/Pd_leapmotion-master/pd-linux/release-single/libLeap-x86.so pd


끝이다. 지금까지 잘 따라 왔다면 다음과 같은 화면을 볼 것이다.



만들어진 Pd_leapmotion.pd_linux File link를 첨부한다. 잘 안되면 그냥 이것을 써도 무방함.
https://drive.google.com/folderview?id=0B42bn7ncw918RUVWWFFtZVZpVEE&usp=sharing

추가: master source의 main.cpp에 추가하면 Gyroscope처럼 쓸 수가 있다. (대박)
추가소스
//jong-pry
float pitch = hand.direction().pitch();
float yaw = hand.direction().yaw();
float roll = hand.palmNormal().roll();
//
t_atom handInfo[5];
//jong-pry
if (hands_gyro_flag) {
// gyro
SETFLOAT(&handInfo[0], i);
SETSYMBOL(&handInfo[1], gensym("gyro"));
SETFLOAT(&handInfo[2], pitch);
SETFLOAT(&handInfo[3], yaw);
SETFLOAT(&handInfo[4], roll);
ToOutAnything(1, gensym("hand"), 5, handInfo);
}
//
고쳐진 소스 첨부 (내가 고친거)
https://docs.google.com/file/d/0B42bn7ncw918X3VvLTB1dVR1YlU/edit

참고 Computing the Hand Orientation:
https://developer.leapmotion.com/documentation/Languages/C++/Guides/Leap_Tracking.html


참고 일반:
http://puredatajapan.info/?page_id=1514
http://musa.poperbu.net/index.php/tecnologia-seccions-30/-puredata-seccions-45/129-installing-leapmotion-puredata-external-on-linux
https://github.com/chikashimiyama/Pd_leapmotion/issues/1

2013-12-07

라즈베리파이를 프린터 서버(samba)로 만들기

라즈베리파이를 프린터 서버로 만들어 WiFi를 통해 선 연결 없이 프린터를 써보자! USB 프린터가 있어야 한다.

 

이 작업을 위해서는 root 계정이 필요하다. 계정은 있겠지만 비밀번호 설정을 해야 한다. 없다면 이번 기회에 하나 만들자.

sudo passwd root

비밀번호를 설정해 준다. 절대 잊어먹지 말아야 한다! 적어두거나 하자.

 

소스저장소를 업데이트 하고 필요한 프로그램을 설치한다. 필요한 프로그램은 cups 와 samba다. 나머지는 들러리다. samba가 있으면 안 깔아도 된다. (cups는 애플에서 만든 오픈소스 프린팅 지원 GUI다. 애플에서 기특하게 이런 것도 만들었다.)

sudo apt-get update

sudo apt-get install mc cups samba samba-common-bin

 

삼바에서 프린터 설정을 한다.

sudo nano /etc/samba/smb.conf

 

[printers] 항목을 다음과 같이 고친다.

[printers]
comment = All Printers
browseable = yes
path = /tmp
printable = yes
public = no
writable = no
create mode = 0700

 

삼바를 재시작한다.

sudo service samba restart

 

CUPS는 애플에서 만든 프린터 공유 프로토콜이다. 설정을 한다.

sudo nano /etc/cups/cupsd.conf

 

이것을 찾는다.

# Only listen for connections from the local machine

Listen localhost:631

 

“Listen localhost:631″을 코멘트처리하고 뒤에 Port 631을 붙여준다. 로컬이 아닌 네트워크로 사용하기 위함이다. 631포트를 사용해 원격으로 접속 가능하다.

# Only listen for connections from the local machine
# Listen localhost:631
Port 631

 

다음과 같이 Allow @local을 추가해 준다. 굵은 글씨를 추가하면 된다.

< Location / >
# Restrict access to the server...
Order allow,deny
Allow @local
< /Location >

< Location /admin >
# Restrict access to the admin pages...
Order allow,deny
Allow @local
< /Location >

< Location /admin/conf >
AuthType Default
Require user @SYSTEM

# Restrict access to the configuration files...
Order allow,deny
Allow @local
< /Location >

 

고쳐진 파일 스샷

Screen Shot 2013 12 07 at 12 35 29 AM

 

 

CUPS를 재시작한다.

sudo service cups restart

 

CUPS 세팅을 하자. 파이가 아닌 다른컴퓨터에서 원격으로 다음 주소로 접속한다.

http://[the Pi's IP or hostname]:631

내 경우엔  파이 IP가 192.168.0.3 이다. 그러므로 다음과 같다. 631은 아까 정해 놨던 포트 번호다.

http://192.168.0.3:631

 

다음과 같은 창이 뜰 것이다. 프린터 추가하기를 누른다.

Screen Shot 2013 12 07 at 12 40 05 AM

창이 뜨면 아이디에 root를 입력하고 처음에 설정한 루트 비번을 친다.

Screen Shot 2013 12 07 at 12 41 20 AM

다음으로 넘어가면 자동으로 프린터가 잡혀있고 Sharing 옵션만 설정해 주면 끝이다.

 

맥에서는 봉쥬르 쉐어로 잡힌다. 다른 컴에서는 삼바나 smb로 잡힐 것 같다. 프린팅을 해 보니 USB로 직접 뽑는 것 보다 처음에 3초 정도 딜레이가 있다. 뭐 그래도 선을 연결하는 것 보단 낫다.

Screen Shot 2013 12 07 at 12 44 16 AM

끝

 

참고:

http://mardou.dyndns.org/Privat/raspberry.nsf/id/JUND-95VRCY

http://www.debianadmin.com/setup-cups-common-unix-printing-system-server-and-client-in-debian.html

http://www.howtogeek.com/169679/how-to-add-a-printer-to-your-raspberry-pi-or-other-linux-computer/

2013-11-20

Raspberry Pi as Remote Torrent Machine

라즈베리파이를 리모트 토렌트 머신으로 만들기

 

Screen Shot 2013 11 20 at 11 51 58 AM

 

토렌트를 자주 쓰는데, 불편했던 것은 컴퓨터를 항상 켜놔야 한다는 것이다. 라즈베리파이 서버가 있으니 토렌트 다운로드 머신으로 써 보자.

 

1. 라즈베리파이에 토렌트를 설치하자. 데몬과 클라이언트를 설치하자.

sudo apt-get install transmission transmission-daemon transmission-cli

 

2. 셋업 파일을 수정하기 전에 토렌트 데몬을 중지해야 한다. 중지 안하고 하면, 나중에 다시 롤백된다. 주의하자.

sudo service transmission-daemon stop

 

다시 서버를 시작하는 것은 stop을 start이나 restart로 바꾸면 된다.

sudo service transmission-daemon start

 

3. 설정파일을 수정한다. json 파일을 수정하게 된다. 제이슨 파일은 처음 보았는데 뭐 별거 없다.

sudo nano /var/lib/transmission-daemon/info/settings.json

 

다음의 파일을 필요에 맞게 수정한다.

"rpc-username": "사용자이름",

"rpc-password": "비밀번호",

"download-dir": "다운로드위치",

"incomplete-dir": "다운로드가 완료되지 않은 파일 임시 저장소",

"incomplete-dir-enabled": true,

 

나는 어느 컴퓨터에서도 다운로드를 원격으로 하기 위해 whitelist를 사용하지 않겠다. 사용한다면(true) 정해진 ip에서만 다운 명령을 내릴 수 있다.

"rpc-whitelist-enabled": false,

 

3.1. 블락리스트를 설정한다. 경찰에게 잡혀가지 않을 확률을 올려주는 중요한 작업이다. 아버지가 대통령이거나 벌금 낼 돈이 많다면 3번은 패스해도 좋다. 이렇게 수정한다.

"blocklist-enabled": true,

"blocklist-url": "http://www.bluetack.co.uk/config/level1.gz",

 

블락리스트를 info 폴더에 다운로드 한다. 루트권한이 필요하다. (왜 루트권한이 필요한 진 모르겠지만, 루트가 아니면 저 폴더에 못 들어간다.)

 

해당 폴더로 간다.(루트권한필요)

sudo su

cd /var/lib/transmission-daemon/info/blocklists/

 

파일을 다운받는다. 해당 파일이 폴더에 생길 것이다.

wget http://www.bluetack.co.uk/config/level1.gz

 

압축을 푼다.

gunzip level1.gz

 

트랜스미션을 재시작한다.

sudo service transmission-daemon reload

 

ls로 폴더를 보면 level1.bin 파일이 생성되었을 것이다.

 

3.2 블락리스트 업데이트를 매주 한번씩 해주는 자동 스크립트 만들기. 이것 역시 경찰에 잡혀갈 확률을 줄여준다.

폴더로 가서 파일을 만든다.

cd /var/lib/transmission-daemon/info/blocklists/

sudo nano update-transmission-blocklist

 

새 파일이 생기면 이렇게 적는다.

#!/bin/bash

# blocklist directory
BLOCKLISTDIR=/var/lib/transmission-daemon/info/blocklists

cd ${BLOCKLISTDIR}
if [ $? -eq 0 ]; then
if [ -f level1 ]; then
rm level1
fi
# if no blocklist file exist update blocklist
if [ ! -f level1 ]; then
echo "*** updating Blocklist for Transmission...”

wget -q -O level1.gz http://list.iblocklist.com/?list=bt_level1&fileformat=p2p&archiveformat=gz

# if download successful unzip it
if [ -f level1.gz ]; then
gunzip level1.gz
# if file extracted successfully reload transmission
if [ $? -eq 0 ]; then
chmod go+r level1
/etc/init.d/transmission-daemon reload
else
rm -f level1*
fi
fi
fi
cd - 2>&1 >/dev/null
fi

 

완성된 파일 스크린샷

Screen Shot 2013 11 20 at 12 27 56 PM

 

저장하고 나온다.

 

파일을 실행 가능하게 만들어 준다.

chmod a+x update-transmission-blocklist

 

파일을 자동실행폴더로 넣어야 한다. cron.weekly에 넣으면 자동으로 실행이 된다고 한다. (아직 일주일이 안 지나서 모르겠지만 되겠지 뭐…)

mv update-transmission-blocklist /etc/cron.weekly/

 

자동으로 매주 한번씩 블락리스트를 업데이트 해준다. 경찰관을 만날 확률이 줄어들었다! 하지만 여전히 불안감은 있다. 뭐 어쩌겠나...

 

4. 다운로드위치 설정하기. 나는 외장 USB하드를 NAS로 연결해서 쓰고 있다. 해당 하드에다 폴더를 만들어 준다.

sudo mkdir /mnt/NAS-1T-EXT4/Torrent

 

완료되지 않은 폴더도 만들어준다.

sudo mkdir /mnt/NAS-1T-EXT4/Torrent/Incomplete

 

중요한 설정이 남았다. 나는 퍼미션 이슈가 발생했는데, 이 방법으로 이슈를 피할 수 있었다.

sudo chown -R debian-transmission /mnt/NAS-1T-EXT4/Torrent

 

트랜스미션을 재시작 한다.

sudo service transmission-daemon reload

sudo service transmission-daemon restart

 

퍼미션 세팅을 좀 해야한다. debian-transmission을 pi그룹으로 추가하자. 퍼미션 에러를 줄이기 위한 방법이다.

sudo usermod -a -G debian-transmission pi

 

그룹 오너쉽을 정해주자. 유저가 아니라 그룹이다.

sudo chgrp debian-transmission /mnt/NAS-1T-EXT4/Torrent/Incomplete

sudo chgrp debian-transmission /mnt/NAS-1T-EXT4/Torrent

 

권한을 모든 권한을 허용하자. 사용자와 그룹이 모두 접근할 수 있다. 단 비등록 사용자(게스트)는 불가능.

sudo chmod -R 770 /mnt/NAS-1T-EXT4/Torrent

sudo chmod -R 770 /mnt/NAS-1T-EXT4/Torrent/Incomplete

 

트랜스미션을 정지한다.

sudo service transmission-daemon stop

 

세팅을 고친다.

sudo nano /etc/transmission-daemon/settings.json

 

이렇게 고친다. 숫자를 바꾸면 된다. 18을 2로 바꾼다. 기본값이 18인데, 원격접속한 사용자가 실행과 삭제를 하질 못한다. 2로 바꾸자. 2는 775를 의미한다.

"umask": 18

이것을

 "umask": 2

으로 고친다.

 

그림으로 보자. 이걸 고치면 된다.

Screen Shot 2013 12 22 at 3 12 38 PM

 

컴퓨터를 재 부팅한 뒤 다시 재시작 해 보자. (작업내용을 꼭 저장한다. 재부팅 하면 다 날라간다)

sudo reboot

sudo service transmission-daemon reload

sudo service transmission-daemon restart

 

퍼미션 설정은 어떻게 했는지 잘 기억이 안 나는데, 아무튼 이정도로 했더니 되더라… 이유는 나도 잘 모르겠다 ㅠㅠ 퍼미션은 항상 어렵다.

 

 

5. 수정된 설정파일 종합

 

설정 파일 수정에 대한 모든 정보는 여기에 있다.

https://trac.transmissionbt.com/wiki/EditConfigFiles

 

완성된 내 설정파일이다. 볼드된 텍스트를 수정한 것이다.

pi@sulli /mnt/NAS-1T-EXT4/Torrent/Incomplete $ sudo cat /var/lib/transmission-daemon/info/settings.json
{
"alt-speed-down": 50,
"alt-speed-enabled": false,
"alt-speed-time-begin": 540,
"alt-speed-time-day": 127,
"alt-speed-time-enabled": false,
"alt-speed-time-end": 1020,
"alt-speed-up": 50,
"bind-address-ipv4": "0.0.0.0",
"bind-address-ipv6": "::",
"blocklist-enabled": true,
"blocklist-url": "http://www.bluetack.co.uk/config/level1.gz",
"cache-size-mb": 4,
"dht-enabled": true,
"download-dir": "/mnt/NAS-1T-EXT4/Torrent",
"download-limit": 100,
"download-limit-enabled": 0,
"download-queue-enabled": true,
"download-queue-size": 5,
"encryption": 1,
"idle-seeding-limit": 30,
"idle-seeding-limit-enabled": false,
"incomplete-dir": "/mnt/NAS-1T-EXT4/Torrent/Incomplete",
"incomplete-dir-enabled": true,
"lpd-enabled": false,
"max-peers-global": 200,
"message-level": 2,
"peer-congestion-algorithm": "",
"peer-limit-global": 240,
"peer-limit-per-torrent": 60,
"peer-port": 51413,
"peer-port-random-high": 65535,
"peer-port-random-low": 49152,
"peer-port-random-on-start": false,
"peer-socket-tos": "default",
"pex-enabled": true,
"port-forwarding-enabled": false,
"preallocation": 1,
"prefetch-enabled": 1,
"queue-stalled-enabled": true,
"queue-stalled-minutes": 30,
"ratio-limit": 2,
"ratio-limit-enabled": false,
"rename-partial-files": true,
"rpc-authentication-required": true,
"rpc-bind-address": "0.0.0.0",
"rpc-enabled": true,
"rpc-password": "비밀번호가 암호화 되어 나타날 것이다",
"rpc-port": 9091,
"rpc-url": "/transmission/",
"rpc-username": "pi", 
"rpc-whitelist": "127.0.0.1",
"rpc-whitelist-enabled": false, 
"scrape-paused-torrents-enabled": true,
"script-torrent-done-enabled": false,
"script-torrent-done-filename": "",
"seed-queue-enabled": false,
"seed-queue-size": 10,
"speed-limit-down": 100,
"speed-limit-down-enabled": false,
"speed-limit-up": 100,
"speed-limit-up-enabled": false,
"start-added-torrents": true,
"trash-original-torrent-files": false,
"umask": 18,
"upload-limit": 100,
"upload-limit-enabled": 0,
"upload-slots-per-torrent": 14,
"utp-enabled": true
}



6. 다른 컴퓨터에서 원격으로 접속해 본다.

Transmission Remote GUI 같은 앱을 써도 되지만, 크롬이나 사파리에서 웹환경으로 접속하는 것이 편하다.

주소창에 앞서 설정한 주소를 적고, 포트번호를 적으면 된다.

http://192.168.0.3:9091/

혹은

192.168.0.3:9091

으로 접속할 수 있다.


Screen Shot 2013 11 20 at 12 37 14 PM


7. 모든 설정파일 삭제하기. 뭔가 잘못 되었다거나 다시 해보려면 다음과 같이 프로그램과 설정 파일을 지운다.

sudo apt-get remove --purge transmission transmission-daemon transmission-cli

 

끝

 

참고:

http://blog.spiralofhope.com/3148-transmission-on-the-raspberry-pi.html

http://cumulativeparadigms.wordpress.com/2012/08/13/tutorial-1-setting-up-rpi-as-a-torrent-server/

http://blog.shvetsov.com/2010/09/automatically-update-transmission-block.html

https://forum.transmissionbt.com/viewtopic.php?f=4&p=50358

 퍼미션이슈:

http://raspberrypi.stackexchange.com/questions/4378/transmission-permission-denied-on-usb-disk

https://forum.transmissionbt.com/viewtopic.php?f=2&t=10456

http://askubuntu.com/questions/221081/permission-denied-when-downloading-with-transmission-deamon

2013-11-08

vnstat 네트워크 사용량 체크하기

설치하기

sudo apt-get install vnstat

 

실행하면 다음과 같은 요약화면이 나온다.

vnstat

Screen Shot 2013 11 08 at 2 15 20 PM

 

옵션은 다음과 같다.

-q, --query query database
-h, --hours show hours
-d, --days show days
-m, --months show months
-w, --weeks show weeks
-t, --top10 show top10
-s, --short use short output
-u, --update update database
-i, --iface select interface (default: eth0)
-?, --help short help
-v, --version show version
-tr, --traffic calculate traffic
-ru, --rateunit swap configured rate unit
-l, --live show transfer rate in real time

 

실시간 확인하기 기본디바이스는 랜카드의 eth0을 잡는다.

vnstat -l

 

USB 테더링 사용량 확인

vnstat -i usb0

 

내가 쓰는 사용법 (usb0사용량, 단위변경, 실시간체크)

vnstat -i usb0 -ru -l

Screen Shot 2013 11 08 at 2 20 17 PM

 

끝

2013-10-30

맥/리눅스: 삭제된 파일이 여전히 locate에서 검색될 때 (미해결)

locate는 파일 찾는 유용한 방법이다. 그런데 방금 삭제한 파일인데도 여전히 나타날 때가 있다.

Screen Shot 2013 10 30 at 2 15 00 AM

 

파일목록을 데이터베이스로 저장하는 방식이라 항상 업데이트가 되진 않으므로, 수동으로 업데이트 해야 한다.

 

맥에서 하는 방법: 주의점 반드시 sudo로 해야 한다. 안 그러면 엉킬 수도 있다고 함.

sudo /usr/libexec/locate.updatedb

 

리눅스에서 하는 방법: 맥과 거의 유사하다. 이것 역시 루트권한으로 한다.

sudo updatedb

 

이렇게 하면 db가 업데이트 되어 삭제된 파일이 나타나지 않아야 하지만!

Screen Shot 2013 10 30 at 2 18 52 AM

 

여전히 있다… plist는 불멸의 파일인가? 이 에러는 뭔가… 해결책을 찾아야 함.

 

 

2013-10-23

Ubuntu에서 Pd Vanilla 컴파일 하기

우분투 소프트웨어 센터나 apt-get으로 설치가 가능하지만, 1년 전 옛날버젼으로 설치되므로 바람직하지 못하다. 물론 apt-get이 설치는 편리하지만 최신 버젼을 컴파일링 해서 쓰는 것이 바람직 하다.

물론 이런 컴파일 과정이 귀찮은 사람은 조금 옛날 버젼이 설치되지만, sudo apt-get install puredata 로 편하게 설치하면 끝이다. 그러면 이 귀찮은 것을 보지 않아도 좋다.



Pd Vanilla Source를 다운받는다.
http://msp.ucsd.edu/software.html
압축을 푼다. 다른 툴로 그냥 풀어도 된다.
tar xzf pd-0.45-3.src.tar.gz

해당 디렉토리로 간다. 내가 받은 버젼은 0.45-3이다.
cd ~/Downloads/pd-0.45-3

컴파일에 필수적인 automake가 설치되어 있는지 확인해 보고 없으면 설치한다.
$ sudo apt-get install automake

컴파일에 필요한 의존성 패키지를 설치한다. tk8.5는 깔아도 되고 안 해도 되지만 안 하면 폰트 문제가 생길 수 있다. (기본적으로 우분투는 tk8.4가 설치되어있다.) libtool이 없으면 ./autogen.sh 실행이 안 될 수도 있다.
$ sudo apt-get install libasound2-dev
(옵션) sudo apt-get install tk8.5
(옵션) sudo apt-get install libtool
(옵션) sudo apt-get install gettext

**추가: 2015-03-16 / jack2 on amd64
case 1> jack2를 쓸 경우엔 이걸 설치하지 않으면 안 된다.
$ sudo apt-get install libjack-jackd2-dev

case 2> jack1일 경우엔
$ sudo apt-get install libjack-dev


컴파일을 한다. 다음을 순서대로 입력한다. install은 sudo로 하는 게 좋다.
./autogen.sh
./configure                     (jack support필요하면, $ ./configure --enable-jack)
make
sudo make install

어디에 설치되었는지 확인한다. 확인할 방법이 애매한데, 일단 여기에 있다.
/usr/local/bin

실행파일은
/usr/local/bin/pd

자동으로 프로그램에 등록이 안되기 때문에 프로그램으로 등록해 주거나, 터미널에서 pd 라고 입력한다. 절대경로로 /usr/local/bin/pd 라고 입력해도 실행된다.

아이콘 등록이 안 되어 있으므로, 수동으로 등록해 주어야 하는데 png파일만 등록이 되므로 귀찮다. 소스파일에는 .ico파일만 들어있다. 그냥 아무거나 이쁜걸로 대충 넣어서 쓰자. ico를 png로 바꿔서 저장하면 간단하다.
혹시 에러가 나거나 잘 안 되면 uninstall, make clean을 해 본다.
make uninstall
make clean
재 설치

끝

설명서 원문을 첨부한다.
Quick compilation instructions for Gnu/linux or Mac OSX, or Windows if you have
installed gygwin:  make sure "automake" is installed as well as the usual C
compiler chain.  Then in this directory, type "./autogen.sh", then
"./configure"; then "make".

Alternatively, you can use the fallback makefiles in "src" for gnu/linux, Mac
OSX, or Microsoft Visual C.  On linux, for example, cd to src and type "make -f
makefile.gnu" and (if you wish) "sudo make -f makefile.gnu install".

Special instructions for Microsoft Visual C: cd to src and type "make -f
makefile.nt".  Then CD to the various subdirs of extra and type "make nt" in
each.

Various dependencies: in linux and Mac you need TK (apparently always present
for Mac and usually there for linux).  On linux you may also need an ALSA
"dev" package: (yum install alsa-lib-devel) or (apt-get install libasound2-dev).

참고:
http://msp.ucsd.edu/Pd_documentation/x3.htm#s1.2
http://puredata.info/docs/developer/BuildingPd

2013-10-19

맥/리눅스에서 복사 된 파일이 원본과 같은지 확인하는 방법. diff 명령어

복사를 하면 당연히 원본과 같아야 한다고 생각을 한다. 하지만 나같이 의심병 환자는 이런 것도 검사를 한다.

 

유닉스 명령어 중에 diff란 것이 있다. 원본 파일과 복사 된 파일이 같은지 확인해 준다. 파일도 가능하고 폴더도 가능하다.

 

백업 하드를 통채로 복사했는데 이게 같은 건지 의심이 들면 검사해 보자.

 

기본적으로 아무런 옵션이 없으면 같은 것과 다른 것을 모두 표시한다. 같은 것은 아니까, 다른 것만 검출하면 된다.

 

-q 옵션은 다른 것만 보여준다.

 

-r 옵션은 하위 디렉토리까지 검사한다.

 

합쳐서 -rq라고 줄 수 있다. -r -q 둘 다 쓸 수도 있다.

 

맥에서는 .DS_Store라는 숨김속성 페이징 파일이 있다. 그냥 시스템이 알아서 생성하는 것인데 매번 다른 파일이 생성되므로 이것은 제외해야 한다.

 

-x '파일명'을 치면 이 파일은 검사에서 제외한다. 그러므로 -x '.DS_Store'는 제외하자.

 

문법구조는 이렇다.

비교하라 -하위디렉토리까지 -다른것만검출 원본폴더 대상폴더 -제외할것 '제외할파일이름'

 

코드는 이렇게 된다.

diff -r -q 원본폴더 대상폴더 -x '.DS_Store'

 

실제 코드는 이런 식이다.

diff -r -q /Volumes/E.BAK-1T-HFSP/original/ /Volumes/E.TEST-120G-HFSP/copied/ -x '.DS_Store'

 

모든 파일을 검사하기에 시간이 좀 오래 걸린다.

 

끝

 

참고:

http://www.mugginsoft.com/content/diff-ignoring-hidden-files

맥/리눅스, 터미널에서 퍼미션 755 스타일로 확인하기

퍼미션을 확인하려면

 

ls -l 로 확인이 가능하다.

Screen Shot 2013 10 18 at 5 22 20 PM

 

하지만 drwxfosfkeof 씨바 졸라 무슨 외계어 마냥 이해하기도 힘들고 보기도 불편하다.

 

그렇다 깔끔한 755 스타일로 바꿔보자! 755스타일에 대한 설명은 여기를 참고

http://blog.hansune.com/451

 

어자피 퍼미션 바꿀 때 755나 777 이런 식으로 하지 않는가? 그런데 저딴 식으로 나와서는 곤란하다. 그래서 바꿔보자!

 

755스타일을 구현하는 방식이다.

ls -l | awk '{k=0;for(i=0;i<=8;i++)k+=((substr($1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf("%0o ",k);print}'

 

드디어 알아볼 수 있게 나온다! 하지만 저 명령어는 무슨 외계어인지 알 수가 없다. awk라는 강력하고도 이상한 언어다.

Screen Shot 2013 10 18 at 5 26 37 PM

 

문제는 매번 이렇게 길게 명령어를 칠 수는 없으니 단축키로 등록하자!

 

방법1. 맥에서 하는 방법

 

파일을 만든다.  기본적으로 없다. (마운틴 라이언)

touch ~/.bash_profile

 

파일을 수정한다.

sudo nano ~/.bash_profile

 

이것을 추가한다. 나는 단축키로 lsn을 치면 저게 나오도록 했다. n은 nummeric permissions의 약자다.

alias lsn="ls -alG | awk '{k=0;for(i=0;i<=8;i++)k+=((substr(\$1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf(\" %0o \",k);print}'"

 

맥 터미널을 껏다가 켠다. lsn을 입력한다.

Screen Shot 2013 10 18 at 5 33 00 PM

 

훌륭하지 않은가? 매번 퍼미션 계산하고 앉아있는 상황은 피할 수 있다!

 

추가:

awk로 계산된 퍼미션 값이 나올 때 터미널 텍스트 색깔이 사라지는 문제가 있었는데, ls 앞에 CLICOLOR_FORCE=1을 붙여주면 된다.

alias lsn="CLICOLOR_FORCE=1 ls -alG | awk '{k=0;for(i=0;i<=8;i++)k+=((substr(\$1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf(\" %0o \",k);print}'"

 

색깔이 적용된 lsn을 실행시켜 보면 이렇게 잘 나온다.

Screen Shot 2013 10 19 at 7 38 18 AM

 

방법2. 리눅스에서 하는 방법.

리눅서들은 대부분 고수일 테니까 이것만 알려줘도 될 것 같다.

맥에서는  ~/.bash_profile 이것을 수정하지만, 리눅스에서는 조금 다르다.

 

경우1> 콘솔만 사용하는 경우 (라즈베리파이의 경우)

홈폴더에 있는 ~/.profile 을 수정하면 된다.

 

경우2> X-window에서 Terminal을 사용하는 경우 (Ubuntu의 경우)

홈폴더에 있는 ~/.bashrc 를 수정한다.

 

텍스트 색깔이 안 나오는 버젼

#without color
#alias lsn="ls -alG | awk '{k=0;for(i=0;i<=8;i++)k+=((substr(\$1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf(\" %0o \",k);print}'"

텍스트 색깔이 나오는 버젼 --color=always를 추가해 준다. 이것은 ls 옵션 중 하나이다.

#with color
alias lsn="ls -alG --color=always | awk '{k=0;for(i=0;i<=8;i++)k+=((substr(\$1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf(\" %0o \",k);print}'"

 

리눅스에서도 색깔이 적용된 lsn을 볼 수 있다. 물론 숫자 퍼미션도 잘 나온다!

Screen Shot 2013 10 19 at 7 35 57 AM 

끝

 

감사:

우분투한국사용자모임에서 질문에 도움을 주신 최정환님께 감사드린다.

색깔이 사라지는 문제는 최민호님이 해결해 주셨다. 감사드린다.

 

완성된 코드를 첨부한다.

###### Terminal coloring Settings
### change terminal color by jong
### this is the original file.
### http://stackoverflow.com/questions/1550288/mac-os-x-terminal-colors

# enable coloring for terminal
export CLICOLOR=1

# enable coloring forced in all area
export CLICOLOR_FORCE=1

### prompt sets
##mac default
#export PS1="\h:\W \u\$ "
##raspbian
#export PS1="\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\] \[\033[01;34m\]\w \$\[\033[00m\] "
##custom-1 (good) (/w blue 01;34m)
#export PS1="\[\033[01;32m\]\u@\h\[\033[00m\] \[\033[01;34m\]\w\[\033[00m\] $ "
##custom-2 (good) (/w cyan ~ 01;36m)
export PS1="\[\033[01;32m\]\u@\h\[\033[00m\] \[\033[01;36m\]\w\[\033[00m\] $ "

### LSCOLOR sets
## default LSCOLOR
#export LSCOLORS=exfxcxdxbxegedabagacad
## white theme
#export LSCOLORS=ExFxBxDxCxegedabagacad
## dark theme
#export LSCOLORS=GxFxCxDxBxegedabagaced
## custom-1
#export LSCOLORS=GxFxCxDxBxegedabagaced
#export PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
## custom-2 (good)
#export LSCOLORS=Exfxcxdxbxegedabagacad
##custom-3 (good)
export LSCOLORS=ExFxCxDxBxegedabagacad

 

###### making sh alias

### lsn -al with numberic permissions with coloring
### http://agileadam.com/ls-al-octal-permissions
alias lsn="ls -alG | awk '{k=0;for(i=0;i<=8;i++)k+=((substr(\$1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf(\" %0o \",k);print}'"

###EOF

 

참고:

http://agileadam.com/ls-al-octal-permissions