﻿define('DISALLOW_FILE_EDIT', true);
define('DISALLOW_FILE_MODS', true);<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>/dev/head &#187; linux</title>
	<atom:link href="http://devhead.ru/cat/linux/feed" rel="self" type="application/rss+xml" />
	<link>http://devhead.ru</link>
	<description>Статьи и видео уроки</description>
	<lastBuildDate>Mon, 30 Jan 2017 11:12:34 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.37</generator>
	<item>
		<title>Linux kernel space application profiling</title>
		<link>http://devhead.ru/read/linux-kernel-space-application-profiling</link>
		<comments>http://devhead.ru/read/linux-kernel-space-application-profiling#comments</comments>
		<pubDate>Tue, 27 Oct 2015 13:20:56 +0000</pubDate>
		<dc:creator><![CDATA[andreykyz]]></dc:creator>
				<category><![CDATA[Статьи]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[perf]]></category>

		<guid isPermaLink="false">http://devhead.ru/?p=2132</guid>
		<description><![CDATA[Для того чтобы узнать природу загрузки приложения которую выводит htop можно воспользоваться утилитой perf входящей в состав ядра Соберем инструмент отладки: $ cd linux-source/tools/perfl $ make Теперь запустим интересующее нас приложение и запустим профайлер(на 10 секунд): $ sudo ./perf record -F 99 -a -g -- sleep 10 Далее можно посмотреть результат при помощи утилиты perf [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Для того чтобы узнать природу загрузки приложения которую выводит htop можно воспользоваться утилитой perf входящей в состав ядра<br />
<span id="more-2132"></span><br />
Соберем инструмент отладки:</p>
<blockquote><p>$ cd linux-source/tools/perfl<br />
$ make</p></blockquote>
<p>Теперь запустим интересующее нас приложение и запустим профайлер(на 10 секунд):</p>
<blockquote><p>$ sudo ./perf record -F 99 -a -g -- sleep 10</p></blockquote>
<p>Далее можно посмотреть результат при помощи утилиты perf report. Если в утитите perf record не увазывать опцию -o то отчет по умолчанию будет сохранен в perf.data:</p>
<blockquote><p>sudo ./perf report -i ./perf.data</p></blockquote>
<p>будет получен подобный отчет</p>
<div id="attachment_2136" style="width: 310px" class="wp-caption aligncenter"><a href="http://devhead.ru/wp-content/uploads/2015/10/Snimok-ekrana-ot-2015-10-27-154651.png"><img class="size-medium wp-image-2136" src="http://devhead.ru/wp-content/uploads/2015/10/Snimok-ekrana-ot-2015-10-27-154651-300x154.png" alt="perf report -i ./perf.data" width="300" height="154" /></a><p class="wp-caption-text">perf report -i ./perf.data</p></div>
<p>ещё можно воспользовавшись специальными скриптами построить так называемы flame graph. качаем скрипты:</p>
<blockquote><p>$ git clone https://github.com/brendangregg/FlameGraph ~/fg</p></blockquote>
<p>Конвертируем наш отчет в текстовый вид и пропускаем чере flame graph:</p>
<blockquote><p>sudo ./perf script &gt; perf.script<br />
~/fg/stackcollapse-perf.pl perf.script &gt; perf.folded<br />
~/FlameGraph/flamegraph.pl perf.folded &gt; perf.svg</p></blockquote>
<p>результат:<br />
<a href="http://devhead.ru/wp-content/uploads/2015/10/Snimok-ekrana-ot-2015-10-27-161659.png"><img class="aligncenter size-medium wp-image-2138" src="http://devhead.ru/wp-content/uploads/2015/10/Snimok-ekrana-ot-2015-10-27-161659-300x143.png" alt="Снимок экрана от 2015-10-27 16:16:59" width="300" height="143" /></a></p>
<h1>Ссылки</h1>
<p><a href="https://perf.wiki.kernel.org/index.php/Tutorial">Linux kernel profiling with perf</a><br />
<a href="http://www.brendangregg.com/flamegraphs.html">Flame Graphs</a><br />
<a href="http://www.brendangregg.com/perf.htm">lperf Examples</a></p>
]]></content:encoded>
			<wfw:commentRss>http://devhead.ru/read/linux-kernel-space-application-profiling/feed</wfw:commentRss>
		<slash:comments>39</slash:comments>
		</item>
		<item>
		<title>Wii remote как джойстик для Linux</title>
		<link>http://devhead.ru/read/wii-remote-kak-dzhojstik-dlya-linux</link>
		<comments>http://devhead.ru/read/wii-remote-kak-dzhojstik-dlya-linux#comments</comments>
		<pubDate>Tue, 04 Dec 2012 12:37:37 +0000</pubDate>
		<dc:creator><![CDATA[Аноним]]></dc:creator>
				<category><![CDATA[Статьи]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[wii]]></category>
		<category><![CDATA[wii remote]]></category>

		<guid isPermaLink="false">http://devhead.ru/read/wii-remote-kak-dzhojstik-dlya-linux</guid>
		<description><![CDATA[Купил я уже достаточно давно джойстик Wii remote для самопальной интерактивной доски, но как-то не сошлись звёзды и я забил на эту идею. Но вот недавно я вытащил его шкафа и стал думать, что с ним делать. Восемьсот рублей заплаченых конечно не жалко, но вот что он воляется без работы, меня стало напрягать :) Тут [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Купил я уже достаточно давно джойстик Wii remote для самопальной интерактивной доски, но как-то не сошлись звёзды и я забил на эту идею. Но вот недавно я вытащил его шкафа и стал думать, что с ним делать.</p>
<p><span id="more-1734"></span> Восемьсот рублей заплаченых конечно не жалко, но вот что он воляется без работы, меня стало напрягать :) Тут кокраз я захотел поиграть в Silent Hill в имуляторе SP. Итак, перед нами стоит новая цель, а именно прикрутить по синимузубу этот огрегат :)</p>
<ul>
<li>Ставим wminput</li>
</ul>
<blockquote><p>sudo apt-get install wminput</p></blockquote>
<ul>
<li>Заходим в /etc/cwiid/wminput и создаём конфиг.</li>
</ul>
<blockquote><p>#cd /etc/cwiid/wminput</p>
<p>#nano mypad</p>
<p>добавляем в него:</p>
<p>#mypad<br />
Wiimote.Up      = KEY_LEFT<br />
Wiimote.Down    = KEY_RIGHT<br />
Wiimote.Left    = KEY_DOWN<br />
Wiimote.Right   = KEY_UP</p>
<p>#joystick_buttons<br />
Wiimote.A       = BTN_A<br />
Wiimote.B       = BTN_B<br />
Wiimote.Minus   = BTN_X<br />
Wiimote.Plus    = BTN_Y<br />
Wiimote.Home    = BTN_Z<br />
Wiimote.1       = BTN_1<br />
Wiimote.2       = BTN_2</p></blockquote>
<p>Сохраняем конфиг.</p>
<ul>
<li>Запускаем wminput с параметром нашего конфига</li>
</ul>
<blockquote><p>wminput -c mypad</p>
<p>на экране появится:</p>
<p>Put Wiimote in discoverable mode now (press 1+2)...</p>
<p>при успешном соединении появится надпись:</p>
<p>Ready.</p></blockquote>
<p>Вот и всё! Ура! можете потестить в jstest-gtk.</p>
<ul>
<li>Установить jstest-gtk:</li>
</ul>
<blockquote><p>sudo apt-get install  jstest-gtk</p></blockquote>
<p><a href="http://devhead.ru/wp-content/uploads/2012/12/Snimok-ekrana-ot-2012-12-04-163839.png"><img class="alignleft size-medium wp-image-1736" title="Снимок экрана от 2012-12-04 16:38:39" src="http://devhead.ru/wp-content/uploads/2012/12/Snimok-ekrana-ot-2012-12-04-163839-300x191.png" alt="" width="300" height="191" /></a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://devhead.ru/read/wii-remote-kak-dzhojstik-dlya-linux/feed</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>RDP терминал на Linux</title>
		<link>http://devhead.ru/read/rdp-terminal-na-linux</link>
		<comments>http://devhead.ru/read/rdp-terminal-na-linux#comments</comments>
		<pubDate>Mon, 14 Nov 2011 04:52:16 +0000</pubDate>
		<dc:creator><![CDATA[Аноним]]></dc:creator>
				<category><![CDATA[Статьи]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[rdesktop]]></category>
		<category><![CDATA[rdp]]></category>
		<category><![CDATA[terminal]]></category>

		<guid isPermaLink="false">http://devhead.ru/read/rdp-terminal-na-linux/</guid>
		<description><![CDATA[Потребовалось создать дистрибутив для внутреннего пользования на предприятии, который работает как терминал, подключаясь к rdp сессии  Маздайного сервака. Чтобы не искушать судьбу на разные "извращения" и  красноглазие, я решил воспользоваться SUSE Studio. Плюс этого сервиса, что упращается сборка дистрибутива с нужными пакетами, оформлением и прочими утехами. С этой задачей я справился очень быстро, но вот [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Потребовалось создать дистрибутив для внутреннего пользования на предприятии, который работает как терминал, подключаясь к rdp сессии  Маздайного сервака. Чтобы не искушать судьбу на разные "извращения" и  красноглазие, я решил воспользоваться <a href="http://susestudio.com">SUSE Studio</a>. Плюс этого сервиса, что упращается сборка дистрибутива с нужными пакетами, оформлением и прочими утехами. С этой задачей я справился очень быстро, но вот далее дошло до программы которая будет подключаться к терминалу. Естественно выбор пал на rdesktop, но вот незадача в том, что нужно написать соответствующий скрипт который будет выкачивать из сети конфиги, парсить их в  соответствии с IP-адресом и подключаться куда нужно и с определёнными параметрами. Ещё необходимо, чтобы скрипт реагировал на свои в локальной сити или при недоступности узла. Можно было использовать bash, но реализовывать нормальный парсинг на нём, это не айс и я решил использовать python. <span id="more-1346"></span><strong></strong> <strong>terminal.py </strong></p>
<pre class="brush: python">#!/usr/bin/python
#-*-coding:utf8-*-
#New Terminal programm for  Terminal OS.
import threading
import time
import os
import ConfigParser
import socket
import fcntl
import struct

ip="local.location.ru"
user="terminal"

config = ConfigParser.ConfigParser()
config.read('/home/'+user+'/terminal.cfg')
pingcount=(config.get('general', 'pingcount'))

download_mirror_config="http://local.location.ru/terminal.cfg"
download_config="http://192.168.2.7/terminal.cfg"

class PingProcess(threading.Thread):
    def ping(self):
        ping = os.system("ping -c "+pingcount+" "+ip)
        return ping

    def run(self):
        while True:
            if self.ping() == 0:
                os.system("killall qiv")
                dwld=os.system("wget -N --timeout 3 --tries 1 "+download_config+" -P /home/"+user+"/")
                if dwld != 0:
                    os.system("wget -N --timeout 3 --tries 1 "+download_mirror_config+" -P /home/"+user+"/")
                time.sleep(60)

            else:
                os.system("killall rdesktop")
                time.sleep(60)

class StartProcess(threading.Thread):
    def getIP(self,ifname='eth0'):
        try:
            s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
            ipaddr = socket.inet_ntoa(fcntl.ioctl(
            s.fileno(),
            0x8915,
            struct.pack('256s', ifname[:15])
            )[20:24])
            return ipaddr
        except:
            return "127.0.0.1"
    def run(self):
        once_commands=(config.get(self.getIP(), 'once_commands'))
        os.system(once_commands)
        while True:
            commands=(config.get(self.getIP(), 'commands'))
            os.system(commands)
            os.system("qiv -f /home/"+user+"/warrning.png")

ping = PingProcess()
ping.start()
process = StartProcess()
process.start()</pre>
<p><strong>terminal.cfg</strong></p>
<pre class="brush: xhtml">[general]
pingcount=1

[127.0.0.1]
once_commands=''
commands=''

[192.168.27.128]
once_commands=''
commands=rdesktop -f -u username -p password -z -r comport:COM1=/dev/ttyS0 192.168.7.9</pre>
<p><strong>Программа для запуска script.sh</strong></p>
<pre class="brush: bash">#!/bin/bash
wget -N --timeout 3 --tries 1 http://192.168.2.7/terminal.cfg
DWLD=$?
if [ "$DWLD" -ne "0" ]
then
wget -N --timeout 3 --tries 1 http://local.location.ru/terminal.cfg
else
terminal.py
fi</pre>
]]></content:encoded>
			<wfw:commentRss>http://devhead.ru/read/rdp-terminal-na-linux/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Отключение энергосбережения монитора</title>
		<link>http://devhead.ru/read/otklyuchenie-energosberezheniya-monitora</link>
		<comments>http://devhead.ru/read/otklyuchenie-energosberezheniya-monitora#comments</comments>
		<pubDate>Wed, 24 Aug 2011 12:34:53 +0000</pubDate>
		<dc:creator><![CDATA[ignusius]]></dc:creator>
				<category><![CDATA[Статьи]]></category>
		<category><![CDATA[dpms]]></category>
		<category><![CDATA[fluxbox]]></category>
		<category><![CDATA[icewm]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[monitor]]></category>

		<guid isPermaLink="false">http://devhead.ru/read/otklyuchenie-energosberezheniya-monitora/</guid>
		<description><![CDATA[При разработке дистрибутива для узкого применения для предприятии, я столкнулся с проблемой, что монитор примерно через 15 минут отключается. Я перепробовал множество вариантов, я ковырял /etc/X11/xorg.conf и проч. Начал колдовать с xset' ом и нашёл как решить эту у многих наболевшую проблему. xset s off -dpms Эту команду нужно добавить в автозагрузку. Для fluxbox откроем [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>При разработке дистрибутива для узкого применения для предприятии, я столкнулся с проблемой, что монитор примерно через 15 минут отключается. Я перепробовал множество вариантов, я ковырял <strong>/etc/X11/xorg.conf </strong>и проч. Начал колдовать с xset' ом и нашёл как решить эту у многих наболевшую проблему.  <span id="more-1334"></span></p>
<blockquote>
<div>xset s off -dpms</div>
</blockquote>
<div>Эту команду нужно добавить в автозагрузку.</div>
<p>Для fluxbox откроем файл<strong> ~/.fluxbox/startup</strong> и добавим строку:</p>
<blockquote>
<div>
<pre>xset s off -dpms &amp;</pre>
</div>
</blockquote>
<div>Для icewm откроем файл<strong> ~/.icewm/startup</strong> и добавим строку:</p>
<blockquote>
<div>
<pre>xset s off -dpms &amp;</pre>
</div>
</blockquote>
</div>
]]></content:encoded>
			<wfw:commentRss>http://devhead.ru/read/otklyuchenie-energosberezheniya-monitora/feed</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>DIALux в Linux</title>
		<link>http://devhead.ru/read/dialux-v-linux</link>
		<comments>http://devhead.ru/read/dialux-v-linux#comments</comments>
		<pubDate>Thu, 11 Aug 2011 06:05:04 +0000</pubDate>
		<dc:creator><![CDATA[Аноним]]></dc:creator>
				<category><![CDATA[Статьи]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[wine]]></category>
		<category><![CDATA[winetricks]]></category>

		<guid isPermaLink="false">http://devhead.ru/read/dialux-na-linux/</guid>
		<description><![CDATA[Для установки специальной программы для расчета освещения &#60;trollmode&#62; которая как ни странно есть под Windows &#60;/trollmode&#62; под названием DIALux и она бесплатна для скачивании на оф.сайте.Но проблема была в следующем под Windows XP Professional SP3 со всеми обновлениями она зараза не захотела устанавливаться. И решил поставить ее под wine. Скачал я её и приступил к [&#8230;]]]></description>
				<content:encoded><![CDATA[<div>Для установки специальной программы для расчета освещения <em>&lt;trollmode&gt; </em>которая<em><strong> </strong></em>как ни странно есть под Windows <em>&lt;/trollmode&gt;</em> под названием DIALux и она бесплатна для скачивании на <a href="http://dialux-help.ru/index.html">оф.сайте</a>.Но проблема была в следующем под Windows XP Professional SP3 со всеми обновлениями она зараза не захотела устанавливаться. И решил поставить ее под wine. Скачал я её и приступил к установке.  <span id="more-1290"></span> По началу думал все будет просто и легко, но не тут то было.Сначала он ругался на то что программе не хватает компонента:</div>
<p><strong>Microsoft Data Access Cpmponents 2.8 sp1(mdac28)</strong>.</p>
<p>Я нашел быстро в <strong>Winetricks</strong>(находиться  в Select the default wineprefix -&gt; Install a Windows DLL or component.) Установил и  думал что все закончиться. Но не тут то было!  Теперь программа требовала:</p>
<p><strong>MS jet 4.0 Service Pack 8</strong>.</p>
<p>Его я тоже нашел там же, где и <strong>mdac28,</strong> но он ставиться  не захотел. Погуглив немного выяснилось что для программы требуется <strong>Internet Explorer 8</strong>(ie8 из winetricks)<strong>,</strong> в итоге поставив его программа встала как нужно и работает прекрасно.</p>
<p><a href="../../wp-content/uploads/2011/08/DIALux2.png"><img class="alignleft size-medium wp-image-1291" title="DIALux2" src="../../wp-content/uploads/2011/08/DIALux2-300x240.png" height="240" width="300" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://devhead.ru/read/dialux-v-linux/feed</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>D-Link DWA-140  и Linux</title>
		<link>http://devhead.ru/read/d-link-dwa-140-i-linux</link>
		<comments>http://devhead.ru/read/d-link-dwa-140-i-linux#comments</comments>
		<pubDate>Thu, 23 Jun 2011 10:58:46 +0000</pubDate>
		<dc:creator><![CDATA[Аноним]]></dc:creator>
				<category><![CDATA[Статьи]]></category>
		<category><![CDATA[d-link]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[wi-fi]]></category>
		<category><![CDATA[сеть]]></category>

		<guid isPermaLink="false">http://devhead.ru/read/d-link-dwa-140-i-linux/</guid>
		<description><![CDATA[Под руку попался беспроводной USB-адаптер D-Link DWA-140 стандарта 802.11n, воткнув его в USB-порт предвкушая моментальную работу и негеморройную настройку как это обычно бывает в Ubuntu (в моём случае Ubuntu 11.04), я увидел кукиш. Не чего не произошло, даже не моргнул индикатор на самом девайсе :)  Выхлоп команды lsusb, подтвердил, что устройство подключено, но не опознано. [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Под руку попался беспроводной USB-адаптер D-Link DWA-140 стандарта 802.11n, воткнув его в USB-порт предвкушая моментальную работу и негеморройную настройку как это обычно бывает в Ubuntu (в моём случае Ubuntu 11.04), я увидел кукиш. Не чего не произошло, даже не моргнул индикатор на самом девайсе :)  Выхлоп команды lsusb, подтвердил, что устройство подключено, но не опознано.</p>
<p><span id="more-1273"></span></p>
<p><img src="http://nets.com.ua/img/katalog/171/3_7.jpg" height="400" width="436" /></p>
<p>Выход из этой неприятной ситуации оказался довольно простым, чтобы всё завелось и полетело, нужно открыть файл:</p>
<blockquote>
<p>nano /etc/modprobe.d/blacklist.cfg</p>
</blockquote>
<p>И добавить в него сточку:</p>
<blockquote>
<p>blacklist rt2800usb</p>
</blockquote>
<p>После этого нужно перезагрузить компьютер и всё заработает!</p>
]]></content:encoded>
			<wfw:commentRss>http://devhead.ru/read/d-link-dwa-140-i-linux/feed</wfw:commentRss>
		<slash:comments>33</slash:comments>
		</item>
		<item>
		<title>AVR Studio 4 в WINE под Ubuntu Linux</title>
		<link>http://devhead.ru/read/avr-studio-4-v-wine-pod-ubuntu-linux</link>
		<comments>http://devhead.ru/read/avr-studio-4-v-wine-pod-ubuntu-linux#comments</comments>
		<pubDate>Tue, 21 Jun 2011 07:39:53 +0000</pubDate>
		<dc:creator><![CDATA[andreykyz]]></dc:creator>
				<category><![CDATA[Статьи]]></category>
		<category><![CDATA[AVR Studio 4]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[wine]]></category>

		<guid isPermaLink="false">http://devhead.ru/read/avr-studio-4-v-wine-pod-ubuntu-linux/</guid>
		<description><![CDATA[Надавно, по работе, начал программировать микроконтроллеры AVR. До меня в этой организации все писалось в AVR Studio 4 и для того чтобы её заюзать мне пришлось установить Windows 7. Однако отсутствие 10 рабочих столов(как я привык), быстрого копипаста мышью, а также вменяемой консоли меня огорчало. В общем я решил поставить AVR Studio в WINE под [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Надавно, по работе, начал программировать микроконтроллеры AVR. До меня в этой организации все писалось в AVR Studio 4 и для того чтобы её заюзать мне пришлось установить Windows 7. Однако отсутствие 10 рабочих столов(как я привык), быстрого копипаста мышью, а также вменяемой консоли меня огорчало. В общем я решил поставить AVR Studio в WINE под Ubuntu и на моё удивление все заработало достаточно неплохо. Как всё это происходило:</p>
<p><span id="more-1266"></span>Для начала я пошел на сайт <a href="http://winehq.org">winehq.org</a> и посмотрел как обстоят дела с поддержкой данного сабжа. И как оказалось у него <a href="http://appdb.winehq.org/objectManager.php?sClass=version&amp;iId=18704">золотая поддержка</a> не позднее чем с WINE 1.34. А в Ubuntu уже по умолчанию идет WINE1.2</p>
<p>И так я решил начать установку:</p>
<blockquote><p>sudo apt-get install wine</p></blockquote>
<p>Далее необходимо установить библиотеки и шрифты от M$:</p>
<blockquote><p>wget http://www.kegel.com/wine/winetricks</p>
<p>bash winetricks</p></blockquote>
<p>Выбираем <strong>Select the default wineprefix</strong> ставим все шрифты(вкладка <strong>Install a font</strong>), кроме китайски, корейских и японских. После установки шрифтов ставим следующие библиотеки(вкладка <strong>Install a Windows DLL or components</strong>):</p>
<blockquote><p>comctl32<br />
gdiplus<br />
ie6<br />
mdac27<br />
mdac28<br />
msls31<br />
msxml3<br />
pngfilt<br />
vcrun2005<br />
vcrun6sp6<br />
vcrun6<br />
wsh56vb<br />
wsh57</p></blockquote>
<p>После установки Wine ставим сам AVR Studio:</p>
<blockquote><p>wine AvrStudio4Setup.exe</p></blockquote>
<p>Запустить устновленную AVR Studio можно так из консоли:</p>
<blockquote><p>wine ~/.wine/drive_c/Program\ Files/Atmel/AVR\ Tools/AvrStudio4/AVRStudio.exe</p></blockquote>
<p>или просто создав ярлык с такой строкой запуска</p>
<p>Вот что в итоге получилось:</p>
<p><a href="http://devhead.ru/wp-content/uploads/2011/06/AVRStudio_wine.png"><img class="alignnone size-medium wp-image-1271" title="AVRStudio_wine" src="http://devhead.ru/wp-content/uploads/2011/06/AVRStudio_wine-300x240.png" alt="" width="300" height="240" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://devhead.ru/read/avr-studio-4-v-wine-pod-ubuntu-linux/feed</wfw:commentRss>
		<slash:comments>39</slash:comments>
		</item>
		<item>
		<title>pure-ftpd на CentOS 5</title>
		<link>http://devhead.ru/read/pure-ftpd-na-centos-5</link>
		<comments>http://devhead.ru/read/pure-ftpd-na-centos-5#comments</comments>
		<pubDate>Wed, 04 May 2011 10:10:58 +0000</pubDate>
		<dc:creator><![CDATA[ignusius]]></dc:creator>
				<category><![CDATA[Статьи]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[ftpd]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[pure-ftpd]]></category>

		<guid isPermaLink="false">http://devhead.ru/read/pure-ftpd-na-centos-5/</guid>
		<description><![CDATA[C недавних пор мой выбор пал на pure-ftpd как на очень простой и достаточно функциональный ftp-сервер , но установить на CentOS его оказалось не просто. Сначала я стал искать его в стандартных репах, но его там банально не было. Вот нашёл сторонний реп, с которым процесс его установки будет простым и не принуждённым :) nano [&#8230;]]]></description>
				<content:encoded><![CDATA[<style type="text/css"><!--
&lt;! 
		@page { size: 21cm 29.7cm; margin: 2cm }
		P { margin-bottom: 0.21cm }
 &gt;
--></style>
<p>C недавних пор мой выбор пал на pure-ftpd как на очень простой и достаточно функциональный ftp-сервер , но установить на CentOS его оказалось не просто. Сначала я стал искать его в стандартных репах, но его там банально не было. Вот нашёл сторонний реп, с которым процесс его установки будет простым и не принуждённым :)</p>
<p><span id="more-1168"></span></p>
<blockquote><p>nano /etc/yum.repos.d/kbsingh-CentOS-Extras.repo</p></blockquote>
<p>Добавляем в этот новый файл, такие строки:</p>
<blockquote><p>[kbs-CentOS-Testing]<br />name=CentOS.Karan.Org-EL$releasever – Testing<br />gpgcheck=0<br />gpgkey=http://centos.karan.org/RPM-GPG-KEY-karan.org.txt<br />enabled=1<br />baseurl=http://centos.karan.org/el$releasever/extras/testing/$basearch/RPMS/</p></blockquote>
<p>Сохраняем файл и приступаем к установке пакета с pure-ftpd:</p>
<blockquote>
<p>yum install pure-ftpd</p>
</blockquote>
<p>Вот и всё!</p>
]]></content:encoded>
			<wfw:commentRss>http://devhead.ru/read/pure-ftpd-na-centos-5/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Ускорение работы linux</title>
		<link>http://devhead.ru/read/uskorenie-raboty-linux</link>
		<comments>http://devhead.ru/read/uskorenie-raboty-linux#comments</comments>
		<pubDate>Mon, 22 Nov 2010 06:15:07 +0000</pubDate>
		<dc:creator><![CDATA[Аноним]]></dc:creator>
				<category><![CDATA[Статьи]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[speed]]></category>
		<category><![CDATA[swap]]></category>

		<guid isPermaLink="false">http://devhead.ru/read/uskorenie-raboty-linux/</guid>
		<description><![CDATA[Статья, о том как можно ускорить работу GNU/Linux с помощью swappiness, vfs_cache_pressure, drop_caches и др. С недавних пор досупен патч многократно ускоряющий отзывчивость системы, я думаю кому интересно --&#62; вот патч. swappiness(/proc/sys/vm/swappiness, ед.изм. проценты, до 100) - при заполнении такой части доступной RAM ядро приступит к использованию swap. Посмотреть значение можно при помощи команды "cat [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Статья, о том как можно ускорить работу GNU/Linux с помощью <strong>swappiness, </strong><strong>vfs_cache_pressure, </strong><strong>drop_caches </strong>и др. С недавних пор досупен патч многократно ускоряющий отзывчивость системы, я думаю кому интересно --&gt; <a href="http://marc.info/?l=linux-kernel&amp;m=128978361700898&amp;w=2">вот патч</a>.</p>
<p><span id="more-738"></span></p>
<p><strong>swappiness</strong><br /><em>(/proc/sys/vm/swappiness, ед.изм. проценты, до 100)</em> - при заполнении такой части доступной RAM ядро приступит к использованию swap. Посмотреть значение можно при помощи команды "cat /proc/sys/vm/swappiness". В мой системе значение по умолчанию было 60, т.е. когда память заполнялась чуть больше чем наполовину, ядро начинало свопать. Имеет смысл увеличить это значение, я у себя использую <em>95</em>. Изменить его можно при помощи команды:</p>
<blockquote>
<p>echo 95 &gt; /proc/sys/vm/swappiness</p>
</blockquote>
<p>Разумеется, это надо делать при каждой загрузке системы.  <br /><strong>vfs_cache_pressure</strong><br /><em>(/proc/sys/vm/vfs_cache_pressure, ед.изм. "штуки")</em> - влияет на отношение ядра к освободившимся от кэшированных оъектов файловой системы страницам ОЗУ. Значение по умолчанию - 100. Уменьшение этого значения заставляет ядро придерживать эти страницы почаще для своих нужд в будущем. Увеличение значения заставляет ядро чаще отдавать эта страницы для нужд других программ, т.е. при увеличении этого значения величина cached в выводе top будет расти медленнее. Немного подробнее об этой переменной можно прочитать в файле Documentation/filesystems/proc.txt от корня дистрибутива исходных кодов ядра. Какое именно значение стоит выставить мне пока удалось найти только в Сети, обычно рекомендуют 1000. Я думаю, что прояснить этот вопрос помогут исходники ядра, но до этого пока руки не доходят. Проверить и выставить значение можно аналогично действиям из предыдущего пункта. <br /><strong>drop_caches</strong><br /><em>(/proc/sys/vm/drop_caches)</em> - это "командная" переменная, т.е. считывать её значение особого смысла нет, нужно только записывать. Предназначена для запуска принудительного освобождения оперативной памяти из-под кэшированных объектов. Это можно делать время от времени если память под кэши и буферы продолжает расходоваться слишком быстро и ядро снова начинает работать со swap. Побочный эффект - некоторое замедление производительности системы в целом до того, как будут снова закэшированы наиболее части используемые объёкты и данные. Запись в этот файл (/proc/sys/vm/drop_caches) значения 1 запустит очистку кэша страниц оперативной памяти, значение 2 запустит очистку кэша объектов файловой системы, значение 3 запустит 1 и 2 последовательно. Важный момент - данные будут просто уничтожаться, поэтому перед запуском этих процессов имеет смысл выполнить sync чтобы сбросить изменённые данные на диск. Тем не менее, на мой взгляд, для сильно нагруженного сервера, обрабатывающего большие объёмы данных за короткое время, между запуском sync и записью значения в этот файл в кэш могут попасть новые данные, которые на диск уже записаны не будут и, соответственно, будут утеряны. Так что пользоваться этим механизмом следует редко и осторожно, осознавая последствия. Пример команды записи:</p>
<blockquote>
<p>sync &amp;&amp; echo 2 &gt; /proc/sys/vm/drop_caches</p>
</blockquote>
<p><strong>Ускоряем работу на машинах с большим объёмом ОЗУ.</strong><br />Если на вашей машине ОЗУ редко поднимается до критического уровня, то можно ускорить работу методом наименьшего обращения к разделу подкачки.<br />Сделать это можно так:</p>
<p>Нужно открыть файл <em>'''/etc/sysctl.conf'''</em><br />И создать в нём такую строку:</p>
<blockquote>
<p>vm.swappiness=5<br />vm.vfs_cache_pressure=10000</p>
</blockquote>
<p>p.s. значения vm.swappiness можно ставить от 0 до 100 (чем больше тем выше приоритет подкачки)</p>
<p><strong>Ссылки</strong><br /><a href="http://linuxportal.ru/forums/index.php/m/79946/#msg_79937">http://linuxportal.ru/forums/index.php/m/79946/#msg_79937</a></p>
]]></content:encoded>
			<wfw:commentRss>http://devhead.ru/read/uskorenie-raboty-linux/feed</wfw:commentRss>
		<slash:comments>30</slash:comments>
		</item>
		<item>
		<title>Запуск игр от Sega MD на Ubuntu</title>
		<link>http://devhead.ru/video/zapusk-igr-ot-sega-md-na-ubuntu</link>
		<comments>http://devhead.ru/video/zapusk-igr-ot-sega-md-na-ubuntu#comments</comments>
		<pubDate>Sun, 21 Nov 2010 15:40:39 +0000</pubDate>
		<dc:creator><![CDATA[Аноним]]></dc:creator>
				<category><![CDATA[Видео]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[sega]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://devhead.ru/video/zapusk-igr-ot-sega-md-na-ubuntu/</guid>
		<description><![CDATA[Исходный код программы которая меня показывает в правом нижнем углу.Мне опять лень было искать нормальный минималистский "вещатель" с веб-камеры, и я его написал сам. #!/usr/bin/env python import pygame import pygame.camera from pygame.locals import * import sys wh=(320,240) pygame.init() pygame.camera.init() cam = pygame.camera.Camera("/dev/video0",wh) cam.start() window = pygame.display.set_mode(wh) pygame.display.set_caption('www.devhead.ru') while 1: for event in pygame.event.get(): if event.type [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><span id="more-737"></span></p>
<p>Исходный код программы которая меня показывает в правом нижнем углу.<br />Мне опять лень было искать нормальный минималистский "вещатель" с веб-камеры, и я его написал сам.</p>
<pre class="brush: python">#!/usr/bin/env python
import pygame
import pygame.camera
from pygame.locals import *
import sys

wh=(320,240)
pygame.init()
pygame.camera.init()
cam = pygame.camera.Camera("/dev/video0",wh)
cam.start()
window = pygame.display.set_mode(wh)
pygame.display.set_caption('www.devhead.ru')
while 1:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
    window.blit(cam.get_image(),(0,0))
    pygame.display.flip()</pre>
]]></content:encoded>
			<wfw:commentRss>http://devhead.ru/video/zapusk-igr-ot-sega-md-na-ubuntu/feed</wfw:commentRss>
		<slash:comments>71</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->