1. sudo apt-get upgrade skypeforlinux (if upgrade only)
2. sudo apt-get install skypeforlinux
3. curl https://repo.skype.com/data/SKYPE-GPG-KEY | sudo apt-key add -
4. echo "deb [arch=amd64] https://repo.skype.com/deb stable main" | sudo tee /etc/apt/sources.list.d/skype-stable.list
5. sudo apt-get update
6. sudo apt install skypeforlinux
12.14.2023
12.01.2023
How to install or upgrade Mozilla FirwFox via Linux ubuntu OS??
1. sudo apt purge firefox
2. sudo rm -Rf /etc/firefox/
3. sudo rm -Rf /usr/lib/firefox*
4. sudo apt install firefox
2. sudo rm -Rf /etc/firefox/
3. sudo rm -Rf /usr/lib/firefox*
4. sudo apt install firefox
11.28.2023
How to upgrade Microsoft Edge via Linux ubuntu OS??
1. sudo apt remove microsoft-edge-dev
2. udo apt purge microsoft-edge-dev
3. curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor 1> microsoft.gpg
4. sudo install -o root -g root -m 644 microsoft.gpg /etc/apt/trusted.gpg.d/
5. sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/edge stable main" 1> /etc/apt/sources.list.d/microsoft-edge-dev.list'
6. sudo rm -vf microsoft.gpg
7. sudo apt update && sudo apt install microsoft-edge-stable (Only this line if upgrade!!)
2. udo apt purge microsoft-edge-dev
3. curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor 1> microsoft.gpg
4. sudo install -o root -g root -m 644 microsoft.gpg /etc/apt/trusted.gpg.d/
5. sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/edge stable main" 1> /etc/apt/sources.list.d/microsoft-edge-dev.list'
6. sudo rm -vf microsoft.gpg
7. sudo apt update && sudo apt install microsoft-edge-stable (Only this line if upgrade!!)
11.27.2023
How to upgrade Google Chrome via Linux ubuntu OS??
1. wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
2. sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" 1>> /etc/apt/sources.list.d/google-chrome.list'
3. sudo apt-get install google-chrome-beta
4. sudo apt-get --only-upgrade install google-chrome-stable (Only this line if upgrade!!)
5. sudo apt-get remove google-chrome-stable
6. wget -c https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
7. sudo dpkg -i google-chrome-stable_current_amd64.deb
2. sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" 1>> /etc/apt/sources.list.d/google-chrome.list'
3. sudo apt-get install google-chrome-beta
4. sudo apt-get --only-upgrade install google-chrome-stable (Only this line if upgrade!!)
5. sudo apt-get remove google-chrome-stable
6. wget -c https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
7. sudo dpkg -i google-chrome-stable_current_amd64.deb
11.07.2021
Google Chrome檢查更新時發生錯誤;錯誤代碼7:0x80040902: 50 - System Level
Google Chrome Updater:
檢查更新時發生錯誤:安裝程式無法解壓縮封存檔案,請再次下載Google Chrome。 (錯誤代碼7:0x80040902: 50 - System Level)
解決方案:
在Windows上以系統管理員身分執行命令提示字元;接著依序輸入:
抄襲來源:
https://www.trishtech.com/2017/08/fixing-chrome-update-error-code-0x80040902/
檢查更新時發生錯誤:安裝程式無法解壓縮封存檔案,請再次下載Google Chrome。 (錯誤代碼7:0x80040902: 50 - System Level)
解決方案:
在Windows上以系統管理員身分執行命令提示字元;接著依序輸入:
- taskkill /im chrome.exe /f
- taskkill /im googleupdate.exe /f
- taskkill /im google*.exe /fi “STATUS eq RUNNING” /f
- taskkill /im google*.exe /fi “STATUS eq UNKNOWN” /f
- taskkill /im google*.exe /fi “STATUS eq NOT RESPONDING” /f
抄襲來源:
https://www.trishtech.com/2017/08/fixing-chrome-update-error-code-0x80040902/
8.15.2020
如何讓瀏灠器預設以隱私模式開啟?
- Microsoft Chromium Edge, InPrivate瀏灠 (Ctrl + Shift + N)
- Mozilla FireFox, 隱私視窗 (Ctrl + Shift + P)
- Google Chrome, 無痕模式 (Ctrl + Shift + N)
- Opera Software, 私密瀏覽模式 (Ctrl + Shift + N)
- "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" -inprivate
- "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" -private
- "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --incognito
- C:\Users\picasso_gan\AppData\Local\Programs\Opera\launcher.exe -private
-
Microsoft Internet Explorer:
C:\Users\(Your ID)\AppData\Local\Microsoft\Windows\Caches\* - Microsoft Chromium Edge:
C:\Users\(Your ID)\AppData\Local\Microsoft\Edge\User Data\Default\Cache\* -
Mozilla FireFox:
C:\Users\(Your ID)\AppData\Local\Mozilla\Firefox\Profiles\(非固定亂碼).default-release\cache2\* -
Google Chrome:
C:\Users\(Your ID)\AppData\Local\Google\Chrome\User Data\Default\Cache\* -
Opera Software:
C:\Users\(Your ID)\AppData\Local\Opera Software\Opera Stable\Cache\*
9.30.2015
如何正確地找出及設定GPIO??
今天傍晚在查看自己的筆記本的時候,不小心看到我在前東家的工作心得;現在看來很簡單,但想當年可是苦惱自己好一段時間,想說就把它記下來好了!!
1. 先研讀Data Shit找出可用的GPIO;
2. 再看電路圖,檢查 / 核對HW用了哪些I/O;
3. 前2者比對之後,找出HW沒在用的I/O;
4. 接著,由SW來控制:
IN: 由HW設計,從SW讀取GPIO的High / Low;
OUT: 由SW設計,再用電表去量取I/O。
至於GPIO的IN/OUT該如何設定??
若該GPIO的Pin腳會接收來自HW的輸入,則要設成"IN";若是要讀取對這根Pin腳所設定的輸出,則是設定成"OUT"。
1. 先研讀Data Shit找出可用的GPIO;
2. 再看電路圖,檢查 / 核對HW用了哪些I/O;
3. 前2者比對之後,找出HW沒在用的I/O;
4. 接著,由SW來控制:
IN: 由HW設計,從SW讀取GPIO的High / Low;
OUT: 由SW設計,再用電表去量取I/O。
至於GPIO的IN/OUT該如何設定??
若該GPIO的Pin腳會接收來自HW的輸入,則要設成"IN";若是要讀取對這根Pin腳所設定的輸出,則是設定成"OUT"。
5.05.2014
哀鳳小技巧
無意上網找到的....覺得這個技巧還蠻特別的,所以就記了下來!!
哀鳳的左上角都會顯示手機的訊號強度,現在要把這個訊號強度用數字來表示;步驟如下:
1. 打開哀鳳的鍵盤撥號,且輸入「*3001#12345#*」,然後按下撥號:
2. 撥號完之後,就會看到Field Test程式開啟:
3. Field Test程式開啟的同時,左上角的訊號強度條會變成以負號顯示的數值 (單位為dBm);但只要一離開Field Test程式,又會變回原本的強度條。
4. 在iOS7.x.x,在Field Test程式畫面中,同時按下Power鍵和Home鍵,直到手機關機為止。
5. 再重新啟動手機,會發現左上角的訊號強度條,已經變成數值了;點選那個數值,就可以切換回訊號強度條!!
哀鳳的左上角都會顯示手機的訊號強度,現在要把這個訊號強度用數字來表示;步驟如下:
1. 打開哀鳳的鍵盤撥號,且輸入「*3001#12345#*」,然後按下撥號:
2. 撥號完之後,就會看到Field Test程式開啟:
3. Field Test程式開啟的同時,左上角的訊號強度條會變成以負號顯示的數值 (單位為dBm);但只要一離開Field Test程式,又會變回原本的強度條。
4. 在iOS7.x.x,在Field Test程式畫面中,同時按下Power鍵和Home鍵,直到手機關機為止。
5. 再重新啟動手機,會發現左上角的訊號強度條,已經變成數值了;點選那個數值,就可以切換回訊號強度條!!
9.19.2013
如何在Windows開機時自動執行某支程式??
其實,會有這個需求,是因為自己要讓電腦開機時,自動執行Process Explorer這支程式;之前還在用Windows XP時還知道怎麼用,但最近重新安裝成Windows 7時,就找不到應該放在那裡了。所以,只好再整理一次,註記下來:
Windows XP:
C:\Documents and Settings\(使用者帳號)\「開始」功能表\程式集\啟動\
Windows 7:
C:\Users\(使用者帳號)\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\
還有另一種方式,是透過regedit來達成:
1. 在「開始」功能表,選擇「執行」,並輸入regedit。
2. 直接找到這一段:HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Run
3. 在最後的「Run」上面,按滑鼠右鍵,選擇「新增 (N)」→「字串值 (S)」;取一個跟自己想要執行的程式有相關性的名稱。
4. 在剛剛新增的那一筆資料上,按滑鼠左鍵兩下,在下面的「數值資料 (V)」的欄位中,把你想要開機自動執行的程式 (或軟體)的絕對路徑輸入進去,如:C:\KeilC\autorun.exe。
5. 輸入完成之後,重新啟動Windows就會自動執行了!!
Windows XP:
C:\Documents and Settings\(使用者帳號)\「開始」功能表\程式集\啟動\
Windows 7:
C:\Users\(使用者帳號)\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\
還有另一種方式,是透過regedit來達成:
1. 在「開始」功能表,選擇「執行」,並輸入regedit。
2. 直接找到這一段:HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Run
3. 在最後的「Run」上面,按滑鼠右鍵,選擇「新增 (N)」→「字串值 (S)」;取一個跟自己想要執行的程式有相關性的名稱。
4. 在剛剛新增的那一筆資料上,按滑鼠左鍵兩下,在下面的「數值資料 (V)」的欄位中,把你想要開機自動執行的程式 (或軟體)的絕對路徑輸入進去,如:C:\KeilC\autorun.exe。
5. 輸入完成之後,重新啟動Windows就會自動執行了!!
7.29.2013
What is the location of the directory of C header files that match your running kernel?
因為工作上的需求,必須在VMware上安裝Fedora Core 9的開發環境;安裝完之後,準備要安裝VMware Tools時,在過程中突然冒出一句:「What is the location of the directory of C header files that match your running kernel?」,如下圖:
原本自己的認知是─反正安裝VMware Tools就是一直用Default Settings,然後一直按下Enter就對了。而且,在建立Guest OS時,「Select a Guest Operating System」的Version選項,自己也確定是選擇「Other Linux 2.6.x kernel」。怎麼會有問題呢?? 於是就趕緊Google一下,原來還需要安裝Kernel-Devel的套件。那關於這個套件,該安裝那一個版本,我們可以輸入:uname -r來做查詢:如下圖:
查詢完之後,我所需要的版本是:kernel-devel-2.6.25-14.fc9.i686.rpm,Google一下,就可以找到該套件的下載點。
下載完成安裝之後,就可以順利地安裝VMware Tools了!!
原本自己的認知是─反正安裝VMware Tools就是一直用Default Settings,然後一直按下Enter就對了。而且,在建立Guest OS時,「Select a Guest Operating System」的Version選項,自己也確定是選擇「Other Linux 2.6.x kernel」。怎麼會有問題呢?? 於是就趕緊Google一下,原來還需要安裝Kernel-Devel的套件。那關於這個套件,該安裝那一個版本,我們可以輸入:uname -r來做查詢:如下圖:
查詢完之後,我所需要的版本是:kernel-devel-2.6.25-14.fc9.i686.rpm,Google一下,就可以找到該套件的下載點。
下載完成安裝之後,就可以順利地安裝VMware Tools了!!
7.28.2013
如何在Google Blogger展現程式碼??
有時後在自己的Blogger上,註記自己在工作遇到的問題和解決方案,常常會用到張貼各式各樣的程式碼;每次看別人的Blog的源代碼都弄得漂漂亮亮,怎麼自己的好像殘破不勘??
於是也Google一下,看看有沒有適用於Google Blogger的解決方案;沒想到還真是不少人都有在分享,所以也把這些步驟給記了下來!!
首先,在進入Blogger的後台之後,點選左邊樹狀選單的「範本」,然後在「網誌即時狀態」的右下角,有一個「編輯HTML」,點選它,如下圖:
進入到網誌範本的HTML程式碼編輯區之後,請以「</head>」做搜尋;然後把以下的程式碼,加入到</head>的前面:
其中,程式碼背景的URL部份,可以用http://klcintw.images.googlepages.com/Code_BG.gif,也可用https://sites.google.com/site/fly2sky999/Code_BG.gif。
最後,用「body」當關鍵字做搜尋,把以下的程式碼也加進去:
<pre class="code prettyprint">
// 你要呈現的程式碼!!
</pre>
就會有如同本篇文章展現程式碼部份的效果了!! 不過,有一點要注意到,若是有大於 (>)或是小於 (<)的符號,請記得先轉譯成>和<。
或者使用一些HTML Encode的輔助軟體 (或網頁)。
於是也Google一下,看看有沒有適用於Google Blogger的解決方案;沒想到還真是不少人都有在分享,所以也把這些步驟給記了下來!!
首先,在進入Blogger的後台之後,點選左邊樹狀選單的「範本」,然後在「網誌即時狀態」的右下角,有一個「編輯HTML」,點選它,如下圖:
進入到網誌範本的HTML程式碼編輯區之後,請以「</head>」做搜尋;然後把以下的程式碼,加入到</head>的前面:
<link href='http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.css' rel='stylesheet' type='text/css'/> <script src='http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.js' type='text/javascript'></script>接著,在程式碼中,再以關鍵字「/* Posts」做搜尋;找到之後,把以下的程式碼加進去:
.post .code {
display: block; /* fixes a strange ie margin bug */
font-family: Courier New;
font-size: 10pt;
overflow:auto;
background: #f0f0f0 url(http://klcintw.images.googlepages.com/Code_BG.gif) left top repeat-y;
border: 1px solid #ccc;
padding: 10px 10px 10px 21px;
max-height:2500px;
line-height: 1.2em;
}
其中,程式碼背景的URL部份,可以用http://klcintw.images.googlepages.com/Code_BG.gif,也可用https://sites.google.com/site/fly2sky999/Code_BG.gif。
最後,用「body」當關鍵字做搜尋,把以下的程式碼也加進去:
<body OnLoad='prettyPrint(); 'expr:class='"loading" + data:blog.mobileClass'>然後就可以點選上方的儲存範本。爾後,只要在你所想要呈現的程式碼中,用以下的標籤包覆起來:
<pre class="code prettyprint">
// 你要呈現的程式碼!!
</pre>
就會有如同本篇文章展現程式碼部份的效果了!! 不過,有一點要注意到,若是有大於 (>)或是小於 (<)的符號,請記得先轉譯成>和<。
或者使用一些HTML Encode的輔助軟體 (或網頁)。
11.21.2012
註冊Windows XP的*.DLL檔....
1. 開啟Windows XP的命令提示字元。
2. 在命令提示字元中輸入以下一行的指令:
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1
輸入完成之後,即可重新註冊Windows XP所有的*.DLL檔了!!
2. 在命令提示字元中輸入以下一行的指令:
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1
輸入完成之後,即可重新註冊Windows XP所有的*.DLL檔了!!
6.15.2012
如何透過TeamViewer傳送Alt複合鍵指令 (How to send "Alt" combine key via TeamViewer)??
其實這一篇How To文章的誕生,是由於自己遊戲上的需求。
台灣長青的線上遊戲─天堂 (Lineage),有一個知名的自動練功兼輔助程式─LineH;不過呢,這個LineH在最近一次改版之後,自己無論如何怎麼設定,都沒有辦法讓它自動上線練功。
於是乎,自己就異想天開地把家裡的電腦啟動TeamViewer的功能,然後再從公司的電腦透過TeamViewer連回到家中;手動執行上線後,再開啟自動練功程式LineH。
進入天堂的遊戲之後,再啟動LineH的方式為Alt + i;首先,在透過TeamViewer建立連線時,在功能表列「動作」,把傳送按鍵組合的選項打勾 (如下圖):

但是呢,透過TeamViewer做遠端連線時,Alt開頭的複合鍵指令會失敗;但是Ctrl開頭的指令卻可以成功,如Ctrl + A、Ctrl + Q、Ctrl + S等等。
那到底該如何讓Alt + i指令成功地透過TeamViewer送出?? 答案是:Alt + Windows鍵 + i!!....^^ 自己試了好多次才試出來!!
TeamViewer台灣官方網站:http://www.teamviewer.com/zhTW/index.aspx
台灣長青的線上遊戲─天堂 (Lineage),有一個知名的自動練功兼輔助程式─LineH;不過呢,這個LineH在最近一次改版之後,自己無論如何怎麼設定,都沒有辦法讓它自動上線練功。
於是乎,自己就異想天開地把家裡的電腦啟動TeamViewer的功能,然後再從公司的電腦透過TeamViewer連回到家中;手動執行上線後,再開啟自動練功程式LineH。
進入天堂的遊戲之後,再啟動LineH的方式為Alt + i;首先,在透過TeamViewer建立連線時,在功能表列「動作」,把傳送按鍵組合的選項打勾 (如下圖):
但是呢,透過TeamViewer做遠端連線時,Alt開頭的複合鍵指令會失敗;但是Ctrl開頭的指令卻可以成功,如Ctrl + A、Ctrl + Q、Ctrl + S等等。
那到底該如何讓Alt + i指令成功地透過TeamViewer送出?? 答案是:Alt + Windows鍵 + i!!....^^ 自己試了好多次才試出來!!
TeamViewer台灣官方網站:http://www.teamviewer.com/zhTW/index.aspx
4.25.2012
[轉貼][分享]BT使用設定教學
BT分享是現今網路上很流行的一套P2P分享協定,較知名的有BitComet (比特慧星)或者是uTorrent。
但BitComet的功能非常強大,要設定成符合自己電腦的環境和網路的連線速度,並不容易。
所以,前一陣子在網路上搜尋時,剛好找到別人已寫好的設定教學,就把它偷偷地記下來:
BT使用設定教學 (第一章 設定篇) BT使用設定教學 (第二章 下載篇)
BT使用設定教學 (第三章 製種篇) BT使用設定教學 (第四章 心得篇)
但BitComet的功能非常強大,要設定成符合自己電腦的環境和網路的連線速度,並不容易。
所以,前一陣子在網路上搜尋時,剛好找到別人已寫好的設定教學,就把它偷偷地記下來:
BT使用設定教學 (第一章 設定篇) BT使用設定教學 (第二章 下載篇)
BT使用設定教學 (第三章 製種篇) BT使用設定教學 (第四章 心得篇)
11.17.2011
How to install Google Chrome browser on the Red Hat Enterprise Linux 6 (RHEL6) system??
這一次的主題,是要介紹如何在Red Hat Enterprise Linux 6 (RHEL6)下,安裝Google Chrome瀏灠器。
假如我們在RHEL6安裝軟體 (或套件),我們會很習慣地點選上方功能表列的「系統」->「管理」->「新增 / 移除軟體」(如下圖):

然後輸入關鍵字"Google / google",會發現Red Hat所提供的Repository (儲存庫),並沒有任何一樣是跟Google的產品有關 (如下圖)。

這時候,我們就不能夠用Red Hat的儲存庫,我們要改用Google所提供的儲存庫來做安裝。所以,我們必須編輯儲存庫檔 (/etc/yum.repos.d/*.repo)。
cd /etc/yum.repos.d/; ls -l
touch ./google.repo; chmod 755 ./google.repo; ls -l ./google.repo
然後,我們要編輯google.repo這個檔案;如果,所要安裝的系統是32位元的,要輸入以下的內容:
[google]
name=Google - i386
baseurl=http://dl.google.com/linux/rpm/stable/i386
enabled=1
gpgcheck=0
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub

而64位元的系統則是輸入以下的資料:
[google64]
name=Google - x86_64
baseurl=http://dl.google.com/linux/rpm/stable/x86_64
enabled=1
gpgcheck=0
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub
其中的gpgcheck (Check GPG)是否要檢查,可依個人喜好來決定;自己是沒有在檢查的,所以填0;要檢查的話gpgcheck的值要改成1,且gpgkey的位址也要輸入。
編輯完google.repo之後,我們就可以開始安裝了!!
yum install google-chrome-stable (註)


安裝完成之後,我們再點選功能表列的「應用程式」->「網際網路」,會發現Google Chrome已在選單上了 (如下圖)!!


PS:安裝時,除了google-chrome-stable (穩定版)這個版本之外,尚有google-chrome-beta (測試版)和google-chrome-unstable (不穩定版)可供安裝!!
參考資料:http://mingstert.blogspot.com/2011/05/install-google-chrome-on-rhel.html
假如我們在RHEL6安裝軟體 (或套件),我們會很習慣地點選上方功能表列的「系統」->「管理」->「新增 / 移除軟體」(如下圖):

然後輸入關鍵字"Google / google",會發現Red Hat所提供的Repository (儲存庫),並沒有任何一樣是跟Google的產品有關 (如下圖)。

這時候,我們就不能夠用Red Hat的儲存庫,我們要改用Google所提供的儲存庫來做安裝。所以,我們必須編輯儲存庫檔 (/etc/yum.repos.d/*.repo)。
cd /etc/yum.repos.d/; ls -l
touch ./google.repo; chmod 755 ./google.repo; ls -l ./google.repo
然後,我們要編輯google.repo這個檔案;如果,所要安裝的系統是32位元的,要輸入以下的內容:
[google]
name=Google - i386
baseurl=http://dl.google.com/linux/rpm/stable/i386
enabled=1
gpgcheck=0
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub

而64位元的系統則是輸入以下的資料:
[google64]
name=Google - x86_64
baseurl=http://dl.google.com/linux/rpm/stable/x86_64
enabled=1
gpgcheck=0
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub
其中的gpgcheck (Check GPG)是否要檢查,可依個人喜好來決定;自己是沒有在檢查的,所以填0;要檢查的話gpgcheck的值要改成1,且gpgkey的位址也要輸入。
編輯完google.repo之後,我們就可以開始安裝了!!
yum install google-chrome-stable (註)


安裝完成之後,我們再點選功能表列的「應用程式」->「網際網路」,會發現Google Chrome已在選單上了 (如下圖)!!


PS:安裝時,除了google-chrome-stable (穩定版)這個版本之外,尚有google-chrome-beta (測試版)和google-chrome-unstable (不穩定版)可供安裝!!
參考資料:http://mingstert.blogspot.com/2011/05/install-google-chrome-on-rhel.html
6.22.2010
如何安裝VMware Tools??
這一次,要介紹的是─如何安裝VMware Tools。基本上這裡的Guest OS (就是指安裝在VMware裡的那個OS)是以UNIS like system為主;因為MS-Windows的比較簡單,就是標準的「傻瓜安裝法」─「執行」→「NEXT」→「NEXT」→....→「Finish」,如此就安裝完成了!!但是Linux的OS就比較麻煩一點....
自己的執行環境如下:
VMware Workstation: 6. 5. 2. build-156735
Host OS: Microsoft Windows XP (Service Pack 3)
Guest OS: Linux Red Hat 9
當在VMware裡執行了OS之後,請選擇VMware軟體的功能表列「虛擬電腦 (M)」>「Install VMwareTools...」

然後就會發現,Guest OS裡已自動掛載了CD-ROM光碟機,把光碟機裡的*.rpm及*.tar.gz這兩個檔案拷貝到自己的家目錄下:

先把*.tar.gz檔把它解壓縮,解壓縮完之後會產生一個資料夾;然後緊接著執行*.rpm檔:

*.rpm檔在執行的過程中會花費少許的時間。執行完之後,再進入到剛剛解壓縮出來的資料夾,執行唯一的*.pl檔:

在執行的過程中,會詢問許多問題,只要一直按「Enter」就行了─以VMware Tools的預設值即可!!



到最後,這個畫面,是詢問要設定的Guest OS的螢幕解析度,可以設定的跟Host OS一樣,像自己的是1440 * 900。

然後,就安裝完成了!!

安裝完成後,讓Guest OS重新啟動;啟動完畢後,會發現螢幕解析度變了、也可以存取Host OS的資料夾,如下圖:

其實,在Google上也是可以搜尋到許多關於如何安裝VMware Tools的文章;原本自己在寫這一篇時,想要來一點比較特別的介紹─想把每個問題都翻成中文解釋一下,這個動作的目的是什麼;後來發現光是翻譯就要花上不少時間,再加上安裝的過程中也還算簡單 (就一直採用預設值按Enter就對了),所以就因此作罷,草草地結束這一篇文章!!
參考資料:http://apt.nc.hcc.edu.tw/docs/debian_X/09_VMwareTools/VMwareTools.htm
自己的執行環境如下:
VMware Workstation: 6. 5. 2. build-156735
Host OS: Microsoft Windows XP (Service Pack 3)
Guest OS: Linux Red Hat 9
當在VMware裡執行了OS之後,請選擇VMware軟體的功能表列「虛擬電腦 (M)」>「Install VMwareTools...」

然後就會發現,Guest OS裡已自動掛載了CD-ROM光碟機,把光碟機裡的*.rpm及*.tar.gz這兩個檔案拷貝到自己的家目錄下:

先把*.tar.gz檔把它解壓縮,解壓縮完之後會產生一個資料夾;然後緊接著執行*.rpm檔:

*.rpm檔在執行的過程中會花費少許的時間。執行完之後,再進入到剛剛解壓縮出來的資料夾,執行唯一的*.pl檔:

在執行的過程中,會詢問許多問題,只要一直按「Enter」就行了─以VMware Tools的預設值即可!!



到最後,這個畫面,是詢問要設定的Guest OS的螢幕解析度,可以設定的跟Host OS一樣,像自己的是1440 * 900。

然後,就安裝完成了!!

安裝完成後,讓Guest OS重新啟動;啟動完畢後,會發現螢幕解析度變了、也可以存取Host OS的資料夾,如下圖:

其實,在Google上也是可以搜尋到許多關於如何安裝VMware Tools的文章;原本自己在寫這一篇時,想要來一點比較特別的介紹─想把每個問題都翻成中文解釋一下,這個動作的目的是什麼;後來發現光是翻譯就要花上不少時間,再加上安裝的過程中也還算簡單 (就一直採用預設值按Enter就對了),所以就因此作罷,草草地結束這一篇文章!!
參考資料:http://apt.nc.hcc.edu.tw/docs/debian_X/09_VMwareTools/VMwareTools.htm
5.19.2010
如何使用gcc??
簡介:
GCC是由GNU出的C語言編譯器 (Compiler),可將由ANSI C或Traditional C語言寫成的程式碼編譯成可執行檔 (Executable File)。由於GCC能分別編譯出可執行於許多不同硬體、作業系統下的程式,在UNIX like system上是相當多人常用的C語言編譯程式。
使用方法簡介:
基本的使用方法及常用指令:
前言:
編譯器在編譯過程中,先將程式碼編譯成object檔,然後再和程式庫聯結,成為可執行檔。故一個編譯器須提供的參數主要有幾類:
1. 指定編譯器編出的object檔或是可執行檔檔名。
2. 在編譯過程做最佳化,可提升程式的執行速度。
3. 設定搜尋程式庫的標頭檔 (Header File)及程式庫檔的目錄及指定程式庫檔檔名。
4. 提供進一步的資訊以便使用者找尋程式中的錯誤。
以下便以這四個大類分別介紹。
注意:下面在不同類別中所介紹的參數,幾乎都可以混合著使用。
1. 設定編譯出的object檔檔名或是可執行檔檔名:
參數:-o (被輸出的檔名)
說明:指定編譯出的檔名。
範例:本例將程式碼Main.c編譯成可執行檔,並設定檔名為Main。
gcc Main.c -o Main
2. 在編譯過程做最佳化
參數:-O
說明:在編譯過程做最佳化,以提升增快程式執行速度。
範例:本例將程式碼Main.c編譯成可執行檔Main,並在編譯過程做最佳化。
gcc -O Main.c -o Main
3. 設定搜尋標頭檔目錄 (Include File)、程式庫檔 (Library File)的目錄及指定程式庫檔。
設定搜尋標頭檔目錄
參數:-I(Include_File_Name)
說明:將目錄Include_File_Name設定為搜尋標頭檔目錄之一。
設定搜尋程式庫目錄。
參數:-L(Library_File_Name)
說明:將目錄Library_File_Name設定為搜尋程式庫目錄之一。
設定程式庫檔案。
參數:-llibdps.a
說明:聯結程式庫libdps.a。
EX1:本例中假設你的程式檔名為Main.c,所要聯結的程式庫為libdps.a;在編譯的過程中讓它做最佳化。
gcc -O -I/usr/X11R6/incclude/ -L/usr/X11R6/lib/ -l/usr/X11R6/lib/libdps.a ./Main.c -o ./Main
EX2:本例中假設你的程式檔名為Main2.c,使用到X window函數,所需的include 檔放在/usr/X11R6/include/中,所須聯結的程式庫放在/usr/X11R6/lib,所要聯結的程式庫為libX11.a。同樣地在編譯的過程中做最佳化。
gcc -O -I/usr/X11R6/include/ -L/usr/X11R6/lib/ -l/usr/X11R6/lib/libX11.a ./Main2.c -o ./Main2
4. 提供進一步的資訊以便使用者找尋程式中的錯誤。
參數:-Wall
說明:Wall -- Warning all輸出較多的警告訊息,以便找出程式的錯誤。
範例:編譯Main.c時輸出較多的警告訊息。
gcc -Wall ./Main.c -o ./Main
參數:-g
說明:在編譯出可執行檔時,附加執行時除錯 (debug)資訊,以供gdb讀取(若要使用ABSoft的除錯程式,則須將參數改為-gdwarf )。
範例:將Main.c編譯成可執行檔Main,並附加除錯資訊。
gcc -g ./Main.c -o ./Main
進階參數
1. 僅編譯成object檔。
參數:-c
說明:僅編譯成object檔而不進行程式庫聯結。
範例:將Main.c編譯成object檔Main.o。
gcc -c ./Main.c -o ./Main.o
2. 聯結數個object成可執行檔。
範例:將FunC1.o、FunC2.o和程式庫聯結後成為可執行檔Main。
gcc FunC1.o FunC2.o -o ./Main
3. 觀察巨集展開情形:
參數:-E
說明:展開程式中的巨集以便了解巨集是否依照預期方式展開。
範例:將Main.c中的巨集展開後儲存到LOG.TXT。
gcc -E ./Main.c 1> ./LOG.TXT
4. 產生組合語言程式碼:
參數:-S
範例:編譯Main.c產生對應的組合語言程式碼檔Main.s。
gcc -S ./Main.c -o ./Main.s
如果需要更多的說明:
man gcc
info gcc
假如在Linux下看英文版的gcc Manual覺得很困難的話,在這裡推薦一本書:
書名:GCC完全指南
作者:Kurt Wall, William von Hagen
譯者:鄧瑋敦
出版社:博碩文化
ISBN:957-527-808-9
GCC是由GNU出的C語言編譯器 (Compiler),可將由ANSI C或Traditional C語言寫成的程式碼編譯成可執行檔 (Executable File)。由於GCC能分別編譯出可執行於許多不同硬體、作業系統下的程式,在UNIX like system上是相當多人常用的C語言編譯程式。
使用方法簡介:
基本的使用方法及常用指令:
前言:
編譯器在編譯過程中,先將程式碼編譯成object檔,然後再和程式庫聯結,成為可執行檔。故一個編譯器須提供的參數主要有幾類:
1. 指定編譯器編出的object檔或是可執行檔檔名。
2. 在編譯過程做最佳化,可提升程式的執行速度。
3. 設定搜尋程式庫的標頭檔 (Header File)及程式庫檔的目錄及指定程式庫檔檔名。
4. 提供進一步的資訊以便使用者找尋程式中的錯誤。
以下便以這四個大類分別介紹。
注意:下面在不同類別中所介紹的參數,幾乎都可以混合著使用。
1. 設定編譯出的object檔檔名或是可執行檔檔名:
參數:-o (被輸出的檔名)
說明:指定編譯出的檔名。
範例:本例將程式碼Main.c編譯成可執行檔,並設定檔名為Main。
gcc Main.c -o Main
2. 在編譯過程做最佳化
參數:-O
說明:在編譯過程做最佳化,以提升增快程式執行速度。
範例:本例將程式碼Main.c編譯成可執行檔Main,並在編譯過程做最佳化。
gcc -O Main.c -o Main
3. 設定搜尋標頭檔目錄 (Include File)、程式庫檔 (Library File)的目錄及指定程式庫檔。
設定搜尋標頭檔目錄
參數:-I(Include_File_Name)
說明:將目錄Include_File_Name設定為搜尋標頭檔目錄之一。
設定搜尋程式庫目錄。
參數:-L(Library_File_Name)
說明:將目錄Library_File_Name設定為搜尋程式庫目錄之一。
設定程式庫檔案。
參數:-llibdps.a
說明:聯結程式庫libdps.a。
EX1:本例中假設你的程式檔名為Main.c,所要聯結的程式庫為libdps.a;在編譯的過程中讓它做最佳化。
gcc -O -I/usr/X11R6/incclude/ -L/usr/X11R6/lib/ -l/usr/X11R6/lib/libdps.a ./Main.c -o ./Main
EX2:本例中假設你的程式檔名為Main2.c,使用到X window函數,所需的include 檔放在/usr/X11R6/include/中,所須聯結的程式庫放在/usr/X11R6/lib,所要聯結的程式庫為libX11.a。同樣地在編譯的過程中做最佳化。
gcc -O -I/usr/X11R6/include/ -L/usr/X11R6/lib/ -l/usr/X11R6/lib/libX11.a ./Main2.c -o ./Main2
4. 提供進一步的資訊以便使用者找尋程式中的錯誤。
參數:-Wall
說明:Wall -- Warning all輸出較多的警告訊息,以便找出程式的錯誤。
範例:編譯Main.c時輸出較多的警告訊息。
gcc -Wall ./Main.c -o ./Main
參數:-g
說明:在編譯出可執行檔時,附加執行時除錯 (debug)資訊,以供gdb讀取(若要使用ABSoft的除錯程式,則須將參數改為-gdwarf )。
範例:將Main.c編譯成可執行檔Main,並附加除錯資訊。
gcc -g ./Main.c -o ./Main
進階參數
1. 僅編譯成object檔。
參數:-c
說明:僅編譯成object檔而不進行程式庫聯結。
範例:將Main.c編譯成object檔Main.o。
gcc -c ./Main.c -o ./Main.o
2. 聯結數個object成可執行檔。
範例:將FunC1.o、FunC2.o和程式庫聯結後成為可執行檔Main。
gcc FunC1.o FunC2.o -o ./Main
3. 觀察巨集展開情形:
參數:-E
說明:展開程式中的巨集以便了解巨集是否依照預期方式展開。
範例:將Main.c中的巨集展開後儲存到LOG.TXT。
gcc -E ./Main.c 1> ./LOG.TXT
4. 產生組合語言程式碼:
參數:-S
範例:編譯Main.c產生對應的組合語言程式碼檔Main.s。
gcc -S ./Main.c -o ./Main.s
如果需要更多的說明:
man gcc
info gcc
假如在Linux下看英文版的gcc Manual覺得很困難的話,在這裡推薦一本書:
書名:GCC完全指南
作者:Kurt Wall, William von Hagen
譯者:鄧瑋敦
出版社:博碩文化
ISBN:957-527-808-9
5.18.2010
How to install the WireShark??
先把話說在前面,這是一篇超級灌水文,居然教人怎麼安裝WireShark??
WireShark是一套可以追蹤網路封包的軟體,可以透過這套軟體來瞭解到一些協定 (Protocol)在網路上的行為模式。
這裡是以Windows Vista HomeEdition (SP2)為安裝的作業系統,安裝的版本為v1.2.8。
參考資料:http://www.wireshark.org/
一開始安裝時,會告知所安裝的WireShark版本,以及使用者的作業系統為32還是64位元的CPU

再來就是「授權同意書」,就是強迫你按「I Agree」就對了....

第三步是選擇所要安裝的WireShark元件 (Components),在這裡我們選擇全部都打勾

再來就是選擇所要建立的捷徑:開始功能表、桌面圖示、快速啟動圖示;我們選擇前二者。
File Extensions是指是否要建立檔案的擴充功能 (相關性);我們也打勾。

選擇所要安裝的路徑,採用預設的:C:\ Program Files \ Wireshark \

在安裝前會詢問使用者是否要安裝WinPcap。
WinPcap是Microsoft Windows平台下封包擷取、網路分析的程式。內含核心層級的封包過濾元件、低階動態連結函式庫,以及高階系統獨立函式庫。被廣泛地運用在許多軟體的封包抓取驅動。
Offical Website: http://www.winpcap.org/default.htm
為了要順利使用WireShark,我們要打勾─選擇安裝。

接下來就是如所有軟體的安裝畫面及過程....

因為我們剛剛有選擇要安裝WinPcap,所以會緊接著安裝WinPcap



「Automatically start the WinPcap driver at boot time」─在開機時自動啟動WinPcap的驅動;當然也打勾

WinPcap安裝完成

WireShark安裝完成


啟動WireShark時的畫面

開始抓取網路封包

如果對WireShark的使用方式,以及各種網路封包的行為模式有興趣的話,推薦一本書給各位參考一下:
書名:WireShark網路協定分析與管理
作者:久米 原榮、上田 浩
出版社:博碩文化
ISBN: 978-986-201-292-5

原本寫這一篇Blog的目的,是要介紹WireShark的使用方式,以及各種網路封包的運作;但後來發現可以寫的東西時在太多了,人家都已經出了一本書了,自己幹嘛還浪費時間寫這個??
所以只好改成如何安裝了!!
WireShark是一套可以追蹤網路封包的軟體,可以透過這套軟體來瞭解到一些協定 (Protocol)在網路上的行為模式。
這裡是以Windows Vista HomeEdition (SP2)為安裝的作業系統,安裝的版本為v1.2.8。
參考資料:http://www.wireshark.org/
一開始安裝時,會告知所安裝的WireShark版本,以及使用者的作業系統為32還是64位元的CPU

再來就是「授權同意書」,就是強迫你按「I Agree」就對了....

第三步是選擇所要安裝的WireShark元件 (Components),在這裡我們選擇全部都打勾

再來就是選擇所要建立的捷徑:開始功能表、桌面圖示、快速啟動圖示;我們選擇前二者。
File Extensions是指是否要建立檔案的擴充功能 (相關性);我們也打勾。

選擇所要安裝的路徑,採用預設的:C:\ Program Files \ Wireshark \

在安裝前會詢問使用者是否要安裝WinPcap。
WinPcap是Microsoft Windows平台下封包擷取、網路分析的程式。內含核心層級的封包過濾元件、低階動態連結函式庫,以及高階系統獨立函式庫。被廣泛地運用在許多軟體的封包抓取驅動。
Offical Website: http://www.winpcap.org/default.htm
為了要順利使用WireShark,我們要打勾─選擇安裝。

接下來就是如所有軟體的安裝畫面及過程....

因為我們剛剛有選擇要安裝WinPcap,所以會緊接著安裝WinPcap



「Automatically start the WinPcap driver at boot time」─在開機時自動啟動WinPcap的驅動;當然也打勾

WinPcap安裝完成

WireShark安裝完成


啟動WireShark時的畫面

開始抓取網路封包

如果對WireShark的使用方式,以及各種網路封包的行為模式有興趣的話,推薦一本書給各位參考一下:
書名:WireShark網路協定分析與管理
作者:久米 原榮、上田 浩
出版社:博碩文化
ISBN: 978-986-201-292-5
原本寫這一篇Blog的目的,是要介紹WireShark的使用方式,以及各種網路封包的運作;但後來發現可以寫的東西時在太多了,人家都已經出了一本書了,自己幹嘛還浪費時間寫這個??
所以只好改成如何安裝了!!
5.10.2010
error: dereferencing pointer to incomplete type
最近在make firmware時,遇到了一個之前沒碰過的bug,就如同標題所述「error: dereferencing pointer to incomplete type」如下二圖:


就趕緊上網Google一下,這個bug的意思是說:compiler一直找不到struct module的原型定義,換句話說,原本可能寫在module.h裡,結果沒找到,或是沒有include進來。
可是好玩的事情發生了,同樣的一份source code在我主管的開發環境下,卻完全沒有問題!?
於是乎,主管就叫我把source code的存放路徑 (path)改一下,原本為:
/ root / PRODUCTs / branches / model / (Source Code) / ....
我把它改放在系統的根目錄:
/ model / (Source Code) / ....
結果也Make成功了!!雖然現在本職學能上才疏學淺,所以就先把這兩個解決方法都先記了下來了。
參考資料:http://richliu.pixnet.net/blog/post/25765892

就趕緊上網Google一下,這個bug的意思是說:compiler一直找不到struct module的原型定義,換句話說,原本可能寫在module.h裡,結果沒找到,或是沒有include進來。
可是好玩的事情發生了,同樣的一份source code在我主管的開發環境下,卻完全沒有問題!?
於是乎,主管就叫我把source code的存放路徑 (path)改一下,原本為:
/ root / PRODUCTs / branches / model / (Source Code) / ....
我把它改放在系統的根目錄:
/ model / (Source Code) / ....
結果也Make成功了!!雖然現在本職學能上才疏學淺,所以就先把這兩個解決方法都先記了下來了。
參考資料:http://richliu.pixnet.net/blog/post/25765892
4.15.2010
如何修改Linux SciTE的屬性??
常在Linux環境下開發的人,應該都聽過這套軟體─SciTE。它就類似在Windows下的UltraEdit-32一樣,是一款好用的圖形化純文字文書處理軟體,非常適合用來修改各式各樣的程式碼。
首先我們執行後會出現如下的畫面 (以Fedora Core 8為例):

看起來非常地陽春,但我們希望能夠跟UltraEdit-32一樣,能夠顯示工具列、狀態列、行號、在檔案中尋找某一字串時,要搜尋所有檔案 (因為Linux下有Makefile),以及在搜尋時能夠區分大小寫字母 (因為Linux下有區分大小寫)。
所以,我們必須修改它的預設值 (Default Settings)。首先,以root管理者的身份登入系統後,執行:
vi /usr/share/scite/SciTEGlobal.properties
我們會看到如下圖的檔案:

'#'是它的註解;我們可以從一些關鍵字搜尋到我們所要修改的地方 (僅需把註解符號移除即可):
toolbar.visible=1
statusbar.visible=1
line.margin.visible=1
find.files=*.c *.cxx *.h *.* *
find.replace.matchcase=1
修改完後存檔,再重新啟動SciTE即可。



如此,每次啟動SciTE時,就會自動顯示工具列、狀態列等等,而不需要再透過功能表列再去設定!!
若使用者有其它需求,可自行嘗試其它參數。
首先我們執行後會出現如下的畫面 (以Fedora Core 8為例):
看起來非常地陽春,但我們希望能夠跟UltraEdit-32一樣,能夠顯示工具列、狀態列、行號、在檔案中尋找某一字串時,要搜尋所有檔案 (因為Linux下有Makefile),以及在搜尋時能夠區分大小寫字母 (因為Linux下有區分大小寫)。
所以,我們必須修改它的預設值 (Default Settings)。首先,以root管理者的身份登入系統後,執行:
vi /usr/share/scite/SciTEGlobal.properties
我們會看到如下圖的檔案:
'#'是它的註解;我們可以從一些關鍵字搜尋到我們所要修改的地方 (僅需把註解符號移除即可):
toolbar.visible=1
statusbar.visible=1
line.margin.visible=1
find.files=*.c *.cxx *.h *.* *
find.replace.matchcase=1
修改完後存檔,再重新啟動SciTE即可。
如此,每次啟動SciTE時,就會自動顯示工具列、狀態列等等,而不需要再透過功能表列再去設定!!
若使用者有其它需求,可自行嘗試其它參數。
訂閱:
文章 (Atom)