SourceForge Logo Neat Stuff for   (RioCar) Owners  

Click here for hdparm (empeg binary), the Linux tool for manipulating hard disk features.
Click here for smartctl, a Linux tool for diagnosing hard disk failures.
Click here for strace, a Linux tool for tracing system calls (reverse engineering).
Click here for empsync, a Linux tool for managing music on an Empeg car audio player.
Click here for mp3tool, a Linux tool for manipulating tags/headers within .mp3 files.
Click here for aniwrite, a shell tool for writing new boot animations on the player.
Click here for upgrader, a shell tool for applying .upgrade files using ethernet (*nix, windows, mac).

"Hijack" Menu System, with VolAdj, IR-Translate, and much more!

If you find yourself continually having to adjust the player volume up/down for each song, then this hack is exactly what you need to cure the problem. The original VolAdj code was by Richard Lovejoy.

This enhanced version includes a new front panel menu system for controlling the automatic volume adjustment and tons of other stuff. There are separate VolAdj settings for home/car use, preserved over (most) power cycles (initially "Off" after installation). VolAdj options include "Off", "Low", "Medium", and "High", using values suggested by tfabris ("FAQ-Master").

To access the Hijack menu system, press and hold-in either the rotary KNOB, or the (Rio remote) MENU button, until the menu appears. Alternatively, press/release the (Kenwood remote) CD button three times in succession to activate the menu. Once in the menu system, navigate using either the KNOB, or the NEXT/PREV track buttons on the remote. To activate a menu selection, press the KNOB (or CD or MENU button on the remote). To exit from the menu, either wait 5 seconds, or press the front-panel TOP button or (Kenwood remote) '*' or (Rio remote) CANCEL button

Most menu functions utilize the same buttons (KNOB, NEXT/PREV track to move around, CD or MENU to select, TOP or '*' or CANCEL to quit). The menu system has grown considerably since its introduction, and now sports numerous features (click for a list).

Click here for instructions on configuring IR-Translations (for third-party remote controls, or even the stock ones). Certain other settings can also be modified in config.ini, using the syntax shown below:

	voladjlow=0x1800,100,0x1000,25,60     ;default value shown
	voladjmed=0x2000,409,0x1000,27,70     ;default value shown
	voladjhigh=0x2000,3000,0xc00,30,80    ;default value_shown
	temperature_correction=-4             ;default value shown (degrees C)
	button_pacing=20                      ;default value shown (1/100ths of a second)
	old_style=1                           ;use "original style" of hijack menus
	supress_notify=1                      ;for use with [output]notify=1
Click here for more information on using custom VolAdj settings in the config.ini file.

Hijack has built-in FTP and HTTP servers for remote access, and remote playlist browsing capability for use in conjunction with web browsers and audio playback software. To access this feature, just point a web browser at http://your.players.ipaddr/ and click on the link at the bottom of the page.

There is also an evolving ioctl() interface for binding userland extensions into the menu system. If you want to add your own userland application to the menus, check out the comments at the top of hijack.h for details.
There is now an excellent Hijack FAQ hosted at RioCar.Org

Click here for Sony Stalk Info!

Installing the Kernel (easier than you'd expect)

To use this version of the "Hijack" menu system, your car player must already be running v2 or v3 player software from Empeg/Rio. Then, grab the POSIX (Linux and friends) Empeg download.c utility (recently updated to work with USB-Serial adapters!), and compile and run it under Linux as follows:
     cc -O -o download download.c
     ## Power OFF your player, and connect up the factory serial cable
     ./download  ZZZZZZZZZZ.zImage  10000
     ## The program will now prompt you to power up the player
Of course, you'll have to replace the 'ZZZZZZZZZ' with the correct kernel filename (see below),
MS-Windows users should use Tony's Empeg Logo Editor to install the hacked kernel, rather than the download procedure above. Even if you've never installed a custom kernel before, try it, it's much easier than you might expect.

Download Pre-Built Kernels and/or Source Code:

These are for use only with Empeg/RioCar Player Software v2.00 or newer.
Pre-built kernel for all Mk2/Mk2a players v524.hijack.mk2.zImage495936 bytes2017-12-15 09:00
Pre-built Kernel for (older) Mk1 players v524.hijack.mk1.zImage344784 bytes2017-12-15 09:00
Unmodified v2final Mk2/Mk2a kernel binary kernel.v2final.mk2.zImage475748 bytesJan 3 13:45
Unmodified v2final Mk1 kernel binary kernel.v2final.mk1.zImage294308 bytesJan 3 13:45
armlinux toolchain for building kernels. Untar from root-dir and prepend to $PATH. armtools-empeg.tar.bz216 MBBuilt under Redhat-7.0 01-Jan-2002
Roll-your-own armlinux toolchain starter kit. See enclosed README for extra packages required. armtools-empeg-skeleton.tar.gz22422 bytes01-Jan-2002
mcomb's pre-built Hijack kernels with ext3 filesystem support

Is This Safe?

I've been hacking Linux as a member of the core Linux kernel development team since 1992, best known as the original "Linux IDE Guy", writing/maintaining the drivers for ATA/IDE disks, tapes, cdroms, etc.. I wrote my first Pong implementation on an Apple-II computer in 1981. So, I guess I do have a little experience with this stuff.

But even if it does mess things up, just reinstall the original official software (a .upgrade file) again, and it will restore your player back to it's pre-experiment condition. -- Mark Lord

Relative patches and Revision History

v523-v524Get rid of de-duplication for serial notify lines.
v522-v523Fix various issues/bugs to do with the serial port.
v521-v522BlueGigaEmpeg support; IDE tweaks.
v522.tar.bz2Complete v522 kernel source tree (13MB).
v520-v521Fix version number; possibly fix "no DRQ after WRITE".
v519-v520Latest VolAdj code from Richard Lovejoy.
v518-v519Add /proc/df entry for use by Roger's tools.
v517-v518Fix silly bug with powerfail_timeout from v517.
v516-v517Failsafe poweroff in-car, even if player crashes or "no hard disk found". BUGGY, use v518 instead.
v515-v516Fix I2C code (broken since v506), so that tuner works properly again.
v514-v515Omit WhackAMole by default to save RAM.
v513-v514Assembly code fixes for cross-builds on OS/X.
v512-v513Fix missing comma in fidentry code.
v511-v512Fix SelectMode button side-effects during fidentry.
v510-v511Fix b0rked version number; remove leftover DSP debugging code.
v509-v510Enable use of SelectMode button in FidEntry.
v508-v509Add "silent=1" config.ini option, to suppress nearly all Hijack output to serial port.
v507-v508Make hijack compatible with hdparm-9.8.
v506-v507Shave another usec from the I2C zero-bit path.
v505-v506Overhaul I2C code, combining common paths, simplifying, and shortening the timings where possible.
v504-v505Shorten the I2C "start" sequence, recommended by Ben Kamen.
v503-v504Increase wait-for-initial-DRQ on WRITE to 5secs (overkill) to help with SSDs.
v502-v503Fix off-by-one bug in LBA48 support (affects some HGST drives, possibly others).
v501-v502Check for bootp mtype==2 when doing DHCP workaround (nice, but not necessary).
v500-v501Workaround v3alpha11 DHCP client bug; fix bad #ifdef for fidentry functionality.
v499-v500Fix ktelnetd to handle multiple connections.
v500.tar.bz2Complete v500 kernel source tree (13MB).
v498-v499Add rudimentary telnet daemon to kernel; to enable it, use ktelnetd_port=23 in config.ini
v497-v498More tidyups.
v496-v497Tidy up kftpd.c; remove fidentry stuff from mk1 builds
v495-v496Add Whack-A-Mole game.
v494-v495Remove WAM hooks.
v493-v494Insert WAM hooks.
v492-v493Replaced ptable-write-blocked message with printk; added LittleBlueThing's Boot Graphics menu item.
v491-v492Nuked leftover "pump" message from boot time.
v490-v491Fixed version number (was v499!), and added support for long SG_IO timeouts.
v489-v490Add SG_IO SAT Passthru support to the IDE driver, for use by hdparm.
v488-v489Prevent .upgrade files from nuking a modified partition table.
v487-v488Get rid of "Dead temp.sensor" pop-up.
v486-v487Automatically fix temperature sensor if stuck in one-shot mode.
v485-v486Add source code for fixing temperature sensor (not included by default).
v484-v485Add a leading '*' in Vitals for players with cs4231a problems.
v483-v484Improve serial port messages for "CS4231A: not responding".
v482-v483Improve I2C timing by fixing a bit-to-bit bug.
v481-v482Fix decimal fidentry of '2' (broken in v481).
v480-v481Add "decimal_fidentry=1" option for 10-fingered apes to use in config.ini.
v479-v480Add FidEntry button code; put it on PopUp0; replace AM/FM with Tuner on Popup0; beef-up stalk debug; beef-up crash recovery.
v478-v479Add "Src" button label from kenwood rc-600 (behaves similarly to NextSrc, except it cycles AM/FM/AUX/MP3
v477-v478Finish implementation of "FID=001&ext=.xml&OFFSET=5&COUNT=10" for M.Cushman
v476-v477Implement "Kill and Pause Player" menu entry, with progressive kills.
v475-v476Tweak khttp priority: stay at SCHED_RR for files <= 64kB
v474-v475Bump up khttp/kftpd priorities for smoother web interface.
v473-v474Increase LONGLONG knob-press time from 2sec to 3sec.
v472-v473Add ".R" suffix to button label decoder for BUTTONRAW= release events.
v471-v472Make /proc/empeg_screen.png have a transparent background; begin adding .xml running order for Cushman (not working yet).
v470-v471Automatically detect/use the /default.xsl (or whatever) stylesheet.
v469-v470Remove Tuner Adjustments from .config; add ?IGNORE=(whatever) for http.
v468-v469Fixed fake_tuner bug; added Tuner Adjustments to Hijack menu.
v467-v468Show playlist.track info in VitalSigns and on error.
v466-v467Prevent infinite looping in tuner-id detection paths.
v465-v466Tidy up the boot animation code.
v464-v465Added Reboot buttoncode; added QuickTimer to PopUp0.
v463-v464Fix broken LBA48 support -- now tested!
v462-v463Add score-keeping to BreakOut game.
v461-v462Force mono font for khttpd directory listings (for MSIE).
v460-v461Revert v441, and make the serial port user-friendly again.
v459-v460Prevent knob L/R from waking player in standby.
v458-v459Tidy up cs4231a emulation, simulate other sample rates.
v457-v458Improve (dead) cs4231a emulation (fixes slow mute/unmute); remove recent samples from /proc.
v456-v457Permit use of Tuner/Aux even when cs4231a is "not found" (dead).
v455-v456Added nfs-root patch from Thomas Jarosch.
v454-v455Fixed (and actually *tested*) the extmute stuff.
v453-v454Oops.. v453 fixed "SaveSrc" but not "SaveAux"; got both this time.
v452-v453Nuke WakeUp and RestoreSleep (buggy), and combine them into the existing SaveAux/RestoreSrc instead.
v451-v452Add new virtual buttoncodes: WakeUp and RestoreSleep
v450-v451Tweak bus-test messages; cancel bootup messages when knob/L/R are used.
v449-v450Workaround to permit MP3 use when "cs4231a not found".
v448-v449Enable use of button names for extmute_on=/extmute_off= options.
v447-v448Move IDE data line diagnostic code to a better place.
v446-v447Add IDE data line diagnostic to the boot sequence.
v445-v446Suppress -EPIPE errors from kftpd.
v444-v445Added SaveSrc,RestoreSrc,SaveAux,AM,FM virtual buttons; expanded knob menus from 8 to 16 entries.
v443-v444Boost cs4231a gain for sampling FM/AUX visuals; add recent samples to /proc.
v442-v443Enable I2S ("digital out") for all player modes, not only for mpeg.
v441-v442Fix off-by-one bug in v441: serial commands now working again.
v440-v441Isolate player s/w from serial port.
v439-v440Source sync.
v438-v439Fix dimmer-low default for buttons.
v437-v438Fix "charset-" typo in kftpd.
v436-v437Fix compile issue when extra-mem support not configured.
v435-v436I2C/fan-controller protocol twiddles; remove bug workarounds for old v3alphas.
v434-v435Fix reversed "Forced AC/DC" messages at boot.
v433-v434Add encoding info to html playlists.
v432-v433Use UTF-8 for XML charset on v3 players.
v431-v432Add "buttonled_dim=" option to config.ini.
v430-v431Fix printk() bug.
v429-v430Undo changes from v429 (not necessary after all); tidy up other stuff
v428-v429First crack at support for PCA's Mk2 memory expansion board.
v427-v428Undo Jack; publish full tree snapshot.
v426-v427Resyncing my tree; was in a weird state.
v425-v426Add S.M.A.R.T. support; another -ECONRESET fix.
v424-v425Fix -ECONRESET complaints in kftpd.
v423-v424Fix kftpd goof in v423.
v422-v423Improve error reporting in kftpd (BROKEN)
v421-v422Adjust for timezone in hjcd()
v420-v421Cosmetic change.
v419-v420Try to workaround player crash loops by clearing the active playlist.
v418-v419Add popup message for out-of-mem case.
v417-v418Add popup messages for various hard/soft faults.
v416-v417Double-quote track names for Mozilla's Save-To-Disk.
v415-v416Fix Lavatory Floor visual crash-loop for radio/AUX.
v414-v415Minor XML tweaks; remove bogus mem_end test from v414.
v413-v414Quote double-quotes in xml output.
v412-v413Undo v412 changes -- the v411 code looks more correct!
v411-v412Try to fix support for Mk1 memory upgrades (DUD).
v410-v411Fix standby bug in screen blanker.
v409-v410Tidy up extraneous printk's.
v408-v409GOOD: Remove ReservedMem feature (messes up on stock players).
v407-v408DUD: Fixes for TAKEOVER, ReservedMem.
v404-v405DUD: Add EMPEG_HIJACK_TAKEOVER for tonyc.
v403-v404DUD: Add "ReserveMem" menu entry & functionality.
v402-v403Implement backend of ;@MENUEXEC (now fully functional).
v401-v402Add ext3 support to the RO/RW commands.
v400-v401Fix Temperature display and round corners for buttonled levels.
v399-v400Add support for tonyc's song ratings app.
v398-v399Another fix for crashing visuals in v3alpha8.
v397-v398Fix unresponsive player during readahead.
v396-v397Prevent v3a8 crash loops with Lavatory Floor visual.
v395-v396Fix serial notify handling for v3a8 (and beyond).
v394-v395Fix some (rare) bugs in FTP error handling.
v393-v394Add full support for 33-64MB of DRAM (Mk2a).
v392-v393Allow any macro order/combos; Report DRAM size in Vitals; Fix email addr in VERSION strings.
v391-v392Add ;@LOOPBACK and ;@NOLOOPBACK macros for config.ini
v390-v391Rewrite MMU fiddling entirely in C.
v389-v390Fix khttpd access to some /proc/ files; fix mktime().
v388-v389Make it all work on Mk1/Mk2 (broken through v386-v388).
v387-v388Beef up memory test and fault report. Mk2/Mk1 broken.
v386-v387Remove need for Hugo's special 0e000 loader when using extra DRAM. Mk2/Mk1 broken.
v385-v386Added extra memory auto-detection. Mk2/Mk1 broken.
v384-v385Add "stalk_enabled=0" option.
v383-v384Add 32MB Mk2a memory support (compile-time option).
v382-v383Restore full privileges when HTTP passwords are not used.
v381-v382Fixes to HTTP authentication.
v380-v381Add HTTP authentication for web access; revamp security options; lowercase HTML.
v379-v380Allow ';' without intervening space after AC/DC/HOME/WORK macros (for stacking macros).
v378-v379Add m1u and mpg mime-types; convert " into _ in song titles over http.
v377-v378Compute time offset from zoneinfo for clock; get rid of time_offset= from config.ini
v376-v377Slight code-cleanup from v376. No fixes or functional changes.
v375-v376Do zoneinfo logic much earlier, just before config.ini processing.
v374-v375Emulate /etc/localtime.
v373-v374Fix /proc/empeg_notify for v3alpha7.
v372-v373Revert spindown default back to normal for v3alpha7.
v371-v372Ooops.. version check would fail on some v2betas.
v370-v371Reduce default spindown by 2 for v3alphas.
v369-v370Add player_buf access ioctls for yn0t_
v368-v369Remove Pegasus debug msgs from regular build
v367-v368Third time lucky: fix GPSapp or toss it?
v366-v367Fix supress_notify and /proc/empeg_notify for v3alpha6.
v365-v366Try again: fix GPSapp problem from v361
v364-v365Merge USB-ethernet emulation ("PEGASUS") from Mark "Chimaera" Jenkins
v363-v364Fix GPSapp problem from v361?
v362-v363Updated work-around for broken PrevVisuals in v3alpha6.
v361-v362Removed all redundant display code/menu; alpha sorted the quick knob press menu; added Jack.
v360-v361Rewrote EXEC/EXEC_ONCE to run with "/bin/sh -c" prefix; added SITE EXEC; prep'd ;@MENUEXEC (not all there yet)
v359-v360Remove redundant display updates; add menu item to temporarily reenable them.
v358-v359Single-thread ALL display updates (jitter fix!).
v357-v358Improve response of Savearea display.
v356-v357Remove Calculator; fix Savearea display; minor cleanups.
v355-v356Add .flac and .ogg support to khttpd
v354-v355Remove all stalk code from Mk1 builds.
v353-v354Show raw stalk values on Button Codes Display screen.
v352-v353Added ";@DELAY" macro for config.ini
v351-v352Fix "Battery Icon after Standby"; remove "Blanker Action" option from Hijack menus.
v350-v351Fix headlight-sense bug (on startup) in Empeg kernel
v349-v350Restore waving-Tux as default animation (yay!)
v348-v349suppress -ENOENT messages from kftpd filp_open()
v347-v348Updated work-around for broken PrevVisuals in v3alpha5.
v346-v347Fixed all(?) issues with FIDS subdirs stuff.
v345-v346DUD! Do not use (tried to fix some issues with FIDS subdirs stuff).
v344-v345Temporary: have kftpd auto-convert /drive?/fids/* into /empeg/fids?/* to help JEmplode with new fids subdirs.
v343-v344Enhanced support for fids subdirs; added ftpfs (not compiled-in by default): "mount -n -tftpfs none /x -oip=,user=root,pass=xxxx"
v342-v343Added "No-Loopback" option to the Force AC/DC Power Mode menu.
v341-v342Added work-around for broken PrevVisuals in v3alpha3.
v340-v341Ignore stalk in standby; beef up loopback test; remove some dead code; add FTP "SIZE" command.
v339-v340Remove AUX from NextSrc sequence, add "nextsrc_aux_enabled=1" option to re-include it if wanted.
v338-v339Set mimetype to text/xml for .xsl files.
v337-v338Cosmetic changes to the RDS/AF disable code.
v336-v337Removed CONFIG_IRCOMM=y from car2 config; added "Tuner AF Blocking" to menu.
v335-v336Added menu entry to resolve player/apps serial port contention: DC/Car mode only. Big Secret!
v334-v335Modified boot-time pop-up to show "Forced AC/DC.." when active, except when docked with loopback.
v333-v334Replaced v334 with new copy with correct version number. Reduced delay in display_sendcontrol_part2().
v332-v333Fixed fake_tuner (I think); fixed fake_tuner for operation in a "loopback" dock; trying a fix for "battery icon" issue.
v331-v332Fixed tuner in NextSrc; re-added fake_tuner again (not tested).
v330-v331Fixed .L handling in ir_translate.
v329-v330Try to fix Tuner RDS issues ("trace_tuner=1" sample messages, anyone?); remove "fake_tuner" code/option.
v328-v329Added EMPEG_HIJACK_READ_GPLR ioctl.
v327-v328Added extra /proc/flash_* device entries for upcoming release of Linux upgrade tool.
v326-v327Fine-tuned the tuner_id detection code, incorporating ideas from Kim Covil's earlier patch.
v325-v326Added .V flag for triggering translations only when SoundAdj popup is active.
v324-v325Re-added missing stalk button code to list -- hopefully stalks work fine now.
v323-v324Fixed khttpd playlists top-left-corner "Stream" button.
v322-v323Fixed broken .m3u handling in khttpd playlists.
v321-v322Fixed mod(4096) issue with config.ini file parsing: very large config.ini files now work fine.
v320-v321Revamped "Force AC/DC Power Mode" to include settings based on tuner-id.
v319-v320Bah.. humbug.. rewrote most of the Volume Lock code. Now it works. Really. Honest! Want some swampland with that?
v318-v319Fixed bug in "Volume Lock on Boot".
v317-v318Tidied up "Volume Lock on Boot" menu screen.
v316-v317Added "Volume Lock on Boot" menu item to save/restore Last/Current ac/dc volume settings on boot.
v315-v316Remove special case iTunes '_' from khttp.
v314-v315Never released.
v313-v314Fixed open("/dev/empeg_state") to allow multiple readers.
v312-v313Added config.ini option: khttpd_root_index=
v311-v312Ooops.. dock detection can use only 7-bit pattern after hard power-on.
v310-v311Add home dock detection via tuner serial port loopback.
v309-v310Added khttpd detection/support for new-style FIDS directory structure on player (/driveX/fids/_YYYYY/XXX).
v308-v309Fixed dud release v308. All is now well. Repeat after me, All is now well..
v307-v308Prevent config.ini conflicts when doing EXECs.
v306-v307Leave stdin/stdout/stderr connected to serial console when doing EXEC/EXEC_ONCE commands.
v305-v306Fixed potential (crash!) incompatibility between v305 and older GPSapp installs.
v304-v305Ooops.. broke the EXEC stuff in v304, fixed it in v305; also, fixed exit status reporting to show negatives correctly.
v303-v304Renamed "exec=" to ";@EXEC ", and "exec_once=" to ";@EXEC_ONCE "; force "-s-" flag for player when on DC power; added I2C fan thermostat logic and config options.
v302-v303Fixed formatting error on "VisualSeek" tool. Added "exec_once=" and "exec=" to config.ini
v301-v302Added v2rc1 kernel patches; added support for "PrevVisual" button (requires v2rc1); added new "VisualSeek" tool.
v300-v301Added v4 of the "audio overlay patch" from Kim Salo and others.
v299-v300Updated to 2.2.17 kernel + ext3 fs code (off by default); fixed remount buffer; added insert/append to khttpd playlists.
v298-v299Converted "KnobSeek" in Tuner mode to act as a "manual tuning dial".
v297-v298Detect "logging disabled" from player and act accordingly --> this should fix "Restore DC/Car Visuals" for everyone.
v296-v297Removed QuickTimer from '4' button; added "QuickTimer" virtual button for remapping to any key.
v295-v296Convert @#! chars to _ in URLs from khttpd.
v294-v295Try to eliminate serial rate dependencies.
v293-v294Fixed Cincinnati.
v292-v293Fixed SETGEOM bug; removed most needs for [output]notify=1; changed suppress_notify default to "1"; removed "supress_notify" spelling.
v291-v292Internal whitespace tweaking. No new code/features.
v290-v291Internal code tweaking. Nothing new outside.
v289-v290Fixed v289 typo, so Sony Stalk now works again.
v288-v289Removed "button_pacing=nn" parameter; fixed long-presses for good; more startup tweaks.
v287-v288Fixed Restore DC/Car Visuals (really!).
v286-v287Fixed small UI glitches with INFO-SEEK workaround; fixed missing '/' in new .xml code.
v285-v286Fixed reboot screen corruption; changed "Restore DC/Car Visuals" to do down.L; added .xml output for single tunes; reworked Hijack startup; fixed small glitch on INFO-SEEK.
v284-v285Rework for beta13 INFO-SEEK tool again. Better hopefully.
v283-v284Fixed beta13 INFO-SEEK tool, added S/PDIF patch for empeg-mixer.c.
v282-v283Removed v2beta11 workarounds (no longer needed) from hijack.c.
v281-v282Updated for v2.00-beta13 kernel changes (very minor).
v280-v281Fixed LBA48 bugs.
v279-v280Rewrote much of the ButtonLED Illumination code.
v278-v279Fiddled with reboot code.
v277-v278Increased press/release delay by 10% for longpresses; changed remount popup for Tony.
v276-v277Lucky-Sevens Release: fixed (rare) Day-1 jiffies bug in Hijack.
v275-v276Fixed issue with startup message.
v274-v275Added (slightly flakey) Screen Blanker "PowerOff Display" option/menu.
v273-v274Added lba48 support to IDE driver for drive sizes > 128GB.
v272-v273Modify "keypress_flash=" to allow specifying flash timeout in 1/100th seconds.
v271-v272Tony's sick idea: "keypress_flash=1" to blink display on remote button presses.
v270-v271Try to repair all of the new userland ioctl() bugs from v270 and v269.
v269-v270Bugfix in WAITMENU; also allow WAITMENU(NULL) to exit completely from menus.
v268-v269Reduce startup delay by 0.5sec, speed up directory lookups, ditch the undershorts.
v267-v268Modify the EMPEG_HIJACK_WAITMENU to remove all bound menu items upon exit.
v266-v267Fix nasty bug from v266 that locks up player for some button commands/translations.
v265-v266Fix (?) for confusion resulting from lost "release codes".
v264-v265Try to fix Tony's Empeg by delaying animation startup by 1.0sec instead of .33sec.
v263-v264Re-add frame-pointers to mk1 kernels as well. No changes to mk2.
v262-v263Button-illumination fixes; kernel built WITH frame-pointers.
v261-v262Nuked IDE compactflash hack.
v260-v261Fixed "standbyLED_on=0".
v259-v260More stroking for WMP.
v258-v259Fix (?) for WMP streaming; changes to IDE driver error handling for modern drives.
v257-v258Fixed buttonLED illumination again.
v256-v257Default back to the pulsating LED thing, for Rob.
v255-v256Nuke the powerfully pulsating standby LED.
v254-v255Fix minor playlist streaming issue with some versions of WinAmp.
v253-v254New VolAdjust defaults from tfabris; nuked "tone_init" messages.
v252-v253More Tony-proofing of animation code.
v251-v252Corrected spelling of "suppress_notify"; Fixed "VolDown" when coming out of standby using countdown timer; play with animation detection.
v250-v251Fixed (?) problem with BUTTONRAW.
v249-v250XML-ized contents of /proc/empeg_notify.
v248-v249Fixed missing-animation (sometimes) problem.
v247-v248Added buttonLED support to car1 builds; added volboost code from genixia; allowed /proc/version access always; implicit .L on "Detail", "Hush", others.
v246-v247Revamped button-labels to incorporate ".L" flags; changed animation; incorporated the volume-boost patch.
v245-v246Added "Visual-" alias for "KSNext".
v244-v245Implemented Sony Stalk support; fixed (?) tone controls init.
v243-v244Implemented http "HEAD" (needed for mozilla 0.9.9); replaced built-in animation.
v242-v243Fixes some tone control issues (but not all); added dquotes to Content-Disposition headers.
v241-v242Added support for custom animations at end of kernel flash partition.
v240-v241Fixed range error in FTP "REST" (HTTP "Range") handling.
v239-v240Removed debouce logic from v237.
v238-v239Added Bass/Treble controls, courtesy of genixia.
v237-v238Removed random dance selection code; prevented PopUp on 5x4 EQ screen.
v236-v237Added debounce logic to headlight sense for player.
v235-v236Fixed 403 error on http RO/RW/REBOOT commands.
v234-v235Inverted headlight sense logic.
v233-v234Added NODATA onto "Play" links; stole another 8 bytes of flash; split more settings between home/car; remote access to voladj parameters; fake buttoncodes for voladj settings, hijack menu; buttonLEDs dim when headlights on.
v232-v233More reboot tweaking; increased "unmask" timeout for IDE.
v231-v232Removed excess data fields from XML output; added "NODATA" option.
v230-v231Added code to guard against thermometer corruption.
v229-v230Fixed kftpd MKD/RMD/XMKD/XRMD commands.
v228-v229Fixed(?) problems with reboot.
v227-v228Fixed http lockups.
v226-v227Got rid of "buttonhack_enabled=1"; added Button Illumination menu item.
v225-v226Bugfixes for kftpd 'XMKD' and 'XRMD'.
v224-v225More debug logic for lockups; updated font from Bruno.
v223-v224Fixed another jiffie bug; added better debug displays.
v222-v223Fixed the jiffie lockup issue (not specific to Hijack).
v221-v222Improved "jiffie" messages; made menu-Reboot remount drives r/o first.
v220-v221Added "jiffie" slowdown detection.
v219-v220Repulsed the barbarians.
v218-v219Rearranged channel delay code for faster operation.
v217-v218Appease the barbarian hordes.
v216-v217Disable buttonhack patch by default: interferes with LongPress of Source (and others?).
v215-v216Implemented beta11-INFO workaround; added error-recovery for missing dance files; allow up to 16 (was 10) dance files.
v214-v215Added *.js, .jar, and *.m3u to webfiles exceptions; more "netscape" niceness in playlists; fixed Restore_Visuals.
v213-v214Added "" syntax for URLs.
v212-v213Removed nocache directives where not necessary.
v211-v212Implemented revised format for '?' portion of URL handling.
v210-v211Some bug fixes.
v209-v210Fixed %xx parsing in khttpd; fixed VolUp/VolDown (were reversed).
v208-v209Skip edit/parsing of config.ini when it's too large for kmalloc().
v207-v208Added "dance=" for creating list of Flancedoor visuals for random selection.
v206-v207Added a default definition for PopUp0.
v205-v206Added "Clock" virtual button code (stick it onto a PopUpX menu) to display current time/date for a few seconds; added "[hijack] time_offset=mmm" for config.ini to correct the time-of-day (because the player doesn't pass timezone to the kernel..).
v204-v205Removed mime-type from ".xsl" files (Mozilla got confused); more .xml tweaking.
v203-v204Renamed "khttpd_xsl=" to "khttpd_style=".
v202-v203Added '&' escapes for xml '<>&' characters; added missing "xsl" mime/permissions; added "?STYLE=/some/path/name.xsl.xml" capability.
v201-v202First hack at "?.xml" support; allow access to "web" files (.html,.htm,.jpg,.png,.xsl,.css, etc.) even when "khttpd_files=0"; include basic "buttonhack.patch" for illuminated button kits.
v200-v201Handle LARGE config.ini files (note: the player only uses the final 4096 bytes..); allow non-tcp on port 8300; Round corners on @HOME/@WORK menu; added v1.0 delaytime patch from Christian Hack.
v199-v200Fixed missing '?' on "Stream" button on top lines of playlists.
v198-v199Tolerate excess trailing '/' on playlist URLs; don't do %xx in m3u's destined for MSIE+MacOS.
v197-v198Fix overly-restrictive security in v197; remove "unclickable" items from playlist displays.
v196-v197Allow multi-packet HTTP request headers; tweaked http dir listings; added "Stream / Play" fields.
v195-v196Fix KnobLeft and KnobRight ir_translate capability.
v194-v195Use "artist - tune" in .m3u URLs, hexcoded for most clients, underscores for iTunes.
v193-v194Renamed beta10 to beta11 on everything to help people "cope"; changed .m3u format to use artist-tune in URLs.
v192-v193Removed experiments; fixed voladj and knob save/restore.
v191-v192(goofed in v191, trying again) Experimenting with playlist changes for iTunes.
v190-v191Experimenting with playlist changes for iTunes.
v189-v190Updated to match v2.00b10 kernel for v2.00-beta10 and v2.00-beta11.
v188-v189Re-implemented "initial=" from scratch, now works (but needs "notify=1") with .[CHTMA] flags!
v187-v188Fixed save/restore of "Knob Press Redefinition" (been broken for a while..).
v186-v187Fixed splash vs. animation issue; fixed Empeg flash driver; nuked "Knob Rotate Redefinition"; added "KnobSeek" virtual button.
v185-v186Ignore missing playlist files, but log them on the console.
v184-v185Removed "/." subelements from kftpd cwd; changed kftpd to not show dotfiles unless asked ("ls -a").
v183-v184Make playlist browser continue after fid errors; use "Host" from HTTP header in m3u files; make kftp show dot dirs like other servers.
v182-v183Cleaned up NextSrc button; fixed BUG in ";@HOME" / ";@WORK" detection from v182.
v181-v182Added "[hijack] disable_emplode=1" for config.ini; merged a bunch of strings, tidied up menus.
v180-v181Groundwork to support for Sony Stalk RM-X4S.
v179-v180Tolerate '\0' character within tag files.
v178-v179Allow use of ";@HOME" and ";@WORK" after ";@AC " or ";@DC " on same line; added workaround for tagfiles that are missing the "type=" line.
v177-v178Added ";@AC" and ";@DC" flags for config.ini; disabled kftpd/khttpd when on DC; added "dc_servers=1" to reenable them.
v176-v177Added go-directly-to-reboot to the "Home/Car Location".
v175-v176Revamped config.ini processing; added ";@HOME ", ";@WORK " directives; added hijack version to /proc/version; fixed some lowercase dependencies.
v174-v175Fixed buffer length limitations in playlist browser; reduced CPU usage.
v173-v174Whoops.. v172 broke remote commands; fixed again.
v172-v173More playlist HTML tidying.
v171-v172Added "nocache" headers for /proc/*, /dev/*; reset options to defaults before re-reading config.ini.
v170-v171Added "spindown_seconds" for hard drives (default 30 seconds).
v169-v170Added ftp "rename" (RNFR/RNTO); misc playlist browsing improvements.
v168-v169Fixed "empty playlist" issue.
v167-v168Enabled playlist nesting (up to 16 levels deep); removed knob rotate delay outside of hijack; added access restrictions: "kftpd_password", "khttpd_dirs", "khttpd_files", "khttpd_playlists", "khttpd_commands".
v166-v167Fixed lseek() bug (REST, Range:, WinAmp).
v165-v166Added "artist - " to streaming "titles".
v164-v165Fixed problem with "titles" in playlist browser.
v163-v164Now using "icy-name:" tags for track titles (XMMS, WinAmp, ..).
v162-v163Added 2-drive support for HTTP playlists; added track titles for WinAmp; added filename.ext for HTTP music downloads.
v161-v162Fixed nasty IR bug from v161; added PopUp alert for bad it_translate's.
v160-v161Added XMKD/XRMD/REST to kftpd; added "Range:" to khttpd; added "invalid mixer" workaround; made "NextSrc" use Rio codes instead of Kenwood; added "ir_debug=1"; fixed knob after reboot issue; fixed '%xx' translation bug; added "SERIAL" command. Removed disable_rioremote code.
v159-v160Fixed http redirect bug for directories; added "/sbin/hijack" to "init" search order.
v158-v159More bugfixes in playlist browser.
v157-v158Fixed bug in .m3u generation for individual tunes.
v156-v157Added .m3u playlist support, with NEW SYNTAX: http://your.empeg/drive0/fids/101?.html; added (untested) "VolAdj" buttoncode; added missing "Source" button name.
v155-v156Added some curtains to playlist browser; added more debug to fix_visuals().
v154-v155Added preliminary playlist browsing via "http://my.empeg.whereever/drive0/fids/101?format".
v153-v154Added user-defined PopUp menus to [ir_translate]; removed internal PopUp menur; see the updated ir_translate page for details.
v152-v153Fixed sequencing issue with button name lookups.
v151-v152Removed ".[NU]" from leftside of ir_translate; added symbutton names; increased 2nd drive timeouts.
v150-v151Yet another attempt at getting .S, .N, and .U to all play together nicely.
v149-v150Patch is now synchronised with v200b8 base kernel (compatible with all v2.00 betas).
v148-v149Fixed nasty typo (killed ir_translate) from v148.
v147-v148Experimental: more SHIFT toggle rework.
v146-v147Fixed(?) SHIFT toggle; changed SITE RO/RW to loop over ext2 filesystems in /proc/mounts, and removed {/,/drive0,/drive1} parameters (not needed anymore).
v145-v146Implemented .U and .N for RHS of '=' in ir_translate.
v144-v145Added code to fake the ACCESSORY line when faking DC/Car mode; added /proc/empeg_screen.raw
v143-v144Bugfix in RDS hack; source code compatibility with an upcoming Empeg beta software release.
v142-v143Added "nocheck" to "SITE RW" commands, for dramatic speedup.
v141-v142Fixed "shift" toggle; changed default button_pacing to 20 from 8 (1/100ths of a second).
v140-v141Fixed another globbing bug.
v139-v140Okay, got all (?) of the button hacks working again in harmony.
v138-v139Fixed "Details" quick knob press; broke other stuff.. do not use.
v137-v138Fixed globbing in kftpd (buffer reuse issue).
v136-v137Fixed ".S" (broken in v136); fixed screen blanker "fuzz" calculation.
v135-v136More IR hacking.. added '.U' (UI menu system active) and '.N' (menu system Not active) button flags.
v134-v135Fixed segfault in ftp "HELP" and "SITE HELP" commands; added config.ini option "rioremote_disabled=1";
v133-v134Fixed khttpd screen grabber to not get stuck when player is in standby.
v132-v133More IR hacking, seems stable; added "schedule()" calls in strategic places in kftpd.c.
v131-v132Fixed bugs in ir_translations; added "max_connections=4" for config.ini; revamped memory usage in kftpd.c.
v130-v131Added "BUTTONRAW" command to send raw button code instead of a press/release pair ("BUTTON").
v129-v130kttpd: '?' after any directory name prevents "index.html" search; '/?' no longer returns NULL; kftpd CWD validates path; new "SITE RW /", "SITE RW /drive0" and "SITE RW /drive1" commands.
v128-v129Altered khttpd to return zero data on "GET /?" operations; added table-based CRC32 for .png.
v127-v128Fixed zombies; nuked ftp "SITE EXEC"; added "[hijack]i extmute_on=xxxxxxxx" and "[hijack] extmute_off=xxxxxxxx" for config.ini.
v126-v127Identical to v126, except with networking stuff removed from mk1 build (no ethernet there..).
v125-v126Added .png for screen dump; fixed http dirlist bug; other stuff.
v124-v125kftp/khttpd: converted RO/RW to internal implementation; added generalized command interpretor.
v123-v124kftp: "SITE RO", "SITE RW", "SITE REBOOT"; khttpd: "index.html" lookups; added /proc/empeg_flash device.
v122-v123Added preliminary "SITE EXEC" to kftpd (no output); added command/button input writing to /proc/empeg_notify.
v121-v122Fixed(?) 2-drive detection failures; multi-threaded kftpd/khttpd; mime-type for tag files.
v120-v121Added fsync() after each file received; set socket options for faster TCP; fixed bug in PORT command.
v119-v120Added sys_sync() after each FTP session logout; added boot-up version credit.
v118-v119Sped up directory listings using iget() instead of lnamei(), except for procfs where iget() is broken.
v117-v118Fixed upper/lower case issues in kftpd; added /proc/empeg_screen.tiff (maybe change to .png ?).
v116-v117Fixed "SITE CHMOD" for non-root paths; added "HELP; fixed "SITE HELP"; fixed "audio/mpeg".
v115-v116Tons of khttpd/kftpd fixes; "mget" now works.
v114-v115Fixed kftpd/khttpd port numbers in config.ini; Added STOR,DELE,MKD,RMD,CHMOD to kftpd: mirrordir now works!
v113-v114Ouch. Fixed bugs in save/restore settings; don't popup quicktimer when equalizer settings are on screen.
v112-v113Important bugfixes in khttpd and kftpd, especially for /proc/.
v111-v112Added khttpd on port 80; added config.ini option for khttpd; added crude "tune detection" for audio streaming over http.
v110-v111Improved kftpd dirlist code; kftpd now runs on port 21; added config.ini options for kftpd ports.
v109-v110Code clean-ups; added "Settings have been lost" Pop-Up at boot time.
v108-v109Added DisplayServer hack for remote control of player.
v107-v108Improved kftpd dir LISTings; FIXED AC/DC POWER BUG.
v106-v107Added "standby_minutes=30" to enter standby after blanker triggers; added directory LISTings to kftpd.
v105-v106Fix quicktimer conflict with Tuner with press and hold '4' on RioRemote when in Tuner, not possible with Kenwood.
v104-v105Really fixed '4' conflict in Search this time.
v103-v104Fixed '4' conflict in Search; fixed 2-drive Vitals; Added kftpd version 0.1 (port 91); split source files.
v102-v103Fixed bug whereby '4' (quicktimer) was being passed through to player.
v101-v102Improved "quicktimer" functionality (next/prev track buttons work better).
v100-v101Improved "vitals" again: shows playlist/track FIDs, drive sizes.
v99-v100Added "quicktimer" PopUp on '4' button; small bug fixes; retired the Great One.
v98-v99Fixed FID display on Vitals screen; Added Wayne Gretzky.
v97-v98Removed "mute" detection; replaced with "pause" detect for MP3 mode only; renamed "block_notify=1" to "supress_notify=1".
v96-v97Made screen blanker use "paused/muted" in decisions; updated /proc/empeg_notify fields.
v95-v96Added rotaryknob de-glitch logic; added ir_translate support for front-panel buttons; revamped "vitals".
v94-v95Added "Force AC/Home" option; added "Knob Rotate Redefinition" menu item.
v93-v94Delayed menu update until after drive detection; faster booting for Mk1 single-drive units.
v92-v93Fixed bug in "Force DC/Car Mode"; remove "Hard Disk Detection" if two drives present; "menu_remove=label" in config.ini.
v91-v92Added menu item to speed-up single-drive boots; allow "Reboot" using remotes; clean-ups.
v90-v91Fixed "Tuner+" PopUp button; Updated "restore visuals" to work with AM/FM Tuner modes.
v89-v90Updated "restore visuals" to work with AUX input (but not Tuner yet); Fixed reboot for AUX/Tuner/Mk2a.
v88-v89Still more work on "restore visuals" (looking good at this point).
v87-v88More work on "restore visuals"; changed "Tuner" to "Tuner+" on PopUp menu.
v86-v87Revamped PopUp behaviour, to simulate short/long button presses based on hold time; changed short-knob menus.
v85-v86Renamed "/proc/empeg_no" to "/proc/empeg_notify"
v84-v85Fixed empeg_notify; added block_notify=1 to suppress notify/dhcp serial output; Fixed blanker for beta7.
v83-v84Added '/proc/empeg_notify' for FID/TrackName/etc..; Changed Timer to use minutes instead of seconds.
v82-v83Fixed "restore visuals" for beta7; added .C and .H for ir_translate; added RDS; added fsck disable; cleanups.
v81-v82Added "Restore DC/Car Visuals" to menu; added "old_style=1" option for config.ini file.
v80-v81Updated to v200b7 (2.00-beta7) base kernel (only one-line of significant difference).
v79-v80New look and feel, with hilighting.
v78-v79Expanded Knob Press options; Fixed temp.display on vitals screen; fixed get_file() bug. Reduced maxtemp range.
v77-v78Added dynamic "Show Flash Savearea" display.
v76-v77Really fixed the config.ini voladj settings to apply immediately on player reboots.
v75-v76Fixed to pass TOP button (and others) on when userland app is running.
v74-v75Prevent hijack from interfering with equalizer setup screens.
v73-v74Fixed config.ini voladj settings to apply immediately on player reboots
v72-v73Revert IR handling back to v71 behaviour: final release happens when button is released
v70-v72v72:readtherm() every 5 seconds; inittherm() every 5 minutes; Fixed handling of final release in .L translations; v71:Made IR handling consistent regardless of whether a translation table exists
v69-v70Reduced therm reads/inits; Added counter to Buttons Display; Fixed(?) long press detect on foreign remotes.
v68-v69Changed "Button Codes Display" to show raw (untranslated) button data.
v67-v68Improved reliability with .L modifier; added "button_pacing" parameter
v66-v67Implemented button queue timing for translations; Added .S modifier; Supported .L in translations.
v65-v66Implemented IR translation modifiers for Long,Tuner,Aux,Main; fixed front-panel translations
v64-v65Treat/require ';' as comment character in config.ini
v63-v64New syntax for ir_translations in config.ini (see above); Added voladj & temp correction to config.ini
v62-v63Implemented single-to-multi button translations; tweaked calculator & reboot features
v61-v62Fixed long-knob-press glitches; Clear screen on reboot
v60-v61Fixed v60 bug which ignored most IR translations; Fixed VolAdj pop-up to allow access to Fader pop-up
v59-v60Ignore comments after the codes on each IR translation line in config.ini
v58-v59Fixed text-wrap bug (was dropping a char); Added config.ini IR-Translation capability
v57-v58Tightened up the code a little; fixed bug on error path in get_file() [never happens anyway..]
v56-v57Fixed voladj to actually use the fake/real silence parms; added read of config.ini on startup.
v55-v56Improved countdown timer interface.
v54-v55Improved "Force DC/Car" implementation: now shows in-car logo.
v53-v54Added "Force DC/Car Mode" to menu
v52-v53IDE multmode on; countdown timer; audible alarms; accelerated repeat on holddowns; save menu_item; (hh:)mm:ss in menus
v51-v52Fixed lockup when turning VolAdj Off (gotta stop making silly mistakes someday soon..)
v50-v51Fixed v49/v50 problems with Mk1 players
v49-v50Fixed upper half of VolAdj graph; Save player state before Reboot; Revert ide-probe changes for Mk.1 only
v48-v49Fixed VolAdj Low+High (they've NEVER worked before!); reduced kernel sizes
v47-v48Ooops.. forgot to reset the CD button counter --fixed; removed unnecessary cli() from blanker
v46-v47Fixed screen blanker alignment issue (100% sensitivity failed to blank); removed another stray printk()
v45-v46Removed debug printk() from the new button handler
v44-v45Rewrote the ugly button state tracker to fix numerous quirks; Added Reboot option, Calculator fixes
v42-v43Fixed Ooops in INJECTBUTTONS; Added "long knob press" to cycle among input sources
v41-v42Implemented new ioctls: SETGEOM & INJECTBUTTONS; doubled the range available for blanker sensitivity
v40-v41Sped up screen compares in blanker; Fix WAITMENU comments in hijack.h; do UNBINDBUTTONS as part of WAITMENU
v39-v40Fixed WAITMENU so apps can return; Added blanker "sensitivity" option; Use 15sec multiples instead of 30sec
v38-v39Changed WAITMENU ioctl() to multiwait; Fixed timeout bugs; removed Exit from menu; made menu loop around
v37-v38Fixed text wrap bug; more inittherm() calls; colored text from userland
v36-v37Inserted "Auto VolAdj" into the "[default]" functions for short-knob-presses
v35-v36Replaced "Repeat" with "Details" in knob-press-redefinitions; added signal handling to ioctls()
v34-v35Try to make knob & MENU buttons behave "normally" when player's menu is active
v33-v34Exactly the same as v33, but with new ioctl() for userland: EMPEG_HIJACK_POLLBUTTONS
v32-v33Disable hijack stuff when unit is in standy-by ("powered down")
v31-v32Use MENU button instead of SELECTMODE; simplified Calculator; make MaxTemp wait 5 seconds after last button
v30-v31Hold/repeat next/prev track now works everywhere; new Menu for redefining the quick knob-press function
v29-v30Fix wake_up's so userland apps don't crash when selected
v28-v29Small fixes to userland interface
v26-v28Defined more IR codes; fixed buttons bugs; added Calculator & button display
v25-v26Added degreesF to MaxTemp displays; fixed multi-line text output
v24-v25Added MaxTemp warning; AC/DC VolAdj; ioctls() for userland apps; rotary knob wear & tear patch
v23-v24Reduce CPU usage to bare minimum; new method for saving state over power cycles
v22-v23Fixed empeg_readtherm(); reinstated temperature display in Vitals
v21-v22Include freemem with Vitals; change font entry '5' slightly
v20-v21Unmask interrupts more often; #if'd out the temperature display (locks up machine)
v19-v20Added Vital-Signs to the menu. LOCKS UP.
v18-v19Extensible menu; improved voladj graph; menu timeout; simpler state machine
v17-v18Added screen blanker, voladj graph, cosmetics
v16-v17Removed "printk()" that caused button sticking when docked
v15-v16Many bugs fixed; font enhanced; cosmetics
v14-v15Minor UI enhancements; new header file with IR button codes
v13-v14Major revision; new menu structure; altered button sequences
v12-v13Renamed font array; Removed credit from winners screen
v11-v12Improved the font; Added Off/Normal/High/Max voladj settings
v10-v11Added text display capability; restructured the code for future enhancement
v9-v10Found/fixed bug that caused game to "take over" buttons after 12-13 minutes
v8-v9Safer handling of jiffies for long uptimes
v7-v8Improved reward; added pause; game slightly easier
v6-v7Game now included for Mk1 player; VolAdj saved over power cycles
v5-v6First version of BreakOut game
v4-v5Fixed a quirk in Pong whereby ball could pass through paddle
v3-v4First version to include Pong game
v1-v3Fixed button logic to prevent lockups
v1Just the VolAdj stuff with buttons to enable/disable
v1.tar.bz2Complete v1 kernel source tree (16MB)