Ubuntu 27.04 bude Tenacious T-Rex.
Byla vydána nová verze 2026.4.0 "Never-slop" svobodného softwaru ScummVM (Wikipedie) umožňujícího bezproblémový běh mnoha klasických adventur na zařízeních, pro které nebyly nikdy určeny. Přehled novinek v poznámkách k vydání a na GitHubu. ScummVM oslavil 25 let. Verze 0.0.1 vyšla 8. října 2001.
Kanadský vývojář Anthony Sistilli vytvořil ironický DIY projekt parodující kamerové systémy Flock, s cílem názorně demonstrovat rizika masového sledování jaké provozují tyto komerční ALPR systémy. Z levné IP kamery a vlastního ML softwaru (napsaného s pomocí SI circa za 20 minut, kód se mi bohužel nepodařilo dohledat) běžícího v laptopu sestavil jednoduchý systém, který detekuje výhradně policejní vozidla, zaznamenává jejich SPZ a
… více »Část údajů uživatelů internetového supermarketu Rohlík byla odcizena. Kyberútočníci napadli nástroj zákaznické podpory Rohlíku, odcizili tak jména, e-mailové adresy, v některých případech také telefonní čísla nebo přepisy komunikace mezi klienty a zákaznickou podporou. Rohlík incident nahlásil příslušným orgánům a přijal příslušné opatření, aby zamezil podobným případům v budoucnosti, uvedla firma.
Aplikace eDoklady fungovala v obou volebních dnech stabilně a prakticky bez front. Digitální a informační agentura (DIA) odhaduje, že se digitálním dokladem prokázalo více než 100.000 voličů. Aplikaci si před volbami či během nich aktualizovalo 247.517 uživatelů. Nových registrací bylo 19.431 a do aplikace se přihlásilo 357.879 lidí. Největší nápor přišel bezprostředně po otevření volebních místností mezi 14. a 16. hodinou, kdy si
… více »Začal semestr, začal i podzim a kromě hub rostou jako po dešti i veřejné dílny v Praze. Nedávno strahováci referovali o hackerspacu Bordel, nyní se otevřela dílna Dejvice Lab jen kousek od ČVUT. Na blížící Virtuální Bastlírně tak uslyšíte nejen report z návštěvy dílny HWLab, ale i řadu novinek, událostí a úsměvných momentů, které se za poslední měsíc ve světě techniky, ale i vědy udály. Připojte se tedy již v úterý 13.10. od 20:00 a zapojte se do
… více »Byl vydán LineageOS 24 (Mastodon). LineageOS (Wikipedie) je svobodný operační systém pro chytré telefony, tablety a set-top boxy založený na Androidu. Jedná se o nástupce CyanogenModu. LineageOS 24 je založený na Androidu 17.
Společnost Valve publikovala na svém GitLabu nákresy a schémata zapojení headsetu Steam Frame. Pro nekomerční účely.
Soutěž Pwn2Own Ireland 2026 skončila 9. října. Bezpečnostní výzkumníci získali celkem 1 262 000 dolarů na odměnách. Během soutěže bylo předvedeno zneužití 98 zero-day zranitelností. Testování zahrnovalo různé kategorie zařízení a software. Výzkumníci předváděli prakticky fungující útoky podle pravidel soutěže. Výsledky následně slouží výrobcům při přípravě oprav. Mezi pokořenými jsou: Samsung Galaxy S26, OpenAI Codex, Oracle Autonomous AI Database, Google Pixel 10, u iPhone 17 neuspěli.
Programovací jazyk Python byl vydán v nové verzi 3.15.0. Podrobný přehled novinek v aktualizované dokumentaci.
(ale zjistil jsem, že jakákoli operace s stty a ttyS0 obecně RTS také sama nastaví).Prosím o raduDěkuji
stty -F /dev/ttySx -crtscts), třeba to pomůže.
stty -F /dev/ttyS0 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 5 min 1
port = serial.Serial("/dev/ttyS0", baudrate=9600, rtscts=0)
Ale jak říkám jestli to rtscts=0 má vliv na stav signálu RTS nevím. Jde o to jestli to není taky nějaká hardwarová záležitost (nějaký USB to serial převodník) který se takto chová. Popřípadě bych ten drátek na chvilku odpojil. A připojil bych ho až když bych chtěl programovat to zařízení (což je asi krajní případ, to odpojení drátku).
.
michals@air:~> stty -aF /dev/ttyS0 speed 19200 baud; rows 0; columns 0; line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 0; time = 0; -parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts -ignbrk -brkint ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany imaxbel -iutf8 -opost -olcuc -ocrnl -onlcr onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop -echoprt -echoctl -echoke
#include <stdio.h> /* Standard input/output definitions */
#include <string.h> /* String function definitions */
#include <unistd.h> /* UNIX standard function definitions */
#include <fcntl.h> /* File control definitions */
#include <errno.h> /* Error number definitions */
#include <termios.h> /* POSIX terminal control definitions */
/*
* 'open_port()' - Open serial port 1.
*
* Returns the file descriptor on success or -1 on error.
*/
int
open_port(void)
{
int fd; /* File descriptor for the port */
fd = open("/dev/ttyS0", O_RDWR | O_NOCTTY | O_NDELAY);
if (fd == -1)
{
/*
* Could not open the port.
*/
perror("open_port: Unable to open /dev/ttyS0 - ");
}
else
fcntl(fd, F_SETFL, 0);
return (fd);
}
Co sem koukal různě po netu, tak by to RTS mělo být po otevření portu shozené. Není to opravdu nějaká HW anomálie u tebe? On ten port může být klidně nějak poškozený a to RTS může být nahozené stále. Při bootu bych vlezl do BIOSu (čili neběží nic) a šáhnul bych tam měřákem, jaký bude stav té RTS linky.
. Opět problikne RTS signál. Hardwarová anomaile to není, RTS je v nule. Teprve až otevřením portu se přepne (mám to naměřené i osciloskopem -12V -> +12V) do jedničky. Jak jsem psal, druhá řádek kódu mi jej shodí opět do nuly (pokud takový ten řádek kódu bude, samozřejmě) ale to už je pozdě, už tam ta jednička byla.
Teprve až otevřením portu se přepne (mám to naměřené i osciloskopem -12V -> +12V) do jedničky.Pozor - tohle (-12V -> +12V) je přepnutí do log. 0. Možná ne pro tvou elektroniku, která je na to připojená, ale pro ten port určitě. http://rs232.hw.cz/#urovne
Ovšem rtscts mám vypnuté jak už mi zde radiliHardware vs. Software Flow Control
If feasible, it's best to use "hardware" flow control that uses two dedicated "modem control" wires to send the "stop" and "start" signals. Hardware flow control at the serial port works like this: The two pins, RTS (Request to send) and CTS (Clear to send) are used. When the computer is ready to receive date it asserts RTS by putting a positive voltage on the RTS pin (meaning "Request To Send to me").
... snip
if (init_hw) {
176 /*
177 * Initialise the hardware port settings.
178 */
179 uart_change_speed(state, NULL);
180
181 /*
182 * Setup the RTS and DTR signals once the
183 * port is open and ready to respond.
184 */
185 if (info->tty->termios->c_cflag & CBAUD)
186 uart_set_mctrl(port, TIOCM_RTS | TIOCM_DTR);
187 }
... endsnip
Je to kousek souboru drivers/serial/serial_core.c, funkce uart_startup (ta je volána z uart_open tuším) . A vypadá to, podle těch posledních dvou řádků, že za nějakých podmínek (ten if) se skutečně nahodí RTS a DTR. Tudíž by to asi chtělo ten druhý řádek uart_set_mctrl zakomentovat a přeložit jádro a vyzkoušet co to bude dělat.
. Díky moc, kouknu na to (jo, půjdu zítra do práce).
.
(nebrat vážně !) Je to klasický sériový port na motherboardu (ty co mají adresu portu 0x3f8, 0x2f8), nebo je to nějaký USB2RS232 převodník? Ono těch serial driverů je totiž v kernelu více, takže jsi(jsme) sice zakomentoval správný řádek, ale u jiného driveru a možná je to (to nahození RTS) ještě někde jinde. Jdu se podívat do git stromu kernelu.
Ono těch serial driverů je totiž v kernelu více, takže jsi(jsme) sice zakomentoval správný řádek, ale u jiného driveru.AFAIK se to, co je v serial_core, používá pro všechna sériová zařízení, protože je to nezávislé na hardwaru. Což ale nevylučuje ten zbytek věty, tj.:
a možná je to (to nahození RTS) ještě někde jinde
...
if (up->port.flags & UPF_FOURPORT) {
serial_outp(up, UART_MCR,
UART_MCR_DTR | UART_MCR_RTS);
} else {
serial_outp(up, UART_MCR,
UART_MCR_DTR | UART_MCR_RTS | UART_MCR_OUT2);
}
...
Zkusil bych z toho vyházet ty UART_MCR_RTS, tudíž poté by ten kousek kódu vypadal takhle:
...
if (up->port.flags & UPF_FOURPORT) {
serial_outp(up, UART_MCR,
UART_MCR_DTR);
} else {
serial_outp(up, UART_MCR,
UART_MCR_DTR | UART_MCR_OUT2);
}
...
Tento driver je tuším pro klasické porty na motherboardu (čipy 8250/16550 atd.). Ovšem oni si při vlezení do té funkce uloží stav těch DTR,RTS (celý ten stavový registr) a po výlezu ten uložený stav zase vrátí, takže to nastavení RTS musí trvat strašně malou dobu. Ale koukal jsem například do zdrojáku ovladače pro sériové karty Moxa (drivers/char/mxser.c) a tam to RTS nahazují ve funkci mxser_startup() taky, takže je to skutečně nějaká (blbá) featůra kernelu. Nezbude nic jiného a na kabel si dát nějaký přepínač kterým se ta RTS linka přeruší.
(jo kdyby se udělal parametr třeba activate_rts a patřičně by se tam doplnily testy na tento parametr tak to by bylo něco jiného). Spíš mě zaráží, že ve Windows to prý funguje.
Zkrátka je mi líto nutit vás lítat do jader, když si vinou Linuxu nejsem moc jist.O to nejde, já se do toho jádra rád podívám
, protože v naší firmě taky používáme sériový port na různé komunikace, tak mě to zajímalo - abych pak nebyl překvapen
. Ale jak jsem psal výše, po studiu lowlevel ovladačů v jádře (8250.c a mxser.c) je vidět že se to RTS běžně nahazuje při inicializaci (a možná i po otevření portu) a jak psal kolega trekker.dk je to asi dobře, ačkoliv já si myslím, že pokud nechci řízení toku RTS/CTS tak by se ta linka RTS měla nechat při otevření portu napokoji . Je tedy lepší počítat s tím v hw/sw toho protějšku se kterým člověk komunikuje pomocí seriového portu, a/nebo si prolézt ty zdrojáky jádra a ty aktivace RTS při inicializaci (nebo otevření) portu vyházet.
Tudíž by to asi chtělo ten druhý řádek uart_set_mctrl zakomentovat a přeložit jádro a vyzkoušet co to bude dělat.Tudíž by to chtělo zakomentovat oba řádky, neb je to podmínka...
if (neco) {
prikaz;
}
ale ta jednořádková podmínka. Takže tazatel to pochopil, jak se to má zakomentovat
.
Python 2.5.1 (r251:54863, May 1 2007, 17:47:05) [MSC v.1310 32 bit (Intel)]
Type "help", "copyright", "credits" or "license" for more information.
>>> import serial
>>> port = serial.Serial("COM1")
>>> port._rtsState
1
>>> port.setRTS(0)
>>> port._rtsState
0
>>> port.open()
>>> port._baudrate
9600
>>> port.bytesize
8
>>> port._rtsState
1
>>> port.setRtsCts(0)
>>> port._rtsState
1
>>> port.setRTS(0)
>>> port._rtsState
0
>>>
z něhož je vidět že to RTS nahazují i Windows. Dokonce když se ještě před voláním open to RTS shodí, tak po zavolání open a po vypnutí hw řízení toku dat ( setRtsCts(0) )je opět aktivní a musí se shodit. Ale skusím ještě jeden pokus ve Visual Basicu 6 (no moc se nesmějte
)
). Ale jinak prostředky VB6 (tedy komponenta MSCOMM32.OCX) jsou přímo strašné, tudíž jsem toho mnoho nezjistil. Ale to "bliknutí" opravdu udělá to otevření, nebo konfigurace portu. Je to vidět v těch zdrojácích kernelu, jak jsem psal výše. (linux/drivers/serial/8250.c - funkce autoconfig_irq() a ta je volána tuším zase z funkce serial8250_config_port() a tu zase volá serial_core.c jako jednu z operací portu právě při otvírání nebo inicializaci (mám pocit že něco z toho se volá už při bootu jádra), no ty vazby v kernelu jsou někdy hrůzostrašné, ale zase se, díky tvojemu problému (trochu) vyznám v serial subsystému jádra
)
Jsem z toho už v pr... . Ve Windows ve Visual Studiu to funguje hned. Binárka z VisualStudia nejde v mono 1.9.1 spustit (nedává na System.IO.Ports) takže opět nic.Nu co no. Tak zahodím Python, Linux a asi se půjdu učit C#, jinak nevím, kudy cesty dál.PS.: Ve Visual Studiu je "EnableRTS" option která je defaulně nastavená na False. Musí se povolit na True, aby se to začalo chovat tak jak se mi to chová.
), že ve Windows to udělá to co má, otevře port, pošle data a nic, tak v Monu mi to to RTS sepne. Takže jsem vymazal RTS řádky z 8250.c a zrovna rekompiluji jádro.
.
.
port = serial.Serial("COM1") (ale vyzkoušel jsem ji jen ve Windows). Jinak ale musím souhlasit s trekkerem.dk protože ten HW by měl být navržen trošku jinak, tohle je haluz.
. Existují zařízení (určitý druh 485 převodníků) co se nechají RTS signálem ovládat.
Podle mě celý problém spočívá ve špatném chování toho HW - aktivace a téměř okamžitá deaktivace toho pinu by se skoro nechala považovat za zákmit, který se do toho kabelu může naindukovat i jinak. Je chyba, že to zařízení na tak krátký pulz vůbec reaguje.
Tiskni
Sdílej: