2012年9月14日 星期五

QNAP TS509

http://ipkg.nslu2-linux.org/feeds/optware/ts509/cross/stable/

利用
ipkg-opt install pacage_name


Asterisk設定(centOS)

安裝gcc
rpm -ivh cpp-4.1.2-48.el5.i386.rpm  
rpm -ivh kernel-headers-2.6.18-194.el5.i386.rpm 
rpm -ivh glibc-headers-2.5-49.i386.rpm 
rpm -ivh glibc-devel-2.5-49.i386.rpm 
rpm -ivh libgomp-4.4.0-6.el5.i386.rpm 
rpm -ivh gcc-4.1.2-48.el5.i386.rpm
安裝g++
rpm -ivh libstdc++-devel-4.1.2-48.el5.i386.rpm 
rpm -ihv gcc-c++-4.1.2-48.el5.i386.rpm
安裝kernel source
rpm -ivh kernel-2.6.18-194.el5.i686.rpm 
rpm -ihv kernel-devel-2.6.18-194.el5.i686.rpm 

安裝網卡
rpm -ivh kmod-atl2-2.2.3-1.i686.rpm

cd /lib/modules/2.6.18-92.1.18.e15.centos.plus/extra/atl2
insmod atl2.ko

depmod -A
看/lib/modules/2.6.18-164.11.1.e15/modules.dep有沒有 atl2

vi /etc/sysconfig/network-scripts/ifcfg-eth0
#---------------------------------------
DEVICE=eth0
#BOOTPROTO=dhcp
BOOTPROTO=static
BROADCAST=192.168.1.255
IPADDR=192.168.1.2
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=yes
HWADDR=xx:xx:xx:xx:xx:xx
#---------------------------------------

yum install ethtool
yum install net-tool

在/etc/sysconfig/network-scripts/ifup-post的exit 0上面加上
/usr/sbin/ethtool -s eth0 wol g
利用
$ ethtool eth0
確認是否有
Settings for eth0:
Supports Wake-on: g
Wake-on: g
Link detected: yes
出現

測試
#>nmap -sU -p 5060 <對方主機 IP 位址>
5060/udp open|filtered sip表可連
5060/udp closed sip表不可連 

/etc/asterisk/sip.conf
;-------------------------------------------------------
[general]
 
externhost=mypbx.mydomain.com

externaddr=aaa.aaa.aaa.aaa 
 
localnet=192.168.x.x/255.255.255.0
transport=tls,tcp,udp
 
 
[001]                            ;sip 的帳號
username=001          ;sip 的電話號碼
type=friend
secret=xxx                  ;sip 的密碼
qualify=yes
nat=yes      
host=dynamic
dtmfmode=rfc2833
context=internal
canreinvite=no
;-------------------------------------------------------
[002]                            ;sip 的帳號
username=002          ;sip 的電話號碼
type=friend
secret=ooo                  ;sip 的密碼
qualify=yes
nat=yes      
host=dynamic
dtmfmode=rfc2833
context=internal
canreinvite=no

/etc/asterisk/extensions.conf
;-------------------------------------------------------
[internal]

exten => 900,1,Playback(pls-try-call-later)
exten => 900,n,Hangup

 exten => _555XX,1,MeetMe(${EXTEN:3}di)
 exten => _555XX,n,Hangup()

 exten => _X.,1,Dial(SIP/${EXTEN},,Tt)
 exten => _X.,n,Hangup()


; _:代表開頭
;X:代表 0-9
;.:代表任意長度的字元
; _X.:指電話號碼是以數字開始不管任何長度 
;T:允許發話端使用轉接
;t:允許受話端使用轉接
;撥打555XX進入會議室,555啟動會議室、XX為會議室代碼,可視需求增減長度(${EXTEN:3}需跟著修改)。
;d為不要求會議室密碼,想設密碼可改為D
;i為使用者進出時提示,靜音為q

存檔後
#sudo /usr/sbin/asterisk -rx 'sip reload'
#sudo /usr/sbin/asterisk -rx 'dialplan reload'

#sudo /usr/sbin/asterisk -r
CLI> core reload now 

vim /etc/asterisk/features.conf 

featuredigittimeout = 500 ;組合鍵的抓取時間(毫秒) 
pickupexten = *8 ;代接組合鍵 
blindxfer = #2 ;直接轉接(轉接方直接斷線) 
atxfer = *2 ;轉接(轉接後可先與受話方通話)

 重啟Asterisk
 #sudo /usr/sbin/asterisk -r
CLI> core restart now 
顯示設定
CLI>sip show settings 

免費可用的STUN server
stun.xten.com stun.xten.com
stun.fwdnet.net stun.fwdnet.net
stun.fwdnet.net:3478 stun.fwdnet.net:3478
stun.wirlab.net stun.wirlab.net
stun01.sipphone.com stun01.sipphone.com
stun.iptel.org stun.iptel.org
stun.softjoys.com:3478 stun.softjoys.com:3478

stun.counterpath.com 

2012年9月13日 星期四

建linux系統

要用make menuconfig要先有ncurses
#sudo apt-get install libncurses5-dev

http://www.kernel.org/
http://www.busybox.net/downloads/

home目錄下建立;
rootfs
rootfs/etc
rootfs/www

在rootfs/etc目錄下分別建立 
######################/etc/inittab ######################
::sysinit:/etc/rcS
tty1::askfirst:-/bin/sh --login
tty2::askfirst:-/bin/sh --login
tty3::askfirst:-/bin/sh --login




busybox初始化配置 

<id>:<runlevels>:<action>:<process>

其中<id>指進程運行的tty。其內容是/dev下的tty設備或者別名
<runlevels>:busybox 已忽略,只需留空
有效的actions包括: sysinit, respawn, askfirst, wait,once,restart,ctrlaltdel, shutdown.
askfirst和respawn類似,在運行前,先打印一句"Please press Enter to activate this console."
<process>: 指定執行的進程和它的命令行

如果busybox沒有inittab將默認按以下處理:
::sysinit:/etc/init.d/rcS
::askfirst:/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/sbin/swapoff -a
::shutdown:/bin/umount -a -r
::restart:/sbin/init

如果發現/dev/console不是一個串口設備,將執行:
tty2::askfirst:/bin/sh
tty3::askfirst:/bin/sh
tty4::askfirst:/bin/sh

在shell前加一個'-'前綴表示是一個登陸shell,比如:
tty2::askfirst:-/bin/sh
/sbin/getty可以指定選擇某個tty.比如:
tty4::respawn:/sbin/getty 38400 tty5   /*  /sbin/getty 波特率 tty號  */

將串口輸出到終端:
::respawn:/sbin/getty -L ttyS0 9600 vt100
串口輸出到modem:

::respawn:/sbin/getty 57600 ttyS2
######################/etc/profile ######################
#!/bin/sh

cat <<EOF

Welcome to Neo's Linux
EOF
export PATH=/bin:/sbin:/usr/bin:/usr/sbin

######################/etc/protocols ######################
# Internet (IP) protocols
#
ip    0    IP
icmp    1    ICMP
igmp    2    IGMP
ggp    3    GGP   
ipencap    4    IP-ENCAP
st    5    ST
tcp    6    TCP
egp    8    EGP
igp    9    IGP
pup    12    PUP
udp    17    UDP
hmp    20    HMP
xns-idp    22    XNS-IDP
rdp    27    RDP
iso-tp4    29    ISO-TP4
xtp    36    XTP   
ddp    37    DDP   
idpr-cmtp 38    IDPR-CMTP
idrp    45    IDRP
rsvp    46    RSVP
gre    47    GRE   
esp    50    IPSEC-ESP
ah    51    IPSEC-AH
skip    57    SKIP
rspf    73    RSPF CPHB
vmtp    81    VMTP
eigrp    88    EIGRP
ospf    89    OSPFIGP
ax.25    93    AX.25
ipip    94    IPIP
etherip    97    ETHERIP
encap    98    ENCAP
pim    103    PIM   
ipcomp    108    IPCOMP
vrrp    112    VRRP
l2tp    115    L2TP
isis    124    ISIS
sctp    132    SCTP
fc    133    FC

######################/etc/rcS ######################
#!/bin/sh

export PATH=/bin:/sbin:/usr/bin:/usr/sbin
mount -t proc none /proc
mount -t sysfs none /sys
mount -t tmpfs tmpfs /dev -o size=512K,mode=0755
echo NEOHOST > /proc/sys/kernel/hostname

mkdir -p /var/run /var/log /var/lock /var/state \
         /var/tmp /var/mnt /dev/pts /dev/shm
mount devpts /dev/pts -t devpts

echo /bin/mdev > /proc/sys/kernel/hotplug
mdev -s

ifconfig lo 127.0.0.1 up
ifconfig eth0 192.168.1.253 netmask 255.255.255.0 up

telnetd -l /bin/sh
httpd -h /www

###################/etc/services #################





rootfs/www目錄下建立一個index.html 
###################/www/index.html ################# 
<h1>Success!</h1> 
<p>Welcome to Neo's linux!</p>

接著編譯busybox 
 
#make menuconfig

Busybox Settings => Build Options選Build as a static binary
Busybox Settings => Installation Options  選../rootfs
存檔
make
make install 

原本有rootfs/etc,rootfs/www
現在busybox又加了rootfs/bin,rootfs/sbin,rootfs/usr/bin,rootfs/usr/sbin

 補齊剩下的devproctmpvarlibrootsys目錄

接著製作initrd
在home目錄下
#dd if=/dev/zero of=initrd bs=1024 count=8192
#mkfs.ext2 -F initrd

在home目錄下
#mkdir temp_initrd
#sudo mount -o loop initrd temp_initrd
#cp -fR rootfs/*  temp_initrd/
#sudo umount temp_initrd

編譯Linux Kernel
清除前次設定
#make mrproper
清除之前編譯的檔案
#make clean
#make menuconfig
存檔
make
即以下三步 
make vmlinux  <==未經壓縮的核心(放在source根目錄)
make modules  <==僅核心模組(insmod用) 
make bzImage  <==經壓縮過的核心(在arch/xxx/boot/bzimage)
通常把bzImage命名成vmlinuz (bzImage=vmlinuz,用bzip壓縮的kernel,zImagem用gzip壓縮的kernel,vmlinux就是沒有壓縮的kernel)
make module_install <==會幫忙拷貝module到目錄/lib/modules 

交叉編譯
make ARCH=arm CROSS_COMPILE=arm-linux-uclibc-
make ARCH=sh CROSS_COMPILE=sh4-linux-



x86,Kernel是 arch/x86/boot/bzImage
MIPS,Kernelarch/powerpc/boot/bzImage
arm,Kernelarch/arm/boot/bzImage

加載內核
bzImage和initrd拷貝到linux系統的/boot 

#vi /boot/grub/menu.lst  
title My OS
root (hd0,0)
kernel /boot/bzImage rw root=/dev/ram rootfs_size=8M 
initrd /boot/initrd

2012年9月10日 星期一

rTurrent cross compiler

 安裝編譯所需要的依賴包
apt-get install libcurl4-openssl-dev
apt-get install libsigc++-2.0-dev
apt-get install libncurses5-dev


編譯安裝xmlrpc-c
apt-get install subversion
cd /usr/local/src
svn checkout https://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/advanced xmlrpc-c
cd ./xmlrpc-c
./configure
make
sudo make install

編譯安裝libtorrent
wget http://libtorrent.rakshasa.no/downloads/libtorrent-0.13.2.tar.gz
tar -xzvf libtorrent-0.13.2.tar.gz

cd libtorrent-0.13.2/
./configure
make
sudo make install


 編譯安裝rtorrent
wget http://libtorrent.rakshasa.no/downloads/rtorrent-0.9.2.tar.gz
tar -xzvf rtorrent-0.9.2.tar.gz

cd rtorrent-0.9.2
./configure --with-xmlrpc-c libtorrent_CFLAGS="-I/usr/local/include" libtorrent_LIBS="-ltorrent" CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib" LIBS="-lxmlrpc"
make
sudo make install


#-----------------------------------------------------------------------
# ----------------------------------------
# rtorrent 設定檔
# 檔名:.rtorrent.rc  (隱藏檔,前面有點)
# 存放位置:~  (使用者家目錄)
# ----------------------------------------

# 每 torrent 最小/最大連接數
min_peers = 50
max_peers = 200

# 每 torrent 最大上傳數
max_uploads = 2

# 上傳和下載速度限制,設0=無限制.(單位 KiB)
download_rate = 150
upload_rate = 8

# 隨機 port 範圍
# 範例:port_range = 6890-6999
port_range = 19000-19000

# 下載檔名編碼
encoding_list = UTF-8

# 下載檔案存放目錄
directory = /home/neo/bt

# 快取存放目錄
session = /home/neo/bt/session

# torrent 存放目錄 和 排程設定
# 放在此目錄的中的 torrent 會自動加入列表
schedule = watch_directory,5,5,load_start=/home/neo/bt/seeds/*.torrent

# DHT 開關
dht = on

# DHT port (預設為 6881)
dht_port = 19000
#------------------------------------------------------------------------------------




先試$:/usr/bin/pkg-config看有沒有這程式
沒有的話sudo apt-get install pkg-config
等等編譯libtorrent會用到
還有 sudo apt-get install gettext

1:curl-7.23.1.tar.gz
 wget http://curl.haxx.se/download/curl-7.23.1.tar.gz
tar xvf curl-7.23.1.tar.gz
./configure --prefix=/opt/curl7231 --host=sh4-linux 
make
sudo make install

$:/opt/curl7231/curl -L www.google.com 

2:GNU M4
wget http://ftp.gnu.org/gnu/m4/m4-latest.tar.gz 
tar xvf m4-latest.tar.gz
./configure --prefix=/opt/m4 --host=sh4-linux 
 make
sudo make install

 3:libsigc++-2.2.10
sudo cp /opt/m4/bin/m4 /sbin/m4
wget http://ftp.gnome.org/pub/GNOME/sources/libsigc++/2.2/libsigc++-2.2.10.tar.bz2
tar xvf libsigc++-2.2.10.tar.bz2
./configure --prefix=/opt/libsigc++ --host=sh4-linux 
 make
sudo make install
sudo rm /sbin/m4

4:glib2.3
wget http://ftp.acc.umu.se/pub/gnome/sources/glib/2.30/glib-2.30.0.tar.bz2
tar jxvf glib-2.30.0.tar.bz2
./configure --prefix=/opt/glib230 --host=sh4-linux 
 make
sudo make install



 5:libtorrent 
sudo cp /opt/STM/STLinux-2.3/devkit/sh4/target/usr/lib/libstdc++.la /usr/lib
sudo cp /opt/STM/STLinux-2.3/devkit/sh4/target/usr/lib/libstdc++.so /usr/lib

wget  http://libtorrent.rakshasa.no/downloads/libtorrent-0.13.2.tar.gz
tar xvf libtorrent-0.13.2.tar.gz
export PKG_CONFIG_PATH="/opt/libsigc++/lib/pkgconfig:/opt/curl7231/lib/pkgconfig"
./configure --without-PACKAGE --prefix=/opt/libtorrent --disable-openssl
vi Makefile
replace  gcc => sh4-linux-gcc
replace  cpp => sh4-linux-cpp
replace  g++ => sh4-linux-g++
replace  ar => sh4-linux-ar
replace /use/bin/ld => /opt/STM/STLinux-2.3/devkit/sh4/sh4-linux/bin/ld
#-------------------------------------------------------------

apt-get install libcurl4-openssl-dev
apt-get install libsigc++-2.0-dev
編譯安裝libtorrent
wget http://libtorrent.rakshasa.no/downloads/libtorrent-0.12.6.tar.gz
tar -xzvf libtorrent-0.12.2.tar.gz
cd libtorrent-0.12.2/
./configure
make
make install
 

2012年9月9日 星期日

gcc 4.2 build-essential tarball

sudo dpkg -i (deb_name)
#-------------------------------------------------
gcc4.2:

1:gcc-4.2-base (The GNU Compiler Collection)
2:libc6 & libgcc1_4.2  (GNU C Library: Shared libraries & GCC support library )
3:binutils_2.18 (The GNU assembler, linker and binary utilities)
4:cpp-4.2 (The GNU C preprocessor)
5:libgomp1 (GCC OpenMP (GOMP) support library )
6:gcc-4.2_4
7:linux-libc-dev
8:libc6-dev_2.7

#-------------------------------------------------
g++4.2:

9:libstdc++6_4.2 (The GNU Standard C++ Library v3 )
10:libstdc++6-4.2-dev & g++-4.2 (The GNU Standard C++  Development Libraries and Header Files & GNU C++ compiler)

sudo ln -s /usr/bin/gcc-4.2 /usr/bin/gcc
sudo ln -s /usr/bin/g++-4.2 /usr/bin/g++

#-------------------------------------------------
make 3.81:
1:libc6
2:make3.81
#--------------------------------------------------
有時候需要下列檔案
libncurses5_5.6+20071124-1ubuntu2_i386.deb
libncurses5-dev_5.6+20071124-1ubuntu2_i386.deb
libc6-i686_2.7-10ubuntu8.1_i386.deb

sudo dpkg -L gcc-4.2
sudo dpkg -L g++-4.2
sudo dpkg -L make

rp-pppoe & ppp

download rp-pppoe-3.11.tar.gz & ppp-2.4.5.tar.gz
編譯
rp-pppoe:
sudo ./go

ppp-2.4.5
./configure
CC=gcc make
sudo make install
sudo make install-etcppp

拷貝到目的地
rp-pppoe:
copy /usr/sbin
pppoe pppoe-server pppoe-sniff pppoe-relay pppoe-setup pppoe-start pppoe-stop pppoe-status pppoe-connect
to target /usr/sbin

pppd:
copy /usr/local/sbin
pppd chat pppdump pppstats pppoe-discovery
to target /usr/sbin

copy etc.ppp/
options chap-secrets pap-secrets
to target /etc/ppp/

using ppp:
create
/etc/ppp/peers/neo
/etc/ppp/peers/neo-connect-chat

$:sudo pppd call neo


using pppoe client:
$: sudo pppoe-setup
$: sudo pppoe-start

sudo route add default gw 61.59.238.1 irtt ppp0

2012年9月5日 星期三

DirectFB安裝

安裝zlib-1.2.7.tar.gz
安裝libpng-1.5.12.tar.gz
安裝jpegsrc.v6b.tar.gz
安裝Freetype-2.1.3.tar.gz
安裝DirectFB-1.6.1.tar.gz
#--------------
Zlib-1.2.7
CC=sh4-linux-gcc
./configure --prefix=/opt/zlib127 --shared –build=i686
–target=sh4-linux –host=sh4-linux
make
make install
#--------------
libpng1512
cp zlib.h zconf.h到資料夾
CC=sh4-linux-gcc
./configure --prefix=/opt/libpng1512 LDFLAGS="-L/opt/zlib127/lib " LIBS="-lz"
--build=i686 –target=sh4-linux –host=sh4-linux
make
make install
#--------------
libjpeg6b
CC=sh4-linux-gcc
./configure --prefix=/opt/libjpeg6b –enable-static --enable-shared
--build=i686 –target=sh4-linux –host=sh4-linux

make

mkdir /opt/libjpeg6b/include
mkdir /opt/libjpeg6b/lib
mkdir /opt/libjpeg6b/bin
mkdir /opt/libjpeg6b/man
mkdir /opt/libjpeg6b/man1

make install
#-----------------------------
freetype
./configure --prefix=/opt/freetype
make
make install
把/opt/freetype/include/freetype2/freetype拷貝到 /opt/freetype/include/freetype
#-----------------------------
DirectFB16

./configure --prefix=/opt/db16 CFLAGS="-I/opt/zlib127/include -I/opt/libjpeg6b/include" LDFLAGS="-L/opt/zlib127/lib -L/opt/libpng1512/lib -L/opt/freetype/lib -L/opt/libjpeg6b/lib" LIBPNG_LIBS="-lpng -lm" LIBPNG_CFLAGS="-I/opt/libpng1512/include" FREETYPE_LIBS="-lfreetype" FREETYPE_CFLAGS="-I/opt/freetype/include" LIBJPEG="-ljpeg"
--build=i686 –target=sh4-linux –host=sh4-linux

 #-------------------------------
 DirectFB-examples-1.6.0.tar.gz

CC=sh4-linux-gcc

./configure --prefix=$HOME LDFLAGS="-L/opt/db16/lib" DIRECTFB_CFLAGS="-I/opt/db16/include/directfb" DIRECTFB_LIBS="-ldirectfb" 

--build=i686 –target=sh4-linux –host=sh4-linux