niedziela, 10 czerwca 2012

DVBSKy s960 XBMC Tvheadend - Debian Stable 6.0.4

Instalacja niezbędnych pakietów do zbudowanie sterownika dla karty DVB-S:
# apt-get install linux-source-2.6.32 linux-headers-`uname -r` make gcc patchutils libproc-processtable-perl
Folder roboczy:
$ mkdir ~/dvb
$ cd ~/dvb
Sterownik: (Paczka przeznaczona dla kernela 3.3 pozwala na zbudowanie sterownika i dla starszej wersji. :) )
$ wget http://dvbsky.eu/download/media_build-3.3.x.tar.gz
$ tar zxvf media_build-3.3.x.tar.gz
$ cd media_build/
Kompilacja:
$ make
# make install
Firmware:
$ wget http://dvbsky.eu/download/dvbsky-firmware.zip
$ unzip dvbsky-firmware.zip
# sh bst-firmware.sh
Sprawdzenie czy karta widoczna jest w systemie:
$ ls -la /dev/dv*
Przy okazji warto sprawdzić czy karta działa zatem instalacja narzędzi:
# apt-get install dvb-apps
Skanowanie czyli wyszukanie dostępnych programów:
$ scan -x0 /usr/share/dvb/dvb-s/Astra-19.2E | tee channels.conf
Próba odtworzenia programu za pomocą mplayer:
$ cp channels.conf ~/.mplayer/
$ mplayer dvb://"TVP INFO"
Rezozytoria dla xbmc:
# nano /etc/apt/sources.list
deb http://debian.oppserver.net/xbmc/ squeeze main non-free contrib
deb-src http://debian.oppserver.net/xbmc/ squeeze main non-free contrib
deb http://backports.debian.org/debian-backports squeeze-backports main contrib non-free
deb-src http://backports.debian.org/debian-backports squeeze-backports main contrib non-free
deb http://debian-multimedia.informatik.uni-erlangen.de/debian-multimedia/ squeeze main non-free
deb-src http://debian-multimedia.informatik.uni-erlangen.de/debian-multimedia/ squeeze main
deb http://debian-multimedia.informatik.uni-erlangen.de/debian-multimedia/ squeeze-backports main non-free
deb-src http://debian-multimedia.informatik.uni-erlangen.de/debian-multimedia/ squeeze-backports main
Klucz:
# wget http://debian.oppserver.net/gpg-opp-signing-pubkey.asc -O - | sudo apt-key add -
# apt-get update
Instalacja xbmc oraz pakietów dodatkowych:
# apt-get install xbmc
# apt-get install xbmc-addons
# apt-get install xbmc-addon-pvr-tvheadend
Repozytorium dla Tvheadend oraz instalacja:
# nano /etc/apt/sources.list
deb http://www.lonelycoder.com/debian/ hts main
# apt-get update
# sudo aptitude install hts-tvheadend
Konfiguracja Tvheadend:



1. http://IP_kompa_z_Tvheadend:9981
2. Configuration/TV Adapters -> dodaj
3. Add DVB Network by location --> z listy wybieramy naszą pozycję czyli w moim przypadku Astra 19.2E --> nastąpi skanowanie dostępnych transponderów, kolejny krok to:
4.Map DVB Services to channels

Końcowy efekt:

piątek, 20 kwietnia 2012

mt-daapd Debian iTunes10.5

Debian - Stable 6.0.4
mt-daapd - mt-daapd_0.9~r1696


# apt-get install
gpa
devscripts
debhelper
dpatch
libflac-dev
libvorbis-dev
libmpcdec-dev
libavcodec-dev
libavformat-dev
libid3tag0-dev
libtagc0-dev
libavahi-client-dev
libsqlite3-dev
libjs-prototype
libjs-scriptaculous
avahi-daemon

Folder roboczy, źródła:

$ mkdir ~/mt-daapd
$ cd ~/mt-daapd
$ sudo apt-get source mt-daapd

Patch:

$ cd ~/mt-daapd/mt-daapd-0.9~r1696.dfsg/debian/patches/
$ wget http://www.zero-factorial.com/coding/21_itunes10.5.dpatch
$ echo 21_itunes10.5.dpatch >> 00list
$ cd ../..

Opcja - klucze

$ gpg --gen-key
$ gpg --list-secret-keys

Kreowanie deb

$ dch -i "Fix for iTunes 10"
$ debuild -us -uc

Instalacja:

sudo dpkg -i mt-daapd_0.9~r1696.dfsg-15build2_amd64.deb

czwartek, 19 kwietnia 2012

Clover FAT32

Clover klucz USB FAT32 MBR


sudo fdisk -e /dev/rdisk1
p
f 1
w
quit

sudo -s
cd ~/Desktop/BootSectors
fdisk -f boot0 -u -y /dev/rdisk1
dd if=/dev/rdisk1s1 count=1 bs=512 of=origbs
cp boot1f32 newbs --> alternatywa to bootf32alt i =boot, 1=boot1 itd
dd if=origbs of=newbs skip=3 seek=3 bs=1 count=87 conv=notrunc
dd if=newbs of=/dev/rdisk1s1 count=1 bs=512

Netatalk 2.2.2 Debian Stable

Netatalk - 2.2.2
Debian - 6.0.4 - Squeeze

apt-get install:
gcc
make
libc6
libc6-dev
libdb-dev
libdb4.8-dev
libcrack2-dev
libssl-dev
libgcrypt-dev
libavahi-client-dev

# ./configure --enable-debian --enable-zeroconf
$ make
# make install

środa, 18 kwietnia 2012

Xorg i Openbox w Jailu na FreeBSD

Założenia:
System FreeBSD 8.2 RELEASE
Jeden interfejs sieciowy, jeden publiczny adres IP
Natowanie i przekierowanie portów dla Jaili wykonane za pomocą PF
(Wystarczy funkcjonalność PF, którą zapewnia jądro GENERIC)
Zainstalowany, skonfigurowany Jail np. za pomocą sysutils/ezjail.
Edycja pliku /etc/hosts w Jailu (brak tego wpisu spowoduje błędy podczas startu serwera VNC)

192.168.1.3 host.domena.pl host

Instalacja softu w Jailu:
Korzystam z paczek przeznaczonych dla wersji 8-STABLE zatem w pliku /root/.cshrc

setenv ftp://ftp.ua.freebsd.org/pub/FreeBSD/ports/amd64/packages-8-stable/Latest/

i dalej po ponownym zalogowaniu:

# pkg_add -r xorg openbox vnc --> opcjonalnie icedtea-web mc nano opera

Pierwsze uruchomienie serwera:

$ vncserver

może i u mnie również kończy się błędem:
no free display on jailname
Edycji wymaga sekcja sub CheckDisplayNumber w pliku /usr/local/bin/vncserver
Stosowny fragment powinien wyglądać tak:

sub CheckDisplayNumber
{
local ($n) = @_;
socket(S, $AF_INET, $SOCK_STREAM, 0) || die "$prog: socket failed: $!\n";
eval 'setsockopt(S, &SOL_SOCKET, &SO_REUSEADDR, pack("l", 1))';
if (!bind(S, sockaddr_in(6000 + $n, &INADDR_ANY))) {
close(S);
return 0;
}
close(S);
socket(S, $AF_INET, $SOCK_STREAM, 0) || die "$prog: socket failed: $!\n";
eval 'setsockopt(S, &SOL_SOCKET, &SO_REUSEADDR, pack("l", 1))';
if (!bind(S, sockaddr_in(5900 + $n, &INADDR_ANY))) {
close(S);
return 0;
}
close(S);
..........

Kompletny plik można znaleźć tutaj.
Kolejna próba startu serwera:

$ vncserver

ustanowienie hasła, zatrzymanie serwera:

$ vncserver -kill :1

celem edycji powstałego w ~/.vnc pliku xstartup gdzie twm zmieniamy na openbox.
Start:

$ vncserver :1 -geometry 1280x1024 -depth 16


$ sockstat -4
zet120 Xvnc 31669 3 tcp4 192.168.1.3:5901 *:*
zet120 Xvnc 31669 4 tcp4 192.168.1.3:5801 *:*

Na porcie 5901 server VNC oczekuje na połączenia od klasycznego viewiera VNC, a na porcie 5801 oczekuje na połączenia od przeglądarki WEB (JAVA) i te porty, a przynalmniej jeden muszą być przekierowane do Jaila.

piątek, 23 września 2011

Transmission-daemon in FreeBSD

Instalacja:

pkg_add -r transmission-daemon
portmaster net-p2p/transmission-daemon

Konfiguracja:

# ee /usr/local/etc/transmission/home/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": false,
"blocklist-url": "http://www.example.com/blocklist",
"cache-size-mb": 4,
"dht-enabled": true,
"download-dir": "/usr/local/etc/transmission/home/Downloads",
"encryption": 1,
"idle-seeding-limit": 30,
"idle-seeding-limit-enabled": false,
"incomplete-dir": "/root/Downloads",
"incomplete-dir-enabled": false,
"lpd-enabled": false,
"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": true,
"preallocation": 1,
"prefetch-enabled": 1,
"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": "{b0f05dabab8064b65f0f3284c7bfcbc9a2c8519bQCG4xvwe",
"rpc-port": 9091,
"rpc-url": "/transmission/",
"rpc-username": "username",
"rpc-whitelist": "127.0.0.1",
"rpc-whitelist-enabled": false,
"script-torrent-done-enabled": false,
"script-torrent-done-filename": "",
"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-slots-per-torrent": 14,
"utp-enabled": true
}

Próba połączenia:

http://IP:9091

poniedziałek, 19 września 2011

Unity w Ubuntu


$ /usr/lib/nux/unity_support_test -p
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce Go 7400/PCI/SSE2
OpenGL version string: 2.1.2 NVIDIA 280.13

Not software rendered: yes
Not blacklisted: no
GLX fbconfig: yes
GLX texture from pixmap: yes
GL npot or rect textures: yes
GL vertex program: yes
GL fragment program: yes
GL vertex buffer object: yes
GL framebuffer object: yes
GL version is 1.4+: yes

Unity supported: no

Do pliku:

sudo nano /etc/environment
UNITY_FORCE_START=1

Niestety dalej kiszka przynajmniej na razie.:wink:

Klucze dla ssh

Generacja kluczy:

ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
58:a9:ba:a9:c4:58:c0:18:1c:ef:f4:5c:9c:69:f2:73 user@laptop
The key's randomart image is:

Kopiowanie na serwer i dopisanie do pliku:

scp -P port /home/user/.ssh/id_rsa.pub user@zdalny_serwer:~/
ssh user@IP -p port
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

Wyłączenie logowania z hasłem

# /etc/ssh/sshd_conf
PasswordAuthentication no

Deinstalacja VMware w Ubuntu

Lokalizacja wersji:

$ vmware-installer -l
Product Name Product Version
====================== ====================
vmware-workstation 7.1.4.385536

dalej:

sudo vmware-installer -u vmware-workstation 7.1.4.385536

niedziela, 11 września 2011

FireFlay - Serwer dżwięku dla iTunes

Założenia:

Host MacOSX 10.7.2 | iTunes - 10.4.1
Server - Ubuntu 11.04_64
firefly (mt-daapd) - svn-1696

Program to klasyczny serwer dźwięku przeznaczony do instalacji na domowych serwekach, choć nie tylko.
Serwer korzysta (między innymi) z protokołu sieciowego mt-daap czyli tym, który wykorzystuje iTunes zatem dla mnie osobiście to rozwiązanie problemu z odtwarzaniem muzyczki zgromadzonej na zdalnej maszynie w MacOSX.

Główne cechy:

1. Zasoby plików dźwiękowych znajdujące się na domowym serwerku dostępne są dla wszystkich w naszej sieci lokalnej, a także w sieci o czym niżej.
2. Dzięki konwersji w locie mozliwość odtwarzania formatów bezstratnych Ogg, FLAC, ALAC, WMA w iTunes bez niepotrzebnych zabiegów

Instalacja serwera głównie zależy od systemu, ale dla Ubuntu to:

sudo apt-get install mt-daapd


Konfiguracja:

serwera możliwa jest na kilka sposobów

1 Lokalnie czyli w samym Ubuntu edytujemy plik:

# sudo nano /etc/mt-daapd.conf


Mój wygląda tak:

[general]
web_root = /usr/share/mt-daapd/admin-root
port = 3689
admin_pw = mt-daapd
db_type = sqlite3
db_parms = /var/cache/mt-daapd
mp3_dir = /home/zet120/Dane
servername = Firefly
runas = mt-daapd
extensions = .mp3,.m4a,.m4p,.ogg,.flac,.mpc
ssc_prog = /usr/bin/mt-daapd-ssc.sh
logfile = /var/log/mt-daapd.log
rescan_interval = 1800
scan_type = 2
playlist = /etc/mt-daapd.playlist
[plugins]
plugin_dir = /usr/lib/mt-daapd/plugins
plugins = rsp.so,ssc-ffmpeg.so
[scanning]
process_playlists = 1
process_itunes = 1
process_m3u = 1


2. Konfigurację można również wykonać zdalnie z innej maszyny np. wykorzystując protokół Bonjour dostępny w Safari w MacOSX



3. Wpisując w dowolną przeglądarkę:

IP_serwera_Ubuntu:3689


aby zalogować się do serwera
login:
hasło: mt-daapd

Panel konfiguracji webowej:



Playlisty mogą być tworzone ręcznie w oparciu o przejrzystego wizzarda lub całkowicie automatycznie w oparciu o pliki m3u

Końcowy efekt widoczny w iTunes:



Zasoby plików dźwiękowych mogą być również odtwarzane za pomocą przeglądarki, (tylko mp3) a to za pomocą wtyczki FirePlay:
http://www.vleeuwen.net/tag/firefly

dzięki temu dostęp do zasobów możliwy jest również spoza sieci lokalnej:

sobota, 10 września 2011

Dwa serwery www jeden host jeden port

domena - domena.pl
dwie subdomeny - www.domena.pl mail.domena.pl
host FreeBSD 8.2_64
Dwa skonfigurowane Jaile:
1. 192.168.1.1 -> www.domena.pl
2. 192.168.1.2 -> mail.domena.pl

# etc/rc.conf hosta
ifconfig_re0="inet 91.xx.xx.xx netmask 255.255.255.0 broadcast 91.xx.xx.xx"
defaultrouter="91.xx.xx.xx"
ifconfig_re0_alias0="inet 192.168.1.1 netmask 255.255.255.0"
ifconfig_re0_alias1="inet 192.168.1.2 netmask 255.255.255.0"
hostname="kiszka.domena.pl"
pf_enable="YES"
pf_rules="/etc/pf.conf"
gateway_enable="YES"
sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"
syslogd_flags="-ss"
ezjail_enable="YES"


# ee /etc/pf.conf
#INTERFACES
ext_if="re0"

tcp_services="{ ssh, smtp, ftp, www, pop3, auth, https, pop3s, 2223, 31415 }"
udp_services="{ domain, ftp }"
icmp_types = "{ echoreq, unreach }"

web_j = "192.168.1.1"
# mysql_j = "192.168.1.2"
# ircd_j = "192.168.1.3"

#options
set loginterface $ext_if
set skip on lo0

# scrub
scrub in

# nat
nat on $ext_if from 192.168.1.0/24 to any -> 91.xx.xx.xx
rdr on $ext_if proto tcp from any to any port http -> $web_j port http
rdr on $ext_if proto tcp from any to any port https -> $web_j port https
rdr on $ext_if proto tcp from any to any port 22222 -> $web_j port ssh
rdr on $ext_if proto tcp from any to any port 31415 -> $web_j port 31415
# rdr on $ext_if proto tcp from any to any port 22224 -> $ircd_j port ssh
# rdr on $ext_if proto tcp from any to any port 3689 -> $ircd_j port 3689
# rdr on $ext_if proto udp from any to any port 5353 -> $ircd_j port 5353
block log all

pass in on $ext_if proto tcp from any to any port $tcp_services keep state
pass in on $ext_if proto udp from any to any port $udp_services keep state
pass inet proto icmp all icmp-type $icmp_types keep state

pass out on $ext_if proto tcp from any to any keep state
pass out on $ext_if proto udp from any to any keep state
pass out on $ext_if inet proto udp from any to any port 33433 >< 33626 keep state

Pierwszy serwer uruchomiony w jailu nr.1 (php z użyciem spawn-scgi)

# ee /etc/rc.conf jail1
hostname="www.domena.pl"
sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"
nginx_enable="YES"
spawn_fcgi_enable="YES"
spawn_fcgi_bindaddr=""
spawn_fcgi_bindport=""
spawn_fcgi_bindsocket="/var/run/spawn_fcgi.socket"
spawn_fcgi_bindsocket_mode="0700"


# ee /usr/local/etc/nginx/nginx.conf
#user nobody;
worker_processes 1;

events {
worker_connections 1024;
}


http {
include mime.types;
default_type application/octet-stream;

sendfile on;
keepalive_timeout 65;

server {
listen 80;
server_name www.domena.pl;
location / {
rewrite ^ https://www.domena.pl/$request_uri? permanent;
}
}

server {
listen 443;
server_name www.domena.pl;
access_log /var/log/nginx-access.log;

root /usr/local/www/rutorrent;
index index.php index.html index.htm;
auth_basic "Privat!!";
auth_basic_user_file /usr/local/etc/nginx/httpd/.htpasswd;
## SSL
ssl on;
ssl_certificate /etc/ssl/nginx/cert.pem;
ssl_certificate_key /etc/ssl/nginx/cert.key;

ssl_session_timeout 5m;

ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;

## Images and static content are treated differently
location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
access_log off;
expires 30d;
}
# GUI rTorrent
location /RPC2 {
include scgi_params;
scgi_pass localhost:5000;
}

location ~ \.php$ {
root /usr/local/www/rutorrent;
fastcgi_pass unix:/var/run/spawn_fcgi.socket;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/www/rutorrent/$fastcgi_script_name;
include fastcgi_params;
}

}


include /usr/local/etc/nginx/vhosts.d/*.conf;
}


# ee /usr/local/etc/nginx/vhosts.d/reverse.conf
server {
listen 80;
server_name mail.domena.pl domena.pl;
access_log /var/log/nginx-adres.pl;
if ($host = 'domena.pl' ) {
rewrite ^/(.*) http://mail.domena.pl/$1 permanent;
}

location / {
proxy_pass http://192.168.1.2:80;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
}

}

Drugi serwer uruchomiony w Jailu nr.2

# ee /etc/rc.conf
php_fpm_enable="YES"
nginx_enable="YES"
mysql_enable="YES"

Drupal na FreeBSD

Soft:
host - FreeBSD8.2_64
nginx - 1.06
php - 5.3.8
mysql - 5.5.15
drupal - 7.8
php-fpm - 5.3.8

# portmaster www/drupal7 www/nginx databases/mysql55-server

Autostart:

# ee /etc/rc.conf
nginx_enable="YES"
mysql_server_enable="YES"
php_fpm_enable="YES"

Plik konfiguracyjny nginx

# ee /usr/local/etc/nginx/nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;

sendfile on;
keepalive_timeout 65;

server {
server_name mail1.domena.pl;
root /usr/local/www/drupal7; ## <-- Ścieżka do katalogu drupala.

location = /favicon.ico {
log_not_found off;
access_log off;
}

location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}

# This matters if you use drush
location = /backup {
deny all;
}
location ~ \..*/.*\.php$ {
return 403;
}

location / {
# This is cool because no php is touched for static content
try_files $uri @rewrite;
}

location @rewrite {
# Some modules enforce no slash (/) at the end of the URL
# Else this rewrite block wouldn't be needed (GlobalRedirect)
rewrite ^/(.*)$ /index.php?q=$1;
}

location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/www/drupal7$fastcgi_script_name;
include fastcgi_params;
}

# Fighting with ImageCache? This little gem is amazing.
location ~ ^/sites/.*/files/imagecache/ {
try_files $uri @rewrite;
}
# Catch image styles for D7 too.
location ~ ^/sites/.*/files/styles/ {
try_files $uri @rewrite;
}

location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
}

}

Baza danych dla drupala:
hasło dla roota

mysqladmin -u root password tutaj_hasło

baza drupal:

mysql -u root -p
mysql> create database drupal;
mysql> grant all on drupal.* to drupal@localhost identified by 'tutaj_hasło_dla_użytkownika_drupal';
mysql> flush privileges;
mysql> exit

Start demonów

/usr/local/etc/rc.d/nginx start
/usr/local/etc/rc.d/mysql-server start
/usr/local/etc/rc.d/php-fpm start

środa, 17 sierpnia 2011

TimeMachine czyli backup Mac OSX 10.7 Lion na FreeBSD

Założenia:
Host - Lion10.7
Serwer - FreeBSD8.2_64 - system plików zfs, zainstalowany i skonfigurowany jail.
Netatalk - 2.2.0_3,1
mDNSResponder - 320.5

Przygotowanie serwera:
W terminalu:

$ mkdir ~/TimeMachine
# portmaster /net/netatalk




W tym momencie warto odznaczyć opcję Zeroconf, która spowoduje instalację avahi wraz z milionem zależności.
Ponieważ istnieje alternatywa w postaci mDNSResponder warto z niej skorzystać.
Netatalk zainstalowany zatem czas na konfigurację:

# ee /usr/local/etc/AppleVolumes.default

Przed linią kończącą plik dodamy:

/usr/home/zet120/TimeMachine "TimeMachine" allow:zet120 cnidscheme:dbd options:usedots,upriv,tm volsizelimit:70000

volsizelimit - to rozmiar dysku przeznaczony na kopie systemu, w przykładzie 70000M
Następnie edytujemy plik konfiguracyjny serwera afp:

# ee /usr/local/etc/afpd.conf

Na końcu pliku dodamy:

- -tcp -noddp -uamlist uams_randnum.so,uams_dhx.so,uams_dhx2.so -nosavepassword -ipaddr 192.168.1.5

opcja ipaddr określa IP na którym pracuje nasz Jail.
Do rozgłaszania w sieci lokalnej obecności serwera afp oraz usługi TimeMachine niezbędny jest mDNSREsponder zatem instalacja:

portmaster net/mDNSResponder

i konfiguracja, która polega na utworzeniu skryptu do automatycznego uruchamiania po starcie systemu:

# ee /usr/local/etc/rc.d/mdnsadv

Do pustego pliku wkleimy taką zawartość:

#!/bin/sh

# PROVIDE: mdnsadv
# REQUIRE: LOGIN mdnsd
#
# Add the following lines to /etc/rc.conf to enable the mDNSResponder service advertising:
#
# mdnsadv_enable="YES"

. /etc/rc.subr

name="mdnsadv"
rcvar=${name}_enable

command="/usr/local/bin/mDNSResponderPosix"

load_rc_config $name

: ${mdnsadv_enable="NO"}

command_args="-f /usr/local/etc/mdnsadv.conf >/dev/null 2>&1 &"

run_rc_command "$1"

niezbędne uprawnienia:

# chmod ugo+x /usr/local/etc/rc.d/mdnsadv

oraz na utworzeniu pliku konfiguracyjnego

# ee /usr/local/etc/mdnsadv.conf

z zawartością:

AFP Server
_afpovertcp._tcp
548
title='File Server'

TM Volume
_adisk._tcp
9
sys=waMA=XX:XX:XX:XX:XX:XX,adVF=0x100
dk0=adVF=0x83,adVN=TimeMachine

waMA= Mac adres karty sieciowej serwera

Autostart zainstalowanych usług:

# ee etc/rc.conf
netatalk_enable="YES"
cnid_metad_enable="YES"
afpd_enable="YES"
mdnsd_enable="YES"
mdnsadv_enable="YES"

oraz uruchomienie usług:

# /usr/local/etc/rc.d/netatalk start
# /usr/local/etc/rc.d/mdnsadv start
# /usr/local/etc/rc.d/mdnsd start


Konfiguracja MacOSX
jest w zasadzie tożsama z konfiguracją pod Ubuntu z tą róznicą, że pozwalamy aby obraz dysku został wykreowany przez sam mechanizm TM.

wtorek, 16 sierpnia 2011

TimeMachine na Ubuntu

Wraz z premierą Liona oraz Netatalk 2.2 cała operacja dostosowania linuxowej maszyny zrobiła się względnie prosta przynajmniej jeżeli chodzi o podstawową usługę czyli funkcję kopii zapasowych na zdalnej maszynie.

Założenia:
Host - Lion10.7
Serwer - Ubuntu 11.04_64
Netatalk 2.2_beta4
Avahi - 0.6.30 defaultowo zainstalowany w Ubuntu 11.04

Przygotowanie serwera:
W terminalu Ubuntu:

mkdir ~/TimeMachine
cd ~/Pulpit
wget http://dl.dropbox.com/u/3739707/netatalk_2.2%7Ebeta4-1_amd64.deb
sudo dpkg -i netatalk_2.2~beta4-1_amd64.deb

W zależności od konfiguracji naszego Ubuntu mogą wystąpić problemy z zależnościami, jeżeli rzeczywiście wystąpią to dalej w terminalu:

sudo apt-get install -f

Konfiguracja:
Netatalk zainstalowany zatem konfiguracja.
# sudo nano /etc/netatalk/AppleVolumes.default
przed linią kończącą plik dodamy:

/home/zet120/TimeMachine TimeMachine allow:zet120 cnidscheme:dbd options:usedots,upriv,tm

# sudo nano /etc/netatalk/afpd.conf
na końcu pliku dodamy:

- -udp -noddp -uamlist uams_randnum.so,uams_dhx.so,uams_dhx2.so -nosavepassword

Restart daemonów:

sudo /etc/init.d/netatalk restart
sudo service avahi-daemon restart


To tyle, jeżeli chodzi o Ubuntu.


Konfiguracja MacOSX:
Próbujemy połączyć się z serwerem afp czyli [b]Finder /Idź/połącz z serwerem[/b]
i tam

afp://IP z Ubuntu

Zdalny udział zostanie zamontowany na Biurku zatem w temrinalu

cd /Volumes/TimeMachine

i kreujemy obraz, który będzie stanowił kontener o określonym rozmiarze dla kopii zapasowych.

hdiutil create -size 100g -fs HFS+J -volname "Time Machine" 'Mac Pro (zet120)'.sparsebundle

P.S.
Jeżeli chodzi o samą nazwę obrazu w sieci można spotkać rózne informacje, ale z moich doświadczeń wynika, że wystarczy aby ogólna postać nazwy wyglądała tak:

nazwa_modelu (nazwa_użytkownika).sparsebundle


To w zasadzie tyle, kopie zapasowe powinny wykonywać się automatycznie na zdalnej maszynie, a instalator Liona tak zareaguje gdy w naszej lokalnej sieci wykryje obecność serwera afp oferującego usługę TimeMachine:



czwartek, 31 grudnia 2009

Instalacja Mac OSX Leopard Snow 10.6.2 na VMware

W celach eksperymentatorsko poznawczych postanowiłem spróbować instalacji systemu Apple Mac OS X Snow Leopard 10.6.2 na VMware.
Przygotowania:
Potrzebujemy procesora z obsługą instrukcji SSE3 oraz VT-x
Ściągamy paczkę, w której jest zawarta przykładowa struktura dysku, sterowniki do systemu gościa, bootloader oraz kext do uruchomienia fonii.
Jako system host wykorzystałem Ubuntu 9.10 oraz VMware Workstation w wersji 7.0.0 build 203739
Uruchamiamy VMware i otwieramy, z wcześniej rozpakowanej paczki, plik Mac OS X Server 10.6 (experimental).vmx
W ustawieniach wirtualnej maszyny przechodzimy do konfiguracji i w opcjach CD/DVD wskazujemy z rozpakowanej paczki plik darwin_snow.iso
Start wirtualnej maszyny i oczekiwany efekt:

Obrazek1

Z dolnego paska narzędzi VMware wybieramy CD/DVD (IDE) / Settings i wkładamy do napędu nośnik z systemem.
Dodatkowo w sekcji Device Status zaznaczamy opcję Connected:

Obrazek2

Kolejny etap to wybór języka instalacji i w opcji dostosuj (tutaj warto poeksperymentować) pozostawiłem zaznaczoną opcję instalacji języka polskiego.
Dalej klasyczna instalacja, która zakończy się rebootem.
Reboot nie działa niestety właściwie i system należy startować z pliku darwin_snow.iso
Czyli ponowne uruchomienie i instalacja sterowników dla systemu gościa czyli z dolnego paska narzędzi wybieramy CD/DVD/Settings podajemy ścieżkę do obrazu darwin_snow.iso (tam są sterowniki) i zaznaczamy connect, na pulpicie pojawi się ikona, dwuklik......
Następny krok to uruchomienie dźwięku czyli rozpakowanie pliku EnsoniqAudioPCI.mpkg.tar.gz z pobranej paczki oraz klasyczna instalacja.
Kilejny krok to instalacja aktualizacji systemu do wersji 10.6.2, którą przeprowadzamy poprzez systemowe SU.
Końcowy rezultat:

Obraz4

wtorek, 15 grudnia 2009

rTorrent 0.8.6 - instalacja ze źródeł z obsługą Xmlrpc

Niezbędne pakiety:

sudo apt-get install build-essential libsigc++-2.0-dev pkg-config libcurl4-openssl-dev libidn11-dev libkadm5srv6 libkrb5-dev libssl-dev zlib1g-dev libncurses5 libncurses5-dev libxmlrpc-c3-dev

Kompilacja oraz instalacja libtorrent:

cd libtorrent-0.12.6
./configure
make
sudo make install

Kompilacja instalacja rtorrent:

cd rtorrent-0.8.6
./configure --with-xmlrpc-c
make
sudo make install

poniedziałek, 14 grudnia 2009

GRUB2 - Zmiana Wyglądu



Do listy repozytoriów Ubuntu 9.10
sudo gedit /etc/apt/sources.list

dodamy:

deb http://ppa.launchpad.net/bean123ch/burg/ubuntu karmic main
deb-src http://ppa.launchpad.net/bean123ch/burg/ubuntu karmic main

Dalej klasycznie:

sudo apt-get update

Usuniemy używanego GRUBA

sudo apt-get purge grub-pc

oraz katalog

sudo rm -R /boot/grub

Instalacja:

sudo apt-get install grub-pc

Aktualizacja sektora startowego mbr.

sudo grub-install "(hd0)"

Ściągamy dostępne motywy, zapiszemy na Pulpit i w konsoli:

cd /boot/grub/
sudo tar xzf ~/Pulpit/nazwa_themesa

Przystępujemy do konfiguracji, a w tym celu do pliku

sudo gedit /etc/default/grub

dopiszemy

GRUB_GFXMODE=1600x1200 ---->warto sprawdzć jakie rozdzielczości obsługuje GRUB poleceniem vbeinfo
GRUB_THEME=nazwa thema

Mój plik wygląda tak:

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.

GRUB_DEFAULT=0
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX="acpi_enforce_resources=lax"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entrys
GRUB_DISABLE_LINUX_RECOVERY="true"
GRUB_GFXMODE=1600x1200
GRUB_THEME=chiva

Ostatnia czynność to standardowe polecenie sudo update-grub, które spowoduje wygenerowanie aktualnego pliku /boot/grub/grub.cfg

poniedziałek, 2 lutego 2009

Interfejs sieciowy WebUI dla rTorrenta - wTorrent.

Istnieje całkiem sporo sieciowych nakładek WebUI na rTorrent'a, ale prawdopodobnie największą uwagę zwraca wTorrent, a to dzięki bardzo milutkiemu i całkowicie" spolszczonemu" interfejsowi.
Aby skorzystać z możliwośći jaką daje wTorrent należy zainstalować potrzebne oprogramowanie:

(tutaj drobna uwaga: rTorrent MUSI być zainstalowany z obsługą xmlrpc i własnie tak będzie gdy zainstalujemy go z repozytoriów dla Ubuntu 8.10.
Nie wiem dokładnie od kiedy tak jest, ale tak własnie jest, zatem odpada potrzeba instalacji ze źródeł)
Zatem:

# sudo apt-get install apache2 php5 php5-xmlrpc php5-sqlite sqlite libxmlrpc-c3 libapache2-mod-scgi rtorrent subversion


Tuż po instalacji można sprawdzić czy serwer apache działa wpisując w przeglądarkę:

http://localhost

Tekst It works! świadczy o poprawnej pracy serwera.
Następnie tworzymy w katalogu domowym folder public_html:

$ mkdir ~/public_html

Następnym krokiem będzie poinformowanie apache gdzie ma "patrzeć", zatem;

# sudo nano /etc/apache2/sites-available/default

Zastępujemy treść tego pliku takim wpisem: (Jako user podajemy własną nazwę użytkownika.)

<VirtualHost *:80>
ServerAdmin webmaster@localhost

DocumentRoot /home/user/public_html
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/user/public_html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
LoadModule scgi_module /usr/lib/apache2/modules/mod_scgi.so
SCGIMount /RPC2 127.0.0.1:5000
</VirtualHost>



Dwie ostatnie linijki tego wpisu to przekazanie, (sprzeżenie) rtorrent'a i serwera apache.
Następnie restart serwera:

# sudo /etc/init.d/apache2 restart

Kolejny krok to utworzenie w folderze domowym katalogów roboczych dla rtorrenta: (stosownie do własnych potrzeb)

$ mkdir ~/Dane
$ mkdir ~/Dane/pliki
$ mkdir ~/Dane/sesje

oraz pliku konfiguracyjnego:

$ nano ~/.rtorrent.rc

o takiej treści (to mój przykład, który należy dostosować do własnych potrzeb)

session = /home/user/Dane/sesje
directory = /home/user/Dane
upload_rate = 0
download_rate = 0
use_udp_trackers = yes
max_uploads = 200
port_range = 6892-6892
min_peers=10
max_peers=400
check_hash = no
schedule = low_diskspace,5,60,close_low_diskspace=20M
schedule = watch_directory,5,5,load_start=/home/user/Dane/pliki/*.torrent
schedule = untied_directory,5,5,stop_untied=
scgi_port = localhost:5000

Najistotniejsza jest ostatnia linijka niezbędna do poprawnej pracy wtorrenta.
Test działania rtorrenta:

$ rtorrent

oraz test słuchania

# sudo netstat -npl | grep rtorrent

Jeżeli wynik będzie zbliżony do tego:

tcp 0 0 127.0.0.1:5000 0.0.0.0:* LISTEN 6642/rtorrent
tcp 0 0 0.0.0.0:6892 0.0.0.0:* LISTEN 6642/rtorrent

to jest dobrze. :-)

Zamykamy działanie rTorrenta w sesji screen 'a i przechodzimy do folderu:

$ cd ~/public_html

wykonujemy:

$ svn co svn://wtorrent-project.org/repos/trunk/wtorrent/
$ mv wtorrent/* .
# sudo cp /conf/sample.user.conf.php /conf/user.conf.php

Pozostaje nadanie odpowiednich uprawnień:

# sudo chown -R www-data:www-data *


W przeglądarce wybieramy:

http://localhost/install.php

Wypełniamy odpowiednie pola i zapisujemy konfigurację.
Następnie w celach bezpieczeństwa usuwamy plik:

# sudo rm ~/public_html/install.php

W przeglądarce wybieramy:

http://localhost/index.php

i efekt:



P.S.
Większość tutoriali poświęconych wtorrentowi zakłada uruchamianie rtorrenta w sesji screen 'a razem ze startem systemu.
Z punktu widzenia działania wtorrenta nie jest to konieczne aczkolwiek instalacja na serwerze np. domowym ułatwia obsługę.
Aby spowodować uruchamianie rtorrenta wraz z systemem najlepiej skorzystać z gotowego skryptu, a zatem:

# wget http://libtorrent.rakshasa.no/attachment/wiki/RTorrentCommonTasks/rtorrentInit.sh?format=raw -O /etc/init.d/rtorrent

następnie edytujemy skrypt zastępując nazwę user swoją nazwą użytkownika:

# nano /etc/init.d/rtorrent

nadajemy prawo do wykonania jako programu, umożliwiamy autostart i startujemy.

# chmod +x /etc/init.d/rtorrent
# update-rc.d rtorrent defaults
# /etc/init.d/rtorrent start

Podczas następnego startu systemu rtorrent zostanie automatycznie uruchomiony w sesji screen 'a.

sobota, 24 stycznia 2009

ConkyForecast czyli pogoda na pulpicie

Z tego co wiem sporo osób używa tego programu, ale może po przeczytaniu tego poradnika ktoś jeszcze się zainteresuje, a skrypt "wart jest grzechu."

Do głównych zalet tego programu, skryptu można zaliczyć:
- prostota instalacji,
- równie prosta konfiguracja,
- mnogość informacji wyświetlanych na ekranie,
- mozliwość dowolnego formatowania wyświetlanych informacji.

Podstawową wadą zaś ( nie skryptu, a zasady działania ) jest fakt, że osoby które chcą skorzystać z niego muszą, powinny (choć wcale niekoniecznie) mieszkać w zasięgu działania serwisu http://weather.yahoo.com

Aby skorzystać ze skryptu i móc otrzymywać dane w formacje XML należy się zarejestrować na stronie

Po udanej rejestracji w mailu zwrotnym otrzymamy:
Partner ID i License Key które to dane będą potrzebne do konfiguracji skryptu.

Instalację programu najlepiej powierzyć apt'owi zatem dla Ubuntu 9.10

sudo wget -q http://www.kaivalagi.com/ubuntu/ppa/m-buck-conky-karmic.list -O /etc/apt/sources.list.d/m-buck-conky-karmic.list

Klucz:

wget -q http://www.kaivalagi.com/ubuntu/ppa/m-buck-conky-key.gpg -O- | sudo apt-key add -

Dalej klasycznie:

sudo apt-get update

i

sudo apt-get install conkyforecast

Kolejny krok to konfiguracja skryptu zatem:

cp /usr/share/conkyforecast/conkyForecast.config ~/.conkyForecast.config

i

gedit ~/.conkyForecast.config

Tutaj wpisujemy dane otrzymane w mailu:

# config settings for conkyForecast.py
CACHE_FOLDERPATH = /tmp/
CONNECTION_TIMEOUT = 5
EXPIRY_MINUTES = 30
TIME_FORMAT = %H:%M
DATE_FORMAT = %Y-%m-%d
LOCALE = pl - tutaj jak widać pl szczegóły niżej
XOAP_PARTNER_ID = dane z maila
XOAP_LICENCE_KEY = dane z maila

Razem ze skryptem instaluje się przykładowy plik konfiguracyjny dla programu conky czyli conkyrc plus plik szablonu, które to można uruchomić poleceniem:

conky -c /usr/share/conkyforecast/example/conkyrc

Jednak wcześniej warto w tym pliku zmienić kod miasta, w którym mieszkamy.
Aby odszukać kod miasta udajemy się na stronę

Kod naszego miasta jest widoczny jako końcówka linka np. dla Katowic to PLXX0060

Na podstawie analizy tych plików można w swoim własnym pliku conkyrc uzyskać całkiem ciekawe efekty.

P.S.
Przygotowałem do tego skryptu polski plik językowy, który umożliwia wyświetlanie informacji w naszym ojczystym języku.
Plik można ściągnąć [url=http://ubuntuforums.org/attachment.php?attachmentid=100630&d=1232562770][b]tutaj.[/b][/url]
Po rozpakowaniu folder pl z zawartością należy skopiować do [b]usr/share/conkyforecast/locale[/b]

Efekt:
Tak wygląda pogodynka uruchomoina z pliku conkyrc przygotowanego przez autora skryptu:



A tak przygotowana przez jednego z użytkowników:



Na koniec moja skromna propozycja:



EDIT:
Ponieważ w Conky od wersji 1.7.2 pojawiła sie możliwość wyświetlania na ekranie grafiki zatem i conkyForecast w wersji 2.09 został wyposażony w taką możliwość, podczas instalacji tej wersji instalują się do /usr/share/conkyforecast/images również obrazki reprezentujące poszczeólne stany pogody.
Wykorzystanie sprowadza się do dodania odpowiedniej frazy do pliku conkyForecast.template gdzie:

--datatype=WI - stan pogody
--datatype=MI - faza księżyca
--datatype=BI - kierunek wiatru

Przykład:

${image [--datatype=WI] -p x,y -s 120x120}

gdzie:
--datatype=WI - grafika stanu pogody
-p - położenie
x - prawo/lewo
y - góra/dół
W tym miejscu warto nadmienić, że conky pozycjonuje grafikę od lewej górnej krawędzi okna, które zajmuje oraz to, że grafika nie zwiększa rozmiarów okna.

-s 120x120 - rozmiar grafiki tutaj 120x120 pixeli.

Efekt:



Autorem tego skryptu jest Kaivalagi, a szereg dodatkowych informacji jak i super szczegółowy opis tego programu można znaleźć na jego stronie domowej


piątek, 23 stycznia 2009

rTorrent w Conky


Do napisania tego poradnika skłonił mnie artykuł o podobnej treści znajdujący się na szwedzkim forum Ubuntu.
http://ubuntu-se.org/phpBB3/viewtopic.php?f=19&t=30454
Jako, że osobiście byłem zainteresowany tematem postanowiłem zbadać sprawę i oto wyniki.
Aby conky mógł wyświetlać na pulpicie poczynania rTorrenta ten ostatni musi być zainstalowany ze źródeł i to chyba najtrudnieszy moment tej operacji, ale do dzieła.
Jeżeli w systemie mamy zainstalowanego rTorrenta to należy go usunąć, a zatem w konsoli:

apt-get remove rtorrent

Następnie należy zainstalować narzędzia niezbędne do dalszej pracy:


sudo apt-get install build-essential libsigc++-2.0-dev pkg-config libcurl3-openssl-dev libidn11-dev libkadm55 libkrb5-dev libssl-dev zlib1g-dev libncurses5 libncurses5-dev libxmlrpc-c3-dev

Następnie udajemy się na stronkę twórcy rTorrenta
i ściągamy najnowsze paczki.
Mój wybór padł na:libtorrent-0.12.4.tar.gz i rtorrent-0.8.4.tar.gz
Paczki należy rozpakować np. na Pulpit i w konsoli:

cd libtorrent-0.12.4
./configure
make
sudo make install

i dalej:

cd rtorrent-0.8.4
./configure --with-xmlrpc-c
make
sudo make install

Następny krokiem jest utworzenie w katalogu domowym folderu o nazwie rtorrent_rpc zatem

mkdir ~/rtorrent_rpc

następnie do pliku konfiguracyjnego rtorrenta czyli najczęściej ~/.rtorrent.rc w ostatniej linijce należy dopisać:

scgi_local =~/rtorrent_rpc/rpc.socket

Kolejnym krokiem będzie wizyta na stronie autora skryptu:
i pobranie dokładnie tego:
xmlrpc2scgi.py autorstwa glenn on 05/23/08 06:02:00.
Skrypt należy umieścić w utworzonym folderze, czyli ~/rtorrent_rpc i nadać mu prawo do wykonania bądź to graficznie bądź w konsoli.
Następny krok to instalacja paczki:

sudo apt-get install xmlstarlet

Teraz kopiujemy ten skrypt:

#!/bin/sh
test -S "$2" &&
"$@" d.multicall default \
d.get_name= \
d.get_up_rate= \
d.get_down_rate= \
d.get_completed_chunks= \
d.get_size_chunks= \
d.is_active= \
|
xmlstarlet sel -t -v / |
awk '/./ {
if (++i%6 == 1) name=$0
else if (i%6 == 2) up[name]=$0
else if (i%6 == 3) down[name]=$0
else if (i%6 == 4) done[name]=$0
else if (i%6 == 5) size[name]=$0
else if (i%6 == 0) active[name]=$0
} END {
for(name in up) {
if(active[name]) {
up_sum += up[name]
down_sum += down[name]
#if(++j<=4)
{
printf("Namn: %s\n", name)
printf("Klart: %d%%\n", 100 * done[name] / size[name])
printf("Upp: %.1f kB/s\n", up[name] / 1024)
printf("Ner: %.1f kB/s\n", down[name] / 1024)
printf("\n\b")
}
}
}
printf("Upp totalt: %.1f kB/s\n", up_sum / 1024)
printf("Ner totalt: %.1f kB/s\n", down_sum / 1024)
}' |
xargs -d'\b' -n1 printf '%s\0' |
sort -z |
xargs -0 -n1 printf '%s'

zapisujemy w folderze domowym pod nazwą skriptet.sh, nadajemy prawo do wykonania jako programu.
W dowolnym miejscu pliku configuracyjnego ~/.conkyrc dopisujemy (pamiętając o ewentualnym dopasowaniu ścieżek)linię:

${exec ~/skriptet.sh ~/rtorrent_rpc/xmlrpc2scgi.py ~/rtorrent_rpc/rpc.socket}

I to w zasadzie tyle, po uruchomieniu rTorrenta i dodaniu zadania otrzymamy widok pracującego rTorrenta.
W komentarzach do oryginalnego artykułu znajdują się jeszcze dwa przykładowe skrypty, których analiza pozwoli zorientować się jak najlepiej przystosować skrypt do własnych potrzeb.

Pozdrawiam i powodzenia.:-)