2012年8月29日 星期三

Mint 13 顯卡驅動程式

因為筆電14吋的關係,需要外接一個22吋顯示器。但顯卡騙動程式偵測不到外接顯示器,所以就來更新一下驅動程式。

法一:(失敗)
  1. Install via Synaptic Package Manager
    Search for nvidia-glx, nvidia-kernel-dkms, nvidia-xconfig, and nvidia-settings packages and mark them for installation, and then click Apply button to begin installation.

  2. Install via Terminal
    Simply run this command:
    sudo apt-get install nvidia-glx nvidia-kernel-dkms nvidia-xconfig nvidia-settings

After completing the installation, you need to run the following command in Terminal, to allow the newly installed NVIDIA driver to write necessary configuration file so that it will be activated upon reboot:

sudo nvidia-xconfig

啟動mdm會失敗,解決方法:
rm /etc/X11/xorg.conf

法二:
  1. 請先去Nvidia官網下載驅動程式
  2. 改權限:chmod +x nvidia.run
  3. 移除nvidia舊版並移除舊的設定檔:sudo apt-get --purge remove nvidia-* 
  4. 安裝編譯所需套件與核心:sudo apt-get install build-essential libc6-dev pkg-config xserver-xorg-dev linux-headers-$(uname -r)  nvidia-settings
  5. 中斷X windows才能正確安裝顯示卡驅動程式:sudo /etc/init.d/mdm stop
  6. 開始安裝nvidia官方版驅動程式:  (若用 sh nvidia.run 會失敗)
  7.  ./nvidia.run
  8. 最後回到x windows會看到一個Nvida的畫面,這樣就代表安裝好了:sudo /etc/init.d/mdm start
  9. 完成顯卡驅動更新!也可以偵測得到外接顯示器了。
若仍有其它問題,可以重新給個設定檔:
 rm /etc/X11/xorg.conf
 nvidia-xconfig

2012年8月4日 星期六

快速架設簡易小型工作站

想當初剛進來的時候,老師叫我負責server的東西,沒想到就這樣傻傻地攬了下來…累死我也!

好吧,這篇主要記錄新手安裝備忘,謝謝俊達學長一直以熱心及耐心解答我的各種問題,提供資訊,讓我初窺Linux門徑。也感謝家洋學長借的鳥哥小菜,使我從空白到略有小成。
架站之前先來規畫一下架什麼樣的server,目前實驗室有新舊兩部工作站,個人PC十台以上, 對外以硬體防火牆為閘道,及一台NAS做異地備援。

為方便理解,server以新舊來表示Dell、Intel 這兩部。

由 於實驗室主要跑模擬數據,所以工作站需要安裝穩定的Linux為作業系統。 Redhat 和 SuSE 11商業版在架站是很好用,但要買版權才能即時更新(聽說不更新沒差?)。CentOS 5、CentOS 6 安裝會遇到EDA軟體缺lib的問題而不能跑。而RedhatES4的JAVA環境不夠新,不能安裝新版的matlab,使得一些函數不能用,不過一些較舊的EDA上可以順利執行,像是TSMC90 Memory Compiler。Ubuntu server灌完是純文字介面,還需要抓X server之類的。為了迅速架起簡單實用的工作站,新的server灌Ubuntu 11 Desktop,以支援新版matlab,舊的灌RedhatES4。注意一下,不是因為server是64架構才裝64位元作業系統,是因為即使裝了 32位元作業系統,像synopsys系列的軟體會跑不起來。若是遇到需要用32位元跑的軟體,就安裝32位元的lib即可。

舊server硬碟空間總共140G,空間可能不夠使用者目錄/home使用,所以分割硬碟的時候,就不用切/home了,用新serv的500G直接掛載到舊的上面,再用NIS及NFS服務啟動/home。

為了快速地安裝,第一步我先簡單的安裝舊server,包括OS安裝、網路設定、EDA軟體。當第一步完成後,就可以測試個人電腦能不能連進去跑EDA了。

第二步,服務的設定。新server安裝完後,首先要做磁碟配額,合理分配空間給每位使用者。兩台工作站單純跑EDA的運算,未來不知道會不會再買工作站,所以NIS有其必要,Cluster可以先不考慮,舊server 硬碟不夠大,使用NFS掛上新server 的家目錄;NAS 就來個ssh+rsyn 異地備援。最後架SAMBA讓WIN用戶能開啟在工作站上的檔案,方便我們寫程式時可以很直接修改存取。


##############################################################
step1 備份
##############################################################
1.先將主機所有軟體、工具,及環境設定檔備份到NAS
/home
使用者檔案資料夾。

/etc/fstab
因為/home和/opt都有用raid1備份,這個設定檔案就是記錄每個分割區掛載的資訊,所以每次一安裝完,就可以用這個檔案蓋掉原始設定檔,再mount -a即可。

/usr/local 或是 /opt/
CIC 軟體目錄。

/usr/cad
CIC 環境檔目錄。

/etc/hosts
內容有CIC license server 的IP對應檔。

/etc/skel
新增使用者時參考的範本目錄,裡面有 .cshrc。

由於我們是把資料備份在區網內的NAS,網路速度差不多6M。備份檔直接打包後傳給NAS,會比壓縮完再傳給NAS花的時間更少,把檔案踏一踏就好,不用壓縮。


##############################################################
step2 安裝作業系統
##############################################################
Hostname:
舊:ws1
Redhat: /etc/sysconfig/network
新:ws2

Ubuntu: /etc/hostname 


在安裝時若有問要選擇安裝什麼軟體,盡量能勾就勾,之後就省事了。尤其一些軟體會遇到相依性的問題,少了一個就安裝不起來,找套件和安裝相依性套件就花了幾天,非常累的…


選磁碟分割方式:
舊的這台主機只有140G, 使用者的檔案可能不夠放,乾脆就用NFS-server,把新server的使用者家目錄/home掛載到底下。因此家目錄也不必割了,所以磁碟分割可以割成兩個,分別是根目錄/ 和第三方軟體目錄/opt ,但新server要多割一個/home。

新的這一台在設定磁碟分割時,硬碟是SSD - 250G加HDD - 500G,而HDD有掛陣列卡raid1, 直接做硬碟資料備份,所以HDD掛載點可以設成/home,並將格式定為ReiserFS或ext4。500G夠用了,所以我會將HDD設為ext4,並掛載/home和/opt。

##############################################################
step3 環境設置
##############################################################
作業系統完成後,把稍前的備份檔案從NAS拉回來吧,/home、/opt/、/usr/cad、/etc/hosts,/etc/skel。在等待檔案的時間,順手補IP設定,作業系統更新一下,也把/home目錄的配額寫一寫。

WS - IP 設定
可以用文字檔打,但比較建議用GUI點一點最快。
例如:
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
HWADDR="12:34:56:78:9a:bc"
NM_CONTROLLED="yes"
ONBOOT="yes"
IPADDR="192.168.1.211"
NETMASK="255.255.255.0"
GATEWAY="192.168.1.99"

更新
ubuntu更新:
sudo apt-get update
sudo apt-get upgrade
redhat更新:
yum update
因為沒買redhat授權,舊SERV沒辦法更新,但其實不更新無所謂。

磁碟配額
*會使用到quota套件,安裝一下吧。
sudo apt-get install quota
*方便後續設定,用su - 轉換root權限。
su -

1. 編輯磁碟區設定 /etc/fstab,針對要啟用quota的磁區加入掛載參數 usrquota,grpquota
 vi /etc/fstab
/dev/sdb1   /home   ext4   defaults,usrquota,grpquota   0   0


2. 重新掛載該磁區,使其加入usrquota,grpquota參數。
umount /home
mount -a
mount
這時觀察一下/home有沒有加上參數

3. 使用quotacheck -avugm 指令,建立usrquota,qrpquota檔案

4. 使用edquota -u 指令編輯使用者的磁碟配額空間
我先加入一個使用者當配額範本:
useradd 10G -m
編輯剛剛加入的範本10G:
edquota -u 10G
會看到有六欄:
blocks      soft        hard   …   …
已用          提示      上限

這邊soft 9G,hard 10G,存檔離開。

5. edquota -p 指令複製配額參數給其他使用者
edquota -p 10G (使用者ID)

6. quotaon -a 指令使磁碟配額生效,quotaoff -a 指令關掉磁碟配額。
7. repquota -avug 指令顯示每個使用者及群組配額使用情形。

夠簡單的吧,這時候備份的檔案也差不多完成,設定檔都可以覆蓋回去了。


##############################################################
step 4 安裝IC TOOL
##############################################################
安裝CIC tool , 大部份都可以照CIC設定教學走。

而ncverilog可能會少套件,sudo apt-get install gcc-multilib 就OK了。


##############################################################
step 5 安裝NIS、NFS
##############################################################
設定NIS、NFS。因為Redhat和Ubuntu不是同一掛的,所以NIS設定也稍微不一樣,但也可以很簡單地架出來。
而LDAP更方便的存取使用者目錄,所以未來有空可以架出來取代NIS。

NIS 的目的就是管理帳號,通常會是一個Master去管理所有人登陸的帳號,其他工作站開NIS client,新增在master上的帳號就會同步到client。

首先,NIS master設定在新serv。

*先安裝或檢查相關套件是否都有安裝
NIS的套件
sudo apt-get install nis
NFS的套件
sudo apt-get install nfs-common

nis下載時就會順便設定 domain name
NIS domain: lab

1.設定NIS domain name: 編輯或新增檔案/etc/defaultdomain
vi /etc/defaultdomain
domainname的檔案,可以檢查一下剛剛設定的名稱有沒有寫上去:

lab
2.編輯NIS server 相關檔案並啟動服務
sudo vi /etc/yp.conf
加上一行: domain lab server ws2 ,存檔離開
sudo vi /etc/default/nis
更改 NISSERVER=master,存檔離開
3.將NIS啟動
sudo /usr/lib/yp/ypinit -m
sudo /etc/init.d/portmap restart
sudo /etc/init.d/nis restart
4. 設定並啟動NFS
若每一部都獨立存檔,當某台當掉了, 就會有某個使用者說…電腦當了,我要回家了!
NFS設定好,也就有一個資料Domain了,同Domain資料會保存在NFSserver上。
你就可以說:呃,別跑,去另一台登陸吧。

*安裝nfs-kernel-server,portmap
sudo apt-get install nfs-kernel-server
sudo apt-get install portmap
*NFSv4支援固定PORT, 所以不用安裝portmap套件,預設是TCP port 2049。
*適合匯出的目錄有/home,/opt,/usr。

vi /etc/exports

設定匯出的資料夾:


/home 192.168.1.0/24(rw,async,no_root_squash)

*設定開機自動掛載
vi /etc/fstab
ws1:/home /home nfs4  default,rw 0  0



重新啟動NFS
sudo /etc/init.d/nfs-kernal-server restart/reload

*若是NFS已經開放後,不要用restart! 會切斷使用者資料存取,reload才是正解!


5. 新使用者
在Server端一樣用之前方法開帳號,要注意的是每次有新帳號就要執行一次下列指令:

sudo  make -C /var/yp/

舊serv的NIS三步設定:
1. nisdomainname lab

2. 記得hosts name要設定Host
vi /etc/hosts
192.168.1.211 ws2

3. setup

*檢查
ypwhich
ypcat passwd

最後掛載NFS server上的資料目錄,完成!
mount -t nfs 192.168.1.211:/home/ /home/


##############################################################
step 6 SAMBA分享
##############################################################
linux和MS怎麼傳輸資料呢?區網內最方便的當然是Samba囉!
這邊我推一個達哥大大寫的,連結:簡簡單單設定SAMBA

 
##############################################################
step 7 連線
##############################################################
設定ssh連線:
ubuntu:
sudo apt-get install openssh-server
Redhat:
直接用GUI設定吧!簡單方便。


##############################################################
step 8
##############################################################

終於,很快地來到最後一步啦, 開放工作站服務給別人用吧!
一些設定在/etc/default/useradd,/etc/login.defs,有興趣在去看設定內容。
新增使用者tzki4118,順便開個家目錄:

useradd tzki4118 -m
改使用者密碼:
passwd tzki4118
修改磁碟配額:
edquota -p 10G tzki4118
將NIS帳號推到其它工作站:
make -C /var/yp
新增SAMBA帳號:
pdbedit -a tzki4118


好囉,目前工作站都可以使用了。接下來還有小尾巴,異地備援。
ssh + sync 聽起來很厲害,不過我懶了,而且NAS有NFS server的設定。

用cronjob + cp 來備份吧!
//========================================================
ps1.後來寫的sh,本來是用 "cp + --include" ,但發現更好用的指令

 vi /etc/crotab
# m h dom mon dow user    command
0 0 **7 root /backup.sh

vi /backup.sh
#!/bin/bash
#+++++++++++++++++++++++++++++++++++++++++++
#+backing up /home to /mnt/nas/backup
#+++++++++++++++++++++++++++++++++++++++++++

rsync -a --no-whole-file /home /mnt/nas/backup_`date +%m.%d.%y`

ps2.
台積電90nm的mermory compiler的環境是用#!/usr/bin/ksh
要在ubuntu上執行Mermory compiler的話,需要安裝 "ksh" 這個shell。
sudo apt-get install ksh