Category Archives: Линукс

Адванс рутинг

Започвам този пост с мисълта да си запиша какво наравих днес (всъщност вече вчера), за да не го забравя, а и с надеждата, че някой може да ме поправи (ако някъде бъркам) или просто да каже, че това са пълни глупости и така не става (да, това също си мисля, че е възможно). Става дума за желанието на шефа ми, заявките за интернета от неговия компютър да бъдат с предимство. Все пак той използва интернет малко и главно за да си проверява пощата (уеб базирани) и да гледа разни страници в нета, за разлика от масираното ровене и даунлодване от страна на Спас и мен 😉 Тази задача стоеше пред мен от известно време и естествено започнах всичко с търсене с google. Най-доброто което ми се стори, че намерих е това Linux Advanced Routing and Traffic Control HOWTO и главно часта му за Simple source policy routing. Лошото беше, че някои от командите не работеха и изкарваше някаква грешка с RTNETLINK. Реших, че липсва някаква подръжка в ядрото и използвах възможността да прекомпилирам нов кърнел, специално за Стамат (така се казва сървъра, за който не знае 😉 ). Дори сложих stamat във версията на ядрото и пуснах подръжката на почти всички мрежови възможности на Линукс, а тотално премахнах мултимедията. Дори след като това ми хрумна идея да направя вътрешната мрежа по IPv6 😉 но се чудя дали XP-тата го подържат ?!? Е, въздържах от подобно начинание и продължих с идеята за приоритети на заявките по изходен IP адрес. Забравих да кажа, че инсталирах iproute2 и започнах с burst на изходящите заявки, чрез командата:

# tc qdisc add dev eth0 root tbf rate 220kbit latency 50ms burst 1540

Имайте в предвид, че канала който получаваме по ADSL-а на БТК е 256kbit/s. След това по препоръка на горното HOWTO, направих нова таблица във файла /etc/iproute2/rt_tables

# echo 200 Qnko >> /etc/iproute2/rt_tables

Шефът ми се казва Янко 😉 Добавих ново правило чрез командата ip

# ip rule add from 192.168.0.6 table Qnko

След това, при заявка да видя приоритетите, се получава това :

# ip rule ls

0: from all lookup local

32765: from 192.168.0.6 lookup Qnko

32766: from all lookup main

32767: from all lookup default

Което според мен означва, че IP 192.168.0.6 (въпросния компютър на шефа) има по-висок приоритет при предаването и приемането на пакети от main и default, т.е. всички останали PC-та в локалната мрежа. След това трябва да се приложат новите настройки чрез

# ip route flush cache

Така си мисля, че съм изпълнил задачата, но честно казано не знам как да проверя, че всичко е както си го мисля ?!?

Преди прекомпилирането на Ядрото, добавих кръпките на Kolivas и реших да пробвам неговите препоръки на оптимизацията на работа на сървър:

# echo 0 > /proc/sys/kernel/interactive

# echo 33 > /proc/sys/vm/mapped

При опит да включа compute

# echo 1 > /proc/sys/kernel/compute

забелязах видимо забавяне, на отговорите от конзолата (всичко до тук правех отдалечено по ssh), което не ми хареса и ми се стори твърде голяма жертва, така че го пуснах едно “echo 0”, и отново се “оправи” 😉

Така завършиха днешните ми сървърни неволи, който правех между другата работа, която имах. За сега Стамат работи без видими проблеми и се надява и занапред да е така 😉 Ако някой има някакви забележки, ще се радвам да ги чуя (прочета).

Стамат

Днес на работата ми се занимавах с новия ни сървър – един Compaq купен на старо от Изот Сервиз за 83 лв. с ДДС (Pentium II, 350MHz, 64MB RAM, 6,4GB HDD). Естествено му инсталирах ArchLinux, което беше лесната част. Със Спас решихме да го кръстим Stamat, напук на Йоновия сървър Зигмунд, който въобще не е по-умен от нашия 😉 Бях забравил колко много неща трябва да се настройват по сървърите – уж обикновенни неща като OpenSSH, Apache, PHP, MySQL … а доста неща трябваше да барна по конфовете, особено като въобще не съм наясно с базите данни. Най-трудното си оставих за накрая – конфигурацията на мрежата. Идеята беше целия трафик да минава през него, а той да си взима настройките по DHCP от ADSL модема на БТК, който раздава вътрешни IP-та от рода 192.168.1.X. Останалите компютри трябваше да останат със старите си статични адреси от типа 192.168.0.X . Мислех си че ще стане по стария начин с SNAT, но не стана. Поразрових се малко из Интернет, и намерих решението, което отново е с NAT, но с малко повече опции на iptables :

itables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -d ! 192.168.1.0/24 -j MASQUERADE

Най-странното беше, че така проработи за момент и след това се изгуби връзката от “най-вътрешната” мрежа към 192.168.1.1, което се явява модема и едновременно DNS сървър. Така се принудих да сложа DNS сървър и на Стамат и така всичко тръгна 😉 Ще видим да няма някакви издънки скоро. Ако някой има по-добра идея как да реализирам тази задачка, може да сподели, не казвам че това е единственото решение, още по-малко най-доброто. В скоро време може да се наложи и някакви приоритети на компютрите да слагам, но ще видя това как ще го измисля, май google ще помага доста 🙂

Ден на Линукс

Днес беше “Деня на Линукс в Пловдивския Университет”. Събитието премина учудващо добре, дори за мен като част от организаторите. Аз очаквах да се съберем 20-30 човека с прителите ни и да си поговорим за Линукс, но лекционна зала номер 422 в ПУ се пукаше по шевовете от хора. Доколкото разбрах има 100 места, и излиза че е имало още повече хора 🙂 Като се има в предвид, че е работен ден си мисля че това е много добър резултат. Естествено повечето бяха студенти от ПУ, но и това беше търсената аудитория. Освен това имаше и значителна групичка от математическата гимназия. В началото имаше към 60 анкетни карти, който въобще не стигнаха и 2 пъти се наложи да се ходи до ксерокса да се размножават. Анкетите са в мен, но не съм ги преброил още, а и не знам още точно кога ще ги обработвам. Доста хора снимаха с фотоапарати, а Йонов, дори записа лекцията на Йовко на видео 🙂 Като се обработят материалите, ще поместим нещата на страницата на OpenClub – opencub-plovdiv.info . Денят (по-скоро полуденя) на Линукс започна в 13:30 с лекцията на Йовко за свободнои софтуер, линзите, патентите и т.н., след него Станимир Иванов ни информира за делата на LPI в България и как и защо да се сертифицираме. Последва по-практическата лекция на Найден Гочев (Joke) за свободните среди за програмине (IDE-тата) и на Ангел Урилски за Kylix. Всички лекции бяха много добре, за което много им благодаря ! Накрая трябваше да има и инсталация на Линукс, но всички започнаха да си тръгват и останалите обсъдихме още някои неща и към 17 часа и аз си тръгнах.
Този (малък) успех ме окуражи, да организираме още подобни прояви свързани със свободния софтуер и друг път и на други места. Интерес има и в това се убедих днес.

От rc на rc

Днес цял ден си стоях в къщи и използвах момента да си обновя ядрото. От липса на време, стоях още на 2.6.10-rc1-ck1. След наскорощните бъгове, реших че и финалната верия 2.6.10 не ми върши работа и си изтеглих и patch-а за 2.6.11-rc1. Видях че има и rc2, но за него Kolivas не е изкарал още поправки и реших че и rc1 ще ми свърши работа. Добавих поправките, пуснах едно menuconfig и се задълбах в настройки. Не знам защо, но този процес винаги ми отнема много време (днес беше отново ~1 час) – просто обичам и да чета help-овете на опциите и да реша дали ми трябват. За пореден път се удивих колко неща подържа ядрото – особено новите USB джаджи. Върха беше USB Lego Infrared Tower Support ! 😉 т.е. да си управлявам Лего куличка с Линукс … всъщност то хубаво да я управлявам, ама чак подръжка в самото ядро 🙂 Не стига ли някой user space софтуер ?!? Компилацията мина безпроблемно, редактирах си lilo.conf (да, все не мога да се наканя да мина на grub, а и не виждам защо) и рестартирах. Старото ми ядро, или всъщност цялата система, нещо съвсем се беше скапала – може би от непрестанните обновявания на ArchLinux-а и uptime-a, който беше станал (изненадващо дори и за мен) 13 дена, но превключването от едно приложение в друго беше съпроводено с масивно жулене по твърдия ми диск и отнемаше незаслужено много време. На новото ядро избрах CFQ scheduler, а другите въбще не ги компилирах, като прочетох че този е подходящ за desktop система, каквато е моята. За сега не съжалявам 🙂 Компютъра ми се държи много по-добре след рестарта с новото ядро, въпреки че се води RC, а не финална версия. Явно ми върви на такива версии 🙂 С предишната изкарах 3-4 месеца и ако скоро нямам пак свободно време, сигурно и с тази ще стане така. Хайде, честито ми ново ядро 🙂 Драйвера на NVidia тръгна без особени проблеми след patcha на Kolivas и всичко изглежда много добре. Дано да няма неприятни изненади, но дори и да има винаги мога да рестарирам с предишното ядро или с някое от другите по-стари версии, които стоят и още не съм ги изтрил. Свободата, Санчо, свободата …

Ядро 2.6.10-rc1 и Nvidia

От няколко дена дена се мъча с новото ядро 2.6.10-rc1, т.е. не със самото ядро, а с драйвера на nvidia, който за мое учудване не искаха да се компилират. Към ядорото първо добавих колекцията от добавки на Kolivas, както и подръжка на supermout (благодаря на Павел за помощта при компилирането). Както и да е, с ядорото горе-долу се оправих и тръгна, но проблема беше в драйвера на NVidia. Постоянно твърдеше, че го компилирам с грешен изходен код на ядрото и дори като му го задам ръчно с –kernel-source-path пак не ставаше. Гледам аз логовете и всичко изглежда наред, самата компилация минава без проблеми, но не може да зареди модула. Дори пробвах номера да копирам модула от /tmp преди да завърши инсталацията, но не стана . След десетки опити и гледане в "advance" опциите на nvidia-installer, реших да добавя и опцията –kernel-name, въпреки че uname -r си връщаше правилната версия, и за учудване стана ! Т.е. инсталацията мина успешно, или поне така твърдеше. Веднага пробвах modprobe nvidia и пуффф – грешка ! Unresolved symbols или нещо такова … гледам dmesg пълно с :

nvidia: Unknown symbol pci_find_class

Веднага един google с горепосочената грешка и попаднах на един блог, в който разбрах, че са сменили името на функцията pci_find_class на pci_get_class. Отивам в директорията с драйвера на nvidia, правя един grep и гледам че въпросната функция я има (само) във файла nv.c . Променям й името на всички места на които я има, пускам отново nvidia-installer и воаля ! имам вече нов модул !!!

Сега, доволен от успеха си, седя и си блогвам спокойно с новото ядро 🙂

Извод от този пост : когато имате свободата на отворения код и силата на google и Интернет, не се отказавайте, а търсете, учете и ще постигнете каквото сте си наумили, независимо дали е малко и незначително или голямо и велико ! Само липсата на желание може да Ви спре !

Arch VS Slackware

Днес в OSNews.com намерих статия озаглавена "Arch Linux Vs Slackware: The Best of All Worlds". Аз като виден фен на ArchLinux, нямаше как да пропусна да я прочета. Ако Ви интересува темата може да й хвърлите един поглед. Мисля, че е добре написано сравнение между тези две Линукс дистрибуции. Разгледайте и коментарите – от тях става ясно, че много хора дори не са чували за Arch. Затова и реших да напиша това, за да може и някой от Вас да пробва и да види хубавите идеи заложени в сравнително новата дистрибуция – ArchLinux. Аз лично не бих я сменил  никога, ако продължава да се развива със същия дух 🙂

Панаир

Днес, както обещах, бях на панаира. Първо обикалях с шефа ми (Янко Христов), и той като ги познава повечето хора, ни черпиха навсякъде 🙂 Дори пих бира на щанда на Comet, които си бяха направи цял бар на щанда. Лошо впечатление на панаира ми направи, че моя отрасъл – електрониката в България е на доста ниско ниво 🙁 Машиностроението е доста по-напред, колкото и да не ми се вярва. Все пак имаше 3 палати за машиностроение, плюс различни открити площи, а за електроника има само една. В областа на Интернет и компютрите, добро спечатление ми направи, че все повече фирми, започват да предлагат Wi-Fi интернет достъп на различни места.

Както си разглеждах 8-ма палата и попаднах на щанда на Spectrum Net и се сетих за идеята на Силвина, да ги питам за доставчик на интернет за Open Fest (ей, Силвина, откъде ти идват такива страхотни идеи направо ти се чудя ! Браво ! ). Жената на щанда се оказа много разбрана, като естествено в начало овърташе че не била правилния човек с който да говоря, но в последствие като разбра че искам само интернет връзка, започна да мисли какво може да се направи по въпроса. Остави ми визитка, оказа се че е Кристияна Маркова, директор на регионалния офис (каквото и да значи това 🙂 ) Остави си и GSM номера и каза да й звънна към вторник, като мине лудницата с панаира, а тя щяла да говори с "момчетата" какво могат да направят. Дори каза че ще провери колко струва прекарването на временна наета линия на БТК и ако не е много, сигурно ще стане. Всъщност се оказа, че тя вече знаеше за феста, била получила имейл, но не разбрах от къде (някой да знае ?).

След панаира отидох и до AngelSoft, но там нямаше с кой да говоря т.е. имаше един, но го чаках 10 минути да си свърши разговора по телефона, но той така и не приключи и аз си тръгнах. Ще отида в някой по-работен ден 🙂

Иначе, ми писна да чакам от ArchLinux да пуснат gnome 2.8 официално в extra и миналато нощ, го оставих да се инсталира от testing. Учудващо сутринта, всичко се беше инсталирало без проблем, а отгоре на всичкото тръга от първия път ! 🙂 Лекото разочарование дойде от това че нямаше почти никаква разлика от 2.6 . Единствено добавянето на аплет към панела, вече не е с контексно меню, а е с нещо като програмка. Е това е само външно, да се надявам че са изчистини много бъгове, който не се виждат. Сложих си и Evolution 2 и се замислям дали да не оставя pine, но за сега не мога 🙂 но evolutiona-а си внесе всичките ми писма от pine в него и сега съм с двете. Ще чета с pine през ssh, а като съм у нас ще си ги импортвам в еволюцията. По-скоро ми трябваше програма за записване на информация за хора (телефони, emails, ICQ-та … ) , че сега всичко ми е на различни места и е по-неудобно. Пък е хубаво да ги имам поне на 2 места. Contacts на Evolution ми върши идеална работа 🙂 Само където ме чака доста въвеждане информация, но лека полека смятам, че ще стане 🙂

Сталкер

Днес след работа се разбрахме с Йонов да гледаме някой филм в Баня "Старинна". Изложбата затваря в 7 часа, но на един проектор за 4500 лв. и огромните стени, става идеално да се гледа филм. За тази цел ни трябваше нещо което да пусне филм със субтитри, тъй като наличните DVD плеари, пускат DIVX, но не и субтитри. Реших да изтегля и пробвам GeeXboX, за което бях чел в Линукс за българи. Това е мини live дистрибуция, на която побългарената версия е само 14MB (!!!), но пуска всякакви мултимедийни файлове – видео, аудио и картинки в всевъзможни формати. Направо се възхитих и препоръчвам GeeXboX на всички, които използват компютъра си предино за развлечения. Дори си купих едно малко CD и сега смятам да си го нося навсякъде с мен 🙂 Пробвах го вече на 4 различни компютъра и е пушка !!! Тръгва и пуска всичко 🙂

Гледахме "Сталкер" – един стар руски филм на Тарковски. Много добър филм ! Много ми хареса, дори и при факта че нямаше субтитри и не го разбрах напълно. Направо се учудих, че по онова време (1979 г.) са правени филми от този род. Аз си мислех, че всички руски филми са за войната и/или са политизирани за пропаганда, а този ми напомни на филм на Дейвид Линч, но доста по-отдавна. В скоро време трябва да гледам и "Соларис" на Тарковски – може да му стана фен 🙂

Симулатор на LPI изпит

Сега се върнах от среща на open club Пловдив (ако въобще все още може да се нарече така, но това е друга тема) и там заедно с Дафо и Георги (fla) решихме да се тренираме за изпит на LPI. Георги беше намерил емулатор на теста на адрес linux-praxis.de/lpisim/lpi.html. 34-те въпроса ги мъдрихме близо 2 часа, но в същото време си говорихме за много други неща. Например за юридическто утвърждаване на групата, за софтуерни и хардуерни проблеми … въобще за всичко. Добре ми доиде тази среща с хора със сродни интереси 🙂 В крайна смета тримата заедно го взехме изпита с 82 точки, при изискване 70 🙂 Като се има предвид, че въобще не сме се подготвяли, си е добре 🙂 Наистина има някои въпроси които ни затрудниха – главно за SCSI и специфичните за някои дистрибуции (apt-get и rpm). Все пак ние имахме на разположение конзола и google, така че резултата не се брои напълно 🙂

PC Geek

Снощи се събрахме тайфата в къщата на художниците в Стария град. Всичко започна малко инфарктно за мен, защото вентилатора на процесора ми (носих PC-то ми) издаваше странни звуци и почти беше спрял. Реших да го отворя и да го смажа преди да са дошли другите и най-вече преди да е спрял напълно. Единствената отверка която намерих беше от едно джобно ножче, което си мислех че никога няма да му ползвам всички джиджавки, но снощи кръстата му отверка свърши чудесна работа ! Дори и ножичката му свърши работа за нещо, но това е друга тема 🙂 Изчистих праха, но вентилатора продължи да се движи трудно и единственото нещо което намерих да го смажа беше олио 🙂 Естествено стана, но си мисля че ако го оставя по-дълго време без да се върти, ще се спече. Все си казвам, че трябва да си взема нов вентилатор.

Снощи доставчика ми на Интернет май нещо се беше объркал и теглих с 11К международен, 47К BG и 700К локален. Вярвам, че това ще е само временно, но ми помогна бързо да си изтегля новото ядро 2.6.8 . Снощи започнах да го компилирам, но трябваше да спра и да тръгна за стария град. Днес тъкмо продължих компилацията и като пълен идиот изключих разклонителя на който беше включен компютъра. Третия ми опит беше осуетен от НЕК, които ми спряха тока. По едно време видях, че е излязъл 2.6.8.1 , който оправя някаква тъпа грешка в NFS и въпреки че не ползвам NFS си драпнах patcha, за да съм с най-новата версия 🙂 Също така от сайта на Kolivas взех patch-а за supermount за 2.6.8-rc4 , който стана без проблем на финалната версия. Новото нещо което пробвах беше да вкюча подръжката на Riva frame buffer конзола (видео картата ми е Nvidia Vanta 16MB), и конзолата наистина тръгна на 75Hz, но не се разбра с официалните драйвери на Nvidia и се наложи да прекомпилирам с VESA frame bufer и сега съм така, отново на 60Hz в конзолата.

Май дойде и моето време да мина на X.Org и сега го тегля 🙂 Някои разправят, че дори бил по-бърз … ще видим 🙂 Дори си мисля да сложа Udev и да махна devfs. Все пак трябва да спазвам духа на ArchLinux – всичко the latest & the greatest 🙂 На домашната ми машина мога да си позволя да експериментирам 🙂 BTW сега видях че отново съм с най-висока версия на ядрото на ArchStats. Точно преди да update-на моето инфо пишеше 2.6.8-rc? а веднага след това 2.6.8.1, тоест аз 🙂