Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Témata - Roman Horník

Stran: 1 [2] 3 4 ... 6
16
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

17
Hardware / Starej disk Seagate ST380215A
« kdy: 26. 06. 2015, 13:44:09 »
Nazdar,

na stařičkým Optiplexu GX-150 provozuju kamerovej server. Kompiloval jsem na něm jádro a že ho hned vyzkouším. Po SSH mu pošlu reboot a čekám, až naskočí, až začne chrlit obrázky. A ono nic. A tak si říkám, že jsem to někde asi zprasil, tak vylezu na půdu, snesu ho dolu, píchnu na monitor a příkazovka GRUBu. Tak jsem nabootoval ručně. A aniž bych spouštěl update-grub (zkoušel jsem ho na starým jádře), po restartu do novýho jádra GRUB naskočil a systém nabootoval. I nedalo mi to a kouknul jsem se na údaje ze SMARTu (jsou to decimální čísla):
Read Error Rate: 120266766
Seek Error Rate: 165861026
Hardware ECC Recovered: 234334756

hodnoty posledních 2 položek rostou

ALE:
Reallocated Sector Count: 0
Spinup Retry Count: 0
High Fly Writes: 0
Current Pending Sector Count: 0
Uncorrectable Sector Count: 0
UDMA CRC Error Rate: 0
Write Error Rate: 0
Data Address Mark Errors: 0


Tak co si o tom mám myslet? :o Je ten disk provozuschopnej, nebo mám očekávat, že za chvíli odejde do kytek? Naběháno má jen 7 a půl měsíce a nerad bych teď sháněl nějakej starej, ale dostačující disk, mám totiž k dispozici akorát starýho 20GB Maxtora, kterej je jednak pomalej a jednak řve jak pila.
Něco podobnýho jsem totiž viděl u disku (od WD), kterej z ničeho nic začal po 3 letech a 1 dnu ztrácet data, až z něj nešlo kvůli poškozenejm oddílům ani číst, ale po ňákejch 2 tejdnech odpočinku, když jsem z něj chtěl vyhrabat data, byl zase zdravej a běží doteď. Jestli to je podobnej případ...
Jak to vidíte vy? Mám tyhle chyby přehlížet, jako že nic nehrozí, nebo mám udělat novou instalaci na cirkulárku Maxtora (respektive sehnat jinej disk)?

18
Programování / C: usleep()
« kdy: 13. 05. 2015, 20:22:15 »
Nazdar,

na starý kolena jsem byl nucen utkat se s Céčkem. Potřeboval jsem upravit jeden program, což se mi kupodivu povedlo, ačkoliv ta úprava není zrovna triviální a Céčku rozumím jak koza petrželi.
Mám potíže s usleep(), totiž očekával jsem od něj nějakou přesnost a ne, že nastavím prodlevu 1000µs (1ms) a ve skutečnosti bude třeba 915µs (měřeno pomocí bashovýho time; zabalil jsem inkriminovanej kód se čtyřma prodlevama 1ms do cyklu for() a nechal pomocí něj vykonat 10000 iterací - namísto 40s to běželo jen 36.6s), při delších prodlevách jsou skutečný prodlevy naopak delší jak nastavený (třeba 50ms > 54ms).
Proto se ptám, nedá se zajistit prodleva přesnější (třeba odvozená z taktu procesoru, FSB aj.)?

19
Volná diskuze / CUDA/OpenCL a Debian
« kdy: 07. 09. 2014, 00:00:46 »
Nazdar, jak jsem tak koukal do repa, co se tejče těchhle fičur (CUDA a OpenCL), repo nabízí prakticky jen desítky knihoven, pak programy Suricata, Pyrit a BOINC. A to je vlastně všechno. No, okrajově to umí použít Blender.
BOINC teda mám, používám ho jako přídavný topení, když mi je zima. Jak se rozjede dvoujádro přetaktovaný na 127% (dál je to kvůli limitu FSB procesoru nepoužitelný) a GPU, teplíčka je z toho dostatek.
A tak co s mejma 384 CUDA jádrama (GTX650)? Viděl bych jejich využití třeba při zpracování grafiky, videa (paralelní zpracování mnoha snímků najednou), ale taky i zvuku (několik kanálů naráz), jádro je může využívat tam, kde není potřeba řešit co nejnižší latence; něco takovýho už bylo, ale je to evidentně mrtvý. V serverech by se taky mohlo najít využití.
Ale proč nic takovýho nenacházím?
Možná se ptám zbytečně, když většina aplikací umí využít jen 1 jádro CPU, například Audacity, kde se jeden a ten samej filtr použije nejdřív na jednu stopu, pak na další, pak na další atd. - zářnej to příklad.

20
Nazdar,

protože v současnosti LAN nepoužívám a jedu na USB, všiml jsem si toho až teď. Při bootu problikne chyba následujícího znění (vygrepováno z dmesg):
Kód: [Vybrat]
[    0.856076] ATL1E 0000:02:00.0 (unregistered net_device): get mac address failed
[    0.856229] ATL1E: probe of 0000:02:00.0 failed with error -5

lspci
02:00.0 Ethernet controller: Qualcomm Atheros AR8121/AR8113/AR8114 Gigabit or Fast Ethernet (rev b0)

uname -r
3.16-rc6-686-pae

Co jsem googlil, tak se to řešilo snad kompilací jadernýho ovladače. Jenže v roce 2010 a nebyl to úplně ten samej problém.
Možná pomůže určit pro síťovku MAC adresu, ale jak? Umím to jen dočasně, ne trvale.

21
Hardware / NV GeForce GTX 650 - tearing
« kdy: 02. 08. 2014, 19:22:02 »
Na Žďár,

snažím se na svý grafárně vyřešit problém s tearingem, a to jak u videí, tak u některejch her, ale zatím se mi moc nedaří. Co jsem koukal na webu, i woknouzáci maj s čipama s Keplerem ten samej problém.
Pár řešení jsem vyzkoušel, např. změnu snímkový frekvence z 75Hz na 60Hz (jiný možnosti monitor nenabízí), {vy|za}pnout vertikální synchronizaci, vypnout kompozici, nic z toho nezabralo.
(Vy)řešil tohle někdo?

22
Hardware / Webkamerka bez obrazu
« kdy: 24. 07. 2014, 02:19:07 »
No nazdar,

pořídil jsem si jen tak na hraní webkamerku Tesco Value VW111 za 69.70kč ;D
No, podle lsusb se hlásí jako Bus 003 Device 003: ID 093a:262a Pixart Imaging, Inc., využívá ovladač gspca_pac7302
Po spuštění třeba VLC, GUVCview apod. se na kamerce rozsvítí LEDka, kamerka nabídne 14 ovládacích prvků, GUVCview reaguje i na tlačítko, JENŽE obraz žádnej (a taky není možný nastavit rozlišení a snímkovou frekvenci).

Po připojení do USB se představí jako (relevantní úryvek z dmesg):
Kód: [Vybrat]
[11023.220072] usb 3-2: new full-speed USB device number 6 using uhci_hcd
[11023.428104] usb 3-2: New USB device found, idVendor=093a, idProduct=262a
[11023.428111] usb 3-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[11023.431131] gspca_main: gspca_pac7302-2.14.0 probing 093a:262a
[11023.436155] input: gspca_pac7302 as /devices/pci0000:00/0000:00:1d.2/usb3/3-2/input/input21

Z v4l2-ctl jsem vytáhnul následující informace:
Kód: [Vybrat]
$ v4l2-ctl -d /dev/video2 --all
libv4l2: error setting pixformat: Device or resource busy
Driver Info (not using libv4l2):
Driver name   : gspca_pac7302
Card type     : USB Camera (093a:262a)
Bus info      : usb-0000:00:1d.2-2
Driver version: 3.14.12
Capabilities  : 0x85000001
Video Capture
Read/Write
Streaming
Device Capabilities
Device Caps   : 0x05000001
Video Capture
Read/Write
Streaming
Priority: 2
Video input : 0 (gspca_pac7302: ok)
Format Video Capture:
Width/Height  : 640/480
Pixel Format  : 'PJPG'    ## Nebo RGB3
Field         : None
Bytes per Line: 640
Size Image    : 115790
Colorspace    : JPEG (JFIF/ITU601)
Streaming Parameters Video Capture:
Frames per second: invalid (0/0)
Read buffers     : 2

User Controls

                     brightness (int)    : min=0 max=32 step=1 default=16 value=16 flags=slider
                       contrast (int)    : min=0 max=255 step=1 default=127 value=127 flags=slider
                     saturation (int)    : min=0 max=255 step=1 default=127 value=127 flags=slider
          whitebalance_software (bool)   : default=1 value=0
                    red_balance (int)    : min=0 max=200 step=1 default=100 value=100 flags=slider
                   blue_balance (int)    : min=0 max=200 step=1 default=100 value=100 flags=slider
                 gamma_software (int)    : min=500 max=3000 step=1 default=1500 value=1500
                       exposure (int)    : min=0 max=1023 step=1 default=66 value=66 flags=inactive
                 gain_automatic (bool)   : default=1 value=1 flags=update
                           gain (int)    : min=0 max=62 step=1 default=15 value=15 flags=inactive
                horizontal_flip (bool)   : default=0 value=0
                  vertical_flip (bool)   : default=0 value=0
      white_balance_temperature (int)    : min=0 max=255 step=1 default=55 value=55
                      sharpness (int)    : min=0 max=15 step=1 default=8 value=8 flags=slider

Tohle dí GUVCview:
Kód: [Vybrat]
$ guvcview
guvcview 1.7.3
file guvcview_video.mkv has extension type 1
file guvcview_image.jpg has extension type 0

** (guvcview:11823): WARNING **: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files
file guvcview_image.jpg has extension type 0
Video file suffix detected: 0
Image file suffix detected: 2
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_route.c:947:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:947:(find_matching_chmap) Found no matching channel map
Cannot connect to server socket err = Adresář nebo soubor neexistuje
Cannot connect to server request channel
jack server is not running or cannot be started
video device: /dev/video2
Unable to find parent usb device.Unable to find parent usb device.Unable to find parent usb device.vid:093a
pid:262a
driver:gspca_pac7302
Init. USB Camera (093a:262a) (location: usb-0000:00:1d.2-2)
{ pixelformat = 'RGB3', description = 'RGB3' }
{ discrete: width = 640, height = 480 }
Time interval between frame:
{ pixelformat = 'BGR3', description = 'BGR3' }
{ discrete: width = 640, height = 480 }
Time interval between frame:
{ pixelformat = 'YU12', description = 'YU12' }
{ discrete: width = 640, height = 480 }
Time interval between frame:
{ pixelformat = 'YV12', description = 'YV12' }
{ discrete: width = 640, height = 480 }
Time interval between frame:
checking muxed H264 format support
device doesn't seem to support uvc H264 (0)
checking format: YV12
fps is set to 1/1
drawing controls

VIDIOC_G_EXT_CTRLS failed
   using VIDIOC_G_CTRL for user class controls
control type: 0x00000006 not supported
fps is set to 1/1

GUVCVIEW Signals:
  SIGUSR1: Video stop/start capture
  SIGUSR2: Image capture
  SIGINT (ctrl+c): Exit
examples:
   kill -s SIGUSR1 'pid'
   killall -s USR2 guvcview

Checking video mode 640x480@32bpp : OK
 Could not grab image (select timeout): Prostředek je dočasně nepřístupný
ioctl (-1069263343) retried 4 times - giving up: Prostředek je dočasně nepřístupný)
VIDIOC_DQBUF - Unable to dequeue buffer : Prostředek je dočasně nepřístupný
Error grabbing image
↑ Tohle se periodicky opakuje ↑

Nemá někdo šajnu, co s tím? Jiná kamerka funguje na všem normálně.

23
Volná diskuze / Konec TrueCrypt?
« kdy: 29. 05. 2014, 12:28:30 »
Viz článek na iDNES.
Musel bych se stát teroristou, abych se k tomu dokázal dostatečně vyjádřit.

24
No nazdar,

mám neblahý tušení, že to nejde, ale musím si to ověřit.
Mám webkamerku, v /dev je to zařízení video0 (někdy video1 a video2, ale většinou video0). Byl bych neskonale šťastnej, kdyby z ní současně mohly číst třeba 2 programy (nebo 2 inštance jednoho programu). Jenže to nejde. Jakmile z ní začnu číst jedním programem, ostatní unisono hlásej, že je zařízení zaneprázdněný, prostě kdo dřív přijde, ten dřív mele. Proto měli v Kocourkově na věži 3 hodiny pod sebou, aby se na ně mohli dívat až 3 lidi současně.
Chápal bych to, kdyby se mělo do zařízení zapisovat, že jo, mohlo by docházet ke kolizím a tak, ale při synchronním čtení se nic takovýho nemůže stát.
Dá se to nějak oblbnout, nebo mý zlý tušení je správný? A proč že to nejde, když by to klidně mohlo jít? To je jako kdyby 2 televize byly píchnutý na jedný anténě a nárok na signál z antény měla jen a pouze ta, která byla zapnutá dřív.

25
Správa aplikací / Chybí vám balík?
« kdy: 27. 04. 2014, 17:54:36 »
Jestliže se stane, že nemůžete najít nějakej balík, co byl třeba v dřívějších vydáních (jako já editor bitmapovýho písma gbdfed a knihovnu libt1-5), můžete si ho najít a stáhnout na pkgs.org.
Pak jen stačí balík nainstalovat klasicky příkazem
dpkg -i balík.deb
nebo, když si někdo netyká s terminálem, pak třeba v grafickým instalátoru gdebi

26
Volná diskuze / Prohlížeč obrázků v terminálu
« kdy: 14. 01. 2014, 23:37:03 »
Terminál, přesněji řečeno emulátor terminálu, jistě všichni znáte. Víte nejspíš, že umí barvy, ale kdo z vás ví, že jich neumí jen 16, ale rovnou 256? Ale přesto, že má "tolik" barev (Xka vám jich nabízej 16777216, z toho 256 odstínů šedi), neumí grafiku, jen text. A když už se naskytne nějakej "prohlížeč obrázků" pro terminál, vypadá to dost blbě, protože se obrázek zobrazuje pomocí ASCII znaků, což sice obrázek připomíná, ale vypadá to zblízka jako písmenková polívka. A nehledě na to, že tohle bylo dělaný jen pro určitej typ písma s určitou velikostí, takže při změně fontu maj znaky jinej jas, než autor prohlížeče požadoval, takže to vypadá ještě hůř, než se čekalo.
Ale my jsme na to šli jinak. Napsal jsem takovou malou demonstraci toho, že i terminál může zobrazovat grafiku docela na úrovni. Je to sice pomalý, černobílý, rozlišení je závislý na velikosti okna terminálu a rozměrech znaku, ale podporuje to spoustu grafickejch formátů, výstup se dá uložit pro pozdější mnohem rychlejší zobrazení, dá se použít pro slideshow a umí to až 153 odstínů šedi. Pro použití je potřeba akorát doinstalovat ImageMagick.

Program se skládá ze 2 částí, z konvertoru a konvertoru-zobrazovače.
Nejdřív se obrázek upraví pomocí ImageMagick na požadovaný rozměry, v případě potřeby se přidaj kvůli centrování okraje a uloží do nekomprimovanýho formátu PGM. To je krásně čitelnej formát pro černobílou bimapovou grafiku, kde každej pixel je reprezentován numerickou hodnotou, tady v intervalu 0-255 (černá-bílá).
Následuje konvertor-zobrazovač, kterej čte data z onoho PGM obrázku, hodnoty decimuje na až 153 úrovní z až 256 úrovní na vstupu, ke každý z nich přidá barvu pomocí escape sekvence, výsledek se pak zobrazí. Terminál umí bezpečně 26 úrovní šedi (+ další 2, který se ovšem zobrazujou v různých terminálech jinak) na popředí i na pozadí, zbytek se míchá rozdílnou barvou popředí i pozadí, za použití trojice zvláštních znaků: ▓ (75%popředí, 25% pozadí), ▒ (50% popředí, 50% pozadí) a ░ (25% popředí, 75% pozadí). Byly nově přidány i 2 dodatkový znaky z Braillova písma pro eliminaci ostrých přechodů.

Takhle to vypadá:

To velký je Xterm, to malý terminál. Kliknutím na obrázek se načte v plný velikosti.

... a tady je kód (aktualizováno):

Kód: [Vybrat]
#!/bin/bash
O="/tmp/tmp.pgm"
R=`tput cols`x`tput lines`

## Jestli to není obrázek, nebo jestli soubor neexistuje, tak se ukonči
if [ ! -f $1 ]
then exit
elif grep -q image <<<`file $1`
then

## Schová kurzor
echo -ne "\e[?25l"

## Pro zrychlení: zmenší/zvětší obrázek podle jeho rozměrů tak, aby se velký obrázky
## zpracovávaly rychlejc, ale aby malý obrázky pokud možno neutrpěly ztrátu detailů
## U je relativní k vejšce znaku, V zase k šířce (v tomhle případě 5×8px), W je filtr.
## Je to narychlo a baj vočko udělaná prasečina, ale kupodivu funguje.
PIX=$((`identify $1 | awk '{print $3}' | sed -e 's/x/*(/g;s/$/\/2\)\/500/g'`))
if [ $PIX -le 10 ]
 then U=640; V=400; W="sincfast"
  elif [ $PIX -le 100 ]
   then U=320; V=200; W="box"
    elif [ $PIX -le 500 ]
     then U=160; V=100; W="box"
      elif [ $PIX -le 1000 ]
       then U=80; V=50; W="box"
        elif [ $PIX -le 5000 ]
         then U=40; V=25; W="box"
          elif [ $PIX -le 10000 ]
           then U=16; V=10; W="box"
            elif [ $PIX -le 20000 ]
             then U=8; V=5; W="box"
              elif [ $PIX -gt 20000 ]
               then U=4; V=2.5; W="box"
fi

## Nastavení správných rozměrů, konverze do PGM
convert \
-comment img2term \
$1 \
-filter $W \
-resize $U%x$V \
-filter Triangle \
-resize $R \
-gamma 2 \
-background black \
-gravity center \
-extent $R \
-depth 8 \
-compress none \
$O

tput cup 0 0

## Načtení dat z PGM obrázku, přeformátování na takovej počet sloupců, jako má terminál,
## decimace barevný palety, aby se 256 odstínů vešlo do 153 odstínů, vykreslení
echo -ne "$(cat $O | tail -n $((`cat $O | wc -l`-4)) | xargs -n `cat $O | sed -n 3p | awk '{print $1}'` | sed -e '
s/$/ /g;
s/255 /\\e[107m /g;
s/254 /\\e[107;38;5;255m⡈/g;
s/25[23] /\\e[107;38;5;255m⡪/g;
s/25[01] /\\e[107;38;5;255m░/g;
s/24[7-9] /\\e[107;38;5;255m▒/g;
s/24[56] /\\e[107;38;5;255m▓/g;
s/24[34] /\\e[97;48;5;255m⡪/g;
s/24[0-2] /\\e[48;5;255m /g;
s/239 /\\e[48;5;255;38;5;254m⡪/g;
s/23[78] /\\e[48;5;255;38;5;254m░/g;
s/23[56] /\\e[48;5;255;38;5;254m▒/g;
s/23[34] /\\e[48;5;255;38;5;254m▓/g;
s/232 /\\e[38;5;255;48;5;254m⡪/g;
s/23[01] /\\e[48;5;254m /g;
s/229 /\\e[48;5;254;38;5;253m⡪/g;
s/22[78] /\\e[48;5;254;38;5;253m░/g;
s/22[56] /\\e[48;5;254;38;5;253m▒/g;
s/22[34] /\\e[48;5;254;38;5;253m▓/g;
s/222 /\\e[38;5;254;48;5;253m⡪/g;
s/22[01] /\\e[48;5;253m /g;
s/219 /\\e[48;5;253;38;5;252m⡪/g;
s/21[78] /\\e[48;5;253;38;5;252m░/g;
s/21[56] /\\e[48;5;253;38;5;252m▒/g;
s/21[34] /\\e[48;5;253;38;5;252m▓/g;
s/212 /\\e[38;5;253;48;5;252m⡪/g;
s/21[01] /\\e[48;5;252m /g;
s/209 /\\e[48;5;252;38;5;251m⡪/g;
s/20[78] /\\e[48;5;252;38;5;251m░/g;
s/20[56] /\\e[48;5;252;38;5;251m▒/g;
s/20[34] /\\e[48;5;252;38;5;251m▓/g;
s/202 /\\e[38;5;252;48;5;251m⡪/g;
s/20[01] /\\e[48;5;251m /g;
s/199 /\\e[48;5;251;38;5;250m⡪/g;
s/19[78] /\\e[48;5;251;38;5;250m░/g;
s/19[56] /\\e[48;5;251;38;5;250m▒/g;
s/19[34] /\\e[48;5;251;38;5;250m▓/g;
s/192 /\\e[38;5;251;48;5;250m⡪/g;
s/19[01] /\\e[48;5;250m /g;
s/189 /\\e[48;5;250;38;5;249m⡪/g;
s/18[78] /\\e[48;5;250;38;5;249m░/g;
s/18[56] /\\e[48;5;250;38;5;249m▒/g;
s/18[34] /\\e[48;5;250;38;5;249m▓/g;
s/182 /\\e[38;5;250;48;5;249m⡪/g;
s/18[01] /\\e[48;5;249m /g;
s/179 /\\e[48;5;249;38;5;248m⡪/g;
s/17[78] /\\e[48;5;249;38;5;248m░/g;
s/17[56] /\\e[48;5;249;38;5;248m▒/g;
s/17[34] /\\e[48;5;249;38;5;248m▓/g;
s/172 /\\e[38;5;249;48;5;248m⡪/g;
s/17[01] /\\e[48;5;248m /g;
s/169 /\\e[48;5;248;38;5;247m⡪/g;
s/16[78] /\\e[48;5;248;38;5;247m░/g;
s/16[56] /\\e[48;5;248;38;5;247m▒/g;
s/16[34] /\\e[48;5;248;38;5;247m▓/g;
s/162 /\\e[38;5;248;48;5;247m⡪/g;
s/16[01] /\\e[48;5;247m /g;
s/159 /\\e[48;5;247;38;5;246m⡪/g;
s/15[78] /\\e[48;5;247;38;5;246m░/g;
s/15[56] /\\e[48;5;247;38;5;246m▒/g;
s/15[34] /\\e[48;5;247;38;5;246m▓/g;
s/152 /\\e[38;5;247;48;5;246m⡪/g;
s/15[01] /\\e[48;5;246m /g;
s/149 /\\e[48;5;246;38;5;245m⡪/g;
s/14[78] /\\e[48;5;246;38;5;245m░/g;
s/14[56] /\\e[48;5;246;38;5;245m▒/g;
s/14[34] /\\e[48;5;246;38;5;245m▓/g;
s/142 /\\e[38;5;246;48;5;245m⡪/g;
s/14[01] /\\e[48;5;245m /g;
s/139 /\\e[48;5;245;38;5;244m⡪/g;
s/13[78] /\\e[48;5;245;38;5;244m░/g;
s/13[56] /\\e[48;5;245;38;5;244m▒/g;
s/13[34] /\\e[48;5;245;38;5;244m▓/g;
s/132 /\\e[38;5;245;48;5;244m⡪/g;
s/13[01] /\\e[48;5;244m /g;
s/129 /\\e[48;5;244;38;5;243m⡪/g;
s/12[78] /\\e[48;5;244;38;5;243m░/g;
s/12[56] /\\e[48;5;244;38;5;243m▒/g;
s/12[34] /\\e[48;5;244;38;5;243m▓/g;
s/122 /\\e[38;5;244;48;5;243m⡪/g;
s/12[01] /\\e[48;5;243m /g;
s/119 /\\e[48;5;243;38;5;242m⡪/g;
s/11[78] /\\e[48;5;243;38;5;242m░/g;
s/11[56] /\\e[48;5;243;38;5;242m▒/g;
s/11[34] /\\e[48;5;243;38;5;242m▓/g;
s/112 /\\e[38;5;243;48;5;242m⡪/g;
s/11[01] /\\e[48;5;242m /g;
s/109 /\\e[48;5;242;38;5;241m⡪/g;
s/10[78] /\\e[48;5;242;38;5;241m░/g;
s/10[56] /\\e[48;5;242;38;5;241m▒/g;
s/10[34] /\\e[48;5;242;38;5;241m▓/g;
s/102 /\\e[38;5;242;48;5;241m⡪/g;
s/10[01] /\\e[48;5;241m /g;
s/99 /\\e[48;5;241;38;5;240m⡪/g;
s/9[78] /\\e[48;5;241;38;5;240m░/g;
s/9[56] /\\e[48;5;241;38;5;240m▒/g;
s/9[34] /\\e[48;5;241;38;5;240m▓/g;
s/92 /\\e[38;5;241;48;5;240m⡪/g;
s/9[01] /\\e[48;5;240m /g;
s/89 /\\e[48;5;240;38;5;239m⡪/g;
s/8[78] /\\e[48;5;240;38;5;239m░/g;
s/8[56] /\\e[48;5;240;38;5;239m▒/g;
s/8[34] /\\e[48;5;240;38;5;239m▓/g;
s/82 /\\e[38;5;240;48;5;239m⡪/g;
s/8[01] /\\e[48;5;239m /g;
s/79 /\\e[48;5;239;38;5;238m⡪/g;
s/7[78] /\\e[48;5;239;38;5;238m░/g;
s/7[56] /\\e[48;5;239;38;5;238m▒/g;
s/7[34] /\\e[48;5;239;38;5;238m▓/g;
s/72 /\\e[38;5;239;48;5;238m⡪/g;
s/7[01] /\\e[48;5;238m /g;
s/69 /\\e[48;5;238;38;5;237m⡪/g;
s/6[78] /\\e[48;5;238;38;5;237m░/g;
s/6[56] /\\e[48;5;238;38;5;237m▒/g;
s/6[34] /\\e[48;5;238;38;5;237m▓/g;
s/62 /\\e[38;5;238;48;5;237m⡪/g;
s/6[01] /\\e[48;5;237m /g;
s/59 /\\e[48;5;237;38;5;236m⡪/g;
s/5[78] /\\e[48;5;237;38;5;236m░/g;
s/5[56] /\\e[48;5;237;38;5;236m▒/g;
s/5[34] /\\e[48;5;237;38;5;236m▓/g;
s/52 /\\e[38;5;237;48;5;236m⡪/g;
s/5[01] /\\e[48;5;236m /g;
s/49 /\\e[48;5;236;38;5;235m⡪/g;
s/4[78] /\\e[48;5;236;38;5;235m░/g;
s/4[56] /\\e[48;5;236;38;5;235m▒/g;
s/4[34] /\\e[48;5;236;38;5;235m▓/g;
s/42 /\\e[38;5;236;48;5;235m⡪/g;
s/4[0-1] /\\e[48;5;235m /g;
s/39 /\\e[48;5;235;38;5;234m⡪/g;
s/3[78] /\\e[48;5;235;38;5;234m░/g;
s/3[56] /\\e[48;5;235;38;5;234m▒/g;
s/3[34] /\\e[48;5;235;38;5;234m▓/g;
s/32 /\\e[38;5;235;48;5;234m⡪/g;
s/3[01] /\\e[48;5;234m /g;
s/29 /\\e[48;5;234;38;5;233m⡪/g;
s/2[78] /\\e[48;5;234;38;5;233m░/g;
s/2[56] /\\e[48;5;234;38;5;233m▒/g;
s/2[34] /\\e[48;5;234;38;5;233m▓/g;
s/22 /\\e[38;5;234;48;5;233m⡪/g;
s/2[01] /\\e[48;5;233m /g;
s/19 /\\e[48;5;233;38;5;232m⡪/g;
s/1[78] /\\e[48;5;233;38;5;232m░/g;
s/1[56] /\\e[48;5;233;38;5;232m▒/g;
s/1[34] /\\e[48;5;233;38;5;232m▓/g;
s/12 /\\e[38;5;233;48;5;232m⡪/g;
s/1[01] /\\e[48;5;232m /g;
s/9 /\\e[48;5;232;38;5;0m⡪/g;
s/[78] /\\e[48;5;232;30m░/g;
s/[56] /\\e[48;5;232;30m▒/g;
s/[34] /\\e[48;5;232;30m▓/g;
s/2 /\\e[38;5;232;40m⡪/g;
s/1 /\\e[38;5;232;40m⡈/g;
s/0 /\\e[40m /g')\e[00m"
tput cup `tput lines` 0

## Informace o obrázku vlevo dole
echo -ne "\e[38;5;228;48;5;22m `identify $1|awk '{print $1, "\e[38;5;22;48;5;228m", $3, "\b,", $7}'` \e[00m"

tput cup `tput lines` `tput cols`
echo -ne "\e[?12l\e[?25h"
else exit
fi
tput cup 0 0

Uložte to do souboru třeba blablabla.sh, nastavte mu spustitelnej příznak (chmod +x soubor) a spusťte /cesta/k/blablabla.sh obrázek.png

Pro spuštění slideshow:
cd /cesta/ke/složce_obrázků/
for X in `ls .`; do /cesta/k/blablabla.sh $X; sleep 5; done


U pomalejších počítačů se může sleep 5; vypustit, ta pětka jinak znamená čekat 5s


P. S.:
*Nefunguje v konzoli. Ta většinou neumí ani použitý escape sekvence, natož 256 barev.
*Lepší použít jako terminál Xterm- má rychlejší vykreslování a dá se dát do plnýho fullscreenu, aniž by tam vadilo menu
*Výstup se dá přesměrovat do souboru, kterej  se dá potom zobrazit třeba pomocí cat. Např. blablabla.sh obrázek.jpg > obrázek.txt, pro zobrazení pak cat obrázek.txt. Bacha ale na velikost okna!

27
Hardware / [Vyřešeno] BCM43142 @ Wheezy
« kdy: 22. 06. 2013, 17:03:05 »
Na Žďár,

potřeboval bych píchnout s rozchozením týhle WiFinky, vůbec se mi to totiž nedaří. Žádnej návod pro Debian snad neexistuje, zato pro Bububuntu jich je mraky, z nichž jsem sice z nouze pár zkoušel, ale neúspěšně.

Jinak se jedná o stroj Lenovo B590, lspci je tady:
$ lspci
00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09)
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
00:14.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB xHCI Host Controller (rev 04)
00:16.0 Communication controller: Intel Corporation 7 Series/C210 Series Chipset Family MEI Controller #1 (rev 04)
00:1a.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (rev 04)
00:1b.0 Audio device: Intel Corporation 7 Series/C210 Series Chipset Family High Definition Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 1 (rev c4)
00:1c.1 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 2 (rev c4)
00:1c.3 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 4 (rev c4)
00:1d.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation 7 Series Chipset Family LPC Controller (rev 04)
00:1f.2 SATA controller: Intel Corporation 7 Series Chipset Family 6-port SATA Controller [AHCI mode] (rev 04)
00:1f.3 SMBus: Intel Corporation 7 Series/C210 Series Chipset Family SMBus Controller (rev 04)
02:00.0 Network controller: Broadcom Corporation BCM43142 802.11b/g/n (rev 01)
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168 PCI Express Gigabit Ethernet controller (rev 07)

28
Správa, údržba a nastavení systému / Jak na senzory?
« kdy: 25. 03. 2013, 16:14:10 »
Jestliže potřebujete vědět například teplotu CPU, někdy GPU, čipsetu, otáčky větráků, napětí zdroje, ať už jen ze zvědavosti, z identifikace či prevence poruch (nežádoucí hodnoty napětí díky odcházejícímu zdroji, přehřívání způsobené vadným či zaneseným větrákem, nebo chladičem, průduchy apod.), nebo proto, že chcete mít svůj hardware plně pod kontrolou, jistě se vám bude hodit tento jednoduchý návod, který je vhodný i pro začínající, kteří se nebojí příkazové řádky (opravdu není čeho se bát).

Výstupy z oněch senzorů pak dokáže využívat nejen sensors, umí je využít i některé aplety mnoha desktopových prostředí, stejně tak si s nimi rozumí například i Conky. A není problém si takovou aplikaci potom napsat (třeba i s grafem), když už nám lm-sensors hodnoty strčí až pod nos.
Bohužel, zatímco na plnohodnotných počítačích, tedy těch stolních, obvykle nalezneme senzorů fůru, na laptopech, tabletech a podobných zmenšeninách jich bývá pomálu, není vzácností, aby tam nebyly žádné.
Ale nebudeme špekulovat, jdeme si to zkusit:

## Je-li potřeba, přihlásíme se v terminálu/konzoli jako kořen (root)
su -

## Nainstalujeme lm-sensors
aptitude install lm-sensors

## Vyhledáme senzory pomocí lm-sensors, automaticky odsouhlasíme všechny otázky, které nám položí
## (podívat se po tomhle? Podívat se po tamtom? Je to bezpečné, ušetří se tím klábosnice i čas)

yes | sensors-detect

## Zavedeme nalezené moduly, jsou vypsány v /etc/modules
service kmod start
## NEBO, pokud nám onen příkaz nefunguje
/etc/init.d/module-init-tools start

## Koukneme, co nám senzory říkají (není potřeba spouštět jako superuživatel)
sensors


Mně z toho vyleze:
Kód: [Vybrat]
root@DebianSid:~# sensors
coretemp-isa-0000
Adapter: ISA adapter
Core 0:       +44.0°C  (high = +86.0°C, crit = +100.0°C)
Core 1:       +40.0°C  (high = +86.0°C, crit = +100.0°C)

w83627ehf-isa-0290
Adapter: ISA adapter
Vcore:        +1.26 V  (min =  +0.00 V, max =  +1.74 V)
in1:          +1.62 V  (min =  +1.94 V, max =  +0.46 V)  ALARM
AVCC:         +3.33 V  (min =  +2.98 V, max =  +3.63 V)
+3.3V:        +3.38 V  (min =  +2.98 V, max =  +3.63 V)
in4:          +1.90 V  (min =  +1.53 V, max =  +2.01 V)
in5:          +0.02 V  (min =  +1.02 V, max =  +2.04 V)  ALARM
in6:          +0.02 V  (min =  +1.40 V, max =  +1.66 V)  ALARM
3VSB:         +3.34 V  (min =  +2.98 V, max =  +3.63 V)
Vbat:         +3.26 V  (min =  +2.70 V, max =  +3.63 V)
in9:          +0.02 V  (min =  +0.89 V, max =  +1.75 V)  ALARM
fan1:        2445 RPM  (min =  666 RPM, div = 8)
fan2:         964 RPM  (min = 1328 RPM, div = 8)  ALARM
fan3:           0 RPM  (min =    0 RPM, div = 128)
fan5:           0 RPM  (min = 84375 RPM, div = 16)
temp1:        +43.0°C  (high = -123.0°C, hyst = -67.0°C)  ALARM  sensor = thermistor
temp2:        +21.5°C  (high = -112.0°C, hyst = -112.0°C)  ALARM  sensor = CPU diode
temp3:        +38.5°C  (high = +80.0°C, hyst = +75.0°C)  sensor = thermistor
cpu0_vid:    +1.219 V
intrusion0:  ALARM

Kde je ALARM, tam jsou většinou prohozené či nesmyslné limity, což je chyba v lm-sensors. Naměřené hodnoty jsou ale správně, akorát u napětí vyšších jak 5V je nepřesnost o něco vyšší, neboť se tyto hodnoty často měří na odporovém děliči s jistou tolerancí hodnot (max. vstupní napětí čipu senzorů bývá jen 5V).
Coretemp je senzor uvnitř CPU, měří teplotu, Winbond W83627EHF je brouk, co sleduje to ostatní.
Jinak ten intrusion0 je spínací kontakt, který je u uzavřené skříně sepnutý (stisknutý), jakmile se skříň otevře, spínač rozepne, jako porucha (neoprávněné otevření) se zapíše (i ve vypnutém stavu) do paměti BIOSu, který to po spuštění stroje napráská. Většinou nepotřebná věc, ale v senzorech vidět je.

29
Programování / Ping s grafem v terminálu
« kdy: 05. 03. 2013, 14:36:02 »
No nazdar,
jak tak na vás koukám, tak se ulejváte, netvoříte, jen konzumujete. No dobrá. Protože mě poslední dobou můj ISP séře, chtěl jsem si udělat něco terminálovýho, co měří jak odezvu, tak pro lepší přehlednost vykresluje i graf. To proto, abych to nasměroval do souboru a pak mu to jako důkazní materiál obouchal o hlavu.
Chtěl jsem se vyhnout matematice, nepovedlo se, matematiky je v tak malý bashovitosti poměrně dost, ale skriptík funguje, tak vám ho předkládám.
Jo, graf (co řádek, to horizontální teploměr) se dá různě nastavit, v defaultu platí, že 1 znak = 1ms. Dá se nastavit ofset (když to někomu na vzdálenej server pinguje 200-300ms, tak nastavím ofset -200ms, aby se mi to tam vešlo), dá se nastavit "zesílení"- jak jsem psal, 1 znak = 1ms, ale může to bejt 0.5ms i 5ms (pro silně nestabilní latence). A rychlost pingování se dá taky nastavit, s přesností na ms (dolní hranice je ale rovna nejvyšší latenci), dokonce jsem kvůli tomu musel udělat stabilizační automatiku (nepříliš přesná, ale mnohem přesnější, než to bylo bez ní).
Zatím jsem ještě nevyřešil pár věcí, hlavně maximální dýlku sloupce (ležatýho), aby se nevykresloval na 2 řádky.
Tady je ta prasečina:
Kód: [Vybrat]
#!/bin/bash

######## Nastavení ########
## IP počítače pro ping
I="81.95.101.8"

## Násobení grafu (lze použít i desetinný místa)
N=1
## Posun hodnoty grafu
O=0

## Rychlost aktualizace [s]; povoleny jsou desetinný čísla (např. 0.2, nebo bez nuly .2)
A=1

## Znak grafu
G="▬"

## Znak ozdobných konců sloupců grafu, co se PŘIDAJÍ na začátek a konec sloupců (lze vynechat)
K="⬤"


######## Motor ########
echo -e "\n IP: $I (`whois $I | grep "[C|c]ountry:" | awk '{print $2}'`)\n\n Rychlost aktualizace:\
\t$A \bms\n Násob. hodnoty grafu:\tx$N\n Posun hodnoty grafu:\t-$O \bs\n\n    Čas\t     Odezva\tGraf"


## Hodíme do smyčky, aby se pingování neustále opakovalo. Bez řádků 29 a 50 by to pinglo jen jednou
while [ : ]; do

## Získání a zobrazení času odezvy (pouze číslo v ms)
Z=`ping -c 1 -w 0.2 $I | grep "64 bytes" | awk '{print $7}' | sed -e 's/time=//g'`

## Sloupce čas, odezva, pokud se paket ztratí, hodnota odezvy bude --- ms
echo -ne " `date '+%T'`  `echo "  $Z"`ms" | sed -e 's/ ms/ --- ms/g'

## Přepočet na graf (+posun, +násobení, +zaokrouhlení)
V=`echo -e "scale=3; (($Z-$O)*$N+0.5)/1" | bc -l`

## Motor grafu
printf -v f "%"$V"s"
printf "\t$K%s" "${f// /$G}"

## Zobrazí na vrcholku sloupce grafu znak $K
echo -e "$K"

## Korekce zpoždění časovače rychlosti aktualizace
R=`echo "scale=5; $A-($Z/1024)" | bc -l 2> /dev/null`
sleep $R 2> /dev/null
done

... a tady je v akci:

30
No nazdar,

pomocí nástroje HDAAnalyzer jsem si sešteloval parametry zvukovky, mám větší zesílení mikrofónu, než mi dovoloval mixér, u mikrofonního vstupu jsem si vypnul napájení mikrofónu (nemám elektret, mám místo něj dynamickej, vlastně repráček), výstup LFE má vyšší úroveň, proto u zesilovače nemusím nastavovat vstupní citlivost tak vysoko, že je trochu slyšet brum, navíc jsou basy hutnější, příjemnější. Prostě krása. Má to ale jeden háček- hejbnu s mixérem a nastavení je v defaultu.
Vygeneroval jsem si ale skript, kterej když spustím, znovu se použije moje nastavení (zase dokud nesáhnu na mixér).
Proto bych rád, aby to moje nastavení bylo trvalý. Dá se to nějak udělat?

Tady je obsah onoho skriptu:
Kód: [Vybrat]
#!/usr/bin/env python

import os
import struct
from fcntl import ioctl

def __ioctl_val(val):
  # workaround for OverFlow bug in python 2.4
  if val & 0x80000000:
    return -((val^0xffffffff)+1)
  return val

IOCTL_INFO = __ioctl_val(0x80dc4801)
IOCTL_PVERSION = __ioctl_val(0x80044810)
IOCTL_VERB_WRITE = __ioctl_val(0xc0084811)

def set(nid, verb, param):
  verb = (nid << 24) | (verb << 8) | param
  res = ioctl(FD, IOCTL_VERB_WRITE, struct.pack('II', verb, 0)) 

FD = os.open("/dev/snd/hwC0D0", os.O_RDONLY)
info = struct.pack('Ii64s80si64s', 0, 0, '', '', 0, '')
res = ioctl(FD, IOCTL_INFO, info)
name = struct.unpack('Ii64s80si64s', res)[3]
if not name.startswith('HDA Codec'):
  raise IOError, "unknown HDA hwdep interface"
res = ioctl(FD, IOCTL_PVERSION, struct.pack('I', 0))
version = struct.unpack('I', res)
if version < 0x00010000: # 1.0.0
  raise IOError, "unknown HDA hwdep version"

# initialization sequence starts here...

set(0x17, 0x300, 0x6100) # 0x17036100 (SET_AMP_GAIN_MUTE)
set(0x17, 0x300, 0x6200) # 0x17036200 (SET_AMP_GAIN_MUTE)
set(0x17, 0x300, 0x6300) # 0x17036300 (SET_AMP_GAIN_MUTE)
set(0x17, 0x300, 0x6400) # 0x17036400 (SET_AMP_GAIN_MUTE)
set(0x17, 0x300, 0x6500) # 0x17036500 (SET_AMP_GAIN_MUTE)
set(0x17, 0x300, 0x5100) # 0x17035100 (SET_AMP_GAIN_MUTE)
set(0x17, 0x300, 0x5200) # 0x17035200 (SET_AMP_GAIN_MUTE)
set(0x17, 0x300, 0x5300) # 0x17035300 (SET_AMP_GAIN_MUTE)
set(0x17, 0x300, 0x5400) # 0x17035400 (SET_AMP_GAIN_MUTE)
set(0x17, 0x300, 0x5500) # 0x17035500 (SET_AMP_GAIN_MUTE)
set(0x19, 0x300, 0xa01b) # 0x1903a01b (SET_AMP_GAIN_MUTE)
set(0x19, 0x300, 0x901b) # 0x1903901b (SET_AMP_GAIN_MUTE)
set(0x1a, 0x300, 0xa01b) # 0x1a03a01b (SET_AMP_GAIN_MUTE)
set(0x1a, 0x300, 0x901b) # 0x1a03901b (SET_AMP_GAIN_MUTE)
set(0x1b, 0x300, 0xa01b) # 0x1b03a01b (SET_AMP_GAIN_MUTE)
set(0x1b, 0x300, 0x901b) # 0x1b03901b (SET_AMP_GAIN_MUTE)
os.close(FD)

Stran: 1 [2] 3 4 ... 6