一.探索版(帶坑,想直接編譯的可以跳過這部分看直接版)
前段時間由於項目需要,需要使用intel NUC設備,拿到設備立馬裝上ubuntu14.04系統,裝上系統后發現顯卡驅動沒裝上,直接導致的結果就是三維顯示(渲染)效果很卡頓。
google了一下大概找到了原因,因為這款 intel NUC使用的是處理器為i7,14.04中內核中沒有對應的驅動(這點不敢苟同,因為我另一台筆記本也是i7處理器,裝的ubuntu14.04系統,並沒有出現驅動安裝不了的情況)。但是人家確實解決了驅動裝不上的問題。
於是先不深究,把內核升級一把看看效果再說,內核升級方法:
最簡單的內核升級方法是直接下載內核deb包,然后dpkg安裝,步驟如下(以kernel4.13為例):
1.下載內核deb包
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.13/linux-headers-4.13.0-041300_4.13.0-041300.201709031731_all.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.13/linux-headers-4.13.0-041300-generic_4.13.0-041300.201709031731_amd64.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.13/linux-image-4.13.0-041300-generic_4.13.0-041300.201709031731_amd64.deb
2.安裝內核
sudo dpkg -i linux*
3.重啟系統
sudo reboot
系統重啟后可能遇到 "low graphics mode" 問題。解決方法:
1.進終端並登陸 Ctrl + Alt +F1
2.設置xorg.conf
sudo cp /etc/X11/xorg.conf.failsafe /etc/X11/xorg.conf
3.重啟系統
sudo reboot
到這里內核算是升級完成了。進入系統查看驅動安裝情況
輸入 lshw -c video 可以看到這時顯卡驅動已經安裝上 (driver=i915),感覺勝利的曙光就在眼前。

重新打開三維顯示程序才發現開心的太早,仍然存在卡頓的問題。途中更換到16.04系統中發現系統可以自動識別顯卡。
inxi -c 5 -b 查看intel設備信息。發現兩個系統的mesa庫版本不同,考慮應該是14.04中的mesa版本過低。
於是按照intel官方網站的說明文檔從git中下載最新的mesa庫編譯。
編譯之前先安裝apt-file,在編譯過程中遇到 ”package not found“ 的情況時查找庫所在安裝包。
1安裝
sudo apt-get install apt-file
2使用
apt-file search 缺少的庫name
編譯步驟如下:
1.編譯libdrm
git clone git://anongit.freedesktop.org/mesa/drm
make
sudo make install
2.編譯mesa
git clone git://anongit.freedesktop.org/mesa/mesa
sudo make install
安裝完mesa后 inxi -c 5 -b 發現系統使用的仍未原先的mesa版本,考慮到應該是要把驅動重新安裝。
於是按照intel官網步驟一步步來。
變量說明: $MY_DISTRO_PREFIX = /usr $MY_DISTRO_LIBDIR=/usr/lib/x86_64-linux-gnu
1.編譯顯卡驅動
git clone git://anongit.freedesktop.org/xorg/driver/xf86-video-intel
./autogen.sh --prefix=$MY_DISTRO_PREFIX --libdir=$MY_DISTRO_LIBDIR
make
sudo make install
2.編譯xserver(這步是巨坑)
git clone git://git.freedesktop.org/git/xorg/xserver
./autogen.sh --prefix=$MY_DISTRO_PREFIX
make
sudo make install
3.編譯libbva
git clone git://git.freedesktop.org/git/vaapi/libva
./autogen.sh --prefix=$MY_DISTRO_PREFIX
make
sudo make install
4.編譯vappi driver
git clone git://git.freedesktop.org/git/vaapi/intel-driver
make
sudo make install
5.編譯 cairo
git clone git://git.freedesktop.org/git/cairo
make
sudo make install
6.編譯intel-gpu-tools
git clone git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
make
sudo make install
編譯完重啟,恩,發現連圖像界面都進不去了。
Ctrl+Alt F1 進終端查看系統log(/var/log/Xorg.0.log)。發現version mismatch 錯誤。
google之后找到原因,是因為xserver編譯更新之后,所有的驅動都得重新編譯一遍(所有的驅動都是依賴xserver的,每個版本xserver有ABI編號,驅動編譯時依賴的ABI和當前xserver的ABI不匹配就會出現界面進不去的情況)。
intel官方給的文檔是先編譯驅動再編譯xserver,這就導致了最終編譯的顯卡驅動和更新的xserver ABI不匹配。
於是重新編譯所有驅動(重復步驟 1,3,4,5,6)。
reboot 重啟電腦。發現鼠標鍵盤不能用了。於是重新編譯鼠標鍵盤驅動步驟如下:
1.下載 xf86-input-evdev(大部分插拔設備的驅動) xf86-input-mouse xf86-input-keyboard
wget https://www.x.org/archive/individual/driver/xf86-input-evdev-2.10.0.tar.gz
wget https://www.x.org/archive/individual/driver/xf86-input-mouse-1.9.2.tar.gz
wget https://www.x.org/archive/individual/driver/xf86-input-keyboard-1.9.0.tar.gz
tar xvf xf86-input-evdev-2.10.0.tar.gz
tar xvf xf86-input-mouse-1.9.2.tar.gz
tar xvf xf86-input-keyboard-1.9.0.tar.gz
2.驅動編譯
1)evdev編譯
cd xf86-input-evdev-2.10.0
./configure --prefix=/usr
make&&sudo make install
2)鼠標驅動編譯
cd xf86-input-mouse-1.9.2
./configure --prefix=/usr
make && sudo make install
3)鍵盤驅動編譯
cd xf86-input-keyboard-1.9.0
./configure --prefix=/usr
make && sudo make install
最后重啟系統
reboot
大功告成。
二. 直接版
1.升級內核(見前文)
2.依賴安裝
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install x11proto-dri2-dev build-essential x11-common xutils-dev \
flex bison xcb libx11-xcb-dev libxcb-glx0 \
libxcb-glx0-dev xorg-dev libxcb-xfixes0-dev zlib1g \
zlib1g-dev x11proto-gl-dev libpciaccess-dev libdri2-dev \
libxcb-dri2-0-dev pkg-config libpixman-1-dev libx11-dev x11proto-gl-dev \
libglib2.0-dev libgl1-mesa-dev x11proto-xf86dri-dev libgcrypt11-dev x11proto-xcmisc-dev \
x11proto-bigreqs-dev x11proto-randr-dev x11proto-render-dev x11proto-fonts-dev libepoxy-dev \
libkmod2 libkmod-dev libunwind8-dev \
libudev-dev libevdev-dev libmtdev-dev autoconf automake libtool python-dev python-mako
2.顯卡驅動編譯
環境變量設置
Fedora 64 bits:
export MY_DISTRO_PREFIX=/usr
export MY_DISTRO_LIBDIR=/usr/lib64
Ubuntu 64 bits:
export MY_DISTRO_PREFIX=/usr
export MY_DISTRO_LIBDIR=/usr/lib/x86_64-linux-gnu
1)首先從intel官網下載所需源碼包 下載地址 https://01.org/zh/linuxgraphics/downloads/stack (也可不下載直接git獲取) 官方說明文檔 https://01.org/linuxgraphics/documentation/build-guide-0
4)編譯xserver
git clone git://git.freedesktop.org/git/xorg/xserver
./autogen.sh --prefix=$MY_DISTRO_PREFIX
make && sudo make install
2)編譯libdrm
git clone git://anongit.freedesktop.org/mesa/drm
make
sudo make install
3)編譯mesa
git clone git://anongit.freedesktop.org/mesa/mesa
sudo make install
5)編譯xf86-video-intel
git clone git://anongit.freedesktop.org/xorg/driver/xf86-video-intel
./autogen.sh --prefix=$MY_DISTRO_PREFIX --libdir=$MY_DISTRO_LIBDIR
make && sudo make install
6)編譯libbva
git clone git://git.freedesktop.org/git/vaapi/libva
./autogen.sh --prefix=$MY_DISTRO_PREFIX
make && sudo make install
7)編譯vappi driver
git clone git://git.freedesktop.org/git/vaapi/intel-driver
make && sudo make install
8)編譯 cairo
git clone git://git.freedesktop.org/git/cairo
make && sudo make install
9)編譯intel-gpu-tools
git clone git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
make && sudo make install
3. 鍵鼠等驅動編譯
1)下載驅動 xf86-input-evdev(大部分插拔設備的驅動) xf86-input-mouse xf86-input-keyboard
wget https://www.x.org/archive/individual/driver/xf86-input-evdev-2.10.0.tar.gz
wget https://www.x.org/archive/individual/driver/xf86-input-mouse-1.9.2.tar.gz
wget https://www.x.org/archive/individual/driver/xf86-input-keyboard-1.9.0.tar.gz
tar xvf xf86-input-evdev-2.10.0.tar.gz
tar xvf xf86-input-mouse-1.9.2.tar.gz
tar xvf xf86-input-keyboard-1.9.0.tar.gz
2)evdev編譯
cd xf86-input-evdev-2.10.0
./configure --prefix=/usr
make&&sudo make install
3)鼠標驅動編譯
cd xf86-input-mouse-1.9.2
./configure --prefix=/usr
make && sudo make install
4)鍵盤驅動編譯
cd xf86-input-keyboard-1.9.0
./configure --prefix=/usr
make && sudo make install
4.重啟電腦
sudo ldconfig
sudo reboot
大功告成!!
