一、Ubuntu 安裝
安裝Ubuntu 15.04x64 + Win7x64 雙系統,讓二者在啟動引導上相互隔離, 刪除Ubuntu時不至Win7躺槍,就必須講究安裝方法。
最最最簡單的就是使用EasyBCD安裝。這可以將Ubuntu的啟動引導Grub2安裝在其自己的boot分區,而Win7的啟動引導則安裝在C盤或其保留分區,相互不干擾,不存在用Ubuntu引導Win7啟動的問題。 這個策略非常干淨,不存在安裝完Win7可見而Ubuntu不可見,或者正好相反的情況; 卸載也相互獨立。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
那麼,問題來了,如果你主板比較新,使用的是 "UFEI啟動 + GPT磁盤" 這個組合,那麼使用EasyBCD就有問題,如下所述.
問題始於,萬惡的windows推出一個稱之為UFEI的東東,美其名曰:大一統安全啟動引導接口!!此接口位於主板和系統之間,用於啟動時進行軟硬件對接,即在主板上加載系統內核,以及向系統內核注冊硬件。電腦一啟動,操作系統必須向主板出示一個安全密鑰,主板才會加載這個系統,可用於杜絕boot病毒,從Win8開始這個標准開始執行。。。 然而這就坑了Ubuntu等一大批Linux系統,因為這些系統必須向MS購買密鑰。。。但是!!為了防止被訴壟斷,微軟要求所有主板廠商必須在提供UFEI的同時,提供傳統的BISO啟動。。。微軟關上了一扇門,上帝打開了一扇窗 .,美帝的反壟斷大法果然強。。。
因此,新型的主板上一般都能找到禁止UFEI,以及打開BIOS的辦法,各家主板不一樣。
本人的華碩Z170,進入高級設置,啟動頁面,打開CMOS選項設定為僅Legacy,打開安全選項設定操作系統為others。然後插上啟動U盤,重啟、啟動選項裡面徹底不見了UFEI字樣,,說明UFEI被成功屏蔽!!
啟動方式: UFEI or Legacy BIOS
不用UFEI的原因是,EasyBCD 2.3 目前還無法在ufei中注入Ubuntu的grub2啟動,所以在UFEI引導下安裝的Win7,當安裝完EasyBCD後,軟件會提示: 注意到你正在使用ufei,EasyBCD的許多特性都無法使用!而屏蔽ufei,在BIOS下重裝win7之後,EasyBCD一切正常。這樣後面安裝ubuntu時,EasyBCD注入grub2才會生效。若用ufei就要用其他方式解決雙系統隔離的問題,但百度之後發現都比較繁瑣 。
不用UFEI的另一個好處時,不會在Win7的保留分區內額外生成一個ufei文件夾,從而可以用diskgnius為win7的這個保留分區分配盤符使其可見,激活win7就十分Easy了....
磁盤管理: GPTor MBR
GPT可以管理大於1.8T以上的磁盤,MBR不行,所以單盤超限的另尋解決辦法。
用Win7光盤在裸機上裝完系統之後,啟動方式+磁盤管理 都被默認處理為 UFEI+GPT 這樣的組合。因此,在上主板上屏蔽掉UFEI之後,進入Win7,打開DISKGENIUS轉換各盤為MBR。但注意:不能直接轉換系統所在的C盤,因為會導致系統引導丟失,還有可能整壞硬盤。解決辦法是“騰籠換鳥”,在另一個已經轉換為MBR的空閒盤上用硬盤安裝的方式再安裝一個Win7上去,然後重啟進入這個新系統;再用DISK轉換原來的系統C盤為MBR,再用硬盤安裝方法在C上裝Win7,裝完之後進入C盤Win7,刪掉掉剛才空閒盤的那個Win7。。。
在非系統盤上用DISK轉換GPT為MBR時,不會格式化磁盤,所以數據仍然在。。
之所以要轉換成MBR是因為裝Ubuntu出問題,啥問題忘了,不轉換應該也有解決辦法。。
OK! 這樣就得到了 BIOS啟動 + MBR磁盤 + Win7×64系統 的經典組合!!可以開始安裝 Ubuntu了。。。。。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
下載Ubuntu 15.04 64位
下載UltraISO制作啟動U盤
在Win7某盤下壓縮出 300G~500G 空間,不新建分區、使其空閒
重啟進入BIOS,選擇U盤啟動
開始安裝》》。。。網上教程很多
分區:/ 90G~120G , /boot 200M~400M , swap 內存大小左右 ,/home 剩余
分區順序按此方式、且全部設定為邏輯分區,其他方式也可但發現容易出問題........
注意::分區完成之後,安裝開始之前,切記要在下方的啟動器安裝選項上,手動選擇,將啟動器安裝到你的上述boot分區中,否則默認的話就是用ubuntu引導win7了....
另外::若需重裝ubuntu的時候,要進入Win7重新格式化該盤,刪除分區,使其空閒。進入Ububtu安裝,改變上述分區的相對大小,不然ubuntu會一直卡在 ...creating ext4 ... 安裝不下去
另外::若上述辦法還是繼續卡在creating ext4上,則在Win7下重新格式化該區,並預先分好4個區的大小,進入Ubuntu安裝界面後,將四個對應分區掛載上去即可,可順利安裝......
最好選擇英文安裝,方便安裝caffe相關軟件時路徑全英文,進入之後再安裝中文包和fcitx中文輸入法....
最好斷開網絡安裝,否則會下載語言包和更新/.///
等待安裝完成,系統提示:重啟電腦
重啟之後會直接進入Win7,這時打開EasyBCD,在剛才的boot目錄上添加linux的gub2啟動。
OK !!
重啟之後,界面出現系統選擇 ......... 進入ubuntu ..................
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
進入系統之後,
設定root用戶密碼,
修改apt-get源為阿裡雲,
關掉自動推送的系統更新,
語言設置中安裝中文包,
軟件中心中安裝fcitx輸入法,
開始caffe安裝 。。。
二、CUDA 安裝
CUDA 安裝會出各種奇妙問題,顯卡、系統各不一樣,所以雖然問題的表現形式一樣,但解決辦法可能不一樣,因為硬件層面不一致,軟件層面的解決辦法就很難統一。但基本都可以百度到。
2.1 關閉xWindow
安裝cuda的同時會安裝顯卡驅動,因此要進入ubuntu的純字符界面才行 。
方法是 ctrl + alt + F1進入tty1,C+A+F7又可卻換回xWindow。
進入tty1之後,登錄,輸入init 3,此時就進入純字符界面的tty1了。
可以按CAF7驗證,此時打不開xWindow了,說明關閉成功。
再按CAF1切換回tty1即可。
在tty1中輸入startx ,這時會再次恢復啟動xWinow。 按CAF7即可進入。
網上有用stop lightdm關閉xWindow的,但是需要自己生成和修改xorg文件,ubuntu15.04安裝完默認是沒有這玩意的。比較麻煩,參考好多博客,沒弄成,非常不適合linux新手。
還有用stop gdm的,這個是相對於lightdm另一套xWindow,現在不流行了,所以默認沒安裝上,需要自己 apt-get install gdm,然後從lightdm切換到gdm。然後在 gdm stop, 來關閉xWIndow,這個的好處是不用修改xorg文件。
這個地方會遇到各種奇葩問題,電腦不同,問題不同,可能解決辦法也不同。
1. 進入tty1黑屏,返回xWindow無礙
本人的GTX970和TITANX顯卡,都出現這個問題,百度了一天,窗口分辨率的問題。
成功的辦法是修改grub文件,如下操作:
重啟進入系統,窗口分辨率大幅下降,說明此法奏效了。
然後 CAF1進入tty1,黑屏消失!出現字符登錄界面!
按CAF7又可切換回xWindow! 按CAF1又可切換回tty1! OK!
在tty1登錄,輸入 init 3,即可關閉 xWindows!
此時系統會自動切換到CAF7,但並不顯示xWindow,只顯示一個版本號。
只需再CAF1,即可返回tty1。 可以看到tty1窗口顯示提示,已經向內核成功注冊這個字符界面!
驗證一下,sudo gedit /etc/defaul/grub 會提示無法打開屏幕,通道關閉之類的,說明xWindow確實關閉啦!
但這個時候,在tty1中輸入 startx時,卻又無法開啟xWindow了 #……%……%##
目前無解,辦法就是先不用startx,直接重啟可正常登錄,並再次按上述流程關閉xWindow !
----------進入tty1,並關閉xWindow後,才開始真正進入油意義的第一步!! 安裝cuda!----------------------
2.2 安裝cuda 7.5
關於是否要先獨立安裝nvidia驅動的問題,本人嘗試幾次重裝都失敗了,無法打開內核什麼的。。
因此直接cuda走起。。。
安裝過程中要編譯,因此先對gcc和g++進行降級,至-4.7版本, 一開始就降級可以讓全部軟件包的安裝都比較一致。降級方法參見歐新宇。
預先下載並拷貝cuda7.5_linux_64_deb安裝包到home下。
cd ~
sudo dpkg -i install cuda_xxx.deb
sudo apt-get update
sudo apt-get install -y cuda
等待安裝完成 》》》》 重啟:sudo reboot!
配置cuda bin目錄和lib目錄,以及安裝cuda samples 參見Fight Boy。
三、Matlab 安裝
下載Matlab_linux_x64, 這個安裝方法及配置比較一致,參見 歐新宇 或 Fight Boy
網上找的鏈接: http://pan.baidu.com/s/1c0jaEek 密碼: cjvg
四、MKL 安裝
MKL2016下載參見歐新宇 博客,注意MKL雖然一個郵箱可以連續申請注冊碼,但時只能安裝一次。
重裝ubuntu後,再次安裝MKL2016的辦法是,先裝2015版本,到輸入注冊嗎那一步時,不要輸入直接退出安裝程序。然後再啟動2016版本的安裝,並填寫重新申請的注冊碼。 誤打誤裝發現的,不包過……&×%&¥¥
如果沒有MKL,就安裝默認的 altas !
五、OpenCV安裝
OpenCV大部分使用 Install_OpenCV_Master這個方法,但這個安裝過程比較混亂,各種依賴包裝了卸、卸了裝,反反復復好幾次,而且裝完之後與ffmpeg這個包有關的地方全部報錯,導致OpenCV安裝不完整,後面的caffe編譯也出錯!!
坑了2、3天終於找到了救星>>>>> xuezhisdc.
在Home下新建OpenCV的目錄,再新建5個文檔,拷貝救星給出的各個shell到這幾個文檔中保存。
把OpenCV拷貝到 /usr/local目錄下,(與cuda和matlab看齊,好看好管理×××),,開始安裝。
本文是cuda7.5,所以使用比較新的 opencv3.0與之搭配,不容易出莫名奇妙的bug××××
依次運行 1 2 3 4 5 五個shell ........直到安裝完成,且無bug報錯!
六、Python安裝
Python的各種包被其他軟件廣泛依賴,所以在安裝這些軟件的時候可能已經安裝過了,而且經常同一個包的版本還不太一致。這導致非常混亂。
安裝前面 opencv的時候就需要 numpy 和 scipy,在那裡已經安裝過了!
安裝後面 caffe的時候還會被再次當作依賴項安裝一遍,但apt-get的好處是能夠統一處理,所以只要不特別混亂,這種依賴關系就交給apt-get自動處理。
安裝Pyhton主要是為caffe的pycaffe接口提供一個python環境,所以集中放到這裡安裝比較好。
$ sudo apt-get install -y python-numpy python-scipy python-matplotlib python-sklearn python-skimage python-h5py python-protobuf python-leveldb python-networkx python-nose python-pandas python-gflags Cython ipython
安裝完成後,大部分都會提示 scuceessfly installing xxx...., python-pandas 貌似有個小錯,但不影響,因此先不管了。。。直接繼續後面!
也可使用官方推薦的 anncoda,這個對python 各版本、以及第三方包提供集中管理,並且集中了IPython Spyder等IDE 環境!
七、安裝Google Logging Lbinary (glog)
這個簡單,參見歐新宇或xuezhisdc
七、其他依賴項
這裡主要是caffe用到的一些小軟件:
protobuf leveldb lmdb snappy opencv boost hdf5 gflag google-glog
$ sudo apt-get install -y build-essential # basic requirement
$ sudo apt-get install -ylibprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev
libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler protobuf-c-compiler #caffe requirment
七、Caffe 安裝 & 編譯
Caffe下載,解壓至Home目錄下。
如本文目錄為:/home/xx/caffe-master 。xx為用戶名,home目錄默認為當前用戶打開。
7.1 更新依賴項
進入根目錄的 python文件夾,執行如下命令:
cd /home/xx/caffe-master/python
for req in $(cat requirements.txt); do pip install $req; done
可以打開 python/requirements.txt , 裡面絕大部分依賴包其實與上面是重復的,因此上面那裡可以刪掉在此處安裝。或者把這個文件中的補充到上面去。或者覆蓋安裝也可以,apt-get會自動處理,本文直接覆蓋安裝了。
7.2 配置Makefile.config
此文件中全部都是關於 CUDA cudnn BLAS Matlab python hdf5 opencv 這7個部分之 include bin lib 的路徑信息。
CUDA & Matlab 默認安裝,位於/usr/local
BLAS(mkl) 也默認安裝,位於/opt/intel
hdf5 默認安裝,位於/usr/lib/x86_64-linux-gnu
OpenCV不論安裝到哪裡,最後都會鏈接到 usr/local/lib目錄下。建議也在 usr/local目錄下安裝。
Python 系統默認自帶,但目錄到處都有,不用管了。
前面在安裝完上述軟件後,都已立即對其路徑信息進行了配置,現總覽如下:
xx@oo:/etc/ld.so.conf.d$ ls
另外 etc/profile 環境變量如下:
xx@oo:sudo less /etc/profile
現在即可按照上述信息配置Makefile.config
cd ~/caffer-master
sudo cp Makefile.config.example Makefile.config
sudo gedit Makefile.config
1. 去注釋 USE_CUDNN=1
2. 加注釋 # CPU_ONLY:=1
3. 修改BLAS BLAS=mkl
4.配置caffe對Python和Matlab接口的支持
PYTHON_LIB :=/usr/local/lib
MATLAB_DIR :=/usr/local/MATLAB/R2014a
5.補充hdf5路徑,紅色部分
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/lib/x86_64-linux-gnu/hdf5/serial/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial
6. 啟用OpenCV3.0.0 OPENCV_VERSION=3
7. 使用OpenCV3.x需要額外修改 Makefile文件
在Makefile文件中查找“Derive include and lib directories”一節,
修改“LIBRARIES +=”的最後一行,增加 opencv_imgcodecs,
修改之後為: LIBRARIES += opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs
7.3 編譯caffe
make all -j8
make test -j8
make runtest -j8
7.4 編譯pycaffe & matcaffe
make pycaffe -j8
make matcaffe -j8
編譯完成之後,需設置python環境變量,將caffe/python路徑添加到python環境變量中,caffe相當於一個包對Python可見。
xx@oo:~$ sudo gedit /etc/profile
PYTHONPATH=/home/xx/caffe-master/python:$PYTHONPATH export PYTHONPATH
最後的profile如下:
PATH=/usr/local/cuda/bin:$PATH
export PATH
LD_LIBRARY_PATH=/usr/local/cuda/lib64:/opt/intel/mkl/lib/intel64:$LD_LIBRARY_PATH
export LD_ LIBRARY_PATH
PYTHONPATH=/home/xx/caffe-master/python:$PYTHONPATH
export PYTHONPATH
八、Mnist數據集測試