The player opens /dev/empeg_state
and can store up to 126
bytes of info (well, it has a 128 byte block but there's a CRC-16 at the end).
In case of a power fail, the kernel dumps the latest complete
/dev/empeg_state
128 byte block to flash.
On power up, the kernel finds the latest valid block in flash and makes it
available in /dev/empeg_state
.
The kernel has to do it as there are, well, hard real-time constraints on
the task - like running out of power to the CPU and flash :)
The file /proc/empeg_power
can be used to tell whether the
empeg is docked in the cage or using the AC power adapter.
The empeg runs a modified Linux kernel. Here are the beta6 developer image boot-up messages:
empeg-car v0.04 19990121 (altman@empeg.com) If there is anyone present who wants to upgrade the flash, let them speak now, or forever hold their peace...it seems not. Let fly the Penguins of Linux! Clearing 8Mb of RAM... Copying kernel... Calling linux kernel... Uncompressing Linux...done. Now booting the kernel Linux version 2.2.9-rmk3-np9-empeg8 (mac@fatboy.internal.empeg.com) (gcc version egcs-2.91.66 19990325/philb (egcs-1.1.2 release)) #112 Fri Sep 3 21:28:08 BST 1 999 NetWinder Floating Point Emulator V0.94.1 (c) 1998 Corel Computer Corp. Calibrating delay loop... 208.08 BogoMIPS Memory: 7376k/8M available (548k code, 20k reserved, 244k data, 4k init) POSIX conformance testing by UNIFIX Linux NET4.0 for Linux 2.2 Based upon Swansea University Computer Society NET3.039 Starting kswapd v 1.5 SA1100 serial driver version 4.26 with no serial options enabled ttyS00 at 0xf8010000 (irq = 15) is a SA1100 UART ttyS01 at 0xf8050000 (irq = 17) is a SA1100 UART ttyS02 at 0xf8030000 (irq = 16) is a SA1100 UART Linux video capture interface: v1.00 empeg FM radio driver. empeg audio driver initialized empeg infra-red support initialised. empeg usb initialised, USBN9602 revision 1 empeg display initialised. empeg state support initialised. empeg RDS driver initialised RAM disk driver initialized: 16 RAM disks of 4096K size empeg dual channel IDE No drives responded - waiting & retrying hda: TOSHIBA MK1011GAV, ATA DISK drive ide0 at 0x040-0x047,0x078 on irq 7 hda: TOSHIBA MK1011GAV, 9590MB w/0kB Cache, CHS=19485/16/63 Partition check: hda: hda1 hda2 hda3 hda4 RAMDISK: ext2 filesystem found at block 0 RAMDISK: Loading 320 blocks [1 disk] into ram disk... done. VFS: Mounted root (ext2 filesystem). empeg-pump v0.03 (19980601) Press Ctrl-A to enter pump...VFS: Mounted root (ext2 filesystem) readonly. change_root: old root has d_count=1 Trying to unmount old root ... okay Freeing unused kernel memory: 4k initI see this is a developer image! Mounting proc Mounting first music partition Mounting second music partition Tried to mount /drive1 but got error 15 Error mounting partitions (possibly already mounted) Remounting first music partition read-only Remounting second music partition read-only No secondary hard disk Press 'q' now to go into development mode. You Have 1 Second To Comply... q Switched to development moStarting bash. bash-2.01#
A kernel with PPP support is also available. Its boot-up messages are as follows:
empeg-car v0.04 19990121 (altman@empeg.com) If there is anyone present who wants to upgrade the flash, let them speak now, or forever hold their peace...it seems not. Let fly the Penguins of Linux! Clearing 8Mb of RAM... Copying kernel... Calling linux kernel... Uncompressing Linux...done. Now booting the kernel Linux version 2.2.9-rmk3-np9-empeg7 (altman@sleeper) (gcc version egcs-2.91.60 1 9990113/philb (egcs-1.1.1 release)) #349 Thu Sep 9 11:12:11 BST 1999 NetWinder Floating Point Emulator V0.94.1 (c) 1998 Corel Computer Corp. Calibrating delay loop... 208.08 BogoMIPS Memory: 7124k/8M available (788k code, 20k reserved, 256k data, 4k init) POSIX conformance testing by UNIFIX Linux NET4.0 for Linux 2.2 Based upon Swansea University Computer Society NET3.039 NET4: Linux TCP/IP 1.0 for NET4.0 IP Protocols: ICMP, UDP, TCP Starting kswapd v 1.5 SA1100 serial driver version 4.26 with no serial options enabled ttyS00 at 0xf8010000 (irq = 15) is a SA1100 UART ttyS01 at 0xf8050000 (irq = 17) is a SA1100 UART ttyS02 at 0xf8030000 (irq = 16) is a SA1100 UART Linux video capture interface: v1.00 empeg FM radio driver. empeg audio driver initialized empeg infra-red support initialised. empeg usb initialised, USBN9602 revision 1 empeg display initialised. empeg state support initialised. empeg RDS driver initialised RAM disk driver initialized: 16 RAM disks of 4096K size empeg dual channel IDE request_module[ide-probe]: Root fs not mounted request_module[ide-probe]: Root fs not mounted No drives responded - waiting & retrying hda: TOSHIBA MK1011GAV, ATA DISK drive ide0 at 0x040-0x047,0x078 on irq 7 hda: TOSHIBA MK1011GAV, 9590MB w/0kB Cache, CHS=19485/16/63 PPP: version 2.3.7 (demand dialling) TCP compression code copyright 1989 Regents of the University of California PPP line discipline registered. Partition check: hda: hda1 hda2 hda3 hda4 RAMDISK: ext2 filesystem found at block 0 RAMDISK: Loading 320 blocks [1 disk] into ram disk... done. VFS: Mounted root (ext2 filesystem). empeg-pump v0.03 (19980601) Press Ctrl-A to enter pump...VFS: Mounted root (ext2 filesystem) readonly. change_root: old root has d_count=1 Trying to unmount old root ... okay Freeing unused kernel memory: 4k initI see this is a developer image! Mounting proc Mounting first music partition Mounting second music partition kmod: failed to exec /sbin/modprobe -s -k block-major-22, errno = 2 Tried to mount /drive1 but got error 15 Error mounting partitions (possibly already mounted) Remounting first music partition read-only Remounting second music partition read-only No secondary hard disk Press 'q' now to go into development mode. You Have 1 Second To Comply... q Switched to development mode Starting bash. kmod: failed to exec /sbin/modprobe -s -k net-pf-1, errno = 2 bash-2.01#Contributed by Rob Leslie