놀고있는 놋북으로 전자액자 만들기
집에 안쓰고 한참을 놔두던 iBook이 있습니다. g3프로세서 400MHz(원래 300짜리에서 오버), 200MB, 5GB하드 정도의 사양이고 화면은 800*600(12인치)이지요.. 좋은점은 전기를 적게 먹는 편이고(다 켜면 한 18와트 먹음) 팬이 없어서 하드만 끄면 아주 조용하다는 것이지요(하드 끄면 전기도 15와트 이하만 먹음)...
예전에 깔았던 우분투704는 올드아카이브에 연결해서 프로그램 설치가 되게 해 놓은 상태였습니다..
요 놋북을 갖다 버릴까 하다가 서버에 저장된 사진파일을 보여줄수 있도록 전자액자로 꾸며보았습니다..
서버에는 gallery2로 디지탈카메라에서 찍은 사진들을 보관하고 있는데, 그 앨범 데이터 디렉토리를 놋북에서 마운트할 수 있게 설정합니다.
놋북에 액자를 돌릴 계정(전 feh라고 했음)을 새로 하나 만드시구요, gdm에서 타임드 로긴(시간지나면 자동으로 로긴되는 기능)을 그 계정으로 설정합니다.
feh라는 프로그램을 설치하시구요.. apt-get install feh
/home/feh/.xsession 파일을 새로 만드셔서
feh -FND 12 /album
이런 식으로 설정해 주면 컴퓨터 전기만 올리면 자동으로 feh 사용자로 로긴해서 feh프로그램이 구동되고, 12초마다 바뀌는 사진을 보실수 있지요.. :)저는 추가적으로 집 서버에 웹캠을 달아서 이벤트 테이블을 검사하도록 해서 한시간에 이벤트가 하나도 없을 경우엔 화면을 끄도록 하는 스크립트도 장착(서버와 앨범에) 했습니다..
여기까지가 제가 만든 전자액자의 개념이구요, 혹시 원하신다면 전체 스크립트를 좀 더 정리해서 여기에 올리도록 하지요..(지금은 회사라..)
nfs-root 까지 사용한다면 하드를 아예 계속 꺼버릴 수도 있을것 같습니다... 아, 로그 쓰는 것 때문에 자꾸 하드를 긁기에 syslog는 서버로 보내도록 설정했습니다.. 그래서 하드를 덜 긁기는 하지만, 완전히 꺼버리진 못하는군요..
그리고, 프로그램에서 사진을 최적의 상태로 명암/대비 조절을 해 주면 좋을텐데, feh가 그정도의 기능은 못하네요... 혹시 더 좋은 프로그램 추천해 주시면 한번 바꾸어 보지요...
설정 파일들..
기록을 위해 구체적 설정 방법을 다시 남깁니다..
자동 전자액자로 구동하기 위한 설정변경들입니다..
--------------
자동 로긴은 /etc/gdm/gdm.conf-custom 파일에 다음 내용이 들어갑니다..
--------------
[daemon]
TimedLoginEnable=true
TimedLogin=feh
TimedLoginDelay=5
--------------
그리고, /home/feh/.xsession 파일은
--------------
xset -dpms
xset s off
xgamma -gamma 1.75
unclutter -idle 1 -jitter 800 -root &
./.run &
feh -rzdFZND 12 /albums
--------------
백그라운드로 실행되는 /home/feh/.run은
--------------
#!/bin/sh
sleep 10; killall scim-launcher
while true; do
cd /nfs; if [ -f autorun ]; then sh ./autorun; rm -f ./autorun; fi
sleep 60
done
--------------
서버의 zoneminder db 체크하는 펄 프로그램입니다. (서버쪽에서 실행되어야 하지요)
--------------
#!/usr/bin/perl
use Mysql;
$host = "localhost";
$database = "zm";
$user = "zmuser";
$password ="zmpass123";
$timer; # timer
$db = Mysql->connect($host, $database, $user, $password);
for ($timer = 0; $timer >= 0; $timer++) {
$ltime = localtime;
$query = $db->query("select id from `Events` where NOW() - INTERVAL 1 HOUR <= starttime");
#$query = $db->query("select now() - interval 1 hour");
#@array = $query->fetchrow;
$events = $query->numrows;
$query->finish;
print "$ltime - number of events: $events \n";
sleep 60;
if ($events == 0) { # sleep...
if ($pevents > 0) {
print "$ltime - time to sleep...\n";
system("cp -f /data/g3/nfs/sleep /data/g3/nfs/autorun");
}
} else { # wakeup...
if ($pevents == 0) {
print "$ltime - time to wakeup...\n";
system("cp -f /data/g3/nfs/wakeup /data/g3/nfs/autorun");
}
}
$pevents = $events;
}
exit 0;
--------------
서버의 /data/g3/nfs/sleep은
--------------
killall -19 feh
pbbcmd config lcdbrightness 0
--------------
서버의 /data/g3/nfs/wakeup은
--------------
killall -18 feh
pbbcmd config lcdbrightness 100
--------------
아, 그리고, 서버의 /etc/exports는
--------------
/home/www/g2data/albums g3(ro)
/data/g3 g3(rw,no_root_squash)
--------------
놋북의 이름이 g3입니다...
설명이 더 필요하시면 또 연락주세요...
MS를 믿으세요? 그럼 구글은요?
MS를 믿으세요? 그럼 구글은요?
이거 보드에 리눅스 올려서 함 테스트 해봐야 겠다..
이거 좋은 방법 인데요...
나도 하나 집에 구축해야 겠네..
댓글 달기