ext源碼下載
㈠ 那個網站有大量asp.net網站源碼
asp.net網站源碼 可以到IT學習聯盟下載。
……………………………………………………
如果對aspnet感興趣,看看一個大專生怎麼自學aspnet到找到工作。
先做個自我介紹,我07年考上一所很爛專科民辦的學校,學的是生物專業,具體的學校名稱我就不說 出來獻丑了。09年我就輟學了,我在那樣的學校,一年學費要1萬多,但是根本沒有人學習,我實在看不 到希望,我就退學了。
退學後我也迷茫,大專都沒有畢業,我真的不知道我能幹什麼,我在糾結著我能做什麼。所以輟學後 我一段時間,我想去找工作,因為我比較沉默寡言,不是很會說話,我不適合去應聘做業務。我想應聘 做技術的,可是處處碰壁。
一次偶然的機會,我才聽到aspnet這個行業。那天我去新華書店,在計算機分類那邊想找本書學習 。後來有個女孩子走過來,問我是不是讀計算機的,有沒有興趣學習aspnet,然後給我介紹了一下 aspnet現在的火熱情況,告訴我學aspnet多麼的有前景,給我了一份傳單,aspnet培訓的廣告。聽了 她的介紹,我心裡癢癢的,確實我很想去學會一門自己的技術,靠自己的雙手吃飯。
回家後,我就上網查了下aspnet,確實是當今比較熱門的行業,也是比較好找工作的,工資也是相 對比較高。我就下決心想學aspnet了。於是我去找aspnet培訓的相關信息,說真的,我也很迷茫,我 不知道培訓是否真的能像他們宣傳的那樣好,所以我就想了解一段時間再做打算。
後來,我在網路知道看到一篇讓我很鼓舞的文章是一個aspnet高手介紹沒有基礎的朋友怎麼自學入 門學aspnet,文章寫的很好,包含了如何學習,該怎麼學習。他提到一個方法就是看視頻,因為看書實 在太枯燥和費解的,很多我們也看不懂。這點我真的很認同,我自己看書往往看不了幾頁。
我在想,為什麼別人都能自學成才,我也可以的!我要相信自己,所以我就想自學,如果實在學不會 我再去培訓。
主意一定,我就去搜索aspnet的視頻,雖然零星找到一些aspnet的視頻,但是都不系統,我是想找 一個能夠告訴我該怎麼學的視頻,一套從入門到精通的視頻,一個比較完整的資料,最好能有老師教, 不懂可以請教的。
後來我又找到一份很好的視頻,是在IT學習聯盟推出的一份視頻《零基礎aspnet就業班》(喜歡《 零基礎aspnet就業班》的可以復制 sina.lt/bsjr 粘貼瀏覽器地址欄按回車鍵即打開)
下面介紹下我的學習流程,希望對和我一樣完全沒有基礎的朋友有所幫助。
收到他們寄過來的光碟後,我就開始學習了,由於我沒有什麼基礎,我就從最簡單的C#語言視頻教程 學起,話說簡單,其實我還是很多不懂的,只要重復多看幾遍,就能看懂。C#語言我差不多學了一個禮 拜,接下來我就學了winform,sql Server,html/css/javaScript,差不多也就三個禮拜。我每天都在不 停的寫一些簡單的代碼,這樣一月後我基本掌握了aspnet的全部基礎。
接下來開始學習aspnet高級課程,老師幽默風趣而又輕松的課堂教課,使我發現原來學習aspnet並 不是一件很難的事情。之前我把aspnet基礎學得還不錯,到了到了aspnet高級部分,我覺不又不是很 難,可能老師太牛了,他能把復雜的問題講的比較通俗易懂,有些難點的地方我還是連續看了五六次, 把他弄懂。每天下午6點下班後,吃了飯,馬上跑回家。看視頻,買了幾本筆記本。當時,為了編程還花幾百元了台二手的台式電腦,配置一般,但編程是足夠的。一邊看視頻,一邊記筆記,把重點都記下來,還一邊跟著老師敲代碼,為了能盡早學會aspnet。每天都堅持學5-6個小時。經常學到晚上一點多才睡覺。星期六,日不用上班,每天7點多起床,學到晚上11,12點。那段時間特別辛苦,特別累。在學習aspnet的三個多月里,除了吃飯睡覺工作,剩餘的時間都在學習,因為我知道自己的計算機基礎不是很好,也沒有學過什麼計算機,相對於那些科班的人來說我要比他們付出更多的努力。我只能咬緊牙關,堅持下去,我不能放棄,我要完成我的夢想,我要讓我的家人過上好日子。終於三個多月後我把aspnet教程里的內容和項目都學完了,在學項目的過程中我發現項目特別重要,他能把你學過的知識全部聯系起來,能更好的理解你所學的知識。還有學習過程中,動手很重要,要經常跟著老師動手敲,動手吧,跟著做,一行一行的跟著敲,再試著加一些自己的功能,按照自己的思路敲一些代碼,收獲遠比干聽大的多。 如果遇到暫時對於一些思路不能理解的,動手寫,先寫代碼,慢慢你就會懂了。
於是我就到51job瘋狂的投簡歷,因為我學歷的問題,專科沒有畢業,說真的,大公司沒有人會要我,所以我投的都是民營的小公司,我希望自己的努力有所回報。沒有想過幾天過後,就有面試了,但是第一次面試我失敗了,雖然我自認為筆試很好,因為我之前做了准備,但是他們的要求比較嚴格,需要有一年的項目經驗,所以我沒有被選中。
後來陸續面試了幾家公司,終於功夫不負有心人。我終於面試上的,是在閔行的一家民營的企業,公司規模比較小,我的職務是aspnet開發程序員,但我也比較滿足,開的工資是3500一個月,雖然我知道在上海3500隻能過溫飽的生活,但是我想我足夠了。我至少不用每天都要靠父母養,我自己也能養活自己的。我想只要我繼續努力,我工資一定會翻倍的。
把本文寫出來,希望能讓和我一樣的沒有基礎的朋友有信心,其實我們沒有必要自卑,我們不比別人笨,只要我們肯努力,我們一樣會成功。
………………………………………………
首先uname -r看一下你當前的linux內核版本
1、linux的源碼是在/usr/src這個目錄下,此目錄有你電腦上各個版本的linux內核源代碼,用uname -r命令可以查看你當前使用的是哪套內核,你把你下載的內核源碼也保存到這個目錄之下。
2、配置內核 make menuconfig,根據你的需要來進行選擇,設置完保存之後會在當前目錄下生成.config配置文件,以後的編譯會根據這個來有選擇的編譯。
3、編譯,依次執行make、make bzImage、make moles、make moles
4、安裝,make install
5、.創建系統啟動映像,到 /boot 目錄下,執行 mkinitramfs -o initrd.img-2.6.36 2.6.36
6、修改啟動項,因為你在啟動的時候會出現多個內核供你選擇,此事要選擇你剛編譯的那個版本,如果你的電腦沒有等待時間,就會進入默認的,默認的那個取決於 /boot/grub/grub.cfg 文件的設置,找到if [ "${linux_gfx_mode}" != "text" ]這行,他的第一個就是你默認啟動的那個內核,如果你剛編譯的內核是在下面,就把代表這個內核的幾行代碼移到第一位如:
menuentry 'Ubuntu, with Linux 3.2.0-35-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 9961c170-2566-41ac-8155-18f231c1bea5
linux/boot/vmlinuz-3.2.0-35-generic root=UUID=9961c170-2566-41ac-8155-18f231c1bea5 ro quiet splash $vt_handoff
initrd/boot/initrd.img-3.2.0-35-generic
}
當然你也可以修改 set default="0"來決定用哪個,看看你的內核在第幾位,default就填幾,不過我用過這種方法,貌似不好用。
重啟過後你編譯的內核源碼就成功地運行了,如果出現問題,比如滑鼠不能用,usb不識別等問題就好好查查你的make menuconfig這一步,改好後就萬事ok了。
最後再用uname -r看看你的linux內核版本。是不是你剛下的那個呢!有沒有成就感?
打字不易,如滿意,望採納。
㈢ 我安裝了linux,怎麼才能看到源代碼呢
linux內核的源代碼都在www.hernel.org的/pub/linux目錄下軟體的源代碼在該一般項目主頁或發行版的「源」,或其他開源軟體的網站or: 隨著linux的逐步普及,現在有不少人對於Linux的安裝及設置已經比較熟悉了。與Linux 的蓬勃發展相適應,想深入了解Linux的也越來越多。而要想深入了解Linux,就需要閱讀和分析linux內核的源代碼。 Linux的內核源代碼可以從很多途徑得到。一般來講,在安裝的linux系統下,/usr/src/linux目錄下的東西就是內核源代碼。另外還可以從互連網上下載,解壓縮後文件一般也都位於linux目錄下。內核源代碼有很多版本,目前最新的穩定版是2.2.14。許多人對於閱讀Linux內核有一種恐懼感,其實大可不必。當然,象Linux內核這樣大而復雜的系統代碼,閱讀起來確實有很多困難,但是也不象想像的那麼高不可攀。只要有恆心,困難都是可以克服的。也不用擔心水平不夠的問題,事實上,有很多事情我們不都是從不會到會,邊干邊學的嗎?任何事情做起來都需要有方法和工具。正確的方法可以指導工作,良好的工具可以事半功倍。對於Linux 內核源代碼的閱讀也同樣如此。下面我就把自己閱讀內核源代碼的一點經驗介紹一下,最後介紹Window平台下的一種閱讀工具。對於源代碼的閱讀,要想比較順利,事先最好對源代碼的知識背景有一定的了解。對於linux內核源代碼來講,我認為,基本要求是:1、操作系統的基本知識;2、對C語言比較熟悉,最好要有匯編語言的知識和GNU C對標准C的擴展的知識的了解。另外在閱讀之前,還應該知道Linux內核源代碼的整體分布情況。我們知道現代的操作系統一般由進程管理、內存管理、文件系統、驅動程序、網路等組成。看一下Linux內核源代碼就可看出,各個目錄大致對應了這些方面。Linux內核源代碼的組成如下(假設相對於linux目錄):arch 這個子目錄包含了此核心源代碼所支持的硬體體系結構相關的核心代碼。如對於X86平台就是i386。include 這個目錄包括了核心的大多數include文件。另外對於每種支持的體系結構分別有一個子目錄。init 此目錄包含核心啟動代碼。mm 此目錄包含了所有的內存管理代碼。與具體硬體體系結構相關的內存管理代碼位於arch/*/mm目錄下,如對應於X86的就是arch/i386/mm/fault.c 。drivers 系統中所有的設備驅動都位於此目錄中。它又進一步劃分成幾類設備驅動,每一種也有對應的子目錄,如音效卡的驅動對應於drivers/sound。ipc 此目錄包含了核心的進程間通訊代碼。moles 此目錄包含已建好可動態載入的模塊。fs Linux支持的文件系統代碼。不同的文件系統有不同的子目錄對應,如ext2文件系統對應的就是ext2子目錄。kernel 主要核心代碼。同時與處理器結構相關代碼都放在arch/*/kernel目錄下。net 核心的網路部分代碼。裡面的每個子目錄對應於網路的一個方面。lib 此目錄包含了核心的庫代碼。與處理器結構相關庫代碼被放在arch/*/lib/目錄下。scripts此目錄包含用於配置核心的腳本文件。Documentation 此目錄是一些文檔,起參考作用。清楚了源代碼的結構組成後就可以著手閱讀。對於閱讀方法或者說順序,有所謂的縱向與橫向之分。所謂縱向就是順著程序的執行順序逐步進行;所謂橫向,就是分模塊進行。其實他們之間不是絕對的,而是經常結合在一起進行。對於Linux源代碼來講,啟動的代碼就可以順著linux的啟動順序一步一步來,它的大致流程如下(以X86平台為例):./larch/i386/boot/bootSect.S-->./larch/i386/boot/setup.S-->./larch/i386/kernel/head.S-->./init/main.c中的start_kernel()。而對於象內存管理等部分,則可以單獨拿出來進行閱讀分析。我的體會是:開始最好按順序閱讀啟動代碼,然後進行專題閱讀,如進程部分,內存管理部分等。在每個功能函數內部應該一步步來。實際上這是一個反復的過程,不可能讀一遍就理解。俗話說:「工欲善其事,必先利其器」。 閱讀象Linux核心代碼這樣的復雜程序令人望而生畏。它象一個越滾越大的雪球,閱讀核心某個部分經常要用到好幾個其他的相關文件,不久你將會忘記你原來在干什麼。所以沒有一個好的工具是不行的。由於大部分愛好者對於Window平台比較熟悉,並且還是常用Window系列平台,所以在此我介紹一個Window下的一個工具軟體:Source Insight。這是一個有30天免費期的軟體,可以從www.sourcedyn.com下載。安裝非常簡單,和別的安裝一樣,雙擊安裝文件名,然後按提示進行就可以了。安裝完成後,就可啟動該程序。這個軟體使用起來非常簡單,是一個閱讀源代碼的好工具。它的使用簡單介紹如下:先選擇Project菜單下的new,新建一個工程,輸入工程名,接著要求你把欲讀的源代碼加入(可以整個目錄加)後,該軟體就分析你所加的源代碼。分析完後,就可以進行閱讀了。對於打開的閱讀文件,如果想看某一變數的定義,先把游標定位於該變數,然後點擊工具條上的相應選項,該變數的定義就顯示出來。對於函數的定義與實現也可以同樣操作。別的功能在這里就不說了,有興趣的朋友可以裝一個Source Insight,那樣你閱讀源代碼的效率會有很大提高的。怎麼樣,試試吧!
㈣ 如何查看linux系統源碼
一般在Linux系統中的/usr/src/linux*.*.*(*.*.*代表的是內核版本,如2.4.23)目錄下就是內核源代碼(如果沒有類似目錄,是因為還沒安裝內核代碼)。另外還可從互連網上免費下載。注意,不要總到http://www.kernel.org/去下載,最好使用它的鏡像站點下載。請在http://www.kernel.org/mirrors/里找一個合適的下載點,再到pub/linux/kernel/v2.6/目錄下去下載2.4.23內核。
代碼目錄結構
在閱讀源碼之前,還應知道Linux內核源碼的整體分布情況。現代的操作系統一般由進程管理、內存管理、文件系統、驅動程序和網路等組成。Linux內核源碼的各個目錄大致與此相對應,其組成如下(假設相對於Linux-2.4.23目錄):
1.arch目錄包括了所有和體系結構相關的核心代碼。它下面的每一個子目錄都代表一種Linux支持的體系結構,例如i386就是Intel CPU及與之相兼容體系結構的子目錄。PC機一般都基於此目錄。
2.include目錄包括編譯核心所需要的大部分頭文件,例如與平台無關的頭文件在include/linux子目錄下。
3.init目錄包含核心的初始化代碼(不是系統的引導代碼),有main.c和Version.c兩個文件。這是研究核心如何工作的好起點。
4.mm目錄包含了所有的內存管理代碼。與具體硬體體系結構相關的內存管理代碼位於arch/*/mm目錄下。
5.drivers目錄中是系統中所有的設備驅動程序。它又進一步劃分成幾類設備驅動,每一種有對應的子目錄,如音效卡的驅動對應於drivers/sound。
6.ipc目錄包含了核心進程間的通信代碼。
7.moles目錄存放了已建好的、可動態載入的模塊。
8.fs目錄存放Linux支持的文件系統代碼。不同的文件系統有不同的子目錄對應,如ext3文件系統對應的就是ext3子目錄。
Kernel內核管理的核心代碼放在這里。同時與處理器結構相關代碼都放在arch/*/kernel目錄下。
9.net目錄里是核心的網路部分代碼,其每個子目錄對應於網路的一個方面。
10.lib目錄包含了核心的庫代碼,不過與處理器結構相關的庫代碼被放在arch/*/lib/目錄下。
11.scripts目錄包含用於配置核心的腳本文件。
12.documentation目錄下是一些文檔,是對每個目錄作用的具體說明。
一般在每個目錄下都有一個.depend文件和一個Makefile文件。這兩個文件都是編譯時使用的輔助文件。仔細閱讀這兩個文件對弄清各個文件之間的聯系和依託關系很有幫助。另外有的目錄下還有Readme文件,它是對該目錄下文件的一些說明,同樣有利於對內核源碼的理解。
在閱讀方法或順序上,有縱向與橫向之分。所謂縱向就是順著程序的執行順序逐步進行;所謂橫向,就是按模塊進行。它們經常結合在一起進行。對於Linux啟動的代碼可順著Linux的啟動順序一步步來閱讀;對於像內存管理部分,可以單獨拿出來進行閱讀分析。實際上這是一個反復的過程,不可能讀一遍就理解。
㈤ 網站下載 php網頁下載
/*
*功能:php多種方式完美實現下載遠程圖片保存到本地
*參數:文件url,保存文件名稱,使用的下載方式
*當保存文件名稱為空時則使用遠程文件原來的名稱
*/
functiongetImage($url,$filename='',$type=0){
if($url==''){returnfalse;}
if($filename==''){
$ext=strrchr($url,'.');
if($ext!='.gif'&&$ext!='.jpg'){returnfalse;}
$filename=time().$ext;
}
//文件保存路徑
if($type){
$ch=curl_init();
$timeout=5;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$img=curl_exec($ch);
curl_close($ch);
}else{
ob_start();
readfile($url);
$img=ob_get_contents();
ob_end_clean();
}
$size=strlen($img);
//文件大小
$fp2=@fopen($filename,'a');
fwrite($fp2,$img);
fclose($fp2);
return$filename;
}
㈥ 如何編譯安裝PHP擴展
一開始安裝PHP的時候,我們並不知道需要哪些擴展,所以只有等到我們真正用到的時候才想辦法去安裝。
安裝PHP擴展最簡單的辦法就是
sudo apt-get install php5-xxx
但有的時候並非我們所願,源裡面並沒有我們需要的擴展,這時候就需要我們下載源碼自己編譯安裝了。
這篇文章中我將介紹在本地Linux平台下編譯安裝PHP擴展的方法。
現在網站根目錄下創建 index.php 列印基本的配置信息,以驗證我們是否安裝成功。
配置編譯環境
我們需要安裝一些編譯必須的庫,還有 php-dev 版本
Ubuntu
sudo apt-get install php5-dev php5-mysql gcc libpcre3-dev
Fedora
sudo yum install php-devel php-mysqlnd gcc libtool
RHEL
sudo yum install php-devel php-mysql gcc libtool
Suse
yast2 -i php5-pear php5-devel php5-mysql gcc
安裝擴展
PHP有兩種可供安裝的擴展:一種是PHP原生的但是默認沒有安裝的,另一種的第三方開發的擴展。
下面依次介紹兩種擴展的安裝方法:
安裝之前我們需要一份和當前機器上相同版本的PHP源碼
cd code
wget http://cn2.php.net/distributions/php-5.5.9.tar.bz2
tar xvjf php-5.5.9.tar.bz2
cd php-5.5.9
前往此處 下載相應的源碼包。
在 /ext 目錄下面可以看到所有PHP原生的擴展。
安裝原生擴展
以 PHP-intl 為例,這是PHP國際化的擴展。
為了安裝這個擴展我們需要先安裝ICU 庫
sudo apt-get install icu-devtools icu-doc libicu-dev libicu52 libicu52-dbg
ICU 安裝成功之後進入/ext/intl 目錄:
cd intl
phpize
./configure --enable-intl
make
sudo make install
下面解釋一下上面的每個命令:
phpize : 是用來擴展php擴展模塊的,通過phpize可以建立php的外掛模塊
./configure --enable-intl: 配置編譯環境,相當於告訴編譯器編譯PHP源碼的時候加上intl這個擴展。
make: 將會把源碼編譯成 intl.so
make install : 將會把 intl.so 移動到當前安裝的 PHP 的擴展目錄。
接下來我們要做的就是在php.ini中啟用這個擴展,這一步將會在最後給出示例。
安裝第三方擴展
將以這個 擴展為例,這個擴展主要實現了PHP識別條形碼的功能。
先安裝必要的依賴
sudo apt-get install pkg-config
git clone https://github.com/mongodb/mongo-php-driver
cd mongo-php-driver
phpize
./configure
make
sudo make install
將會生成一個文件,將其拷貝到PHP的擴展目錄下面。
啟用擴展
在php.ini中啟用擴展的方式有很多:
直接在php.ini文件中添加 extension=mongo.so,這是最簡單直接的方法。
也可以單獨建一個ini文件,然後在php.ini中包含這些文件就可以了。
下面介紹一下第二種方法:
cd `/etc/php5/mods-available`
這個目錄里可以放新建的ini文件,然後執行
sudo touch mongo.ini
echo "extension=mongo.so" | sudo tee -a mongo.ini
sudo touch intl.ini
echo "extension=intl.so" | sudo tee -a intl.ini
上面的命令將會創建ini文件,並且寫如相應的配置信息。
然後執行下面的命令啟用擴展即可(需要安裝 php5enmod 工具):
sudo php5enmod mongo
sudo php5enmod intl
如果未安裝 php5enmod 工具,則需要手動配置:
ln -s /etc/php5/mods-available/mongo.ini /etc/php5/cli/conf.d/mongo.ini
ln -s /etc/php5/mods-available/intl.ini /etc/php5/cli/conf.d/intl.ini
ln -s /etc/php5/mods-available/mongo.ini /etc/php5/fpm/conf.d/mongo.ini
ln -s /etc/php5/mods-available/intl.ini /etc/php5/fpm/conf.d/intl.ini
最後在執行一下重啟操作就可以了:
sudo service nginx restart
sudo service php5-fpm restart
㈦ ubuntu系統下怎麼編譯內核文件
一、下載源代碼和編譯軟體的准備
安裝有關編譯程序。安裝make ,gcc, make-kpkg,運行menuconfig等等和編譯內核相關的工具。安裝不了,請檢查/etc/apt/sources.list 文件。有關命令:代碼:$sudo apt-get install build-essential kernel-package libncurses5-dev
二、解壓源代碼注意,網上很多教程上說應該解壓到 /usr/src,純屬以訛傳訛,linux掌門人linus說解壓到任何目錄上都可以。當然,linus的說法是正確的。我放在自己的主目錄下的src目錄。如果你下載源代碼是放到自己的主目錄下或者運行上面的wget下載的,那麼運行下列命令:代碼:$ cd ~$ mkdir src && tar jfx linux-2.6.25.10.tar.bz2 -C src/現在,源代碼就在 ~/src/linux-2.6.25.10進入源代碼的目錄,准備下一步的工作。後面都在這個目錄裡面進行。代碼:$ cd ~/src/linux-2.6.25.10
三、開始編譯前的准備工作。首先,清理以前編譯時留下的臨時文件。如果是剛剛解開的包,不需要執行這步。如果是第二次或者是第n次編譯,那麼一定要執行。相關命令如下:代碼:$ sudo make mrproper網上很多教程上說把現在使用的內核的config拷貝過來參考,據實驗,是不需要的,ubuntu還有debian會自動做這步。不過這條命令倒是可以學習一下。當然你可以將以前的配置拷貝過來。命令:代碼:cp /boot/config-`uname -r` ./.config
四、開始配置內核選項。相關命令:代碼:$sudo make menuconfig配置用到的鍵只有幾個,esc退出菜單;空格改變選項狀態;游標鍵上下左右移動,回車選定。選項意義:M是編譯成可以隨時加入的模塊,*是編譯進入內核,空就是不要。配置選項非常多,具體配置可以參考金步國先生翻譯的資料:Linux 2.6.19.x 內核編譯配置選項。 請大家遵循一個原則,如果你自己使用的內核已經選用了某個選項,如果你沒用充分的理由,不要隨便改動。這樣雖然內核不那麼精簡,但是不容易出現問題。我們可以精簡的部分是硬體模塊部分,對於自己沒有的硬體要毫不猶豫的清除。如果你很執著,或者你有潔癖,你也可以一項項對過去,按照金步國先生的資料描述去選擇基本上沒有問題。
五、必須強調的幾個選項:1、
在「General setup」裡面的「Prompt for development and/or incomplete
code/drivers」金步國認為是不需要。但是如果你的硬體比較新,那幾乎是必須選的,這樣,我們才可以找到4965無線網卡,alsa聲音驅動等
等。Kernel log buffer size 我選15,雙核。如果你用ia64,要選16。Control Group support 集群支持?可以不要Choose SLAB allocator (SLUB (Unqueued Allocator)) 內存管理模式slab和slub選擇slub。
2、在「Block layer」里,假如沒有2TB的硬碟,就去掉:Support for Large Block Devices 。Support for Large Single Files 也不需要,誰有2TB的文件?
3、Processor type and features中是關於cpu的,要認真選。Symmetric multi-processing support是打開多核的開關,我的cpu是雙核的,選中。Processor family (Core 2/newer Xeon) 我的是Core 2/newer Xeon。找到自己的cpu後,把Generic x86 support選項取消。Subarchitecture Type 選(PC-compatible)Maximum number of CPUs 輸入自己的核心數目,我輸入2。SMT (Hyperthreading) scheler support說的是超線程技術,P4有支持的,我的t8100不支持,目前大部分市場上的家用cpu都不支持。High Memory Support (4GB) 1G以下選1G;我是3G,選4G;4G以上的選16G在「 Timer frequency 」里,默認是250Hz,較新的cpu都可以選擇了1000Hz,性能更好。
4、Power management options中把APM (Advanced Power Management) BIOS support關閉。現在的電腦都用acpi了。CPU Frequency scaling 是筆記本cpu節電技術Default CPUFreq governor (conservative) cpu節電模式有四個,筆記本默認選conservative比較好。ACPI Processor P-States driver 必須選,不然CPU Frequency就不能用。後面的可選自己硬體相關的,我選的是Intel Enhanced SpeedStep和 Intel Speedstep on ICH-M chipsets,其他的統統消滅。
5、Bus options的選擇:Bus options (PCI, PCMCIA, EISA, MCA, ISA)PCI support PCI Express support 現在新買的機器基本上都是PCI Express了ISA support 較新的新機器沒有ISA設備,可以去掉MCA support 去掉NatSemi SCx200 support 去掉PCI Hotplug Support Support for PCI Hotplug (EXPERIMENTAL) 如果沒有PCI熱插拔設備,去掉這里的選項可以考慮全部編譯進內核,而不是以模塊形式存在。
6、Device Drivers是重點,由於linux不但面向個人工作站,更多的是面向伺服器的應用,所以可以把自己機器上沒有的硬體全部去掉,而不用面面俱到。但是通用型的選項要慎重。比如在網卡的部分,除了我的千兆網卡 Broadcom Tigon3 support和4965無線網卡Intel Wireless WiFi 4965AGN,其餘的硬體支持統統去掉。再比如音效卡部分,我的是hd音效卡,我只是在PCI devices中,選intel hd 音效卡,再選Build IDT/Sigmatel HD-audio codec support,除此之外的硬體支持全部去掉。
音效卡還有一個細節,在ubuntu7.10裡面, 需要在/etc/modprobe.d/alsa-base後面添加options
snd-hda-intel probe_mask=1
model=3stack,這樣我的筆記本喇叭才可以發聲,不然只有外接耳機或者音箱。這次編譯以後,這個動作就不必了,但是兩個耳機插口只有一個可以用
了。再比如我的電腦中沒有agp,就可以直接把agp相關的選項全部取消。要注意的:ATA/ATAPI/MFM/RLL support Include IDE/ATA-2 DISK support 如果你的/boot是放在IDE硬碟上,那麼這里一定要選*,選M都不行。否則啟動時會出現「waiting for root file system」的提示而停滯不前。 SCSI emulation support 要用刻錄機,必須選。SCSI device support 現在都是SATA硬碟,一定要選* SCSI disk support 如果你的/boot放在SATA硬碟上,一定要選*。
SCSI CDROM support 雖然康寶刻錄機是ide介面的,但是必須把它當成scsi介面的,這是老問題了。用刻錄機,必須選。
Graphics supportSupport for frame buffer devices 選中,進入選擇 VESA VGA graphics support 選上,不然字元界面啟動會有問題,後面的顯卡選擇:由於我的顯卡是nvidia 8400gs,要自己安裝nvidia公司的驅動,所以一個都沒有選。這樣導致ubuntu開機動畫會出問題,我索性在grub中的splash字元全部刪除,把開機動畫關閉。字元界面很正常。 Console display driver support 有人開機後字元控制台錯誤,就是這部分選項沒有選,出問題了。 Framebuffer Console support 需要打開。
Bootup logo 開機圖標,會在自檢的畫面上加上個性圖標。需要在grub上添加「vga=」的選項 簡稱fuse。是必選的,如果你要用windows分區。
CD-ROM/DVD Filesystems ISO 9660 CDROM file system support 一般選*DOS/FAT/NT Filesystems VFAT (Windows-95) fs support 有FAT32分區就選*吧 NTFS file system support 有NTFS分區就選*吧 NTFS write support 如果想對 NTFS分區進行寫操作,選*必須將啟動盤的文件系統編譯進內核,默認是編譯成模塊,這樣無法啟動系統。ubuntu採用的文件系統是ext3,請把ext2,ext3相關的必要選項都編譯進入內核。
8、Virtualization這個大類是我多花幾百元買t8100的主要原因,因為t8100支持intel vt技術使linux上的虛擬機的性能大幅度提高。這里的選項我除了amd的,其他都編譯成模塊。
9、全部設置完成,最後一項是保存設置。按照我的習慣,先在上一層目錄保存一個備份,文件名類似 ../config20080630然後再保存到當起目錄,文件名 .config退出設置程序。
六、開始編譯內核。ubuntu的工具是make-kpkg,和其他的發行版相比,步驟相對簡單。相關命令:代碼:$sudo make-kpkg clean 這條命令好像不要超級許可權,很多資料上說要,不過這不是原則問題。
$ sudo make-kpkg -initrd --initrd --append-to-version=dell1400 kernel_image kernel-headers上述命令中的dell1400可以用自己喜歡的字元代替,最後的字元一定是數字.輸完上述命令回車之前,建議大家把瀏覽器還有別的運用程序都關掉,機器開始的工作比較艱苦。
我的機器大概十幾分鍾。
七、安裝內核編譯完成就是安裝工作。編譯好的內核在上一層目錄。包括linux-headers-...-_i386.deb和linux-image-...-i386.deb兩個文件,如果你不搞開發的話,只要安裝內核就可以,頭文件以後要用的時候再說。安裝相關命令:
代碼:$ cd ..$ sudo dpkg -i linux-image-(按tab鍵)文件名很長,如果不用tab自動補足是不可能的,tab鍵萬歲。安裝完成後和老內核比較一下大小代碼:
$ ls -l /boot/
八、重新啟動驗證新內核。代碼:$ sudo reboot
九、顯卡驅動如果你的顯卡和我一樣是nvidia顯卡,啟動之後往往無法正常進入x-window。即使能看到gdm登錄界面,效果也是很差的。那麼就要安裝nvidia驅動。用ctrl+alt+f1 進入字元命令行,輸入用戶名,密碼登錄。 #ps ax看看和gdm相關的進程,把這些進程全部關閉;用sudo /etc/init.d/gdm stop有可能有一個進程沒有關閉:#kill 進程號然後安裝nvidia顯卡驅動,當然驅動要先下好,到nvidia驅動所在的目錄里,運行:# sh ./NVIDIA-Linux-x86-173.14.12-pkg1.run重新啟動以後就ok。要用nvidia的驅動,每次升級內核都要這么做。
十、無線網卡相關的內核選項是Networking --->Wireless --->Generic IEEE 802.11 Networking Stack (mac80211)還有4965的驅動。4965
無線網卡驅動雖然已經編入內核,但沒有firmware無法使用。需要把原來內核的firmware拷貝到新內核對應的目錄,名字和內核一致,我的內核是
linux-image-2.6.25.10dell1400,那建的目錄名就是2.6.25.10dell1400。代碼:具體命令:$ cd /lib/firmware/$ sudo mkdir 2.6.25.10dell1400把你的老內核中的4965的firmware拷貝過來。$ sudo cp 2.6.24-16-generic/* 2.6.25.10dell1400/上面的命令和下面的命令是等價的:$ cd /lib/firmware/$ sudo cp -R 2.6.24-16-generic/ 2.6.25.10dell1400/
重新啟動系統,無線網卡就正常了。
附編譯使用的機器配置:dell vostro 1400,t8100,nvidia 8400cs顯卡,內置SigmaTel STAC9228晶元的音效卡,4965無線網卡,BCM5906M千兆網卡,3G內存,160G硬碟,combo刻錄。
編譯系統版本:ubuntu 8.04桌面版.
㈧ 如何給無光碟機無顯卡的伺服器安裝linux系統
1.用RedHat 9.0第一張安裝光碟引導開機,系統在開機後會出現安裝菜單。
安裝菜單中提供了供用戶選擇的圖形和文本模式的安裝方式,按回車選擇圖形模式進行安裝。在進入圖形畫面的安裝模式前,RedHat 9.0比以往的版本多了一個環節,那就是提示對安裝光碟介質進行檢測, 也可按「Skip」按鈕跳過檢測。
2.接著安裝程序會自動檢測硬體,包括視頻卡(顯示卡)、顯示器和滑鼠的配置,然後進入圖形畫面的安裝向導。在出現「語言選擇」的畫面中,我們選擇「簡體中文」,這樣接下去的安裝過程界面的文字都會改為中文。在「鍵盤配置」畫面中接受默認的「美國英語式」鍵盤。選擇「下一步」,在「滑鼠配置」窗口,系統自動檢測出滑鼠的配置。
3.選擇安裝類型,安裝類型包含四種不同的安裝方式:個人桌面、工作站、伺服器和定製。「伺服器」的安裝適用於專職的伺服器使用,「個人桌面」和「工作站」適合於初學者,為了讓你更多地了解安裝過程,我們將選擇「定製」類型進行安裝。
4.磁碟分區設置:確認了「定製」方式之後,系統會出現「磁碟分區設置」窗口,它提供了兩種分區方式:「自動分區」和「用Disk Druid手工分區」。
「自動分區」是一個危險功能,因為它會自動刪除原先硬碟上的數據,並格式化成為Linux的分區文件系統。所以除非計算機上沒有其他操作系統,你才可以使用。建議採用Disk Druid程序進行手動分區,它的圖形化界面比早期RedHat的fdisk程序操作更簡單。