Logging Into The DMP1
From Omnifi Wiki
| Quick Links |
![]() |
| Related topics |
|
The following are simple steps to enable yourself to log into the DMP1 (to take a look around, of course)...
Contents |
Prep:
- You'll need to ensure that you've got Wireless Networking working for your DMP1. Enable WEP as a precaution. Read about them here HowTo#Setup.
- Ensure DMP1 has Openfi installed. Go here to get it. When installing OpenFi onto your DMP1, there will be a file in the /transfer directory called etc_hosts file. Edit this file while it's still attached to your PC. Mine looks like the following:
- Get to a machine with rlogin installed. Many Linux installations have this. In Cygwin, rlogin is included in the "inetutils" package (found under the "Net" category). Or, you can also obtain a copy from here and install it manually. For Winderz peeps, putty is a good, free solution. download from here. You'll only need the puTTY (telnet and SSH client) only.
- Make sure your DMP1 has the latest firmware (2.0.315) installed for best performance.
- If you know you're going to be in there for a while, do what I do: I bought a car battery charger (not for this application, but it's very handy). Put your car on the battery charger or else you'll run down your battery!
- Turn the ignition on!
# pwd /transfer # more etc_hosts IP address name alias ---------- ---- ----- 127.0.0.1 localhost.localdomain localhost 192.168.100.1 ppphost 10.0.1.11 andydesk 192.168.1.1 wormhole.mshome.net wormhole 192.168.1.15 dmp1.mshome.net dmp1 192.168.1.10 dms1.mshome.net dms1 192.168.1.8 vector.mshome.net vector 192.168.1.6 suse.mshome.net suse 192.168.1.100 999LX2B.mshome.net 999LX2B 192.168.1.110 Betelguese.mshome.net betelguese 192.168.1.111 Antares.mshome.net antares 192.168.1.192 Rigel.mshome.net rigel 192.168.1.254 wirelessb.mshome.net wirelessb # _
wormhole is my router to the Internet
vector, suse are my linux boxes
999LX2B is my WinXp laptop
You get the idea...
The first three lines were already in the etc_hosts file - leave the 127.0.0.1 entry and you can get rid of everything else, and substitute your own. This etc_hosts will be loaded, overwriting your DMP1's generic /etc/hosts when it starts up.
Doing so helps rlogin go much quicker. Otherwise, you may wait up to a few minutes while the DMP1 tries to lookup your machine name (and eventually times out) before you can get to a bash prompt.
Logging On
- Go to your PC with rlogin installed. From the command prompt, type in:
- Open up another shell and issue the following command:
- At this stage in the game, you cannot put anything up on to the DMP1.
- The ftp user "root" logs into the /root as his ftproot. The ftp user "sync" logs into the /sync as his ftproot. In both cases, they should start to be able to put something right up there, but they can't until you invoke the following from the rlogin commandline:
- Don't forget to Write Disable the HD cartridge with the following command:
[root@vector~]# rlogin -l root dmp1
or
[root@vector~]# rlogin -l root 192.168.1.15
If you're already logged onto your Linux machine as root (I know, I know, that's not a good thing to do), then you can leave off the -l root from the command.
You'll boot right into your DMP1, without a password:
[root@vector~]# rlogin -l root dmp1 BusyBox v0.60.3 (2003.02.20-23:40+0000) Built-in shell (ash) Enter 'help' for a list of built-in commands. # _
Wheee!
[root@vector~]# ftp dmp1 Connected to dmp1.mshome.net. 220 bftpd 1.0.24 at 192.168.1.15 ready. Name (dmp1:root): 230 User logged in. Remote system type is UNIX. Using binary mode to transfer files. ftp> _
# pwd 257 "/root" is the current working directory. ftp> cd /sync/transfer 250 OK ftp> lcd dmp1 Local directory now /root/dmp1 ftp> put hello local: hello remote: hello 200 PORT 192.168.1.8:1091 OK 553 Error: Permission denied. ftp> _
Why? If you look at the fs mounts, you'll see the following (in the ARM's busybox):
# mount /dev/mtdblock/5 on /.persistent type ext2 (ro) /dev/discs/disc0/part1 on /storage/disc1 type vfat (ro,uid=500,gid=500) /storage/disc1/transfer on /sync/transfer type none (rw,bind) /storage/disc1/usr on /sync/usr type none (rw,bind) /storage/disc1/transfer/hotplug on /hotplug type none (rw,bind) # _
# discWE #
This Write-Enables the HD cartridge. Now your FTP attempt will work.
ftp> put hello local: hello remote: hello 200 PORT 192.168.1.8:1092 OK 150 BINARY data connection established. 226 File transmission successful. 3144 bytes sent in 0.323 secs (9.5 Kbytes/sec) ftp> _
Yay!
# discWD # _
You Want To Upload Something To The Music_Collections Folder?
Really! Well, here's how:
- From the rlogin shell, type:
- From the FTP shell, issue:
- Navigate into it, and put a file out there:
- Don't forget to turn off the Write Enable:
- Actually, if you have WSFTPLE (like I do), then you can use that to navigate to the /storage/disc1/Music_Collection folder and upload (or download) entire folders and directory structures! Very handy. Remember that discWE needs to be enabled before writing anything up there. Windows users may be able to user PuTTY and WSFTP to login and FTP files around.
# discWE # _
[root@vector~]# ftp dmp1 Connected to dmp1.mshome.net. 220 bftpd 1.0.24 at 192.168.1.15 ready. Name (dmp1:root): 230 User logged in. Remote system type is UNIX. Using binary mode to transfer files. ftp> cd /storage/disc1 250 OK ftp> ls 200 PORT 192.168.1.8:1094 OK 150 BINARY data connection established. drwxr-xr-x 110 sync sync 16384 Aug 7 22:14 Music_Collection drwxr-xr-x 2 sync sync 16384 Aug 8 23:29 Recycled drwxr-xr-x 3 sync sync 16384 Aug 11 07:18 System Volume Information drwxr-xr-x 5 sync sync 16384 Sep 3 12:07 transfer drwxr-xr-x 7 sync sync 16384 Aug 7 22:14 usr 226 Directory list has been submitted. ftp> _
Aha! There's that Music_Collection folder!
ftp> cd Music_Collection 250 OK ftp> put test.mp3 local: test.mp3 remote: test.mp3 200 PORT 192.168.1.8:1097 OK 150 BINARY data connection established. 226 File transmission successful. 3144 bytes sent in 0.00182 secs (1.7e+03 Kbytes/sec) ftp> bye 221 See you later... [root@vector~]# _
# discWD # _
Any you're pretty much done.
Running 'dmesg' For Troubleshooting
Used for troubleshooting and dumping the contents of the kernel buffer(? correct me, Andy or Chad), the 'dmesg' command is a handy tool for inspecting what might be going on. To invoke run the command as follows:
# dmesg
I've gratuitously plagarized an output from jsbridgeford on August 6, when he posted one of his own. Here is a sample output:
# dmesg Linux version 2.4.18-rmk7 (root@LinuxBuild) (gcc version 2.95.3 20010315 (release)) #605 Mon Nov 24 02:20:35 PST 2003 CPU: ARM ARM720T revision 2 Machine: Cirrus Logic 7212/7312 On node 0 totalpages: 4096 zone(0): 4096 pages. zone(1): 0 pages. zone(2): 0 pages. Kernel command line: root=/dev/mtdblock4 devfs=mount console=/dev/null 3 R2 Relocating machine vectors to 0xffff0000 Calibrating delay loop... 44.95 BogoMIPS Memory: 16MB = 16MB total Memory: 14136KB available (1564K code, 349K data, 40K init) Dentry-cache hash table entries: 2048 (order: 2, 16384 bytes) Inode-cache hash table entries: 1024 (order: 1, 8192 bytes) Mount-cache hash table entries: 512 (order: 0, 4096 bytes) Buffer-cache hash table entries: 1024 (order: 0, 4096 bytes) Page-cache hash table entries: 4096 (order: 2, 16384 bytes) POSIX conformance testing by UNIFIX Linux NET4.0 for Linux 2.4 Based upon Swansea University Computer Society NET3.039 Initializing RT netlink socket Starting kswapd devfs: v1.10 (20020120) Richard Gooch (rgooch@atnf.csiro.au) devfs: boot_options: 0x1 ttyAM%d0 at I/O 0x100 (irq = 12) is a CLPS711x ttyAM%d1 at I/O 0x1100 (irq = 28) is a CLPS711x pty: 256 Unix98 ptys configured Loading cs4340 driver built on Nov 24 2003 at 02:21:03 s485drv loaded -- version 10005 build on Nov 24 2003 at 02:21:01 block: 64 slots per queue, batch=16 SCSI subsystem driver Revision: 1.00 physmap flash device: 400000 at 0 Performing cfi_probe probe ... <7>0: offset=0x0,size=0x20000,blocks=32 Using buffer write method success Creating 5 MTD partitions on "Physically mapped flash": 0x00000000-0x00020000 : "ARMboot" 0x00020000-0x00160000 : "Rescue Kernel" 0x00160000-0x00260000 : "Production Kernel" 0x00260000-0x003e0000 : "Root FS" 0x003e0000-0x00400000 : "Persistent" init_module invoked !!!!!!!!!!!!!!!WE HAVE DEVFS!!!!!!!!!!!!!!! usb.c: registered new driver usbdevfs usb.c: registered new driver hub usb-uhc124.c: $Revision: 1.2 $ time 02:21:27 Nov 24 2003 INFO: UHC124 Host Controller Driver Mapped to 20000000, ptrUHC124=c203f000 Mapped SRAM to c204d000 Mapped to 80000000, ptrPORT_D=c2041000 write to c2041043 and c2041003 MEMORY CONFIGURATION is 98171714 MEMORY CONFIGURATION is 98171714 PLL MULTIPLIER is 31000000 INFO: UHC124 memory test successful usb.c: new USB bus registered, assigned bus number 1 INFO: UHC124 at IRQ 5 INFO: bytes_spread = 1 hub.c: USB hub found hub.c: 1 port detected CONFIGURED HOTPLUGGING call_policy add, num 1 -- no FS yet<6>usb-uhc124.c: v1.0:UHC124 Host Controller Interface driver pegasus.c: v0.4.22 (2001/12/07):Pegasus/Pegasus II USB Ethernet driver usb.c: registered new driver pegasus kaweth.c: Driver loading usb.c: registered new driver kaweth Initializing USB Mass Storage driver... usb.c: registered new driver usb-storage USB Mass Storage support registered. prism2_init_module: prism2_usb.o: 0.1.15 Loaded prism2_init_module: dev_info is: prism2_usb usb.c: registered new driver prism2_usb NET4: Linux TCP/IP 1.0 for NET4.0 IP Protocols: ICMP, UDP, TCP IP: routing cache hash table of 512 buckets, 4Kbytes TCP: Hash tables configured (established 1024 bind 1024) NET4: Unix domain sockets 1.0/SMP for Linux NET4.0. Fast Floating Point Emulator V0.9 (c) Peter Teichmann. VFS: Mounted root (cramfs filesystem). Mounted devfs on /dev Freeing init memory: 40K Warning: unable to open an initial console. hub.c: USB new device connect on bus1/1, assigned device number 2 hub.c: USB hub found hub.c: 4 ports detected CONFIGURED HOTPLUGGING kusbd: /sbin/hotplug add 2<6>hub.c: USB new device connect on bus1/1/1, assigned device number 3 CONFIGURED HOTPLUGGING kusbd: /sbin/hotplug add 3<6>hub.c: USB new device connect on bus1/1/4, assigned device number 4 scsi0 : SCSI emulation for USB Mass Storage devices Vendor: TOSHIBA Model: MK2023GAS Rev: MA01 Type: Direct-Access ANSI SCSI revision: 02 Attached scsi disk sda at scsi0, channel 0, id 0, lun 0 SCSI device sda: 39070080 512-byte hdwr sectors (20004 MB) Partition check: /dev/scsi/host0/bus0/target0/lun0: p1 WARNING: USB Mass Storage data integrity not assured USB Mass Storage device found at 4 CONFIGURED HOTPLUGGING kusbd: /sbin/hotplug add 4<6>ident: nic h/w: id=0x8010 1.0.0 ident: pri f/w: id=0x15 1.1.2 ident: sta f/w: id=0x1f 1.4.9 MFI:SUP:role=0x00:id=0x01:var=0x01:b/t=1/1 CFI:SUP:role=0x00:id=0x02:var=0x02:b/t=1/1 PRI:SUP:role=0x00:id=0x03:var=0x01:b/t=1/4 STA:SUP:role=0x00:id=0x04:var=0x01:b/t=1/9 PRI-CFI:ACT:role=0x01:id=0x02:var=0x02:b/t=1/1 STA-CFI:ACT:role=0x01:id=0x02:var=0x02:b/t=1/1 STA-MFI:ACT:role=0x01:id=0x01:var=0x01:b/t=1/1 Prism2 card SN: 000000000001 e28f_open invoked: device type = 0, device num = 6 e28f_open: Opening device e28f_ioctl: invoked, cmd 2, arg -1073743964 e28f_ioctl: E28F_IOCGUSRID Usr ID: 0x56a2 <4>0x0 <4>0x1d <4>0x0 e28f_release invoked # _
Somehow, this means more to Chad, Sanjay and Andy Poling than me... Looks like a bunch of messages I see when my Linux at home starts up. But it is an useful tool, nonetheless (along with that 'strace' I've found!)
Play Around - But Be Careful!
There are a couple of neat programs on there
/sbin/r2lcdwrite - this will put up the Omnifi Logo and say it's upgrading (it really doesn't upgrade, though).
/sbin/r2poweroff - shuts the DMP1 off, fast! But the faceplate LCD remains on... :-/
/sbin/lcdshow - clears the screen, and writes a message out on the middle line
/sbin/lcdshow Bummer, man!
/var/sbin/lcdwrite - Andy uses this in his openfi_start script. It can clear the screen, or write to any line on the screen:
/var/sbin/lcdwrite clear /var/sbin/lcdwrite 0 I wish I were an /var/sbin/lcdwrite 1 Oscar Meyer Weiner! /var/sbin/lcdwrite 2 ;-P
You'll note it takes about 1/2 second to render each line. If you want to make it faster add a "&" character at the end of the lines...
/var/sbin/lcdwrite clear & /var/sbin/lcdwrite 0 I wish I were an & /var/sbin/lcdwrite 1 Oscar Meyer Weiner! & /var/sbin/lcdwrite 2 ;-P &
Have fun! ~lum
See Also
- DMP1 Reverse Engineering Notes Findings by Andy Poling on how the faceplate talks to the DMP1
- DMP1 System Time Hacking Findings on how to work the onboard Real Time Clock and Wake Up Alarm (for those wireless syncs!)
- Logging Into The DMP1 Get on there and play!
- DMP1 Replacement Kernels Dan Zenchelsky's findings on loading a replacement kernel into the DMP1
- DMP1 Enabling a Serial Port Ingenious findings by Dan Zenchelsky on how to gain access to DMP1 kernel through a hidden serial port
External Links
Lumkichi 13:21, 9 Nov 2005 (CST)
