пятница, 21 марта 2014 г.

Make nvidia driver for real-time kernel

#
# Разбиение диска
# Первый раздел 1Gb, метка загрузочный, файловая система ext2
# Второй раздел 40Gb, файлова система { ext3, ext4 }
#
# Установка Astra-linux-orel
# Устанавливаю Astra-linux-orel на второй раздел 
# в процессе отказываюсь от установки загрузчика GRUB2
# по завершении (с LIVE-CD GENTOO) устанавливаю загрузчик GRUB LEGACY
# см.  Step by step build realtime linux from sources Astra-linux-orel-1.9 first part
#
# nano /mnt/grub/menu.lst
#
# ====================================================================
# timeout 5
# default 0
#
# title DEFAULT-AL
# root (hd0,1)
# kernel /boot/vmlinuz-3.2.0-27-generic root=/dev/sda2 ro quiet splash
# initrd /boot/initrd.img-3.2.0-27-generic
# =====================================================================
#

# Выполняю из под учетной записи ROOT

mkdir -p /root/src/kernel
cd /root/src/kernel
wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.10.32.tar.gz
wget https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/older/patch-3.10.32-rt31.patch.gz
tar xvzf linux-3.10.32.tar.gz
gunzip patch-3.10.32-rt31.patch.gz
cd linux-3.10.32
patch -p1 < ../patch-3.10.32-rt31.patch


# Устанавливаю с диска

apt-get install libncurses5-dev

# cp -a /patch/to/src-kernel/.config .
# Правилю по необходимости

linux64 make menuconfig
linux64 make -j3
cp -a arch/x86/boot/bzImage ../vmlinuz-3.10.32-rt31


# Кладу ядро на первый раздел

mount /dev/sda1 /mnt
cp -a arch/x86/boot/bzImage /mnt/vmlinuz-3.10.32-rt31


# Правлю menu.lst

nano /mnt/grub/menu.lst

timeout 5
default 0

title DEFAULT-AL
root (hd0,1)
kernel /boot/vmlinuz-3.2.0-27-generic root=/dev/sda2 ro quiet splash
initrd /boot/initrd.img-3.2.0-27-generic

title DEFAULT-AL-vmlinuz-3.10.32-rt31
kernel /vmlinuz-3.10.32-rt31 root=/dev/sda2 ro quiet splash


# Перезагружаюсь под новым ядром
# Проверяю модули

lsmod
Module                  Size  Used by


# Как видно модули не подгружены
# Проверяю ядро

uname -a
Linux test 3.10.32-rt31 #1 SMP PREEMPT RT Wed Mar 12 15:30:48 MSK 2014 x86_64 GNU/Linux


# Качаю драйвер NVIDIA и патч к нему

mkdir -p /root/src/nvidia
cd /root/src/nvidia
wget http://us.download.nvidia.com/XFree86/Linux-x86_64/325.15/NVIDIA-Linux-x86_64-325.15.run
wget http://garr.dl.sourceforge.net/project/l-proaudio/nvidia-325xx-rt.patch
sh ./NVIDIA-Linux-x86_64-325.15.run --extract-only
cd NVIDIA-Linux-x86_64-325.15/kernel
patch -Np1 -i ../../nvidia-325xx-rt.patch


# Далее необходимо создать каталог /lib/modules/3.10.32-rt31
# Внутри каталога должна быть ссылка build, на каталог с исходниками ядра /usr/src/linux

ls /lib/modules
3.2.0-27-generic
mkdir /lib/modules/3.10.32-rt31
cd /usr/src
ln -s /root/src/kernel/linux-3.10.32 linux
cd /lib/modules/3.10.32-rt31
ln -s /usr/src/linux build


# Мэйкую драйвер

cd /root/src/nvidia/NVIDIA-Linux-x86_64-325.15/kernel
make IGNORE_PREEMPT_RT_PRESENCE=1 SYSSRC=/lib/modules/3.10.32-rt31/build module


# Сохраняю модуль в  /root/src/nvidia
# cp -a /root/src/nvidia/NVIDIA-Linux-x86_64-325.15/kernel/nvidia.ko /root/src/nvidia

mkdir -p /lib/modules/3.10.32-rt31/kernel/drivers/video
cp -a /root/src/nvidia/NVIDIA-Linux-x86_64-325.15/kernel/nvidia.ko /lib/modules/3.10.32-rt31/kernel/drivers/video


# Сохраняю модуль в  /root/src/nvidia
# cp -a /root/src/nvidia/NVIDIA-Linux-x86_64-325.15/nvidia_drv.so /root/src/nvidia

cp -a /root/src/nvidia/NVIDIA-Linux-x86_64-325.15/nvidia_drv.so /usr/lib/xorg/modules/drivers

# Создаю  xorg.conf

touch /etc/X11/xorg.conf
nano /etc/X11/xorg.conf

Section "ServerLayout"
    Identifier         "Layout0"
    Screen      0    "Screen0"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
EndSection

Section "Files"
EndSection

Section "InputDevice"
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    Identifier            "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    HorizSync          28.0 - 33.0
    VertRefresh        43.0 - 72.0
    Option               "DPMS"
EndSection

Section "Device"
    Identifier           "Device0"
    Driver               "nvidia"
    VendorName     "NVIDIA Corporation"
EndSection

Section "Screen"
    Identifier         "Screen0"
    Device            "Device0"
    Monitor           "Monitor0"
    DefaultDepth    24
    SubSection      "Display"
        Depth          24
    EndSubSection
EndSection


# Подгружаю модуль NVIDIA

insmod /lib/modules/3.10.32-rt31/kernel/drivers/video/nvidia.ko

lsmod
Module                  Size          Used by
nvidia                     8748108    0

/sbin/depmod -a

/etc/init.d/fly-dm restart


# или reboot по желанию
# Проверяю что получилось

uname -a
Linux test 3.10.32-rt31 #1 SMP PREEMPT RT Wed Mar 12 15:30:48 MSK 2014 x86_64 GNU/Linux

lsmod
Module                  Size        Used by
nvidia                     8748108  22

cat /var/log/Xorg.0.log |grep NVIDIA
[  2577.756] (II) Module nvidia: vendor="NVIDIA Corporation"
[  2577.756] (II) NVIDIA dlloader X Driver  325.15  Wed Jul 31 17:50:57 PDT 2013
[  2577.756] (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
[  2577.759] (**) NVIDIA(0): Depth 24, (--) framebuffer bpp 32
[  2577.759] (==) NVIDIA(0): RGB weight 888
[  2577.759] (==) NVIDIA(0): Default visual is TrueColor
[  2577.759] (==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
[  2577.759] (**) NVIDIA(0): Enabling 2D acceleration
[  2577.759] (EE) NVIDIA(0): Failed to initialize the GLX module; please check in your X
[  2577.759] (EE) NVIDIA(0):     log file that the GLX module has been loaded in your X
[  2577.759] (EE) NVIDIA(0):     server, and that the module is the NVIDIA GLX module.  If
[  2577.759] (EE) NVIDIA(0):     you continue to encounter problems, Please try
[  2577.759] (EE) NVIDIA(0):     reinstalling the NVIDIA driver.
[  2578.054] (II) NVIDIA(GPU-0): Display (Acer V193 (DFP-0)) does not support NVIDIA 3D Vision
[  2578.054] (II) NVIDIA(GPU-0):     stereo.
[  2578.054] (II) NVIDIA(0): NVIDIA GPU GeForce 210 (GT218) at PCI:1:0:0 (GPU-0)
[  2578.054] (--) NVIDIA(0): Memory: 524288 kBytes
[  2578.054] (--) NVIDIA(0): VideoBIOS: 70.18.2d.00.00
[  2578.054] (II) NVIDIA(0): Detected PCI Express Link width: 16X
[  2578.057] (--) NVIDIA(0): Valid display device(s) on GeForce 210 at PCI:1:0:0
[  2578.057] (--) NVIDIA(0):     CRT-0
[  2578.057] (--) NVIDIA(0):     CRT-1
[  2578.057] (--) NVIDIA(0):     Acer V193 (DFP-0) (boot, connected)
[  2578.057] (--) NVIDIA(0):     DFP-1
[  2578.057] (--) NVIDIA(0): CRT-0: 400.0 MHz maximum pixel clock
[  2578.057] (--) NVIDIA(0): CRT-1: 400.0 MHz maximum pixel clock
[  2578.057] (--) NVIDIA(0): Acer V193 (DFP-0): 330.0 MHz maximum pixel clock
[  2578.057] (--) NVIDIA(0): Acer V193 (DFP-0): Internal Dual Link TMDS
[  2578.057] (--) NVIDIA(0): DFP-1: 165.0 MHz maximum pixel clock
[  2578.057] (--) NVIDIA(0): DFP-1: Internal Single Link TMDS
[  2578.057] (**) NVIDIA(0): Using HorizSync/VertRefresh ranges from the EDID for display
[  2578.057] (**) NVIDIA(0):     device Acer V193 (DFP-0) (Using EDID frequencies has been
[  2578.057] (**) NVIDIA(0):     enabled on all display devices.)
[  2578.058] (==) NVIDIA(0):
[  2578.058] (==) NVIDIA(0): No modes were requested; the default mode "nvidia-auto-select"
[  2578.058] (==) NVIDIA(0):     will be used as the requested mode.
[  2578.058] (==) NVIDIA(0):
[  2578.059] (II) NVIDIA(0): Validated MetaModes:
[  2578.059] (II) NVIDIA(0):     "DFP-0:nvidia-auto-select{}"
[  2578.059] (II) NVIDIA(0): Virtual screen size determined to be 1280 x 1024
[  2578.085] (--) NVIDIA(0): DPI set to (85, 86); computed from "UseEdidDpi" X config
[  2578.085] (--) NVIDIA(0):     option
[  2578.085] (II) NVIDIA: Using 768.00 MB of virtual memory for indirect memory access.
[  2578.090] (II) NVIDIA(0): Setting mode "DFP-0:nvidia-auto-select{}"
[  2578.146] (==) NVIDIA(0): Disabling shared memory pixmaps
[  2578.146] (==) NVIDIA(0): Backing store disabled
[  2578.146] (==) NVIDIA(0): Silken mouse enabled
[  2578.146] (**) NVIDIA(0): DPMS enabled
[  2578.146] (II) NVIDIA(0): [DRI2] Setup complete
[  2578.146] (II) NVIDIA(0): [DRI2]   VDPAU driver: nvidia

Комментариев нет:

Отправить комментарий