Byl zveřejněn program konference Installfest 2026. Konference proběhne o víkendu 28. a 29. března v Praze na Karlově náměstí 13. Vstup zdarma.
Byla vydána Java 26 / JDK 26. Nových vlastností (JEP - JDK Enhancement Proposal) je 10. Odstraněno bylo Applet API.
Byla vydána nová verze 260 správce systému a služeb systemd (Wikipedie, GitHub). Odstraněna byla podpora skriptů System V. Aktualizovány byly závislosti. Minimální verze Linuxu z 5.4 na 5.10, OpenSSL z 1.1.0 na 3.0.0, Pythonu z 3.7.0 na 3.9.0…
Byla vydána nová verze 5.1 svobodného 3D softwaru Blender. Přehled novinek i s náhledy a videi v poznámkách k vydání. Videopředstavení na YouTube.
Bylo oznámeno vydání nové verze 8.1 "Hoare" kolekce svobodného softwaru umožňujícího nahrávání, konverzi a streamovaní digitálního zvuku a obrazu FFmpeg (Wikipedie). Doprovodný příspěvek na blogu Khronosu rozebírá kódování a dekódování videa pomocí Vulkan Compute Shaders v FFmpeg.
Byl představen open-source a open-hardware prototyp nízkonákladového raketometu kategorie MANPADS, který byl sestaven z běžně dostupné elektroniky a komponent vytištěných na 3D tiskárně. Raketa využívá skládací stabilizační křidélka a canardovou stabilizaci aktivně řízenou palubním letovým počítačem ESP32, vybaveným inerciální měřicí jednotkou MPU6050 (gyroskop a akcelerometr). Přenosné odpalovací zařízení obsahuje GPS,
… více »Vědci z univerzity La Sapienza v Římě vyvinuli systém, který dokáže identifikovat jednotlivce pouze na základě toho, jak narušují signály Wi-Fi. Autoři tuto novou technologii nazvali WhoFi. Na rozdíl od tradičních biometrických systémů, jako jsou skenery otisků prstů a rozpoznávání obličeje, nevyžaduje tato metoda přímý fyzický kontakt ani vizuální vstupy. WhoFi může také sledovat jednotlivce na větší ploše než kamera s pevnou polohou; stačí, je-li k dispozici Wi-Fi síť.
SuperTux (Wikipedie), tj. klasická 2D plošinovka inspirovaná sérií Super Mario, byl vydán v nové verzi 0.7.0. Videoukázka na YouTube. Hrát lze i ve webovém prohlížeči.
Ageless Linux je linuxová distribuce vytvořená jako politický protest proti kalifornskému zákonu o věkovém ověřování uživatelů na úrovni OS (AB 1043). Kromě běžného instalačního obrazu je k dispozici i konverzní skript, který kompatibilní systém označí za Ageless Linux a levné jednodeskové počítače v ceně 12$ s předinstalovaným Ageless Linuxem, které se chystají autoři projektu dávat dětem. Ageless Linux je registrován jako operační
… více »PimpMyGRC upravuje vzhled toolkitu GNU Radio a přidává alternativní barevná témata. Primárním cílem autora bylo pouze vytvořit tmavé prostředí vhodné pro noční práci, nicméně k dispozici je nakonec celá škála barevných schémat včetně možností různých animací a vizuálních efektů (plameny, matrix, bubliny...), které nepochybně posunou uživatelský zážitek na zcela jinou úroveň. Témata jsou skripty v jazyce Python, které nahrazují
… více »Odkazy
V minulom blogu o televízoroch LG som písal o tom ako sa dostať na rootovsku konzolu. Dnes zájdeme trochu ďalej a ukážeme si ako pomocou cross kompilátora pre túto platformu kompilovať programy / knižnice. Nakoniec si ukážeme ako používať framebuffer na vykresľovanie vlastného OSD. S použitím vedomostí o framebufferi môžme tvoriť aj tak neužitočný, ale veľmi efektný softvér, ako je zobrazovač modelov v blenderi, ktorý prijíma informácie o modeli cez RS232 a celý výpočet geometrie prebieha (mimochodom pekne pomalý pri použití float point aritmetiky) na TV prijímači.
Ak si pozrieme súbor /proc/cpuinfo zistíme, že pracujeme s MIPS-om. Pre kompiláciu pre MIPS budeme potrebovať s takmer 100% pravdepodobnosťou cross kompilátor (ruku na srdce, kto z Vás používa MIPS na desktope?).
cat /proc/cpuinfo system type : MStar Titania processor : 0 cpu model : MIPS 4KEc V6.12 BogoMIPS : 211.96 wait instruction : yes microsecond timers : yes tlb_entries : 16 extra interrupt vector : yes hardware watchpoint : no ASEs implemented : mips16 shadow register sets : 1 core : 0 VCED exceptions : not available VCEI exceptions : not available
Televízory LG majú celý systém okrem aplikácie RELEASE založený na open source kóde. Musia preto poskytovať upravené zdrojové kódy kernelu a knižníc. Tie je možné pre konkrétny model vyhľadať a stiahnuť na adrese www.lg.com/global/support/opensource/opensource.jsp.
Ako kompilátor sa dá použiť štandardné gcc pre MIPS (mal by byť dostupný v extra repozitároch). Hotový kompilátor je možné stiahnuť z uclibc.org. Pre jeho použitie postačí kompilátor rozbaliť v ľubovoľnom adresári a nastaviť PATH príkazom:
PATH=$PATH:$PWD/cross-compiler-mipsel/bin/
Funkčnosť kompilátora môžme vyskúšať na programe hello_world.c.
// hello_world.c
#include <stdio.h>
int main(void) { printf("Hello World!"); }
Kompilovať budeme príkazom mipsel-gcc -mips32 -static hello_world.c pre platformu saturn 6, alebo mipsel-gcc -mips32r2 -static hello_world.c pre platformu saturn 7. Platformu, pre ktorú je skompilovaný spustiteľný súbor skontrolujeme príkazom file a.out.
$ file a.out # Saturn 6 a.out: ELF 32-bit LSB executable, MIPS, MIPS32 version 1 (SYSV), statically linked, not stripped $ file a.out # Saturn 7 a.out: ELF 32-bit LSB executable, MIPS, MIPS32 rel2 version 1 (SYSV), statically linked, not stripped
Najjednoduchším, ale zároveň najnepohodlnejším spôsobom je skopírovanie programu na USB kľúč a pripojenie k TV. Kľúč sa automaticky pripojí a jednotlivé partície sú na adrese /mnt/usb(1|2|…)/Drive(1|2|3|4). Najčastejšie táto adresa bude /mnt/usb1/Drive1. Všetky súbory na USB kľúči sú automaticky pripojené s executable bitom, takže náš hello world nebudeme mať problém spustiť príkazom cd /mnt/usb1/Drive1/&&./a.out.
Neustále pripájanie a odpájanie USB zariadenia je veľmi otravné hlavne pri ladení aplikácie. Pohodlnejším a pre menšie programy zrejme aj rýchlejším spôsobom bude kopírovanie priamo pomocou sériového portu. Dúfam, že teraz nikoho nenapadla myšlienka spustiť echo "cat > subor" > /dev/ttyUSB0 && cat lokalny_subor >> /dev/ttyUSB0 pretože tento kód nemôže fungovať pri prenose binárnych dát kvôli možnej kolízii s riadiacimi znakmi terminálu.
Pre zamedzenie kolízií s riadiacimi znakmi musia byť dáta zakódované do relatívne bezpečnej množiny znakov. Binárne dáta sú cez sériový port zvyčajne prenášané pomocou protokolov XMODEM, YMODEM, alebo ZMODEM.
Jednoduchú implementáciu x/y/zmodemu môžme nájsť na adrese ohse.de/uwe/software/lrzsz.html. Z webu stiahneme súbor lrzsz-x.y.z.tar.gz a rozbalíme ho príkazom tar -xvzf lrzsz-*.tar.gz. Kompilácia prebieha štandardnou trojicou príkazov ako u každej inej aplikácie používajúcej autoconf. Skript configure sa musí spustiť s premennými prostredia CC=/absolútna/cesta/k/mipsel-gcc a CFLAGS="-mips32 -static" pre saturn 6, alebo CFLAGS="-mips32r2 -static" pre saturn 7. Celá trojica príkazov vyzerá teda takto:
CC="/absolútna/cesta/k/mipsel-gcc" CFLAGS="-mips32r2 -static" ./configure --prefix "`pwd`/build" make make install
Skompilované programy pre x/y/zmodem sa budú nachádzať v adresári build/bin. Dostať ich do TV je možné napríklad pomocou USB kľúča.
ls build/bin lrb lrx lrz lsb lsx lsz
Po zasunutí USB kľúča sa prípojný bod väčšinou nachádza na /mnt/usb1/Drive1. V tomto adresári nájdeme skompilované programy x/y/zmodemu. Pre prijatie súboru spustíme na TV nasledujúci príkaz:
(root@tv) /mnt/usb1/Drive1 # ./lrz -b --zmodem
Pre zmodem boli použité nasledujúce voľby:
Následne uvoľníme zariadenie /dev/ttyUSB0 klávesovou skratkou CTRL+A, SHIFT+K v screen-e. Prenos sa začne nasledujúcim príkazom spusteným na počítači.
(user@pc) ~ $ lsz -b --zmodem subor < /dev/ttyUSB0 > /dev/ttyUSB0
Odosielať súbory je možné aj bez ukončenia programu screen. Je však potrebné spustiť externý program lsz s presmerovaným vstupom aj výstupom priamo v screen-e klávesovou skratkou CTRL+A a následne príkazom :exec !!lsz -b --zmodem subor.
Uvedený postup kopírovania je pomerne zložitý. Asi by som sa nemohol nazývať linuxákom keby som to nevedel zautomatizovať
Nasledujúci Makefile slúži na kompiláciu a skopírovanie programu do TV. Pre upload programu stačí spustiť make upload. Cesty a voľby musia byť samozrejme upravené pre konkrétne zariadenie / konfiguráciu.
.PHONY: upload
CC=mips2_fp_le-gcc
CFLAGS=-mips32r2 -static
STRIP=mips2_fp_le-strip
OUTPUT=fb-test
SOURCE=main.c
DEVICE=/dev/ttyUSB0
WORKING_DIRECTORY=/mnt/usb1/Drive1
ZMODEM_BINARY=/mnt/usb1/Drive1/zmodem/lrz
ZMODEM_PARAMS=-b --zmodem --overwrite
${OUTPUT}: ${SOURCE}
${CC} ${CFLAGS} $< -o $@
${STRIP} $@
upx -9 $@
upload: ${OUTPUT}
echo "sh" > ${DEVICE}
echo "cd ${WORKING_DIRECTORY}" > ${DEVICE}
echo "${ZMODEM_BINARY} ${ZMODEM_PARAMS}" > ${DEVICE}
lsz ${ZMODEM_PARAMS} ${OUTPUT} < ${DEVICE} > ${DEVICE}
echo "exit" > ${DEVICE}
Prvé framebufferové zariadenie nájdeme v Linuxe zvyčajne na adrese /dev/fb0. U televízorov LG je síce zariadenie vytvorené a má správne major (29) a minor(0) číslo, ale neobsluhuje ho žiaden modul. O tom sa ľahko môžme presvedčiť pri pokuse o čítanie (cat /dev/fb0 > /tmp/fb.data ... cat: can't open '/dev/fb0': No such device or address), alebo o zápis. Aby zariadenie fungovalo musíme skompilovať (alebo stiahnuť) moduly obsluhujúce framebuffer. Tie sú zverejnené na stránke sourceforge.net/projects/openlgtv/files/VFB/. Súbor vfb-lgmod-v0.01.zip funguje aj na nemodifikovanom firmvéri zatiaľ čo na vfb-openlgtv-v0.01.zip budeme potrebovať nahradiť jadro. Súbor obsahuje niekoľko modulov, ktoré sa dajú naraz načítať spustením ./vfb.sh.
Po načítaní modulov môžme začať používať framebuffer. Pre vyskúšanie si môžme zobraziť menu televízora a zaznamenať jeho obraz príkazom cat /dev/fb0 > /tmp/fb.data. Po vypnutí menu môžme uložený obraz obnoviť príkazom cat /tmp/fb.data > /dev/fb0.
Prvý framebuffer má veľkosť 1368x768 pixelov. Formát je ARGB1555 (tj. 16 bitov na pixel). Pixely sú uložené štandardne tj. prvý pixel je v ľavej hornej časti obrazovky. Za nim nasledujú ďalšie pixely smerom doprava. Spôsob kódovania farieb do 16-bitového pixelu je v nasledujúcej tabuľke.
| Bity | Význam |
|---|---|
a 00000 00000 00000 |
Úplne priehľadný pixel. Z toho vyplýva, že nie je možné definovať úplne čiernu farbu, ale minimálne jedna zložka farby musí byť nenulová. |
0 rrrrr ggggg bbbbb |
Polopriehľadný pixel (alfa približne 0.75) s farbou definovanou zvyšnými bitmi. |
1 rrrrr ggggg bbbbb |
Neprehľadný pixel s farbou definovanou zvyšnými bitmi. |
a rrrrr ggggg bbbbb |
Hodnota červenej zložky pixelu. |
a rrrrr ggggg bbbbb |
Hodnota zelenej zložky pixelu. |
a rrrrr ggggg bbbbb |
Hodnota modrej zložky pixelu. |
Nasledujúci program slúži na jednoduchú konverziu medzi obrázkom a RAW dátami ARGB1555. Používa sa príkazom python convert.py obrazok.png obrazok.data pre konverziu do ARGB1555, alebo python convert.py obrazok.data obrazok.png pre opačnú konverziu. Vykresliť obrázok na TV je možné príkazom cat obrazok.data > /dev/fb0.
coding: utf-8 -*-
from PIL import Image
from struct import pack, unpack
IMAGE_WIDTH = 1368
IMAGE_HEIGHT = 768
IMAGE_SIZE = (IMAGE_WIDTH, IMAGE_HEIGHT)
IMAGE_PIXEL_COUNT = 1368 * 768
def image_to_argb1555(image, output_filename):
def convert_color_to_argb1555(pixel):
r, g, b, a = pixel
if r < 8 and g < 8 and b < 8: # Nepodporuje čiernu
b = 8
if a > 228:
a = 0
elif a > 96:
a = 1
else:
a = 0
r = 0
g = 0
b = 0
color = ((r >> 3) << 10) | ((g >> 3) << 5) | ((b >> 3) << 0) | ((a) << 15)
return color
image.resize(IMAGE_SIZE)
pixels = map(convert_color_to_argb1555, image.getdata())
data = pack(str(IMAGE_PIXEL_COUNT) + "H", *pixels)
f = open(output_filename, 'wb')
f.write(data)
def image_from_argb1555(in_data, output_filename):
def convert_color_from_argb1555(pixel_data):
r = ((pixel_data & 0b0111110000000000) >> 10) << 3
g = ((pixel_data & 0b0000001111100000) >> 5) << 3
b = ((pixel_data & 0b0000000000011111) >> 0) << 3
a = ((pixel_data & 0b1000000000000000) >> 15) << 7
if a == 0: # Môže nadobúdať len 0 a 128
a = 255
else:
a = 196
if r == 0 and g == 0 and b == 0:
a = 0
return (r << 0) | (g << 8) | (b << 16) | (a << 24)
pixel_data = unpack(str(IMAGE_PIXEL_COUNT) + "H", in_data)
argb_data = map(convert_color_from_argb1555, pixel_data)
image_buffer = pack(str(IMAGE_PIXEL_COUNT) + "I", *argb_data)
im = Image.fromstring("RGBA", IMAGE_SIZE, image_buffer, "raw", "RGBA", 0, 1)
im.save(output_filename)
def main():
import sys
input_file = sys.argv[1]
output_file = sys.argv[2]
try: # Konverzia z obrázku na ARGB1555
im = Image.open(input_file)
image_to_argb1555(im, output_file)
except IOError: # Opačná konverzia
in_data = open(input_file, 'rb').read()
image_from_argb1555(in_data, output_file)
if __name__ == "__main__":
main()
Obrázky z menu získané z framebufferu príkazom cat /dev/fb > /tmp/fb.data a konvertované skriptom a naopak obrázky vykreslené na TV zápisom do framebufferu vyzerajú nasledovne:

V skutočnosti na vykresľovanie obrazu vôbec nepotrebujeme zariadenie /dev/fb0. Aplikácia RELEASE zabezpečujúca užívateľské rozhranie používa framebuffer priamo.
Samotný framebuffer sa nachádza v RAM. O čítanie tejto oblasti a jej vykresľovanie na obrazovke sa stará obvod s ničnehovoriacim názvom MStar GOP (Graphics Output Path). Dokumentáciu k samotnému obvodu som síce nenašiel, ale zdrojové kódy ovládača sú otvorené a dostupné na webe openlgtv.git.sourceforge.net. Obvod GOP je možné ovládať pomocou zariadenia /dev/gop. Nasledujúci príklad vypíše do dmesg-u informácie o framebufferi. Skompilujeme ho príkazom:
mipsel-gcc main.c -mips32r2 -static \ -I /cesta/ku/kernelu/include -I /cesta/ku/kernelu/drivers/mstar/include -I /cesta/ku/kernelu/drivers/mstar/gop/titania2
#define __KERNEL__
#include <fcntl.h>
#include <sys/ioctl.h>
#include <mhal_gop.h>
#include <mdrv_gop.h>
#define DEVICE_FILE "/dev/gop"
int main()
{
int fd = open(DEVICE_FILE, 0);
if (fd < 0) {
return -1;
}
ioctl(fd, MDRV_GOP_IOC_GWIN_INFO, 0);
close(fd);
return 0;
}
Výpis dmesg-u po spustení programu by mal vyzerať približne takto:
[ 6150.942000] GOP opens successfully [ 6150.942000] [ 6150.942000] GOP[0] info----------------------------------- [ 6150.942000] p->eGOP_Type=0 [ 6150.942000] p->u8Wid=3 [ 6150.942000] p->u32SrcX=0 [ 6150.942000] p->u32SrcY=0 [ 6150.942000] p->u32DispX=0 [ 6150.942000] p->u32DispY=0 [ 6150.942000] p->u32Width=1368 [ 6150.943000] p->u32Height=768 [ 6150.943000] p->u32DRAMRBlkStart=0x0AC0A000 [ 6150.943000] p->u32DRAMRBlkHSize=1368 [ 6150.943000] p->u32DRAMRBlkVSize=768 [ 6150.943000] p->eColorTyped=E_GOP_COLOR_RGB555_BLINK [ 6150.943000] p->pitch=0 [ 6150.943000] p->mem size=0x00000000 [ 6150.943000] [ 6150.943000] GOP[1] info----------------------------------- [ 6150.943000] p->eGOP_Type=1 [ 6150.943000] p->u8Wid=1 [ 6150.943000] p->u32SrcX=0 [ 6150.944000] p->u32SrcY=0 [ 6150.944000] p->u32DispX=0 [ 6150.944000] p->u32DispY=0 [ 6150.944000] p->u32Width=984 [ 6150.944000] p->u32Height=768 [ 6150.944000] p->u32DRAMRBlkStart=0x02A5D010 [ 6150.944000] p->u32DRAMRBlkHSize=1376 [ 6150.944000] p->u32DRAMRBlkVSize=768 [ 6150.944000] p->eColorTyped=E_GOP_COLOR_I8 [ 6150.944000] p->pitch=1376 [ 6150.944000] p->mem size=0x00102000 [ 6150.944000] [ 6150.944000] GOP[2] info----------------------------------- [ 6150.944000] p->eGOP_Type=0 [ 6150.945000] p->u8Wid=0 [ 6150.945000] p->u32SrcX=0 [ 6150.945000] p->u32SrcY=0 [ 6150.945000] p->u32DispX=0 [ 6150.945000] p->u32DispY=0 [ 6150.945000] p->u32Width=0 [ 6150.945000] p->u32Height=0 [ 6150.945000] p->u32DRAMRBlkStart=0x00000000 [ 6150.945000] p->u32DRAMRBlkHSize=0 [ 6150.945000] p->u32DRAMRBlkVSize=0 [ 6150.945000] p->eColorTyped=E_GOP_COLOR_RGB555_BLINK [ 6150.945000] p->pitch=0 [ 6150.945000] p->mem size=0x00000000 [ 6150.945000] GOP closes successfully
Dôležitá pre priame ovládanie je hlavne informácia o začiatočnej pozícii framebufferu v pamäti (štandardne 0x0AC0A000 pre nultý framebuffer) a formát pixelov. Framebuffery sú vytvorené aplikáciou RELEASE pri zapnutí TV. Nie je problém vytvoriť ďalšie framebuffery za behu zariadenia. Podporované formáty pixelov sa nachádzajú v súbore mhal_gop.h. Zariadenie je ovládane pomocou volaní ioctl. Ich zoznam sa dá nájsť v súbore mdrv_gop.h. Žiaľ nemám žiadne ďalšie zdroje informácií než zdrojové kódy, takže zatiaľ neviem napríklad povedať čo robí zaujímavo pomenované makro MDRV_GOP_IOC_ENABLE_CAPTURE_STREAM (samozrejme nájdu sa tam aj ďalšie zaujímavé kúsky).
Keď už zistiť adresu, na ktorej sa nachádza framebuffer a jeho formát nebude problémom napísať program, ktorý vie niečo vykresliť na framebuffer. Nasledujúci C program využíva zariadenie /dev/mem pre priamy prístup k pamäti. Zariadenie pracuje ako klasické blokové zariadenie a je možné ho namapovať do adresného priestoru aplikácie volaním mmap, čím sa zabráni náhodnému prepisu iných častí pamäte. Po spustení aplikácie sa celá vrstva OSD zaplní bielou farbou.
#include <fcntl.h>
#include <stdint.h>
#include <sys/mman.h>
#define COLOR_WHITE 0xffffUL
#define FB_ADDR 0x0AC0A000UL
#define FB_SIZE 0x201000UL
#define FB_WIDTH 1368
#define FB_HEIGHT 768
static uint16_t *vfb;
inline void put_pixel(int x, int y, uint16_t pixel_value)
{
vfb[FB_WIDTH * y + x] = pixel_value;
}
void draw_rectangle(int x1, int y1, int x2, int y2, uint16_t pixel_value)
{
int x, y;
for (y = y1; y < y2; ++y) {
for (x = x1; x < x2; ++x) {
put_pixel(x, y, pixel_value);
}
}
}
int main()
{
int fd = open("/dev/mem", O_RDWR | O_SYNC);
if (fd == -1) {
return -1;
}
vfb = mmap(0, FB_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, FB_ADDR);
if (vfb == MAP_FAILED) {
close(fd);
return -1;
}
draw_rectangle(0, 0, FB_WIDTH - 1, FB_HEIGHT - 1, COLOR_WHITE);
munmap(vfb, FB_SIZE);
close(fd);
return 0;
}
Takýmto spôsobom sa dá naprogramovať napr. zobrazovanie 3D modelov cez framebuffer.
Zdrojové kódy, z ktorých som vychádzal pri písaní príkladov sú na tejto adrese.
V mojich blogoch o TV som vysvetlil ako získať prístup k Linuxu v týchto TV prijímačoch a ukázal som ako používať niektoré nezdokumentované časti hardvéru. Napriek použitiu otvoreného softvéru nie je podpora pre hackovanie zo strany výrobcu práve najlepšia. Komunita ľudí vylepšujúcich firmvér je pomerne malá a bez zdrojových kódov RELEASE to asi tak aj zostane.
Nevidel som žiaden komunitný projekt nahradzujúci kompletne užívateľské rozhranie TV. Nepredpokladá, že by sa to s touto generáciou zariadení zmenilo. Projekty ako XBMC sú príliš pomalé na to, aby boli schopné bežať na procesore MIPS s nízkou frekvenciou bez akejkoľvek grafickej akcelerácie. Ja budem situáciu okolo LG naďalej sledovať a ak by sa niečo v tomto smere zmenilo budem o tom českú / slovenskú komunitu informovať.
Tiskni
Sdílej:
. Kvalitni blog.
Tady je manpage: prijimac-pro-barevnou-televizi-rubin-401-1-habr-pavel-1973
nz
Kúpiť TV s linuxom nebýva problém. Výrobcovia to síce neuvádzajú, ale mnoho modelov či už LG alebo Samsung je vybavených linuxom. Neviem ako je to u ostatných značiek, ale predpokladám, že podobne. Problém nastane až keď sa s tým človek chce hrať, nie každý výrobca poskytuje potrebné nástroje. Niekedy je potrebné sa výrobcovi vyhrážať právnikmi na to aby uvoľnil ich upravený GPL kód. Teraz mám doma napr. jeden kus OEM hardvéru, ktorý nemá softvér, ale mal by na tom bežať linux. Zákazníkom, ktorí kupujú 10 000+ dosiek poskytnú SDK (mimochodom trochu upravený kernel, kompilátor a pár open source knižníc), s ostatnými sa nemienia ani zaoberať. Nebyť uniknutého SDK stiahnutého z rapidsharu tak to ani nenabootujem.
Projekty ako XBMC sú príliš pomalé na to, aby boli schopné bežať na procesore MIPS s nízkou frekvenciou bez akejkoľvek grafickej akcelerácie.Zajímavý, že to divx HD dá.
bez akejkoľvek grafickej akcelerácieA předpokládám, že ten GOP bude umět jen divx, že?
Rýchlosť je okolo 1000 float point operácií za sekunduSafra to je ale hodně pomalý
.