Лечим "Linux bug 12309"

Тот, кто использует Linux на десктопе вероятно наблюдал печальную картину, когда при копировании большого файла(например 10 Gb и более) система становится совершенно неработоспособной. Переключение между окнами, прокрутка в браузере, просмотр видео, проигрывание музыки сопровождается «тормозами», отзывчивость как GUI, так и консольных приложений сильно деградирует, вплоть до полной остановки пользовательских программ в угоду одного процесса, который осуществляет процесс копирования. По завершению копирования все становится на свои места. Если кто не в курсе, то данный эффект называется Linux bug 12309

Причины его, вроде бы, до сих пор доподлинно неизвестны, проявляется по-разному в сочетании с различными версиями ядра и железа(чипсет, процессор, жесткий диск). Баг кочует с переменным успехом от версии к версии начиная примерно с 2.6.18.

На лоре делятся впечатлениями и советами пыщ (прошу сильно не пинать, так как по ссылке обсуждение в цивилизованном русле)

На моей Ubuntu-11.10 (linux-3.0.0) «12309» проявляется слабо, но все же есть чутка. До этого на Debian Squeeze(linux-2.6.32) ситуация была несколько хуже.

( Читать дальше )

Valve ищет разработчика под Linux

Совсем недавно мы публиковали новость про то, что Ubuntu One ищет разработчика под MacOS, дак появилась более приятная новость: Valve в поисках Linux-разработчика!

В вакансии прямо написано, что разработчик будет трудиться именно со Steam составляющей.

Так же радует тот факт, что подвижение игр на платформу Linux не стоит на месте. Valve уже как то публиковали вакансии для поиска разработчиков под Linux, но никаких подробностей не было. Сейчас же мы видим следующий пункт в вакансии:

Port Windows-based games to the Linux platform

Вольный перевод:

Портирование Windows игр на платформу Linux

Значит ли это, что нам стоит ждать Steam для Linux? Вполне возможно. Но, к сожалению, точные выводы делать пока рано, ибо может разработчик нужен для разработки приложений для Linux-серверов.

Остаётся только ждать подробности.

Собственно сама вакансия: valvesoftware.com.

www.valvesoftware.com/job-SenSoftEngineer.html

Alfresco: неправильные ссылки в приглашениях

В приглашениях, отправляемых Alfresco вместо нормального url сайта присутствует 127.0.0.1. Лечится добавлением строки:

repo.remote.url=http://хост


В alfresco-global.properties.

Естественно, нужен перезапуск.

Обновление Alfresco 3.4.0d до 4.0c

1. Останавливаем старый alfresco.

2. Скачиваем новый и устанавливаем его, например в /opt/alfresco4.

3. Стартуем и останавливаем новый. Это нужно для распаковки необходимых файлов.

3. Русифицируем новый. Топик тут. Проблему с TinyMCE исправили — с файлами перевода в архиве необходимые файлы. Русификация здесь.

Почему-то не работает принудительное выставление локали способом:

Добавляем в /opt/alfresco/tomcat/bin/catalina.sh:
JAVA_OPTS="$JAVA_OPTS -Duser.language=ru -Duser.region=RU"

Как разберусь — напишу.

4. Обновляем информацию о временных зонах. Топик тут.

( Читать дальше )

OpenMediaVault: сетевое хранилище для любителей Debian

OpenMediaVault — сетевое хранилище на базе Debian Squeeze с web-интерфейсом для администрирования. Поддерживает:

S.M.A.R.T. мониторинг + извещения по почте
Watchdog
Управление питанием HDD (APM/AAM)
Поддержка ФС EXT3/EXT4/XFS/JFS
Поддержка RAID JBOD/0/1/5/6 (mdadm)
LVM
Управление шарами с поддержкой ACL
SNMP (v1/2c/3) (только чтение), SSH, FTP, TFTP, NFS, SMB/CIFS, Bittorrent клиент, DAAP клиент, NTP, UPS

XCP: делаем привязку ip адресов к mac адресам

Есть выделенный сервер с XCP (Xen Cloud Platform), есть диапазон ip выданный провайдером. Как сделать так, чтобы клиенты не могли поменять свой ip внутри xen машин? Привязка к mac адресу! Но как сделать, чтобы и mac адрес не сменили? Воспользуемся iptables на сервере XCP. Нам понадобится XCP версии минимум 1.1, в 1.0 ядро не поддерживает фильтрацию по mac адресам.

Делаем так:

Очищаем правила iptables:

iptables -F


Разрешаем клиенту с ip 46.4.180.227 и с mac адресом 11:11:11:11:11:11 и 2му клиенту с ip 46.4.180.228 и с mac адресом 22:22:22:22:22:22:

( Читать дальше )

ImageMagick: печатаем большое изображение на нескольких листах

С помощью ImageMagick можно поделить огромное изображение (например, разрешения 7000x4000) на несколько небольших для печати:

convert -crop 1500x2000 file.jpg file%02d.jpg


Получаем файлы вида file00.jpg, file01.jpg разрешением 1500x2000.

Подсмотрел тут.

ImageMagick: конвертируем pdf в png

Благодаря ImageMagick это очень просто, для png приемлемого качества:

convert -density 300 ./Desktop/srkt.pdf -resize 50% ./Desktop/srkt.png

xbmc, видеокарта ati x1250, пульт microsoft и squashfs

Для старого ноутбука с видеокартой ati mobility x1250 мне пришлось перебрать кучу «живых» дистрибутивов с xbmc. В разных было по-разному — то работает видеокарта, но не работает пульт, то наоборот. Ближе всего к рабочему дистрибутиву оказался дистрибутив XBMCFreak, я скачал специальную версию для пультов Microsoft:

xbmcfreak.binkey.nl/xbmcfreak-msremote-10.1-v2.zip.

Создавать загрузочную флешку лучше так с помощью unetbootin, я выделил 256 мб под хранение измененных файлов:



Хранит по всей видимости лишь файлы из домашней директории, но для хранения настроек XBMC этого вполне достаточно.

Также в дистрибутиве есть доступ по ssh (логин/пароль — xbmc/xbmc), работает web сервер, есть клиент торрент клиента transmission и еще кое что:

( Читать дальше )

Linux: поднимаем контейнеры LXC за 5 минут

Контейнерная виртуализация LXC (Linux Containers) появилась в ядре с версии 2.6.29. Технология хороша тем, что не требует специфических патчей ядра в отличии от OpenVZ и очень проста в использовании. В Debian появилась в Squeeze.

Устанавливаем:

apt-get install lxc bridge-utils debootstrap


К слову, bridge-utils нужен только в случае настройки сети через мост, т.е. чтобы система в контейнере имела виртуальный сетевой интерфейс со своим mac и ip адресом. Я в данном топике настраивать мост не буду, мне LXC нужен в качестве удобного средства попробовать софт не засоряя основную систему. Без настройки моста контейнеры используют интерфейс основной машины.

Прописываем в /etc/fstab

cgroup          /cgroup         cgroup  defaults        0       0


Создаем директорию и монтируем:

mkdir /cgroup
mount -a


Создаем директорию для виртуальной системы и создаем ее с помощью скрипта lxc-debian, который установит минимальную версию Debian Lenny.

mkdir -p /var/lib/lxc/vm0


/usr/lib/lxc/templates/lxc-debian -p /var/lib/lxc/vm0/


Стартуем систему:

lxc-start -n vm0


Логин и пароль — root/root. Все команды для работы с LXC начинаются с префикса lxc- и разобраться в них очень просто.

При использовании ядра linux версии 3.0.0 я столкнулся со следующей проблемой при запуске.

lxc-start: No such file or directory — failed to rename cgroup /cgroup/28788->/cgroup/vm0
lxc-start: failed to spawn 'vm0'
lxc-start: No such file or directory — failed to remove cgroup '/cgroup/vm0'

При использовании ядра 2.6.39-2-686-pae все работает.

Почитать:

wiki.debian.org/LXC
nigel.mcnie.name/blog/a-five-minute-guide-to-linux-containers-for-debian
blog.foaa.de/2010/05/lxc-on-debian-squeeze/