Notebook - přepínání externí grafiky



Dobrý den,vlastním notebook s integrovanou a externí grafikou. Mám Windows 8.1. CPU - Intel Core i7 3612 QM 2.10 GHz, integrovaná grafika Intel HD Graphics 4000 a extérní grafika AMD Radeon HD 7730M. Problém spočívá v tom, že externí grafika (po nějaké automatické aktualizaci od Microsoftu) běží permanentně, i když není potřeba. Při tom jsem všem aplikacím přidělil integrovanou grafiku a u daného schématu nastavil - vynucení úsporné grafiky... Ale nepomohlo... Neustále je akční extérní grafika... Vadí mně to kvůli spotřebě a vyšší hlučnosti. Také pokud přímo v grafických vlastností taky nastavím - vynucení úsporné grafiky, tak se neděje nic... Pokud kouknu na teplotu GPU, tak je neustále akční...
cgminer, to zní jak nějaký těžič jednoho z těch bitcoinových nesmyslů. To si Myslím, že není součástí aktualizací od MS.
běžná závada grafiky (integrované) nebo základové desky - oprava dražší než koupě nového ... máte-li v záruce, reklamujte. Nemáte-li, vyjměte si HDD a prodejte na ND. <p><strong> poznámka: </strong> <em>toto bylo testováno na notebooku s grafickou kartou řízenou i915.</em></p><hr><h3>pozadí</h3><p><strong> poznámka: </strong> když je připojena nová obrazovka, do hostitele není odeslána žádná událost, zůstane to pravda i po mé poslední úpravě. jediným způsobem je tedy použít dotazování. snažím se, aby byly co nejefektivnější ...</p><h3>úprava # 3</h3><p>nakonec existuje jedno lepší řešení (prostřednictvím acpi):</p><p>stále neexistuje žádná událost, ale acpi se zdá být efektivnější než <code>xrandr</code> na dotaz. (poznámka: toto <strong> vyžaduje </strong> načtené moduly jádra acpi, ale nevyžaduje oprávnění root.</p><p>moje konečné řešení (pomocí bash):</p><pre><code>isvgaconnected() { local crtstate read -a &lt; /proc/acpi/video/vid/crt0/state crtstate test $(( ( ${crtstate[1]} &gt;&gt;4 ) ${1:+*-1+1} )) -ne 0 } </code></pre><p>nyní test:</p><pre><code>$ if isvgaconnected; then echo yes; else echo no; fi yes </code></pre><p>je zapojen, takže ho nyní odpojím:</p><pre><code>$ if isvgaconnected; then echo yes; else echo no; fi no </code></pre><p><strong> poznámka: </strong> <code>${1:+*-1+1}</code> povolit argument <em>boolean</em>: pokud <em>něco je přítomno</em>, odpověď by byla obrácena: <code>( crtstate &gt;&gt; 4 ) * -1 + 1</code>.</p><p>a závěrečný skript:</p><pre><code>#!/bin/bash export crtprocentry=/proc/acpi/video/vid/crt0/state isvgaconnected() { local crtstate read -a &lt; $crtprocentry crtstate test $(( ( ${crtstate[1]} &gt;&gt;4 ) ${1:+*-1+1} )) -ne 0 } delay=.1 unset switch isvgaconnected || switch=not while :;do while isvgaconnected $switch;do sleep $delay done if [ "$switch" ];then unset switch echo vga is connected # doing something while vga is connected else switch=not echo vga is not connected. # doing something else, maybe. fi done </code></pre><p><strong> upozornění: </strong> <em>lehčí než <code>xrandr</code>, ale ne nevýznamné</em> se zpožděním menším než <em>,02</em> sekund, bash skript půjde na začátek procesu jedlíci zdrojů (<code>top</code>)!</p><p>i když to stojí ~ 0,001 s:</p><pre><code>$ time read -a &lt;/proc/stat crtstat </code></pre><p>vyžaduje to ~ 0,030 s:</p><pre><code>$ read -a &lt; /proc/acpi/video/vid/crt0/state crtstate </code></pre><p>to je velké! takže v závislosti na tom, co potřebujete, lze <code>delay</code> rozumně nastavit mezi <code>0.5</code> a <code>2</code>.</p><h3>úprava # 2</h3><p>nakonec jsem něco našel:</p><p><strong> důležité vyloučení odpovědnosti: </strong> hraní s <code>/proc</code> a <code>/sys</code> záznamy mohou poškodit váš systém !!! takže na produkčních systémech nezkoušejte následující.</p><pre><code>mapfile watchfilelist &lt; &lt;( find /sys /proc -type f 2&gt;/dev/null | grep -i acpi\\\|i91 ) prompt=("/" "|" '\' '-'); l=0 while :; do mapfile watchstat &lt; &lt;( grep -h . ${watchfilelist[@]} 2&gt;/dev/null ) for ((i=0;i&lt;=${#watchstat[@]};i++)); do [ "${watchstat[i]}" == "${oldstat[i]}" ] || echo ${watchstat[i]} done oldstat=("${watchstat[@]}") sleep .5 printf "\r%s\r" ${prompt[l++]} [ $l -eq 4 ]&amp;&amp;l=0 done </code></pre><p>... po očištění nežádoucích záznamů:</p><pre><code>for ((i=0;i&lt;=${#watchfilelist[@]};i++)); do [[ "${watchfilelist[$i]}" =~ /sys/firmware/acpi/interrupts/sci ]] &amp;&amp; unset watchfilelist[$i] &amp;&amp; echo $i done </code></pre><p>to jsem dokázal přečíst:</p><pre><code>/proc/acpi/video/vid/crt0/state:state: 0x1d /proc/acpi/video/vid/crt0/state:state: 0x0d /proc/acpi/video/vid/crt0/state:state: 0x1d </code></pre><p>když připojím, odpojte a znovu zapojte kabel monitoru.</p><p>při dotazu na konfiguraci (spuštění <code>system/preferences/monitor</code> nebo <code>xrandr</code>), grafické karty udělají typ <em>scan</em>, takže běží <code>xrandr -q</code> vám dá informace, ale musíte zjistit stav.</p><p>prohledal jsem všechny protokoly (jádro, démona, x atd.) prohledávajícím <code>/proc</code> &amp; <code>/sys</code> a zjevně se zdá, že neexistuje nic, co by vyhovovalo vaší žádosti.</p><p>zkusil jsem to také:</p><pre><code>export spc50="$(printf "%50s" "")" watch -n1 ' find /proc/acpi/video -type f | xargs grep -h . | sed "s/^\([^:]*):/\1'$spc50'}:/; s/^\(.\{50\}\) *:/\1 /"' </code></pre><p>po tom všem, když spustíte <code>system/preferences/monitor</code> zatímco nebyla připojena žádná nová obrazovka ani odpojena, bude se nástroj zobrazovat jednoduše (normálně). ale pokud jste již dříve připojili nebo odpojili obrazovku, občas spustíte tento nástroj a uvidíte, že na ploše vytvoříte typ <em>reset</em> ​​nebo <em>obnovit</em> ​​(stejný pokud spustíte <code>xrandr</code>).</p><p>zdá se, že to potvrzuje, že tento nástroj požádá o <code>xrandr</code> (nebo pracuje stejným způsobem) pravidelným dotazováním na stav, počínaje okamžikem jeho spuštění.</p><p>můžete vyzkoušet sami:</p><pre><code>$ for ((i=10;i--;)); do xrandr -q | grep ' connected' | wc -l; sleep 1; done 1 1 1 2 2 2 1 1 1 1 </code></pre><p>tím se na 10 sekund zobrazí počet připojených obrazovek (displejů).</p><p>zatímco to běží, připojte a/nebo odpojte obrazovku/monitor a podívejte se, co se děje. takže byste mohli vytvořit malou testovací funkci bash:</p><pre><code>isvgaconnected() { local xrandr=$(xrandr -q) [ "$xrandr" == "${xrandr#*vga1 con}" ] || return 0 return 1 } </code></pre><p>který by byl použitelný jako v:</p><pre><code>$ if isvgaconnected; then echo yes; fi </code></pre><p>ale buďte opatrní, <code>xrandr</code> trvá asi <strong> 0,140 s do 0.200 s </strong>, zatímco na zástrčkách nedojde k žádné změně a do <strong> 0,770 sekund </strong> kdykoli něco bylo připojeno nebo odpojeno těsně před (<strong> poznámka: </strong> zdá se, že to není zdrojový zdroj).</p><h3>úprava # 1</h3><p>abych zajistil, že neučím něco nesprávného, ​​prohledával jsem web a dokumenty, ale nenašel jsem nic o <em>dbus and screens</em>.</p><p>nakonec jsem běžel ve dvou různých oknech <code>dbus-monitor --system</code> (hrál jsem také s možnostmi) a malý skript, který jsem napsal:</p><pre><code>$ for ((i=1000;i--;)); do isvgaconnected &amp;&amp; echo yes || echo no; sleep .5; done </code></pre><p>... a znovu zapojen, než odpojen monitor, mnohokrát. takže teď mohu říci:</p><ul> <li><em>v této konfiguraci <strong> pomocí ovladače i915 </strong> neexistuje jiný způsob, než spustit <code>xrandr -q</code> vědět, zda je monitor připojen nebo ne.</em></li> </ul><p>ale buďte opatrní, protože se nejeví jiné způsoby. například se zdá, že <code>xrandr</code> tyto informace sdílí, takže moje plocha gnome by se automaticky přepnula na <code>xinerama</code> automaticky ... <strong>, když jsem běžel <code>xrandr</code> </strong>.</p><h3>některé dokumenty</h3><ul> <li> <a href="https://wiki.archlinux.org/index.php/xrandr#toggle\_external\_monitor">skript pro přepínání interního/externího displeje pro notebooky</a> </li> <li> <a href="http://www.x.org/docs/intel/hd/ihd\_os\_vol\_3\_part4\_bjs.pdf">®intel hd graphics opensource programmer's reference manual</a> </li> </ul> <p>myslím, že znamenají, že byste měli používat <a href="http://en.wikipedia.org/wiki/smart\_pointer">inteligentní ukazatele</a> místo běžných ukazatelů.</p><blockquote> <p>ve vědě o počítačích je inteligentní ukazatel abstraktní datový typ, který simuluje ukazatel a zároveň poskytuje další funkce, jako je automatický sběr odpadu nebo kontrola mezí. účelem těchto dalších funkcí je omezit chyby způsobené zneužitím ukazatelů při zachování účinnosti. inteligentní ukazatele obvykle sledují objekty, na které ukazují, za účelem správy paměti.</p> <p>zneužití ukazatelů je hlavním zdrojem chyb: konstantní alokace, deallokace a odkazování, které musí být provedeny programem napsaným pomocí ukazatelů, představuje riziko, že dojde k úniku paměti. inteligentní ukazatele se pokoušejí zabránit úniku paměti automatizováním automatického přidělování prostředků: když je ukazatel (nebo poslední v řadě ukazatelů) na objekt zničen, například proto, že je mimo rozsah, je zničen i špičatý objekt.</p> </blockquote><p>v c++ by byl kladen důraz na sběr odpadu a zabránění úniku paměti (abychom jmenovali alespoň dvě). ukazatele jsou základní součástí jazyka, takže jejich použití je do značné míry nemožné, s výjimkou nejvzácnějších programů.</p> <p>terminál gnome podporuje 256 barev, ale neinvertuje jeho podporu. autodetekci vimu můžete potlačit zadáním následujícího:</p><pre class="lang-bsh prettyprint-override"><code>if $colorterm == 'gnome-terminal' set t\_co=256 endif </code></pre><p>ve vašem ~/.vimrc.</p><p><strong>poznámka</strong>: pokud použijete obrazovku gnu=), bude šťastně jíst těchto 256 barevných kódů a převést je na základní 16 barev. lepší oprava je změna term na xterm -256barva před spuštěním obrazovky/vim.</p><p><strong>aktualizace pro rok 2017</strong>: pokud máte dostatečně nedávný vim (7.4.1799 nebo novější) a dostatečně pokročilý emulátor terminálu (xterm nebo gnome-terminál založený na dostatečně nejnovější verzi vte), umět <code>:set termguicolors</code> a terminálový vim použije plné 24bitové barvy, jak je definováno vaším motivem vim, pomocí <code>highlight guifg=#rrggbb guibg=#rrggbb</code>.</p> <p><code>hi</code> je čas strávený přerušením zpracování hardwaru. hardwarová přerušení jsou generována hardwarovými zařízeními (síťové karty, řadič klávesnice, externí časovač, hardwarové senzory, ...), když potřebují něco signalizovat do procesoru (například data dorazila).</p><p>protože k tomu může dojít velmi často a protože v podstatě blokují aktuální cpu, zatímco jsou spuštěny, jsou popisovače hardwarového přerušení jádra psány tak rychle, jak je to jen možné.</p><p>pokud je třeba provést dlouhé nebo složité zpracování, jsou tyto úkoly odloženy pomocí mechanického volání <code>softirqs</code>. jsou naplánovány nezávisle, mohou běžet na jakémkoli cpu, mohou běžet souběžně (nic z toho neplatí pro popisovače přerušení hardwaru).</p><p><sub>část o tvrdých irq blokujících aktuální procesor a část o tom, že <code>softirqs</code> budou moci běžet kdekoli, nejsou úplně správné, mohou existovat omezení a některé tvrdé irq mohou přerušit jiné.</sub></p><p>jako příklad lze uvést, že hardwarové přerušení ze síťové karty „přijatá data“ by mohlo jednoduše uložit informace „karta ethx musí být obsluhována“ a naplánovat <code>softirq</code>. <code>softirq</code> by byla věc, která spouští skutečné směrování paketů.</p><p><code>si</code> představuje čas strávený v těchto <code>softirqs</code>.</p><p>dobré čtení o mechanismu <code>softirq</code> (s trochou historie) je také <a href="https://www.cs.unca.edu/brock/classes/spring2013/csci331/notes/paper-1130.pdf">dělám to později: softirqs, tasklets, dolní poloviny, fronty úkolů, pracovní fronty a časovače</a> = (pdf, 64 kb).</p><p><code>st</code>, „ukrást čas“, je relevantní pouze ve virtualizovaných prostředích. představuje čas, kdy skutečný procesor nebyl k dispozici aktuálnímu virtuálnímu počítači - byl „odcizen“ z toho vm) hypervizorem (buď pro spuštění jiného vm, nebo pro vlastní potřeby).</p><p>dokument <a href="https://www.ibm.com/developerworks/linux/linux390/perf/tuning\_cputimes.html">cpu time accounting</a> od ibm obsahuje více informací o krádeži času a účetnictví cpu ve virtualizovaných prostředích. (zaměřuje se na hardware typu zseries, ale obecná myšlenka je stejná pro většinu platforem.)</p> Záleží hlavně na grafické kartě, tato hra vyžaduje minimálně: Nvidia 7900 256MB alebo ATI X1900 256MB.

Nicméně na grafických kartách v noteboocích nemusí fungovat korektně. Už jste se snažil změnit cílovou CPU `x86`místo `"Any CPU"`v pokročilých možnostech kompilátoru? Vím, že to řeší některé problémy s ostatními `OLEDB`poskytovateli vynucením použití 32-bitové verzi. <p>přesně jako starý indikátor gnome: <a href="http://www.webupd8.org/2011/05/network-memory-and-cpu-usage-indicator.html#more">http://www.webupd8.org/2011/05/network-memory-and-cpu-usage-indicator.html#more</a> </p><p>poznámka z odkazu: <strong> po instalaci spusťte indikace zatížení systému z dash. </strong> na rozdíl od starých appletů gnome takto přidáte tyto indikátory na panel.</p> Je [prettify Automake](http://kim.tensta.gannert.se/projects/pretty-am/) , co chcete?







**Edit** : Jak Automake 1.10b, [tichý pravidla](http://www.gnu.org/software/hello/manual/automake/Options.html) je postavena-in. Není stejný kód nebo styl, ale podobný účinek. pokud se při výpočtu objeví následující chybová hláška: je třeba nainstalovat patch knihoven systému mfc8. link ke stažení: http://www.microsoft.com/downloads/details.aspx?familyid=766a6af7-ec73-40ff-b072-9112bab119c2&displaylang=en