Implementing a driver that listen to a GPIO
Clemens Gruber
clemens.gruber at pqgruber.com
Thu Oct 2 13:01:01 EDT 2014
Hi,
I am just trying to solve a similar problem as Luca described. I have a
TQMa28 board running Linux 3.17-rc7 though.
The capacitors keep the system up for about 1500 more milliseconds after
the power fails. A GPIO line is set to high as soon as the main power is
lost.
So I have not much time to quit an important user space process and to
clean up the ext4 root filesystem before the power fails.
At the moment I pass rootflags=data=journal,commit=1 in the kernel
commandline to lower the risk of data loss.
In the user space application I open important files using the O_SYNC flag.
Is there something else I should do to avoid data loss?
How would you implement the "emergency cleanup on power-failure" logic?
Dedicated driver (similar to the mentioned gpio-event driver?),
implement it with UIO, let a userspace application running as root
select /dev/uioX and cleaning up?
Or should I create a separate partition on my eMMC just for this user
space application data and use a readonly rootfs for the rest?
Thanks for your help!
Best regards,
Clemens
More information about the Kernelnewbies
mailing list