O víkendu probíhá na FIT VUT v Brně konference OpenAlt 2026 o otevřeném softwaru a datech, IT bezpečnosti, DIY a IoT. Na programu je spousta zajímavých přednášek. Pokud jste v Brně, stavte se. Vstup zdarma. Přednášky lze sledovat i online na VHSky a YouTube.
Qualcomm uzavřel víceletou dohodu se SpaceX. Bude dodávat rádiové technologie, baseband jednotky a software pro plánovanou pozemní 5G síť Starlink Mobile. Výstavba má zahrnovat desítky tisíc základnových stanic v USA. Zahájení nasazování se očekává v roce 2027. Qualcomm dohodu označuje za svůj dosud největší 5G kontrakt.
Google rozšířil Cloud Vulnerability Reward Program. Nově nabízí odměnu až 250 tisíc dolarů za vysoce závažné architektonické bezpečnostní chyby označované jako Root-in-Cloud.
V březnu byla oznámena spolupráce GrapheneOS s Motorolou. Nejnovější vlajka Motorola Signature 27 je první Motorola s oficiální podporou GrapheneOS. GrapheneOS (Wikpedie) je varianta Androidu zaměřující se na bezpečnost a soukromí.
Omarchy (Wikipedie) je linuxová distribuce s dlaždicovým správcem oken Hyprland. Založena je na Arch Linuxu. Vydána byla v nové verzi 4.5.0. Nově také pro Apple Silicon, konkrétně pro M1/M2/M3/Neo MacBooky.
Byla vydána nová stabilní verze 8.3 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 156 s bezpečnostními opravami z Chromia 157. Přehled novinek i s náhledy v příspěvku na blogu.
Multimediální přehrávač mpv byl vydán ve verzi 0.42.0. Jde o větší balík změn po bezmála roce. Mimo jiné se lépe integruje s Waylandem nebo rozšiřuje podporu DVD/Blu-ray, např. umožňuje přehrávat rovnou obrazy médií (soubory iso).
Desktopové prostředí LXQt (Lightweight Qt Desktop Environment, Wikipedie) vzniklé sloučením projektů Razor-qt a LXDE bylo vydáno ve verzi 2.5.0. Přehled novinek v poznámkách k vydání.
Byla vydána (𝕏) nová verze 8.0 LTS open source monitorovacího systému Zabbix (Wikipedie). Přehled novinek v oznámení na webu, v poznámkách k vydání a v aktualizované dokumentaci.
/* compass.c
#include <errno.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <linux/i2c-dev.h>
/* Note that the documentation for the compass states its address as 0xC0.
* However, this includes the low bit which specifies read or write.
* Linux i2c does not include this bit in this address, so the actual
* address is 0xC0 shifted down, 0x60.
*/
#define CMPS03_ADDR 0x60
/* The important registers on the compass. Internal/test registers omitted. */
#define CMPS03_SOFTWARE_REVISION 0x0
#define CMPS03_BEARING_BYTE 0x1
#define CMPS03_BEARING_WORD_HIGH 0x2
#define CMPS03_BEARING_WORD_LOW 0x3
#define CMPS03_CALIBRATE_CMD 0xF
int main(int argc, char *argv[]) {
char *end;
int res,file;
int e1;
char filename[20] ;
long funcs;
int heading_byte, heading_word_h, heading_word_l;
int bearing_long, bearing_degrees;
sprintf(filename,"/dev/i2c-0");
if ((file = open(filename,O_RDWR)) < 0) {
e1 = errno;
if (e1 != ENOENT) {
fprintf(stderr,"Error: Could not open file '%s' : %sn",
filename,strerror(e1));
if(e1 == EACCES)
fprintf(stderr,"Run as root?n");
}
}
/* Get software revision number */
res = i2c_smbus_read_byte_data(file, CMPS03_SOFTWARE_REVISION);
if (res < 0) {
printf("Cannot read software revision leveln");
} else {
printf("Software revision level: %02xn", res);
}
/* Loop and read from the compass. */
while (1) {
/* The heading byte is 0-255 for the 360 degrees. */
heading_byte = i2c_smbus_read_byte_data(file, CMPS03_BEARING_BYTE);
if (heading_byte < 0) { printf("Error reading from compass."); exit(1);}
/* The high resolution heading is given in two registers, and is 10 * the
* heading in degrees, ie 359.9 degrees reads as 3599. */
heading_word_h = i2c_smbus_read_byte_data(file, CMPS03_BEARING_WORD_HIGH);
if (heading_word_h < 0) { printf("Error reading from compass."); exit(1);}
heading_word_l = i2c_smbus_read_byte_data(file, CMPS03_BEARING_WORD_LOW);
if (heading_word_l < 0) { printf("Error reading from compass."); exit(1);}
/* Combine the two bytes, and get the heading in degrees. */
bearing_long = heading_word_h * 256 + heading_word_l;
bearing_degrees = bearing_long / 10;
printf("Bearing: %d \n", bearing_degrees);
/* Wait for a while. */
usleep(200000);
}
}
Kompilace vyhodí vždy tyto chyby:
[honza@AMD2000 ~]$ cc i2c.c i2c.c:97:2: warning: no newline at end of file /tmp/ccNQKa9S.o: In function `main': i2c.c:(.text+0xbe): undefined reference to `i2c_smbus_read_byte_data' i2c.c:(.text+0xfb): undefined reference to `i2c_smbus_read_byte_data' i2c.c:(.text+0x12f): undefined reference to `i2c_smbus_read_byte_data' i2c.c:(.text+0x163): undefined reference to `i2c_smbus_read_byte_data' collect2: ld returned 1 exit statusNevíte někdo co s tím?
(collect2: ld returned 1 exit status)
zkuste pridat parametr -li2c (nebo neco v tom smyslu - pridani i2c knihovny)
Tiskni
Sdílej: