Byla vydána nová major verze 5.0.0 svobodného multiplatformního nástroje BleachBit (GitHub, Wikipedie) určeného především k efektivnímu čištění disku od nepotřebných souborů.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za duben (YouTube).
Provozovatel čínské sociální sítě TikTok dostal v Evropské unii pokutu 530 milionů eur (13,2 miliardy Kč) za nedostatky při ochraně osobních údajů. Ve svém oznámení to dnes uvedla irská Komise pro ochranu údajů (DPC), která jedná jménem EU. Zároveň TikToku nařídila, že pokud správu dat neuvede do šesti měsíců do souladu s požadavky, musí přestat posílat data o unijních uživatelích do Číny. TikTok uvedl, že se proti rozhodnutí odvolá.
Společnost JetBrains uvolnila Mellum, tj. svůj velký jazykový model (LLM) pro vývojáře, jako open source. Mellum podporuje programovací jazyky Java, Kotlin, Python, Go, PHP, C, C++, C#, JavaScript, TypeScript, CSS, HTML, Rust a Ruby.
Vývojáři Kali Linuxu upozorňují na nový klíč pro podepisování balíčků. K původnímu klíči ztratili přístup.
V březnu loňského roku přestal být Redis svobodný. Společnost Redis Labs jej přelicencovala z licence BSD na nesvobodné licence Redis Source Available License (RSALv2) a Server Side Public License (SSPLv1). Hned o pár dní později vznikly svobodné forky Redisu s názvy Valkey a Redict. Dnes bylo oznámeno, že Redis je opět svobodný. S nejnovější verzí 8 je k dispozici také pod licencí AGPLv3.
Oficiální ceny Raspberry Pi Compute Modulů 4 klesly o 5 dolarů (4 GB varianty), respektive o 10 dolarů (8 GB varianty).
Byla vydána beta verze openSUSE Leap 16. Ve výchozím nastavení s novým instalátorem Agama.
Devadesátková hra Brány Skeldalu prošla portací a je dostupná na platformě Steam. Vyšel i parádní blog autora o portaci na moderní systémy a platformy včetně Linuxu.
Lidi dělají divné věci. Například spouští Linux v Excelu. Využít je emulátor RISC-V mini-rv32ima sestavený jako knihovna DLL, která je volaná z makra VBA (Visual Basic for Applications).
Elektromagnetický signál o frekvenci L1=1575,42 MHz je vcelku imunní vůči meteorologickým vlivům, takže déšť, sníh, kroupy či mlha jej zeslabí jen nepatrně. Uvádí se, že snad jen když anténa přijímače zapadne příliš silnou vrstvou sněhu, stane se příjem nespolehlivým. Signál však nedokáže projít překážkami, jakými jsou například stěny budov, hory, ale také bujná vegetace či koruny stromů. Podmínkou pro příjem je přímá viditelnost oblohy, takže GPS nebude fungovat v budovách, v jeskyních, metru, pod vodou, v tunelu, v podchodu, v husté zástavbě a podobně. Je potřeba dát pozor i na to, aby si člověk nestínil vlastním tělem. Ponecháme-li přijímač v místnosti poblíž okna, je možné, že bude dostatečný výhled na alespoň čtyři družice. Chcete-li změřit souřadnice svého bydliště a momentálně nemáte signál, nemusí být vše ztraceno. Rozmístění družic se neustále mění, takže vydržte měřit dvanáct hodin, což je oběžná doba družic. Příjem signálu v dopravních prostředcích záleží na mnoha faktorech. v autobuse plném cestujících, projíždějícím městem se mi signál zachytit nepodařilo, zatímco v autě bývá situace výrazně lepší.
Přesnost GPS je ovlivňována mnoha faktory. Nejvýraznějším vlivem, který je naštěstí už minulostí, bylo úmyslně zavedené omezení - SA (Selective Availability), tedy dostupnost jen pro někoho. GPS byl vytvořen pro armádní účely USA a zpočátku byl signál kódován tak, aby pouze americká armáda mohla využít plné přesnosti GPS. Všichni ostatní mohli svou pozici určit s odchylkou několika stovek metrů. K přelomu došlo 1. května roku 2000, kdy prezident Bill Clinton nařídil vypnutí SA. Od té chvíle (až do doby, kdy si to někdo opět rozmyslí) se přesnost GPS řádově zlepšila. Nyní je odchylka způsobena především následujícími vlivy:
Odchylka v metrech pro jednotlivé faktory představuje pouze orientační údaj. Skutečný příspěvek k celkové chybě závisí především na uspořádání družic, tedy na parametru PDOP. Přijímač si vždy vybere takovou čtveřici družic, u kterých je rozmístění nejlepší. Proto na volném prostranství bývá určení polohy přesnější, než když je výhled na oblohu částečně zakryt. Při výpočtu pozice zjišťujeme tři souřadnice a rozmístění družic způsobuje, že pro každou souřadnici vychází jiná odchylka. Obecně platí, že stanovení výšky je méně přesné než určování zeměpisných souřadnic. Jaká je tedy skutečná odchylka? Udávají se různá čísla pro různé situace, takže těžko na otázku jednoznačně odpovědět. Pro hrubou představu však můžeme provést experiment, ze kterého sice absolutní odchylku nezjistíme, ale lze odhadnout alespoň rozptyl údajů. Stačí ponechat přijímač na jednom místě, sbírat data po určitou dobu a následně je statisticky zpracovat. Co se týče zjišťování přesného času, zde se udává chyba v řádu mikrosekund. Samotný přenos informace do počítače zcela jistě způsobí podstatně větší odchylku.
Zprovoznění přijímače pod Linuxem značně závisí na tom, jak je systém
nakonfigurován. Jsou-li k dispozici potřebné jaderné moduly pl2303,
usbserial a vše potřebné pro obsluhu USB portu, mělo by být vše bez
problémů. Máte-li navíc aktivováno automatické nahrávání modulů, stačí
pouze přijímač připojit k počítači. Přijímač byl úspěšně provozován
v distribucích Fedora Core 3, 4 a 5. Praktické testy ukázaly, že
přijímač je nutné připojit přímo do portu bez použití jakéhokoli
prodlužovacího kabelu. Použití prodlužovacího kabelu způsobí, že zařízení
není správně nadetekováno a příkaz dmesg
odhalí řadu chyb
vztahujících se k USB vrstvě. Toto podivné chování bylo prokázáno na
třech různých počítačích se dvěma různými prodlužovacími kabely. Při
použití velmi krátkého prodlužovacího kabelu (cca 30 cm) je zařízení
po několika pokusech někdy i správně nalezeno, ale v náhodných
okamžicích dochází k výpadkům komunikace a jediným východiskem je
odpojení zařízení z USB konektoru. Zmíněné problémy potvrdili i
další nešťastní uživatelé marně hledající příčinu chyby. Záměrně se o tomto
zrádném chování rozepisuji takto obšírně, protože konvertor Prolific je
poměrně rozšířen i v mobilních telefonech a v mnoha případech
vynechání prodlužovacího kabelu vedlo k odstranění problému
v komunikaci.
Po připojení a úspěšné detekci by se měla ve výpisu příkazu lsusb objevit položka
ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Řádek nijak nevypovídá o tom, že připojené zařízení je GPS přijímač.
Jediné, co jádro vidí, je konvertor mezi USB a sériovým rozhraním RS232
s čipem Prolific. V adresáři /dev
by se mělo
objevit zařízení označené například ttyUSB0. V dalším textu budu
předpokládat, že název zařízení je /dev/ttyUSB0
. Práva
k tomuto zařízení jsou obvykle nastavena tak, že jej může obsluhovat
pouze root případně členové skupiny uucp. Přesvědčit se o tom můžeme
příkazem ls -l /dev/ttyUSB0
:
crw-rw---- 1 root uucp 188, 0 Jul 24 15:04 /dev/ttyUSB0
Nebylo by rozumné zacházet s GPS přijímačem jako root, a bude tedy
potřeba změnit práva tak, aby i běžný uživatel měl k zařízení přístup.
Nejvhodnější způsob závisí na konkrétní situaci a nastavení systému. Uveďme
příklad pro distribuci Fedora Core 3, 4 a 5, kde je adresář /dev
dynamický a obhospodařuje jej subsystém udev. V tomto případě
jednorázovou změnu zařídíme příkazem
chown dummy /dev/ttyUSB0
který způsobí, že vlastníkem souboru bude uživatel dummy, který tím získá
přístup k zařízení. Po odpojení a opětovném připojení budou opět práva
na výchozích hodnotách (root:uucp), a uživatel dummy tím svá privilegia
ztratí. Trvalou změnu musíme zajistit přidáním pravidla, kterým se má
řídit subsystém udev
. Ten čte pravidla ze souborů umístěných v adresáři /etc/udev/rules.d
. Tyto soubory se
zpracovávají v abecedním pořadí, a tak je potřeba vytvořit nový soubor
s pravidly tak, aby se načetl až po souboru 50-udev.rules
(ten obsahuje výchozí pravidla). Vytvoříme tedy například soubor
/etc/udev/rules.d/60-gps.rules
, který bude obsahovat řádek
KERNEL=="ttyUSB*" OWNER="dummy",GROUP="uucp", MODE="0660"
Toto pravidlo zajistí, že uživatel dummy bude mít vždy přístup k zařízením /dev/ttyUSB*
. Původní pravidlo se přemaže.
Koncepce přijímače zřejmě vychází z původní verze, která byla určena
pro připojení na sériový port. Varianta pro USB obsahuje konvertor, ale
zbytek pravděpodobně zůstal beze změny, a tak další zacházení již probíhá
stejně jako u sériového portu. Je nutné nastavit přenosovou rychlost (baud
rate) na 4800, osm bitů na znak, počet stopbitů na jeden a paritu na
žádnou. Tyto parametry se nastavují příkazem stty
. Parametrů
pro sériový port je v Linuxu několik desítek. Jejich výchozí hodnoty
jsou takové, že chceme-li vypsat na terminál nějaký řetězec přečtený
z GPS příjímače, je nutno provést změnu alespoň u přenosové rychlosti,
která musí být nastavena na 4800 baudů.
stty -F /dev/ttyUSB0 4800
Nyní již můžeme číst smysluplná data. Příkaz
cat /dev/ttyUSB0
začne vypisovat jednotlivé zprávy získané z GPS přijímače. Tyto zprávy se nazývají věty (sentences). Každá věta začíná znakem dolar ($) a pokračuje až do konce řádku. Obsahuje položky oddělené čárkou. Na obrazovce by se mohlo objevit například toto:
$GPGSA,A,3,29,26,22,09,07,05,04,,,,,,1.7,1.0,1.4*30 $GPGSV,3,1,11,09,84,297,41,05,48,256,45,07,38,059,41,26,22,178,41*74 $GPGSV,3,2,11,24,13,063,00,14,12,324,00,30,12,251,00,22,12,286,38*78 $GPGSV,3,3,11,29,10,173,35,04,09,105,30,18,06,254,00*46 $GPRMC,170138.615,A,4912.2525,N,01635.0378,E,0.04,16.43,280705,,*32 $GPGGA,170139.615,4912.2526,N,01635.0378,E,1,07,1.0,357.5,M,43.5,M,0.0,0000*7D
Uvedené věty lze již snadno dekódovat v souladu se specifikací komunikačního protokolu. Zůstávají však dvě vady na kráse. Prvních několik řádků, které se objevily ve výpisu, je evidentně chybných. Na první pohled jde o zkomolenou komunikaci a charakter znaků je zcela odlišný. Příkaz stty pravděpodobně nemá vliv na znaky, které jsou již uloženy bufferu a které byly přijaty, když byla ještě přenosová rychlost nastavena na výchozí (nesprávnou) hodnotu. Nejde o vážný problém, ale při psaní obslužného programu na něj musíme pamatovat. Je nutno striktně kontrolovat správnost přijatých vět.
Dalším problémem je to, že se vždy po každé větě vypisují dva volné řádky. Při bližším zkoumání zjistíme, že přestože specifikace uvádí konec řádku definovaný znaky 0x0d, 0x0a
, při čtení přijmeme odlišnou
sekvenci 0x0a, 0x0a
. Můžeme to považovat za maličkost, ale
faktem zůstává, že přijmeme větu, která odporuje specifikaci, což by
korektně napsaný program neměl akceptovat. Ve skutečnosti jsou znaky
odeslány správně, ale přesto přečteme něco jiného. Příčinou je nastavení
sériového portu. Jediné, co jsme změnili, byla přenosová rychlost, přičemž
ostatní parametry jsme ponechali na svých výchozích hodnotách. Sériový
port lze Linuxu nakonfigurovat na velmi překvapivé chování, které
však může vést k těžko odhalitelným chybám. Rozhodně doporučuji jej
vždy nastavit tak, abychom z portu přečetli přesně to, co do něj bylo
odesláno a naopak, aby se odeslalo to, co do něj zapíšeme. Tento požadavek
nechť platí i pro osmibitové přenosy. Bohužel výchozí nastavení je poněkud
jiné, a tak zde uvádím příkaz, který zakáže jakékoli transformace bajtů a
umožní i bezproblémové přenosy binárních dat:
stty -F /dev/ttyUSB0 clocal cread -crtscts cs8 -cstopb hup -parenb parodd \ -brkint -icrnl ignbrk -igncr ignpar imaxbel -inlcr inpck -istrip -iuclc \ -ixany ixoff -ixon bs0 cr0 ff0 nl0 -ocrnl -ofdel -ofill -olcuc -onlcr \ -onlret onocr -opost tab0 vt0 -crterase crtkill -ctlecho -echo -echok \ -echonl -echoprt -icanon -iexten -isig -noflsh -tostop -xcase \ time 0 min 1 4800
Přestože zmíněný příkaz nastavuje i parametry, které bezprostředně nesouvisejí s GPS přijímačem, uvádím jej jako základní věc, kterou je třeba vzít v potaz při jakékoli práci se sériovým portem. Nyní máme jistotu, že přijmeme všechna data beze změny. Po změně nastavení můžeme opět spustit příkaz
cat /dev/ttyUSB0
a již vidíme, že se řádky nevynechávají. Správně přijatou sekvenci 0x0d, 0x0a můžeme ověřit hexadecimálním výpisem přijatých dat, například pomocí příkazu
cat /dev/ttyUSB0 | xxd
V příštím díle se dozvíte, jak dekódovat přijatá data.
Poděkování
Tento článek vznikl za podpory grantu GAČR 103/06/1711.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
abych konečně měl koncesi, pořádnou yagi... a hlavně nebýt utopený v krčském údolí..Koncese neni problem - kdyz sem to zvlad i ja)
...FT-817 na CB anténu na pásmu 40m...Pri vysilani to ale bude chtit jinou, tadle by mela na 40m PSV jako prase, ale to urcite vis, ja jen tak dyby nahodou... V motorkach zalibeni moc nemam, ale muj znamej - OK3MP - je taky podobne nakombinovanej - motorky a HAM radio (delal koncesi tam co ja)