Bordel v AMD ovladacoch - chipset vs. VGA



Zdravicko,vedel by mi niekto prosim vysvetlit, co je toto za bordel ? :) Mam nainstalovany VGA-AMD driver 18.8.2 (aktualny stiahnuty z internetu pre moju R9 270X) no ked sa pokusim nainstalovat drivery pre chipset-AMD (aktualne a z internetu), hlasa mi to tam, ze aktualne pouzivam verziu 18.8.2, a k nainstalovaniu som si zvolil 18.10.0830 lenze problemom je, ze on blbec vnima verziu AMD-VGA driveru akoby to bola verzia AMD-chipset driveru. Co s tym ?Je to snad ten sami rovnaky driver Crimson, jak pre chipset, tak pre VGA ? Ale potom by jeho velkost dosahovala cez 300MB a nie len 65MB, ze ? Viem, ze je v ovladacoch spusta zbytocneho balastu a ze samotne drivery dosahuju sotva zopar MB kapacity, ale aj tak sa mi to zda byt malo, kedze sa jedna (asi ?!) o ovladace chipset + VGA v jednom.Myslim sa ? Alebo ako to je prosim vas ? Dakujem za vysvetlenie, ak by niekto vedel jak to vlastne v skutocnosti funguje.
Balík ovladačů od AMD je stejný pro VGA i chipset AMD.Instalátor si ze staženého giga-balíku vybere jen těch pár MB, které jsou třeba pro daný hw.
<p>nezapomeňte, že zatímco monitor může být větší než 800x600, okno prohlížeče nemusí být na celou obrazovku.</p><p>například běžím na monitorech lcd s rozlišením 1600x1200 (stále poměrně velké), ale mé okno prohlížeče je přibližně 1100x1200 (přibližně).</p><p>musíte se tedy podívat na nejběžnější rozlišení <em>prohlížeč</em>, nikoli na nejběžnější rozlišení <em>obrazovka</em>.</p> <p>registry <code>"*</code> a <code>"+</code> jsou pro schránku systému (<code>:help registers</code>). v závislosti na vašem systému mohou dělat různé věci. například v systémech, které nepoužívají x11 jako osx nebo windows, se registr <code>"*</code> používá pro čtení a zápis do systémové schránky. na systémech x11 lze použít oba registry. pro více informací viz <code>:help x11-selection</code>, ale v podstatě <code>"*</code> je analogický s x11 <em>primárním</em> výběrem (který obvykle kopíruje věci, které vyberete myší a pastami pomocí prostřední tlačítko myši) a <code>"+</code> je obdobné jako u x11 <em>clipboard</em> výběr (což je vlastní schránka).</p><p>pokud vše, co šlo přes hlavu, zkuste pomocí <code>"*yy</code> nebo <code>"+yy</code> zkopírovat řádek do schránky systému. za předpokladu, že máte vhodné možnosti kompilace, by měl fungovat jeden nebo druhý. možná budete chtít přeměnit to na něco výhodnější pro vás. například můžete v souboru ~/.vimrc zadat <code>vnoremap &lt;c-c&gt; "*y</code>, abyste mohli vizuálně vybrat a stisknout <kbd>ctrl</kbd>+<kbd>c</kbd> vyskočit do schránky systému.</p><p>mějte na paměti, že kopírování/vkládání ze systémové schránky <strong>nebude fungovat</strong> pokud <code>:echo has('clipboard')</code> vrací 0. v tomto případě není vim zkompilován s funkcí <code>+clipboard</code> a budete muset nainstalovat jinou verzi nebo znovu zkompilovat . některé linuxové distribuce standardně dodávají minimální instalaci vimu, ale obecně, pokud <strong>nainstalujte balíček <code>vim-gtk</code> nebo <code>vim-gtk3</code></strong> můžete získat další funkce.</p><p>můžete se také podívat na volbu <code>'clipboard'</code> popsanou v <code>:help cb</code>. v tomto případě můžete <code>:set clipboard=unnamed</code> nebo <code>:set clipboard=unnamedplus</code> provést všechny operace vyhození/smazání automaticky zkopírovat do systémové schránky. to by mohlo být nepříjemností v některých případech, kdy ukládáte něco jiného do schránky, protože to přepíše.</p><p>chcete-li vložit, můžete použít <code>"+p</code> nebo <code>"*p</code> (opět v závislosti na vašem systému a/nebo požadovaném výběru) nebo je můžete namapovat na něco jiného. typicky je zadávám, ale často se nacházím v režimu vkládání. pokud jste v režimu vkládání, můžete je stále vkládat pomocí správného odsazení pomocí <code>&lt;c-r&gt;&lt;c-p&gt;*</code> nebo <code>&lt;c-r&gt;&lt;c-p&gt;+</code>. viz <code>:help i\_ctrl-r\_ctrl-p</code>.</p><p>za zmínku stojí také možnost <code>paste</code> vim (<code>:help paste</code>). toto vloží vim do speciálního "režimu vkládání", který zakáže několik dalších možností, což vám umožní snadno vložit do vimu pomocí svého terminálového emulátoru nebo známé zkratky pro vložení multiplexeru. jednoduše zadejte <code>:set paste</code>, abyste jej aktivovali, vložte obsah a potom zadejte <code>:set nopaste</code>, abyste jej zakázali. alternativně můžete pomocí volby <code>pastetoggle</code> nastavit kód klíče, který přepíná režim (<code>:help pastetoggle</code>). doporučuji používat registry namísto těchto možností, ale pokud jsou stále příliš děsivé, může to být vhodné řešení, když si vylepšujete své vim chops.</p><p>podrobnější informace naleznete v tématu <code>:help clipboard</code>.</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> 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. Nepřehlédněte kompilátor sám.


Přečtěte si dokumentaci kompilátor a najít všechny varování a chyby může poskytnout, a povolit tolik, kolik mají smysl pro vás.


Také se ujistěte, informujte svého kompilátoru k léčbě varování, jako jsou chyby, takže budete nuceni opravit hned. ( "-Werror" na gcc)


Také: „-Wall“ na gcc není *ani* umožnit všem varováním, nenechte se zmást.


Také také: check out Valgrind - it „automaticky detekovat [S] mnoho správy paměti a threading chyby a profil [s] rámci svých programů v detailu.“ (Zdarma!)


Valgrind není statický checker, ale je to skvělý nástroj! <http://valgrind.org> 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> <h1>řešení ubuntu/linux</h1><h2>1. získejte nejnovější obrázek</h2><p>měli byste to udělat s <a href="https://launchpad.net/ubuntu/+source/testdrive">testdrive</a> <a href="http://apt.ubuntu.com/p/testdrive"><img src="https://hostmar.co/software-small" alt="install testdrive"></a> .</p><p><img src="https://i.stack.imgur.com/rj1n8.png" alt="testdrive"></p><p><strong> poznámka. </strong> pokud je váš klíč menší než 4,4 gb (pro ubuntu 11.04 (natty narwhal)), musíte <strong> musíte </strong> získat alternativní instalační program. pokud je na disku méně než 4,4 gb volného místa, instalační program desktop odmítne pokračovat.</p><h2>2. naformátujte disk usb.</h2><p>to je důležité, pokud již máte na disku něco, co vypadá jako instalace systému linux, nebo se instalační program z nějakého důvodu nebude chtít dotknout tohoto disku. dříve jsem selhal, protože jsem tento krok neprovedl, takže přeskočte na vlastní nebezpečí! potřebujete klíč o velikosti alespoň 3 gb.</p><p>můžete tak učinit z <em> systému </em> → <em> administrace </em> → <em> nástroj disk </em>. vyberte cílový klíč usb, odpojte všechny oddíly a vyberte <em> formátovat jednotku. </em></p><p><img src="https://i.stack.imgur.com/wnna7.png" alt="disk utility"></p><p>než budete moci formátovat disk, musíte se ujistit, že jste vybrali „don't partition“.</p><p><img src="https://i.stack.imgur.com/gkwf2.png" alt="format drive window."></p><h2>3. spusťte virtuální počítač na klíči usb</h2><p>ujistil jsem se (s <code>file</code>), že můj usb klíč byl v <code>/dev/sdb</code>, pak běžel:</p><pre><code>sudo qemu-system-x86\_64 /dev/sdb -cdrom ~/.cache/testdrive/iso/ubuntu\_natty-desktop-i386.iso </code></pre><p>... chcete-li nainstalovat iso i386 na ploše natty narwhal - název souboru se bude lišit, pokud stáhnete jiný obrázek iso.</p><p>podrobnosti zvoleného virtualizačního řešení se budou lišit, ale jako pevný disk vm budete chtít použít soubor zařízení <em> vašeho klíče usb </em>.</p><p>připojit <code>-boot order=d</code> k příkazu kvm, aby byl spouštěn z obrazu v případě, že se pokusí zavést systém z 'pevného disku' a selže, protože tam nemůže najít operační systém.</p><h2>4. instalujte normálně.</h2><p>v tuto chvíli pracujete na virtuálním počítači, který považuje váš klíč usb za jediný připojený pevný disk. zevnitř okna „qemu“ nainstalujte, jak byste normálně dělali.</p><p>několik poznámek:</p><ul> <li> <p><strong> dělení diskových oddílů </strong> nepoužívejte automatický systém dělení diskových oddílů, protože na vašem usb klíči vytvoří odkládací oddíl. to není dobré, protože přepínání se stává <em> super </em> pomalým (systém s dlouhými sekundami zamrzne) a rychle zabíjí život vašeho disku. jednoduše přidělte jeden oddíl pro <code>/</code>. pokud používáte alternativní instalační program, nezapomeňte nastavit příznak <code>noatime</code>, aby se dále snížilo množství zápisů na disk.</p> </li> <li> <p><strong> aktualizace </strong> přeskočte možnost automatického stahování a instalace aktualizací. není zaručeno, že repozitáře budou v době spuštění instalačního programu v konzistentním stavu. osobně bych raději spravoval upgrady ručně pomocí nástroje, jako je <a href="https://help.ubuntu.com/8.04/serverguide/c/aptitude.html">aptitude</a> (který se ve výchozím nastavení s ubuntu již nedodává).</p> </li> <li> <p><strong> alpha-kvalitní software. </strong> věci jsou trochu zvratné - je to nakonec software v alfa kvalitě. nechal jsem <code>dpkg</code> opouštět s chybovým kódem 1, aniž bych musel chybu zkontrolovat - v důsledku toho však nebyly rozbity žádné balíčky. po nastavení jsem se pokusil virtuální počítač vypnout, ale visel. po restartu se však systém zavedl dobře.</p> </li> </ul><h2>5. restartujte a spusťte do své kopie ubuntu</h2><p>možná bude nutné, abyste si osvojili nastavení systému bios, abyste to mohli provést.</p><hr><p>pěkná (nebo nepříjemná věc na základě vašeho případu použití) o ubuntu na usb je, že až příště obnoví grub, také detekuje a přidá do seznamu jádra a operační systémy na hdd. to by vám mělo umožnit zavedení přímo na váš hdd z grub vašeho usb klíče.</p> že je to ošklivější mi nevadí. Ale že je horší funkčnost, obslužnost, to je k zamyšlení, proč autoři jdou touto cestou.
Na velkém monitoru PC skoro nepoužitelné, takže jediná možnost je si okno prohlížeče zmenšit do středu monitoru. Snad se ozve dost lidí, aby to vrátili zpátky, případně vyřešili svůj záměr jinak než zhoršením obslužnosti pro uživatele PC. Tato otázka již Zdá se, že je třeba řešit [zde](https://stackoverflow.com/questions/1700141/c-strings-library "tady") .


Vlastně jsem napsal poněkud zdlouhavý odpověď (doporučující glib a za zmínku, že Lua od 5.0 MIT, není BSD), ale můj stroj zřítil na půli cesty přes :(