2007年6月28日 星期四

我最近在架構新的GBOX 架構,希望大家參與!
最近小弟參考了GboxLive覺得可以學習一些地方,所以把想做的架構整理了一下!
1.半封閉式:分享自己卡片者,可同樣享受別人分享的卡片!無卡片者請讚助服務器,畢竟要運作!
2.區域鎖定:可設定自己想要接收的卡片區域,例如中國,台灣,香港以免除不必要的卡.
3.Key值分享:若能取得相關KEY值,會一並自動更新KEY值列表!
4.NAT解析:採用STUN技術,使用者無需另外設定分享器!但以家用ROUTER為主,因為專業型,不容易突破!
5.DDNS自動發放:自動由主機發送DDNS名稱
6.其它
不知大家有什麼想法!!關於小弟的這些想法,都會在近期一一實做!
有興趣的人可以加入討論!QQ群:40357067
http://www.dreambox.tw/

2007年6月12日 星期二

DM自動重新開程序原始碼

#define MAXLINE 128

int main(int argc, char **argv)
{
int iHour,iMin,iSec;
FILE *fp;
char myHour[5];
char myMin[5];
char mySec[5];
memset(myHour,0,5);
memset(myMin,0,5);
memset(mySec,0,5);

if((fp=fopen("/var/etc/autoreboot.txt","r"))==NULL)
{
perror("No reboot setting time...\n");
exit(0);
}
fgets(myHour,MAXLINE,fp);
fgets(myMin ,MAXLINE,fp);
fgets(mySec ,MAXLINE,fp);
iHour = atoi(myHour);
iMin = atoi(myMin);
iSec = atoi(mySec);
printf("Set reboot time to %02d:%02d:%02d\n",iHour,iMin,iSec);

while(1)
{
sleep(1);
time_t t = time(0);
struct tm* lt = localtime(&t);
//printf("now is %02d:%02d:%02d\n",lt->tm_hour,lt->tm_min,lt->tm_sec);
if( (lt->tm_hour)==iHour)
{
if( (lt->tm_min)==iMin)
{
if( (lt->tm_sec)==iSec (lt->tm_sec)==(iSec+1))
{
//printf("Reboot now...\n");
system("/sbin/reboot");
sleep(10);
}
}
}
}

return 0;
}

如何讓我的Dreambox一開機就執行特定程序

有時我們會希望Dm一開機執行某些程式,像是變更網路卡的MAC ADDRESS等!所以我們必需要找到DM一開機會執行的檔案,在裡面加入自己的程序!如此就可使我們的程序在一開機執行:
這次我們找到的檔案是 /var/script/httpd_script.sh 這個檔,這個檔案負責在一開機時啟動網卡,我們可以在檔案結尾加入我們要的程序,以小弟自己寫的autoreboot為例,我想讓DM每次開機就在背景執行,可如此寫:
在 esac行之後, exit 0 行之前寫入

esac
/var/bin/autoreboot &

exit 0

如此DM每次重開機時都會執行autoreboot此程序

2007年6月11日 星期一

Dreambox 自動定時開機程序

Dreambox裡無法讓使用者下Cronb指令,也就是排程無效!
因為剛好有朋友要自動定時重啟,所以就寫了這一支小程序
在 /var/etc裡建立一個檔案名稱為autoreboot.txt
內容為三行,第一行代表小時,第二行代表分,第三行是秒
12
30
10
以上代表中午12時30分10秒時會重啟你的Dreambox
再將小弟寫的執行檔放入Dreambox裡,通常我是放在/var/bin裡
執行小弟寫的autoreboot 即可
檔案下載位置為 http://www.dreambox.tw/autoreboot.zip