Twitter: Школу покажут опять? Пиздец. Говно с тв ушло и говно в тв вернулось. 14 hrs ago
30
Октябрь
1

Нестандартный подход к сборке модулей в ArchLinux

Пользователям ArchLinux, использующим альтернативные ядра, известен геморрой с модулями ядра. В убунте то DKMS есть, а тут… Тот же модуль nvidia, находящийся в [extra], предназначен исключительно для стокового ядра -ARCH. А я вот использую ядра ветки -ZEN (которые сам и мейнтейню, впрочем) и каждые недели две выходит новый релиз, зачастую ломающий старые модули нвидии. Про смещение по ветви я и вовсе молчу.

Пакет nvidia-zen в AUR уже сто лет как устарел, а на мое письмо в maillist с просьбой забрать у текущего владельца пакет и оставить его без владельца никто не ответил.

Время шло, проблема не исчезала. Тогда я решился написать generic-way под все ядра.

Быстрый просмотр PKGBUILDа nvidia ясно дал знать, что все самое интересное и нужное находится в nvidia-binary-package/usr/src/nv. Все остальное было просто мусором. Посему исходники модуля были скопированы в /usr/src/nvidia и был написан простенький скрипт, который по команде buildmodule-nvidia собирал и устанавливал модуль под текущее запущенное ядро. Собственно скрипт, главная его часть, содрана с официального PKGBUILD.

cd /usr/src/nvidia/
ln -s Makefile.kbuild Makefile
make SYSSRC=/lib/modules/`uname -r`/build module || return 1
mkdir -p /lib/modules/`uname -r`/kernel/drivers/video/
install -m644 nvidia.ko /lib/modules/`uname -r`/kernel/drivers/video/
depmod `uname -r`

Заходим в консоль, от рута набираем buildmodule-nvidia, и все – модуль собран и установлен.

Казалось бы, проблема была решена. Но хотелось как то помочь людям с подобной проблемой, посему после 20-минутных потуг я родил пакет nvidia-builder, который вы и можете наблюдать в АУРе.

17
Сентябрь
1

Совершеннолетие Linux

Ага, именно так, 17 сентября 1991 года первая версия была.

Теперь с линуксом можно заниматься сексом абсолютно легально. Хотя эти времена прошли. Теперь все работает без проблем. Получше, чем в windows.

16
Август
2

Debian Day 2009

Именно 16 августа, в далеком 1993 создателем debian GNU/Linux Яном Мёрдком был официально основан Debian Project. Debian дал жизнь многим проектам, в числе которых Ubuntu – самый популярный linux дистрибутив, Maemo – используемый в MID’ах Nokia (и не только), Knoppix – LiveCD на все случаи жизни. Debian портирован на 11 архитектур и имеет самый большой репозитарий софта. По данным DistroWatch, Debian по популярности находится на 5 месте.

И именно сегодня Debian исполняется 16 лет. Ура, Товарищи!

17
Июль
3

Archlinux repo – [xdemon-repo]

Открыл доступ к своему небольшому репозитарию archlinux софта в бинарном, разумеется, виде. i686 only, sorry x86_64 guys. В репозитарии можно обнаружить svn версии таких тулз как nmap, aircrack, kismet + ptw, airoscript (все стабильно), небольшую коллекцию эмуляторов, cvs версию xchat и тому подобное…
Чтобы подключить мой репозитарий, добавьте в /etc/pacman.conf следующее:

[xdemon-repo]

http://repo.x-demon.org/archlinux/os/i686/

Затем обновите листы при помощи стандартного pacman -Su. Обновления – каждые 4 часа с 12.00 по МСК до полуночи.
Кстати говоря, я спокойно могу собирать нужные вам пакеты из AUR, для этого свяжитесь со мной в комментах и дайте ссылку на нужный PKGBUILD. А то двухголовый c2d простаивает.

10
Июнь
2

distcc – распределенная компиляция

После покупки нетбука я серьезно задумался о том, как бы ускорить процесс компиляции разного софта, которого нет в бинарном виде… Собирать, скажем, wine с фиксом для warcraft 3 требует полной пересборки, а wine софтина тяжелая, и собирается крайне лениво. Да и грузить несчастный atom по максимуму тоже не особо хочется. Впрочем, выход был найден достаточно быстро. distcc – система для распределенного компилирования.

Для начала о том, на чем все это тестировалось.

1. Для чего собиралось – HP 2140, Intel Atom 1.6 GHz, RAM 2 GB, ArchLinux.
2. Нода 1 – PC, Intel Core 2 Duo e 6550, 2.33 GHz, 1 GB RAM, Ubuntu Linux 9.04
3. Нода 2 – Acer Aspire 5720G, Intel Core 2 Duo T7300, 2 GHz, 2 GB RAM, Ubuntu Linux 9.04

Впрочем, ноды могут быть и на FreeBSD, и на Solaris – роли это не играет. Желательно только чтобы ветка gcc везде была одна, например gcc 4, хотя и это не обязательно.

Итак, поехали.

Ставим distcc из репозитариев. Он есть в бинарном виде в репах и у арча, и у убунты.

Правим конфиги. В ubuntu: /etc/default/distcc, archlinux – /etc/conf.d/distcc. Конфиги понятны, снабжены справкой и т. п. Я рекомендую закомментить строку LISTENER, чтобы демон слушал все сетевые интерфейсы, и изменить строку ALLOWEDNETS=”192.168.1.0/24″- так указано у меня для моей домашней сети.

Аналогично проделываем для всех машин. Все? Запускаем демона через /etc/init.d/distccd start для Убунты, и /etc/rc.d/distcc start для ArchLinux.

Теперь надо настроить компилятор для того, чтобы он использовал distcc. Так как я софт собираю арчевой утилитой makepkg, я могу это сделать через конфиг /etc/makepkg.conf , и приведу пример для него.
Для начала, уберем знак ! перед distcc в параметре BUILDENV, тем самым включив distcc. Затем идем в DISTCC_HOSTS и пишем там через пробел IP адреса машин с запущенным демоном distcc. Можно добавить после хоста параметр сжатия – /10,lzo, например 192.168.1.13/10,lzo. Локалхост писать не надо если в кольце больше 2х машин – он занимается обработкой данных. Если хотите собирать заодно и на 127.0.0.1 – пишите в массив. Ну и наконец переходим к параметру MAKEFLAGS и пропишем там количество потоков. Я взял 8 – на каждый двухъядерный проц 3 потока, и на Atom 2.

Теперь запустим компиляцию при помощи makepkg. Сделаем, например, yaourt -S wine-w3fix в арчлинухе, запустив тем самым сборку wine с фиксом для warcraft 3 из AUR. Теперь надо посмотреть статистику использования distcc.

Как это сделать? Есть два варинта. Первый – distccmon-text – текстовый монитор, показывающий потоки, и distccmon-gnome – на базе GTK.

Не работает? Смотрите /var/log/distccd.log. И пишите мне, чем смогу помогу.

Как собирать просто при помощи make? Надо выставлять, например, вот такие флаги:

CC='distcc gcc' CXX='distcc g++'

И стартовать make при помощи make -jN, где N – колво потоков.

Что же мы получим на выходе? Нужный нам бинарник, разумеется. Все флаги передаются на ноды – если вы собирали с -O2 и -march=prescott, то на всех нодах файлы будут собираться с этими флагами. Вы ничего не потеряете при сборке с помощью distcc.

Кстати говоря, Вы можете спокойно собирать софт при помощи distcc и на других машинах, вот на примере моей конфигурации Вы можете собирать софт на Acer Aspire, используя мощности PC и Atom.

А вот собирать ядро я не рекомендую, только если у вас не абсолютно одинаковые машины с одинаковой осью, компилером и библиотеками – иначе будут проблемы.

Пишите комменты, пинайте, спрашивайте, мучайте… Всегда рад ответить =) И кстати, это моя первая статья такой тематики и такого масштаба, так что приму конструктивную критику.

31
Март
3

unix: fuser

Расскажу-ка я Вам о маленькой утилите, входящий в состав любого linux-дистрибутива, крайне полезной в хозяйстве.

Зовется она fuser, а предназначеня для определения того, какой процесс держит открытым какой-то файл или сетевой порт.

Крайне полезно в хозяйстве =) Для файлов может использоваться для вычисления lock-файлов. Итак, поехали.

Базовый синтаксис – fuser –n SPACE. SPACE можно заменить на udp, tcp, и file. Пример с file:

[root@bsrv:~]# fuser -n file /home/xmpp-t/vkontakte/pyvkt.log
/home/xmpp-t/vkontakte/pyvkt.log: 22340

Вот и номер процесса. Можно убивать. Кстати, это можно сделать, добавив к аргументам параметр –k (чтобы получилось –nk) – fuser сам убьет процесс.

Теперь пример с портами.

[root@bsrv:~]# fuser -n tcp 5222
5222/tcp:            21945

Вот и выяснили какой процесс у нас занимает порт 5222. Жаббир сервер, ага, он самый =) И тут также можно применить ключ –k для убийства процесса.

И еще небольшая плюшка. Если добавить ключ –u, Мы увидим процесс какого пользователя занимает данный файл/порт. Например:

[root@bsrv:~]# fuser -nu tcp 5222
5222/tcp:            21945(ejabberd)

А вот и пользователь!

13
Февраль
1

1234567890

Дада.

Пользователи UNIX-подобных операционных систем по всему готовятся отметить символичную дату. 13 февраля 2009 года в 23:31:30 по Гринвичу UNIX-время во всех системах, работающих в данном стандарте, достигнет отметки 1 234 567 890 секунд. Помимо того, что на серверах выстраивается такая комбинация цифр, так эта дата еще и приходится на пятницу 13-е, говорят многие суеверные администраторы.

28
Декабрь
6

Линусу Торвальдсу 39

Ровно тридцать девять лет назад, 28 декабря 1969 года, в Хельсинках родился Линус Торвальдс, создатель операционной системы Linux.

16
Август
0

15 лет Debian

Лол, чо, бухаем

9
Май
0

Source engine – порт на Linux

Владельцы сайта phoronix.com получили подтверждение сведений о проведении работы по портированию под Linux платформу игрового 3D движка Source Engine, разработанного компанией Valve Software и используемого в таких шедеврах, как “Counter-Strike: Source”, “Half-Life 2″, “Day of Defeat: Source”, “Portal” и “Team Fortress 2″.

Ранее подобные сведения были на уровне слухов, вызванных в прошлом году набором на работу в компанию Valve Software разработчиков с опытом портирования Windows приложений на OS Linux. Однако слухи подтвердились
(Очередной шаг к вендекапцу)
Оригинал новости | Новость на OpenNet

BlogMemes.ru blogo blogboosterpopularsite