[RaspberryPi] Torrent 머신 만들기

Torrent 파일을 등록해놓으면, 집에 있는 서버에 해당 파일을 자동으로 다운로드 받아놓는다. transmission을 설치하면 된다.

# apt-get install transmission-cli transmission-common transmission-daemon
# service transmission-daemon stop
# vi /etc/transmission-daemon/settings.json

설정 파일의 다음 항목을 수정한다.

"download-dir": "/mnt/NAS/TorrentDownload",
"rpc-username": "dasomoli",
"rpc-password": "password",
"rpc-whitelist-enabled": false,
"umask": 2,

업로드 속도를 제한하고 싶다면 다음을 수정한다. 예를 들어, 10 KB/sec 로 제한한다면

"speed-limit-up": 10,
"speed-limit-up-enabled": true,

기본 포트를 바꾸고 싶다면 다음을 수정한다.

"rpc-port": 9000

# service transmission-daemon reload
# usermod -aG debian-transmission dasomoli

download-dir은 다운로드 받을 디렉토리, rpc-username은 웹 인터페이스로 들어갈 때 로그인 할 ID, rpc-password는 그 Password이다. rpc-whitelist-enabled를 false 로 설정하면, 말 그대로 whitelist를 사용하지 않으므로, 어디에서든 접속이 가능하다.

접속은 기본은 9091 포트로 접속하면 된다. 위에선 9000으로 바꿨다. 하지만, 포트 번호를 치긴 귀찮으므로 apache2의 proxy를 이용해서 접속하자.

# vi /etc/apache2/sites-available/torrent.dasomoli.org.conf

<VirtualHost *:80>
        # The ServerName directive sets the request scheme, hostname and port that
        # the server uses to identify itself. This is used when creating
        # redirection URLs. In the context of virtual hosts, the ServerName
        # specifies what hostname must appear in the request's Host: header to
        # match this virtual host. For the default virtual host (this file) this
        # value is not decisive as it is used as a last resort host regardless.
        # However, you must set it for any further virtual host explicitly.
        ServerName torrent.dasomoli.org
        ServerAdmin dasomoli@gmail.com

        ProxyPass / http://localhost:9000/
        ProxyPassReverse / http://localhost:9000/

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/torrent.log
        CustomLog ${APACHE_LOG_DIR}/torrent.access.log combined

        # For most configuration files from conf-available/, which are
        # enabled or disabled at a global level, it is possible to
        # include a line for only one particular virtual host. For example the
        # following line enables the CGI configuration for this host only
        # after it has been globally disabled with "a2disconf".
        #Include conf-available/serve-cgi-bin.conf
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

이제 proxy 모듈을 enable하고, site를 enable한 후, apache2를 재시작하자.

# a2enmod proxy
# a2enmod proxy_http
# a2ensite torrent.dasomoli.org.conf
# service apache2 restart

# sudo service transmission-daemon start

이제 http://torrent.dasomoli.org 로 접속하면 된다.
당연히 미리 DNS설정은 되어 있어야 한다.

부팅 시에 Web UI 가 연결이 안되는 경우가 있는데, 이 때는 transmission-daemon을 reload 하면 된다. 수많은 해결(이라고 주장하는) 방법이 있지만, 가장 간단하면서 잘 동작하는 방법은 그냥 raspi-config에서 “Network at Boot:”의 “Wait for network”을 체크하는 것이다.

가장 간단하지만 잘 동작하는 허무한 해결책…

참고: https://askubuntu.com/questions/157455/how-to-change-the-default-permissions-of-files-created-by-transmission-daemon

[Ubuntu:12.04] Proxy exceptional list 추가

Proxy의 예외 리스트에 뭔가 추가하고 싶다면,

$ sudo apt-get install dconf-tools

$ dconf-editor

“system” / “proxy” / “ignore-hosts” 에 기본값인 “[‘localhost’, ‘127.0.0.0/8’]” 의 대괄호 안에 추가하도록 한다.

참고 : http://askubuntu.com/questions/135089/proxy-exceptions-in-12-04-lts 

[Linux] git 사용 시 Proxy 환경 아래서 https 인증이 제대로 안될 때

git 사용 시 Proxy 환경 아래서 https 인증이 제대로 안될 때 다음과 같은 에러 발생 시..

error: SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed while accessing https://주소.com/프로젝트.git/info/refs
fatal: HTTP request failed


아래처럼 하고 해보자.
 

$ export GIT_SSL_NO_VERIFY=true

우아한 방법은 아니지만 동작은 한다.
다음처럼 설정도 가능.

$ git config –global http.sslVerify false

참고 :  http://stackoverflow.com/questions/3777075/https-github-access

[Ubuntu 10.04] sun-java6-jdk 설치

partner repo 에서 제공하던 것이 안된다.

PPA repo 를 이용한다.

sudo apt-get install python-software-properties

sudo add-apt-repository ppa:sun-java-community-team/sun-java6

sudo apt-get update

sudo apt-get install sun-java6-jdk

sudo update-java-alternatives -s java-6-sun

Proxy 환경에서 add-apt-repository ppa:sun-java-community-team/sun-java6 에서 “couldn’t connect to host” 에러가 나는 경우 환경 변수 http_proxy, https_proxy, ftp_proxy 가 sudo 에서도 먹도록 다음을 /etc/sudoers 에 추가한다.

Defaults env_keep = “http_proxy https_proxy ftp_proxy”

참고 : http://www.bogdanovic.se/installing-oracle-sun-jdk-6-on-ubuntu

         https://help.ubuntu.com/community/AptGet/Howto#Setting_up_apt-get_to_use_a_http-proxy

[Linux] Proxy 환경에서 ssh 접속

일전에 OMAPpedia 에 나와 있다고 쓴 적이 있었는데, 그 글에서 다른 이슈들에 묻혀서 잘 안보이길래 아예 다른 글로 하나 빼서 쓴다.
가끔 ssh 를 Proxy 환경에서 사용해야 할 일이 있다. 이럴 때는 corkscrew 를 설치하고 ~/.ssh/config 안에 다음과 같이 설정하면 된다.

ProxyCommand /usr/local/bin/corkscrew <Proxy URL or IP> <Proxy Port> %h %p

참고 : http://daniel.haxx.se/docs/sshproxy.html

TI OMAP의 Android 관련 페이지 모음

일단 TI의 오픈소스 git repository는 http://git.omapzoom.org/ 이다.
OMAP의 Android 관련 메인 위키 페이지는 http://omappedia.org/wiki/OMAP_Android_Main 이며, 소스를 얻는 것에 대해서는 http://omappedia.org/wiki/Android_source_code_versions 에 설명되어 있다.
또한 플랫폼 쪽의 manifest.xml 를 관리하기 위한 프로젝트는 git://git.omapzoom.org/platform/omapmanifest.git 으로 보인다.
리눅스 상에서 adb 사용에 관한 문서는 http://omappedia.org/wiki/Adb_over_USB 에서 볼 수 있고, 리눅스 및 윈도우즈 상에서의 adb 사용(Blaze 기준)은 http://omappedia.org/wiki/Support_Tools#ADB_over_USB 에서도 볼 수 있다.
툴체인은 http://omappedia.org/wiki/Android:_Configuring_the_Host_PC#ARM_Cross_Compiler 에서 볼 수 있는 것처럼 Code Sourcery의 툴체인을 권장하며 L27x 등 최신 버전은 2010-q1 이 사용되어야 한다고 쓰여져 있다.
방화벽 아래에서의 작업은 http://omappedia.org/wiki/Support_Tools#Firewalls 에서 해결 방법을 볼 수 있다. 해당 해결 방법은 GIT_PROXY_COMMAND 환경변수를 사용하는 것이 아닌 git의 core.gitproxy 설정을 통해 해결하고 있다. 또한 SSH 의 Proxy 를 .ssh/config 파일에서 설정하는 방법에 대해서도 http://omappedia.org/wiki/Gerrit#SSH_Proxy_Setup: 에 나와 있다. 둘다 corkscrew를 이용한다.

Ducati를 사용하는데 사용되는 Syslink에 대해서는 http://omappedia.org/wiki/Syslink_Project 에서 정보를 얻을 수 있고, 현재 Syslink 3(http://omappedia.org/wiki/Syslink_3)로 이행 중인 듯하다. Syslink3 는 Kernel space에서 수행되는 것들을 User space로 옮겨 Linux kernel 에 upstream이 되기 힘든 단점을 극복하려는 듯 하다.
XDCtools 는 http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/rtsc/index.html 에서 다운로드 받을 수 있고, CodeGen tool과 BIOS 등 모든 툴은 TI Account가 있어야 다운로드 받을 수 있는 듯 하다.

Ducati 에 대한 정보는 http://omappedia.org/wiki/Ducati_For_Dummies 에서 얻을 수 있는 듯 하다.

[JAVA] JVM의 Proxy 셋팅

net.properties 를 셋팅하여 Java 프로그램이 실행되는 JVM이 프록시를 통해 네트워크를 연결할 수 있도록 할 수 있다. java로 실행된다면 다음과 같이 옵션을 넣어주면 된다.

java -Dhttp.proxyHost=168.219.61.250 -Dhttp.proxyPort=8080 …
우분투 리눅스의 경우에는 /etc/java-6-sun/net.properties 파일에 시스템 전역 설정값을 설정할 수 있다.

socat을 이용해서 gitproxy 사용하는 방법

* http://www.emilsit.net/blog/archives/how-to-use-the-git-protocol-through-a-http-connect-proxy/ 참고
* 아래 스크립트를 gitproxy라는 이름으로 저장함. 사용법은 아래 코멘트 참조. (socat 툴이 깔려 있어야 함 http://www.dest-unreach.org/socat/)


#!/bin/sh
# Use socat to proxy git through an HTTP CONNECT firewall.
# Useful if you are trying to clone git:// from inside a company.
# Requires that the proxy allows CONNECT to port 9418.
#
# Save this file as gitproxy somewhere in your path (e.g., ~/bin) and then run
# chmod +x gitproxy
# git config –global core.gitproxy gitproxy
#
# More details at http://tinyurl.com/8xvpny

# Configuration. Common proxy ports are 3128, 8123, 8000.
_proxy=<IP:xxx.xxx.xxx.xxx>
_proxyport=<PORT:8080>


exec socat STDIO PROXY:$_proxy:$1:$2,proxyport=$_proxyport

corkscrew 를 이용해서 git proxy 이용하기

1. corkscrew 를 다운로드 및 설치(우분투는 그냥 apt-get install corkscrew)
1.1. http://www.agroman.net/corkscrew/ 에서 구할 수 있다. wget을 이용하여 다운로드.

1.2. 설치

# configure; make; make install

1.3. /usr/local/bin/corkscrew 가 설치되었음을 확인.

2. git proxy를 위한 스크립트 작성
2.1. /usr/local/bin/gitproxy.sh 작성

#!/bin/bash
/usr/local/bin/corkscrew <Proxy IP> <Port> $*

2.2. ~/.bashrc 에 다음 추가

$ export GIT_PROXY_COMMAND=/usr/local/bin/gitproxy.sh

참고 : http://cafe.naver.com/embeddedcrazyboys.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=4981