Internals
From OpenTViX
Hardware specs
Hardware (TViX M-4000 / M-5000)
|
|
Hardware (TViX M-4100SH / M-5100SH)
|
|
Hardware (TViX M-6500A / M-7000)
|
|
Internal File System Layout
Notes about the internal file system need to go here.
System Start up Sequence
- Bootstrap - The bootloader will start the Linux Kernel.
- Kernel boot - The Kernel starts. We do not yet have the ability to change the Kernel, but we can build new modules to provide extra functionality.
- init - The init program runs the instructions in /etc/inittab
- init scripts - The inittab file instructs the init task to run the /etc/init.d/rcS script
- rcS - The /etc/init.d/rcS script loops over the startup scripts in /etc/init.d and runs any starting with S*.
- S01sysinit
- mounts the /proc, /sys and / filesystems
- brings up and configures the loopback network interface
- configures ld.so.cache
- S20urandom - initialises the random number seed
- S40network
- inserts the network driver kernel modules r8169 and r8169too
- starts the network interface
- S50modules
- mounts /mnt/jffs2_apps
- mounts /mnt/jffs2_fonts
- initialises devices
- loads modules
- makes the /tmp/mnt directory structure
- S01sysinit
- dvico_init - the inittab script continues and runs the /bin/dvico_init script, setting it to respawn
- mounts /tmp/mnt/usb1
- runs /tvix/starter
- runs /tvix/dtv_bin/main_dtv
- runs /tvix/main
- /tvix/main - this is where we hijack the tvix and add our own functionalty. BadEIP has renamed the original /tvix/main to /tvix/main.dvico. This script first does what we want and then runs the original /tvix/main.dvico program
- mounts the /opt/opentvix from either the usb or sda drives
- runs /opt/opentvix/init
- init remounts /tvix/jffs2* filesystems as writable
- init checks if there is a new opentvix version downloaded and replaces the current one - reboots after update
- init creates symbolic links to all of our extra libraries and kernel modules etc
- init starts the extra daemons in /opt/opentvix/etc/init.d
- S00paths - creates symbolic links to binaries
- S10crond - runs cron daemon
- S15portmap - runs portmap daemon
- S20sshd - runs the dropbear sshd daemon
- S30smbd - runs the samba daemon (obsolete - should be disabled in firmware 1.3.150 and above)
- S31nmbd - runs NetBIOS daemon (obsolete - should be disabled in firmware 1.3.150 and above)
- S40httpd - runs web server
- S50fuse - loads fuse module and initialises
- S60dvdfs - initialises dvdfs
- S70dctcs - starts web based ctorrent manager
- S80cpumon - starts cpumon daemon
- S90appletrailerfs - starts apple trailer filesystem
- init mounts the folders in automount
- init runs conf/init.user additions
- start ird if enabled
- start fip if enabled
- starts httpd on port 81, for emergencies or initial installation
- starts original main program
- loops forever
- syslog/klog - finally, the inittab runs the system logs
The main task written by dvico handles some of the functionality you would expect the system to handle, this is very annoying because it stops us improving these elements:
- ftp daemon

