Компилиране на ядро под Linux (Game Server Kernel)
Публикувано на: 12 Май 2018, 17:01
В тази тема ще ви покажа как можете да си компилирате ядро под CentOS както и настройки, които биха помогнали за 1000 FPS. Държа да отбележа, че компилацията на ядрото е нужна и за приспособяване на ядрото към конкретната машина /оптимизирането му за машината като се активират необходимите драйвери и модули/.
Преди да стартираме процеса е необходимо да се логнем като root. Това става с помоща на командата:
Въвеждате си паролата. Сега е момента да инсталираме необходимите пакети, нужни ни за компилирането.
Ако ще компилирате под CentOS са ви необходими следните пакети:
Ако ще компилирате на Debian, необходимите пакети са:
След като ги инсталирате пристъпваме към изтегляне на ядрото. За да имате 1000 FPS е нужно вашето ядро да бъде Real-Time. Това става като изтеглите патч и го инсталирате при ядрото преди процеса на компилация:
Сега да изтеглим пача за Real Time
Сега идва ред да разархивираме ядрото
Сега трябва да влезем в папката на ядрото
Сега е време да прибавим пача:
След като вече сме инсталирали пача е време да пристъпим към конфигурация на ядрото.
Ето и настройките, които трябва да направите и ви ги препоръчвам:
Auditing Support не може да се изключи под Debian!!
Запазваме конфигурацията. Като запазвате настройките, файла трябва да е .config както си е по default, а не да добавяте пред него и зад него някакви имена
И сега е време за същинския процес на компилация има много начини, но начина, който аз ползвам е:
Рестартирате машина и избирате в Grub нашето компилирано ядро
Резултата при sys_ticrate 1200 -pingboost 3 /1000 FPS с нормални временни дропове/
Преди да стартираме процеса е необходимо да се логнем като root. Това става с помоща на командата:
Код за потвърждение: Избери целия код
sudo su
Ако ще компилирате под CentOS са ви необходими следните пакети:
Код за потвърждение: Избери целия код
yum -y groupinstall "Development Tools"
yum -y install ncurses-devel hmaccalc zlib-devel bc binutls-devel elfutils-libelf-devel openssl-devel
Код за потвърждение: Избери целия код
apt-get install build-essential libncurses5-dev libelf-dev bc bison flex libssl-dev
Код за потвърждение: Избери целия код
cd /usr/src
wget http://kernel.org/pub/linux/kernel/v4.x/linux-4.16.7.tar.xz
Код за потвърждение: Избери целия код
wget https://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt/4.16/
Код за потвърждение: Избери целия код
tar xvJf linux-4.16.7.tar.xz
Код за потвърждение: Избери целия код
cd linux-4.16.7
Код за потвърждение: Избери целия код
xzcat ../patch-4.16.7-rt1.patch.xz | patch -p1
Код за потвърждение: Избери целия код
make menuconfig
Код за потвърждение: Избери целия код
General Setup
--------------------------------
(-server) Local version -append to kernel-release
Включване Automatically append version information to the version string
Kernel Compression ---> (XZ)
Изключване Auditing Support
Timer tick handling -----> ( Full dynticks system (tickless) )
Aktivirane Full dynticks system on all CPUs by default (except CPU 0)
Изключване Old Idle dynticks config
Enable Block Layer
---------------------------------
IO Schedulers --->
* Default I/O Scheduler (Deadline)
Processor Type and features
---------------------------------
Изключване Linux Guest Support
Processor family --> (Spored processora)
Изключване SMT (Hyperthreading) scheduler support
Preemption Model ---> (Fully Preemtible Kernel (RT))
Timer Frequency --> (1000 HZ)
Power Managment and ACPI support
---------------------------------------
Изключване Suspend to RAM and standby
Изключване Hibernation
Изключване Power Managment Debug support
CPU Frequency Scaling ---->
* Default CPUFreq governor ---> (performance)
Network Options
--------------------------------------------------
* Изключване QoS and/or far queueing
Device Drivers
----------------------------------
Изключване Watchdog Timer Support
Включване Real Time Clock
Kernel hacking
----------------------------------
Изключване на всичко
Virtualization -- > Изключване
Запазваме конфигурацията. Като запазвате настройките, файла трябва да е .config както си е по default, а не да добавяте пред него и зад него някакви имена
И сега е време за същинския процес на компилация има много начини, но начина, който аз ползвам е:
Код за потвърждение: Избери целия код
make -j8
make modules_install
make install
Резултата при sys_ticrate 1200 -pingboost 3 /1000 FPS с нормални временни дропове/