Linux 底下的影音播放軟體
一般來說,常見的影音格式如下所示:
影:DVD、AVI、MP4、FLV (Flash)、RMVB .. 等格式
音:CD、MP3、WMA、OGG(http://zh.wikipedia.org/zh-tw/Ogg)、WAV .. 等格式
[1] 如何搞定音效介面
在 Linux 底下最常用的音效卡驅動程式為 Advanced Linux Sound Architecture (ALSA) project 所發展之音效卡,「幾乎」所有的音效卡/音效介面都有支援。但是少數專業級的音效卡沒有支援,這些音效卡使用特殊的晶片,而且沒有附 Linux 驅動程式,不過這種情況相當少見。我們可以簡單的說:一般隨機內建之音效介面 linux 均有支援。
「理論上」來說,現在新的 Linux 作業系統安裝完畢後即會自動驅動所有內建驅動程式之硬體,包括網路卡、顯示卡以及音效卡。
[2] 如何聽音樂
** 聽 MP3 **
1. 安裝音效驅動程式 - alsa
要安裝 alsa 必須安裝以下檔案:
alsa-base
alsa-utils
2. 安裝混音程式
alsamixergui
3. 安裝 mp3 播放程式
要聽 mp3 請安裝
audacious (一套類似 winamp 介面之 mp3 播放軟體)
4. 聽 mp3
請先下載 mp3,再在終端機中啟動 audacious & (背景執行)
5. 疑難雜症處理:
a. 找不到音效卡怎麼辦
請重新啟動 alsa,指令如下:
/usr/sbin/alsa reload
b. 放音樂時沒有聲音,但是有在放音樂怎麼辦 ? [常見]
通常會發生此情況是因為以下情況:
1. 喇叭未打開
2. 喇叭插錯孔
3. 混音器未打開,請執行
alsamixer
或
alsamixergui (建議以此程式為主)
來進行聲音調整。
[3] 如何看影片
在 linux 底下最強的看影片軟體為 mplayer,不過其介面較為陽春,因此有許多人 無法接受,另外常見的影片軟體為 vlc、smplayer、totem .. 等。通常看影片有兩個需求:
1. 可以清楚看到影片,換言之要有針對不同影片而存在之解碼程式
2. 要有字幕
有關看影片這件事,已經有網頁幫我們處理了,請看:
http://debian-multimedia.org/
在我們的 /etc/apt/sources.list 加入以下定義即可使用 debian multimedia 網站幫我們整理之套件。
deb ftp://ftp.debian-multimedia.org squeeze main non-free
接下來執行 apt-get update 即可更新套件來使用多媒體套件了,請安裝
mplayer
smplayer
vlc (以上三個為不同之播放程式)
w32codecs (支援不同影片格式之 codec)
libdvdnav4
libdvdread4
libdvdcss2 (此三行是播 DVD 必備之函式庫)
[4] 如何下載 Youtube 影片
要下載 Youtube 影片先要能看其影片,而 Youtube 影片為 flash 格式 (flv 檔),在 linux 底下我們必須自 adobe 網站來下載 flash plugin,請連至
http://www.adobe.com/
點選 Adobe Flash Player
此時會進入下載畫面,請選擇 .tar.gz 格式下載,會下載一個檔案名為:
install_flash_player_10_linux.tar.gz
完整下載網址在:
http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player_10_linux.tar.gz
將此檔解開(使用 mc)或是以下指令:
tar xfvz install_flash_player_10_linux.tar.gz
會出現一個檔案名為:
libflashplayer.so
將此檔存至 /usr/lib/mozilla/plugins 目錄,再重新啟動 firefox 即可支援 flash。,指令如下:
cp -a libflashplayer.so /usr/lib/mozilla/plugins
另外要複製 ./usr/bin/flash-player-properties 至 /usr/bin/,指令如下:
cp -a ./usr/bin/flash-player-properties /usr/bin/
若還是不行,請確定自己的機器是否有安裝 libcurl3 套件,若沒有的話請執行:
apt-get install libcurl3
來安裝即可。若要播放有字幕之電影檔,例如
a.mkv 有一個相對應的字幕檔名為 a.srt
請執行
mplayer a.mkv -sub a.srt
若中文是亂碼的話,請下載 ftp://163.26.229.6/linux/mplayer.tar.bz2
並在自己的家目錄解開,解開的指令為:
tar jxfv mplayer.tar.bz2
(記得先安裝 bzip2 套件)
2011年5月19日 星期四
2011年5月5日 星期四
系統觀察與設定
系統觀察與設定
目標:
1. 了解系統資源,何謂系統資源 ?
a. 硬碟 - 硬碟有多大 ? 如何分割 ? 分割區編號 ? 有無掛載點 ?
b. 記憶體容量 - 記憶體多大 ? 虛擬記憶體多大 ? 目前記憶體狀態 ? 是否有記憶體不足情況 ?
c. 音效卡 - ??
d. CPU - 廠牌、型號、速度、是否有 bug、指令集、共幾個核心
e. 網路卡 - 廠牌、型號、速度
f. 顯示卡 - 廠牌、型號
g. 其它資源 - 例如外接式硬碟、webcam .. 等
2. 了解系統資源後我們才能設定並使用這些系統資源,上述的內容都是所謂的系統資源。
***
觀察目前掛載之硬碟:
df -h
檔案系統 Size Used Avail Use% 掛載點
/dev/sda1 37G 3.1G 32G 9% /
tmpfs 2.0G 4.0K 2.0G 1% /lib/init/rw
udev 2.0G 184K 2.0G 1% /dev
tmpfs 2.0G 0 2.0G 0% /dev/shm
/dev/sda5 74G 58G 13G 83% /home
/dev/sda2 138G 92G 40G 71% /opt
/dev/sda3 28G 7.1G 20G 27% /usr
上面的資訊告訴我們目前掛載的硬碟為 /dev/sda,其分割區分別掛載至不同目錄,我們亦可從上述資料中發現每個分割區的大小及所剩容量。與之前上課不同的是 /opt 為獨立掛載之分割區,其原因是我們需要 /opt 來安裝 EDA 伺服器。但是我們無法得知是否有 swap,以及 swap 位於那個分割區,因此需要以下指令:
fdisk -lu /dev/sda
Disk /dev/sda: 320.1 GB, 320071851520 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625140335 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00036986
Device Boot Start End Blocks Id System
/dev/sda1 * 63 78124094 39062016 83 Linux
/dev/sda2 78124095 371085434 146480670 83 Linux
/dev/sda3 371085435 429674489 29294527+ 83 Linux
/dev/sda4 429674551 625137344 97731397 5 Extended
/dev/sda5 429674553 585922679 78124063+ 83 Linux
/dev/sda6 585922743 625137344 19607301 82 Linux swap / Solaris
從上面資訊我們可看出 /dev/sda 硬碟為 320 GB大小之硬碟,其分割區 /dev/sda6 為 swap。
觀察記憶體容量
free -m
total used free shared buffers cached
Mem: 4004 959 3045 0 346 240
-/+ buffers/cache: 372 3632
Swap: 19147 0 19147
Mem:指的是實體記憶體,總共有 4004 MB
Swap: 指的是虛擬記憶體,總共有 19147 MB,當實體記憶體夠大,且沒有用完的情況下,虛擬記憶體不會被使用到。
cache - 快取記憶體,小抄
1. 觀看本機之介面,請執行 lspci 指令來觀察系統資源,以某台主機來說,其輸出如下:
00:00.0 Host bridge: Intel Corporation 82G33/G31/P35/P31 Express DRAM Controller (rev 10)
00:01.0 PCI bridge: Intel Corporation 82G33/G31/P35/P31 Express PCI Express Root Port (rev 10)
00:1b.0 Audio device: Intel Corporation N10/ICH 7 Family High Definition Audio Controller (rev 01)
00:1c.0 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 1 (rev 01)
00:1c.1 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 2 (rev 01)
00:1d.0 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #1 (rev 01)
00:1d.1 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #2 (rev 01)
00:1d.2 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #3 (rev 01)
00:1d.3 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #4 (rev 01)
00:1d.7 USB Controller: Intel Corporation N10/ICH 7 Family USB2 EHCI Controller (rev 01)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev e1)
00:1f.0 ISA bridge: Intel Corporation 82801GB/GR (ICH7 Family) LPC Interface Bridge (rev 01)
00:1f.2 IDE interface: Intel Corporation N10/ICH7 Family SATA IDE Controller (rev 01)
00:1f.3 SMBus: Intel Corporation N10/ICH 7 Family SMBus Controller (rev 01)
01:00.0 VGA compatible controller: nVidia Corporation G96 [GeForce 9400 GT] (rev a1)
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 02)
因此藉由 lspci 指令,我們可以讀取系統之硬體組態,除非某硬體太新變成 Unknown,否則一般常見介面卡、顯卡、USB .. 等均可以此指令讀出。
練習:請執行 lspci,並觀測自身主機的介面型號
Shift + PageUP 往上捲
Shift + PageDn 往下捲
2. 觀看本機 CPU 資訊
cat /proc/cpuinfo -> 觀察 CPU 型號
X86 CPU 為 CISC -> Complex Instruction Set CPU
ARM CPU 為 RISC -> Reduced Instruction Set CPU
3. free -m -> 觀察主記憶體及虛擬記憶體容量
3.1 如何支援超過 4G 以上之主記憶體 ?
我們使用 aptitude 可以查到有個套件名稱為
linux-image-2.6.32-5-686
其中 2.6.32-5 是核心版本,而 686 指的是 CPU 架構。
另一個套件名稱為:
linux-image-2.6.32-5-686-bigmem
後面加 bigmem 的主要意思是支援 4GB ~ 64 GB 記憶體之主機。
4. uname -a -> 觀看開機核心版本
5. dmesg -> 觀察系統訊息,由於系統訊息太多行,因此通常的作法是「轉向」至某一個檔案,再使用 vi 觀看,請執行:
dmesg > dmesg.log
hint: 轉向請參考鳥哥第11章 - http://linux.vbird.org/linux_basic/0320bash.php
6. 網路設定檔:/etc/network/interfaces
其內容如下:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface -> lo 是指本機 IP,
auto lo -> 每一台 lo 的 IP 都是 127.0.0.1
iface lo inet loopback
# The primary network interface
allow-hotplug eth0 -> eth0 是網路卡的第一個介面
iface eth0 inet static
address 10.7.1.29
netmask 255.255.255.0
network 10.7.1.0
broadcast 10.7.1.255
gateway 10.7.1.254
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 8.8.8.8
dns-search eecs.stut.edu.tw
網路設定:
ifconfig
root@pc-29:/home/herman# ifconfig
eth0 Link encap:Ethernet HWaddr 00:24:1d:12:5c:c7
^^^^^^^^^^^^^^^^^^^^^^^^ 網卡卡號
inet addr:10.7.1.29 Bcast:10.7.1.255 Mask:255.255.255.0
^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^
IP 位址 廣播位址 網路遮罩
inet6 addr: fe80::224:1dff:fe12:5cc7/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2169750 errors:0 dropped:1177 overruns:0 frame:0
TX packets:245495 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:403019350 (384.3 MiB) TX bytes:39846652 (38.0 MiB)
Interrupt:43 Base address:0x4000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:142137 errors:0 dropped:0 overruns:0 frame:0
TX packets:142137 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:8077705 (7.7 MiB) TX bytes:8077705 (7.7 MiB)
7. 呼叫網路上的主機 ping 主機名稱/IP,例如:
ping 163.26.229.252
假設我們發現系統好像當掉了,接下來請輸入 Ctrl+C 中斷 ping 指令,會出現以下訊息:
^C
--- 163.26.229.252 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3023ms
上面訊息告訴我們送給 163.26.229.252 的 4 個封包全部被退回, 100 % 的封包消失,我們可以因而推論 163.26.229.252 目前是沒有連線/無法動作/維護當中的
先確定網路連線正確,而且是 eth0 網路介面。第一次登入後,我們先確定網路有連線,請執行:
ping 163.26.229.254 (Gateway - 閘道 IP)
如果沒有動作,請按 Ctrl+C 中斷此程式,此時我們可以看到有多少封包傳輸,多少封包丟掉。如果出現以下訊息:
herman@debian:~$ ping 163.26.229.254
PING 163.26.229.254 (163.26.229.254) 56(84) bytes of data.
64 bytes from 163.26.229.254: icmp_seq=1 ttl=255 time=0.392 ms
64 bytes from 163.26.229.254: icmp_seq=2 ttl=255 time=0.362 ms
64 bytes from 163.26.229.254: icmp_seq=3 ttl=255 time=0.408 ms
64 bytes from 163.26.229.254: icmp_seq=4 ttl=255 time=0.754 ms
64 bytes from 163.26.229.254: icmp_seq=5 ttl=255 time=0.638 ms
64 bytes from 163.26.229.254: icmp_seq=6 ttl=255 time=0.438 ms
64 bytes from 163.26.229.254: icmp_seq=7 ttl=255 time=0.493 ms
64 bytes from 163.26.229.254: icmp_seq=8 ttl=255 time=0.327 ms
^C
--- 163.26.229.254 ping statistics ---
8 packets transmitted, 8 received, 0% packet loss, time 7003ms
rtt min/avg/max/mdev = 0.327/0.476/0.754/0.139 ms
表示工作正常。理論上,上面的 icmp_seq 順序要從 1、2 .. 開始往上數。萬一其數字不連貫的話叫「掉封包」。掉封包表示網路不穩,這必須進行網路除錯。
另一個要注意的重點是 time=0.xxx ms 這個訊息,這個數字愈小愈好,萬一數字很大表示我們這台主機跟對方主機的連線不順暢。
最後有一行訊息如下:
8 packets transmitted, 8 received, 0% packet loss, time 7003ms
這表示送了 8 個封包,回收 8 個封包,丟掉 0% 封包,總共時間為 7003 ms
目標:
1. 了解系統資源,何謂系統資源 ?
a. 硬碟 - 硬碟有多大 ? 如何分割 ? 分割區編號 ? 有無掛載點 ?
b. 記憶體容量 - 記憶體多大 ? 虛擬記憶體多大 ? 目前記憶體狀態 ? 是否有記憶體不足情況 ?
c. 音效卡 - ??
d. CPU - 廠牌、型號、速度、是否有 bug、指令集、共幾個核心
e. 網路卡 - 廠牌、型號、速度
f. 顯示卡 - 廠牌、型號
g. 其它資源 - 例如外接式硬碟、webcam .. 等
2. 了解系統資源後我們才能設定並使用這些系統資源,上述的內容都是所謂的系統資源。
***
觀察目前掛載之硬碟:
df -h
檔案系統 Size Used Avail Use% 掛載點
/dev/sda1 37G 3.1G 32G 9% /
tmpfs 2.0G 4.0K 2.0G 1% /lib/init/rw
udev 2.0G 184K 2.0G 1% /dev
tmpfs 2.0G 0 2.0G 0% /dev/shm
/dev/sda5 74G 58G 13G 83% /home
/dev/sda2 138G 92G 40G 71% /opt
/dev/sda3 28G 7.1G 20G 27% /usr
上面的資訊告訴我們目前掛載的硬碟為 /dev/sda,其分割區分別掛載至不同目錄,我們亦可從上述資料中發現每個分割區的大小及所剩容量。與之前上課不同的是 /opt 為獨立掛載之分割區,其原因是我們需要 /opt 來安裝 EDA 伺服器。但是我們無法得知是否有 swap,以及 swap 位於那個分割區,因此需要以下指令:
fdisk -lu /dev/sda
Disk /dev/sda: 320.1 GB, 320071851520 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625140335 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00036986
Device Boot Start End Blocks Id System
/dev/sda1 * 63 78124094 39062016 83 Linux
/dev/sda2 78124095 371085434 146480670 83 Linux
/dev/sda3 371085435 429674489 29294527+ 83 Linux
/dev/sda4 429674551 625137344 97731397 5 Extended
/dev/sda5 429674553 585922679 78124063+ 83 Linux
/dev/sda6 585922743 625137344 19607301 82 Linux swap / Solaris
從上面資訊我們可看出 /dev/sda 硬碟為 320 GB大小之硬碟,其分割區 /dev/sda6 為 swap。
觀察記憶體容量
free -m
total used free shared buffers cached
Mem: 4004 959 3045 0 346 240
-/+ buffers/cache: 372 3632
Swap: 19147 0 19147
Mem:指的是實體記憶體,總共有 4004 MB
Swap: 指的是虛擬記憶體,總共有 19147 MB,當實體記憶體夠大,且沒有用完的情況下,虛擬記憶體不會被使用到。
cache - 快取記憶體,小抄
1. 觀看本機之介面,請執行 lspci 指令來觀察系統資源,以某台主機來說,其輸出如下:
00:00.0 Host bridge: Intel Corporation 82G33/G31/P35/P31 Express DRAM Controller (rev 10)
00:01.0 PCI bridge: Intel Corporation 82G33/G31/P35/P31 Express PCI Express Root Port (rev 10)
00:1b.0 Audio device: Intel Corporation N10/ICH 7 Family High Definition Audio Controller (rev 01)
00:1c.0 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 1 (rev 01)
00:1c.1 PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 2 (rev 01)
00:1d.0 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #1 (rev 01)
00:1d.1 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #2 (rev 01)
00:1d.2 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #3 (rev 01)
00:1d.3 USB Controller: Intel Corporation N10/ICH 7 Family USB UHCI Controller #4 (rev 01)
00:1d.7 USB Controller: Intel Corporation N10/ICH 7 Family USB2 EHCI Controller (rev 01)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev e1)
00:1f.0 ISA bridge: Intel Corporation 82801GB/GR (ICH7 Family) LPC Interface Bridge (rev 01)
00:1f.2 IDE interface: Intel Corporation N10/ICH7 Family SATA IDE Controller (rev 01)
00:1f.3 SMBus: Intel Corporation N10/ICH 7 Family SMBus Controller (rev 01)
01:00.0 VGA compatible controller: nVidia Corporation G96 [GeForce 9400 GT] (rev a1)
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 02)
因此藉由 lspci 指令,我們可以讀取系統之硬體組態,除非某硬體太新變成 Unknown,否則一般常見介面卡、顯卡、USB .. 等均可以此指令讀出。
練習:請執行 lspci,並觀測自身主機的介面型號
Shift + PageUP 往上捲
Shift + PageDn 往下捲
2. 觀看本機 CPU 資訊
cat /proc/cpuinfo -> 觀察 CPU 型號
X86 CPU 為 CISC -> Complex Instruction Set CPU
ARM CPU 為 RISC -> Reduced Instruction Set CPU
3. free -m -> 觀察主記憶體及虛擬記憶體容量
3.1 如何支援超過 4G 以上之主記憶體 ?
我們使用 aptitude 可以查到有個套件名稱為
linux-image-2.6.32-5-686
其中 2.6.32-5 是核心版本,而 686 指的是 CPU 架構。
另一個套件名稱為:
linux-image-2.6.32-5-686-bigmem
後面加 bigmem 的主要意思是支援 4GB ~ 64 GB 記憶體之主機。
4. uname -a -> 觀看開機核心版本
5. dmesg -> 觀察系統訊息,由於系統訊息太多行,因此通常的作法是「轉向」至某一個檔案,再使用 vi 觀看,請執行:
dmesg > dmesg.log
hint: 轉向請參考鳥哥第11章 - http://linux.vbird.org/linux_basic/0320bash.php
6. 網路設定檔:/etc/network/interfaces
其內容如下:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface -> lo 是指本機 IP,
auto lo -> 每一台 lo 的 IP 都是 127.0.0.1
iface lo inet loopback
# The primary network interface
allow-hotplug eth0 -> eth0 是網路卡的第一個介面
iface eth0 inet static
address 10.7.1.29
netmask 255.255.255.0
network 10.7.1.0
broadcast 10.7.1.255
gateway 10.7.1.254
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 8.8.8.8
dns-search eecs.stut.edu.tw
網路設定:
ifconfig
root@pc-29:/home/herman# ifconfig
eth0 Link encap:Ethernet HWaddr 00:24:1d:12:5c:c7
^^^^^^^^^^^^^^^^^^^^^^^^ 網卡卡號
inet addr:10.7.1.29 Bcast:10.7.1.255 Mask:255.255.255.0
^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^
IP 位址 廣播位址 網路遮罩
inet6 addr: fe80::224:1dff:fe12:5cc7/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2169750 errors:0 dropped:1177 overruns:0 frame:0
TX packets:245495 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:403019350 (384.3 MiB) TX bytes:39846652 (38.0 MiB)
Interrupt:43 Base address:0x4000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:142137 errors:0 dropped:0 overruns:0 frame:0
TX packets:142137 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:8077705 (7.7 MiB) TX bytes:8077705 (7.7 MiB)
7. 呼叫網路上的主機 ping 主機名稱/IP,例如:
ping 163.26.229.252
假設我們發現系統好像當掉了,接下來請輸入 Ctrl+C 中斷 ping 指令,會出現以下訊息:
^C
--- 163.26.229.252 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3023ms
上面訊息告訴我們送給 163.26.229.252 的 4 個封包全部被退回, 100 % 的封包消失,我們可以因而推論 163.26.229.252 目前是沒有連線/無法動作/維護當中的
先確定網路連線正確,而且是 eth0 網路介面。第一次登入後,我們先確定網路有連線,請執行:
ping 163.26.229.254 (Gateway - 閘道 IP)
如果沒有動作,請按 Ctrl+C 中斷此程式,此時我們可以看到有多少封包傳輸,多少封包丟掉。如果出現以下訊息:
herman@debian:~$ ping 163.26.229.254
PING 163.26.229.254 (163.26.229.254) 56(84) bytes of data.
64 bytes from 163.26.229.254: icmp_seq=1 ttl=255 time=0.392 ms
64 bytes from 163.26.229.254: icmp_seq=2 ttl=255 time=0.362 ms
64 bytes from 163.26.229.254: icmp_seq=3 ttl=255 time=0.408 ms
64 bytes from 163.26.229.254: icmp_seq=4 ttl=255 time=0.754 ms
64 bytes from 163.26.229.254: icmp_seq=5 ttl=255 time=0.638 ms
64 bytes from 163.26.229.254: icmp_seq=6 ttl=255 time=0.438 ms
64 bytes from 163.26.229.254: icmp_seq=7 ttl=255 time=0.493 ms
64 bytes from 163.26.229.254: icmp_seq=8 ttl=255 time=0.327 ms
^C
--- 163.26.229.254 ping statistics ---
8 packets transmitted, 8 received, 0% packet loss, time 7003ms
rtt min/avg/max/mdev = 0.327/0.476/0.754/0.139 ms
表示工作正常。理論上,上面的 icmp_seq 順序要從 1、2 .. 開始往上數。萬一其數字不連貫的話叫「掉封包」。掉封包表示網路不穩,這必須進行網路除錯。
另一個要注意的重點是 time=0.xxx ms 這個訊息,這個數字愈小愈好,萬一數字很大表示我們這台主機跟對方主機的連線不順暢。
最後有一行訊息如下:
8 packets transmitted, 8 received, 0% packet loss, time 7003ms
這表示送了 8 個封包,回收 8 個封包,丟掉 0% 封包,總共時間為 7003 ms
2011年5月2日 星期一
如何折疊 MOS
如何折疊 MOS
適用場合:當 MOS (不論是 P 或 N) 的 w 太大,導致 layout 有佔據太多面積的問題時,我們就應該折疊 MOS。折疊 MOS 主要的作法在於將 MOS 的 poly 砍成兩段或三段或其它數目,而相對應的 Source 及 Drain 亦要隨之變化。
折疊 MOS 的技巧大致來說如以下幾點:
1. 決定是「奇數折」或是「偶數折」,奇數折指的是將 poly 砍成 3、5、7 ..段,偶數折則是 2、4、6、8 ... 段。請注意:折完之 poly 寬度加總要等於原先 ploy 寬度。
2. 如果是奇數折的話,那麼其 S(ource) P(oly) D(rain) 的畫法應當如以下所示:
spdpspd -> 三折
spdpspdpspd -> 五折
spdpspdpspdpspd -> 七折
..
以下是一個三折的例子,我們可以發現 poly 的長度由 12 um 折成 4 um。
若是偶數折的話,那麼其 S(ource) P(oly) D(rain) 的畫法應當如以下所示:
spdps -> 二折 -> dpspd
spdpspdps -> 四折 -> dpspdpspd
spdpspdpspdps -> 六折 -> dpspdpspdpspd
..
以下為一個二折的例子:
我們要記得一個原則是:Source->Poly->Drain->Poly->Source.
不然就是:Drain->Poly->Source->Poly->Drain ..
3. 所有的 Source 都要 Short 在一起,
所有的 Drain 都要 Short 在一起,
所有的 Poly 都要 Short 在一起
適用場合:當 MOS (不論是 P 或 N) 的 w 太大,導致 layout 有佔據太多面積的問題時,我們就應該折疊 MOS。折疊 MOS 主要的作法在於將 MOS 的 poly 砍成兩段或三段或其它數目,而相對應的 Source 及 Drain 亦要隨之變化。
折疊 MOS 的技巧大致來說如以下幾點:
1. 決定是「奇數折」或是「偶數折」,奇數折指的是將 poly 砍成 3、5、7 ..段,偶數折則是 2、4、6、8 ... 段。請注意:折完之 poly 寬度加總要等於原先 ploy 寬度。
2. 如果是奇數折的話,那麼其 S(ource) P(oly) D(rain) 的畫法應當如以下所示:
spdpspd -> 三折
spdpspdpspd -> 五折
spdpspdpspdpspd -> 七折
..
以下是一個三折的例子,我們可以發現 poly 的長度由 12 um 折成 4 um。
若是偶數折的話,那麼其 S(ource) P(oly) D(rain) 的畫法應當如以下所示:
spdps -> 二折 -> dpspd
spdpspdps -> 四折 -> dpspdpspd
spdpspdpspdps -> 六折 -> dpspdpspdpspd
..
以下為一個二折的例子:
我們要記得一個原則是:Source->Poly->Drain->Poly->Source.
不然就是:Drain->Poly->Source->Poly->Drain ..
3. 所有的 Source 都要 Short 在一起,
所有的 Drain 都要 Short 在一起,
所有的 Poly 都要 Short 在一起
2011年5月1日 星期日
使用 FPGA 驅動 I/O
傳統的(最常見的) I/O 介面可以分為以下幾種類型:
I:jumper、dip switch、keypad
O:LED、7 seg display、LCD
要驅動這些 I/O,必須知道這些 I/O 背後的工作原理,不同的 I/O 有不同的工作
原理,如果我們連基本工作原理都弄不清楚,那要如何寫程式來驅動這些 I/O ?
如果我們要在 4 顆相連的七段顯示器顯示出 1234,那該如何處理 ?
要顯示 1 -> 1,9 (6)
要顯示 2 -> 5,1,11,12,8 (3)
要顯示 3 -> 5,1,9,11,8 (2)
要顯示 4 -> 4,8,1,9 (7)
其中()內的數字指的是共陽或共陰的腳位。我們依序點亮上面的數字會發現要使用快速掃瞄電路很快將 1->2->3->4 掃瞄過一次,如以下影片所示:
http://www.youtube.com/watch?v=qxGxtjlfhTE
基於人類「視覺殘留」的原理,我們會以為 1234 是同時顯示的。
I:jumper、dip switch、keypad
O:LED、7 seg display、LCD
要驅動這些 I/O,必須知道這些 I/O 背後的工作原理,不同的 I/O 有不同的工作
原理,如果我們連基本工作原理都弄不清楚,那要如何寫程式來驅動這些 I/O ?
如果我們要在 4 顆相連的七段顯示器顯示出 1234,那該如何處理 ?
要顯示 1 -> 1,9 (6)
要顯示 2 -> 5,1,11,12,8 (3)
要顯示 3 -> 5,1,9,11,8 (2)
要顯示 4 -> 4,8,1,9 (7)
其中()內的數字指的是共陽或共陰的腳位。我們依序點亮上面的數字會發現要使用快速掃瞄電路很快將 1->2->3->4 掃瞄過一次,如以下影片所示:
http://www.youtube.com/watch?v=qxGxtjlfhTE
基於人類「視覺殘留」的原理,我們會以為 1234 是同時顯示的。
訂閱:
文章 (Atom)