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