Existing user? Sign in
Sign up
Games
Servers
Useful
User
Pass
2FA
Atentie! Aceasta este versiunea LowFi a topicului! Click
aici
pentru varianta originala.
Tutorial compilare kernel Linux La 1000 Hz (1000 Fps HLDS)
Freakz Forum Index
->
Trash Bin
->
CS 2006-2019 (Archived)
->
Tutorials
Author
Message
12231
Shocker
[
Freakz owner
]
Posted: 11-10-2009, 13:50:12
| Translate post to:
... (
Click for more languages
)
Tutorialul nu e scris de mine ci de saintjimmygd, m-a rugat sa il postez si aici.
In cele ce urmeaza o sa va convingeti despre importanta kernelului si despre efectul acestuia asupra performantei unui server de CS 1.6
Acest tutorial este doar pentru cei care folosesc platforma Linux,incluzand toate distributiile derivate Debian (Ubuntu,LinuxMint etc)
Sa pornim de la urmatoarele : aveti Ubuntu si serverul instalat in /usr/hlds
1.Downloadarea kernelului
-aici gasiti toate tipurile de kernel :
http://www.kernel.org/pub/linux/kernel/v2.6/
-aici gasiti patch-uri RT pt kernel :
http://www.kernel.org/pub/linux/kernel/projects/rt/
-momentan,ultima versiune de kernel este 2.6.31
-intram in terminal si ne logam ca root scriind
Quote:
sudo su
-dupa ce introducem parola scriem
Quote:
cd /usr
-si
Quote:
chmod -R 777 src
-dupa care
Quote:
cd /usr/src
-tot in terminal ne downloadam ultimul kernel si patch
Quote:
wget
http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.31.tar.gz
Quote:
wget
http://kernel.org/pub/linux/kernel/projects/rt/patch-2.6.31.2-rt13.gz
2.Compilarea kernelului
-instalam "uneltele" necesare
Quote:
apt-get install gcc
apt-get install make (sau gmake sau gnu-make)
apt-get install ncurses
apt-get install ncurses-dev
apt-get install chrt
apt-get install zlib1g-dev
apt-get install patch
-vom dezarhiva kernelul
Quote:
tar zxf linux-2.6.31.tar.gz
-si vom aplica patch-ul RT
Quote:
cd linux-2.6.31
Quote:
zcat ../patch-2.6.31.2-rt13.gz | patch -p1
-incepem configurarea kernelului
Quote:
make menuconfig
-ne va aparea un meniu unde vom face urmatoarele modificari
Quote:
General setup
:
RCU Subsystem
(ignora daca nu este prezent)
Activeaza
RCU Implementation (Preemptible RCU)
Dezactiveaza
Enable tracing for RCU
Processor type and features
:
Dezactiveaza
Tickless System (Dynamic Ticks)
Activeaza
High Resolution Timer Support
Selecteaza-ti procesorul sub
Processor family
Schimba
Preemtion Mode
in
Complete Preemption (Real-Time)
Activeaza
Enable priority boosting of RCU read-side critical sections
(ignora daca nu este prezent)
Dezactiveaza
Enable tracing for RCU - currently stats in debugfs
(ignora daca nu este prezent)
Activeaza
Machine Check Exception
si selecteaza Intel sau AMD in functie de ce procesor ai
Schimba
Timer frequency
la
1000 HZ
Power management and ACPI options
Activeaza
Power Management support
Dezactiveaza
Power Management Debug Support
Dezactiveaza
Suspend to RAM and standby
Dezactiveaza
Hibernation (aka 'suspend to disk')
Activeaza
ACPI (Advanced Configuration and Power Interface) Support
Dezactiveaza
CPU Frequency scaling
Dezactiveaza
CPU idle PM support
Networking support
Networking options
Activeaza
Packet socket: mmapped IO
Dezactiveaza
Network packet filtering framework (Netfilter)
(
Atentie!:aceasta optiune dezactiveaza firewall-ul
)
Dezactiveaza
QoS and/or fair queueing
Device Drivers
Dezactiveaza
Watchdog Timer Support
Activeaza
Real Time Clock
Activeaza
PC-style 'CMOS'
Kernel hacking
Dezactiveaza absolut tot
-dupa ce terminam iesim din meniu (EXIT) iar cand ne intreaba daca vrem sa salvam configuratia vom raspunde cu da (YES)
-pentru compilarea si instalarea kernelului vom rula urmatoarea comanda
Quote:
make && make install modules_install
Acest proces dureaza in jur de 2-3 ore,depinde de sistemul dumneavoastra
...
...
...
...
...
...
Urmeaza creerea in directorul /boot a celor doua componente rezultate din compilarea kernelului folosind comanda
Quote:
mkinitramfs -o /boot/initrd.img-2.6.31.2-rt13 2.6.31.2-rt13
-acum vom aduca kernelul in meniul de boot
Quote:
cd ..
cd /boot
chmod -R 777 grub
-ne ducem in /boot/grub si deschidem fisierul menu.lst (sau grub.conf) si adaugam noul kernel in lista
Quote:
title Debian 2.6.31 RT Kernel 1000 Fps
kernel /boot/vmlinuz-2.6.31.2-rt13 root=/dev/sda1
initrd /boot/initrd.img-2.6.31.2-rt13
Aceasta de mai sus (/dev/sda1) este locatia "standard",dar poate diferi,in functie de partitia instalarii linuxului.
Puteti incerca in terminal
Quote:
update-grub
Restartati PC-ul
Quote:
shutdown -r now
Dupa restart,la pornire,inainte de a se incarca linuxul,apasati ESC iar din meniul GRUB selectati noul kernel si apasati ENTER.
Puteti verifica ce kernel ruleaza in prezent pe sistem tastand in terminal
Quote:
uname -r
3.Setarea serverului in mod real-time
Un sistem real-time are nevoie sa stie care procese sunt critice si care nu.In mod normal,nici un proces nu este considerat ca fiind critic.Cel mai usor este sa creem un "cron job" pe care il vom seta sa ruleze din minut in minut.In folderul /usr/src vom crea un nou fisier pe care il vom numi " resched.sh ".Deschidem fisierul respectiv si punem in el urmatoarele
Quote:
#!/bin/sh
PIDS=`ps ax | grep sirq-hrtimer | grep -v grep | sed -e "s/^ *//" -e "s/ .*$//"`
for p in $PIDS; do
chrt -f -p 99 $p
done
PIDS=`ps ax | grep sirq-timer | grep -v grep | sed -e "s/^ *//" -e "s/ .*$//"`
for p in $PIDS; do
chrt -f -p 51 $p
done
PIDS=`pidof srcds_i686`
for p in $PIDS; do
chrt -f -p 98 $p
done
PIDS=`pidof srcds_i486`
for p in $PIDS; do
chrt -f -p 98 $p
done
PIDS=`pidof srcds_amd`
for p in $PIDS; do
chrt -f -p 98 $p
done
PIDS=`pidof hlds_i686`
for p in $PIDS; do
chrt -f -p 98 $p
done
PIDS=`pidof hlds_i486`
for p in $PIDS; do
chrt -f -p 98 $p
done
PIDS=`pidof hlds_amd`
for p in $PIDS; do
chrt -f -p 98 $p
done
-vom face fisierul executabil
Quote:
chmod 755 /usr/src/resched.sh
-apoi
Quote:
cd /etc
chmod -R 777 crontab
-mergem in directorul /etc si deschidem fisierul crontab
-adaugam urmatoarele
Quote:
# m h dom mon dow user command
[...]
*/1 * * * * root /usr/src/resched.sh > /dev/null 2>&1
-dupa care restartam crontab
Quote:
/etc/init.d/cron restart
4.Eliminarea variatiilor de FPS cu "idler"
-dupa urmare acestui tutorial,pe unele sisteme raman mici variatii de FPS
-in acest caz ajuta creerea unui proces low-priority care sa ia 100% din procesor
-ne ducem in /usr/src si creem un fisier nou pe care il denumim " idler.c "
-in fisierul respectiv adaugam urmatoarele linii
Quote:
int main() {
while(1);
}
-compilam programul din terminal (trebuie sa fii root)
Quote:
cd /usr/src
gcc idler.c -o idler
nice ./idler
Nu uitati sa porniti serverul cu " -pingboost 3 " si cu un " sys_ticrate " intre 1000 si 1200 (puteti incerca sa vedeti ce vi se potriveste mai mult).Daca ati urmat corect acest tutorial veti avea la server 1000 Fps si o acuratete foarte buna.Puteti de asemenea,pentru o mai buna performanta,instalarea unui PING BOOSTER
Quote:
http://www.udpsoft.com/booster/
Link-uri de studiat
Quote:
http://rt.wiki.kernel.org/index.php/Main_Page
http://www.howto-cs16-root.de/index.htm
0
0
metal
[Mentally Stable]
Posted: 23-11-2009, 09:50:39
| Translate post to:
... (
Click for more languages
)
Ma scuzati ca ma bag dar : am facut si eu acest tutorial si ma impotmolesc undeva , mai exact aici : mkinitramfs -o /boot/initrd.img-2.6.31.2-rt13 2.6.31.2-rt13 (imi zice ca nu exista ) am folosit acest patch deoarece cel din tutorial nu mai merge linkul :
http://www.kernel.org/pub/linux/kernel/projects/rt/patch-2.6.31.6-rt19.gz
0
0
stjimmy
[Mentally Stable]
Posted: 23-11-2009, 14:43:33
| Translate post to:
... (
Click for more languages
)
Deci,daca ai folosit patch-2.6.31.6-rt19.gz atunci trebuie sa folosesti linux-2.6.31.6
Downloadezi linux-2.6.31.6 si aplici patch-2.6.31.6-rt19
Iar la comanda mkinitramfs -o /boot/initrd.img-2.6.31.2-rt13 2.6.31.2-rt13
EVIDENT ca schimbi sa fie corespunzator cu ceea ce ai downloadat tu ,adica mai exact trebuie :
mkinitramfs -o /boot/initrd.img-2.6.31.6-rt19 2.6.31.6-rt19
Asta era problema,tu ai incercat sa dai comanda la rt13 cand de fapt ai folosit rt19
0
0
mut2nt
[Mentally Stable]
Posted: 29-01-2010, 14:00:51
| Translate post to:
... (
Click for more languages
)
Intrebare, daca primul fisier de o versiune si al 2-lea fisier de o versiune, pot fi compatibile?
0
0
Ghimy
[Mentally Stable]
Posted: 10-03-2011, 17:55:10
| Translate post to:
... (
Click for more languages
)
un update la tutorialu acesta daca se poate sa faceti va rog frumos
0
0
banditu
[Mentally Stable]
Posted: 30-12-2011, 19:07:23
| Translate post to:
... (
Click for more languages
)
Un update?!
0
0
ion
[prin vacante]
Posted: 31-12-2011, 02:29:14
| Translate post to:
... (
Click for more languages
)
Tutorialul e la fel de bun ca in data cand a fost postat. Daca nu mai merg linkurile cauta patch-urile aici:
http://www.kernel.org/pub/linux/kernel/projects/rt/2.6.31/older/
0
0
banditu
[Mentally Stable]
Posted: 08-01-2012, 20:57:39
| Translate post to:
... (
Click for more languages
)
1. "Ne ducem in /boot/grub si deschidem fisierul menu.lst (sau grub.conf) si adaugam noul kernel in lista"
Nu am nici unul dintre ele, am decat grub.cfg iar ce trebuie sa scriem aici unde punem sus sau jos?
2. "Un sistem real-time are nevoie sa stie care procese sunt critice si care nu.In mod normal,nici un proces nu este considerat ca fiind critic.Cel mai usor este sa creem un "cron job" pe care il vom seta sa ruleze din minut in minut.In folderul /usr/src vom crea un nou fisier pe care il vom numi " resched.sh ".Deschidem fisierul respectiv si punem in el urmatoarele"
Cum cream acel fisier? Postati si comanda/comenzile pe care trebuie sa le scriem in terminal.
0
0
CaNaRiOo
[Banned user]
Posted: 06-04-2012, 21:16:37
| Translate post to:
... (
Click for more languages
)
Este un interesant ! Tutorial Mia folosit Foarte Mult !
0
0
kn07
[Mentally Stable]
Posted: 30-08-2019, 02:38:57
| Translate post to:
... (
Click for more languages
)
banditu wrote:
1. "Ne ducem in /boot/grub si deschidem fisierul menu.lst (sau grub.conf) si adaugam noul kernel in lista"
Nu am nici unul dintre ele, am decat grub.cfg iar ce trebuie sa scriem aici unde punem sus sau jos?
2. "Un sistem real-time are nevoie sa stie care procese sunt critice si care nu.In mod normal,nici un proces nu este considerat ca fiind critic.Cel mai usor este sa creem un "cron job" pe care il vom seta sa ruleze din minut in minut.In folderul /usr/src vom crea un nou fisier pe care il vom numi " resched.sh ".Deschidem fisierul respectiv si punem in el urmatoarele"
Cum cream acel fisier? Postati si comanda/comenzile pe care trebuie sa le scriem in terminal.
1. in loc sa modifici fisierul respectiv, poti folosi comanda 'update-grub'.
2. poti folosi comanda 'touch resched.sh', urmata de deschiderea fisierului cu un text editor si editarea lui. De asemenea poti rula o comanda de genul '%text_editor% resched.sh', unde %text_editor% poate fi: vim, nano, pico, gedit, pluma, etc. Primele trei sunt editoare de consola(in terminal), ultimele doua sunt editoare ce detin o interfata grafica (similar cu notepad).
0
0
Freakz Forum Index
->
Trash Bin
->
CS 2006-2019 (Archived)
->
Tutorials
The time now is 18-08-2025, 06:43:55
Copyright info
Based on phpBB
ro
/
com
B
Login
I forgot my password
World of Warcraft
Login for more...
Download WoW 7.3.5
Misc
eSports
Achievements
Buy reputation with votes
Reputation trades
Forum rules
Ban list
Members list
User guide (FAQ)
World of Warcraft
View details