Unfortunately no one can be told what fun_plug is - you have to see it for yourself.
You are not logged in.
I've writtten a few utilities for controlling the LEDs, monitoring the front panel button, and shutting off power. I actually wrote them for use in an hdboot, gentoo-embedded context, but I believe they would also be useful in a "normal" custom-firmware environment. (more on that below).
The attached package contains two sets of pre-compiled binaries, along with the source code (which is GPL): compiled against uClibc-0.9.26 for use with custom firmware like sala-03, and compiled against uClibc-0.9.28 for use with gentoo-embedded (chroot or hdboot).
Here is the README from the package:
This package provides three programs for use on the DSM-G600. They are: dsmg600-button: a utility (and daemon) to monitor the front panel button and execute a specified command when the button is pressed for 7-12 seconds. Ideally: /sbin/shutdown -h now This will cleanly shutdown all services, unmount disks, and call the kernel's poweroff function. However, at present the kernel doesn't know how to actually cut power, so it enters an infloop waiting for somebody to unplug it. dsmg600-leds: a utility to control the front panel leds dsmg600-poweroff: immediately cuts power. This is unsafe to use when you have mounted disks and processes running... All three utilities support '-h' for help. Install the utilities manually into your path (the gentoo hdboot integration -- see below -- expects that they are installed into /usr/bin) References: http://forum.source.pri.ee/t164-chkbutton-buttons-leds.html http://dns323.kood.org/forum/p3117-20070521-174259.html http://www.beattie-home.net/beattie/DSM-G600/ http://wiki.rot13.org/rot13/index.cgi?dsm_g600 Gentoo hdboot integration: ============================================================= Add the following to /etc/conf.d/local.start to make the power led steady green once the boot sequence is complete: (/usr/bin/dsmg600-leds -m led_power -s 1 -c g) >/dev/null 2>&1 Add the following to /etc/conf.d/local.stop to make the power led start flashing when the machine enters its shutdown/reboot cycle: (/usr/bin/dsmg600-leds -m led_power -s f -c g) >/dev/null 2>&1 To enable the dsmg600-button daemon to be invoked during normal hdboot: cp gentoo-initscript /etc/init.d/chkbutton cp gentoo-config-file /etc/conf.d/chkbutton rc-update add chkbutton boot To build: ======================================================= edit the Makefile to set CC, LD, CFLAGS, and LDFLAGS as appropriate for your build environment. Then 'make' Note that gentoo-embedded uses a different version of uClibc (0.9.28) than does the DSM G600 firmware and Linksys-supplied cross toolchain (0.9.26). Help output: ============================================================= ############################################################# dsmg600-leds version 0.2.0 Utility program to control the LEDs on the DSM-G600 dsmg600-leds [options] -m MODE which led to modify (power, hdd, wlan, etc) -s STATE state to set the led (on, off, flash) -c COLOR which color to set the led -g CODE send specific three-letter code -n dry-run (do not send commands) -d display debug messages -h display this message -v display version information -l display license information Valid Modes: led_power led_hdd led_hddfull led_usb led_wlan poweroff Valid States: on (or 1) off (or 0) flash (or f) Valid Colors: green (or g) yellow (or y) Restrictions: -g cannot be combined with -m|-s|-c usually, all three -m|-s|-c must be specified together except: '-m poweroff' needs no -s or -c -- it immediately cuts power '-s off' needs no -c not all modes accept all states or colors: led_power: green only, can't turn off led_hdd: yellow only, no flashing led_hddfull: yellow only led_usb: no restrictions led_wlan: green only flash mode blinks fast a few times, before returning to previous state (on or off) Valid Codes for -g SYN -- Power led flash, HDD, HDD-Full, USB, WLAN leds off TSO -- Power, HDD, USB, WLAN leds green, HDD-Full yellow TSR -- Power, HDD-Full, WLAN leds off, HDD, USB leds yellow TSC -- Power, HDD, HDD-Full, USB, WLAN leds off ZWC -- Turn Power off ZWO -- Power led solid ZBO -- Power led flash WLO -- WLAN led green WLC -- WLAN led off WBO -- WLAN flash green then off HDC -- HDD-Full led off HBO -- HDD-Full led flash yellow HDO -- HDD-Full led yellow HDE -- HDD led yellow HDN -- HDD led off MMK -- USB led green MMF -- USB led yellow MMC -- USB led off MMI -- USB led blink green MUI -- USB led blink yellow MMN -- USB led off AKO -- unknown EXAMPLE: dsmg600-leds -m led_wlan -s on -c greeen dsmg600-leds -g MMC ############################################################# ############################################################# dsmg600-button version 0.2.0 Utility program to monitor the power button on the DSM-G600 dsmg600-button [options] -a CMD run specified CMD when button pressed <send msg to log> -n dry-run (do not launch child action) -d display or log debug messages -e exit after first detected button press (no loop) -f before executing CMD, flash leds -r resident daemon mode (uses syslog) -u USER [daemon only] run as specified user -p PIDFILE [daemon only] create pid file with specified path -h display this message -v display version information -l display license information EXAMPLE: dsmg600-button -a '/sbin/shutdown -h now' -f -r -p /var/run/my.pid NOTE: the -f option is present becuase, in the example above, it might be an additional 20 or 30 seconds before init gets around to running /etc/conf.d/local.stop, which is the logical place to start blinking the power led to indicate 'shutdown in progress'. But that's a LONG time to hold the button down... ############################################################# ############################################################# dsmg600-poweroff version 0.2.0 Utility program to immediately kill power on the DSM-G600 dsmg600-poweroff [options] -n dry-run (do not actually poweroff) -d display debug messages -h display this message -v display version information -l display license information #############################################################
Last edited by sala (2008-12-14 02:14:23)
Offline
Oh, and if anybody is interested, I've posted a query, with my current patchset, on kernelnewbies asking for help to get the dsmg600 kernel to be able to actually shut off power when the platform's machine_shutdown() kernel function is called. The post is here:
http://mail.nl.linux.org/kernelnewbies/ … 00086.html
Offline
Uhm, yeah. I knew that -- I got that from your webpage and postings here. That's what my dsmg600-leds and dsmg600-poweroff utilities DO. The problem is getting the *kernel* to do that after it no longer has access to user-space or to /dev/*, during machine_shutdown(). From talking with the guy who did a lot of work getting Kurobox support into the 2.6 kernels, it looks like I need to create/port a "micro-serial" driver that can initialize and allow direct kernel I/O to the UART without involving the kernel's filesystem layer...
I'll be working on that some this weekend.
Offline
With the attached kernel patch, the kernel can actually turn off the DSM-G600 when you /sbin/shutdown. Thanks to Guennadi Liakhovetski for his pointers to his 2.6 implementation of a micro-uart driver, which I adapted here.
This implementation also provides a custom syscall to send messages to the microcontroller on /dev/ttyS1 -- except that it uses the in-kernel micro-uart driver instead. I added this so that I could test the in-kernel functionality easier -- and left it in. In practice, however, it makes a lot more sense to use /dev/ttyS1 from user space, rather than a custom syscall.
Offline
Can you please resend the Dsmg600 utils package? The attachment is invalid now.
Thanks!
Offline
cwilson
Could you update attachments links for dsmg600-utils-0.2.tar.bz2 and dsmg600-poweroff-20070915.patch?
Present attachments links are invalid.
Thank you in advance.
Offline
Link is fixed at first post.
I was able to find dsmg600-utils but not kernel patch for poweroff.
Offline