@bovirus: ma alla fine gli spagnoli hanno usato la modifica del DTV che ho fatto? ho guardato sul loro sito ma non ho trovato nulla
Questa è una discussione su Mediabox Realtek - Hack e modifiche del firmware all'interno del forum Realtek RTD 1283/1073, nella categoria Processori e Hack Firmware; @ bovirus : ma alla fine gli spagnoli hanno usato la modifica del DTV che ho fatto? ho guardato sul ...
@bovirus: ma alla fine gli spagnoli hanno usato la modifica del DTV che ho fatto? ho guardato sul loro sito ma non ho trovato nulla
@Hammarby: sto facendo alcune prove col boot del medley, correggimi se sbaglio: una volta che il bootloader prende il controllo, quest'ultimo legge il contenuto di init.d e ne esegue gli script; giusto?
Ho provato a togliere l'avvio di DvdPlayer dallo script rcS e tolto anche la redirezione dell'output su /dev/console e il player non fa il boot, rimane fisso sulla schermata col logo 4Geek.
Allora ho pensato: probabilmente l'hdmi è controllata da DvdPlayer ma l'uscita composita dovrebbe essere attiva e visualizzare la shell, così ho collegato il cavo composito ma sempre stesso risultato: logo 4Geek e niente shell.
Dunque secondo te come funziona il boot sul medley?
Mi sa che devo trovare un modo per inizializzare il firmware video... che casino
Ultima modifica di stedrum; 31-January-2012 alle 12:39 AM
@stedrum.
Io gli ho mandata (a chunky1989).
4geek Playo - Ellion Labo 110 - Hyundai Mbox Light L110 - Firmware mod / ufficiali e suggerimenti
IAMM NTR-83 e NTR-90 - Firmware mod/ufficiali e suggerimenti
4geek Medley3 / O2Media HMR-600W / HMT-600 - Firmware mod / ufficiali e suggerimenti
4geek Medley 3 Evo / Ellion X3-TR21 / O2Media HMR-1000/HMR-2000 - Firmware mod/ufficiali e suggerimenti
Ellion MR-3100E/MR-3150E - O2Media MR5000 - Firmware mod/ufficiali e suggerimenti
O2Media MR6000 - Nexus2TV - Nexus500 - Firmware mod/ufficiali e suggerimenti
BlueTimes BT3548HL-R / BT3549HD / BT3546HN / BT3548HN
Se non hai i drivers della scheda video, non ci puoi mandare l'i/O da terminale.
Ti serve crt0, ma se hai il kit di sviluppo Linux ci dovrebbe essere tutto, anche il modo per reindirizzare l'output a video.
Dai anche una occhiata ai sorgenti di dvdplayer, quelli di sicuro usano il terminale.
Ultima modifica di Hammarby; 31-January-2012 alle 10:15 AM
Da questo si capisce che hanno costruito un sistema multithread, e che il primo processo che parte si chiama "Nonna".
Dopo di questo, la "Nonna" deve accedere allo schermo, come fa?
Oppure, non ci sono i documenti relativi al Linux che hanno usato? Probabilmente basta avviare il boot con un parametro.
Il kernel è il 2.6.12 venus, i sorgenti ci sono e sono riuscito a compilarli e farlo girare correttamente sul player.
Il boot loader dovrebber essere grub(ho trovato grub nella directory del yaffs2 sotto mtd).
Il punto è che quel printf della nonna da qualche parte deve stampare, dove? solo se colleghi via telnet lo vedi...
La "nonna" per accedere allo schermo inizializza i due firmware, poi inizializza il sistema e parte con disegnare a schermo ecc...
Ma la visualizzazione della shell è effettuata da un'altra parte.
Altri dettagli: se tolgo DvdPlayer dall'avvio, non si connette nemmeno più con telnet; eppure i servizi NET sono avviati prima di DvdPlayer con inetd...
Ultima modifica di stedrum; 31-January-2012 alle 11:49 AM
Mio giovane amico, hai fatto delle cose notevoli e ti perdi per delle sciocchezze...
Intanto hai ricompilato il kernel, e questo non e' da poco, ed hai capito che il boot lo fa grub, il prossimo passo dovrebbe essere quello di fare il boot da hard disk, e togliere tutti i limiti ed i problemi causati dall'avere un file system su flash!
Poi, siccome e' comunque uno unix, l'accesso alle periferiche lo si fa tramite devices, si tratta di capire a quale device e' associato lo schermo.
Ecco i devices
Sicuramente il kernel scrive su console, ma lo schermo potrebbe essere tty, si tratta di provare a scrivere su questi devices e vedere quando sporchiamo lo schermo.Codice:root-~>ls -lag /dev drwxr-xr-x 1 root root 0 Dec 31 1969 . drwxr-xr-x 1 root root 2048 Oct 19 13:39 .. crw------- 1 root root 249, 0 Dec 31 1969 .devfsd drwxr-xr-x 1 root root 0 Dec 31 1969 auth lr-xr-xr-x 1 root root 18 Apr 5 2015 cdrom0 -> /dev/cdroms/cdrom0 crw------- 1 root root 5, 1 Jan 31 10:12 console drwxr-xr-x 1 root root 0 Dec 31 1969 discs lr-xr-xr-x 1 root root 11 Apr 5 2015 dvd -> /dev/cdrom0 lr-xr-xr-x 1 root root 10 Apr 5 2015 dvdvr -> /mnt/dvdvr crw-rw-rw- 1 root root 1, 7 Dec 31 1969 full drwxr-xr-x 1 root root 0 Dec 31 1969 i2c drwxr-xr-x 1 root root 0 Dec 31 1969 input crw-r----- 1 root root 1, 2 Dec 31 1969 kmem crw-r--r-- 1 root root 1, 11 Dec 31 1969 kmsg drwxr-xr-x 1 root root 0 Dec 31 1969 loop drwxr-xr-x 1 root root 0 Dec 31 1969 mcp crw-r----- 1 root root 1, 1 Dec 31 1969 mem drwxr-xr-x 1 root root 0 Dec 31 1969 misc drwxr-xr-x 1 root root 0 Dec 31 1969 mtd drwxr-xr-x 1 root root 0 Dec 31 1969 mtdblock crw-rw-rw- 1 root root 1, 3 Dec 31 1969 null crw-r----- 1 root root 1, 4 Dec 31 1969 port crw------- 1 root root 108, 0 Dec 31 1969 ppp crw-rw-rw- 1 root root 5, 2 Jan 31 10:12 ptmx drwxr-xr-x 2 root root 0 Apr 5 2015 pts drwxr-xr-x 1 root root 0 Dec 31 1969 pty crw-r--r-- 1 root root 1, 8 Dec 31 1969 random drwxr-xr-x 1 root root 0 Dec 31 1969 rd lr-xr-xr-x 1 root root 10 Apr 5 2015 root -> mtdblock/1 drwxr-xr-x 1 root root 0 Dec 31 1969 rpc drwxr-xr-x 1 root root 0 Dec 31 1969 scsi lr-xr-xr-x 1 root root 33 Dec 31 1969 sda -> scsi/host2/bus0/target0/lun0/disc lr-xr-xr-x 1 root root 34 Dec 31 1969 sda1 -> scsi/host2/bus0/target0/lun0/part1 lr-xr-xr-x 1 root root 33 Dec 31 1969 sdb -> scsi/host1/bus0/target0/lun0/disc lr-xr-xr-x 1 root root 34 Dec 31 1969 sdb1 -> scsi/host1/bus0/target0/lun0/part1 lr-xr-xr-x 1 root root 34 Dec 31 1969 sdb2 -> scsi/host1/bus0/target0/lun0/part2 lr-xr-xr-x 1 root root 34 Dec 31 1969 sdb3 -> scsi/host1/bus0/target0/lun0/part3 lr-xr-xr-x 1 root root 34 Dec 31 1969 sdb4 -> scsi/host1/bus0/target0/lun0/part4 crw------- 1 root root 254, 0 Dec 31 1969 se0 lr-xr-xr-x 1 root root 36 Dec 31 1969 sg0 -> scsi/host2/bus0/target0/lun0/generic lr-xr-xr-x 1 root root 36 Dec 31 1969 sg1 -> scsi/host2/bus0/target0/lun1/generic lr-xr-xr-x 1 root root 36 Dec 31 1969 sg2 -> scsi/host1/bus0/target0/lun0/generic drwxr-xr-x 1 root root 0 Dec 31 1969 shm drwxr-xr-x 1 root root 0 Dec 31 1969 tts crw-rw-rw- 1 root root 5, 0 Dec 31 1969 tty crw-r--r-- 1 root root 1, 9 Dec 31 1969 urandom drwxr-xr-x 1 root root 0 Dec 31 1969 usb drwxr-xr-x 1 root root 0 Dec 31 1969 vc drwxr-xr-x 1 root root 0 Dec 31 1969 vcc crw------- 1 root root 234, 50 Dec 31 1969 venus_irrp crw------- 1 root root 234, 2 Dec 31 1969 venus_vfd_keypad crw------- 1 root root 234, 1 Dec 31 1969 venus_vfd_wrctl crw------- 1 root root 234, 0 Dec 31 1969 venus_vfdo crw------- 1 root root 235, 0 Dec 31 1969 watch crw-rw-rw- 1 root root 1, 5 Dec 31 1969 zero
A seguire, il problema della mancanza di telnet consiste molto probabilmente nel fatto che i registri del chip Venus vengono inizializzati da DvdPlayer, per cui se anche
il kernel ha attivato i servizi ad alto livello, in realta' mancano le abilitazioni nell'HW, si tratta percio' di compilare quel dvdplayer che hai e vedere se l'HW parte, e di conseguenza
patchare il kernel per farlo avviare automaticamente.
Io sospetto che la motherboard del player abbia una porta seriale su cui si possa collegare un cavo RS232 e che quella sia la console vera e propria, mentre ti sconsiglio
di installare una JTAG, senza il kit di sviluppo non serve a nulla.
@Hammarby: le sciocchezze su cui mi perdo non sono poi tanto sciocchezze: lo so benissimo che si usano i devices ed ho giÃ* provato a scrivere su tutti i dev possibili! non succede nulla... per questo "mi perdo", semplicemente perchè sul pc funziona, sul media player no anche se si tratta di unix in tutti e due i casi...
E poi se sono sciocchezze, perchè non ci illumini facendolo direttamente tu? Con la teoria siamo tutti bravi
I sorgenti che ho, come giÃ* specificato, sono per hmr351h che usa rtd1262 quindi non sono compatibili; infatti una volta compilati non girano sul 1283(ho provato).
Proverò a vedere con un RS232
Lo sanno tutti che la differenza tra teoria e pratica e' che in teoria non c'e' differenza, ma in pratica si...
Siamo di fronte ad un problema piuttosto serio: c'e' un kernel di sistema operativo che funziona su un certo HW se e solo se un software applicativo viene caricato,
tu hai certamente provato a spegnere dvdplayer e vedere se le connessioni ethernet restano in piedi, no? Che succede?
Ho notato che alcuni applicativi in xml segmentano lo schermo in finestre, ed assegnano aree ai vari canali di stdio, il che significa che da qualche parte c'e' anche
un windows manager, e probabilmente anche questo e' in dvdplayer, ma non si tratta di un X-server, piuttosto di un server interno.
Inutile che ti chieda se hai cercato dei driver Linux per quel chipset, o anche della documentazione, immagino che sia materiale confidenziale.
Resta poco da fare, o si assegna la console ad un device conosciuto, al tempo del system restart, oppure si trova la documentazione o i sorgenti di dvdplayer.
Qualche lettura utile Linux Serial Console HOWTO
Using Netconsole on Linux « I Am, Therefore I Think
Probabilmente il kernel contiene gia' netconsole.
Se fai partire DvdPlayer e poi lo uccidi, le connessioni restano attive.
Diverso è invece se avvi senza DvdPlayer, il sistema sembra bloccato(dico sembra perchè bisognerebbe verificare l'output sulla console).
Tra le milioni di righe di codice e centinaia di cartelle dei sorgenti del 351, ho trovato NanoX/Microwindow che è appunto un server grafico adatto a sistemi embedded.
Non sono sicuro però che l'abbiamo effettivamente usato(ci sono alcuni pacchetti, tipo ipkg che sono presenti nei sorgenti e non nella release. probabilmente avevano in mente di metterli in futuro e altri pacchetti li usano loro per il debug...), devo controllare bene i sorgenti ma è un lavoro da mal di testa perchè il codice non è commentato nemmeno un pò...