gdt: Kangaroo road sign (Default)
[personal profile] gdt

A while back I bought a PVR. It's hard disk is failing and needs to be replaced. So let's have a look at the box.

Topfield allows packages of software to be installed. TMSTelnetd.tap includes Busybox. Install it and reboot. You can then telnet to the machine, log in as root with no password.

# cat /proc/cpuinfo
system type             : BCM97xxx Settop Platform
build target            : 7405b0-topfield
processor               : 0
cpu model               : BMIPS4380 V4.4  FPU V0.1
cpu MHz                 : 402.43
BogoMIPS                : 402.43    ( udelay_val : 201216  HZ = 1000 )
wait instruction        : yes
microsecond timers      : yes
tlb_entries             : 32
extra interrupt vector  : yes
hardware watchpoint     : no
ASEs implemented        : mips16
VCED exceptions         : not available
VCEI exceptions         : not available
RAC setting             : Unknown
unaligned access        : 7938
rdhwr/brdhwr traps      : 0 / 0
process migrations      : 109
processor               : 1
cpu model               : BMIPS4380 V4.4  FPU V0.1
cpu MHz                 : 404.48
BogoMIPS                : 404.48    ( udelay_val : 202240  HZ = 1000 )
wait instruction        : yes
microsecond timers      : yes
tlb_entries             : 32
extra interrupt vector  : yes
hardware watchpoint     : no
ASEs implemented        : mips16
VCED exceptions         : not available
VCEI exceptions         : not available
RAC setting             : Unknown
# pwd
/root
# ls
fuse.ko             libtap.so           rc.user
libgcc_s.so         module.inc          rt2870sta.ko
libgcc_s.so.1       nexus.ko            rt5370sta.ko
libstdc++.so        ntfs-3g             rt73.ko
libstdc++.so.6      osd51.bin           run
libstdc++.so.6.0.9  pvr
# lsmod
Module                  Size  Used by    Tainted: P  
fuse 53168 0 - Live 0xc01d7000
rt73 306416 0 - Live 0xc0226000
rt2870sta 883584 0 - Live 0xc0417000
rt5370sta 1077760 0 - Live 0xc030e000
nexus 3905872 32 - Live 0xc065b000

So this is a Broadcom PVR system-on-chip. Broadcom provide the nexus.ko as a API to the system. That is pretty much a showstopper for a simple upgrade of the kernel. The pvr program is a C++ program which implements the user interface, recording reservations and so on. When pvr exits the system shuts down.

# cat /proc/version 
Linux version 2.6.18-7.1 (songhn@hdpvr.topfield.co.kr) (gcc version 4.2.0 20070124 (prerelease) - BRCM 11ts-20090508) #2 SMP Mon Nov 18 20:01:29 KST 2013

Why would we want to upgrade the kernel? Because the kernel version 2.6.18 has no explicit support for Advanced Format (4KB sector) hard disks.

# mount
rootfs on / type rootfs (rw)
none on /proc type proc (rw)
none on /sys type sysfs (rw)
none on /dev/pts type devpts (rw)
none on /proc/bus/usb type usbfs (rw)
/dev/sda1 on /mnt/games type jfs (rw,nointegrity)
/dev/sda2 on /mnt/hd type jfs (rw,nointegrity)

"nointegrity" is why when the PVR crashes you lose your recorded program. It's not clear to me why a designer would make that choice.

# cat /proc/cmdline 
 mac=00:0E:9E:03:D2:19 sysid=32030 version=258 flashsize=0x1000000 console=ttyS0,115200 rw

Looks like the bootloader passes in the MAC address.

# cat meminfo 
MemTotal:       319076 kB
MemFree:        242964 kB
Buffers:             8 kB
Cached:          51100 kB
SwapCached:          0 kB
Active:          20848 kB
Inactive:        33476 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:       319076 kB
LowFree:        242964 kB
SwapTotal:           0 kB
SwapFree:            0 kB
Dirty:               0 kB
Writeback:           0 kB
AnonPages:        3192 kB
Mapped:           2768 kB
Slab:             8796 kB
PageTables:        380 kB
NFS_Unstable:        0 kB
Bounce:              0 kB
CommitLimit:    159536 kB
Committed_AS:     8120 kB
VmallocTotal:   786424 kB
VmallocUsed:      7912 kB
VmallocChunk:   776096 kB
# cat /proc/mtd 
dev:    size   erasesize  name
mtd0: 00c00000 00020000 "program"
mtd1: 00080000 00020000 "cfe"
mtd2: 00260000 00020000 "kernel"
mtd3: 00100000 00020000 "data"
mtd4: 00020000 00020000 "nvram"
# cat partitions 
major minor  #blocks  name
   8     0  488386584 sda
   8     1    2097152 sda1
   8     2  486286849 sda2
  31     0      12288 mtdblock0
  31     1        512 mtdblock1
  31     2       2432 mtdblock2
  31     3       1024 mtdblock3
  31     4        128 mtdblock4

The usual plague of unused devices, but the Nexus devices stand out.

# ls -l
crw-------    1 root     root       5,   1 Jan  1 00:00 console
crw-------    1 root     root      13,  64 Jan  1 00:00 event0
crw-------    1 root     root      13,  65 Jan  1 00:00 event1
crw-------    1 root     root      13,  66 Jan  1 00:00 event2
crw-------    1 root     root      13,  67 Jan  1 00:00 event3
brw-------    1 root     root       3,   0 Jan  1 00:00 hda
brw-------    1 root     root       3,   1 Jan  1 00:00 hda1
brw-------    1 root     root       3,   2 Jan  1 00:00 hda2
brw-------    1 root     root       3,   3 Jan  1 00:00 hda3
brw-------    1 root     root       3,   4 Jan  1 00:00 hda4
brw-------    1 root     root       3,   5 Jan  1 00:00 hda5
brw-------    1 root     root       3,   6 Jan  1 00:00 hda6
brw-------    1 root     root      22,   0 Jan  1 00:00 hdc
brw-------    1 root     root      22,   1 Jan  1 00:00 hdc1
brw-------    1 root     root      22,   2 Jan  1 00:00 hdc2
brw-------    1 root     root      22,   3 Jan  1 00:00 hdc3
brw-------    1 root     root      22,   4 Jan  1 00:00 hdc4
brw-------    1 root     root      22,   5 Jan  1 00:00 hdc5
brw-------    1 root     root      22,   6 Jan  1 00:00 hdc6
crw-------    1 root     root       1,   2 Jan  1 00:00 kmem
srw-rw-rw-    1 root     root            0 Jan  1 00:00 log
brw-------    1 root     root       7,   0 Jan  1 00:00 loop0
brw-------    1 root     root       7,   1 Jan  1 00:00 loop1
brw-------    1 root     root       7,  10 Jan  1 00:00 loop10
brw-------    1 root     root       7,  11 Jan  1 00:00 loop11
brw-------    1 root     root       7,  12 Jan  1 00:00 loop12
brw-------    1 root     root       7,  13 Jan  1 00:00 loop13
brw-------    1 root     root       7,  14 Jan  1 00:00 loop14
brw-------    1 root     root       7,  15 Jan  1 00:00 loop15
brw-------    1 root     root       7,   2 Jan  1 00:00 loop2
brw-------    1 root     root       7,   3 Jan  1 00:00 loop3
brw-------    1 root     root       7,   4 Jan  1 00:00 loop4
brw-------    1 root     root       7,   5 Jan  1 00:00 loop5
brw-------    1 root     root       7,   6 Jan  1 00:00 loop6
brw-------    1 root     root       7,   7 Jan  1 00:00 loop7
brw-------    1 root     root       7,   8 Jan  1 00:00 loop8
brw-------    1 root     root       7,   9 Jan  1 00:00 loop9
crw-------    1 root     root       1,   1 Jan  1 00:00 mem
crw-------    1 root     root      90,   0 Jan  1 00:00 mtd0
crw-------    1 root     root      90,   2 Jan  1 00:00 mtd1
crw-------    1 root     root      90,   4 Jan  1 00:00 mtd2
crw-------    1 root     root      90,   6 Jan  1 00:00 mtd3
crw-------    1 root     root      90,   8 Jan  1 00:00 mtd4
crw-------    1 root     root      90,  10 Jan  1 00:00 mtd5
crw-------    1 root     root      90,  12 Jan  1 00:00 mtd6
brw-------    1 root     root      31,   0 Jan  1 00:00 mtdblock0
brw-------    1 root     root      31,   1 Jan  1 00:00 mtdblock1
brw-------    1 root     root      31,   2 Jan  1 00:00 mtdblock2
brw-------    1 root     root      31,   3 Jan  1 00:00 mtdblock3
brw-------    1 root     root      31,   4 Jan  1 00:00 mtdblock4
brw-------    1 root     root      31,   5 Jan  1 00:00 mtdblock5
brw-------    1 root     root      31,   6 Jan  1 00:00 mtdblock6
crw-------    1 root     root      90,   1 Jan  1 00:00 mtdr0
crw-------    1 root     root      90,   3 Jan  1 00:00 mtdr1
crw-------    1 root     root      90,   5 Jan  1 00:00 mtdr2
crw-------    1 root     root      90,   7 Jan  1 00:00 mtdr3
crw-------    1 root     root      90,   9 Jan  1 00:00 mtdr4
crw-------    1 root     root      90,  11 Jan  1 00:00 mtdr5
crw-------    1 root     root      90,  13 Jan  1 00:00 mtdr6
crw-r--r--    1 root     root      33,   3 Jan  1 00:00 nexus_audio
crw-r--r--    1 root     root      33,  14 Jan  1 00:00 nexus_core
crw-r--r--    1 root     root      33,   2 Jan  1 00:00 nexus_display
crw-r--r--    1 root     root      33,   9 Jan  1 00:00 nexus_dma
crw-r--r--    1 root     root      33,  11 Jan  1 00:00 nexus_gpio
crw-r--r--    1 root     root      33,   6 Jan  1 00:00 nexus_graphics2d
crw-r--r--    1 root     root      33,   5 Jan  1 00:00 nexus_hdmi_output
crw-r--r--    1 root     root      33,  12 Jan  1 00:00 nexus_i2c
crw-r--r--    1 root     root      33,   0 Jan  1 00:00 nexus_platform
crw-r--r--    1 root     root      33,  15 Jan  1 00:00 nexus_proxy
crw-r--r--    1 root     root      33,  10 Jan  1 00:00 nexus_security
crw-r--r--    1 root     root      33,  13 Jan  1 00:00 nexus_smartcard
crw-r--r--    1 root     root      33,   7 Jan  1 00:00 nexus_surface
crw-r--r--    1 root     root      33,   1 Jan  1 00:00 nexus_sync_channel
crw-r--r--    1 root     root      33,   8 Jan  1 00:00 nexus_transport
crw-r--r--    1 root     root      33,   4 Jan  1 00:00 nexus_video_decoder
crw-------    1 root     root       1,   3 Jan  1 00:00 null
crw-------    1 root     root       5,   2 Jan  1 08:32 ptmx
drwxr-xr-x    2 root     root            0 Jan  1 00:00 pts
brw-------    1 root     root       1,   0 Jan  1 00:00 ram0
brw-------    1 root     root       1,   1 Jan  1 00:00 ram1
crw-------    1 root     root       1,   8 Jan  1 00:00 random
brw-------    1 root     root       1,   0 Jan  1 00:00 root
brw-------    1 root     root      11,   0 Jan  1 00:00 scd0
brw-------    1 root     root      11,   1 Jan  1 00:00 scd1
brw-------    1 root     root       8,   0 Jan  1 00:00 sda
brw-------    1 root     root       8,   1 Jan  1 00:00 sda1
brw-------    1 root     root       8,   2 Jan  1 00:00 sda2
brw-------    1 root     root       8,   3 Jan  1 00:00 sda3
brw-------    1 root     root       8,   4 Jan  1 00:00 sda4
brw-------    1 root     root       8,   5 Jan  1 00:00 sda5
brw-------    1 root     root       8,   6 Jan  1 00:00 sda6
brw-------    1 root     root       8,  16 Jan  1 00:00 sdb
brw-------    1 root     root       8,  17 Jan  1 00:00 sdb1
brw-------    1 root     root       8,  18 Jan  1 00:00 sdb2
brw-------    1 root     root       8,  19 Jan  1 00:00 sdb3
brw-------    1 root     root       8,  20 Jan  1 00:00 sdb4
brw-------    1 root     root       8,  21 Jan  1 00:00 sdb5
brw-------    1 root     root       8,  22 Jan  1 00:00 sdb6
brw-------    1 root     root       8,  32 Jan  1 00:00 sdc
brw-------    1 root     root       8,  33 Jan  1 00:00 sdc1
brw-------    1 root     root       8,  34 Jan  1 00:00 sdc2
brw-------    1 root     root       8,  35 Jan  1 00:00 sdc3
brw-------    1 root     root       8,  36 Jan  1 00:00 sdc4
brw-------    1 root     root       8,  37 Jan  1 00:00 sdc5
brw-------    1 root     root       8,  38 Jan  1 00:00 sdc6
brw-------    1 root     root       8,  48 Jan  1 00:00 sdd
brw-------    1 root     root       8,  49 Jan  1 00:00 sdd1
brw-------    1 root     root       8,  50 Jan  1 00:00 sdd2
brw-------    1 root     root       8,  51 Jan  1 00:00 sdd3
brw-------    1 root     root       8,  52 Jan  1 00:00 sdd4
brw-------    1 root     root       8,  53 Jan  1 00:00 sdd5
brw-------    1 root     root       8,  54 Jan  1 00:00 sdd6
brw-------    1 root     root       8,  64 Jan  1 00:00 sde
brw-------    1 root     root       8,  65 Jan  1 00:00 sde1
brw-------    1 root     root       8,  66 Jan  1 00:00 sde2
brw-------    1 root     root       8,  67 Jan  1 00:00 sde3
brw-------    1 root     root       8,  68 Jan  1 00:00 sde4
brw-------    1 root     root       8,  69 Jan  1 00:00 sde5
brw-------    1 root     root       8,  70 Jan  1 00:00 sde6
brw-------    1 root     root      11,   0 Jan  1 00:00 sr0
brw-------    1 root     root      11,   1 Jan  1 00:00 sr1
crw-------    1 root     root       5,   0 Jan  1 00:00 tty
crw-------    1 root     root       4,   0 Jan  1 00:00 tty0
crw-------    1 root     root       4,   1 Jan  1 00:00 tty1
crw-------    1 root     root       4,   2 Jan  1 00:00 tty2
crw-------    1 root     root       4,   3 Jan  1 00:00 tty3
crw-------    1 root     root       4,   4 Jan  1 00:00 tty4
crw-------    1 root     root       4,   5 Jan  1 00:00 tty5
crw-------    1 root     root       4,  64 Jan  1 00:00 ttyS0
crw-------    1 root     root       4,  65 Jan  1 08:32 ttyS1
crw-------    1 root     root       4,  66 Jan  1 00:00 ttyS2
crw-------    1 root     root       1,   9 Jan  1 00:00 urandom
crw-------    1 root     root       1,   5 Jan  1 00:00 zero
This account has disabled anonymous posting.
(will be screened)
(will be screened)
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org

Profile

gdt: Kangaroo road sign (Default)
Glen Turner

September 2021

S M T W T F S
   1234
567891011
121314151617 18
19202122232425
2627282930  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated 2026-01-01 22:22
Powered by Dreamwidth Studios