2009年9月11日 星期五

How to use GPRS connect to internet (GPRS)

Linux GPRS Howto 的說明比一些 GPRS Module 的application Notes 還清楚

PDP : packet data protocol. 資料封包 (對應的,語音連線送的是聲音封包)。
APN : Access Point Name。

用minicom 來下 command。要注意 屬於 dialout groupe。

下 AT 回應 OK 代表RS232 線連線 OK. (其實有看到 AT 就代表 正常,因為 AT 也 modem echo back )

下 AT+CPIN? 檢查 pin number 是不是有輸入,回 READY 代表正常。
如果不是,用 AT+CPIN=1234 輸入 pin number (1234)

下 AT+CGATT? 檢查是不是已經attach 到 GPRS network 了,回應 1 是OK。
如果是 0,用 AT+CGATT=1 叫 modem attach。

設定PDP 傳送的 profile,modem 可以設很多 pdp profile,方便user 轉換。
AT+CGDCONT=1,"IP","INTERNET"

* 1 : profile 1
* "IP" : PDP type (ip packet, 好像一定要大寫)
* "INTERNET" : APN (每一家電信公司不一樣)

撥號,GPRS Servie 的 number 固定是:
*99***1#
後面的 " 1" 是 PDP profile 號碼。

ATDT*99***1#
播完號,出現 CONNECT,然後就會看到一堆亂碼。

..到這裡,代表 linux 到 gprs modem 端已經OK了。
接下來設定 linux 的撥接動作。

GPRS Modem 是以 ppp 的方式傳送資料,所以要config ppp。

好像大多數網站都說 wvdial,所以也用wvdial,wvdial 是 ppp 的 front-end,用一個 config 檔而已。

修改 /etc/wvdial.conf:


[Dialer Defaults]
Modem = /dev/ttyS0
Baud = 115200
Init = AT+CGDCONT=1,"IP","INTERNET"
Phone = *99***1#
Username = any
Password = any
Dial Command = ATDT
New PPPD = yes

雖然不檢查username, password,但是還是要填值,否則 wvdial 會 complain。
然後..$ sudo wvdial 就會出現..
$ sudo wvdial
--> WvDial: Internet dialer version 1.60
--> Initializing modem.
--> Sending: AT+CGDCONT=1,"IP","INTERNET"
AT+CGDCONT=1,"IP","INTERNET"
OK
--> Modem initialized.
--> Sending: ATDT*99***1#
--> Waiting for carrier.
ATDT*99***1#
CONNECT
~[7f]}#@!}!}$} }<}!}$}&@}#}$@#}%}&}, Carrier detected. Waiting for prompt.
~[7f]}#@!}!}%} }<}!}$}&@}#}$@#}%}&}, PPP negotiation detected.
--> Starting pppd at Tue Apr 28 11:52:35 2009
--> Pid of pppd: 30572
--> Using interface ppp0
--> local IP address 118.231.153.119
--> remote IP address 192.168.254.254
--> primary DNS address 168.95.1.1
--> secondary DNS address 168.95.192.1

回到gnome-ppp主窗口,隨意填寫用戶名和密碼,然後點擊connect... 等待connect成功...可以在"Detail"中查看
連接情況,,或者使用cat /var/log/messages查看...
應該會出現..

pppd 2.4.4 started by root, uid 0
Using interface ppp0
Connect: ppp0 <--> /dev/ttyACM0
PAP authentication succeeded
local IP address 10.71.102.206
remote IP address 10.6.6.6
primary DNS address 211.136.112.50
secondary DNS address 211.136.20.203
的類似信息...

此時運行sudo ifconfig...應該能夠看到ppp0連接.

5.設置適當的route,使得出去的數據包都通過ppp0設備連接...
可以先使用 sudo ifconfig eth0 down將eth0關閉,然後運行
sudo route add default gw xx.xx.xx.xx(ppp0地址)添加默認路由...

6.運行ping www.google.com或者使用firefox測試能夠上網....

2009年6月19日 星期五

Ubuntu 安裝 RAR 解壓縮程式

RAR 是屬於 non-free 的套件, 所以預設 apt 是找不到的.

不修改 /etc/sources.list 就想直接安裝, 最簡單的方法就是到 WinRAR 的官方網站下載 Linux 版本的 unrar 就可以囉~

安裝步驟

1. wget http://www.rarlab.com/rar/rarlinux-3.9.b3.tar.gz

2. tar zxvf rarlinux-3.9.b3.tar.gz

3. cd rar; cp rar /usr/bin; cp unrar /usr/bin

4. 測試: unrar x xxx.rar

2009年6月5日 星期五

ubuntu 安裝 tftp server

1.安裝相關軟件包

apt-get install tftpd tftp xinetd

2.建立配置文件
cd /etc/xinetd.d/
vi tftp
輸入
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
儲存退出

3.建立tftp目錄
sudo mkdir ~/tftpboot

4.重新啟動xinetd
/etc/init.d/xinetd restart

5.測試TFTP Server功能,在/tftpboot 目錄下隨便放個檔案
$tftp x.x.x.x
get 檔案

2009年6月4日 星期四

Ubuntu 8.10 與 9.04 及 10.04 編譯 arm-linux-gcc (Crosstool-0.43)

建立交叉編譯工具鏈的主機環境:OS=Ubuntu 9.04 GCC=4.1 CPU=T7250 RAM=2G
sudo apt-get install bison flex m4 gcc-4.1 build-essential patch libncurses5-dev
mkdir /home/wayne/downloads
mkdir /home/wayne/crosstool-4.1.1
在10.04中需再安裝bison flex

先下載下列檔案,並放到$home/downloads
binutils-2.16.1.tar.bz2
glibc-2.3.2.tar.bz2
glibc-linuxthreads-2.3.2.tar.bz2
gcc-3.3.6.tar.bz2
gcc-4.1.1.tar.bz2
gdb-6.5.tar.bz2

wget http://ftp.gnu.org/gnu/binutils/binutils-2.16.1.tar.bz2
wget http://ftp.gnu.org/gnu/glibc/glibc-2.3.2.tar.bz2
wget http://ftp.gnu.org/gnu/glibc/glibc-linuxthreads-2.3.2.tar.bz2
wget http://ftp.gnu.org/gnu/gcc/gcc-3.3.6/gcc-3.3.6.tar.bz2
wget http://ftp.gnu.org/gnu/gcc/gcc-4.1.1/gcc-4.1.1.tar.bz2
wget http://ftp.gnu.org/gnu/gdb/gdb-6.5.tar.bz2

由於9.04版gcc為4.3.3 編譯用此版本編譯會出錯,所以改用gcc4.1 sudo apt-get install gcc-4.1

然後是
sudo rm /usr/bin/gcc (刪除GCC,它只是個到gcc-4.3.3的軟鏈接文件)
sudo ln -s /usr/bin/gcc-4.1 /usr/bin/gcc (建立GCC到gcc-4.1的連接)

如果運行
ls -la /bin/sh
看到鏈接的是 dash ,則請運行以下命令
sudo dpkg-reconfigure dash
選擇 no 以刪除 dash ,編譯完成可再運行此命令選擇 yes 以重新安裝 dash
此處如果不改好的話,編譯時會出現錯誤

修改 crosstool-0.43 目錄下 demo-arm9tdmi.sh 為
#!/bin/sh
# This script has one line for each known working toolchain
# for this architecture. Uncomment the one you want.
# Generated by generate-demo.pl from buildlogs/all.dats.txt
set -ex
TARBALLS_DIR=$HOME/downloads
RESULT_TOP=/home/wayne/crosstool-4.1.1
export TARBALLS_DIR RESULT_TOP
GCC_LANGUAGES="c,c++"
export GCC_LANGUAGES
# Really, you should do the mkdir before running this,
# and chown /opt/crosstool to yourself so you don't need to run as root.
mkdir -p $RESULT_TOP
#eval `cat arm9tdmi.dat gcc-3.2.3-glibc-2.2.5.dat` sh all.sh --notest


eval `cat arm9tdmi.dat gcc-4.1.1-glibc-2.3.2.dat` sh all.sh --notest
echo Done.

其中紅字部分是需要改變的的
TARBALLS_DIR 是下載的工具原始碼的存放目錄,可事先下載原始碼存放於此(不要解壓)。RESULT_TOP 是要生成的工具鏈的存放目錄,一定要改到有寫權限的目錄,不然無法編譯
修改 crosstool-0.43 目錄下 gcc-4.1.1-glibc-2.3.2.dat 為
BINUTILS_DIR=binutils-2.16.1
GCC_CORE_DIR=gcc-3.3.6
GCC_DIR=gcc-4.1.1
GLIBC_DIR=glibc-2.3.2
LINUX_DIR=linux-2.6.28.10
LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0
GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2
GDB_DIR=gdb-6.5

關於 linux-libc-headers ,引用 Aquarius 的話如下
編譯Glibc必須要有linux內核頭文件。最初人們直接使用內核源碼包中的頭文件(/usr/include目錄 下),後來由於內核開發者強烈反對這種做法,於是出現了linux-libc-headers項目,以為Linux頭文件維護一個穩定版本的API。最近 該項目已經停止發展(該項目提供的最新版本的「純淨的」頭文件版本是2.6.12.0);從2.6.18版本開始,內核開發組負責維護一份統一的、「純淨 的」內核頭文件,獲取編譯glibc所需的頭文件只需要使用命令」make headers_install」即可。

要想瞭解 Crosstool 更多的信息,可以閱讀《crosstool-howto》和《Crosstool variables》
如果不是需要很瞭解 Crosstool ,又想看中文解釋的推薦閱讀 Aquarius 的
Building arm-linux toolchain for ARM/XScale-iWMMXt

以上就是編譯交叉編譯工具所用到的源文件組合,這個組合可以成功編譯,關於那些組合可以成功編譯可以參照http://kegel.com/crosstool/crosstool-0.43/buildlogs/表格。

在終端中進入 crosstool-0.43 目錄執行
sh ./demo-arm9tdmi.sh
若是完成時會出現
+ echo Done.
Done.

註:不要以root用戶登錄進行編譯
等待40分鐘的時間編譯就會完成了,編譯完成後應該在你所設的工作目錄下的 gcc-4.1.1-glibc-2.3.2/arm-4.1.1-linux-gnu/bin 下找到 arm-4.1.1-linux-gnu-gcc

修改環境變量
修改環境變量有多種方法我們介紹兩種
(1)第一種方法:在當前用戶目錄的.bashrc中添加如下內容
$export PATH=$PATH:/home/wayne/crosstool-4.1.1/gcc-4.1.1-glibc-2.3.2/arm-9tdmi-linux-gnu/bin:
(2)第二種方法:或直接修改/home/wayne/.bashrc
cd /home/wayne
vi .bashrc
添加如下內容:
PATH=$PATH:/home/wayne/crosstool-4.1.1/gcc-4.1.1-glibc-2.3.2/arm-9tdmi-linux-gnu/bin:
然後
source .bashrc
執行如下命令
$ arm-9tdmi-linux-gnu-gcc -v -v
顯示
Using built-in specs.
Target: arm-9tdmi-linux-gnu
Configured with: /home/wayne/crosstool-0.43/build/arm-9tdmi-linux-gnu/gcc-4.1.1-glibc-2.3.2/gcc-4.1.1/configure --target=arm-9tdmi-linux-gnu --host=i686-host_pc-linux-gnu --prefix=/home/wayne/crosstool-4.1.1/gcc-4.1.1-glibc-2.3.2/arm-9tdmi-linux-gnu --with-cpu=arm9tdmi --enable-cxx-flags=-mcpu=arm9tdmi --with-headers=/home/wayne/crosstool-4.1.1/gcc-4.1.1-glibc-2.3.2/arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/include --with-local-prefix=/home/wayne/crosstool-4.1.1/gcc-4.1.1-glibc-2.3.2/arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable-languages=c,c++ --enable-shared --enable-c99 --enable-long-long
Thread model: posix
gcc version 4.1.1

恢復我們修改的系統配置:
恢復gcc為4.3
sudo rm /usr/bin/gcc
sudo ln -s /usr/bin/gcc-4.3 /usr/bin/gcc
重新安裝dash
sudo dpkg-reconfigure dash
選擇 yes 以重新安裝 dash

解決Ubuntu內建PCmanX亂碼的問題

內建PCmanX亂碼的問題對很多PTT用戶來說會很重要
因為常用的KKman似乎沒看到Linux版本的安裝檔
Ubunutu也很貼心的幫你內建了PCman這套很多人用的Telnet連線軟體

剛安裝好Ubunutu 9.04首次打開PCman上PTT應該是亂碼一堆(軟體本身不會)
解決方式很簡單,只要修改字型就可以囉!!

PCmanX > 檢視 > 字型 > AR PL Ukai TW

這樣就可以讓中文字正常顯示囉!

2009年6月3日 星期三

使用UNetbootin安裝Linux Live USB(可以用在多個系統)

下載完整Linux ISO檔之後,除了可以燒錄成Live CD之外,也可以寫入USB做成可開機的Ubuntu USB,隨時攜帶使用。

1. 先至UNetbootin官網下載for Windows使用的UNetbootin軟體。

2. 執行unetbootin軟體,選擇作業系統版本、來源ISO檔路徑位置、寫入USB位置。按下確認[OK]。

3.支援的OS有 Ubuntu, Cent OS, Fedora, FreeBSD, openSUSE, NetBSD, Mandriva, Gontoo
與其他,至於版本的話會時常更新。



2009年6月2日 星期二

分享一個下載IELTS考試書籍的網站

在坊間關於ielts考試的書不是太貴就是大陸的簡體書,不過光購買的金額會超過8000元,後來在網路上找到免費下載的網站,也無須註冊

http://artefact.lib.ru/languages/eng_textbooks_ielts.shtml

linux上找到替代merge

在windows上若是需要比對程式碼的話,只有使用merge,但是若在Linux,原始碼那麼的多比對起來眼睛都會看花,不過最近找到了meld可以替代merge,當要比對的目標較複雜或對diff指令不孰的人很合適並且功能更為強大,尤其它還有3個檔案和目錄的比對功能.

個人安裝的版本:meld-1.1.2
License: GPL
URL:http://meld.sourceforge.net/
或是在Ununtu 底下輸入 apt-get install meld,就會自動完成












兩個檔案比對














兩個目錄比對

2009年2月3日 星期二

如何在linux下安裝小紅傘antivir

懶得自己寫了,以下是我轉載的「
「雖然Ubuntu有內建防火墻,不過是命令設定,一般用戶可以再安裝具有友善界面而功能還不錯的防火墻firestarter,套件庫有得下載哦!為了電腦安全與個人私隱、人權等,防火墻是應該安裝的。
防毒軟件呢?目前看來病毒還不多,但是呢?還是有無聊人製作Linux病毒的。除非你不連接網絡,為了自己和別人(可能感染病毒機會目前不算大,但難免會把病毒送給windows朋友吧?),個人覺得應該安裝。星期或者每月掃瞄一次(如果沒有啟動即時掃瞄功能)。
一般而言,Linux病毒防護的即時掃瞄功能是需要Dazuko的,如果要執行On-Scan,得先安裝Dazuko套件。按以下方法與步驟我是成功安裝在Ubuntu6.06、6.10、7.04……
Linux防毒軟件不少,基本各大小牌子都有Linux版本,如免費個人用的有f-prot(沒有即時掃瞄)、Panda(收費版好像不需要辛苦安裝Dazuko,免費版不清楚。)、Avast等。
儘量選擇靈敏的、可以更新代碼的,和 適合Ubuntu的。末學使用的是AntiVir for Linux免費版本……
(一)Dazuko的安裝:
請先安裝以下套件,和所有衍生套件(所需的相關套件)。
Module-Assistant
debhelper
sun-java6-jre   (或最高版本,用作啟動AntiVir防毒軟件界面GUI。)
build-essential
dazuko(到 www.dazuko.org/tgen.shtml#DEBIAN 下載最新deb套件)
安裝完成後終端機執行:
sudo module-assistant prepare
sudo m-a a-i dazuko
sudo gedit /etc/modprobe.d/dazuko
打上:
install dazuko /sbin/modprobe -r capability;\
/sbin/modprobe --ignore-install dazuko; \
/sbin/modprobe --ignore-install capability
保存
sudo gedit /etc/modules
最後一行空行加上:
dazuko
保存
重啟系統宣告完成   (Ubuntu6.10以後版本不重啟也行)
注意:每回kernel陞級完成後須要重新執行:
sudo m-a a-i dazuko
Dazuko安裝好後,我們可以安裝和執行大多數防毒軟件的on-scan即時保護了。
以下正式安裝Avira Antivir(http://www.free-av.com)防毒軟件:
(二)下載AntiVir(for Linux)版本:
http://free-av.com/personal/en/unix/antivir-workstation-pers.tar.gz
http://dl.antivir.de/tmp/antivir-workstation-pers.tar.gz
解壓候:
sudo ./install
根據提示完成安裝即可,下遍是大概:
Do you agree to the license terms? [n] y
其中會要你Enter the path to your key file:
在剛才解壓的antivir包找到hbedv.key直接按住拖進來終端機就可以了(須要去掉開關引號「」)。
Would you like to install the internet update daemon? [n] y
Would you like to create a link in /usr/sbin for avupdater ? [y] y
Would you like the internet update daemon to start automatically? [y] y
How should AvGuard be installed? [n] k    <<<---注意這裡是選「K」
Would you like to create a link in /usr/sbin for avguard ? [y] y
Would you like AvGuard to start automatically? [y] y
Would you like to install the GUI (+ SMC support)? [y] y
Would you like to configure the AntiVir updater now? [y] y
Would you like email notification about updates? [n] y 這個可以根據個人喜好
What email address will receive notifications? [] my菩提@菩提.com.my 這個可以根據個人喜好
Would you like the updater to log to a custom file? [y] y
What will be the log file name with absolute path (it must begin with '/') ? [/var/log/avupdater.log]
How often should AntiVir check for updates? [2] 2
Does this machine use an HTTP proxy server? [n] n 有沒有用代理?
Save configuration settings? [y] y
Would you like to apply the new configuration? [y] y
經過上面設定,antivir是自動更新的。
注意哦!默認下,您和root都不能使用AntiVir。您須要在系統>系統管理>使用者及群組>群組>antivir>屬性>群組成員加入root和您的用戶名。
需要界面Gui,終端機執行:
sudo antivir-gui
Antivir 幫助 antivir -help
要掃瞄某個欓案或目錄可以根據自己需要如:
sudo antivir 各種指令 /目錄欓案
sudo antivir --allfiles -s -z -v /home ( -s -z 是必需的,那才能掃瞄目錄下所有欓案 其他指令慢慢研究。)
sudo antivir --allfiles -s -z -v --with-alltypes /home
忘了說,我們既然安裝了dazuko就是要使用實時掃瞄對吧?
那,默忍下,實時掃瞄不做什麼,只記錄有問題的欓案在 /var/log/avguard.log
因此我們應該自己設定:
在Gui(sudo antivir-gui)下,expertmode打勾
-Guard
|--search > (添加或排除需要掃瞄的路徑 默認 /home 是必需的。)
   |--Action > Repair 打勾(不打也行)
                  Move to directory > 自己創建一個文件夾如myGuard   (即時掃瞄發現病毒就送來這裡)
   |--Heuristic>MacrovirusHeuristic 打勾
   |--Heuristic>Detection level high
   |--Extended threat categoties > select all (Adware/spyware 付費版才能)
OK save
在Opera 下,下載這病毒包的過程中( http://clock.myweb.hinet.net/atozvirus.rar ) ,AntiVir已經默默送去myGuard文件夾,並把欓案類型修改。所以啊,這個myGuard文件夾權限最好也調高一下,設為所有人不能執行的文件夾。
同時可以看見log file /var/log/avguard.log 記錄:
2007-03-28 06:28:31 hansheng-系統[5015]: AVGU: ALERT AntiVir ALERT:[TR.Rob-B] /home/hansheng/Desktop/atozvirus.rar <<< Containssignature of the TR.Rob-B virus
2007-03-28 06:28:33 hansheng-系統 antivir[5015]: AVGU: INFO Theconcerning file has been moved from/home/hansheng/Desktop/atozvirus.rar to/home/hansheng/hansheng/AntiVir/135A3A99.61A.
就是說atozvirus.rar已經被更名為135A3A99.61A並移到myGuard。
完成。祝使用Ubuntu Linux愉快。」

Avira AntiVir Personal

2009年1月1日 星期四

Icescream 它是一個分散式的 compiler 架構…

Icescream 它是一個分散式的 compiler 架構…

可以藉由同個網域下的cpu資源~來減少編譯程式的時間!

在Debian 和 Ubuntu 下相當好安裝… 只要
$sudo aptitude install icecc icecc-monitor
然後
$export PATH=/usr/lib/icecc/bin:$PATH
就好了

在同一個網域下,把一台機器設成 scheduler (一台就好)
sudo vim /etc/default/icecc
# Defaults for icecc initscript
# sourced by /etc/init.d/icecc
START_ICECC="true"
START_ICECC_SCHEDULER="true"

把紅色的地方 false 改成 true
sudo /etc/init.d/icecc restart
就搞定了…


編譯的時間會隨著電腦的多寡來增快~

 Ubuntu has a mechanism, that is, the installed network card (NIC) will be renamed to another name when the system is booted. Although there...