<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Gentoo itself is power</title>
	<atom:link href="http://sudormrf.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://sudormrf.wordpress.com</link>
	<description>Just another weblog about Gentoo</description>
	<lastBuildDate>Sat, 13 Apr 2013 04:02:47 +0000</lastBuildDate>
	<language>ru</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='sudormrf.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/cd5b66b4bf91204c86a9618d6b690d4b?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Gentoo itself is power</title>
		<link>http://sudormrf.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://sudormrf.wordpress.com/osd.xml" title="Gentoo itself is power" />
	<atom:link rel='hub' href='http://sudormrf.wordpress.com/?pushpress=hub'/>
		<item>
		<title>В поисках идеального десктопного ядра в gentoo</title>
		<link>http://sudormrf.wordpress.com/2012/11/07/%d0%b2-%d0%bf%d0%be%d0%b8%d1%81%d0%ba%d0%b0%d1%85-%d0%b8%d0%b4%d0%b5%d0%b0%d0%bb%d1%8c%d0%bd%d0%be%d0%b3%d0%be-%d0%b4%d0%b5%d1%81%d0%ba%d1%82%d0%be%d0%bf%d0%bd%d0%be%d0%b3%d0%be-%d1%8f%d0%b4%d1%80/</link>
		<comments>http://sudormrf.wordpress.com/2012/11/07/%d0%b2-%d0%bf%d0%be%d0%b8%d1%81%d0%ba%d0%b0%d1%85-%d0%b8%d0%b4%d0%b5%d0%b0%d0%bb%d1%8c%d0%bd%d0%be%d0%b3%d0%be-%d0%b4%d0%b5%d1%81%d0%ba%d1%82%d0%be%d0%bf%d0%bd%d0%be%d0%b3%d0%be-%d1%8f%d0%b4%d1%80/#comments</comments>
		<pubDate>Wed, 07 Nov 2012 16:36:18 +0000</pubDate>
		<dc:creator>init_6</dc:creator>
				<category><![CDATA[gentoo]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[funtoo]]></category>
		<category><![CDATA[kernel]]></category>

		<guid isPermaLink="false">http://sudormrf.wordpress.com/?p=888</guid>
		<description><![CDATA[Итак вполне типичная задача &#8211; я строю десктопную gentoo. Меня интересует какие же ядра имеются в gentoo: Если с vanilla-sources все понятно то git-sources это тоже самое но намного чаще что само по себе иногда намного лучше. Внимание вопрос для особо внимательных и любопытных &#8211; почему git-sources не использует git? Если вы правильно ответили на [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sudormrf.wordpress.com&#038;blog=6835767&#038;post=888&#038;subd=sudormrf&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Итак вполне типичная задача &#8211; я строю десктопную gentoo. Меня интересует какие же ядра имеются в gentoo:</p>
<p><span id="more-888"></span></p>
<pre class="brush: bash; title: ; notranslate">

ls -1 /usr/portage/sys-kernel | grep sources
cell-sources
ck-sources
gentoo-sources
git-sources
hardened-sources
mips-sources
openvz-sources
pf-sources
rsbac-sources
rt-sources
tuxonice-sources
vanilla-sources
vserver-sources
xbox-sources
zen-sources

</pre>
<p>Если с <a href="http://packages.gentoo.org/package/sys-kernel/vanilla-sources" title="http://packages.gentoo.org/package/sys-kernel/vanilla-sources" target="_blank">vanilla-sources</a> все понятно то <a href="http://packages.gentoo.org/package/sys-kernel/git-sources" title="http://packages.gentoo.org/package/sys-kernel/git-sources" target="_blank">git-sources</a> это тоже самое но намного чаще что само по себе иногда намного лучше.</p>
<p>Внимание вопрос для особо внимательных и любопытных &#8211; почему <a href="http://packages.gentoo.org/package/sys-kernel/git-sources" title="http://packages.gentoo.org/package/sys-kernel/git-sources" target="_blank">git-sources</a> не использует git? Если вы правильно ответили на первый вопрос то вот вам второй &#8211; не было бы идеологически более правильным вместо <a href="http://packages.gentoo.org/package/sys-kernel/git-sources" title="http://packages.gentoo.org/package/sys-kernel/git-sources" target="_blank">git-sources</a> делать к примеру
<pre class="brush: bash; title: ; notranslate">vanilla-sources-{$PV}-`date +&quot;%Y%m%d&quot;`</pre>
<p>?</p>
<p>Далее специфические ядра под особое железо это: <a href="http://packages.gentoo.org/package/sys-kernel/cell-sources" title="http://packages.gentoo.org/package/sys-kernel/cell-sources" target="_blank">cell-sources</a>, <a href="http://packages.gentoo.org/package/sys-kernel/mips-sources" title="http://packages.gentoo.org/package/sys-kernel/mips-sources" target="_blank">mips-sources</a>, <a href="http://packages.gentoo.org/package/sys-kernel/xbox-sources" title="http://packages.gentoo.org/package/sys-kernel/xbox-sources" target="_blank">xbox-sources</a>. Интересны только узкому кругу обладателей такого железа.</p>
<p>Ядра с патчами усиленной защиты: <a href="http://packages.gentoo.org/package/sys-kernel/hardened-sources" title="http://packages.gentoo.org/package/sys-kernel/hardened-sources" target="_blank">hardened-sources</a>, <a href="http://packages.gentoo.org/package/sys-kernel/rsbac-sources" title="http://packages.gentoo.org/package/sys-kernel/rsbac-sources" target="_blank">rsbac-sources</a>. Десктоп параноиков не рассматриваем. У истинных параноиков не должно быть десктопа по причинам безопасности.</p>
<p>Ядра с патчами под специфичные и далеко не десктопные задачи: <a href="http://packages.gentoo.org/package/sys-kernel/openvz-sources" title="http://packages.gentoo.org/package/sys-kernel/openvz-sources" target="_blank">openvz-sources</a>, <a href="http://packages.gentoo.org/package/sys-kernel/rt-sources" title="http://packages.gentoo.org/package/sys-kernel/rt-sources" target="_blank">rt-sources</a>, <a href="http://packages.gentoo.org/package/sys-kernel/vserver-sources" title="http://packages.gentoo.org/package/sys-kernel/vserver-sources" target="_blank">vserver-sources</a>.</p>
<p>Почему бы не <a href="http://packages.gentoo.org/package/sys-kernel/pf-sources" title="http://packages.gentoo.org/package/sys-kernel/pf-sources" target="_blank">pf-sources</a> в котором: <a href="http://users.on.net/~ckolivas/kernel/" title="http://users.on.net/~ckolivas/kernel/" target="_blank">ck</a>, <a href="http://algo.ing.unimo.it/people/paolo/disk_sched/" title="http://algo.ing.unimo.it/people/paolo/disk_sched/" target="_blank">BFQ</a>, <a href="http://tuxonice.net/" title="http://tuxonice.net/" target="_blank">TuxOnIce</a> и <a href="http://kerneldedup.org/projects/uksm" title="http://kerneldedup.org/projects/uksm" target="_blank">uksm</a>?</p>
<p>Буду краток &#8211; <a href="http://ru.wikipedia.org/wiki/Gentoo_Linux" title="http://ru.wikipedia.org/wiki/Gentoo_Linux" target="_blank">Википедия</a> как всегда врет о том, что</p>
<blockquote><p>Every user has work they need to do. The goal of Gentoo is to design tools and systems that allow a user to do that work as pleasantly and efficiently as possible, as they see fit. Our tools should be a joy to use, and should help the user to appreciate the richness of the Linux and free software community, and the flexibility of free software. This is only possible when the tool is designed to reflect and transmit the will of the user, and leave the possibilities open as to the final form of the raw materials (the source code.) If the tool forces the user to do things a particular way, then the tool is working against, rather than for, the user. We have all experienced situations where tools seem to be imposing their respective wills on us. This is backwards, and contrary to the Gentoo philosophy.</p>
<p>Put another way, the Gentoo philosophy is to create better tools. When a tool is doing its job perfectly, you might not even be very aware of its presence, because it does not interfere and make its presence known, nor does it force you to interact with it when you don’t want it to. The tool serves the user rather than the user serving the tool.</p>
<p>The goal of Gentoo is to strive to create near-ideal tools. Tools that can accommodate the needs of many different users all with divergent goals. Don’t you love it when you find a tool that does exactly what you want to do? Doesn&#8217;t it feel great? Our mission is to give that sensation to as many people as possible.</p></blockquote>
<p>В <a href="http://packages.gentoo.org/package/sys-kernel/pf-sources" title="http://packages.gentoo.org/package/sys-kernel/pf-sources" target="_blank">pf-sources</a> выбор патчей сделан за ВАС, нельзя изменить их набор и в довершение ко всему все идет ОДНИМ ПАТЧЕМ. Ваше право не соглашаться с филосифией <a href="http://gentoo.org/" title="http://gentoo.org/" target="_blank">gentoo</a>. Но ваш внутренний параноик иногда подсказывает правильные ответы. Почему все идет одним патчем? Почему все сделано для того чтобы было как можно труднее разобраться в том какие именно исправления внесены и где?</p>
<p>Так же поступает <a href="www.redhat.com" title="www.redhat.com" target="_blank">red-hat</a> со своим ядром. Но, во первых, из организаций и судя по вкладу в разработку <a href="www.redhat.com" title="www.redhat.com" target="_blank">red-hat</a> является одним из основных разработчиков ядра <a href="www.kernel.org" title="www.kernel.org" target="_blank">linux</a>. И во вторых делает он так для борьбы с <a href="www.oracle.com" title="www.oracle.com" target="_blank">oracle</a>.</p>
<p>А с кем ведет борьбу <a href="http://packages.gentoo.org/package/sys-kernel/pf-sources" title="http://packages.gentoo.org/package/sys-kernel/pf-sources" target="_blank">pf-sources</a>?</p>
<p><a href="http://packages.gentoo.org/package/sys-kernel/zen-sources" title="http://packages.gentoo.org/package/sys-kernel/zen-sources" target="_blank">zen-sources</a> &#8211; R.I.P ? если нет то поправьте меня. И лично для меня самое ценное в <a href="http://packages.gentoo.org/package/sys-kernel/zen-sources" title="http://packages.gentoo.org/package/sys-kernel/zen-sources" target="_blank">zen-sources</a> был патчь на цветной printk.</p>
<p>А вот все остальное в <a href="http://gentoo-portage.com/sys-kernel" title="http://gentoo-portage.com/sys-kernel" target="_blank">sys-kernel</a>, за исключением вышеперечисленного, это все те же <a href="http://packages.gentoo.org/package/sys-kernel/vanilla-sources" title="http://packages.gentoo.org/package/sys-kernel/vanilla-sources" target="_blank">vanilla-sources</a> и, как правило, один реже несколько, сторонних патча по тем или иным причинам не принятых в основное ядро. Итого gentoo предлагает ядер для типичного десктопа выбор из:<br />
<a href="http://packages.gentoo.org/package/sys-kernel/ck-sources" title="http://packages.gentoo.org/package/sys-kernel/ck-sources" target="_blank">ck-sources</a> &#8211; патчи <a href="http://users.on.net/~ckolivas/kernel/" title="http://users.on.net/~ckolivas/kernel/" target="_blank">ck</a><br />
<a href="http://packages.gentoo.org/package/sys-kernel/gentoo-sources" title="http://packages.gentoo.org/package/sys-kernel/gentoo-sources" target="_blank">gentoo-sources</a> &#8211; <a href="http://dev.gentoo.org/~mpagano/genpatches/trunk" title="http://dev.gentoo.org/~mpagano/genpatches/trunk" target="_blank">патчи gentoo (которых под 3.6.6 целых ДВА)</a><br />
<a href="http://packages.gentoo.org/package/sys-kernel/tuxonice-sources" title="http://packages.gentoo.org/package/sys-kernel/tuxonice-sources" target="_blank">tuxonice-sources</a> &#8211; <a href="http://www.tuxonice.net" title="http://www.tuxonice.net" target="_blank">TuxOnIce</a></p>
<p>Лично меня печалила такая ситуация. Мне нужно гораздо больше. Для начала хотя бы <a href="http://packages.gentoo.org/package/sys-kernel/ck-sources" title="http://packages.gentoo.org/package/sys-kernel/ck-sources" target="_blank">ck-sources</a>, <a href="http://packages.gentoo.org/package/sys-kernel/gentoo-sources" title="http://packages.gentoo.org/package/sys-kernel/gentoo-sources" target="_blank">gentoo-sources</a> и <a href="http://packages.gentoo.org/package/sys-kernel/tuxonice-sources" title="http://packages.gentoo.org/package/sys-kernel/tuxonice-sources" target="_blank">tuxonice-sources</a> в одном &#8220;флаконе&#8221; и желательно чтобы каждый набор патчей управлялся своим USE флагом. Что немаловажно для возможности их проверки и возможной дальнейшей доработки я хотел видеть оригинальные патчи, а не один патчь как в случае <a href="http://packages.gentoo.org/package/sys-kernel/pf-sources" title="http://packages.gentoo.org/package/sys-kernel/pf-sources" target="_blank">pf-sources</a>.</p>
<p>Согласно <a href="http://www.kernel.org/doc/Documentation/applying-patches.txt" title="http://www.kernel.org/doc/Documentation/applying-patches.txt" target="_blank">Applying Patches To The Linux Kernel</a> и здравому смыслу понятно что если патчей более одного то безусловно и накладывать их можно в разной последовательности. Т.е. последовательность наложения патчей тоже обязана иметь некие настройки.</p>
<p>Исходя из того же здравого смысла ясно что бывают и конфликтующие патчи. В общем случае обезопасить себя от конфликтов при наложении патча можно так:</p>
<pre class="brush: bash; title: ; notranslate">

patch -p1 --dry-run &lt; PATCH_FILE &amp;&amp; patch -p1 &lt; PATCH_FILE

</pre>
<p>Большую работу над исправлением разнообразных ошибок в ядре <a href="http://www.kernel.org/" title="http://www.kernel.org/" target="_blank">linux</a> проделывают и основные дистрибутивы: <a href="http://pkgs.fedoraproject.org/gitweb/?p=kernel.git;a=summary" title="fedora" target="_blank">fedora</a>, <a href="http://kernel.opensuse.org/cgit/kernel-source" title="suse" target="_blank">SuSE</a>, <a href="http://svnweb.mageia.org/packages/cauldron/kernel/current" title="mageia" target="_blank">mandriva/mageia</a> однако зачастую патчи принимаются в ядро с опозданием. Поэтому я хотел бы иметь эти исправления как можно раньше.</p>
<p>Если взглянуть повнимательнее на содержимое <a href="http://packages.gentoo.org/category/sys-kernel" title="http://packages.gentoo.org/category/sys-kernel" target="_blank">sys-kernel</a> то станет ясно что ничего удовлетворяющего моим потребностям там нет. А если чего то нет &#8211; приходится делать это самому.</p>
<p>На данный момент <a href="https://github.com/init6/init_6/tree/master/sys-kernel/geek-sources" title="https://github.com/init6/init_6/tree/master/sys-kernel/geek-sources" target="_blank">sys-kernel/geek-sources-3.6.6</a> поддерживает:</p>
<table>
<tbody>
<tr>
<th>USE флаг</th>
<th>Some feature</th>
<th>Аналог в <a href="http://packages.gentoo.org/category/sys-kernel" title="http://packages.gentoo.org/category/sys-kernel" target="_blank">sys-kernel</a></th>
</tr>
<tr>
<td>aufs</td>
<td><a href="http://aufs.sourceforge.net" title="http://aufs.sourceforge.net" target="_blank">AnotherUnionFS</a></td>
<td><a href="http://packages.gentoo.org/package/sys-fs/aufs3" title="http://packages.gentoo.org/package/sys-fs/aufs3" target="_blank">sys-fs/aufs3</a></td>
</tr>
<tr>
<td>bfq</td>
<td><a href="http://algo.ing.unimo.it/people/paolo/disk_sched/sources.php" title="http://algo.ing.unimo.it/people/paolo/disk_sched/sources.php" target="_blank">Budget Fair Queueing Budget I/O Scheduler</a></td>
<td><a href="http://packages.gentoo.org/package/sys-kernel/pf-sources" title="http://packages.gentoo.org/package/sys-kernel/pf-sources" target="_blank">sys-kernel/pf-sources</a></td>
</tr>
<tr>
<td>branding</td>
<td>Enable Gentoo specific branding</td>
<td>нет</td>
</tr>
<tr>
<td>ck</td>
<td><a href="http://users.on.net/~ckolivas/kernel" title="http://users.on.net/~ckolivas/kernel" target="_blank">Enable Con Kolivas&#8217; high performance patchset</a></td>
<td><a href="http://packages.gentoo.org/package/sys-kernel/ck-sources" title="http://packages.gentoo.org/package/sys-kernel/ck-sources" target="_blank">sys-kernel/ck-sources</a>, <a href="http://packages.gentoo.org/package/sys-kernel/pf-sources" title="http://packages.gentoo.org/package/sys-kernel/pf-sources" target="_blank">sys-kernel/pf-sources</a></td>
</tr>
<tr>
<td>debian</td>
<td><a href="http://anonscm.debian.org/viewvc/kernel/dists/trunk/linux/debian/patches" title="http://anonscm.debian.org/viewvc/kernel/dists/trunk/linux/debian/patches" target="_blank">Debian patches</a></td>
<td>нет</td>
</tr>
<tr>
<td>deblob</td>
<td><a href="http://linux-libre.fsfla.org/pub/linux-libre" title="http://linux-libre.fsfla.org/pub/linux-libre" target="_blank">Remove binary blobs from kernel sources to provide libre license compliance</a></td>
<td>есть во всех ядрах</td>
</tr>
<tr>
<td>fedora</td>
<td><a href="http://pkgs.fedoraproject.org/cgit/kernel.git/" title="http://pkgs.fedoraproject.org/cgit/kernel.git/" target="_blank">Fedora patches</a></td>
<td>нет</td>
</tr>
<tr>
<td>genpatches</td>
<td><a href="http://dev.gentoo.org/~mpagano/genpatches" title="http://dev.gentoo.org/~mpagano/genpatches" target="_blank">Use Gentoo kernel patches</a></td>
<td><a href="http://packages.gentoo.org/package/sys-kernel/gentoo-sources" title="http://packages.gentoo.org/package/sys-kernel/gentoo-sources" target="_blank">sys-kernel/gentoo-sources</a></td>
</tr>
<tr>
<td>grsecurity</td>
<td><a href="http://grsecurity.net/" title="http://grsecurity.net/" target="_blank">Use grsecurity patches</a></td>
<td><a href="http://packages.gentoo.org/package/sys-kernel/hardened-sources" title="http://packages.gentoo.org/package/sys-kernel/hardened-sources" target="_blank">hardened-sources</a>, <a href="http://packages.gentoo.org/package/sys-kernel/rsbac-sources" title="http://packages.gentoo.org/package/sys-kernel/rsbac-sources" target="_blank">rsbac-sources</a></td>
</tr>
<tr>
<td>ice</td>
<td><a href="http://tuxonice.net/" title="http://tuxonice.net/" target="_blank">Use TuxOnIce patches</a></td>
<td><a href="http://packages.gentoo.org/package/sys-kernel/tuxonice-sources" title="http://packages.gentoo.org/package/sys-kernel/tuxonice-sources" target="_blank">sys-kernel/tuxonice-sources</a>, <a href="http://packages.gentoo.org/package/sys-kernel/pf-sources" title="http://packages.gentoo.org/package/sys-kernel/pf-sources" target="_blank">sys-kernel/pf-sources</a></p>
<tr>
<td>mageia</td>
<td><a href="http://svnweb.mageia.org/packages/cauldron/kernel/current/" title="http://svnweb.mageia.org/packages/cauldron/kernel/current/" target="_blank">Use Mandriva/Mageia patches</a></td>
<td>нет</td>
</tr>
<tr>
<td>reiser4</td>
<td><a href="http://sourceforge.net/projects/reiser4/" title="http://sourceforge.net/projects/reiser4/" target="_blank">Use Reiser4 FS patches</a></td>
<td>нет</td>
</tr>
<tr>
<td>rt</td>
<td><a href="http://www.kernel.org/pub/linux/kernel/projects/rt/" title="http://www.kernel.org/pub/linux/kernel/projects/rt/" target="_blank">Use Ingo Molnar&#8217;s realtime preempt patches</a></td>
<td><a href="http://packages.gentoo.org/package/sys-kernel/rt-sources" title="http://packages.gentoo.org/package/sys-kernel/rt-sources" target="_blank">sys-kernel/rt-sources</a></td>
</tr>
<tr>
<td>suse</td>
<td><a href="http://kernel.opensuse.org/cgit/kernel-source" title="http://kernel.opensuse.org/cgit/kernel-source" target="_blank">Use OpenSuSE patches</a></td>
<td>нет</td>
</tr>
<tr>
<td>uksm</td>
<td><a href="http://kerneldedup.org/projects/uksm/download/" title="http://kerneldedup.org/projects/uksm/download/" target="_blank">Use Ultra Kernel Samepage Merging patches</a></td>
<td><a href="http://packages.gentoo.org/package/sys-kernel/pf-sources" title="http://packages.gentoo.org/package/sys-kernel/pf-sources" target="_blank">sys-kernel/pf-sources</a></td>
</tr>
<tr>
<td>vserver</td>
<td><a href="http://linux-vserver.org/Welcome_to_Linux-VServer.org" title="http://linux-vserver.org/Welcome_to_Linux-VServer.org" target="_blank">VServer provides virtualization for GNU/Linux systems</a></td>
<td><a href="http://packages.gentoo.org/package/sys-kernel/vserver-sources" title="http://packages.gentoo.org/package/sys-kernel/vserver-sources" target="_blank">sys-kernel/vserver-sources</a></td>
</tr>
<tr>
<td>zfs</td>
<td><a href="http://zfsonlinux.org/" title="http://zfsonlinux.org/" target="_blank">The native Linux kernel port of the ZFS filesystem</a></td>
<td><a href="http://packages.gentoo.org/package/sys-fs/zfs" title="http://packages.gentoo.org/package/sys-fs/zfs" target="_blank">sys-fs/zfs</a></td>
</tr>
</td>
</tr>
</tbody>
</table>
<p>Порядок наложения патчей управляется при помощи переменной GEEKSOURCES_PATCHING_ORDER. К примеру если нужно чтобы все патчи накладывались в алфавитном порядке:</p>
<pre class="brush: bash; title: ; notranslate">

echo 'GEEKSOURCES_PATCHING_ORDER=&quot;aufs bfq bld branding ck debian fedora genpatches grsecurity ice imq mageia pardus pld reiser4 rt suse uksm vserver zfs&quot;' &gt; /etc/portage/kernel.conf

</pre>
<p>По умолчанию(при отсутствии файла /etc/portage/kernel.conf) GEEKSOURCES_PATCHING_ORDER принимается:</p>
<pre class="brush: bash; title: ; notranslate">

GEEKSOURCES_PATCHING_ORDER=&quot;vserver bfq ck genpatches grsecurity ice imq reiser4 rt bld uksm aufs mageia fedora suse debian pardus pld zfs branding&quot;

</pre>
<p>Все версии <a href="https://github.com/init6/init_6/tree/master/sys-kernel/geek-sources" title="https://github.com/init6/init_6/tree/master/sys-kernel/geek-sources" target="_blank">sys-kernel/geek-sources</a> я тестирую, собираю и использую с</p>
<pre class="brush: bash; title: ; notranslate">

$ emerge sys-kernel/geek-sources -pv

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R    ] sys-kernel/geek-sources-3.6.6:3.6.6::init6  USE=&quot;aufs bfq branding ck debian fedora ice mageia suse uksm -deblob -genpatches -grsecurity -reiser4 -rt -vserver -zfs&quot; 0 kB

Total: 1 package (1 reinstall), Size of downloads: 0 kB

</pre>
<p>Aufs мне нужен вот собственно для этого <a href="http://en.gentoo-wiki.com/wiki/Squashed_Portage_Tree" title="http://en.gentoo-wiki.com/wiki/Squashed_Portage_Tree" target="_blank">Squashed Portage Tree</a>.</p>
<p>Поскольку я использую cryptsetup -&gt; llvm2 -&gt; ext4 то по мотивам <a href="http://wiki.gentoo.org/wiki/Basic_initramfs_used_to_check_and_mount_/usr" title="http://wiki.gentoo.org/wiki/Basic_initramfs_used_to_check_and_mount_/usr" target="_blank">Early Userspace Mounting</a> сделал <a href="https://github.com/init6/initramfs/tree/cryptsetup_lvm2_ext4" title="https://github.com/init6/initramfs/tree/cryptsetup_lvm2_ext4" target="_blank">свой собственный initramfs</a>.</p>
<p>А собираю все ядра я при помощи <a href="https://github.com/init6/init_6/blob/master/scripts/install_kernel" title="https://github.com/init6/init_6/blob/master/scripts/install_kernel" target="_blank">install_kernel</a>. В дальнейшем я планирую доработать <a href="https://github.com/init6/init_6/blob/master/eclass/kernel-geek.eclass" title="https://github.com/init6/init_6/blob/master/eclass/kernel-geek.eclass" target="_blank">kernel-geek.eclass</a> для того чтобы сборка ядра производилась при помощи portage.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sudormrf.wordpress.com/888/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sudormrf.wordpress.com/888/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sudormrf.wordpress.com&#038;blog=6835767&#038;post=888&#038;subd=sudormrf&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sudormrf.wordpress.com/2012/11/07/%d0%b2-%d0%bf%d0%be%d0%b8%d1%81%d0%ba%d0%b0%d1%85-%d0%b8%d0%b4%d0%b5%d0%b0%d0%bb%d1%8c%d0%bd%d0%be%d0%b3%d0%be-%d0%b4%d0%b5%d1%81%d0%ba%d1%82%d0%be%d0%bf%d0%bd%d0%be%d0%b3%d0%be-%d1%8f%d0%b4%d1%80/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/738e6186190c149c83fb3273f9621069?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">init_6</media:title>
		</media:content>
	</item>
		<item>
		<title>sys-kernel/geek-sources-3.4.2</title>
		<link>http://sudormrf.wordpress.com/2012/06/10/sys-kernelgeek-sources-3-4-2/</link>
		<comments>http://sudormrf.wordpress.com/2012/06/10/sys-kernelgeek-sources-3-4-2/#comments</comments>
		<pubDate>Sun, 10 Jun 2012 16:37:18 +0000</pubDate>
		<dc:creator>init_6</dc:creator>
				<category><![CDATA[gentoo]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[realtime]]></category>

		<guid isPermaLink="false">http://sudormrf.wordpress.com/?p=876</guid>
		<description><![CDATA[sys-kernel/geek-sources на 10.06.2012 поддерживает: AnotherUnionFS Budget Fair Queueing Budget I/O Scheduler Alternate CPU load distribution technique for Linux kernel scheduler Шритф CONFIG_FONT_ISO_LATIN_1_8x16 и лого CONFIG_LOGO_LARRY_CLUT224 Con Kolivas&#8217; high performance patchset Spock&#8217;s fbsplash patch Fedora kernel patches GrSecurity patches TuxOnIce patches Intermediate Queueing Device patches Mandriva/Mageia patches Pardus patches Ingo Molnar&#8217;s realtime preempt patches OpenSuSE patches [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sudormrf.wordpress.com&#038;blog=6835767&#038;post=876&#038;subd=sudormrf&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><a href="https://github.com/init6/init_6/tree/master/sys-kernel/geek-sources" title="sys-kernel/geek-sources" target="_blank">sys-kernel/geek-sources</a> на 10.06.2012 поддерживает:</p>
<p><a href="http://aufs.sourceforge.net/" title="aufs" target="_blank">AnotherUnionFS</a><br />
<a href="http://algo.ing.unimo.it/people/paolo/disk_sched/" title="bfq" target="_blank">Budget Fair Queueing Budget I/O Scheduler</a><br />
<a href="http://code.google.com/p/bld" title="bld" target="_blank">Alternate CPU load distribution technique for Linux kernel scheduler</a><br />
Шритф <a href="http://sudormrf.wordpress.com/2010/10/23/ka-ping-yee-iso-latin-1%c2%a0font-in-linux-kernel/" target="_blank">CONFIG_FONT_ISO_LATIN_1_8x16</a> и лого <a href="https://github.com/init6/init_6/raw/master/sys-kernel/geek-sources/files/larry.png" target="_blank">CONFIG_LOGO_LARRY_CLUT224</a><br />
<a href="http://users.on.net/~ckolivas/kernel" title="ck" target="_blank">Con Kolivas&#8217; high performance patchset</a><br />
<a href="http://dev.gentoo.org/~spock/projects/fbcondecor" title="fbcondecor" target="_blank">Spock&#8217;s fbsplash patch</a><br />
<a href="http://pkgs.fedoraproject.org/gitweb/?p=kernel.git;a=summary" title="fedora" target="_blank">Fedora kernel patches</a><br />
<a href="http://grsecurity.net" title="grsecurity" target="_blank">GrSecurity patches</a><br />
<a href="http://tuxonice.net" title="ice" target="_blank">TuxOnIce patches</a><br />
<a href="http://www.linuximq.net" title="LinuxIMQ" target="_blank">Intermediate Queueing Device patches</a><br />
<a href="http://svnweb.mageia.org/packages/cauldron/kernel/current" title="mageia" target="_blank">Mandriva/Mageia patches</a><br />
<a href="https://svn.pardus.org.tr/pardus/playground/kaan.aksit/2011/kernel/default/kernel" title="pardus" target="_blank">Pardus patches</a><br />
<a href="http://www.kernel.org/pub/linux/kernel/projects/rt" title="rt" target="_blank">Ingo Molnar&#8217;s realtime preempt patches</a><br />
<a href="http://kernel.opensuse.org/cgit/kernel-source" title="suse" target="_blank">OpenSuSE patches</a><br />
<a href="http://kerneldedup.org" title="uksm" target="_blank">Ultra Kernel Samepage Merging patches</a></p>
<p>Ну вроде ничего не забыл <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Ах да! Главная вкусность &#8211; все вышеперечисленное счастье полностью управляемо посредством USE флагов.</p>
<p>Для тех кто все еще не в курсе <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<pre class="brush: bash; title: ; notranslate">

$ emerge -av layman &amp;&amp; layman -a init6

</pre>
<p>Ну и вообще</p>
<pre class="brush: bash; title: ; notranslate">

$ emerge geek-sources -pv

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R    ] sys-kernel/geek-sources-3.4.2::init6  USE=&quot;aufs bfq bld branding ck deblob fedora ice mageia pardus suse uksm -build -fbcondecor -grsecurity -imq -reiser4 -rt -symlink&quot; 0 kB

Total: 1 package (1 reinstall), Size of downloads: 0 kB

$ equery u geek-sources
[ Legend : U - final flag setting for installation]
[        : I - package is installed with flag     ]
[ Colors : set, unset                             ]
 * Found these USE flags for sys-kernel/geek-sources-3.4.2:
 U I
 + + aufs       : AnotherUnionFS.
 + + bfq        : Budget Fair Queueing Budget I/O Scheduler.
 + + bld        : Alternate CPU load distribution technique for Linux kernel scheduler.
 + + branding   : Enable Gentoo specific branding.
 - - build      : !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used for creating build images and the first half of bootstrapping
                  [make stage1]
 + + ck         : Enable Con Kolivas' high performance patchset.
 + + deblob     : Remove binary blobs from kernel sources to provide libre license compliance.
 - - fbcondecor : Use Spock's fbsplash patch.
 + + fedora     : Use Fedora kernel patches.
 - - grsecurity : Use grsecurity patches.
 + + ice        : Use TuxOnIce patches.
 - - imq        : Use Intermediate Queueing Device patches.
 + + mageia     : Use Mandriva/Mageia patches.
 + + pardus     : Use Pardus patches.
 - - reiser4    : Use Reiser4 FS patches.
 - - rt         : Use Ingo Molnar's realtime preempt patches.
 + + suse       : Use OpenSuSE patches.
 - - symlink    : Force kernel ebuilds to automatically update the /usr/src/linux symlink
 + + uksm       : Use Ultra Kernel Samepage Merging patches.

</pre>
<p>Господам: <a href="https://github.com/scrill">scrill (Sergey Zhuga)</a>, SKonst@freenode, <a href="https://github.com/iron-udjin">iron-udjin</a> огромное спасибо за помощь.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sudormrf.wordpress.com/876/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sudormrf.wordpress.com/876/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sudormrf.wordpress.com&#038;blog=6835767&#038;post=876&#038;subd=sudormrf&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sudormrf.wordpress.com/2012/06/10/sys-kernelgeek-sources-3-4-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/738e6186190c149c83fb3273f9621069?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">init_6</media:title>
		</media:content>
	</item>
		<item>
		<title>Прогресс sys-kernel/geek-sources</title>
		<link>http://sudormrf.wordpress.com/2012/05/12/%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b5%d1%81%d1%81-sys-kernelgeek-sources/</link>
		<comments>http://sudormrf.wordpress.com/2012/05/12/%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b5%d1%81%d1%81-sys-kernelgeek-sources/#comments</comments>
		<pubDate>Sat, 12 May 2012 08:32:38 +0000</pubDate>
		<dc:creator>init_6</dc:creator>
				<category><![CDATA[gentoo]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[realtime]]></category>

		<guid isPermaLink="false">http://sudormrf.wordpress.com/?p=863</guid>
		<description><![CDATA[sys-kernel/geek-sources на сегодняшний день поддерживает: Budget Fair Queueing Budget I/O Scheduler Con Kolivas Brain Fuck CPU Scheduler Alternate CPU load distribution technique for Linux kernel scheduler Spock&#8217;s fbsplash patch GrSecurity patches Ingo Molnar&#8217;s realtime preempt patches Intermediate Queueing Device patches TuxOnIce patches Tomoyo security patches А кроме того шрифт CONFIG_FONT_ISO_LATIN_1_8x16 и лого CONFIG_LOGO_LARRY_CLUT224 Use at [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sudormrf.wordpress.com&#038;blog=6835767&#038;post=863&#038;subd=sudormrf&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><a href="https://github.com/init6/init_6/tree/master/sys-kernel/geek-sources" title="sys-kernel/geek-sources" target="_blank">sys-kernel/geek-sources</a> на сегодняшний день поддерживает:</p>
<p><a href="http://algo.ing.unimo.it/people/paolo/disk_sched/" title="bfq" target="_blank">Budget Fair Queueing Budget I/O Scheduler</a><br />
<a href="http://ck-hack.blogspot.com" title="bfs" target="_blank">Con Kolivas Brain Fuck CPU Scheduler</a><br />
<a href="http://code.google.com/p/bld" title="bld" target="_blank">Alternate CPU load distribution technique for Linux kernel scheduler</a><br />
<a href="http://dev.gentoo.org/~spock/projects/fbcondecor" title="fbcondecor" target="_blank">Spock&#8217;s fbsplash patch</a><br />
<a href="http://grsecurity.net" title="grsecurity" target="_blank">GrSecurity patches</a><br />
<a href="http://www.kernel.org/pub/linux/kernel/projects/rt" title="rt" target="_blank">Ingo Molnar&#8217;s realtime preempt patches</a><br />
<a href="http://www.linuximq.net" title="LinuxIMQ" target="_blank">Intermediate Queueing Device patches</a><br />
<a href="http://tuxonice.net" title="tuxonice" target="_blank">TuxOnIce patches</a><br />
<a href="http://tomoyo.sourceforge.jp" title="tomoyo" target="_blank">Tomoyo security patches</a></p>
<p>А кроме того шрифт <a href="http://sudormrf.wordpress.com/2010/10/23/ka-ping-yee-iso-latin-1%c2%a0font-in-linux-kernel/" target="_blank">CONFIG_FONT_ISO_LATIN_1_8x16</a> и лого <a href="https://github.com/init6/init_6/raw/master/sys-kernel/geek-sources/files/larry.png" target="_blank">CONFIG_LOGO_LARRY_CLUT224</a></p>
<p>Use at your own risk и все такое.</p>
<p>Для тех кто не в курсе <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<pre class="brush: bash; title: ; notranslate">

$ emerge -av layman &amp;&amp; layman -a init6

</pre>
<p>Ну и вообще</p>
<pre class="brush: bash; title: ; notranslate">

$ emerge geek-sources -pv

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R    ] sys-kernel/geek-sources-3.3.5::init6  USE=&quot;branding deblob symlink -bfq -bfs -bld -build -fbcondecor -grsecurity -ice -imq -tomoyo&quot; 0 kB

Total: 1 package (1 reinstall), Size of downloads: 0 kB

$ equery u geek-sources
[ Legend : U - final flag setting for installation]
[        : I - package is installed with flag     ]
[ Colors : set, unset                             ]
 * Found these USE flags for sys-kernel/geek-sources-3.3.5:
 U I
 - - bfq        : Budget Fair Queueing Budget I/O Scheduler.
 - - bfs        : Use Con Kolivas Brain Fuck CPU Scheduler.
 - - bld        : Alternate CPU load distribution technique for Linux kernel scheduler.
 + + branding   : Enable Gentoo specific branding.
 - - build      : !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used for creating build images and the first half of bootstrapping
                  [make stage1]
 + + deblob     : Remove binary blobs from kernel sources to provide libre license compliance.
 - - fbcondecor : Use Spock's fbsplash patch.
 - - grsecurity : Use grsecurity patches.
 - - ice        : Use TuxOnIce patches.
 - - imq        : Use Intermediate Queueing Device patches.
 + + symlink    : Force kernel ebuilds to automatically update the /usr/src/linux symlink
 - - tomoyo     : Use tomoyo security patches.

</pre>
<p>А кроме того в <a href="https://github.com/init6/init_6/blob/master/sys-kernel/geek-sources/geek-sources-3.3.6.ebuild" target="_blank">=sys-kernel/geek-sources-3.3.6</a> к патчам <a href="http://pkgs.fedoraproject.org/gitweb/?p=kernel.git;a=summary" target="_blank">Fedora</a> добавлены еще патчи из <a href="http://svnweb.mageia.org/packages/cauldron/kernel/current" target="_blank">Mandriva/Mageia.</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sudormrf.wordpress.com/863/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sudormrf.wordpress.com/863/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sudormrf.wordpress.com&#038;blog=6835767&#038;post=863&#038;subd=sudormrf&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sudormrf.wordpress.com/2012/05/12/%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b5%d1%81%d1%81-sys-kernelgeek-sources/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/738e6186190c149c83fb3273f9621069?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">init_6</media:title>
		</media:content>
	</item>
		<item>
		<title>sys-kernel/geek-sources</title>
		<link>http://sudormrf.wordpress.com/2012/03/03/sys-kernelgeek-sources/</link>
		<comments>http://sudormrf.wordpress.com/2012/03/03/sys-kernelgeek-sources/#comments</comments>
		<pubDate>Sat, 03 Mar 2012 10:33:36 +0000</pubDate>
		<dc:creator>init_6</dc:creator>
				<category><![CDATA[gentoo]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[BFQ]]></category>
		<category><![CDATA[BFS]]></category>
		<category><![CDATA[compat-wireless]]></category>
		<category><![CDATA[fbcondecor]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[grsecurity]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[patchset]]></category>
		<category><![CDATA[tomoyo]]></category>

		<guid isPermaLink="false">http://sudormrf.wordpress.com/?p=857</guid>
		<description><![CDATA[Ответы далее. Ну во первых где оно? Конечно же в оверлее Во вторых что такое sys-kernel/geek-sources? sys-kernel/geek-sources это текущее стабильное ядро с интересными патчами. Это моя попытка объединить несколько интересующих лично меня патчей, которых еще нет в ванильном ядре, в одном ebuild-е. Что же в нем такого уникального? Во первых это самое свежее стабильное ядро. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sudormrf.wordpress.com&#038;blog=6835767&#038;post=857&#038;subd=sudormrf&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Ответы далее.<br />
<span id="more-857"></span></p>
<p>Ну во первых где <a href="https://github.com/init6/init_6/tree/master/sys-kernel/geek-sources" title="sys-kernel/geek-sources" target="_blank">оно</a>? Конечно же в оверлее</p>
<pre class="brush: bash; title: ; notranslate">

layman -a init6

</pre>
<p>Во вторых что такое <a href="https://github.com/init6/init_6/tree/master/sys-kernel/geek-sources" title="sys-kernel/geek-sources" target="_blank">sys-kernel/geek-sources</a>?</p>
<p><a href="https://github.com/init6/init_6/tree/master/sys-kernel/geek-sources" title="sys-kernel/geek-sources" target="_blank">sys-kernel/geek-sources</a> это текущее стабильное ядро с интересными патчами. Это моя попытка объединить несколько интересующих лично меня патчей, которых еще нет в ванильном ядре, в одном ebuild-е.</p>
<p>Что же в нем такого уникального?<br />
Во первых это самое <a href="http://www.kernel.org/" target="_blank">свежее стабильное ядро</a>. Во вторых это патчи <a href="http://pkgs.fedoraproject.org/gitweb/?p=kernel.git;a=summary" target="_blank">fedora</a> исправляющие и дополняющие официальное ядро. А кроме того это патчи: <a href="http://wireless.kernel.org/en/users/Download/stable" target="_blank">compat wireless</a> исправляющие либо ломающие(кому как повезет) сеть, <a href="http://grsecurity.net" target="_blank">grsecurity</a>, <a href="http://tomoyo.sourceforge.jp" target="_blank">tomoyo</a> (нужно тестировать), <a href="http://ck-hack.blogspot.com" target="_blank">Con Kolivas&#8217; high performance patchset</a> и конечно же <a href="http://dev.gentoo.org/~spock/projects/fbcondecor" target="_blank">fbcondecor</a></p>
<p>А кроме того это <a href="http://sudormrf.wordpress.com/2010/10/23/ka-ping-yee-iso-latin-1%c2%a0font-in-linux-kernel/" target="_blank">font iso latin 1</a> а так же несравненный <a href="http://www.gentoo.org/proj/en/desktop/artwork/artwork.xml" target="_blank">Larry the cow</a> в роли пингвина! <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </p>
<p><img src="https://github.com/init6/init_6/raw/master/sys-kernel/geek-sources/files/larry.png" alt="Larry The Cow" /></p>
<p>Но что самое главное все вышеперечисленное управляется USE флагами!<br />
Вот так например у меня собрано на &#8220;десктопном&#8221; ноуте:</p>
<pre class="brush: bash; title: ; notranslate">

emerge geek-sources -pv

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R    ] sys-kernel/geek-sources-3.2.9  USE=&quot;branding deblob symlink -backports -build -ck -fbcondecor -grsecurity -tomoyo&quot; 0 kB [1]

Total: 1 package (1 reinstall), Size of downloads: 0 kB
Portage tree and overlays:
 [0] /usr/portage
 [1] /var/lib/layman/init6

</pre>
<p>На этом пока что пожалуй все. Успехов всем ВАМ.</p>
<p>PS: Как все же эти федоравцы умудряются накладывать: utrace.patch, nfs-client-freezer.patch, alps.patch ?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sudormrf.wordpress.com/857/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sudormrf.wordpress.com/857/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sudormrf.wordpress.com&#038;blog=6835767&#038;post=857&#038;subd=sudormrf&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sudormrf.wordpress.com/2012/03/03/sys-kernelgeek-sources/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/738e6186190c149c83fb3273f9621069?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">init_6</media:title>
		</media:content>

		<media:content url="https://github.com/init6/init_6/raw/master/sys-kernel/geek-sources/files/larry.png" medium="image">
			<media:title type="html">Larry The Cow</media:title>
		</media:content>
	</item>
		<item>
		<title>gnome-3, флаги в индикаторе раскладки клавиатуры</title>
		<link>http://sudormrf.wordpress.com/2012/02/26/gnome-3-%d1%84%d0%bb%d0%b0%d0%b3%d0%b8-%d0%b2-%d0%b8%d0%bd%d0%b4%d0%b8%d0%ba%d0%b0%d1%82%d0%be%d1%80%d0%b5-%d1%80%d0%b0%d1%81%d0%ba%d0%bb%d0%b0%d0%b4%d0%ba%d0%b8-%d0%ba%d0%bb%d0%b0%d0%b2%d0%b8%d0%b0/</link>
		<comments>http://sudormrf.wordpress.com/2012/02/26/gnome-3-%d1%84%d0%bb%d0%b0%d0%b3%d0%b8-%d0%b2-%d0%b8%d0%bd%d0%b4%d0%b8%d0%ba%d0%b0%d1%82%d0%be%d1%80%d0%b5-%d1%80%d0%b0%d1%81%d0%ba%d0%bb%d0%b0%d0%b4%d0%ba%d0%b8-%d0%ba%d0%bb%d0%b0%d0%b2%d0%b8%d0%b0/#comments</comments>
		<pubDate>Sun, 26 Feb 2012 10:47:22 +0000</pubDate>
		<dc:creator>init_6</dc:creator>
				<category><![CDATA[gentoo]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[themes]]></category>
		<category><![CDATA[flags]]></category>
		<category><![CDATA[gnome-3]]></category>
		<category><![CDATA[icons]]></category>
		<category><![CDATA[libgnomekbd]]></category>
		<category><![CDATA[show-flags]]></category>

		<guid isPermaLink="false">http://sudormrf.wordpress.com/?p=854</guid>
		<description><![CDATA[А что еще вы тут хотели прочитать?<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sudormrf.wordpress.com&#038;blog=6835767&#038;post=854&#038;subd=sudormrf&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<pre class="brush: bash; title: ; notranslate">

$ ls ~/.icons/flags/ # тут должны быть иконки с любимыми флагами. Для любителей глобально - /usr/share/pixmaps/flags
ru-symbolic.png  ua-symbolic.png  us-symbolic.png # и вот с такими названиями

$ dconf write /org/gnome/libgnomekbd/indicator/show-flags true # фокус покус

</pre>
<p>А что еще вы тут хотели прочитать? <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sudormrf.wordpress.com/854/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sudormrf.wordpress.com/854/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sudormrf.wordpress.com&#038;blog=6835767&#038;post=854&#038;subd=sudormrf&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sudormrf.wordpress.com/2012/02/26/gnome-3-%d1%84%d0%bb%d0%b0%d0%b3%d0%b8-%d0%b2-%d0%b8%d0%bd%d0%b4%d0%b8%d0%ba%d0%b0%d1%82%d0%be%d1%80%d0%b5-%d1%80%d0%b0%d1%81%d0%ba%d0%bb%d0%b0%d0%b4%d0%ba%d0%b8-%d0%ba%d0%bb%d0%b0%d0%b2%d0%b8%d0%b0/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/738e6186190c149c83fb3273f9621069?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">init_6</media:title>
		</media:content>
	</item>
		<item>
		<title>ASPM в linux</title>
		<link>http://sudormrf.wordpress.com/2012/02/25/aspm-%d0%b2-linux/</link>
		<comments>http://sudormrf.wordpress.com/2012/02/25/aspm-%d0%b2-linux/#comments</comments>
		<pubDate>Sat, 25 Feb 2012 15:16:27 +0000</pubDate>
		<dc:creator>init_6</dc:creator>
				<category><![CDATA[gentoo]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ASPM]]></category>

		<guid isPermaLink="false">http://sudormrf.wordpress.com/?p=835</guid>
		<description><![CDATA[О том что это вообще такое Rework ASPM disable code A Proper Solution To The Linux ASPM Problem А тем кто уже в курсе… стоит все же напомнить о том, что все эти треды Gigabyte советует пользователям Linux не покупать их продукцию или переходить на Windows ноутбук с нормальной реализацией acpi Этот ваш 3.2.5 [linux [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sudormrf.wordpress.com&#038;blog=6835767&#038;post=835&#038;subd=sudormrf&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>О том что это вообще такое <a href="https://lkml.org/lkml/2011/11/10/467" title="Rework ASPM disable code" target="_blank">Rework ASPM disable code</a> <a href="http://www.phoronix.com/scan.php?page=article&amp;item=linux_aspm_solution" title="A Proper Solution To The Linux ASPM Problem" target="_blank">A Proper Solution To The Linux ASPM Problem</a></p>
<p>А тем кто уже в курсе… стоит все же напомнить о том, что все эти треды <a href="http://www.linux.org.ru/forum/talks/6891565" title="Gigabyte советует пользователям Linux не покупать их продукцию или переходить на Windows" target="_blank">Gigabyte советует пользователям Linux не покупать их продукцию или переходить на Windows</a> <a href="http://www.linux.org.ru/forum/linux-hardware/7308522" title="ноутбук с нормальной реализацией acpi" target="_blank">ноутбук с нормальной реализацией acpi</a> <a href="http://www.linux.org.ru/forum/desktop/7395256" title="Этот ваш 3.2.5" target="_blank">Этот ваш 3.2.5</a> <a href="http://www.linux.org.ru/forum/talks/7307548" title="[linux 3.2] доколе?" target="_blank">[linux 3.2] доколе?</a> <a href="http://www.linux.org.ru/forum/talks/6989693" title="[ASPM][powersaving]Опубликован патч решающий проблему энергопотребления в linux" target="_blank">[ASPM][powersaving]Опубликован патч решающий проблему энергопотребления в linux</a> появились именно из-за этого самого <a href="http://en.wikipedia.org/wiki/Active_State_Power_Management" title="ASPM" target="_blank">ASPM</a>. Как я понял суть проблемы и даже решил её у себя.<br />
<span id="more-835"></span></p>
<p>Суть проблемы: обновились, и даже добавили в <a href="http://www.gnu.org/software/grub/" title="grub" target="_blank">grub</a> параметр</p>
<pre class="brush: bash; title: ; notranslate">

pcie_aspm=force

</pre>
<p>и увидели</p>
<pre class="brush: bash; title: ; notranslate">

dmesg | grep ASPM
[    0.000000] PCIe ASPM is forcibly enabled
[    0.232671] ACPI _OSC control for PCIe not granted, disabling ASPM

</pre>
<p>&#8220;Шеф все пропало.&#8221; И пора бежать создавать <a href="http://lurkmore.to/Нытик-тред" title="нытик-треды" target="_blank">нытик-треды</a> <a href="http://www.linux.org.ru" title="на любимый ЛОР" target="_blank">на любимый ЛОР</a></p>
<p>Но &#8220;Это не наш метод&#8221; ©</p>
<p>Итак есть такая технология <a href="http://en.wikipedia.org/wiki/Active_State_Power_Management" title="ASPM" target="_blank">ASPM</a>. Чтобы все было в шоколаде необходимо чтобы её поддерживало железо и ось. Ага патчи в наш <a href="http://www.kernel.org/" title="linux" target="_blank">linux</a> таки добавили. Т.е. поддержка со стороны ОСи в наличии. Посмотрим на нее подробнее.</p>
<p>Еще раз вспомнили что же там было в ошибке?</p>
<pre class="brush: bash; title: ; notranslate">

[    0.232671] ACPI _OSC control for PCIe not granted, disabling ASPM

</pre>
<p>Ага а теперь где же искать</p>
<pre class="brush: bash; title: ; notranslate">

# grep 'ASPM' -r -n /usr/src/linux/drivers/acpi
/usr/src/linux/drivers/acpi/pci_root.c:599:			if (acpi_gbl_FADT.boot_flags &amp; ACPI_FADT_NO_ASPM) {
/usr/src/linux/drivers/acpi/pci_root.c:601:				 * We have ASPM control, but the FADT indicates
/usr/src/linux/drivers/acpi/pci_root.c:612:				&quot;disabling ASPM\n&quot;);

</pre>
<p>Угу вот и оно! А конкретно </p>
<pre class="brush: bash; title: ; notranslate">
/** 
 * acpi_pci_osc_control_set - Request control of PCI root _OSC features. 
 * @handle: ACPI handle of a PCI root bridge (or PCIe Root Complex). 
 * @mask: Mask of _OSC bits to request control of, place to store control mask. 
 * @req: Mask of _OSC bits the control of is essential to the caller. 
 * 
 * Run _OSC query for @mask and if that is successful, compare the returned 
 * mask of control bits with @req.  If all of the @req bits are set in the 
 * returned mask, run _OSC request for it. 
 * 
 * The variable at the @mask address may be modified regardless of whether or 
 * not the function returns success.  On success it will contain the mask of 
 * _OSC bits the BIOS has granted control of, but its contents are meaningless 
 * on failure. 
 **/ 

</pre>
<p>И тут даже без перевода становится ясно что корни &#8220;бага&#8221; зарыты в BIOS. Итак чего там я имею в моем dsdt?</p>
<pre class="brush: bash; title: ; notranslate">

grep OSC acer-aspire-5730zg-bios.v-1.22-org.dsl

</pre>
<p>Молчит. Внимание вопрос с какого перепугу ОСь будет включать поддержку того чего как ей сказал BIOS посредством DSDT железо не поддерживает? Однако стойте. Мы же не в каменном веке живем! Ну ладно да есть и среди нас слоупоки с арифмометрами… Но все более менее вменяемое компьютерное оборудование выпущенное не в каменном веке просто обязано поддерживать <a href="http://en.wikipedia.org/wiki/Active_State_Power_Management" title="ASPM" target="_blank">ASPM</a>!</p>
<p>Значит после того как я все это осмыслил то немного погуглил… а потом еще немного погуглил… и нашел то, что было нужно.</p>
<p>Суть эксперимента в DSDT было добавлено :</p>
<pre class="brush: cpp; title: ; notranslate">

    Scope (\_SB.PCI0)
    {
        Name (SUPP, 0x00)
        Name (CTRL, 0x00)
        Method (_OSC, 4, NotSerialized)
        {
            If (LEqual (Arg0, Buffer (0x10)
                    {
                        /* 0000 */    0x5B, 0x4D, 0xDB, 0x33, 0xF7, 0x1F, 0x1C, 0x40, 
                        /* 0008 */    0x96, 0x57, 0x74, 0x41, 0xC0, 0x3D, 0xD7, 0x66
                    }))
            {
                CreateDWordField (Arg3, 0x00, CDW1)
                CreateDWordField (Arg3, 0x04, CDW2)
                CreateDWordField (Arg3, 0x08, CDW3)
                Store (CDW2, SUPP)
                Store (CDW3, CTRL)
                If (LNotEqual (And (SUPP, 0x16), 0x16))
                {
                    And (CTRL, 0x1E, CTRL)
                }
                And (CTRL, 0x1D, CTRL)
                If (Not (And (CDW1, 0x01)))
                {
                    If (And (CTRL, 0x01)) {}
                    If (And (CTRL, 0x04)) {}
                    If (And (CTRL, 0x10)) {}
                }
                If (LNotEqual (Arg1, One))
                {
                    Or (CDW1, 0x08, CDW1)
                }
                If (LNotEqual (CDW3, CTRL))
                {
                    Or (CDW1, 0x10, CDW1)
                }
                Store (CTRL, CDW3)
                Return (Arg3)
            }
            Else
            {
                Or (CDW1, 0x04, CDW1)
                Return (Arg3)
            }
        }

</pre>
<p>И чтобы ради такого пустяка попросту не терять шанс я еще и добавил пофикшенное SSDT в DSDT. О том как это проделать вы прочитаете тут <a href="http://pat.erley.org/Other/P4EISTSSDT" title="Custom SSDT Table for EIST on my Laptop" target="_blank">Custom SSDT Table for EIST on my Laptop</a> </p>
<p>Вот окончательный патчь на мою уже основательно переделанную DSDT добавляющий исправленное SSDT и метод _OSC</p>
<pre class="brush: cpp; title: ; notranslate">

# diff -u acer-aspire-5730zg-bios.v-1.24_dsdt.dsl dsdt.dsl 
--- acer-aspire-5730zg-bios.v-1.24_dsdt.dsl	2012-02-17 21:55:01.000000000 +0200
+++ dsdt.dsl	2012-02-19 13:54:39.000000000 +0200
@@ -6020,4 +6042,297 @@
 		Zero,
 		Zero
 	})
+
+	Scope (_PR_.CPU0)
+	{
+		Name (HI0, Zero)
+		Name (HC0, Zero)
+		Method (_PDC, 1, NotSerialized)
+		{
+			Store (CPDC (Arg0), Local0)
+			GCAP (Local0)
+		}
+
+		Method (_OSC, 4, NotSerialized)
+		{
+			Store (COSC (Arg0, Arg1, Arg2, Arg3), Local0)
+			GCAP (Local0)
+			Return (Local0)
+		}
+
+		Method (CPDC, 1, NotSerialized)
+		{
+			CreateDWordField (Arg0, Zero, REVS)
+			CreateDWordField (Arg0, 0x04, SIZE)
+			Store (SizeOf (Arg0), Local0)
+			Store (Subtract (Local0, 0x08), Local1)
+			CreateField (Arg0, 0x40, Multiply (Local1, 0x08), TEMP)
+			Name (STS0, Buffer (0x04)
+			{
+				 0x00, 0x00, 0x00, 0x00
+			})
+			Concatenate (STS0, TEMP, Local2)
+			Return (COSC (Buffer (0x10)
+				{
+					/* 0000 */   0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47,
+					/* 0008 */   0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
+				}, REVS, SIZE, Local2))
+		}
+
+		Method (COSC, 4, NotSerialized)
+		{
+			CreateDWordField (Arg3, Zero, STS0)
+			CreateDWordField (Arg3, 0x04, CAP0)
+			CreateDWordField (Arg0, Zero, IID0)
+			CreateDWordField (Arg0, 0x04, IID1)
+			CreateDWordField (Arg0, 0x08, IID2)
+			CreateDWordField (Arg0, 0x0C, IID3)
+			Name (UID0, Buffer (0x10)
+			{
+				/* 0000 */   0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47,
+				/* 0008 */   0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53
+			})
+			CreateDWordField (UID0, Zero, EID0)
+			CreateDWordField (UID0, 0x04, EID1)
+			CreateDWordField (UID0, 0x08, EID2)
+			CreateDWordField (UID0, 0x0C, EID3)
+			If (LNot (LAnd (LAnd (LEqual (IID0, EID0), LEqual (IID1, EID1)), 
+				LAnd (LEqual (IID2, EID2), LEqual (IID3, EID3)))))
+			{
+				Store (0x06, STS0)
+				Return (Arg3)
+			}
+
+			If (LNotEqual (Arg1, One)) {
+				Store (0x0A, STS0)
+				Return (Arg3)
+			}
+
+			Return (Arg3)
+		}
+
+		Method (GCAP, 1, NotSerialized)
+		{
+			CreateDWordField (Arg0, Zero, STS0)
+			CreateDWordField (Arg0, 0x04, CAP0)
+			If (LOr (LEqual (STS0, 0x06), LEqual (STS0, 0x0A))) {
+				Return (Zero)
+			}
+
+			If (And (STS0, One)) {
+				And (CAP0, 0x0BFF, CAP0)
+				Return (Zero)
+			}
+
+			Or (And (PDC0, 0x7FFFFFFF), CAP0, PDC0)
+			If (And (CFGD, One)) {
+				If (LAnd (LAnd (And (CFGD, 0x01000000), LEqual (And (PDC0, 
+					0x09), 0x09)), LNot (And (SDTL, One)))) {
+					Or (SDTL, One, SDTL)
+					OperationRegion (IST0, SystemMemory, DerefOf (Index (SSDT, One)), DerefOf (Index (SSDT, 0x02
+						)))
+					Load (IST0, HI0)
+				}
+			}
+
+			If (And (CFGD, 0xF0)) {
+				If (LAnd (LAnd (And (CFGD, 0x01000000), And (PDC0, 0x18
+					)), LNot (And (SDTL, 0x02)))) {
+					Or (SDTL, 0x02, SDTL)
+					OperationRegion (CST0, SystemMemory, DerefOf (Index (SSDT, 0x07)), DerefOf (Index (SSDT, 0x08
+						)))
+					Load (CST0, HC0)
+				}
+			}
+
+			Return (Zero)
+		}
+	}
+
+	Scope (_PR_.CPU1)
+	{
+		Name (HI1, Zero)
+		Name (HC1, Zero)
+		Method (_PDC, 1, NotSerialized)
+		{
+			Store (^^CPU0.CPDC (Arg0), Local0)
+			GCAP (Local0)
+		}
+
+		Method (_OSC, 4, NotSerialized)
+		{
+			Store (^^CPU0.COSC (Arg0, Arg1, Arg2, Arg3), Local0)
+			GCAP (Local0)
+			Return (Local0)
+		}
+
+		Method (GCAP, 1, NotSerialized)
+		{
+			CreateDWordField (Arg0, Zero, STS1)
+			CreateDWordField (Arg0, 0x04, CAP1)
+			If (LOr (LEqual (STS1, 0x06), LEqual (STS1, 0x0A))) {
+				Return (Zero)
+			}
+
+			If (And (STS1, One)) {
+				And (CAP1, 0x0BFF, CAP1)
+				Return (Zero)
+			}
+
+			Or (And (PDC1, 0x7FFFFFFF), CAP1, PDC1)
+			If (LEqual (And (PDC0, 0x09), 0x09)) {
+				APPT ()
+			}
+
+			If (And (PDC0, 0x18)) {
+				APCT ()
+			}
+
+			Return (Zero)
+		}
+
+		Method (APCT, 0, NotSerialized)
+		{
+			If (LAnd (And (CFGD, 0xF0), LNot (And (SDTL, 0x20
+				)))) {
+				Or (SDTL, 0x20, SDTL)
+				OperationRegion (CST1, SystemMemory, DerefOf (Index (SSDT, 0x0A)), DerefOf (Index (SSDT, 0x0B
+					)))
+				Load (CST1, HC1)
+			}
+		}
+
+		Method (APPT, 0, NotSerialized)
+		{
+			If (LAnd (And (CFGD, One), LNot (And (SDTL, 0x10
+				)))) {
+				Or (SDTL, 0x10, SDTL)
+				OperationRegion (IST1, SystemMemory, DerefOf (Index (SSDT, 0x04)), DerefOf (Index (SSDT, 0x05
+					)))
+				Load (IST1, HI1)
+			}
+		}
+	}
+
+	Scope (_PR_.CPU2)
+	{
+		Method (_PDC, 1, NotSerialized)
+		{
+			Store (^^CPU0.CPDC (Arg0), Local0)
+			GCAP (Local0)
+		}
+
+		Method (_OSC, 4, NotSerialized)
+		{
+			Store (^^CPU0.COSC (Arg0, Arg1, Arg2, Arg3), Local0)
+			GCAP (Local0)
+			Return (Local0)
+		}
+
+		Method (GCAP, 1, NotSerialized)
+		{
+			CreateDWordField (Arg0, Zero, STS2)
+			CreateDWordField (Arg0, 0x04, CAP2)
+			If (LOr (LEqual (STS2, 0x06), LEqual (STS2, 0x0A))) {
+				Return (Zero)
+			}
+
+			If (And (STS2, One)) {
+				And (CAP2, 0x0BFF, CAP2)
+				Return (Zero)
+			}
+
+			Or (And (PDC2, 0x7FFFFFFF), CAP2, PDC2)
+			If (LEqual (And (PDC2, 0x09), 0x09)) {
+				^^CPU1.APPT ()
+			}
+
+			If (And (PDC2, 0x18)) {
+				^^CPU1.APCT ()
+			}
+
+			Return (Zero)
+		}
+	}
+
+	Scope (_PR_.CPU3)
+	{
+		Method (_PDC, 1, NotSerialized)
+		{
+			Store (^^CPU0.CPDC (Arg0), Local0)
+			GCAP (Local0)
+		}
+
+		Method (_OSC, 4, NotSerialized)
+		{
+			Store (^^CPU0.COSC (Arg0, Arg1, Arg2, Arg3), Local0)
+			GCAP (Local0)
+			Return (Local0)
+		}
+
+		Method (GCAP, 1, NotSerialized)
+		{
+			CreateDWordField (Arg0, Zero, STS3)
+			CreateDWordField (Arg0, 0x04, CAP3)
+			If (LOr (LEqual (STS3, 0x06), LEqual (STS3, 0x0A))) {
+				Return (Zero)
+			}
+
+			If (And (STS3, One)) {
+				And (CAP3, 0x0BFF, CAP3)
+				Return (Zero)
+			}
+
+			Or (And (PDC3, 0x7FFFFFFF), CAP3, PDC3)
+			If (LEqual (And (PDC2, 0x09), 0x09)) {
+				^^CPU1.APPT ()
+			}
+
+			If (And (PDC2, 0x18)) {
+				^^CPU1.APCT ()
+			}
+
+			Return (Zero)
+		}
+	}
+	Scope (_SB_.PCI0)
+	{
+		Name (SUPP, Zero)
+		Name (CTRL, Zero)
+		Method (_OSC, 4, NotSerialized)
+		{
+			If (LEqual (Arg0, Buffer (0x10) {
+				/* 0000 */	0x5B, 0x4D, 0xDB, 0x33, 0xF7, 0x1F, 0x1C, 0x40, 
+				/* 0008 */	0x96, 0x57, 0x74, 0x41, 0xC0, 0x3D, 0xD7, 0x66
+				}))
+			{
+				CreateDWordField (Arg3, Zero, CDW1)
+				CreateDWordField (Arg3, 0x04, CDW2)
+				CreateDWordField (Arg3, 0x08, CDW3)
+				Store (CDW2, SUPP)
+				Store (CDW3, CTRL)
+				If (LNotEqual (And (SUPP, 0x16), 0x16)) {
+					And (CTRL, 0x1E, CTRL)
+				}
+				And (CTRL, 0x1D, CTRL)
+				If (Not (And (CDW1, One))) {
+					If (And (CTRL, One)) {}
+					If (And (CTRL, 0x04)) {}
+					If (And (CTRL, 0x10)) {}
+				}
+				If (LNotEqual (Arg1, One)) {
+					Or (CDW1, 0x08, CDW1)
+				}
+				If (LNotEqual (CDW3, CTRL)) {
+					Or (CDW1, 0x10, CDW1)
+				}
+				Store (CTRL, CDW3)
+				Return (Arg3)
+			} Else {
+				Or (CDW1, 0x04, CDW1)
+				Return (Arg3)
+			}
+		}
+	}
 }
+

</pre>
<p>Собираю новое ядро, для того чтобы измененная SSDT грузилась из файла добавляю к параметрам загрузки ядра
<pre class="brush: bash; title: ; notranslate">acpi_no_auto_ssdt</pre>
<p> перезапускаю и вуаля…</p>
<p>Если быть кратким то</p>
<pre class="brush: bash; title: ; notranslate">

# dmesg | egrep -i 'ASPM'
[    0.000000] Command line: BOOT_IMAGE=/vmlinuz-3.2.7-geek-libre-2 pcie_aspm=force acpi_osi=Linux acpi_no_auto_ssdt enable_mtrr_cleanup usbcore.autosuspend=1 ro console=tty1 vga=791 fastboot quiet root=/dev/sda4 rootfstype=ext4
[    0.000000] Kernel command line: BOOT_IMAGE=/vmlinuz-3.2.7-geek-libre-2 pcie_aspm=force acpi_osi=Linux acpi_no_auto_ssdt enable_mtrr_cleanup usbcore.autosuspend=1 ro console=tty1 vga=791 fastboot quiet root=/dev/sda4 rootfstype=ext4
[    0.000000] PCIe ASPM is forcibly enabled

</pre>
<p>Что и требовалось доказать. Ну а если не очень… </p>
<pre class="brush: bash; title: ; notranslate">

# dmesg | egrep -i 'acpi|ASPM'
[    0.000000] Command line: BOOT_IMAGE=/vmlinuz-3.2.7-geek-libre-2 pcie_aspm=force acpi_osi=Linux acpi_no_auto_ssdt enable_mtrr_cleanup usbcore.autosuspend=1 ro console=tty1 vga=791 fastboot quiet root=/dev/sda4 rootfstype=ext4
[    0.000000]  BIOS-e820: 00000000bfd64000 - 00000000bfd9f000 (ACPI NVS)
[    0.000000]  BIOS-e820: 00000000bfde2000 - 00000000bfdff000 (ACPI data)
[    0.000000] ACPI: RSDP 00000000000f7160 00024 (v02 PTLTD )
[    0.000000] ACPI: XSDT 00000000bfdf447d 0005C (v01 ACRSYS ACRPRDCT 06040000 INNA 00000000)
[    0.000000] ACPI: FACP 00000000bfde4000 000F4 (v03 INTEL  CRESTLNE 06040000 ALAN 00000001)
[    0.000000] ACPI: Override [DSDT-CANTIGA ], this is unsafe: tainting kernel
[    0.000000] ACPI: DSDT @ 0x00000000bfde5000 Table override, replaced with:
[    0.000000] ACPI: DSDT ffffffff8183e400 06A1B (v02 Intel  CANTIGA  00000001 INTL 20111123)
[    0.000000] ACPI: FACS 00000000bfd9efc0 00040
[    0.000000] ACPI: HPET 00000000bfdfed86 00038 (v01 INTEL  CRESTLNE 06040000 LOHR 0000005A)
[    0.000000] ACPI: MCFG 00000000bfdfedbe 0003C (v01 INTEL  CRESTLNE 06040000 LOHR 0000005A)
[    0.000000] ACPI: SLIC 00000000bfdfedfa 00176 (v01 ACRSYS ACRPRDCT 06040000 ANNI 00000001)
[    0.000000] ACPI: APIC 00000000bfdfef70 00068 (v01 PTLTD  ? APIC   06040000  LTP 00000000)
[    0.000000] ACPI: BOOT 00000000bfdfefd8 00028 (v01 PTLTD  $SBFTBL$ 06040000  LTP 00000001)
[    0.000000] ACPI: SSDT 00000000bfde3000 00655 (v01  PmRef    CpuPm 00003000 INTL 20050624)
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] ACPI: PM-Timer IO Port: 0x408
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
[    0.000000] ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 high edge)
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[    0.000000] ACPI: IRQ0 used by override.
[    0.000000] ACPI: IRQ2 used by override.
[    0.000000] ACPI: IRQ9 used by override.
[    0.000000] Using ACPI (MADT) for SMP configuration information
[    0.000000] ACPI: HPET id: 0x8086a201 base: 0xfed00000
[    0.000000] Kernel command line: BOOT_IMAGE=/vmlinuz-3.2.7-geek-libre-2 pcie_aspm=force acpi_osi=Linux acpi_no_auto_ssdt enable_mtrr_cleanup usbcore.autosuspend=1 ro console=tty1 vga=791 fastboot quiet root=/dev/sda4 rootfstype=ext4
[    0.000000] PCIe ASPM is forcibly enabled
[    0.000000] ACPI: SSDT auto-load disabled
[    0.001390] ACPI: Core revision 20110623
[    0.004621] ACPI: SSDT ignored due to &quot;acpi_no_auto_ssdt&quot;
[    0.090273] PM: Registering ACPI NVS region at bfd64000 (241664 bytes)
[    0.090273] ACPI: bus type pci registered
[    0.168335] ACPI: Added _OSI(Module Device)
[    0.168335] ACPI: Added _OSI(Processor Device)
[    0.168335] ACPI: Added _OSI(3.0 _SCP Extensions)
[    0.168335] ACPI: Added _OSI(Processor Aggregator Device)
[    0.168335] ACPI: Added _OSI(Linux)
[    0.169966] ACPI: EC: Look up EC in DSDT
[    0.173086] [Firmware Bug]: ACPI: BIOS _OSI(Linux) query honored via cmdline
[    0.173493] ACPI: SSDT 00000000bfd1ac20 00265 (v01  PmRef  Cpu0Ist 00003000 INTL 20050624)
[    0.173849] ACPI: Dynamic OEM Table Load:
[    0.173853] ACPI: SSDT           (null) 00265 (v01  PmRef  Cpu0Ist 00003000 INTL 20050624)
[    0.173978] ACPI: SSDT 00000000bfd18620 00549 (v01  PmRef  Cpu0Cst 00003001 INTL 20050624)
[    0.174321] ACPI: Dynamic OEM Table Load:
[    0.174324] ACPI: SSDT           (null) 00549 (v01  PmRef  Cpu0Cst 00003001 INTL 20050624)
[    0.180234] ACPI: SSDT 00000000bfd19ca0 001CF (v01  PmRef    ApIst 00003000 INTL 20050624)
[    0.180604] ACPI: Dynamic OEM Table Load:
[    0.180607] ACPI: SSDT           (null) 001CF (v01  PmRef    ApIst 00003000 INTL 20050624)
[    0.183073] ACPI: SSDT 00000000bfd19f20 0008D (v01  PmRef    ApCst 00003000 INTL 20050624)
[    0.183423] ACPI: Dynamic OEM Table Load:
[    0.183426] ACPI: SSDT           (null) 0008D (v01  PmRef    ApCst 00003000 INTL 20050624)
[    0.203067] ACPI: Interpreter enabled
[    0.203072] ACPI: (supports S0 S3 S4 S5)
[    0.203093] ACPI: Using IOAPIC for interrupt routing
[    0.215408] ACPI: EC: GPE = 0x17, I/O: command/status = 0x66, data = 0x62
[    0.215454] PCI: Using host bridge windows from ACPI; if necessary, use &quot;pci=nocrs&quot; and report a bug
[    0.215778] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff])
[    0.226529] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
[    0.226628] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PEGP._PRT]
[    0.226681] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.P0P1._PRT]
[    0.226753] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP01._PRT]
[    0.226788] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP02._PRT]
[    0.226822] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP03._PRT]
[    0.226855] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP04._PRT]
[    0.226902] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP05._PRT]
[    0.227038]  pci0000:00: Requesting ACPI _OSC control (0x1d)
[    0.227190]  pci0000:00: ACPI _OSC control (0x1d) granted
[    0.233327] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 10 *11 12 14 15)
[    0.233380] ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 7 10 *11 12 14 15)
[    0.233429] ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 7 *10 11 12 14 15)
[    0.233477] ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 7 *10 11 12 14 15)
[    0.233525] ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 7 10 *11 12 14 15)
[    0.233572] ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 7 *10 11 12 14 15)
[    0.233620] ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.
[    0.233669] ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 7 *10 11 12 14 15)
[    0.234110] PCI: Using ACPI for IRQ routing
[    0.248808] pnp: PnP ACPI init
[    0.248830] ACPI: bus type pnp registered
[    0.249283] pnp 00:00: Plug and Play ACPI device, IDs PNP0a08 PNP0a03 (active)
[    0.249382] pnp 00:01: Plug and Play ACPI device, IDs APP0001 (active)
[    0.249471] pnp 00:02: Plug and Play ACPI device, IDs PNP0303 (active)
[    0.249517] pnp 00:03: Plug and Play ACPI device, IDs SYN0302 SYN0300 SYN0002 PNP0f13 (active)
[    0.249566] pnp 00:04: Plug and Play ACPI device, IDs PNP0200 (active)
[    0.249610] pnp 00:05: Plug and Play ACPI device, IDs INT0800 (active)
[    0.249859] system 00:06: Plug and Play ACPI device, IDs PNP0103 PNP0c01 (active)
[    0.249917] pnp 00:07: Plug and Play ACPI device, IDs PNP0c04 (active)
[    0.250068] system 00:08: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.250108] pnp 00:09: Plug and Play ACPI device, IDs PNP0b00 (active)
[    0.250362] system 00:0a: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.250495] pnp: PnP ACPI: found 11 devices
[    0.250497] ACPI: ACPI bus type pnp unregistered
[    9.094046] ACPI: Lid Switch [LID0]
[    9.094179] ACPI: Sleep Button [SLPB]
[    9.094282] ACPI: Power Button [PWRB]
[    9.094376] ACPI: Power Button [PWRF]
[    9.190407] ACPI: acpi_idle registered with cpuidle
[    9.287191] ACPI: Battery Slot [BAT0] (battery present)
[    9.291185] acpi device:03: registered as cooling_device2
[    9.293260] ACPI: Video Device [VGA] (multi-head: yes  rom: no  post: no)
[    9.297142] ACPI: AC Adapter [ADP1] (on-line)
[    9.309098] ACPI: Thermal Zone [TZS0] (58 C)
[    9.325670] ACPI: Thermal Zone [TZS1] (58 C)
[    9.347968] snd_hda_intel 0000:00:1b.0: power state changed by ACPI to D0
[    9.347976] snd_hda_intel 0000:00:1b.0: power state changed by ACPI to D0
[   11.897194] pciehp: Using ACPI for slot detection.

</pre>
<p>Эксперимент был проведен на мой страх и риск. В результате поставленного эксперимента ноутбук не пострадал. Из положительных моментов &#8211; работа <a href="http://en.wikipedia.org/wiki/Active_State_Power_Management" title="ASPM" target="_blank">ASPM</a> проявилась в снижении температуры корпуса и как следствие уменьшении шума от встроенного вентиллятора. К сожалению провести эксперименты на работе от аккумулятора не представляется возможным в виду предсмертного состояния последнего :Р </p>
<p>Как говорится хотели как лучше а вышло… угу ну или благими намерениями… Скорее всего метод _OSC на подходящем железе можно эмулировать и из самой ОСи… Ну или патчь как то менять и пользоваться не только информацией из BIOS-а который зачастую врет.</p>
<p>Из неразрешенного на данный момент осталось:</p>
<pre class="brush: bash; title: ; notranslate">

[Firmware Bug]: ACPI: BIOS _OSI(Linux) query honored via cmdline

</pre>
<pre class="brush: bash; title: ; notranslate">

ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled.

</pre>
<p>Не знаю насколько это страшно… Но где в общем случае корни этой проблемы уже ясно. Спасибо за внимание. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </p>
<p>PS: Пользуясь случаем передаю свой пламенный привет всем уродам не соблюдающим официальные спецификации.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sudormrf.wordpress.com/835/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sudormrf.wordpress.com/835/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sudormrf.wordpress.com&#038;blog=6835767&#038;post=835&#038;subd=sudormrf&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sudormrf.wordpress.com/2012/02/25/aspm-%d0%b2-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/738e6186190c149c83fb3273f9621069?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">init_6</media:title>
		</media:content>
	</item>
		<item>
		<title>Конфиг иксов.</title>
		<link>http://sudormrf.wordpress.com/2011/12/18/%d0%ba%d0%be%d0%bd%d1%84%d0%b8%d0%b3-%d0%b8%d0%ba%d1%81%d0%be%d0%b2/</link>
		<comments>http://sudormrf.wordpress.com/2011/12/18/%d0%ba%d0%be%d0%bd%d1%84%d0%b8%d0%b3-%d0%b8%d0%ba%d1%81%d0%be%d0%b2/#comments</comments>
		<pubDate>Sun, 18 Dec 2011 08:08:16 +0000</pubDate>
		<dc:creator>init_6</dc:creator>
				<category><![CDATA[gentoo]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[X]]></category>
		<category><![CDATA[xorg]]></category>

		<guid isPermaLink="false">http://sudormrf.wordpress.com/?p=828</guid>
		<description><![CDATA[Себе на память и с надеждой что кому то он будет полезен. Для ноутбука с видеокартой nvidia. С кучей хаков. Не идеал конечно но лучше чем примеры из манов. Да это настройки клавиатуры. Ничего особого. А это настройки собственно самого монитора. Зоопарк грызунов. Это основные пути. Обратите особое внимание на строчки ModulePath! Да и я [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sudormrf.wordpress.com&#038;blog=6835767&#038;post=828&#038;subd=sudormrf&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Себе на память и с надеждой что кому то он будет полезен.<br />
Для ноутбука с видеокартой nvidia. С кучей хаков. Не идеал конечно но лучше чем примеры из манов.<br />
<span id="more-828"></span></p>
<pre class="brush: bash; title: ; notranslate">
$ cd /etc/X11/xorg.conf.d
$ ls
10-evdev.conf  10-monitor.conf  11-mouse.conf  20-files.conf  20-nvidia.conf  50-synaptics.conf
</pre>
<pre class="brush: bash; title: ; notranslate">$ cat 10-evdev.conf
Section &quot;InputClass&quot;
	Identifier &quot;evdev pointer catchall&quot;
	MatchIsPointer &quot;on&quot;
	MatchDevicePath &quot;/dev/input/event*&quot;
	Driver &quot;evdev&quot;
EndSection

Section &quot;InputClass&quot;
	Identifier	&quot;Keyboard&quot;
	MatchIsKeyboard	&quot;on&quot;
	MatchDevicePath	&quot;/dev/input/event*&quot;
	Driver		&quot;evdev&quot;
	Option		&quot;XkbModel&quot; &quot;acer_laptop&quot;
	Option		&quot;XkbLayout&quot; &quot;us,ru&quot;
	Option		&quot;XkbVariant&quot; &quot;, winkeys&quot;
	Option		&quot;XkbOptions&quot; &quot;grp:lwin,compose:ralt_switch&quot;
EndSection
</pre>
<p>Да это настройки клавиатуры. Ничего особого.</p>
<pre class="brush: bash; title: ; notranslate">$ cat 10-monitor.conf
Section &quot;ServerLayout&quot;
	Identifier	&quot;DualSreen&quot;
	Screen	0 &quot;Screen0&quot; 0 0
	Screen	1 &quot;Screen1&quot; RightOf &quot;Screen0&quot;
	Option	&quot;AIGLX&quot; &quot;true&quot;
EndSection

Section &quot;Monitor&quot;
	Identifier	&quot;Monitor0&quot;
	VendorName	&quot;Acer&quot;
	ModelName	&quot;LPL&quot;
	DisplaySize	339 212
	HorizSync	30.0 - 110.0
	VertRefresh	50.0 - 150.0
	Option		&quot;DPMS&quot;
	Option		&quot;backingstore&quot;
	ModeLine	&quot;1280x800@60i&quot; 33.410 1280 1312 1432 1464 720 736 740 757 +hsync +vsync interlace
EndSection

Section &quot;Monitor&quot;
	Identifier	&quot;Monitor1&quot;
	VendorName	&quot;Asus&quot;
	ModelName	&quot;Ancor Communications Inc VW202&quot;
	HorizSync	30.0 - 83.0
	VertRefresh	56.0 - 76.0
	Option		&quot;DPMS&quot;
	Option		&quot;backingstore&quot;
EndSection

Section &quot;Screen&quot;
	Identifier	&quot;Screen0&quot;
	Device		&quot;Device0&quot;
	Monitor		&quot;Monitor0&quot;
	DefaultDepth	24
	Option		&quot;NoLogo&quot; &quot;1&quot;
	SubSection &quot;Display&quot;
        Depth   24
        Modes   &quot;1280x800&quot; &quot;1024x768&quot; &quot;800x600&quot; &quot;640x480&quot;
    EndSubSection
    Option		&quot;RenderAccel&quot; &quot;1&quot;
	Option		&quot;AllowGLXWithComposite&quot; &quot;1&quot;
	Option		&quot;AddARGBGLXVisuals&quot; &quot;1&quot;
	Option		&quot;TripleBuffer&quot; &quot;1&quot;
	Option		&quot;DamageEvents&quot; &quot;1&quot;
	Option		&quot;TwinView&quot; &quot;0&quot;
	Option		&quot;TwinViewXineramaInfoOrder&quot; &quot;DFP-0&quot;
	Option		&quot;metamodes&quot; &quot;DFP: nvidia-auto-select +0+0&quot;
EndSection

Section &quot;Screen&quot;
	Identifier	&quot;Screen1&quot;
	Device		&quot;Device1&quot;
	Monitor		&quot;Monitor1&quot;
	DefaultDepth	24
	Option		&quot;NoLogo&quot; &quot;1&quot;
	Option		&quot;RenderAccel&quot; &quot;1&quot;
	Option		&quot;AllowGLXWithComposite&quot; &quot;1&quot;
	Option		&quot;AddARGBGLXVisuals&quot; &quot;1&quot;
	Option		&quot;TripleBuffer&quot; &quot;1&quot;
	Option		&quot;DamageEvents&quot; &quot;1&quot;
	Option		&quot;TwinView&quot; &quot;0&quot;
	Option		&quot;metamodes&quot; &quot;CRT: 1680x1050 +0+0&quot;
EndSection

Section &quot;Module&quot;
#	Disable	&quot;dri&quot;
#	Disable	&quot;dri2&quot;
	Load	&quot;record&quot;
	Load	&quot;glx&quot;
	Load	&quot;freetype&quot;
	Load	&quot;dbe&quot;
	Load	&quot;ddc&quot;
	Load	&quot;extmod&quot;
	Load	&quot;i2c&quot;
EndSection

Section &quot;Extensions&quot; 
	Option		&quot;GLX&quot; &quot;Enable&quot;
	Option		&quot;Composite&quot; &quot;Enable&quot;
	Option 		&quot;RENDER&quot; &quot;Enable&quot;
EndSection

Section &quot;ServerFlags&quot;
	Option		&quot;IgnoreABI&quot; &quot;1&quot;
	Option		&quot;GlxVisuals&quot; &quot;all&quot;
EndSection
</pre>
<p>А это настройки собственно самого монитора.</p>
<pre class="brush: bash; title: ; notranslate">$ cat 11-mouse.conf
Section &quot;InputClass&quot;
	# 046d:c50e
	# 046d:c501
	Identifier	&quot;Logitech Trackball&quot;
	MatchVendor	&quot;Logitech, Inc.&quot;
	MatchProduct	&quot;MX-1000 Cordless Mouse Receiver|Cordless Mouse Receiver&quot;
	MatchIsPointer	&quot;on&quot;
	Driver	&quot;evdev&quot;
	Option	&quot;Buttons&quot;	&quot;8&quot;
	Option	&quot;EmulateWheel&quot;	&quot;on&quot;
	Option	&quot;EmulateWheelButton&quot;	&quot;8&quot;
	Option	&quot;YAxisMapping&quot;	&quot;4 5&quot;
	Option	&quot;XAxisMapping&quot;	&quot;6 7&quot;
EndSection

Section &quot;InputClass&quot;
	# 046d:c521
	Identifier	&quot;Logitech Multibutton Mouse&quot;
	MatchVendor	&quot;Logitech, Inc.&quot;
	MatchProduct	&quot;MX620 Laser Cordless Mouse&quot;
	MatchIsPointer	&quot;on&quot;
	Driver	&quot;evdev&quot;
	Option	&quot;HWHEELRelativeAxisButtons&quot;	&quot;7 6&quot;
EndSection

Section &quot;InputClass&quot;
	# 045e:0095
	Identifier	&quot;Microsoft IntelliMouse Explorer&quot;
	MatchVendor	&quot;Microsoft Corp.&quot;
	MatchProduct	&quot;IntelliMouse Explorer 4.0 (IntelliPoint)&quot;
	MatchIsPointer	&quot;on&quot;
	Driver	&quot;evdev&quot;
	Option	&quot;HWHEELRelativeAxisButtons&quot;	&quot;7 6&quot;
EndSection

Section &quot;InputClass&quot;
	# 0210:0003
	Identifier	&quot;0210:0003&quot;
	MatchVendor	&quot;0210&quot;
	MatchProduct	&quot;0003&quot;
	MatchIsPointer	&quot;on&quot;
	Driver	&quot;evdev&quot;
	Option	&quot;EmulateWheel&quot;	&quot;on&quot;
	Option	&quot;EmulateWheelButton&quot;	&quot;2&quot;
EndSection

Section &quot;InputClass&quot;
	# 0002:000a
	Identifier	&quot;0002:000a&quot;
	MatchVendor	&quot;0002&quot;
	MatchProduct	&quot;000a&quot;
	MatchIsPointer	&quot;on&quot;
	Driver	&quot;evdev&quot;
	Option	&quot;EmulateWheel&quot;	&quot;on&quot;
	Option	&quot;EmulateWheelButton&quot;	&quot;2&quot;
EndSection

Section &quot;InputClass&quot;
	# 04b3:300f
	Identifier	&quot;IBM 300f&quot;
	MatchVendor	&quot;IBM Corp.&quot;
	MatchProduct	&quot;300f&quot;
	MatchIsPointer	&quot;on&quot;
	Driver	&quot;evdev&quot;
	Option	&quot;EmulateWheel&quot;	&quot;on&quot;
	Option	&quot;EmulateWheelButton&quot;	&quot;2&quot;
EndSection

Section &quot;InputClass&quot;
	# Novell Bug #597214
	Identifier	&quot;IBM TPPS/2 TrackPoint&quot;
	MatchProduct	&quot;TPPS/2 IBM TrackPoint&quot;
	MatchIsPointer	&quot;on&quot;
	Driver	&quot;evdev&quot;
	Option	&quot;EmulateWheel&quot;	&quot;on&quot;
	Option	&quot;EmulateWheelButton&quot;	&quot;2&quot;
	Option	&quot;YAxisMapping&quot;	&quot;4 5&quot;
	Option	&quot;XAxisMapping&quot;	&quot;6 7&quot;
	Option	&quot;Emulate3Buttons&quot;	&quot;on&quot;
	Option	&quot;EmulateWheelTimeout&quot;	&quot;200&quot;
EndSection

Section &quot;InputClass&quot;
	# Novell Bug #668842
        Identifier      &quot;PS/2 Generic Mouse&quot;
        MatchProduct    &quot;PS/2 Generic Mouse&quot;
        MatchIsPointer  &quot;on&quot;
        Driver  &quot;evdev&quot;
        Option  &quot;EmulateWheel&quot;  &quot;on&quot;
        Option  &quot;EmulateWheelButton&quot;    &quot;2&quot;
        Option  &quot;YAxisMapping&quot;    &quot;4 5&quot;
        Option  &quot;XAxisMapping&quot;    &quot;6 7&quot;
        Option  &quot;Emulate3Buttons&quot;    &quot;on&quot;
        Option  &quot;EmulateWheelTimeout&quot;    &quot;200&quot;
EndSection

Section &quot;InputClass&quot;
        # Novell Bug #671776
        Identifier      &quot;ImPS/2 Generic Wheel Mouse&quot;
        MatchProduct    &quot;ImPS/2 Generic Wheel Mouse&quot;
        MatchIsPointer  &quot;on&quot;
        Driver  &quot;evdev&quot;
        Option  &quot;EmulateWheel&quot;  &quot;on&quot;
        Option  &quot;EmulateWheelButton&quot;    &quot;2&quot;
        Option  &quot;YAxisMapping&quot;    &quot;4 5&quot;
        Option  &quot;XAxisMapping&quot;    &quot;6 7&quot;
        Option  &quot;Emulate3Buttons&quot;    &quot;on&quot;
        Option  &quot;EmulateWheelTimeout&quot;    &quot;200&quot;
EndSection

Section &quot;InputClass&quot;
	# 03f0:1126
        Identifier      &quot;HP 1126&quot;
        MatchVendor     &quot;Hewlett-Packard&quot;
        MatchProduct    &quot;1126&quot;
        MatchIsPointer  &quot;on&quot;
        Driver  &quot;evdev&quot;
	Option	&quot;MinX&quot;	&quot;0&quot;
	Option	&quot;MaxX&quot;	&quot;3000&quot;
	Option	&quot;MinY&quot;	&quot;0&quot;
	Option	&quot;MaxY&quot;	&quot;3000&quot;
EndSection

Section &quot;InputDevice
	Identifier	&quot;Mouse0&quot;
	Driver		&quot;evdev&quot;
	Option		&quot;Protocol&quot; &quot;auto&quot;
	Option		&quot;Device&quot; &quot;/dev/input/mice&quot;
	Option		&quot;ZAxisMapping&quot; &quot;4 5&quot;
	Option		&quot;VertScrollDelta&quot; &quot;6&quot;
EndSection</pre>
<p>Зоопарк грызунов.</p>
<pre class="brush: bash; title: ; notranslate">$ cat 20-files.conf
Section &quot;Files&quot;
	ModulePath &quot;/usr/lib64/xorg/modules&quot;
	ModulePath &quot;/usr/lib64/opengl/xorg-x11/extensions&quot;
# local
	FontPath &quot;/usr/local/share/fonts/TTF&quot;
	FontPath &quot;/usr/local/share/fonts/cyrillic&quot;
	FontPath &quot;/usr/local/share/fonts/misc&quot;
	FontPath &quot;/usr/local/share/fonts/75dpi&quot;
	FontPath &quot;/usr/local/share/fonts/mac&quot;
	FontPath &quot;/usr/local/share/fonts/Type1&quot;
	FontPath &quot;/usr/local/share/fonts/OTF&quot;
	FontPath &quot;/usr/local/share/fonts/100dpi&quot;
# global
	FontPath &quot;/usr/share/fonts/misc&quot;
	FontPath &quot;/usr/share/fonts/corefonts&quot;
	FontPath &quot;/usr/share/fonts/Type1&quot;
	FontPath &quot;/usr/share/fonts/OTF&quot;
	FontPath &quot;/usr/share/fonts/75dpi&quot;
	FontPath &quot;/usr/share/fonts/Speedo&quot;
	FontPath &quot;/usr/share/fonts/cyrillic&quot;
	FontPath &quot;/usr/share/fonts/100dpi&quot;
	FontPath &quot;/usr/share/fonts/urw-fonts&quot;
	FontPath &quot;/usr/share/fonts/TTF&quot;
	FontPath &quot;/usr/share/fonts/cantarell&quot;
EndSection</pre>
<p>Это основные пути. Обратите особое внимание на строчки ModulePath! Да и я переопределяю порядок поиска шрифтов. Вначале мои локальные /usr/local а затем глобальные /usr. Кроме того замечательный скрипт fontlist_fix.py можно найти на странице <a href="http://en.gentoo-wiki.com/wiki/X.Org/Fonts" title="X.Org/Fonts" target="_blank">X.Org/Fonts</a></p>
<pre class="brush: bash; title: ; notranslate">$ cat 20-nvidia.conf
Section &quot;Device&quot;
	Identifier	&quot;Device0&quot;
	Driver		&quot;nvidia&quot;
	VendorName	&quot;NVIDIA Corporation&quot;
	#Forcing Powermizer performance level (for laptops)
	# Force Powermizer to a certain level at all times
	# level 0x1=highest
	# level 0x2=med
	# level 0x3=lowest
	# AC settings:
	# Battery settings:
	# Letting the GPU set its own performance level based on temperature
	# Option &quot;RegistryDwords&quot; &quot;PerfLevelSrc=0x3333&quot;
	#on battery - max power saving, on AC - max performance
	#&quot;PowerMizerEnable=0x1; PerfLevelSrc=0x2222; PowerMizerDefault=0x3; PowerMizerDefaultAC=0x1&quot;
	#on battery - max power saving, on AC - adaptive strategy (my favorite)
	#&quot;PowerMizerEnable=0x1; PerfLevelSrc=0x2233; PowerMizerDefault=0x3&quot;
	#on battery - adaptive strategy, on AC - max performance
	#&quot;PowerMizerEnable=0x1; PerfLevelSrc=0x3322; PowerMizerDefaultAC=0x1&quot;
	#adaptive strategy for any power source
	#&quot;PowerMizerEnable=0x1; PerfLevelSrc=0x3333&quot;
	Option		&quot;RegistryDwords&quot; &quot;PowerMizerEnable=0x1; PerfLevelSrc=0x2233; PowerMizerDefault=0x3; PowerMizerDefaultAC=0x1&quot;
	# Disable vblank interrupts (for laptops)
	Option		&quot;OnDemandVBlankInterrupts&quot; &quot;1&quot;
	# Enabling overclocking
	Option		&quot;Coolbits&quot; &quot;1&quot;
	Screen		0
EndSection

Section &quot;Device&quot;
	Identifier	&quot;Device1&quot;
	Driver		&quot;nvidia&quot;
	VendorName	&quot;NVIDIA Corporation&quot;
	#Forcing Powermizer performance level (for laptops)
	# Force Powermizer to a certain level at all times
	# level 0x1=highest
	# level 0x2=med
	# level 0x3=lowest
	# AC settings:
	# Battery settings:
	# Letting the GPU set its own performance level based on temperature
	# Option &quot;RegistryDwords&quot; &quot;PerfLevelSrc=0x3333&quot;
	Option		&quot;RegistryDwords&quot; &quot;PowerMizerEnable=0x1; PerfLevelSrc=0x2233; PowerMizerDefault=0x3; PowerMizerDefaultAC=0x1&quot;
	# Disable vblank interrupts (for laptops)
	Option		&quot;OnDemandVBlankInterrupts&quot; &quot;1&quot;
	# Enabling overclocking
	Option		&quot;Coolbits&quot; &quot;1&quot;
	Screen		1
EndSection
</pre>
<p>Настройки и тюнинг видеокарты. По поводу конкретных опций добро пожаловать в man.</p>
<pre class="brush: bash; title: ; notranslate">$ cat 50-synaptics.conf
Section &quot;InputClass&quot;
        Identifier &quot;touchpad catchall&quot;
        Driver &quot;synaptics&quot;
        MatchIsTouchpad &quot;on&quot;
# This option is recommend on all Linux systems using evdev, but cannot be
# enabled by default. See the following link for details:
# http://who-t.blogspot.com/2010/11/how-to-ignore-configuration-errors.html
	MatchDevicePath &quot;/dev/input/event*&quot;
EndSection

Section &quot;InputClass&quot;
        Identifier &quot;touchpad ignore duplicates&quot;
        MatchIsTouchpad &quot;on&quot;
        MatchOS &quot;Linux&quot;
        MatchDevicePath &quot;/dev/input/mouse*&quot;
        Option &quot;Ignore&quot; &quot;on&quot;
EndSection</pre>
<p>Ну и точпад.</p>
<p>Надеюсь что было познавательно.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sudormrf.wordpress.com/828/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sudormrf.wordpress.com/828/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sudormrf.wordpress.com&#038;blog=6835767&#038;post=828&#038;subd=sudormrf&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sudormrf.wordpress.com/2011/12/18/%d0%ba%d0%be%d0%bd%d1%84%d0%b8%d0%b3-%d0%b8%d0%ba%d1%81%d0%be%d0%b2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/738e6186190c149c83fb3273f9621069?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">init_6</media:title>
		</media:content>
	</item>
		<item>
		<title>AdBlock двойной удар</title>
		<link>http://sudormrf.wordpress.com/2011/10/23/adblock-%d0%b4%d0%b2%d0%be%d0%b9%d0%bd%d0%be%d0%b9-%d1%83%d0%b4%d0%b0%d1%80/</link>
		<comments>http://sudormrf.wordpress.com/2011/10/23/adblock-%d0%b4%d0%b2%d0%be%d0%b9%d0%bd%d0%be%d0%b9-%d1%83%d0%b4%d0%b0%d1%80/#comments</comments>
		<pubDate>Sun, 23 Oct 2011 06:43:03 +0000</pubDate>
		<dc:creator>init_6</dc:creator>
				<category><![CDATA[gentoo]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://sudormrf.wordpress.com/?p=802</guid>
		<description><![CDATA[Будем считать что первая половина задачи борьбы со спамом решена благодаря AdBlock with dnsmasq and pixelserv on tomato Но увы не весь спам можно победить исключительно черными списками на роутере. В стандартном для gnome браузере epiphany есть такая замечательная и мало применяемая вещь как Epiphany-extensions которые в свою очередь содержат adblock Об особенностях AdBlock в [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sudormrf.wordpress.com&#038;blog=6835767&#038;post=802&#038;subd=sudormrf&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Будем считать что первая половина задачи борьбы со спамом решена благодаря <a href="http://sudormrf.wordpress.com/2011/10/15/adblock-with-dnsmasq-and-pixelserv-on-tomato/" title="AdBlock with dnsmasq and pixelserv on tomato" target="_blank">AdBlock with dnsmasq and pixelserv on tomato</a><br />
Но увы не весь спам можно победить исключительно черными списками на роутере.<br />
<span id="more-802"></span><br />
В стандартном для <a href="http://www.gnome.org/" title="gnome" target="_blank">gnome</a> браузере <a href="http://projects.gnome.org/epiphany/" title="epiphany" target="_blank">epiphany</a> есть такая замечательная и мало применяемая вещь как <a href="http://projects.gnome.org/epiphany/extensions" title="Epiphany-extensions" target="_blank">Epiphany-extensions</a> которые в свою очередь содержат <a href="http://git.gnome.org/browse/epiphany-extensions/tree/extensions/adblock" title="adblock" target="_blank">adblock</a></p>
<p>Об особенностях AdBlock в epiphany прекрасно рассказано тут <a href="http://live.gnome.org/Epiphany/FeatureDesign/AdBlockExtension" title="AdBlock Extension" target="_blank">AdBlock Extension</a> поэтому я не вижу особого смысла заострять на этом внимание.</p>
<p>Итак вы в курсе что AdBlock в epiphany это не совсем тот AdBlock который к примеру вам возможно известен из <a href="http://mozilla-russia.org/products/firefox/" title="FireFox" target="_blank">FireFox</a> И вот тут нам на помощь придет <a href="http://kouznetsov.awardspace.com/epiphany/adblock.xml" title="Converting Adblock plus filters to Epiphany's Adblock format" target="_blank">Converting Adblock plus filters to Epiphany&#8217;s Adblock format</a></p>
<p>Для расширения черного списка стоит запомнить еще пару url</p>
<p><a href="http://easylist.adblockplus.org/morpeh+easylist.txt" rel="nofollow">http://easylist.adblockplus.org/morpeh+easylist.txt</a></p>
<p><a href="http://ruadlist.googlecode.com/svn/trunk/advblock.txt" rel="nofollow">http://ruadlist.googlecode.com/svn/trunk/advblock.txt</a></p>
<p><a href="http://ruadlist.googlecode.com/svn/trunk/bitblock.txt" rel="nofollow">http://ruadlist.googlecode.com/svn/trunk/bitblock.txt</a></p>
<p><a href="http://ruadlist.googlecode.com/svn/trunk/cntblock.txt" rel="nofollow">http://ruadlist.googlecode.com/svn/trunk/cntblock.txt</a></p>
<p><a href="https://easylist-downloads.adblockplus.org/easylist.txt" rel="nofollow">https://easylist-downloads.adblockplus.org/easylist.txt</a></p>
<p><a href="https://secure.fanboy.co.nz/fanboy-adblock.txt" rel="nofollow">https://secure.fanboy.co.nz/fanboy-adblock.txt</a></p>
<p>Кроме того в расширениях есть такая замечательная штука как <a href="http://git.gnome.org/browse/epiphany-extensions/tree/extensions/greasemonkey" title="epiphany-extensions greasemonkey" target="_blank">epiphany-extensions greasemonkey</a> И если немного покапать в сторону <a href="http://wiki.xfce.org/midori/faq" title="midori faq" target="_blank">midori faq</a> </p>
<blockquote><p><strong>Flash blocking via a User script</strong></p>
<p>You can use <a href="http://userscripts.org/scripts/show/45343" title="BlockFlash2" target="_blank">BlockFlash2</a> as a user script which replaces all Flash elements with a button that says “Play Flash”.</p>
<p><strong>Flash blocking via a User style</strong></p>
<p>You can also use <a href="http://rightfootin.blogspot.com/2009/04/flashblock-wannabe.html" title="FlashBlock WannaBe" target="_blank">FlashBlock WannaBe</a> as a user script in order to replace Flash elements with placeholders and load them on click. The script is pretty advanced compared to most Flash blockers found on the web.</p></blockquote>
<p>Стоит запомнить, что в epiphany: </p>
<pre class="brush: bash; title: ; notranslate">~/.gnome2/epiphany/extensions/data/adblock
~/.gnome2/epiphany/extensions/data/greasemonkey</pre>
<p>а user style можно поместить либо непосредственно в сам
<pre class="brush: bash; title: ; notranslate">~/.gnome2/epiphany/user-stylesheet.css</pre>
<p> либо
<pre class="brush: bash; title: ; notranslate">~/.gnome2/epiphany/любой_другой.css</pre>
<p> и после в файле user-stylesheet.css его импортировать </p>
<pre class="brush: css; title: ; notranslate">@import &quot;любой_другой.css&quot;</pre>
<p>Надеюсь эта информация была вам полезна.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sudormrf.wordpress.com/802/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sudormrf.wordpress.com/802/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sudormrf.wordpress.com&#038;blog=6835767&#038;post=802&#038;subd=sudormrf&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sudormrf.wordpress.com/2011/10/23/adblock-%d0%b4%d0%b2%d0%be%d0%b9%d0%bd%d0%be%d0%b9-%d1%83%d0%b4%d0%b0%d1%80/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/738e6186190c149c83fb3273f9621069?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">init_6</media:title>
		</media:content>
	</item>
		<item>
		<title>AdBlock with dnsmasq and pixelserv on tomato</title>
		<link>http://sudormrf.wordpress.com/2011/10/15/adblock-with-dnsmasq-and-pixelserv-on-tomato/</link>
		<comments>http://sudormrf.wordpress.com/2011/10/15/adblock-with-dnsmasq-and-pixelserv-on-tomato/#comments</comments>
		<pubDate>Sat, 15 Oct 2011 12:41:44 +0000</pubDate>
		<dc:creator>init_6</dc:creator>
				<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://sudormrf.wordpress.com/?p=794</guid>
		<description><![CDATA[По следам Set Up Universal Ad Blocking Through Your Router, Adblock for Tomato Routers, ALL-U-NEED Ad Blocking v3.9e, Adblock setup &#38; install package Исходные данные: В наличие asus rt-n16 с прошивкой tomato либо tomatousb и доступом к роутеру по ssh. Задача: Настроить dnsmasq на блокировку любых нежелательных хостов а pixelserv на показ картинки (одного пустого [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sudormrf.wordpress.com&#038;blog=6835767&#038;post=794&#038;subd=sudormrf&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>По следам <a href="http://lifehacker.com/5060053/set-up-universal-ad-blocking-through-your-router" target="_blank">Set Up Universal Ad Blocking Through Your Router</a>, <a href="http://cohomology.wordpress.com/2010/12/02/adblock-for-tomato-routers/" target="_blank">Adblock for Tomato Routers</a>, <a href="http://www.linksysinfo.org/index.php?threads/all-u-need-ad-blocking.33191/" target="_blank">ALL-U-NEED Ad Blocking v3.9e</a>, <a href="http://tomatousb.org/forum/t-262221/adblock-setup-install-package" target="_blank">Adblock setup &amp; install package</a></p>
<p><span id="more-794"></span></p>
<p>Исходные данные:<br />
В наличие <a href="http://ru.asus.com/Networks/Wireless_Routers/RTN16/" title="asus rt-n16" target="_blank">asus rt-n16</a> с прошивкой <a href="http://www.polarcloud.com/tomato" target="_blank">tomato</a> либо <a href="http://tomatousb.org/" target="_blank">tomatousb</a> и доступом к роутеру по ssh.</p>
<p>Задача:<br />
Настроить <a href="http://www.thekelleys.org.uk/dnsmasq/" target="_blank">dnsmasq</a> на блокировку любых нежелательных хостов а <a href="http://proxytunnel.sourceforge.net/pixelserv.php" target="_blank">pixelserv</a> на показ картинки (одного пустого пикселя) вместо баннеров.</p>
<p>Решение:<br />
Не претендует на идеал. Но тем не менее… Значит после изучения материалов представленных и не представленных в шапке остановился на доработке скрипта из и <a href="http://tomatousb.org/forum/t-262221/adblock-setup-install-package" target="_blank">Adblock setup &amp; install package</a>. Он меня почти полностью устроил за исключением нескольких моментов.</p>
<p>Во первых я не понял зачем нужна реализация обновления скрипта по крону внитри самого скрипта.<br />
Во вторых несколько зверская проверка наличия интернета</p>
<pre class="brush: bash; title: ; notranslate">
# Check to see if the network is up and we can reach the external world.
# If not, retry once a minute.
if ! ping -c1 -w1 4.2.2.5 ; then
    logger Ping failed
    cru a update-adblock &quot;* * * * * $0&quot;
    exit
fi
</pre>
<p>у меня при включении всех чорных списков вызывала запуск нескольких копий скрипта.</p>
<p>И самое главное возникло желание упростить расширение и настройку списка чорных листов.</p>
<p>Самое обидное что <a href="http://wiki.bash-hackers.org/syntax/arrays" target="_blank">multi-dimensional associative arrays in bash…</a></p>
<blockquote><p>are <strong>not implemented</strong></p></blockquote>
<p>Круто! И конечно можно сделать велосипед на базе простого массива… Что я и пытался делать пока случайно не наткнулся на запись <a href="http://moblog.bradleyit.com/2010/02/multi-dimensional-associative-arrays-in.html" target="_blank">Multi-Dimensional Associative Arrays in BASH &#8230; Sort of&#8230;</a> <a href="http://www.blogger.com/profile/03687609274394927057" target="_blank">thx Ben</a></p>
<p>И это все изменило. Итак имеем два файла url_list.csv список зеркал плюс флаг необходимости {качать}/{не качать} и собственно adblock.sh сам скрипт</p>
<pre class="brush: bash; title: ; notranslate">
# cat url_list.csv 
1,http://www.mvps.org/winhelp2002/hosts.txt
1,http://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&amp;showintro=0&amp;mimetype=plaintext
0,http://www.it-mate.co.uk/downloads/hosts.txt
1,http://securemecca.com/Downloads/hosts.txt
0,http://hostsfile.mine.nu/Hosts
</pre>
<p>Формат элементарный &#8211; обычный текстовой файл, первый параметр {0/1} флаг необходимости закачки далее через запятую url на список.</p>
<p>И собственно сам скрипт adblock.sh</p>
<pre class="brush: bash; title: ; notranslate">
# cat adblock.sh 
#!/bin/sh

# Местоположение временного файла
eval GENFILE=&quot;/tmp/hosts&quot;
# redirect ip, (0.0.0.0)
eval REDIRECTIP=&quot;192.168.1.2&quot;

# Путь к этому скрипту
# Add the directory where pixelserv is installed, if it's not in /opt/bin.
eval PATH=/tmp/bin:/opt/usr/bin:/opt/etc/init.d:$PATH

# This effectuates the &quot;method 1b&quot; startup.
if [ -f $(dirname $0)/pixelserv_install ] ; then
    killall pixelserv
    mkdir -p /tmp/bin
    cp -p $0 /tmp/bin
    cp -p $(dirname $0)/pixelserv_install /tmp/bin/pixelserv
    rm -f /tmp/bin/pixelserv_install
    /tmp/bin/$(basename $0)
    exit
fi

if ping -c 1 yahoo.com ; then
eval GOTSOURCE=&quot;0&quot;
# Очищаем файл для чёрного списка
echo &quot;&quot; &gt; $GENFILE
# Скачиваем списки и сохраняем всё в один файл
OLD_IFS=$IFS
IFS=','
while read switch url # these are the various items in the url_list.csv
do
    if [ $switch -eq 1 ]; then
        # download list
        if wget ${url} -O - &gt;&gt; $GENFILE ; then
            logger &quot;AdBlock Downloading ${url} ...&quot; 0
            GOTSOURCE=&quot;1&quot;
        else
            logger AdBlock Failed ${url}
        fi
    fi
done &lt; url_list.csv
IFS=$OLD_IFS

if [ &quot;$GOTSOURCE&quot; = &quot;1&quot; ]; then
    logger AdBlock Got Source Files
    #Выбираем только нужные строки из чёрного списка
    sed -i -e '/^[0-9A-Za-z]/!d' $GENFILE
    sed -i -e '/%/d' $GENFILE
    sed -i -e 's/[[:cntrl:][:blank:]]//g' $GENFILE
    sed -i -e 's/^[ \t]*//;s/[ \t]*$//' $GENFILE

    # dnsmasq, чистим, оптимизируем
    sed -i -e 's/[[:space:]]*\[.*$//'  $GENFILE
    sed -i -e 's/[[:space:]]*\].*$//'  $GENFILE
    sed -i -e '/[[:space:]]*#.*$/ s/[[:space:]]*#.*$//'  $GENFILE
    sed -i -e '/^$/d' $GENFILE
    sed -i -e '/127.0.0.1/ s/127.0.0.1//'  $GENFILE
    sed -i -e '/^www[0-9]./ s/^www[0-9].//'  $GENFILE
    sed -i -e '/^www./ s/^www.//' $GENFILE
    # удаляем дубликаты
    cat $GENFILE | sort -u &gt; $GENFILE.new
    mv $GENFILE.new $GENFILE

    # remove/whitelist websites
    # removes 3 websites (aa.com, bb.com, cc.com) 
    # remove the # and edit the website urls.
    #sed -i -e '/aa.com/d' $GENFILE
    #sed -i -e '/bb.com/d' $GENFILE
    #sed -i -e '/cc.com/d' $GENFILE
    sed -i -e '/google.com/d' $GENFILE
    sed -i -e '/wordpress.com/d' $GENFILE
    # Allow googleadservices--it handles google's sponsored links.
    sed -i -e '/googleadservices/d' $GENFILE
    # Allow this -- whatever it is.
    #sed -i -e '/tradedoubler.com/d' $GENFILE
    # Add any additional URLs that you want to block.
    #echo &quot;zmedia.com&quot; &gt;$GENFILE


    ## including important informations
    echo  &quot;##&quot; &gt;&gt;/tmp/adblock.conf
    echo  &quot;##-----------------------------------------&quot; &gt;&gt;/tmp/adblock.conf
    echo  &quot;##    Generated by AdBlock script v1.0     &quot; &gt;&gt;/tmp/adblock.conf
    echo  &quot;##    Grabbed on $(date)&quot; &gt;&gt;/tmp/adblock.conf
    echo  &quot;##    &quot;`cat $GENFILE | wc -l`&quot; blocked hosts&quot; &gt;&gt; /tmp/adblock.conf
    echo  &quot;##-----------------------------------------&quot; &gt;&gt;/tmp/adblock.conf
    echo  &quot;##&quot; &gt;&gt;/tmp/adblock.conf
    awk 'ORS=(NR%5)?&quot;/&quot;:&quot;/\n&quot; ; BEGIN{end = 0} ; END{printf (NR%5)?&quot;\n&quot;:&quot;&quot;}' $GENFILE | sed &quot;s_^_address=/_ ; s/$/$REDIRECTIP/&quot;&gt;&gt;/tmp/adblock.conf
    rm -rf $GENFILE 

    # Replace the adblock stuff in the &quot;custom&quot; file.
    sed  -i &quot;/^#BEGIN--adblock-custom/,/^#END--adblock-custom/d&quot; /etc/dnsmasq.custom
    echo &quot;#BEGIN--adblock-custom
conf-file=/etc/adblock.conf
#END--adblock-custom&quot; &gt;/etc/dnsmasq.custom

    mv /tmp/adblock.conf /etc/adblock.conf

    # Start up pixelserv.
    # Start pixelserv if it isn't already running.  Exit if it didn't start.
    # The pixelserv &quot;-w&quot; option replaces the ads with a 30x30 warning logo,
    # for testing.
    #  Without &quot;-w&quot; it replaces ads with a 1x1 empty pixel.
    ifconfig br0:0 $REDIRECTIP
    #if [ &quot;$(pidof pixelserv)x&quot; = &quot;x&quot; ] ; then pixelserv -w $REDIRECTIP ; sleep 1 ; fi
    if [ &quot;$(pidof pixelserv)x&quot; = &quot;x&quot; ] ; then pixelserv $REDIRECTIP; sleep 1 ; fi
    if [ &quot;$(pidof pixelserv)x&quot; = &quot;x&quot; ] ; then
    # Pixelserv didn't start.
    # Delete the old adblock stuff.
	sed  -i &quot;/^#BEGIN--adblock-custom/,/^#END--adblock-custom/d&quot; /etc/dnsmasq.custom
	echo &quot;&quot; &gt;&gt;/etc/adblock.conf
	exit
    fi
fi
fi
logger &quot;Updated adblock blacklist sites.&quot;

service dnsmasq restart
# Due to a timing bug, dnsmasq sometimes fails to restart on Tomato versions
# before v49(?). The next few lines are a work-around for that.
n=10 ; while [ $n -ge 0 ] ; do
    sleep 1
    if nslookup nyse.com ; then
	exit
    fi
    service dnsmasq restart
    let n=n-1
done
</pre>
<p><a href="http://www.multics.minidns.net/tomato/pixelserv-27/" target="_blank">pixelserv я брал отсюда</a> установка и использование аналогично <a href="http://tomatousb.org/forum/t-262221/adblock-setup-install-package" target="_blank">Adblock setup &amp; install package</a><br />
Сам скрипт adblock.sh в настройках tomato у меня живет в script_wanup=/opt/usr/bin/adblock.sh</p>
<p>В предложенном выше варианте растройки url_list.csv у меня блокирует:</p>
<blockquote><p>##<br />
##&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
##    Generated by AdBlock script v1.0<br />
##    Grabbed on Tue Oct 11 13:10:55 DST 2011<br />
##    15935 blocked hosts<br />
##&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
##</p></blockquote>
<p>Если задействовать еще и <a href="http://www.it-mate.co.uk/downloads/hosts.txt" rel="nofollow">http://www.it-mate.co.uk/downloads/hosts.txt</a> (вариант для параноиков) то выходит как то так</p>
<blockquote><p>##<br />
##&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
##    Generated by AdBlock script v1.0<br />
##    Grabbed on Tue Oct 11 12:54:40 DST 2011<br />
##    181159 blocked hosts<br />
##&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
##
</p></blockquote>
<p>Однако во втором случае блокируется чуть ли не весь интернет. <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  И не говорите что я вас не предупреждал.</p>
<p>Используйте только на свой страх и риск.<br />
Изменения/Улучшения/Доработка/Патчи только приветствуются.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sudormrf.wordpress.com/794/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sudormrf.wordpress.com/794/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sudormrf.wordpress.com&#038;blog=6835767&#038;post=794&#038;subd=sudormrf&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sudormrf.wordpress.com/2011/10/15/adblock-with-dnsmasq-and-pixelserv-on-tomato/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/738e6186190c149c83fb3273f9621069?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">init_6</media:title>
		</media:content>
	</item>
		<item>
		<title>nvidia vs nouveau, xcfgmaker</title>
		<link>http://sudormrf.wordpress.com/2011/10/09/nvidia-vs-nouveau-xcfgmaker/</link>
		<comments>http://sudormrf.wordpress.com/2011/10/09/nvidia-vs-nouveau-xcfgmaker/#comments</comments>
		<pubDate>Sun, 09 Oct 2011 12:23:04 +0000</pubDate>
		<dc:creator>init_6</dc:creator>
				<category><![CDATA[gentoo]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://sudormrf.wordpress.com/?p=789</guid>
		<description><![CDATA[В продолжение темы Create a boot option for easy nvidia or nouveau display driver switching Делаем раз Отлично т.е. вместо /etc/init.d/xcfgmaker можно использовать /etc/init.d/xdm-setup Этим и займемся. Как результат больше нет лишних велосипедов.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sudormrf.wordpress.com&#038;blog=6835767&#038;post=789&#038;subd=sudormrf&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>В продолжение темы <a href="http://sudormrf.wordpress.com/2011/02/14/create-a-boot-option-for-easy-nvidia-or-nouveau-display-driver-switching/" title="Create a boot option for easy nvidia or nouveau display driver switching" target="_blank">Create a boot option for easy nvidia or nouveau display driver switching</a><br />
<span id="more-789"></span><br />
Делаем раз</p>
<pre class="brush: bash; title: ; notranslate">

# grep -1 depend /etc/init.d/xdm

depend() {
	need localmount xdm-setup

</pre>
<p>Отлично т.е. вместо /etc/init.d/xcfgmaker можно использовать /etc/init.d/xdm-setup<br />
Этим и займемся.</p>
<pre class="brush: bash; title: ; notranslate">

cat /etc/init.d/xdm-setup 
#!/sbin/runscript
# Copyright 1999-2009 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/x11-base/xorg-server/files/xdm-setup.initd-1,v 1.1 2010/04/13 10:07:39 scarabeus Exp $

depend() {
	need localmount
}

start() {
	if get_bootparam &quot;nox&quot; ; then
		touch /etc/.noxdm
	fi
	if get_bootparam &quot;nouveau.blacklist=true&quot; ; then
		cp /etc/X11/video/20-nvidia.conf.nvidia /etc/X11/xorg.conf.d/20-nvidia.conf &amp;&gt;/dev/null &amp;
		eselect opengl set nvidia &amp;&gt;/dev/null &amp;
		eselect xvmc set nvidia &amp;&gt;/dev/null &amp; # grep touch /usr/share/eselect/modules/xvmc.eselect
	fi
	if get_bootparam &quot;nvidia.blacklist=true&quot; ; then
		cp /etc/X11/video/20-nvidia.conf.nouveau /etc/X11/xorg.conf.d/20-nvidia.conf &amp;&gt;/dev/null &amp;
		eselect opengl set xorg-x11 &amp;&gt;/dev/null &amp;
		eselect xvmc set xorg-x11 &amp;&gt;/dev/null &amp; # grep touch /usr/share/eselect/modules/xvmc.eselect
	fi
}

</pre>
<p>Как результат больше нет лишних велосипедов.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sudormrf.wordpress.com/789/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sudormrf.wordpress.com/789/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sudormrf.wordpress.com&#038;blog=6835767&#038;post=789&#038;subd=sudormrf&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sudormrf.wordpress.com/2011/10/09/nvidia-vs-nouveau-xcfgmaker/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/738e6186190c149c83fb3273f9621069?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">init_6</media:title>
		</media:content>
	</item>
	</channel>
</rss>
