Nabídka

Zobrazit příspěvky

Zde lze prohlédnout všech příspěvky uživatele. Jsou zde vidět pouze příspěvky z oblastí, do kterých máte přístup.

Nabídka Zobrazit příspěvky

Témata - Roman Horník

#1
Abych mohl používat scanner Epson Perfection V19, musím mít nainstalovanej program Image Scan od Epsonu, kterej mi ovšem nevyhovuje, ale bez něj (nebo některýho z dalších dvou balíků) nefunguje v XSane. Protože na něj Epson 2 roky nesáhnul, vyžaduje starší knihovny libboost-filesystem1.67.0, libboost-program-options1.67.0 a libboost-system1.67.0. Potíž je v tom, že v repozitáři je už nemám (mám verze 71 a 74), a tak jsem je musel ručně postahovat. Tomu je ale konec.
Balík jsem rozkuchal a upravil mu řídicí soubory control, postinst a postrm tak, aby v závislostech byly novější knihovny verze 74 a aby program, co vyžaduje knihovny verze 67, dostal tyhle knihovny přes symlinky (po odinstalaci dojde k jejich odstranění), protože i s nima funguje bezvadně. Do binárek zasahováno nebylo.

Takže DEBIAN/control (závislosti):
Depends: libatk1.0-0 (>= 1.12.4), libatkmm-1.6-1v5 (>= 2.24.0), libboost-filesystem1.74.0, libboost-program-options1.74.0, libboost-system1.74.0, libc6 (>= 2.15), libcairo2 (>= 1.2.4), libcairomm-1.0-1v5 (>= 1.12.0), libfontconfig1 (>= 2.12.6), libfreetype6 (>= 2.2.1), libgcc1 (>= 1:3.0), libgdk-pixbuf2.0-0 (>= 2.22.0), libglib2.0-0 (>= 2.16.0), libglibmm-2.4-1v5 (>= 2.54.0), libgraphicsmagick++-q16-12 (>= 1.3.26-5~), libgraphicsmagick-q16-3 (>= 1.3.11), libgtk2.0-0 (>= 2.8.0), libgtkmm-2.4-1v5 (>= 1:2.24.0), libjpeg62-turbo (>= 1.3.1), libltdl7 (>= 2.4.6), libpango-1.0-0 (>= 1.14.0), libpangocairo-1.0-0 (>= 1.14.0), libpangoft2-1.0-0 (>= 1.14.0), libpangomm-1.4-1v5 (>= 2.42.0), libsigc++-2.0-0v5 (>= 2.8.0), libstdc++6 (>= 6), libtiff5 (>= 4.0.3), libudev1 (>= 183), libusb-1.0-0 (>= 2:1.0.22), graphicsmagick

DEBIAN/postinst:
#!/bin/sh
set -e
# Automatically added by dh_installmenu/12.1.1
if [ "$1" = "configure" ] && [ -x "`which update-menus 2>/dev/null`" ]; then
   update-menus
fi
# End automatically added section

LIBBOOST="/usr/lib/x86_64-linux-gnu/libboost"
if [ ! -L "${LIBBOOST}_program_options.so.1.67.0" ]; then
   ln -s ${LIBBOOST}_program_options.so.1.74.0 ${LIBBOOST}_program_options.so.1.67.0
   ln -s ${LIBBOOST}_system.so.1.74.0          ${LIBBOOST}_system.so.1.67.0
   ln -s ${LIBBOOST}_filesystem.so.1.74.0      ${LIBBOOST}_filesystem.so.1.67.0
fi

(česky: jestli neexistuje symlink /usr/lib/x86_64-linux-gnu/libboost_program_options.so.1.67.0, tzn. jeden z nich, tak je vytvoř)

DEBIAN/postrm:
#!/bin/sh
set -e
# Automatically added by dh_installmenu/12.1.1
if [ -x "`which update-menus 2>/dev/null`" ]; then update-menus ; fi
# End automatically added section

LIBBOOST="/usr/lib/x86_64-linux-gnu/libboost"
if [ -L "${LIBBOOST}_program_options.so.1.67.0" ]
   then rm ${LIBBOOST}_program_options.so.1.67.0 ${LIBBOOST}_system.so.1.67.0 ${LIBBOOST}_filesystem.so.1.67.0
fi

(česky: jestli existuje symlink /usr/lib/x86_64-linux-gnu/libboost_program_options.so.1.67.0, tedy logicky i ostatní, tak ho i zbejvající smaž)

Měl bych správně hlídat všechny knihovny, ale normálně se nemůže stát, že by se měla narušit jejich koexistence/koneexistence.


No a TADY je ke stažení. Stačí rozbalit a v terminálu spustit příkaz install.sh uvnitř archívu, nebo ručně nainstalovat balíky v podsložkách.
#2
Další návůdek na téma zvuk – chvíli nic neposloucháte, pak si pustíte muziku nebo vám přijde nějaký upozornění ohlášený zvukem, a první, co uslyšíte, je nepříjemný lupnutí. Copak, na noteknihách to moc nevadí, ale horší je to u sluchátek nebo výkonných bednách (tím myslím desítky wattů a víc), neboť zdroj lupance jde zcela mimo regulaci hlasitosti, takže reprák může dostat plnou pecku. Za to může úspora energie, kdy se vypíná minimálně koncová část zvukovky - jedná se o úsporu nepatrnou, takže ji můžeme v klidu oželet. Co s ní? Vypnout!

V souboru /etc/pulse/default.pa zakomentujte (#) řádek load-module module-switch-on-port-available...
... a restartujte (pod normálním uživatelem) PulseAudio: systemctl restart --user pulseaudio.

Это всё ;)
#3
Když už jsme si vylepšili kvalitu zvuku, můžeme ji vylepšit ještě víc, a sice grafickým nástrojem PulseEffects.

Je to nástroj, co PulseAudiu vřadí vámi zvolenej filtr, ať už je to ekvalizér, kompresor/expandér, ozvěna, nebo zpoždění, a ty lze kombinovat.
Vy asi budete toužit po ekvalizéru, jímž vykompenzujete nedostatky vašich repráků, třeba že hrajou se silným akcentem kolem středních tónů, takže to zní jak z telefonního sluchátka - tenhle má 30(!) pásem. Hráči stříleček, ale obecně her, kde je potřeba poslouchat tišší tóny, ale přes řvoucí větráky (nebo vůbec okolní hluk) je neslyšíte, jistě oceněj expandér - ten logaritmizuje průběh hlasitosti, jinak řečeno, čím tišší zvuk, tím víc se zesílí, ale to, co je v plný hlasitosti, se nezesílí - známe to z mnoha audionahrávek a reklam, který jsou hlasitý, ale plochý, bez dynamiky. Nicméně kdo chce slyšet kroky nepřítele, tomu se to bude hodit. Taky tam je zdůraznění hloubek AKA bassboost.
Samotnej program toho moc neumí, akorát má pěknej spektrák nahoře, kterej se dá nastavit. Aby se dala využít většina filtrů (některý jsou zabudovaný), je potřeba nainstalovat pluginy, jako například Linux Studio Plugins, Calf Studio Gears, libebur128, ZamAudio a podobně. Až na RNNoise (odstranění šumu) máme všechno k dispozici v repozitáři.

1) Instalace PulseEffects se spáchá následovně:
# apt install pulseeffects

2) Teď pluginy. Jsou univerzální a využívá je poměrně dost zvukových programů, jako třeba Audacity. Protože nejsou nejmenší, asi bude vhodnější si program nejdřív projít a doinstalovat si jen to, co je potřeba.
# apt install calf-plugins libebur128-1 lsp-plugins bs2b-ladspa zam-plugins rubberband-ladspa

Akorát nemůžu najít 'rnnoise' na odstranění šumu, ale myslím, že nebude potřeba (nebo jestli budete ze zvuku kuchat vzorek šumu a ten do toho cpát...).

Většina filtrů funguje v reálným čase, respektive se zpožděním pár jednotek až desítek ms, ovšem u některých, konkrétně třeba u změny vejšky tónu, vzniká pro ně nutná prodleva, a sice asi půl vteřiny, takže některý filtry pro živý audio nelze aplikovat.

P. S.: Kdo umí anglicky a v programu zmíněný termíny chápe, tak ať si přepne program na angličtinu, protože českej překlad není zrovna ideální.
#4
Nevím proč, ale jako výchozí výstupní kvalitu používá PulseAudio (PA) Stařičkou a dávno překonanou CD kvalitu (44.1kHz @ 16 bitů), která na světě existuje od roku 1982, a samozřejmě na ni za tu dobu z důvodu kompatibility nikdo nehrabal. To máme vlastně to samý s SMSkama, i když už asi nikdo mobil z 90. let nepoužívá - stále jsou (jako zpráva) složeny z až 140 bajtů textu (7b kódování, proto 160 znaků). Proto se taky jedná o jeden z vůbec nejdražších datových přenosů (při koruně pade za SMS stojí megabajt 11235Kč).
Ale zpátky k PA a jeho CD kvalitě - drtivá většina zvukovek vyrobených po roce 2000 umí vzorkovací frekvenci 48kHz a kolikrát 44.1kHz jim není nativní (dochází k převzorkování a aplikaci antialiasingovýho filtru, tj. dolní propusti, čímž trpěj vyšší frekvence útlumem). A za další, mimo pár výjimek, jako je přenos zvuku přes Bluetooth, dokážou zvukovky vyšší rozlišení (projevuje se na čistotě nižších tónů), jak 16 bitů, tj. 20, 24 i 32. Jestli tedy v případě, že neposloucháte CD, jeho rip nebo cokoliv v CD kvalitě nebo nižší, toužíte po jasnějším zvuku, decentní úpravou konfiguráku PA získáte kvalitnější zvuk velice snadno a rychle.


1) Zjistíme si něco o zvukovce a jejích možnostech

$ cat /proc/asound/card?/codec#0 | grep "Codec\|Control:\|rates\|bits"
Tím si z docela rozsáhlýho výstupu vykucháme kodek zvukovky (podle toho ji můžeme identifikovat, jestliže jich máme víc), vstupy/výstupy (jejich hodnoty se můžou lišit), seznam dostupných vzorkovaček a bitovou hloubku, neboli rozlišení/dynamickej rozsah (třeba 16 bitů má mezi maximální zápornou a kladnou amplitudou 65536 schodů, 24 bitů už 16777216, tj. jsou 256x jemnější).

Vyleze nám něco takovýho (výstup není dokonalej, ale vyznat se v něm dá):
Codec: Realtek ALC662 rev1
    rates [0x160]: 44100 48000 96000
    bits [0xe]: 16 20 24
  Control: name="Headphone Playback Volume", index=1, device=0
    rates [0x160]: 44100 48000 96000
    bits [0xe]: 16 20 24
  Control: name="Speaker+LO Playback Volume", index=0, device=0
    rates [0x160]: 44100 48000 96000
    bits [0xe]: 16 20 24
  Control: name="Headphone Playback Volume", index=0, device=0
    rates [0x160]: 44100 48000 96000
    bits [0xe]: 16 20 24
    rates [0x160]: 44100 48000 96000
    bits [0xe]: 16 20 24
  Control: name="Capture Volume", index=0, device=0
  Control: name="Capture Switch", index=0, device=0
    rates [0x160]: 44100 48000 96000
    bits [0x6]: 16 20
    rates [0x160]: 44100 48000 96000
    bits [0x6]: 16 20
  Control: name="Mic Playback Volume", index=0, device=0
  Control: name="Mic Playback Switch", index=0, device=0
  Control: name="Internal Mic Playback Volume", index=0, device=0
  Control: name="Internal Mic Playback Switch", index=0, device=0
  Control: name="Headphone Playback Switch", index=1, device=0
  Control: name="Speaker Playback Switch", index=0, device=0
  Control: name="Internal Mic Boost Volume", index=0, device=0
  Control: name="Mic Boost Volume", index=0, device=0
  Control: name="Line Out Playback Switch", index=0, device=0
  Control: name="Headphone Playback Switch", index=0, device=0
Codec: Nvidia GPU 42 HDMI/DP
    rates [0x0]:
    bits [0x0]:
    rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000
    bits [0xe]: 16 20 24
    rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000
    bits [0xe]: 16 20 24
    rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000
    bits [0xe]: 16 20 24
    rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000
    bits [0xe]: 16 20 24


Trochu jsem zklamanej, že moje zvukovka umí jen 96kHz a 24 bitů, starší uměla 192kHz a 32 bitů, ALE furt stokrát lepší jak CD kvalita. Líp je na tom HDMI, ale 192kHz chci na vstup (ne výstup), jinak rozdíl mezi 96 a 192kHz není u hudby znát.


2) Konfigurace

Takže jsme snad našli svou zvukovku a její možnosti. Jestli umí víc jak 44k1@16b, jako root si otevřete v texťáku konfigurák /etc/pulse/daemon.conf:
$ sudo nano /etc/pulse/daemon.conf
Tam si povšimněte, že je všechno zakomentovaný (# a ;). Jako základ si odkomentujeme a změníme následující položky:
default-sample-format = s24le #s16le, s24le, float32le; pravděpodobně všichni budete mít little-endian (le) stroj; big-endian má "be"
default-sample-rate = 96000 #Frekvence v Hz, použijte minimálně 48000, maximálně to, co dá, ale nad 96kHz to nemá význam
alternate-sample-rate = 88200 #Alternativní vzorkovačka. Použijte 88200


Pro ještě o něco lepší kvalitu si můžeme změnit metodu převzorkování:
resample-method = soxr-vhq #Tohle je nejkvalitnější, ale nejvíc zatěžuje CPU. Alternativně lze použít speex-float-n, kde n je číslo mezi 1-6 (slabej HW) a 9 (nejvyšší kvalita týhle metody)

No a to je všechno. Po pravdě nevím, kdy by se změny mohly projevit, jestli po uložení, nebo restartu PA/systému, ale rozdíl je fakt znát, což ostatně potvrdil i dědek Trkola na svý letitý aparatuře, přestože se mu tuze nechtělo. Holt tady je vidět, kdo má o elektrotechnice znalosti a kdo ne ;D

P. S.: To, že nastavíte 96kHz neznamená, že můžete přehrávat/zaznamenávat frekvenci až 96kHz, ale "jen" maximálně 48kHz, za to poděkujte pánům Nyquistovi, Shannonovi a Kotělnikovi.
Vlna tónu o frekvenci 48kHz bude sestávat pouze ze dvou hodnot, prakticky se bude jednat o obdélník, 24kHz bude mít 4 hodnoty, 12kHz (to už uslyšíte) osm, ale je to víc, než u 44k1, kdy bude mít v průměru pouze 1.8 hodnoty, takže pokřivenej obdélník, čili jde především o potlačení zkreslení vyšších tónů a jejich věrnější reprodukci, umožňuje-li to vstup.
Jo a když nastavíte vyšší frekvenci, než kterou zvládne hardware, tak se nic zásadního nestane, jen PA bude převzorkovávat dvakrát (jednou na vaši frekvenci a podruhý na nejvyšší frekvenci zvukovky) a bude o to víc zaměstnávat CPU - a zbytečně.

P. P. S.: Zrovna jsem prováděl měření. Vstupem byl sinusovej signál od 1Hz po 48kHz, vzorkovačka 96kHz, výstup 44k1, 48k a 96k ze zvukovky.
Verdikt: u 44k1 dochází k útlumu od 20kHz, u 48k cca od 22.5kHz, u 96k to bylo 45kHz.
#5
Máte-li potřebu měřit na počítači aktuální okolní teplotu, ať už jen pro zábavu, bádání, nebo pro nějakou automatizaci, nabízím návod na velice primitivní řešení. Využívá kombinace integrovanýho obvodu DS18B20 a sériovýho převodníku USB-TTL.

Co potřebujeme nutně?
* Počítač s Debianem a funkčním USB
* Převodník USB-TTL
* Snímač DS18B20
* Pájku a trochu cínu, ideálně olovnatýho
* Program DigiTemp (v repu)

Co se ještě může hodit?
* Trojlinka (stačí tenká, nestíněná; nebo dvojlinka pro případ externího napájení snímačů)
* Odpor 4k7 (4.7kΩ), stačí maličkej 125mW - pro případ použití více snímačů
* Stabilizovanej 5V zdroj pro případ externího napájení (např. nabíječka mobilů)

Snímač DS18B20
DS18B20 je integrovanej obvod, vlastně takovej mikropočítač (SIMka je mimochodem taky primitivní počítač), co vypadá jak tranzistor s pouzdrem TO-92 (černej váleček cca o Ø5mm s "uříznutou" ploškou na boku). Má totiž jen 3 vývody. Při pohledu na jeho předek (plošku s potiskem, s nožičkama dolu) jsou to zleva: 1) společná zem, 2) data I/O, 3) napájení +3.0 až +5.5V proti zemi.
Dá se koupit kolem 50kč/ks, prodává se i ve výhodnější zapouzdřený verzi s káblíkem, kde vývod 1 (zem) je černej, vývod 2 (data) žlutej a vývod 3 (napájení) černej.
Komunikuje na protokolu 1-wire v polovičním duplexu (jako vysílačka - buď přijímá, nebo vysílá, ale ne oboje naráz), jde jich řadit víc za sebe (paralelně - vývod 1 na vývod 1, vývod 2 na vývod 2, vývod 3 na vývod 3), a aby se daly dostat data z konkrétního senzoru, je potřeba oslovit je jejich unikátním 16bitovým sériovým číslem (osloví se, ten pošle data, až pak se může oslovit další - nelze přijímat data více senzorů naráz).
DS18B20 poskytuje náměry 4 přesností, 9-12 bitů, čím větší přesnost, tím dýl trvá náměr, a to až 1000ms (1s), my budeme používat přesnost nejvyšší, s rozlišením 1/16°C (0.0625°C), protože...
... protože těžko seženeme zaručeně originální snímače výrobce Dallas/Maxim, ale čínský pajcy. Proto jsem záměrně nezmiňoval parazitní napájení za použití pouze dvou drátů, protože u čínských padělků funguje buď špatně (špatně měří), nebo nefunguje vůbec. Taky u nich sem tam vázne komunikace, respektive občas jsou tady problémy s kontrolním součtem CRC, pak by tady byl taky limit měření do +85°C. Každopádně už z toho důvodu, že si nejspíš koupíte padělek (kterej ale na 3 drátech měřit umí), je třeba s jeho nedostatkama počítat.
Taky je dobrý počítat s faktem, že se měřením čip přirozeně trochu ohřívá, čím častější měření je, tím je ohřev markantnější. Jsou to sice desetiny °C, ale i to se počítá. Zvláště u nezapouzdřený TO-92 verze je tady velká náchylnost na proudění vzduchu - to se umí relativně ošklivě promítnout na náměru, proto je dobrý vetknout ho například do 5mm díry v kousku silnější kovový trubičky, ideálně, když se před světem úplně schová. To platí i u měření teploty těles, kdy se sice ploška dotejká tělesa, ale "prdel" má ve vzduchu, takže měříme něco mezi. Nakonec se pro přesnější měření hodí několik po sobě jdoucích náměrů zprůměrovat - přece jen je na snímači něco málo šumu, tak ať nemáme křivky záznamu moc kostrbatý.

Jak propojit s počítačem?
Za pár korun se dá pořídit například převodník USB-TTL, například s čipem PL2303 - tady za 29kč (taky tam maj zbytek potřebných věcí, včetně už zmíněných padělků). Ovladač nepotřebujeme, už je v jádře a jmenuje se pl2303. Připojením okamžitě vytvoříme zařízení /dev/ttyUSB0, se kterým budeme komunikovat. Problém s oprávněním se dá vyřešit podle tohohle návodu.

Jak získat data?
Program, kterej umí s 1-wire komunikovat, se jmenuje DigiTemp, my ho samozřejmě máme v repu, takže si ho nainstalujeme:
sudo apt install digitemp

Jak sdrátovat?
Takhle vypadá ono slavný zapojení:


Na převodníku si krajního pinu (+3.3V) nevšímáme, zapojíme 2. vývod převodníku na 3. vývod snímače, 3. a 4. vývod příjmu (RxD) a odesílání (TxD) dat vodivě spojíme a připojíme k prostřednímu vývodu, nakonec připojíme poslední vývod převodníku s prvním snímače. To je všechno.
V případě, kdyby to zlobilo, mezi 2. a 3./4. vývod převodníku dáme odpor 4k7.
Další "nabalování" snímačů se děje jejich prostým paralelním zapojením.

V případě externího napájení vypadá zapojení takhle:


I tam je možnost paralelního řazení snímačů. Nic na tom není, akorát - bacha na polaritu, zkrat a elektrostatický výboje, před zapojením do USB si to ještě pořádně prohlídněte. Některý USB totiž nemaj ochranu proti zkratu, a pochybuju, že převodník za 29kč na tom bude líp.

DigiTemp
Jestliže jste něco neudělali blbě a zajistili jste si správný oprávnění, po spuštění digitemp_DS9097 -w nám vyjede:
$ digitemp_DS9097 -w
DigiTemp v3.7.2 Copyright 1996-2018 by Brian C. Lane
GNU General Public License v2.0 - http://www.digitemp.com
Turning off all DS2409 Couplers
..
Devices on the Main LAN
287ACE09381901A1 : DS18B20 Temperature Sensor
2807146538190112 : DS18B20 Temperature Sensor


Tady vidíte 2 snímače, jejich sériový čísla a popis. Jedná se o padělky, sériový číslo originálu má vypadat takhle: 28xxxxxxxx0000xx
Ale to neva, měří to skoro stejně přesně. Jak?
$ digitemp_DS9097 -a
DigiTemp v3.7.2 Copyright 1996-2018 by Brian C. Lane
GNU General Public License v2.0 - http://www.digitemp.com
20.4375
20.3125


Snímače jsou hned u sebe, je tam vidět drobná odchylka, ale za ty prachy?
DS9097 je původní převodník na RS232. Blbě se shání a je nesmyslně drahej - ten se dá učunit pomocí 2 tranzistorů a pár odporů kolem, ale je to zbytečný, převodník na USB ho plně nahrazuje.

Zbytek, včetně formátování výstupu a výběru snímače - viz man digitemp

P. S.: Příští tejden zkusím připojit snímač DHT22, kterej má vedle teploměru i vlhkoměr. Prej by to mělo fungovat.
#6
Jestliže máte USB zařízení, kde je potřeba specifický oprávnění (v mým případě převodníky USB-TTL), třeba že s ním chcete obousměrně komunikovat jako standardní uživatel, ale systém jej nastaví podle svýho tak, jak zrovna nepotřebujete, máte dvě možnosti:
1) po každým připojení změnit oprávnění ručně chmodem jako root,
2) vytvořit si pravidlo v udev.

První možnost je opruz zvláště tehdy, jestliže se například zařízení vinou vyklochtanýho USB občas odpojí. Druhá možnost funguje automaticky.

1) Nejdřív si zjistíme USBID zařízení:
$ lsusb
Bus 002 Device 014: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Bus 002 Device 009: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 002 Device 008: ID 05e3:0752 Genesys Logic, Inc.
Bus 002 Device 007: ID 05e3:0618 Genesys Logic, Inc.
Bus 002 Device 006: ID 0458:6002 KYE Systems Corp. (Mouse Systems)
Bus 002 Device 005: ID 04b8:013c Seiko Epson Corp.
Bus 002 Device 013: ID 1a86:7523 QinHeng Electronics CH340 serial converter
Bus 002 Device 003: ID 058f:6362 Alcor Micro Corp. Flash Card Reader/Writer
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 004: ID 04b8:0e03 Seiko Epson Corp. Thermal Receipt Printer [TM-T20]
Bus 003 Device 003: ID 1bcf:0005 Sunplus Innovation Technology Inc. Optical Mouse
Bus 003 Device 002: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


Tady máme 2 zařízení:
Bus 002 Device 014: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port - převodník USB-TTL
Bus 002 Device 013: ID 1a86:7523 QinHeng Electronics CH340 serial converter - převodník USB-RS232
Za ID je samotný USBID sestávající ze dvou hexadecimálních čísel, první je ID výrobce, druhý je ID výrobku samotnýho.

2) Vytvoření pravidla:
1) v /etc/udev/rules.d vytvoříme soubor, třeba s názvem 47-usbser.rules - číslo asi nebude kritický, název taky ne, nevím, jestli je udevem potřeba přípona .rules, ale když už je to u ostatních souborů pravidel, tak to tak necháme.
2) Do něj nasypeme:
ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", SUBSYSTEMS=="usb", ACTION=="add", MODE="0666", GROUP="plugdev"
idVendor je ID výrobce (067b:2303), idProduct ID výrobku (067b:2303), MODE samotný oprávnění v osmičkový soustavě, GROUP uživatelská skupina oprávněných používat zařízení. Po pravdě nevím, jestli je skupina úplně nutná, nezjišťoval jsem, ale minimálně by se tím dalo zamezit uživatelům mimo skupinu k přístupu k zařízení.
Můžeme tam samozřejmě přidat další řádky se stejnou syntaxí, třeba já mám:
ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", SUBSYSTEMS=="usb", ACTION=="add", MODE="0666", GROUP="plugdev"
ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", SUBSYSTEMS=="usb", ACTION=="add", MODE="0666", GROUP="plugdev"


3) Přidáme uživatele do skupiny (s oprávněním roota):
# adduser <uživatel> plugdev (uživatel bez závorek)

Změna by se měla projevit po opětovným připojení zařízení.
#7
V únoru 2014 jsem k narozkám dostal svůj první SSD disk. Byl to jeden z tehdy nejlevnějších, Adata SP600, s kapacitou 64GB/59.6GiB.
Byl jsem ovšem skeptickej, je nám totiž známo, že se jedná o stejnou technologii uchovávání dat jako na obyčejných paměťovkách nebo flashkách. Flashky mi odešly dvě, paměťovky tři, pokaždý "únavou" paměťových buněk (vydržej například jen 100 přepisů), soubory se při ukládání zmrzačily a nešly číst. No a když se vám tohle stane na dovolený v zahraničí a doma pak zjistíte, že čtvrtinu fotek máte poškozenou, zpravidla nepoužitelnou, rozhodně se vám nechce věřit, že by SSD, byť s inteligentním řadičem, měly bejt spolehlivější. Jo, třeba drahý SSD od Intelu by mohly dobře sloužit několik let, ale konzumní Adata? Vždyť za hodinu ne na disk vykonaj klidně stovky přepisů!
Ale co, rozdělil a naformátoval jsem ho na EXT4 bez optimalizace pro SSD (ani jsem o tom nevěděl), nainstaloval na něj systém (s /home na HDD), kdyby něco, na HDD bylo dost místa pro systém.
Stroj běží prakticky 24/7, alespoň jednou denně aktualizace systému, čas byl skoro plnej, když mi odešel HDD a přetáhnul jsem z něj přeživší data, poměrně často kompilace jádra a vůbec dostával zabrat.
Teď má za sebou bez půldruhýho měsíce 6 let provozu, 959x byl zapnut, krmí ho už třetí základní deska a pátej procesor. A dosud běží bezchybně, stále jako novej, i když fakt dostává zabrat.
Takže kdo váhá nad jeho koupí, nemusí, vyplatí se. Díky němu, i když je zastaralej a relativně k dnešním pomalej, systém bootuje 4s, programy se spouštěj svižně, diskový operace jsou hodně rychlý, je tichej a úspornej.

A co vy? Podělte se o svoje zkušenosti.
#8
O tomto fóru / Nová sada smajlů
05. 04. 2020, 18:38:51
Když už teď můžeme zvětšovat smajly spolu s textem a když už zhruba můžeme hledět na fórum přes mobil, je blbost mít tady smajly v GIFu o rozměrech 15×15px - je rok 2020, ne 2000. Proto jsem se rozhodl pro jinou sadu.
Hledal jsem, hledal, ale většinou se jednalo o ty přeplácané, co při zmenšení na standardní velikost není poznat, co znázorňuje, a proto jsem se po čase hledání rozhodl je vzít ze sady písem Noto (balík fonts-noto-color-emoji). Jsou doostřené a trochu graficky upravené, aby i při zmenšení na 16×16px (i míň) bylo poznat, co znázorňují. A tady jsou:
:) ;) :D ;D >:( :( :o 8) ??? ::) :P :-[ :-X :-\ :-* :'(

0.6em (60%, ~9px): 8)
0.8em (80%, ~12px): 8)
1.0em (100%, ~15px): 8) <<< Standardní velikost
2em (200%, ~30px): 8)
4.2em (420%, ~64px): 8)
#9
Složitá situace pro vývoj. Máme tady zařízení s velkým i malým zobrazovátkem s velkým i malým dpi (jemností zobrazovacích bodů) a máme tady konsorcium W3C, který sice vychrlilo kvantum dýlkových jednotek pro určení rozměrů objektů webový stránky, třeba písma, ale je to těžký, když se například milimetr (centimetr, palec aj.) odvíjí nikoliv od fyzickýho rozlišení displeje, ale od fixního rozlišení 96dpi, takže se takovej centimetr, když si zvolím, na mým monitoru s 94dpi zobrazí jako 1.02cm (skoro přesně), ale na mobilu s rozlišením 400dpi jako 0.24cm. A když někdo má na starým stroji na 19" monitoru rozlišení jen 640×512 (5:4), pak má z centimetru 2.2cm, jinak řečeno, když zvolím nějakou velikost písma, na mobilu a na dalších zařízeních s prťavoučkým pixelem (a ještě k tomu kolikrát nečtvercovým), písmo nebude čitelný, zato na monitorech s VGA rozlišením bude obrovský. Nevím, kde soudruzi z NDR udělali chybu, ale prohlížeče už pěknou řádku let znaj jak rozměry svýho okna i celý obrazovky v pixelech, tak i rozlišení monitoru v DPI, z čehož se daj dopočítat fyzický rozměry v mm/cm/"/....
Nějak jsem ty rozměry v rámci možností nadefinoval, aby se mi zobrazovala stránka dobře jak na 24" FHD monitoru, tak i na 5" shitphonu s HD rozlišením (720×1280, cca 280dpi), ale víc zobrazovátek, teda ještě krom televize, nemám. Ale vy jo. A proto vás prosím, nějak se mi k tomu vyjádřete a ideálně k tomu napište, o jaký zařízení, jeho výrobce a model se jedná (nebo parametry, pokud znáte), a jak to na nich funguje.
Jde mi o to, aby se vám s fórem pracovalo co nejlíp.
Ď
#10
O tomto fóru / Fórum dostalo nový kabát
02. 04. 2020, 01:12:47
Po dohodě s Otou jsem se jal učunit novou vizáž fóra, jíž jsem dal název <I/O>.
Ačkoliv jako základ bylo zvoleno téma předchozí, VDW, bylo natolik překopáno, že z původního prakticky nic nezbylo, navíc je o dvě třetiny menší, s optimalizovaným kódem a používá obrázky jen v nejnutnějším případě (ikonky a smajly, na pozadí a v logu je SVG).
Nově koketuje s technologiemi HTML5 a CSS3, ale také s responzivitou (de facto extra zobrazení pro mobily a vůbec zařízení s malým displejem s vysokou hustotou pixelů na jednotku plochy - aktivuje se od rozlišení alespoň 120dpi; kdyby měl někdo lepší nápad, sem s ním), která byla napsána od píky s důrazem na dobrou čitelnost a použitelnost i u malých displejů a velkých palců.
<I/O> je stále ve fázi vývoje, desktopová verze se pouze dolaďuje, mobilní chce dotáhnout pořádněji.
Doufám, že se vám <I/O> líbí.
#11
Při správě softwaru, tj. instalaci, odinstalaci nebo aktualizaci, se sem tam stane, že u balíku jsou pozměněny závislosti, kdy přestane záviset na jednom a naopak si vyžádá balík jiný. Ideálně by se přebytečný balík měl odstranit, nebo alespoň nabídnout k odstranění, avšak málokdy tomu tak je. A tak si po čase udržujeme a aktualizujeme balíky, zpravidla knihovny, co jsou nám i softwaru naprosto k ničemu.
Nejde tady o místo, taková knihovna má obvykle pár desítek kilobajtů, avšak mívá svoje závislosti a kvůli nim nainstalované další a další  zbytečné balíky. Mimo to, občas se stane, že některý z těchto balíků blokuje aktualizaci jiného, který s ním nemá nic společného, neboť může mít v závislostech některý z pro systém důležitý balík (třeba libc6) konkrétní verze.
Když jsou závislosti balíku určeny řádně, správce balíků nám přebývající nabídne k odstranění, jenže, protože je realita jiná, je vhodné se jich zbavovat alespoň ručně. Pro tenhle účel se dobře hodil program gtkorphan, avšak jeho vývoj byl dávno ukončen a žádnou jeho adekvátní grafickou náhradu jsem nenašel.
Nicméně pro textové prostředí existuje gtkorphan. Jeho úkolem ovšem není přebytečné balíky odstranit, ale pouze zobrazit, proto jeho výstupem, seznamem zbytečných balíků, musíme po přezkoumání seznamu z deborphanu nakrmit apt/apt-get/aptitude - tak třeba apt (syntaxe je u jiných stejná):

# apt purge `deborphan` # obrácený apostrof se zadává pomocí [R-Alt]+[H]. Místo `deborphan` můžete použít $(deborphan)

Protože deborphan nezkoumá závislosti přebytečných balíků, po dalším spuštění příkazu se mohou objevovat další, proto v případě potřeby opakujte. Rovněž vám může apt{-get|itude} nabídnout další balíky k odstranění, tyto se odstraní příkazem:

# apt autoremove

Tohle mi párkrát pomohlo, když zbytečný balík blokoval aktualizaci několika jiných z důvodu výše uvedeného.
#12
Už chvíli mi nefungoval GIMP, házel při načítání pluginů segfault a ukončil se. Zkoušel jsem vedle verze 2.10.14-2+b1 starší verzi 2.10.12-1, ale némlich to samý. Pro mě je to klíčovej program, dělám grafiku, proto jsem se se současnou situací nespokojil.
Na tohle téma existuje spousta chybových hlášení, většinou je za řešení považováno získat nejnovější zdrojáky z GITu a zkompilovat je. Do toho se mi nechtělo, muselo by se stáhnout mnoho balíčků s hlavičkama, což by zabordelilo akorát systém, kde mám jen a pouze to, co potřebuju nebo z nějakýho důvodu nemůžu odstranit.
Našel jsem alternativní řešení, jednoduchý a rychlý, akorát zmizí jeden málo používanej plugin na ohnutí rohu obrázku. Ten plugin se jmenuje pagecurl a nachází se ve složce /usr/lib/gimp/2.0/plug-ins/pagecurl/, kterou stačí buď přemístit jinam, nebo rovnou odstranit. GIMP pak funguje normálně.
Jakmile přijde aktualizace, složka s opraveným pluginem by se měla doplnit.

P. S.: Tak je to ještě složitější, GIMP zbouraj i balíky gimp-gap a gimp-plugin-registry. Bez nich funguje, gimp-gmic a gimp-python jsou v pořádku. Vypadá to tedy, že je chyba přímo v GIMPu.
#13
Před pár lety se provalily bezpečnostní trhliny procesorů nejen výrobce Intel, jež byly nazvány Spectre a Meltdown. Od tý doby jich bylo nalezeno víc - viz lscpu. Opraveny byly softwarově obvykle vyřazením některých funkcí CPU, čímžto se v některých případech poměrně citelně snížil jejich výpočetní výkon.
Protože existuje prakticky nulový riziko napadení vašeho stroje a zneužití těchto trhlin, zpravidla způsobujících pouhý zatuhnutí systému, můžeme si je v klidu znovu povolit. Nárůst výkonu je v některých případech až kolem 10-20%. Jak na to?
Stačí spustit systém s jaderným parametrem mitigations=off, například přidáním tohoto parametru na řádek GRUB_CMDLINE_LINUX a následným spuštěním update-grub - změny by se měly projevit po restartu. Systém bude i nadále zcela stabilní, avšak o něco živější.
#14
Volná diskuze / Iceweasel > Firefox?
11. 03. 2016, 20:00:34
Nevím, jestli jste to vy, co máte Sida, zaznamenali, ale balík iceweasel (vč. jazykových balíků) od verze 45.0 se stal metabalíkem instalujícím balík firefox-esr, a dále je k dispozici i "normální" balík firefox a k nim jazykový balíky ve formátu firefox-l10n-<něco>, respektive firefox-esr-l10n-<něco>.

Tak se mi zdá, že Iceweasel, kosmetická upravenina Firefoxu, už nebude potřeba.
#15
Volná diskuze / Zemřel Ian Murdock
31. 12. 2015, 06:59:36
Už jsem se o tom vypsal tady. Pro mně to je hodně špatná zpráva, Debian, dílo, co on započal, mám moc rád. A nečekal jsem, že tak inteligentní člověk udělá takovou, s prominutím, píčovinu.
#16
Zní to jako šílenej paradox, vždyť swap je přece nástavbou RAM, když její kapacita už došla, když už se do ní nic nevejde. Ale jde to, jde to vskutku velice dobře.
Píšu tady o zRAM, principem činnosti je komprese stránek uložených v RAM kompresním algoritmem, jinými slovy, do RAM se vejde víc dat, než za normálních okolností dokáže pojmout. Na Debíkovi je tato vlastnost k dispozici od jádra verze 3.2, využívá se u operačních systémů Android.

Výhody:
* Mnohem vyšší rychlost a plynulost chodu swapujícího systému v porovnání se swapováním na disk, mnohem nižší, prakticky zanedbatelné latence (nikde neběhá rameno s hlavičkami a nehledá stopu na disku)
* Nechrochtá jako swapující disk, ba naopak, takovýto způsob swapování je absolutně neslyšný
* Je schopen využít všechna jádra CPU, čím víc jader, tím vyšší výkon
* Šetří disky. DRAM se neopotřebí (přestože stále pracuje na plné obrátky), zatímco mechanismus HDD dostává dost na prdel a flash paměť SSD má omezený počet zápisů a přepisů na buňku (tam je čtení, zápis a navíc i přepis; čtení nic nepoškozuje)
* Do RAM lze vměstnat i víc jak dvojnásobek její kapacity

Nevýhody:
* Kdo chce uspávat na disk, stejně logicky swapovací oddíl na disku potřebuje; jak se RAM vypne šťáva, není schopna uchovat data (kromě logických nul)
* K zpomalení běhu systému a aplikací stejně dochází, komprese i dekomprese zabírají všechen dostupný procesorový čas. Jen to trvá mnohem kratší dobu a systém je během swapování mnohem použitelnější

Následující postup byl převzat a počeštěn z wiki Debianu a je mnou velmi dobře odzkoušený:



1) Vytvořte soubor /etc/init.d/zram a nasypejte do něj (přepsáno, už nepotřebujete Perl, stačí jen BASH a jeho vestavěné funkce):

#!/bin/bash
### BEGIN INIT INFO
# Provides:          zram
# Required-Start:    $local_fs
# Required-Stop:     $local_fs
# Default-Start:     S 1 2
# Default-Stop:      0 6
# Short-Description: Use compressed RAM as in-memory swap
# Description:       Use compressed RAM as in-memory swap
### END INIT INFO

FRAC=111
MMRY=`grep MemTotal: /proc/meminfo | awk '{print $2}'`
CPUS=`grep -c processor /proc/cpuinfo`
SIZE=$((MMRY*1024*FRAC/100/CPUS))


START() {
param=`modinfo zram | grep num_devices | cut -f2 -d: | tr -d ' '`
for n in `seq $CPUS`; do
  I=$((n-1))
  modprobe zram $param=$CPUS
  echo $SIZE > /sys/block/zram$I/disksize
  mkswap /dev/zram$I
  swapon /dev/zram$I -p 10
done &
wait
}

STOP() {
for n in `seq $CPUS`; do
  I=$((n-1))
  swapoff /dev/zram$I; echo "Odstraněn disk $n/$CPUS"
done &
wait
modprobe -r zram
}

RELOAD() {
systemctl daemon-reload
}

case "$1" in
"start") START;;
"stop") STOP;;
"restart") STOP; START;;
"reload") STOP; RELOAD; START;;
*) echo "Použití: `basename $0` (start | stop | restart | reload)" & exit 1;;
esac


2) V terminálu mu (jako root) nastavte spustitelnost:
chmod +x /etc/init.d/zram

3) Systému řekněte, aby se skript automaticky spouštěl při jeho startu (zase jako root):
insserv zram

4) A rovnou si to můžete spustit (opět spusťte jako root):
service zram start
nebo
/etc/init.d/zram start

Nakonec pár poznámek:
1) Na řádku 12 v tom skriptu je proměnná FRAC - je to hodnota v procentech, a tou se nastavuje, jak velkou část z RAM použít pro zRAM swap použijte číslo v intervalu {1..100, jde to kolikrát i víc, mám 111%, musíte odzkoušet}
2) Pro swapování má zRAM vyšší prioritu jak normální swap na disku, čili nejdřív se bude při zaplnění RAM plnit zRAM swap, až potom ten na disku
3) Nebojte se, že přijdete o možnost uspávání na disk, ta priorita pro uspávání neplatí, odkládací oddíl na disku je přednější


Nakonec pár měření na mém téměř muzejním stroji:

Konfigurace:
CPU: Intel Pentium Dual-Core E2180 (2 jádra, 2.0GHz, 800MHz FSB), přetaktováno na 2.64GHz, 1.05GHz FSB
Mámoprkno: Aušus P5QPL-AM (G41 + ICH7)
RAM: 2x 1GiB DDR2, 800MHz, přetaktováno na 874MHz
SSD: ADATA SP600, 64GB/59.6GiB (novej)
HDD1: Western Digital WD3200AAKS, 320GB/298GiB (starej)
HDD2: Seagate Barracuda ST380817AS, 80GB/74.5GiB (starší)

Benchmark spáchán programem gnome-disks při odpojených oddílech a za výchozího nastavení benchmarku

      Čtení [MB/s]   Zápis [MB/s]   Přístupová doba [ms]   %zRAM (R+W)   R+W [MB/s]
zRAM    2110.0         2540.0              0.00               100.00       4650.0
SSD      270.0           78.4              0.13                 7.49        348.4
HDD1      94.5           84.7             15.36                 3.85        179.2
HDD2      48.3           46.6             12.75                 2.04         94.9


Tady je vidět, že co do všech parametrů nemá konkurenci ani u SSD.

EDIT: Na svým nynějším stroji (viz podpis) jsem udělal benchmark čtení z zRAM bloku - 11.9GB/s (80x rychlejší jak SSD)

Tak ať vám slouží, fakt to stojí za to! ;)
#17
Zdar,

nemá někdo tucha, jak udělat následující?
Jestliže dojde k rotaci předmětu (nebo kostí) A v ose X, pak chci, aby byl předmět/kost B co do rotace spřaženej, ale aby rotace neprobíhala ve stejný ose, což umím, ale v ose jiný (Y, Z).
Jak na to?
#18
Nedávno se zavedla blbost s podepisováním doplňků, samozřejmě, pokud vývojář zaspí, jeho dílo náhle zablokuje prohlížeč. Mně se to stalo třeba u AdBlock Plusu, blokovači reklam.
Každej problém má svoje řešení, takže i tenhle:

1) V prohlížeči do adresního řádku zadej about:config a přejdi na ni
2) Vyhledej si tam položku xpinstall.signatures.required a dvojklikem změň hodnotu na "false"

Hotovo
#19
Nazdar, už přes měsíc se s prominutím seru s Huginem verze 2015.0.0.cdefc6e53a58, nástrojem na tvorbu panoramatických snímků, kde poslední dobou prolínač enblend verze 4.1.3+dfsg-2 odmítá sloužit.
Načtu si snímky, napíchám do nich kontrolní body, pohraju si s expozicí, paráda. Dám to slepit, přemapovač teď mimochodem umí používat GPU, takže se přemapování výrazně zkrátí bez evidentní ztráty na kvalitě výsledku, a pokud použiju jako prolínač ten zabudovanej, kterej prakticky neprolíná a nechává za sebou ošklivý švy, obrázek je na světě. Ale jak použiju enblend, nehledě na nastavení programu, tak když na něj přijde řada, vyhodí to dialogový okno s chybou, kde je možnost uložení chybový zprávy, a s odkazem, kam můžu bugreport poslat.
Jenže tam nic zajímavýho není, jen průběh (tohle je anglicky; očekával jsem větší výřečnost jak u češtiny, ale je to stejný):
============================================
Stitching panorama...
============================================

Platform: Linux 4.1.0-2-686-pae i686
Version: 2015.0.0.cdefc6e53a58
Working directory: /home/roman/Desktop/YE/00
Output prefix: 20150919_164418 - 20150919_164425

Blender: enblend 4.1.3
ExifTool version: 10.00

Number of active images: 3
Output exposure value: 13.9
Canvas size: 2994x3461
ROI: (232, 52) - (2762, 2679)
FOV: 54x61
Projection: Rectilinear(0)
Using GPU for remapping: true

Panorama Outputs:
* Exposure corrected, low dynamic range

Remapped Images:
* Exposure corrected, low dynamic range

First input image
Number: 0
Filename:
Size: 2560x1920
Projection: Normal (rectilinear)
Response type: custom (EMoR)
HFOV: 47
Exposure value: 12.8


Remapping LDR images...
nona: using graphics card: NVIDIA Corporation GeForce GTX 650/PCIe/SSE2
Multiple images output
loading 20150919_164418.jpg
remapping 20150919_164418.jpg
saving 20150919_164418 - 20150919_1644250000.tif
loading 20150919_164422.jpg
remapping 20150919_164422.jpg
saving 20150919_164418 - 20150919_1644250001.tif
loading 20150919_164425.jpg
remapping 20150919_164425.jpg
saving 20150919_164418 - 20150919_1644250002.tif

Blending images...


Tohle poslat nikam nemůžu, vždyť tam prakticky nic není. Ale má s tím někdo zkušenosti? Nafotil jsem neopakovatelnej okamžik, demolici, ale takhle to nemůžu zveřejnit.
#20
Zrovinka jsem řešil zapeklitej problém s ručně instalovaným balíkem ovladače termotiskárny Epson TM-T20. Samo, že tenhle návod by mohl pomoct vyřešit průsery jinejch balíků, kdy se správa softwaru přes apt-get, Aptitude, Synaptic, nebo něco jinýho stane nepoužitelnou.
Epson poskytuje ovladače přímo na svý stránce, jsou to archivy obsahující krom licenčních keců hlavně DEB a RPM balíky, PPDčka pro CUPS a skriptík, kterej by to všechno měl nainstalovat. Místo Debiana je tam sice Blbuntu, ale to je jedno, instalace možná je.
Aniž bych si uvědomil, že jsem předtím zapomněl nainstalovat CUPS, že ani ten skriptík, ani závislosti balíků se o jeho instalaci nepostaraj, skriptík jsem spustil. Instalace proběhla v pořádku, ovšem zdánlivě. Chvíli po tom jsem zjistil, že mám totálně rozmrdanou správu balíků, že není možný krom aktualizace databáze balíků dělat s balíkama nic, vlastně tak nějak to šlo, ale skončilo to vždycky chybovou hláškou, jako že ten balík má nesplněný závislosti.
A tak si říkám, že prostě ty balíky odinstaluju, nainstaluju CUPS a hned na to ovladač. Přes aptitude ani apt-get to nešlo, ale pomocí přiloženýho skriptíku na odinstalaci to šlo, taky, co jsem koukal, používá dpkg. Ale tím se odinstaloval jeden balík a druhej zůstal, podle aptitude v tuze nekonzistentním stavu. A tak to šlo dokola, žádný mně známý řešení nepomáhalo. Taky tohle se mi stalo snad poprvý za skoro 10 let, co linuxuju. I vzpomněl jsem si na Googla a získal jsem příkaz, kterej to vyřešil, kterej ten balík, se kterým se nedalo hnout, odinstalovat. Jo a používá dpkg.
Jako root spusť:
# dpkg --remove --force-remove-reinstreq název_balíku