1. 我從網上下了個linux,但不知道怎麼裝,哪位電腦高手幫個忙,小弟先謝了.
安裝Linux系統
3.1 准備工作
在安裝任何Linux發行版本之前,你首先應該做一些准備工作,包括收集系統信息,准
備安裝版本等等,特別地,你應該進行一個安裝規劃。我們現在就來介紹一下安裝之前
的准備要點。
3.1.1 獲取Linux發行版
Linux發行版本可以從網路下載,也可以直接購買發行光碟。
目前下載Linux發行版本的站點相當多,如果你有一條64KB以上的DDN或者ISDN專線,
並且有讓下載工具連續運行幾天幾夜的准備,那麼下載總是要比購買cdrom來的容易一些
(因為Linux版本升級非常快,往往升級版推出半個月以後才能在本地買到發行盤)。
如果你不涉及國際流量問題,可以直接到發行商的主站點去下載光碟映像,然後燒制
成CD-R,或者拷貝到硬碟上安裝。由於安裝時的文件名大小寫問題,我們一般建議將下
載的文件放到你的本地伺服器上,通過ftp安裝,然而這要求你首先有一台基本的linux
伺服器。否則,你就需要燒制CD-R了。
如果有國際流量問題,可以考慮到教育網內的某個站點下載。另外,Turbo Linux公司
設有國內分公司,可以到www.turbolinux.com.cn去下載TLC的最新版本。
到市場上的軟體連鎖店直接購買Linux 光碟發行版,用光碟來安裝是最方便快捷的。
目前RedHat,TurboLinux和corel都可以在連鎖店買到。一定要注意,大部分Linux發行
版本有「完整版」和「精簡版」的區分,例如TurboLinux有1CD,3 CD和10CD三個版本。
如果你是用Linux為你的單位構造網路伺服器,我們總是建議你購買完整版本,畢竟價格
差不多。不過如果你想要使用SuSE之類不常見的版本,你還是得把網路打開轉上幾天幾
夜。
我們建議你用一種Linux版本為基礎,然後抽取別的版本中的優秀產品組合成你的服
務器軟體。作為基點,RedHat(3CD版)和TurboLinux(10CD)都不錯。
3.1.2 准備伺服器硬體
①CPU
Linux 在Intel 80386, 80486, Pentium, Pentium Pro, Pentium II, Pentium
III ,Celeron ,AMD K6-2 (3DNow),AMD K6-3這幾款cpu下能很好的工作,而非Inte
l 的 CPU ,主要包括:Cyrix 6x86,AMD K6,AMD K5,AMD,Cyrix MediaGX chip,WA
RNING出現問題的機會似乎比較多。需要補充的是6x86MX據說在Linux下的表現遠好於原
來的6x86。不過,話說回來,你真的窮到要用6x86MX做伺服器的程度嗎?
一台裝配PII以上CPU的Linux在服務量不是非常大時就能很好的工作,如果配備雙CPU
那就可以和一台中檔的名牌伺服器相媲美。Linux對雙CPU的支持還算不錯,但如果你是
購買的發行版本,那麼你在安裝後經常需要重新編譯內核才能充分發揮雙CPU的威力。詳
情可以參考第四章。
②主版
Linux支持市面上出售的大多數主板,在選購主板應該考慮是不是支持你的CPU,如果
採用雙CPU還考慮買一塊兼容的主板。筆者認為在主版的選購時要注意名牌效應,條件允
許一定要買名牌的。
③內存
Linux對內存的品牌沒有特殊的限制,只是要求內存最小是 16MB,當然這個數字就我
感覺跟說用32MB內存跑Windows NT差不多。大體上,作為一台伺服器,你可以從64MB內
存開始,至於多到多少,反正上限是2GB,現在條子這么便宜,你自己看看你的機器上有
多少個槽就行了。Linux對內存的質量要求比較一般。
④Linux支持的硬碟控制器/硬碟
Linux 支持標準的IDE、EIDE、MFM/RTL控制器。
IDE設備在工作是要佔用CPU的處理時間,如果同時有幾百個訪問,這樣佔用CPU處理的
時間就急劇增加,系統的負擔急劇上升,如果選用SCSI介面卡設備的話就可提高系統的
效率。Linux 並不支持並口的 SCSI 卡,在Linux下兼容的SCSI 列表么……反正我不想
介紹了,你自己去看兼容性列表,目前的Linux內核對BusLogic,AHA之類的大牌SCSI卡
支持還不錯,但是肯定不如windows NT那麼多。實在不行你可以跟零售商說:「不支持
Linux我可不要啊。」如果你真的預算緊張,那麼也可以使用IDE硬碟,不過目前的Linu
x內核似乎對UDMA66不能正確支持,你可能仍然使用標準的DMA-33硬碟。
Linux 也支持磁碟陣列。
⑤網卡
Linux 以其強大的網路功能而著稱,選擇一塊合適的網卡是十分必要的。在選擇網卡
是要注意網的性能和兼容性。對於用Linux作為伺服器的用戶選擇一塊100M的乙太網卡可
在很大程度上提高服務效率。下面就是一些在Linux下能很好工作的網卡:
3Com Etherlink III (3c509 EISA)
3Com 3c59x, 3c900, 3c905 (Not the 3c905B and C, see below) 3c579
Digital DE425, DE434, DE435, DE450, DE500 (uses DE4x5)
Digital 2104x,2114x ``Tulip'' chip cards, SMC DEC21041 , SMC PCI EtherPowe
r (uses Tulip driver)
Intel EEPro100 (PCI),EtherExpress i82557/i82558 PCI Pro/10+。
3Com 3c503, 3c503/16, 3c505, 3Com Etherlink 16 (3c507)
Allied Telesis AT1500 (uses Lance driver), AMD Lance/PCnet, HP J2405A, NE2
100, NE2500
AMD PCnet32 and AMD PCnetPCI
Apricot Xen-II, 680x0 VME (82596 chipset)
Ansel Communications AC3200 EISA
AT&T GIS WaveLAN ISA
Alteon AceNIC Gigabit Ethernet Driver
Allied Telesis AT1700
Aironet Arlan 655
Cabletron E21xx
Crystal LAN CS8900/CS8920
Comtrol Hostess SV11
Compaq Netelligent 10/100 TX PCI UTP, 10 T PCI UTP, Compaq Integrated
NetFlex 3/P, Compaq Netelligent Dual 10/100 TX PCI UTP, Compaq Netelligent I
ntegrated 10/100 TX UTP, Compaq Netelligent 10/100 TX Embedded UTP, Compaq N
etelligent 10 T/2 PCI UTP/Coax, Compaq Netelligent 10/100 TX UTP, Compaq Net
Flex 3/P
100VG-AnyLan Network Adapters, HP J2585B, J2585A, J2970, J2973, J2573,Comp
ex ReadyLink ENET100-VG4 & FreedomLine 100/VG
D-Link DE600, DE620 pocket adapters
D-Link DFE-930-TX PCI 10/100, VIA Rhine PCI Fast Ethernet cards with eithe
r the VIA VT86c100A Rhine-II PC or 3043 Rhine-I
Digital DEPCA & EtherWORKS, DE100, DE101, DE200 Turbo, DE201 Turbo, DE202
Turbo, DE210, DE422
Digi Intl. RightSwitch SE-X EISA and PCI
EtherWORKS 3 (DE203, DE204, and DE205)
Fujitsu FMV-181/182/183/184
HP PC-LAN Plus
HP PC-LAN (27245B and 27xxx series)
HP AnyLAN, 10/100VG, PCLAN (J2577, J2573, 27248B, )
Intel EtherExpress 16
Intel EtherExpress i82595 Pro10/10+ (ISA only)
MiCom-Interlan NI5010 ethercard
Mylex LNE390 EISA cards (LNE390A, LNE390B)
NE1000/2000 and compatible ISA cards
NE2000 (PCI), RealTEk RTL-8029, Winbond 89C940, Compex RL2000, KTI ET32P2,
NetVin NV5000SC, Via 82C926, SureCom NE3
NI5210 card (i82586 Ethernet chip), NI6510, ni6510 EtherBlaster
Novell NE3210 EISA Network Adapter
Yellowfin (and Compatibles)
G-NIC
Racal-Interlan ES3210 EISA Network Adapter
RedCreek Communications PCI
RealTek cards using RTL8129 or RTL8139 Fast Ethernet chipsets
Sangoma S502/S508 multi-protocol FR, Sangoma S502A, ES502A, S502E, S503, S
507, S508, S509
SMC Ultra / EtherEZ (ISA, 8k 83c790), SMC 9000 series, SMC 9000 series, SM
C Ultra32 EISA (32K) SMC EtherPower II 9432 PCI (83c170/175 EPIC series),
Tangent ATB-II, Novel NL-10000, Daystar Digital LT-200, Dayna DL2000, Dayn
aTalk PC (HL), COPS LT-95, Farallon PhoneNET PC II & III
Western Digital WD8003, WD8013
Any IBM Token Ring card that does not use DMA
SysKonnect Token Ring ISA/PCI Adapter TR4/16(+) ISA or PCI, TR4/16 PCI, an
d older SK NET TR4/16 ISA cards
IBM PCI tokenring cards based on the Pit/Pit-Phy/Olympic chipset
IBM Tropic chip-set cards
Linux支持的網卡品牌很多,詳細的情況可以參考Linux的硬體兼容性列表(/usr/doc
/HOWTO/HARDWARE-HOWTO)。
⑥顯示卡
就我看來,伺服器的圖形界面完全是不必要的,Solaris的那個openlook確實很漂亮,
但是有誰用呢,還不如乾脆用M$呢。對於Linux更是如此,你只要弄一塊湊合著能上102
4*768的4MB顯卡就行了,當然前提是Linux的XFree86兼容。我推薦的是Trident 9750和
S3 virge,兼容性絕對沒問題。如果你覺得這種東西實在太古老了,呵呵。
3.1.3 准備安裝規劃
為了安裝Linux, 必須為它准備硬碟空間。這個硬碟空間必須和您的計算機上安裝的
其他操作系統(如Windows, OS/2或著其他版本的Linux)所使用的硬碟空間分開,或者是
一個獨立的硬碟。在你決定創建Linux分區之前最好先備份你的重要數據,以免造成不必
要的損失。實際上,既然你准備安裝的是一台伺服器,那麼你乾脆把整個硬碟都交給Li
nux得了。
Linux整個系統可安裝在1GB左右的硬碟空間上,可是,我們安裝Linux是為了讓它完成
如:Web,Mail,Ftp等一些服務,這些服務真的開啟之後,對硬碟的空間要求特大,比
如你開啟一有2G大小的Ftp服務,你至少要有3G的硬碟空間,我們單位有的是一個28G的
硬碟可是在不到一年的應用中就使用了80%,如果你正在規劃一個伺服器是,那你一定要
考慮你選擇一塊容量大小合適的硬碟,不要等到不夠用時再想辦法,要加一個硬碟容易
,改變/home和/var的目錄結構卻可能是非常討厭的。
Linux 在裝時需要建立兩種類型的分區,即「Linux native」硬碟分區和「Linux s
wap」交換分區。
盡管可以將Linux裝在一個單一的大分區中(根據我們已經提到的分區原則),但我們推
薦你把系統分開安裝在不同的分區上。如果你有一個裝滿的8G以上的分區,一旦發生文
件系統問題,你肯定會有麻煩的。
下面是我們建議的分區規劃:
一個交換分區 -- 交換分區用來支持虛擬內存。 您必須創建交換分區, 即使您有更
多的內存,仍然推薦使用交換分區。 目前的交換分區已經可以設置到非常大,不過太大
也不見得有什麼意義,我們建議控制在100MB以上,500MB以下,而且可以使用多個交換
分區。需要注意的是,如果你設置了多個交換分區,那麼Linux安裝程序通常只會激活第
一個,你需要手工啟動其它的交換分區,詳見第四章。
一個根分區 -- 根分區是/(根目錄)所在地.。它只需要啟動系統所須的文件和系統配
置文件,這些文件並不大。但是由於預設的/tmp(存儲臨時文件的目錄)也在這個目錄下
面,所以應該留出足夠的空間,一般可以設置在500MB到1GB。不過如果你按照我們下面
解釋的專門創建了/tmp分區,那麼就可以小一點,只要300MB左右。
一個 /usr 分區 -- /usr 是Linux系統大部分應用軟體的所在的地方。 根據您交換安
裝的包的數量以及發行版本的不同, 這個分區應該在300MB到1500MB之間。 如果可能,
將最大的空間用於/usr分區。 任何您以後將要安裝的基於RPM的包都會使用比其他分區
更多的/usr空間。
一個 /home 分區 – 這是用戶的home目錄所在地;它的大小取決於您的Red Hat Lin
ux 系統有多少用戶, 以及這些用戶將存放多少數據。
一個 /var 分區 – 所有的郵件和列印隊列,系統日誌文件等等都存放在這個分區里
面,所以你應該適當選擇一個足夠大的/var分區。
一個 /tmp 分區 -- 就象它的名字,/tmp分區用來存放臨時文件。 對於一個大型的,
多用戶的系統或者網路伺服器,專門創建一個/tmp分區是一個好主意。至於分區的大小
,你只有在實踐中摸索了。
一個 /usr/local 分區 – 這個分區用來存放包含按照BSD的目錄組織存放的軟體,大
部分源代碼編譯後的目標程序也預設放在這里,你需要一定的空間來存放這些文件,例
如1-2GB。
就伺服器來說,存在兩種基本的思路,一種是在開始的時候選擇安裝所有應用軟體包
;另一種是開始只安裝最小系統,然後逐步增加需要的包。除非你的應用對安全性很敏
感,否則建議你用第一種方法,否則你會發現研究軟體包之間的依賴關系是一種很討厭
的工作。
大部分發行版本在安裝系統的同時完成對系統的基本設置。但是這種設置程序並不是
非常可靠,如果你在安裝過程中發現配置某種硬體或者網路信息失敗,你有兩種選擇:
停止安裝或者忽略。據我們的經驗,通常你應該忽略這些信息,只要Linux安裝到了系統
上並且可以啟動,所有的東西都可以手工設置。不要輕易地停止安裝過程或者重新安裝
,那是解決windows 9x問題的途徑,不是Linux的。
Linux在安裝過程中需要一些硬體的相關信息才能正確配置相應的硬體,在安裝Linux
前一定要知道你使用的硬體信息,最好在安裝時把你使用的所有硬體說明書放在手邊(
如:主板、顯示卡、顯示器、調制解調、Scsi卡等),也可應用一些相應的軟體檢測你
的硬體信息然後記錄下來。當然如果你早對你的硬體了如指掌就不必這樣麻煩了。
一般用戶只需知道網卡的型號、中斷號和地址、滑鼠和調制解調的類型和埠、顯示
卡的類型和顯存的大小、顯示器的類型和參數、內存的大小、光碟機的類型連接到哪個口
上、音效卡的類型中斷和地址、如用scsi卡必須知道類型。為了連接網路,還需知道機器
的域名、IP地址、子網掩碼、路由地址、域名伺服器的地址。
在記錄了各種安裝的必要信息之後,下一步是選擇安裝介質。
從CDROM安裝總是最簡單的。目前大部分系統可以從光碟啟動,所以你需要的僅僅是設
置系統啟動順序為CDROM優先。如果你的Linux發行版本是多光碟的,通常在基本安裝的
時候只需要第一張光碟。
從ftp安裝也是一種很常用的手段。這種安裝最常見的應用是你想要在一台新的機器上
安裝一個全新的Linux發行版本的時候,畢竟CD-R刻錄機不是每人都有的。如果要用ftp
安裝,你必須首先確定你使用的發行版本是否支持ftp安裝。某些版本是無法從ftp安裝
的。
如果你確定你的版本支持ftp安裝功能,而且你的Linux發行版本用的內核支持你的網
卡,你需要做兩件事:(1)把發行盤的內容拷貝到ftp伺服器的某個目錄下面,並且記
下目錄名;(2)製作軟盤引導盤。
另外的安裝方式是通過NFS或者samba數據源。這兩種東西和用ftp安裝差不多,不過一
個使用NFS,另一個使用的是Windows 的文件/目錄共享,支持SAMBA數據源的安裝的發行
版本更少一些,而且一般我們也不建議使用這種功能(主要是文件名大小寫的問題)。
如果你選擇的是從軟盤啟動,那麼你需要根據是CD-ROM還是網路安裝來確定使用哪一
種軟盤映像,一般情況下,Linux的啟動軟盤是用全盤映像的方法存放在光碟上,可以使
用DOS下面的rawrite(在光碟上有)或者Linux下面的dd命令復制到軟盤上使用。
3.2 RedHat 的安裝過程
從這一節開始,我們介紹幾種Linux發行版本的安裝過程。這里選擇了三個版本:Red
Hat,Turbo Linux中文版和SuSE。RedHat是最容易安裝的版本,如果你是一個新手,看
看下面的安裝過程就應該可以順利地安裝成功。
3.2.1 建立Linux引導盤
如果你的主板不支持光碟機啟動或者你要從軟盤啟動來安裝RedHat那麼就需要製作啟動
盤,在RedHat 的光碟上包含一個啟動盤映象文件,只要將這個文件用相應的程序寫到軟
盤上就可以製成啟動軟盤。
從Redhat 6.1以後的版本只提供一個映象文件即可安裝,如從光碟機和硬碟安裝用\ima
ges\boot.img;如從網路安裝用\images\bootnet.img。啟動盤可以在DOS或者Linux下面
製作:
在 Dos 下製作啟動盤
E:\images>\dosutils\rawrite (E 為 光碟的盤符)
假如是使用boot.img,只要在提示「Enter dis images source files name :」時輸
入 boot.img,按回車出現提示「Enter target diskette driver: 」輸入 A: 回車
。其他類型的啟動盤製作方法類似。
在Linux 下製作啟動盤
製作啟動盤: dd if=boot.img of /dev/fd0 bs=1440k
建立DOS引導盤和用Loadlin引導
Linux提供了一個 Loadlin的應用程序可在dos 下啟動Linux的安裝程序,首先製作一
張dos啟動盤拷貝相應的文件,再在這張盤上載入光碟機的驅動程序,然後用這張盤啟動計
算機,進入Linux 發行板的 dosutils 目錄運行 autoboot .bat 就可進入安裝界面。
autoboot.bat的內容如下:
loadlin autoboot\vmlinuz initrd=autoboot\initrd.img
3.2.2 開始系統安裝
本書使用Redhat 6.1作範例.
使用發行光碟或者製作好的啟動軟盤盤啟動機器,在lilo:提示符下面直接回車,將進
入安裝界面。
如果你是從軟盤啟動機器,那麼將進入下面的安裝過程,否則,如果是從cd-rom安裝
,將直接進入第四步。
選擇語言
圖3.1 選擇語言
Redhat提供了多種言支持,很遺憾沒有中文,只好選擇 English。
選擇鍵盤
系統提示用戶選擇鍵盤類型,選擇 us即可 ,也可在安裝後用 setup 程序更改此項。
圖3.2 選擇鍵盤
選擇安裝方式
圖3.3 選擇安裝方式
通常我們選擇從cdrom安裝,只要直接在對應欄目裡面按下回車就可以了。如果要選擇
從ftp安裝,那麼在選擇了ftp之後,還要給出ftp伺服器的ip地址,本機器的ip地址和L
inux發行盤在伺服器上的目錄。
如果你是從軟盤安裝,那麼這一步之後,系統將切換到圖形模式,繼續安裝過程。
配置滑鼠
系統能識別多數的滑鼠類型,這項可使用默認值,如果你用的是兩鍵滑鼠你還應該選
擇 'Emulate 3 mouse'否則在x windows 下有一些功能不能用。
圖3.4 配置滑鼠
歡迎界面
這是一個歡迎界面,標志下一步將進入文件拷貝和系統設置。
圖3-5 歡迎界面
安裝類型
圖3-6 選擇安裝內容
為了方便用戶Redhat的開發人員設計了幾種安裝類型,可根據需要來選擇,但大多數
用戶選擇'Custom'定製安裝,這樣在以後的安裝過程中可詳細的對Redhat提供的軟體包
進行選擇,自由度更大。
建立分區
圖3-7 建立分區
Redhat 提供了一個簡單使用的圖形化的分區工具,利用這個工具你可方便的建立,修
改,刪除分區,分區的種類及大小可參看本章的1.3中的規劃分區,如建立一500M的根分
區,選則 Add ,然後在下圖的 'Mount Point:'中輸入 '/';'Size(Megs):' 中輸入 '
500' ; 'Partition Type:' 選擇 'Linux Native ' ,最後按 Ok 確認即可。
圖3-8 建立分區(2)
選擇格式化的分區
圖3-9 格式化分區
與其它的操作系統一樣在使用分區前要對分區進行格式化,格式化成Redhat 可識別的
分區。注意原則上每個分區都應該格式化。如果你的硬碟使用的時間較長或則有壞塊,
那麼就選擇' Check for bad blocks while formatting'把壞的區域標志上,以免數據
寫到壞塊上丟失。否則,對於新的硬碟只要簡單地選擇格式化就行了。
Lilo的配置
引導Linux 需要安裝一個用來把內核裝入計算機的程序,在Intel 的兼容PC 上使用L
ilo。在安裝界面內有如下幾個選項:
Create boot disk
創建軟盤啟動盤。默認是允許,如不創建,用滑鼠點擊前面的小方塊讓其凸起。一般
我們不必創建這個東西,詳情見第四章和第九章。
Do not install LILO
不安裝LILO,建議你不要選擇這個選項,否則你無法啟動系統。
Install LILO boot record on:
詢問LILO 安裝在哪兒,通常選則安裝在 MBR 上。
Use linear mode
這個選項是要求Linux使用SCSI的線性模式。如果你有一個超大的或者比較特殊的SCS
I硬碟,選擇這個選項。
下面的區域是表明了分區的詳細情況,通常不用作修改。
圖3-10 配置lilo
選擇時區
中國用戶在WORLD項選擇亞洲,在相面的滾動框內選上海時間。
圖3-11 設置時區
賬號配置
圖3-12 設置密碼和賬號
Redhat 在安裝過程中需要設置 ROOT 用戶的密碼,同時也可建立新的用戶,不過很少
有人在此時建立用戶。只要輸入root密碼並且確認就可以了。
認證配置
圖3-13 身份驗證設置
這個配置通常不需要改動,它表示賬號的身份認證和口令的加密方式。在Redhat 6.1
中,口令驗證使用MD5加密方式,它具有更高的對抗蠻力猜測演算法的能力。不過MD5不是
一個嚴格意義上的加密演算法,因此是一個可選項。你也可以使用原始的DES並且不使用M
D5。當然這意味著降低了系統的安全強度。
X配置
圖3-14 X window配置
所謂X 配置主要是指顯示卡和顯示器的配置,如不想在此配置可選 Skip x configur
ation ,等安裝結束後用 setup 應用程序來設置。
選擇安裝的應用程序
你可根據需要選擇你想要的應用程序,如果你的硬碟空間足夠大我們總是建議安裝所
有的軟體包。(最後的everything選項)
圖3-15 選擇安裝的軟體包
(15)安裝軟體包
現在開始軟體包的拷貝了,耐心的等幾十分鍾就可以了。
圖3-16 安裝軟體包
在此安裝過程中沒有提到網路部分,可用安裝後用 netconf 這個應用程序來完成,
後面的章節有詳細的說明。
3.3 Turbolinux中文版安裝過程
這里介紹的是TurboLinux 4.0Chinese的安裝過程。目前TurboLinux 6.0已經發布了,
不過兩者在安裝之間的差別幾乎可以忽略,你可以自己看看自己拿到的TLC版本。
3.3.1 啟動Turbolinux 安裝程序
直接用CDROM啟動
只要你的BIOS支持CD-ROM啟動,你就可以用這種方式。 直接把光碟插入光碟機,引導機
器就可以了.
在DOS下用LoadLin啟動
從DOS啟動,轉換到光碟驅動器,例如e:,然後進入子目錄dosutils/ ,輸入命令aut
oboot 並回車,就可以開始安裝TurboLinux。
利用軟盤啟動
如果上面的兩種安裝方式都不能工作, 就必須利用軟盤來啟動安裝TurboLinux,不管
怎樣,我不建議你使用這種功能。如果你一定要用,你可以自己看TurboLinux附帶的安
裝手冊。
3.3.2 TurboLinux安裝過程
TurboLinux的安裝過程是中文的,所以我們下面只是簡單地介紹一下,其實你只要仔
細研究一下說明就差不多了。
1) 選擇顯示模式
本窗口會詢問用戶是否使用彩色的顯示模式,預設是YES,一般情況下,按回車 就可
以。除了某些單色顯示器以外。
圖3-17 選擇顯示器類型
歡迎畫面,然後安裝程序將會顯示一個歡迎畫面,您只需要按回車跳過即可。
2) 選擇鍵盤類型
圖3-18 選擇鍵盤類型
用戶在此處設置鍵盤布局,而中國用戶一般都直接鍵入回車使用預設設置US 鍵盤。
3) PCMCIA
如果您的系統上有PCMCIA卡(有時被稱作PC Card),選擇'是',安裝程序會提醒您插
入特別設備驅動盤,不然您將無法驅動您的PCMCIA設備。 如果沒有,直接選『否』繼續
。
4) 特別設備驅動
如果安裝程序提醒您需要特別設備驅動盤,移去啟動盤,並且插入特別設備驅動盤。
通常這是不必要的,除非你使用某種從軟盤啟動的安裝方式。
TurboProbe
圖3-19 檢測硬體
TurboProbe是TurboLinux安裝程序所特有的一部分, TurboProbe可以自動檢測您系統
上安裝的ISA設備/PCI設備/SCSI設備/網卡/並口IDE設備。如果系統在這個過程中掛起
了,重新啟動機器。
6) 安裝介質
圖3-20 選擇安裝介質
TurboLinux提供了4種的方式,我們只介紹除'硬碟安裝'方式外的3種方式。
CD-ROM 安裝 - 最常用的安裝方式,如果您選擇了這種安裝方式,你就要用第一張Tu
rboLinux光碟啟動計算機,而後TurboLinux將自動進入安裝界面。
NFS 方式安裝 - 如果您的機器在一個區域網中, 並且該區域網上有另外一台伺服器
上以NFS方式共享出一份TurboLinux的拷貝。那麼您就可以利用這台 機器作為NFS伺服器
來安裝TurboLinux。在安裝之前您必須從您的系統管理員處獲得您系統的TCP/IP設置和
NFS伺服器 的配置信息。選擇這種安裝方式將會彈出對話框 網路設置。 您需要輸入您
得到
參考資料:http://www.hepg.s.e.cn/Service/linux/configure/adm5.txt
2. linux-2.4 如何安裝 tcpmp
安裝過程參照以下步驟:
1、打開網址:www.tcpmp.org/ 下載 libpcap-1.0.0.tar.gz (512.0KB) 軟體包,通過命令 tar zxvf libpcap-1.0.0.tar.gz 解壓文件,並將其放入自定義的安裝目錄。
2、打開網址:flex.sourceforge.net/ 下載 flex-2.5.35.tar.gz (1.40MB) 軟體包,通過 tar zxvf flex-2.5.35.tar.gz 解壓文件,並將其放入上述自定義的安裝目錄中。
註:如果沒有編譯安裝此文件,在編譯安裝libpcap時,就會出現 「configure: error: Your operating system's lex is insufficient to compile libpcap.」的錯誤提示。
3、打開網址:ftp.gnu.org/gnu/bison/ 下載 bison-2.4.1.tar.gz (1.9MB) 軟體包,通過 tar zxvf bison-2.4.1.tar.gz 解壓文件,並將其放入上述自定義的安裝目錄中。
註:如果沒有編譯安裝此文件,在編譯安裝libpcap時,就會出現 "configure: WARNING: don't have both flex and bison; reverting to lex/yacc checking for capable lex... insufficient" 的錯誤提示。
4、打開網址:ftp.gnu.org/gnu/m4/ 下載 m4-1.4.13.tar.gz (1.2MB)軟體包,通過 tar zxvf m4-1.4.13.tar.gz 解壓文件,並將其放入上述自定義的安裝目錄中。
註:如果沒有編譯安裝此文件,在編譯安裝bison-2.4.1時,就會出現 「configure: error: GNU M4 1.4 is required」的錯誤提示。
5、而後依次進入目錄m4-1.4.13,bison-2.4.1,flex-2.5.35,libpcap-1.0.0 並執行以下命令:
(sudo) ./configure
(sudo) make
(sudo) make install
3. Linux 下如何安裝 Flex sdk
�0�21. 需要有已經下載下來的 Flex sdk 文件包(這個可以在adobe flex 官方有的下); �0�22. 需要系統已經安裝了 Java sdk (這個在很多linux裡面很容易解決,用sun的或者open jdk都可以)。 二、安裝: 1. 在 /opt 目錄下新建一個放置sdk的目錄,這里先命名為flex_sdk: �0�2�0�2�0�2�0�2 sudo mkdir /opt/flex_sdk �0�2�0�2�0�2 #事實上, 「opt」 目錄是一個比較好的放置軟體的目錄,當然也可以放到其他地方,只不過,這里更好些吧。 2. 解壓下載好的flex sdk 壓縮包: �0�2�0�2�0�2�0�2 unzip flex_sdk_4.zip -d tempflex�0�2 #tempflex文件夾是臨時存放的文件夾 3. 把解壓的文件轉移到/opt/flex_sdk目錄下面去吧: �0�2�0�2�0�2�0�2 sudo mv tempflex/* /opt/flex_sdk/4. 「~/.bashrc」 : 用一個編輯器,打開.bashrc ,添加 export PATH=/opt/flex_sdk/bin:$PATH到文件中。 保存一下,就可以了。 現在可以運行�0�2 「mxmlc」 編譯器啦,一切搞定。 �0�2�0�2�0�2�0�2mxmlc–help�0�2�0�2�0�2�0�2�0�2�0�2�0�2�0�2�0�2 # 可以查看幫助文檔了
4. 「干貨」嵌入式Linux系統移植的四大步驟(上)
在學習系統移植的相關知識,在學習和調試過程中,發現了很多問題,也解決了很多問題,但總是對於我們的開發結果有一種莫名其妙的感覺,糾其原因,主要對於我們的開發環境沒有一個深刻的認識,有時候幾個簡單的命令就可以完成非常復雜的功能,可是我們有沒有想過,為什麼會有這樣的效果?
如果沒有去追問,只是機械地完成,並且看到實驗效果,這樣做其實並沒有真正的掌握系統移植的本質。
在做每一個步驟的時候, 首先問問自己,為什麼要這樣做,然後再問問自己正在做什麼? 搞明白這幾個問題,我覺得就差不多了,以後不管更換什麼平台,什麼晶元,什麼開發環境,你都不會迷糊,很快就會上手。對於嵌入式的學習方法,我個人方法就是:從宏觀上把握(解決為什麼的問題),微觀上研究(解決正在做什麼的問題),下面以自己學習的arm-cortex_a8開發板為目標,介紹下自己的學習方法和經驗。
嵌入式Linux系統移植主要由四大部分組成:
一、搭建交叉開發環境
二、bootloader的選擇和移植
三、kernel的配置、編譯、和移植
四、根文件系統的製作
第一部分:搭建交叉開發環境
先介紹第一分部的內容:搭建交叉開發環境,首先必須得思考兩個問題,什麼是交叉環境? 為什麼需要搭建交叉環境?
先回答第一個問題,在嵌入式開發中,交叉開發是很重要的一個概念,開發的第一個環節就是搭建環境,第一步不能完成,後面的步驟從無談起,這里所說的交叉開發環境主要指的是:在開發主機上(通常是我的pc機)開發出能夠在目標機(通常是我們的開發板)上運行的程序。嵌入式比較特殊的是不能在目標機上開發程序(狹義上來說),因為對於一個原始的開發板,在沒有任何程序的情況下它根本都跑不起來,為了讓它能夠跑起來,我們還必須要藉助pc機進行燒錄程序等相關工作,開發板才能跑起來,這里的pc機就是我們說的開發主機,想想如果沒有開發主機,我們的目標機基本上就是無法開發,這也就是電子行業的一句名言:搞電子,說白了,就是玩電腦!
然後回答第二個問題,為什麼需要交叉開發環境?主要原因有以下幾點:
原因 1: 嵌入式系統的硬體資源有很多限制,比如cpu主頻相對較低,內存容量較小等,想想讓幾百MHZ主頻的MCU去編譯一個Linux kernel會讓我們等的不耐煩,相對來說,pc機的速度更快,硬體資源更加豐富,因此利用pc機進行開發會提高開發效率。
原因2: 嵌入式系統MCU體系結構和指令集不同,因此需要安裝交叉編譯工具進行編譯,這樣編譯的目標程序才能夠在相應的平台上比如:ARM、MIPS、 POWEPC上正常運行。
交叉開發環境的硬體組成主要由以下幾大部分 :
1.開發主機
2.目標機(開發板)
3.二者的鏈接介質,常用的主要有3種方式:(1)串口線 (2)USB線 (3)網線
對應的硬體介質,還必須要有相應的軟體「介質」支持:
1.對於串口,通常用的有串口調試助手,putty工具等,工具很多,功能都差不多,會用一兩款就可以;
2.對於USB線,當然必須要有USB的驅動才可以,一般晶元公司會提供,比如對於三星的晶元,USB下載主要由DNW軟體來完成;
3.對於網線,則必須要有網路協議支持才可以, 常用的服務主要兩個
第一:tftp服務:
主要用於實現文件的下載,比如開發調試的過程中,主要用tftp把要測試的bootloader、kernel和文件系統直接下載到內存中運行,而不需要預先燒錄到Flash晶元中,一方面,在測試的過程中,往往需要頻繁的下載,如果每次把這些要測試的文件都燒錄到Flash中然後再運行也可以,但是缺點是:過程比較麻煩,而且Flash的擦寫次數是有限的;另外一方面:測試的目的就是把這些目標文件載入到內存中直接運行就可以了,而tftp就剛好能夠實現這樣的功能,因此,更沒有必要把這些文件都燒錄到Flash中去。
第二: nfs服務:
主要用於實現網路文件的掛載,實際上是實現網路文件的共享,在開發的過程中,通常在系統移植的最後一步會製作文件系統,那麼這是可以把製作好的文件系統放置在我們開發主機PC的相應位置,開發板通過nfs服務進行掛載,從而測試我們製作的文件系統是否正確,在整個過程中並不需要把文件系統燒錄到Flash中去,而且掛載是自動進行掛載的,bootload啟動後,kernel運行起來後會根據我們設置的啟動參數進行自動掛載,因此,對於開發測試來講,這種方式非常的方便,能夠提高開發效率。
另外,還有一個名字叫 samba 的服務也比較重要,主要用於文件的共享,這里說的共享和nfs的文件共享不是同一個概念,nfs的共享是實現網路文件的共享,而samba實現的是開發主機上 Windows主機和Linux虛擬機之間的文件共享,是一種跨平台的文件共享 ,方便的實現文件的傳輸。
以上這幾種開發的工具在嵌入式開發中是必備的工具,對於嵌入式開發的效率提高做出了偉大的貢獻,因此,要對這幾個工具熟練使用,這樣你的開發效率會提高很多。等測試完成以後,就會把相應的目標文件燒錄到Flash中去,也就是等發布產品的時候才做的事情,因此對於開發人員來說,所有的工作永遠是測試。
通過前面的工作,我們已經准備好了交叉開發環境的硬體部分和一部分軟體,最後還缺少交叉編譯器,讀者可能會有疑問,為什麼要用交叉編譯器?前面已經講過,交叉開發環境必然會用到交叉編譯工具,通俗地講就是在一種平台上編譯出能運行在體系結構不同的另一種平台上的程序,開發主機PC平台(X86 CPU)上編譯出能運行在以ARM為內核的CPU平台上的程序,編譯得到的程序在X86 CPU平台上是不能運行的,必須放到ARM CPU平台上才能運行,雖然兩個平台用的都是Linux系統。相對於交叉編譯,平常做的編譯叫本地編譯,也就是在當前平台編譯,編譯得到的程序也是在本地執行。用來編譯這種跨平台程序的編譯器就叫交叉編譯器,相對來說,用來做本地編譯的工具就叫本地編譯器。所以要生成在目標機上運行的程序,必須要用交叉編譯工具鏈來完成。
這里又有一個問題,不就是一個交叉編譯工具嗎?為什麼又叫交叉工具鏈呢?原因很簡單,程序不能光編譯一下就可以運行,還得進行匯編和鏈接等過程,同時還需要進行調試,對於一個很大工程,還需要進行工程管理等等,所以,這里 說的交叉編譯工具是一個由 編譯器、連接器和解釋器 組成的綜合開發環境,交叉編譯工具鏈主要由binutils(主要包括匯編程序as和鏈接程序ld)、gcc(為GNU系統提供C編譯器)和glibc(一些基本的C函數和其他函數的定義) 3個部分組成。有時為了減小libc庫的大小,也可以用別的 c 庫來代替 glibc,例如 uClibc、dietlibc 和 newlib。
那麼,如何得到一個交叉工具鏈呢?是從網上下載一個「程序」然後安裝就可以使用了嗎?回答這個問題之前先思考這樣一個問題,我們的交叉工具鏈顧名思義就是在PC機上編譯出能夠在我們目標開發平台比如ARM上運行的程序,這里就又有一個問題了,我們的ARM處理器型號非常多,難道有專門針對我們某一款的交叉工具鏈嗎?若果有的話,可以想一想,這么多處理器平台,每個平台專門定製一個交叉工具鏈放在網路上,然後供大家去下載,想想可能需要找很久才能找到適合你的編譯器,顯然這種做法不太合理,且浪費資源!因此,要得到一個交叉工具鏈,就像我們移植一個Linux內核一樣,我們只關心我們需要的東西,編譯我們需要的東西在我們的平台上運行,不需要的東西我們不選擇不編譯,所以,交叉工具鏈的製作方法和系統移植有著很多相似的地方,也就是說,交叉開發工具是一個支持很多平台的工具集的集合(類似於Linux源碼),然後我們只需從這些工具集中找出跟我們平台相關的工具就行了,那麼如何才能找到跟我們的平台相關的工具,這就是涉及到一個如何製作交叉工具鏈的問題了。
通常構建交叉工具鏈有如下三種方法:
方法一 : 分步編譯和安裝交叉編譯工具鏈所需要的庫和源代碼,最終生成交叉編譯工具鏈。該方法相對比較困難,適合想深入學習構建交叉工具鏈的讀者。如果只是想使用交叉工具鏈,建議使用下列的方法二構建交叉工具鏈。
方法二: 通過Crosstool-ng腳本工具來實現一次編譯,生成交叉編譯工具鏈,該方法相對於方法一要簡單許多,並且出錯的機會也非常少,建議大多數情況下使用該方法構建交叉編譯工具鏈。
方法三 : 直接通過網上下載已經製作好的交叉編譯工具鏈。該方法的優點不用多說,當然是簡單省事,但與此同時該方法有一定的弊端就是局限性太大,因為畢竟是別人構建好的,也就是固定的,沒有靈活性,所以構建所用的庫以及編譯器的版本也許並不適合你要編譯的程序,同時也許會在使用時出現許多莫名其妙的錯誤,建議讀者慎用此方法。
crosstool-ng是一個腳本工具,可以製作出適合不同平台的交叉編譯工具鏈,在進行製作之前要安裝一下軟體:
$ sudo apt-get install g++ libncurses5-dev bison flex texinfo automake libtool patch gcj cvs cvsd gawk
crosstool腳本工具可以在http://ymorin.is-a-geek.org/projects/crosstool下載到本地,然後解壓,接下來就是進行安裝配置了,這個配置優點類似內核的配置。主要的過程有以下幾點:
1. 設定源碼包路徑和交叉編譯器的安裝路徑
2. 修改交叉編譯器針對的構架
3. 增加編譯時的並行進程數,以增加運行效率,加快編譯,因為這個編譯會比較慢。
4. 關閉JAVA編譯器 ,減少編譯時間
5. 編譯
6. 添加環境變數
7. 刷新環境變數。
8. 測試交叉工具鏈
到此,嵌入式Linux系統移植四大部分的第一部分工作全部完成,接下來可以進行後續的開發了。
第二部分:bootloader的選擇和移植
01 Boot Loader 概念
就是在操作系統內核運行之前運行的一段小程序。通過這段小程序,我們可以初始化硬體設備、建立內存空間的映射圖,從而將系統的軟硬體環境帶到一個合適的狀態,以便為最終調用操作系統內核准備好正確的環境,他就是所謂的引導載入程序(Boot Loader)。
02 為什麼系統移植之前要先移植BootLoader?
BootLoader的任務是引導操作系統,所謂引導操作系統,就是啟動內核,讓內核運行就是把內核載入到內存RAM中去運行,那先問兩個問題:第一個問題,是誰把內核搬到內存中去運行?第二個問題:我們說的內存是SDRAM,大家都知道,這種內存和SRAM不同,最大的不同就是SRAM只要系統上電就可以運行,而SDRAM需要軟體進行初始化才能運行,那麼在把內核搬運到內存運行之前必須要先初始化內存吧,那麼內存是由誰來初始化的呢?其實這兩件事情都是由bootloader來乾的,目的是為內核的運行准備好軟硬體環境,沒有bootloadr我們的系統當然不能跑起來。
03 bootloader的分類
首先更正一個錯誤的說法,很多人說bootloader就是U-boot,這種說法是錯誤的,確切來說是u-boot是bootloader的一種。也就是說bootloader具有很多種類,
由上圖可以看出,不同的bootloader具有不同的使用范圍,其中最令人矚目的就是有一個叫U-Boot的bootloader,是一個通用的引導程序,而且同時支持X86、ARM和PowerPC等多種處理器架構。U-Boot,全稱 Universal Boot Loader,是遵循GPL條款的開放源碼項目,是由德國DENX小組開發的用於多種嵌入式CPU的bootloader程序,對於Linux的開發,德國的u-boot做出了巨大的貢獻,而且是開源的。
u-boot具有以下特點:
① 開放源碼;
② 支持多種嵌入式操作系統內核,如Linux、NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS;
③ 支持多個處理器系列,如PowerPC、ARM、x86、MIPS、XScale;
④ 較高的可靠性和穩定性;
⑤ 高度靈活的功能設置,適合U-Boot調試、操作系統不同引導要求、產品發布等;
⑥ 豐富的設備驅動源碼,如串口、乙太網、SDRAM、FLASH、LCD、NVRAM、EEPROM、RTC、鍵盤等;
⑦ 較為豐富的開發調試文檔與強大的網路技術支持;
其實,把u-boot可以理解為是一個小型的操作系統。
04 u-boot的目錄結構
* board 目標板相關文件,主要包含SDRAM、FLASH驅動;
* common 獨立於處理器體系結構的通用代碼,如內存大小探測與故障檢測;
* cpu 與處理器相關的文件。如mpc8xx子目錄下含串口、網口、LCD驅動及中斷初始化等文件;
* driver 通用設備驅動,如CFI FLASH驅動(目前對INTEL FLASH支持較好)
* doc U-Boot的說明文檔;
* examples可在U-Boot下運行的示常式序;如hello_world.c,timer.c;
* include U-Boot頭文件;尤其configs子目錄下與目標板相關的配置頭文件是移植過程中經常要修改的文件;
* lib_xxx 處理器體系相關的文件,如lib_ppc, lib_arm目錄分別包含與PowerPC、ARM體系結構相關的文件;
* net 與網路功能相關的文件目錄,如bootp,nfs,tftp;
* post 上電自檢文件目錄。尚有待於進一步完善;
* rtc RTC驅動程序;
* tools 用於創建U-Boot S-RECORD和BIN鏡像文件的工具;
05 u-boot的工作模式
U-Boot的工作模式有 啟動載入模式和下載模式 。啟動載入模式是Bootloader的正常工作模式,嵌入式產品發布時,Bootloader必須工作在這種模式下,Bootloader將嵌入式操作系統從FLASH中載入到SDRAM中運行,整個過程是自動的。 下載模式 就是Bootloader通過某些通信手段將內核映像或根文件系統映像等從PC機中下載到目標板的SDRAM中運行,用戶可以利用Bootloader提供的一些令介面來完成自己想要的操作,這種模式主要用於測試和開發。
06 u-boot的啟動過程
大多數BootLoader都分為stage1和stage2兩大部分,U-boot也不例外。依賴於cpu體系結構的代碼(如設備初始化代碼等)通常都放在stage1且可以用匯編語言來實現,而stage2則通常用C語言來實現,這樣可以實現復雜的功能,而且有更好的可讀性和移植性。
1、 stage1(start.s代碼結構)
U-boot的stage1代碼通常放在start.s文件中,它用匯編語言寫成,其主要代碼部分如下:
(1) 定義入口。由於一個可執行的image必須有一個入口點,並且只能有一個全局入口,通常這個入口放在rom(Flash)的0x0地址,因此,必須通知編譯器以使其知道這個入口,該工作可通過修改連接器腳本來完成。
(2)設置異常向量(exception vector)。
(3)設置CPU的速度、時鍾頻率及中斷控制寄存器。
(4)初始化內存控制器 。
(5)將rom中的程序復制到ram中。
(6)初始化堆棧 。
(7)轉到ram中執行,該工作可使用指令ldrpc來完成。
2、 stage2(C語言代碼部分)
lib_arm/board.c中的start armboot是C語言開始的函數,也是整個啟動代碼中C語言的主函數,同時還是整個u-boot(armboot)的主函數,該函數主要完成如下操作:
(1)調用一系列的初始化函數。
(2)初始化flash設備。
(3)初始化系統內存分配函數。
(4)如果目標系統擁有nand設備,則初始化nand設備。
(5)如果目標系統有顯示設備,則初始化該類設備。
(6)初始化相關網路設備,填寫ip,c地址等。
(7)進入命令循環(即整個boot的工作循環),接受用戶從串口輸入的命令,然後進行相應的工作。
07 基於cortex-a8的s5pc100bootloader啟動過程分析
s5pc100支持兩種啟動方式,分別為USB啟動方式和NandFlash啟動方式:
1. S5PC100 USB啟動過程
[1] A8 reset, 執行iROM中的程序
[2] iROM中的程序根據S5PC100的配置管腳(SW1開關4,撥到4對面),判斷從哪裡啟動(USB)
[3] iROM中的程序會初始化USB,然後等待PC機下載程序
[4] 利用DNW程序,從PC機下載SDRAM的初始化程序到iRAM中運行,初始化SDRAM
[5] SDRAM初始化完畢,iROM中的程序繼續接管A8, 然後等待PC下載程序(BootLoader)
[6] PC利用DNW下載BootLoader到SDRAM
[7] 在SDRAM中運行BootLoader
2. S5PC100 Nandflash啟動過程
[1] A8 reset, 執行IROM中的程序
[2] iROM中的程序根據S5PC100的配置管腳(SW1開關4,撥到靠4那邊),判斷從哪裡啟動(Nandflash)
[3] iROM中的程序驅動Nandflash
[4] iROM中的程序會拷貝Nandflash前16k到iRAM
[5] 前16k的程序(BootLoader前半部分)初始化SDRAM,然後拷貝完整的BootLoader到SDRAM並運行
[6] BootLoader拷貝內核到SDRAM,並運行它
[7] 內核運行起來後,掛載rootfs,並且運行系統初始化腳本
08 u-boot移植(基於cortex_a8的s5pc100為例)
1.建立自己的平台
(1).下載源碼包2010.03版本,比較穩定
(2).解壓後添加我們自己的平台信息,以smdkc100為參考版,移植自己s5pc100的開發板
(3).修改相應目錄的文件名,和相應目錄的Makefile,指定交叉工具鏈。
(4).編譯
(5).針對我們的平台進行相應的移植,主要包括修改SDRAM的運行地址,從0x20000000
(6).「開關」相應的宏定義
(7).添加Nand和網卡的驅動代碼
(8).優化go命令
(9).重新編譯 make distclean(徹底刪除中間文件和配置文件) make s5pc100_config(配置我們的開發板) make(編譯出我們的u-boot.bin鏡像文件)
(10).設置環境變數,即啟動參數,把編譯好的u-boot下載到內存中運行,過程如下:
1. 配置開發板網路
ip地址配置:
$setenv ipaddr 192.168.0.6 配置ip地址到內存的環境變數
$saveenv 保存環境變數的值到nandflash的參數區
網路測試:
在開發開發板上ping虛擬機:
$ ping 192.168.0.157(虛擬機的ip地址)
如果網路測試失敗,從下面幾個方面檢查網路:
1. 網線連接好
2. 開發板和虛擬機的ip地址是否配置在同一個網段
3. 虛擬機網路一定要採用橋接(VM--Setting-->option)
4. 連接開發板時,虛擬機需要設置成 靜態ip地址
2. 在開發板上,配置tftp伺服器(虛擬機)的ip地址
$setenv serverip 192.168.0.157(虛擬機的ip地址)
$saveenv
3. 拷貝u-boot.bin到/tftpboot(虛擬機上的目錄)
4. 通過tftp下載u-boot.bin到開發板內存
$ tftp 20008000(內存地址即可) u-boot.bin(要下載的文件名)
如果上面的命令無法正常下載:
1. serverip配置是否正確
2. tftp服務啟動失敗,重啟tftp服務
#sudo service tftpd-hpa restart
5. 燒寫u-boot.bin到nandflash的0地址
$nand erase 0(起始地址) 40000(大小) 擦出nandflash 0 - 256k的區域
$nand write 20008000((緩存u-boot.bin的內存地址) 0(nandflash上u-boot的位置) 40000(燒寫大小)
6. 切換開發板的啟動方式到nandflash
1. 關閉開發板
2. 把SW1的開關4撥到4的那邊
3. 啟動開發板,它就從nandflash啟動
5. 如何在linux上安裝greenplum
1.下載 Greenplum Database 源代碼
$ git clone https://github.com/greenplum-db/gpdb
2.安裝依賴庫
Greenplum Database 編譯和運行依賴於各種系統庫和python庫。需要先安裝這些依賴。
2.1.centos下:
$ sudo yum install curl-devel bzip2-devel python-devel openssl-devel
$ sudo yum install perl-ExtUtils-Embed # If enable perl
$ sudo yum install libxml2-devel # If enable XML support
$ sudo yum install openldap-devel # If enable LDAP
$ sudo yum install pam pam-devel # If enable PAM
$ sudo yum install perl-Env # If need installcheck-good
$ wget https://bootstrap.pypa.io/get-pip.py
$ sudo python get-pip.py
$ sudo pip install psi lockfile paramiko setuptools epydoc
2.2.ubuntu下:
apt-get install -y git-core
apt-get install -y gcc g++
apt-get install -y ccache
apt-get install -y libreadline-dev
apt-get install -y bison flex
apt-get install -y zlib1g-dev
apt-get install -y openssl libssl-dev
apt-get install -y libpam-dev
apt-get install -y libcurl4-dev
apt-get install -y libbz2-dev
apt-get install -y python-dev
apt-get install -y ssh
apt-get install -y libcurl4-dev
Package libcurl4-dev is a virtual package provided by:
libcurl4-openssl-dev 7.38.0-4+deb8u2
libcurl4-nss-dev 7.38.0-4+deb8u2
libcurl4-gnutls-dev 7.38.0-4+deb8u2
apt-get install -y python-pip
pip install lockfile
pip install paramiko
pip install setuptools
pip install epydoc
pip install psi
Note: debian8 required pip install --pre psi
注意:通過pip安裝的這幾個python依賴包最好下載相應的源碼,然後sudo pyton setup.py install進行安裝.
3.編譯 Greenplum Database 源代碼並安裝
假定安裝到 $HOME/gpdb.master 目錄下
$ ./configure --prefix=/home/gpadmin/build/gpdb.master --with-gssapi --with-pgport=5432 --with-libedit-preferred --with-perl --with-python --with-openssl --with-pam --with-krb5 --with-ldap --with-libxml --enable-cassert --enable-debug --enable-testutils --enable-debugbreak --enable-depend
$ make
$ make install
4.初始化 Greenplum Database 集群
安裝了二進制文件後,需要初始化資料庫集群。下面在一台筆記本上安裝一個GPDB的集群。集群包括一個master,兩個segment。
$ source $HOME/gpdb.master/greenplum_path.sh
$ gpssh-exkeys -h `hostname`
4.1.生成三個配置文件
$ vim env.sh
source $HOME/gpdb.master/greenplum_path.sh
export PGPORT=5432
export MASTER_DATA_DIRECTORY=$HOME/data/master/gpseg-1
$ vim hostfile
<your_hostname>
$ vim gp_config
ARRAY_NAME="Open Source GPDB"
SEG_PREFIX=gpseg
PORT_BASE=40000
# 根據需要,修改下面的路徑和主機名
declare -a DATA_DIRECTORY=(/path/to/your/data /path/to/your/data)
MASTER_HOSTNAME=your_hostname
MASTER_DIRECTORY=/path/to/your/data/master
MASTER_PORT=5432
TRUSTED_SHELL=ssh
CHECK_POINT_SEGMENTS=8
ENCODING=UNICODE
MACHINE_LIST_FILE=hostfile
4.2.初始化 GPDB cluster
$ source env.sh
$ gpinitsystem -c gpinitsystem_config -a
初始化成功後,運行一下命令驗證系統狀態:
$ psql -l
$ gpstate -s