2005/04/27 

Linux 常用指令 Kernel Module相關

Wednesday, April 27, 2005
4/26/2005 7:48:33 PM
Linux 常用指令 Kernel Module相關

一般我們都是用Module(模組)來簡稱Kernel Module,Module是可以按需要載入(insmod)或卸載(remod)的。
這樣做可以保持Kernel大小的彈性,也可以將事先未放到Kernel的模組,動態的加到Kernel中,
例:發現Kernel目前沒有支援 bc4400網卡,那我們就可以用insmod加入bc4400的網卡Driver。

與modules有關的命令有:
lsmod:列出已經被kernel載入的module
insmod:將某個module載入到kernel中
rmmod:移除 module
depmod: 生成依賴(dependency)文件,告訴將來的 insmod 要從那個路徑檔名insmod。這個文件就存在/lib/modules/[kernel版本]/modules.dep檔案中
modprobe:載入modules.dep中記載的依賴文件
Kerneld:負責自動的將模組載入kernel和把module從內核中remod。

註:Module幾乎不是單獨的存在(就像HelloWord會用到外部printf function一樣),它會用到Kernel中的其它Symbol,而Symbol不存在時,會出現以下的訊息
/lib/modules/2.4.xx/net/qcom.o: unresolved symbol m_q_com_symbol_3bc36b01
這時你要找到m_q_com_symbol_3bc36b01這個symbol所存在的module,先載入才行,所以才會有modprobe指令的存在,避免輸入多個insmod指令

 

Linux 常用指令-Kernel Module相關

Linux 常用指令-Kernel Module相關
完成於2005/4/27

一般我們都是用Module(模組)來簡稱Kernel Module,Module是可以按需要載入(insmod)或卸載(rmmod)的。
這樣做可以保持Kernel大小的彈性,也可以將事先未放到Kernel的模組,動態的加到Kernel中,而不用整個Kernel重新編譯。
例:發現Kernel目前沒有支援 bc4400網卡,那我們就可以用insmod加入bc4400的網卡Driver。

與modules有關的命令有:
lsmod:列出已經被kernel載入的module
insmod:將某個module載入到kernel中
rmmod:移除module,後接Module name,但不需要副檔名.ko
depmod:生成依賴(dependency)文件,讓下一指令modprobe可參考/lib/modules/[kernel版本]/modules.dep檔案
modprobe:載入modules.dep中記載的依賴文件
Kerneld:負責自動的將模組載入kernel和把module從內核中remod。

:Module幾乎不是單獨的存在(就像HelloWord會用到外部printf function一樣),它會用到Kernel中的其它Symbol,而Symbol不存在時,會出現類似以下的訊息
/lib/modules/2.4.xx/net/qcom.o: unresolved symbol m_q_com_symbol_3bc36b01
這時你要找到m_q_com_symbol_3bc36b01這個symbol所存在的module,先載入才行,所以才會有modprobe指令的存在,避免輸入多個insmod指令

2005/04/20 

桃園縣法律諮詢資源

Wednesday, April 20, 2005
4/20/2005 12:04:44 AM
桃園縣法律諮詢資源

http://www.moj.gov.tw/chinese/law_resource_com03.aspx
律師公會只有週一,但網頁寫週一到週五
桃園律師公會 週一 上午9:00-下午5:00 桃園律師公會 (03)332-6062 限電

中原大學本人打了2次,但沒有人接
桃園縣政府要本人到場
中壢市公所我確認過週三,週五 晚上都有律師現場服務,在二樓調解室

2005/04/17 

視訊規格筆記

視訊規格筆記
完成於2005/4/17
最後更新 2006/6/2

NTSC:National Television System Committee【聯邦電視規格委員會】,美國所發明。
PAL:Phase Alternation Line【線相位交錯】,由德國提出。
SECAM:Sequental Couleur A Memoir 【連續彩色記憶】,由法國所開發。

HDTV: High Definition Television
EDTV:增強畫質
SDTV:標準畫質
美國消費類電子協會CEA定義
規格 掃描線數 水平像素 畫面速率 長寬比
NTSC 480i 720 29.97 4:3
PAL 576i 720 25 4:3
SDTV 480i 720 24/30 4:3/16:9
EDTV 480p 720 24/30 4:3/16:9
HDTV 720p 1280 24/30/60 16:9
HDTV 1080i 1920 60 16:9
HDTV 1080p 1920 24/30 fps 16:9

i:interlaced交錯式
p:progressive非交錯式
規格 掃描線數 水平像素 畫面速率 長寬比
NTSC 480i (486) 720 29.97 fps 04:03 任何時間下只有360x486的單格被播出
PAL 576i 720 (768) 25 fps 04:03 166Mb/s(720×576×2×8×25)
SDTV 480i 720(704) 24/30 4:3/16:9
EDTV 480p 720(704) 4:3 24P, 30P, 60I(480i), 60P(480p)
16:9 24P, 30P, 60I(480i), 60P(480p) 4:3/16:9
HDTV 720p 1280 24P, 30P, 60P(720p) 16:09
HDTV 1080i 1920 60I 16:09
HDTV 1080p 1920 24P,30P 16:09

2006/6/2補充:SONY Handycam HDR-HC3支援的1080i為1440*1080

DVD 720 x 480
Full D1(NTSC :720x480, PAL : 720x576)
P=frames/sec(每秒圖框數), p=progressive(非交錯式/漸進式掃描)
I=field/sec(每秒圖場數), i=interlaced(交錯式/交織式掃描)

2005/04/14 

UPnP Media Server GPL-LINUX

Gallery Media Server: a UPnP Media Server GPL-LINUX
http://kooditakomo.cs.tut.fi/projects/gms/

 

Linux下UPNP的安裝

Thursday, April 14, 2005
4/13/2005 11:35:41 PM
之前都只專注在UPNP-AV上,以後也要試試這個

Linux下UPNP的安裝
needham 發表于 2004年12月04日,18時11分
UPNP將來可能使用範圍會越來越廣,一些路由設備已經開始支持UPNP.
在REDHAT AS 3上,安裝UPNP的支持工具(LINUX-IGD),感覺這個軟體還不是很成熟.還有一些疑問.
1.首先安裝相關Lib
e2fsprogs-1.35.tar.gz和UPNPSDK1.04. (LIBUPNP已經到1.21版了.但安裝中會出錯)
需要修改一行.SSDPLIB.C
SelfAddr.sin_addr.s_addr = inet_addr(SSDP_IP);
to:
SelfAddr.sin_addr.s_addr = htonl(INADDR_ANY);
2.安裝LINUX-IGD
3.啟動LINUX-IGD,
#upnpd 外網卡名字 內網卡名字
4.加入239.0.0.0 255.0.0.0 的路由,由內網卡廣播.
route add -net 239.0.0.0 netmask 255.0.0.0
4.加入DEBUG
在syslogd.conf中加上
*.debug /var/log/debug
看UPNPD的輸出.
5.需要修改IPTABLES的FORWARD中的選項.最簡單的辦法是ACCPET.但是不是會有安全隱患,這就是我的疑問.
6.現下已經能夠在WINDOWS XP的網上鄰居中看來這個設備了.但在BITCOMET中顯示UPNP出錯.其實這時BITcomet已經可以有遠程用戶連進來了.這是疑問之二


2005/04/08 

Linux 古董?!

Linux 古董?!
完成於2005/4/8

有次看到網友下的標題,覺得很特別,就記了下來,雖然不過是十幾年前,但對Linux而言,它真的是當之無愧了。
這個古董年代並不久,只有短短的10多年(1991年9月),但在莫耳定律下算起,它已經算是非常古老了,現在拜科技之助,我們幾乎可以免費而且容易取得:linux-0.0.1.tar.gz
如果有興趣,我們可以從它的 init/main.c 之下的main()這個第一個c function讀起
為了區別,中文註解是我寫的,英文是原始檔案的一部份
void main(void) /* This really IS void, no error here. */ // LINUX 開機後的第一個C 語言程式 (不含Boot Loader) 新版kernel 改為 start_kernel()
{ /* The startup routine assumes (well, ...) this */
/*
* Interrupts are still disabled. Do necessary setups, then
* enable them
*/ // 一推kernel初始化 建議你看看各個int function的註解
time_init(); // 偷偷告訴你,只是讀CMOS時間
tty_init(); //console init
trap_init(); //系統中斷向量 init
sched_init(); // 排程
buffer_init(); // 在fs/目錄下,buffer chche處理
hd_init(); // 處理HD的中斷
sti(); //開中斷,代表進入main() 之前就已經被cli了
move_to_user_mode();
if (!fork()) { /* we count on this going ok */ // fork()如果成功,則本程式分身 去執行 init() ,本尊往下走執行 for()
init(); // 所有執行緒的爸爸 因為所有的init script , service ,shell,當然包含我們寫的hello world都至少要叫它爸或爺爺.... :p
}
/*
* NOTE!! For any other task 'pause()' would mean we have to get a
* signal to awaken, but task0 is the sole exception (see 'schedule()')
* as task 0 gets activated at every idle moment (when no other tasks
* can run). For task0 'pause()' just means we go check if some other
* task can run, and if not we return here.
*/
for(;;) pause();
}

2005/04/06 

Linux如何mount USB 及 CDROM

Wednesday, April 6, 2005
4/5/2005 8:42:58 PM
Linux如何mount USB 及 CDROM

USB
mount /dev/sda1 /mnt/usb -o iocharset=cp950 //中文檔名
mount /dev/sda1 /mnt/usb
Q:為什麼是/dev/sda1
A:因為usb是模擬成scsi storage裝置,
Q:如果mount不成功,那有可能的問題是什麼
A:1.請注意/dev/sda1 /mnt/usb 檔案路徑是否存在
2.請注意是否要加上指定檔案系統格式 -t vfat (參考/proc/filesystem)
3.如果不是/dev/sda1 sda2 sda3 ..... 那就只好看dmesg 訊息來得知device name或者用fdisk -l 也行


CDROM
mount /dev/cdrom /mnt/cdrom -o iocharset=cp950 //中文檔名
mount /dev/cdrom /mnt/cdrom

Q:為什麼有些地方可以只用 mount cdrom 就可以mount cdrom
A:因為/etc/fstab 中已經定義了
/dev/cdrom /mnt/cdrom udf,iso 9660 noauto,owner,kudzu,ro,user 0 0
其中noauto可以改為auto 開機會自動就mount

 

Linux如何mount USB Flash/HDD/CDROM

Linux如何mount USB Flash/HDD/CDROM
完成於2005/4/6

USB Flash/HDD
mount /dev/sda1 /mnt/usb -o iocharset=cp950 -t vfat
參數說明
/dev/sda1 為SCSI設備(usb storage是模擬成scsi storage裝置的第一個Partition
建議使用插入USB之後,使用指令#fdisk -l查看。有時可能會是sdb1,sdb2
-o iocharset=cp950//如果有中文檔名時使用,否則可省略
-t vfat //filesystem 格式,一般不需要指定,如果是ntfs請用-t ntfs
Linux核心支援什麼樣的Filesystems請使用指令#cat /proc/filesystem查看
Fedora 4預設是不支援NTFS的

如果還是無法成功,建議你看看#dmesg最後幾行訊息(插入USB Device時,Driver會printk一些訊息,如果你沒有開掉訊息的話)
再不行,建議你插著USB Device,再重新開機,看看#dmesg中有關USB的訊息

CDROM
mount /dev/cdrom /mnt/cdrom -o iocharset=cp950 -t iso9660
mount /dev/cdrom /mnt/cdrom <--一般使用這個就可以啦 Q:為什麼有些地方可以只用 mount cdrom 就可以mount cdrom A:因為/etc/fstab 中已經定義了 /dev/cdrom /mnt/cdrom udf,iso 9660 noauto,owner,kudzu,ro,user 0 0 其中noauto可以改為auto 開機會自動就mount

2005/04/03 

PXE + WINPE環境設定

PXE + WINPE環境設定
完成於2005/4/3

我的環境是 (經測試後,可以移到windows上)
OS:Redhat 9.0
工具:dhcpd(Dhcp Server)+tftp server
使用 pxelinux.0 之前以為要patch這個檔的  後來發現完全不需要更動
真正要改的 ntldr <- 因為它要改為load tftp server上的 ntdetect.com 修改方式 ntldr使用UltraEdit hex編輯,將MZ之前的資料全部刪除
要注意的是 在LINUX上的檔案名稱是分大小寫的 所以放在 TFTP SERVER上的 
一律都要改為大寫(NTLDR預設)
其它都和 用PXE Remote Install Fedora沒有二樣
開機流程及檔名路徑補充
1.Clinent 開機 進入 PXE Boot
2.Client 要求 dhcp IP
server 給IP及
filename "winpe/pxelinux.0" <---- pxelinux 不需要任何修改
3.Client 透過 tftp 下載 Tftp Server tftproot之下的
winpe/pxelinux.0
4.Client 執行 pxelinux.0
5.pxelinux.0預設會下載一些 "winpe/pxelinux.cfg/之下的檔案
我使用 "winpe/pxelinux.cfg/default"
內容主要是 Kernel startrom.0
startrom.0 rename自startrom.com
6.Client 下載及執行 startrom.com
7.Client 下載及執行 NTLDR
注意tftp server如果分大小寫 你一定要更名為大寫
而且這個檔案 要用http://oss.netfarm.it/guides/ris-linux.tar.gz
的fixloader.py 修正過
8.Client 下載 "BOOTFONT.BIN" <---字型可省略
9.Client 下載及執行 "ntdetect.com"
10.Client 下載 winnt.sif
[SetupData]
BootDrevice="ramdisk(0)"
BootPath="\i386\system32\"
OsLoadOptions="/noguiboot /fastdetect /minint /rdexportascd /rdpath=mywinpe.iso"
11.Client 下載mywinpe.iso
12. 進入winpe 開機
dhcpProxy可以不需要

About me

  • I'm Martin's blog 馬汀的部落格
  • From 中壢市, 桃園縣, Taiwan
  • -----BEGIN GEEK CODE BLOCK----- Version: 3.1 Comment: For info see http://www.geekcode.com GC/CS/CC/E/IT/TW d- s a C++++ L++++ P+ L++++ E--- W+++ N++ o+ K- w+++ O- M- V- PS+ PE++ Y+ PGP+ t 5- X++ R- tv- b+++ DI+ D-- G e+++ h+ r+ y+ z? ------END GEEK CODE BLOCK------ /**************************** 旅行是我生命的動力 它的樂趣從計劃旅行開始 我樂於分享旅行及Linux Kernel上的每一件事. ****************************/
My profile