Samsung TV Hack

Samsung LE40B650

Kdo máte doma také tuto telku, nebo libovolný jiný model řady LExxB650xxx, možná budete překvapeni, když se dozvíte, že v ní běží Linux. Ano! Je to skutečně tak 🙂 A vzhledem k tomu, že si ji pořídilo pár geeků, kteří do toho “tak trochu dělají” – dá se s tou telkou dělat spousta divů.

Takže hezky postupně:

Level 1: umíme flashovat firmware.

Samsung nám nabízí na svých stránkách vždy nejnovější verzi, kterou najdete tady.

…když umíme flashnout firmware, můžeme pokročit dál. Kdo to nezvládá, neměl by se ani pokoušet 🙂

Level 2: nebojíme se aplikovat patchovaný firmware.

NewAge, zřejmě linuxový geek a tuner, nám nabízí patchnutý firmware. Co to všechno umí? Tak předně – a to je hlavní důvod – změnu poměru stran na tisíc způsobů u souborů přehrávaných interní funkcí Media Play. Nebudu rozebírat, víc se dočtete na jeho stránce. Co ale umí dál, je větší lahůdka – pomocí “contentu” spustitelného z televize povolí telnet server v televizi! A to je krůček k dalšímu levelu. Patchnutý FW 2004.1 (obsahuje podle mě lepší AR fix – v2) stahujte tady, patchnutý FW 2004.1 (starší patch, který má menší možnosti – jen opravuje defaultně podivně funkční možnost “Přizpůsobit” – stahujte tady.)

…když se nebojíme flashovat patchovaný firmware, můžeme pokročit dál. Kdo se bojí, nesmí do lesa!

Level 3: nebojíme se patchovat firmware.

Parta chlapíků kolem projektu SamyGO, nám nabízí na svých stránkách patche, pomocí kterých zajistíme spuštění vlastního skriptu po startu televize, stejně jako nabízí ke stažení různé kernelové moduly. (pokud nevíte, co je kernelový modul, nečtěte dál) K čemu je to ale dobré? Dobře – jeden z kernelových modulů, které nabízí, je CIFS – pořád nic? Ano! Obejdeme DLNA a nasdílené složky z domácího NASu si připojíme k televizi napřímo. Ptáte se, k čemu je to dobré? Tak zaprvé – odpadá nutnost ladění a údržby DLNA serveru, zadruhé – funguje veškeré přetáčení a podobné vlastnosti, jako při přehrávání z USB zařízení; zatřetí – je to vysoce transparentní a velmi dobře funkční.

… a když se nebojíme patchovat, žádné dveře pro nás nezůstanou zavřené!

Tak co? To jde, ne? 🙂
Pokračovat budeme za čas s nějakým FAQ kolem této telky a s přímými linky na stažení jednotlivých verzí FW, které jsou odzkoušené a bezpečné.

Flashování firmwaru, download SamyGO firmwaru

Pro velký úspěch prvního dílu tu je pokračování seriálu o televizi Samsung LExxB650xxx. Pro úplnost již na začátku uvádím, že veškeré postupy, které jsou zde popsané, děláte na vlastní riziko a já nemůžu a nebudu nést jakoukoli formou zodpovědnost, když si svou televizi použitím těchto postupů nebo souborů zde odkazovaných, uvedete do nepoužitelného stavu.

Level 1 – flashujeme originální firmware.

Tady je k dispozici pro pokusy s patchováním a úpravami standardní firmware od Samsungu. V předchozím postu jsem dával odkaz na download stránku – odsud pochází i tyto dva soubory.

Verze 2004.1 – stahujte zde: T-CHL7DEUC-2004.1.exe

Verze 2005.0 – stahujte zde: T-CHL7DEUC-2005.0.exe

Level 2 – flashujeme firmware NewAge.

Firmware NewAge je takový druhý krůček v poznávání toho, co s novou telkou můžeme dělat. Řeší jednu zásadní věc – nastavení poměru stran u videa přehrávaného funkcí Media Play (tzv. Aspect Ratio fix, nebo AR fix – v překladu “oprava poměru stran”). Varianta NewAge v1 řeší pouze jeden případ – v menu obrazu režim “Přizpůsobit” znamená roztažení obrazu na celou obrazovku a režim “Původní” znamená to, co v originálním firmwaru režim “Přizpůsobit” – tj. roztažení na celou obrazovku při zachování poměru pixelů 1:1.

Varianta NewAge v2 toho umí trochu víc – v menu Tools při nabídce obrazu zpřístupňuje více možností. Překládat to nebudu, ale tabulka je zde:

Fit………….. same as in original firmware (fit the video to full screen by assuming 1:1 pixel aspect ratio)

Original……… same as in original firmware

Full Screen…… stretch the video to full panel screen (1366×768 or 1920×1080)

4:3………….. 4:3 pixel aspect ratio

Non Anamorph….. non anamorph aspect ratio (the average of PAL and NTSC non anamorph ITU-R BT.601 Standard aspect ratio)

16:9…………. 16:9 pixel aspect ratio

Anamorph……… anamorph aspect ratio (the average of PAL and NTSC anamorph ITU-R BT.601 Standard aspect ratio)

1.85:1……….. 1.85:1 pixel aspect ratio

2.35:1……….. 2.35:1 pixel aspect ratio

2.37:1……….. 2.37:1 pixel aspect ratio

2.39:1……….. 2.39:1 pixel aspect ratio

2.76:1……….. 2.76:1 pixel aspect ratio

A teď ke stažení 🙂

NewAge v1 – stahujte zde: T-CHL7DEUC_Samsung_B650T2W_2004.1_MediaPlayer_AR_BugFix_v1_by_NewAge.7z (nebo zde ze stránek NewAge)

NewAge v2 – stahujte zde: T-CHL7DEUC_Samsung_B650T2W_2004.1_NewAge_v2.7z (nebo zde ze stránek NewAge)

Level 3 – flashujeme firmware SamyGO.

A teď to nejzajímavější – kvůli čemu jste možná tady. Opatchovaný firmware SamyGO! 🙂

Přikládám dvě verze, 2004.1 a 2005.0. Rozdíl je ve verzi aplikovaného AR fixu. Funkčnost je stejná, jako u příslušné verze NewAge firmwaru, tedy FW 2004.1 s patchem SamyGO má aplikovaný AR fix v2. FW 2005.0 má pak jednodušší AR fix v1.

A k čemu vlastně ten SamyGO firmware je? Tak předně – automaticky zpřístupní telnet server na televizi, takže po jejím restartu 🙂 se k ní můžete připojit. Defaultní login je root bez hesla.

Tak a teď ke stažení. Oba tyto soubory jsem patchoval vlastními silami a oba vyzkoušel na své televizi s úspěchem. Neručím však za to, pokud se vám s vaší televizí po aplikaci těchto firmwarů stane cokoli zlého – může se stát leccos. 7Zip použitý ke komprimaci ale riziko snad snižuje díky tomu, že sám kontroluje integritu. Pro jistotu uvádím MD5 hashe jednotlivých souborů po rozbalení. (MD5 sumy si spočítejte po rozbalení 7Zipem u jednotlivých souborů prográmkem MD5sums pro Windows, ke stažení zde)

Verze 2004.1 s AR fixem v2 – stahujte zde: T-CHL7DEUC-2004.1.7z

[Path] / filename              MD5 sum

—————————————————————

[T-CHL7DEUC-2004.1\T-CHL7DEUC\image\]

appdata.img.enc                d9265961c7e13f9deb61cc77af0d8eba

exe.img.enc                    9c0393138c2e66864cc1c5d7781a2ac0

info.txt                       7a8bfb77c1b945e0bc152cd1fcba363a

serial_temp                    ab8c406380b9e882128a73a101aefca4

validinfo.txt                  a307a0e2c73b41109aefd4ea32b45560

version_info.txt               f7ea7a48cf1ed5d461bb352a4fdace86

[Path] / filename              MD5 sum

—————————————————————

[T-CHL7DEUC-2004.1\T-CHL7DEUC\]

crc                            d43bf6e0bc3bdc046d79e5ae140d5cbc

ddcmp                          d87dd8f80baf86539ade0ee8f20fe794

MicomCtrl                      b2d3625b06ffa08f8d005e5189daf9bb

rc.local                       61c2a7384edef49230336062949bfd93

run.sh.enc                     b67c6df475fca0cfad72f4df614feb6d

Verze 2005.0 s AR fixem v1 – stahujte zde: T-CHL7DEUC-2005.0.7z

[Path] / filename              MD5 sum

—————————————————————

[T-CHL7DEUC-2005.0\T-HL7DEUC\]

crc                            d43bf6e0bc3bdc046d79e5ae140d5cbc

ddcmp                          d87dd8f80baf86539ade0ee8f20fe794

MicomCtrl                      b2d3625b06ffa08f8d005e5189daf9bb

rc.local                       61c2a7384edef49230336062949bfd93

run.sh.enc                     b67c6df475fca0cfad72f4df614feb6d

[Path] / filename              MD5 sum

——————————————————————————-

[T-CHL7DEUC-2005.0\T-HL7DEUC\image\]

appdata.img.enc                2de021cebfbbff8199b506fcc99b1cce

exe.img.enc                    0a696f9d5c7cdc9f13a5f4045c162f54

info.txt                       fb3466259a8ed1b7b71484e9ad20fb59

serial_temp                    fb5d7ddd746935f7c6c13c704d665d46

validinfo.txt                  ea7c6661d421d332fb03bf45fa16e43e

version_info.txt               93750dc44eb70109b8ada12a78e9ffec

A teď trochu praxe se SamyGO…

Můj soubor /mtd_rwarea/SamyGO.sh vypadá takto:

#!/bin/sh

# Enable Telnetd

mount -t devpts devpts /dev/pts

telnetd

sleep 20

/mtd_rwarea/mount2usb.sh # Run mount script

# Open back-door for fixing boot-loop situations

sleep 20       # Allow USB stick to settle

USB=“/dtv/usb/sda1″    # USB mount-point

if [ -f $USB/usb.sh ];then

$USB/usb.sh    # USB-File detected.

else

if [ -f /mtd_rwarea/mtd_rwarea.sh ];then

/mtd_rwarea/mtd_rwarea.sh # Run normal startup script

fi

if [ -f /mtd_rwarea/mount.sh ];then

/mtd_rwarea/mount.sh # Run mount script

fi

fi

exit

Na začátku skriptu jsem ponechal původní řádky zajišťující spouštění telnet serveru, ale vzhledem k tomu, že to tak často nevyužívám, z důvodu bezpečnosti by nebylo od věci to odtamtud vyhodit. Telnet server je možné si totiž kdykoli spustit “hrou” – o tom více někdy jindy. Následujícím příkazem, který spouští skript /mtd_rwarea/mount2usb.sh spouštím vlastní skriptík, který mi namountuje přes CIFS sdílené adresáře z mého NASu na flashku, kterou mám v TV připojenou do USB. Další řádky následující po komentáři “Open back-door…” už jsou u mě tak prakticky zbytečné. Nevím, proč jsem je nesmazal 🙂

Takže ten, kdo umí s linuxem, si jen stáhne CIFS kernel modul ode mě nebo ze Sourceforge stránek projektu SamyGO, nakopíruje si ho do adresáře /mtd_rwarea a pak jen nainsertuje do běžícího jádra klasickým příkazem insmod /mtd_rwarea/cifs.ko . Jinak korektní a fuknční použití mountu s tímto modulem je toto: mount -o user=jméno_uživatele,password=heslo -t cifs //IP_adresa/sdílená_složka /dtv/usb/sda1/prázdný_adresář_na_flashce .

Tolik pro začátek, dnes pro ty šikovnější a linuxu znalejší. Příště si povíme něco víc o telnet enableru a ukážeme si nějaké příklady jak si mountovat disky ze sítě přes CIFS.

Samsung LE40B650 – konfigurace SamyGO firmware

1 komentář

.comments-link

.entry-header

Tak po delší odmlce je tu další pokračování seriálu.

Na začátku zrekapituluji, co jsme si povídali dosud:

1. díl – Samsung LE40B650 – pojednává o možnostech, které nám naše nová dává, zejména s důrazem na možnosti připojení do sítě.

2. díl – Samsung LE40B650 – flash firmware + download – rozvádí do bližšího detailu jak na to, pokud chceme updatovat firmware. Tak trochu příprava na to, co nás bude dále čekat 🙂

A co dnes? Povím něco více o prvním krůčku k SamyGO firmwaru.

K čemu SamyGO?

Nejdříve bych ale napsal, k čemu vlastně SamyGO je a pro koho je a není určen. Takže – SamyGO firmware se od standardního firmwaru – originálu od Samsungu (tzv. Level 1 z předchozích kapitol) – liší pouze tím, že zajišťuje při zapnutí televize (bootu systému) spuštění jednoho skriptu. Hlavní věc, kterou nám tato funkce umožní, je namountovat si CIFS (Windows) nebo NFS (Linux/UNIX obecně) sdílení ze sítě. Ve zkratce dále:

  1. již zmíněná možnost připojit CIFS (SMB – Windows) a NFS sdílení
  2. automatické spuštění telnet serveru
  3. přítomnost AR (Aspect Ratio) fixu

Vzhledem k tomu, že pomocí telnetu máme přístup ke konzoli systému, a dále máme k dispozici “autorun” skript, můžeme si už dělat prakticky cokoli. O tom více dále.

Připojení CIFS sdílení ze sítě je užitečné zejména proto, že umožní obejít DLNA při přehrávání médií ze sítě. K čemu je to dobré? Tak předně TV přes DLNA neumí přetáčet video. Tento problém při přehrávání ze sítě úplně odpadá, protože pro TV se síťově připojené sdílení tváří jako lokální disk (tj. např. flashka nebo USB HDD) připojený přímo do USB v televizi.

Jak tedy začít?

V této kapitole si ukážeme, jak se dají připojit “na zkoušku” CIFS sdílení ze sítě, bez nutnosti flashování firmwaru. Budeme potřebovat:

Vezmeme to opravdu jednoduše a budeme postupovat krok po kroku. Takže:
(pozn. 1. příkazy jsou tučně a můžete je až na ty, které obsahují složené závorky, přesně kopírovat do okna telnetu;  2. dodržujte velikost písmen, mezery, lomítka atd. – záleží na tom!)

  1. na flashce (říkejme jí F:) si vytvoříme adresář, pojmenujme ho třeba samygo – bude tedy v cestě F:\samygo
  2. pro další využití vytvoříme v rootu flashky ještě jeden adresář, s názvem sdilene – bude tedy v cestě F:\sdilene
  3. do adresáře F:\samygo rozbalíme oba dva stažené soubory, tedy jak SamyGOTelnetEnablerv0.01.tar.gz, tak i SELP-SambaKmod.zip. Z prvního rozbaleného souboru (telnet enabler) nám v adresáři F:\samygopřibude podadresář s názvem SamyGO a s několika soubory a podadresářem uvnitř. Z druhého rozbaleného (CIFS kernelový modul) nám přibude soubor cifs.ko, kompletně s cestou F:\samygo\cifs.ko
  4. flashku připojíme k TV – pokud máte k TV do USB připojeno něco dalšího, odpojte to, televizi vypněte, znovu zapněte a připojte pouze naši flashku (bude tedy jediné zařízení připojené přes USB) – platí to zejména pro jiné flashky, je to důležité pro další postup. USB WIFI modul by neměl vadit
  5. najedeme do nabídky zdrojů signálu, vybereme vloženou flashku
  6. ze zobrazené nabídky vybereme Content Library
  7. objeví se ne neznámá nabídka content library – je třeba se proklikat až k nabídce Games na flashce
  8. v nabídce Games z flashky bude vidět položka SamyGO – to je právě slavný telnet enabler – spustíme ho. Obrazovka by měla probliknout – na chvilku zhasne a znovu se rozsvítí ve stejné nabídce (”jako kdyby se nic nestalo”)
  9. a teď trochu oříšek, se kterým vám nepomůžu: potřebujeme znát IP adresu televize, abychom se k ní mohli připojit – jsou dvě možnosti:
    1. TV má nastavenou statickou adresu. Pokud je to tak, nastavili jste si tu adresu sami a známe ji. Zjistit se dá ale v Menu – Nastavení – Síť – Nastavení sítě .
    2. TV má nastavenou dynamickou adresu (bere si ji z DHCP). IP musíme zjistit z našeho DHCP serveru (obvykle to bude zřejmě nějaký home gateway-router). Pomůckou nám může být MAC adresa, kterou zjistíme pomocí funkce Test sítě v nabídce Menu – Nastavení – Síť – Nastavení sítě – Test sítě .
  10. z našeho PC s Windows si spustíme příkazový řádek a zadáme příkaz ve tvaru telnet {ip adresa televize} . Pokud se nám příkazový řádek nelíbí, stáhneme si prográmek PuTTY (zde odkaz na stránky autora –putty.exe ), ten spustíme, do políčka “Host Name (or IP address)” vyplníme IP adresu televize“Connection type” zvolíme telnet. Kliknutím na Open se připojíme.
  11. Pokud jsme vše až do tohoto kroku udělali správně (nejdůležitější je správně spustit telnet enabler – bod 7 a znát adresu televize), zobrazí se nám přihlašovací obrazovka. Jméno je root a heslo po nás nebude požadováno. Neděste se, zobrazí se chybová hláška -sh: id: not found – nic se neděje.
  12. Pokud jste se dostali úspěšně až sem, gratuluji – máte téměř vyhráno. Nyní se přesvědčíme, že máme dostupnou flashku tam, kde ji očekáváme. Zadáme příkaz mount a odešleme ENTERem. Měl by se nám zobrazit nějaký takový výpis: /dev/root on / type squashfs (ro)
  13. none on /proc type proc (rw)
  14. none on /sys type sysfs (rw)
  15. none on /dev/sam type tmpfs (rw)
  16. none on /dtv type tmpfs (rw)
  17. /dev/tbml7 on /mtd_boot type squashfs (ro)
  18. none on /mtd_ram type tmpfs (rw)
  19. /dev/stl0/14 on /mtd_rwarea type rfs (rw)
  20. /dev/tbml8 on /mtd_exe type rfs (ro)
  21. /dev/tbml9 on /mtd_appdata type squashfs (ro)
  22. devpts on /dev/pts type devpts (rw)
  23. /dev/stl0/13 on /mtd_tlib type rfs (rw)
  24. /dev/stl0/15 on /mtd_contents type rfs (rw)
  25. /dev/stl0/16 on /mtd_down type rfs (rw)
  26. /dev/stl0/12 on /mtd_wiselink type rfs (rw)
  27. /dev/stl0/17 on /mtd_swu type rfs (rw)
  28. none on /proc/bus/usb type usbfs (rw)
  29. /dev/sda1 on /dtv/usb/sda1 type vfat (rw,sync,fmask=0022,dmask=0022,codepage=cp437,iocharset=utf8,shortname=mixed)
    Pro nás je důležitý poslední řádek – v prvním sloupci je název zařízení (/dev/sda1), třetí sloupec je pak místo, kam je flashka namountovaná (/dtv/usb/sda1). U vás to může být jinak, ale flashka by měla být vždy mountovaná někam do adresáře /dtv/usb/… Pokud ji máte namountovanou jinam, v dalších příkazech používejte vaši cestu. Může to být např. /dtv/usb/sdb1 .
  30. A teď kouzlo kernelových modulů. Příkazem insmod /dtv/usb/sda1/samygo/cifs.ko zavedeme kernelový modul (něco jako “ovladač” ve Windows) na CIFS.
  31. A už jen připojit požadovanou složku ze sítě – příkazem mount -o user={jméno},password={heslo} -t cifs //{IP serveru}/{sdílená složka} /dtv/usb/sda1/sdilene
    1. {jméno} a {heslo} nahradíme jménem a heslem pro přístup k sdílené položce.
    2. {IP serveru}{sdílená složka} nahradíme IP adresou serveru a názvem sdílené složky. IP doporučuji použít z důvodu možných problémů s resolvingem jména. V názvu sdílené složky raději nepoužívejte diakritiku, mezery a podobně.
  32. Pokud příkaz proběhne v pořádku, nevypíše žádný text a skočí hned na nový příkazový řádek. O tom, že se vše připojilo korektně, se přesvědčíme zadáním příkazu mount. Ve výpisu by měla přibýt jedna položka.
  33. O tom, že jsou data k dispozici se přesvědčíme příkazem ls /dtv/usb/sda1/sdilene/ – měl by se vypsat seznam adresářů tak, jak jsou vidět ve sdílené složce.
  34. A nyní k tomu, jak si takto nasdílená data pustit? Úplně jednoduše – ve funkci Media Play v televizi zvolte jako zdroj flashku, na které najdete adresář sdilene (ten, který jsme si v bodu 2. vytvořili) a v něm obsah sdílené složky. Volia! 🙂

Uf… bylo to náročné? Snad ne 🙂

Tak – teď už umíme spustit telnet, natáhnout kernelový modul a namountovat síťové složky. Super! Bohužel, s tímto postupem nám po vypnutí televize všechny sdílené složky zmizí. To je daň za to, že jsme nemuseli flashovat neoriginální firmware. Postup je po každém vypnutí/zapnutí (restartu) televize opakovatelný, s tím, že některé věci se zřejmě nebudou měnit (např. IP adresa televize, cesta, do které se připojí flashka atd.)

Příště si flashneme firmware SamyGO a připravíme skripty tak, aby se nám sdílené složky připojovaly samy po zapnutí TV. Těšte se!

A prosím Vás trošku o spolupráci, komu se podle postupu vše povedlo, napište mi tu do komentářů – nebo napište, co vám nefunguje. Případnou chybku doladím. 🙂

ZDROJ: http://www.myslenka.net/category/samygo/


Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

CzechEnglishRussian
%d bloggers like this: