stupidpupil / hp_n36-40-54l_health_led_drivers Goto Github PK
View Code? Open in Web Editor NEWControl the Health LED on HP Microservers N36/40/54L
Control the Health LED on HP Microservers N36/40/54L
Hi, I am running proxmox kernel v. 5.4.78-2-pve on my N54L with BIOS revision:
root@hyper-v:~# cat /sys/class/dmi/id/bios_date
07/29/2011
root@hyper-v:~#
But I am encountering some troubles while installing:
hyper-v:~/devel/hp_n36-40-54l_health_led_drivers-master# dpkg -i dist/*.deb
(Reading database ... 106806 files and directories currently installed.)
Preparing to unpack .../gpio-sb8xx-dkms_20180507_all.deb ...
------------------------------
Deleting module version: 20180507
completely from the DKMS tree.
------------------------------
Done.
Unpacking gpio-sb8xx-dkms (20180507) over (20180507) ...
Preparing to unpack .../i2c-piix4-dkms_20180509_all.deb ...
------------------------------
Deleting module version: 20180509
completely from the DKMS tree.
------------------------------
Done.
Unpacking i2c-piix4-dkms (20180509) over (20180509) ...
Preparing to unpack .../softpwm-dkms_20180507_all.deb ...
------------------------------
Deleting module version: 20180507
completely from the DKMS tree.
------------------------------
Done.
Unpacking softpwm-dkms (20180507) over (20180507) ...
Setting up gpio-sb8xx-dkms (20180507) ...
Loading new gpio-sb8xx-20180507 DKMS files...
Building for 5.4.78-2-pve 5.4.106-1-pve
Building initial module for 5.4.78-2-pve
Done.
gpio-sb8xx.ko:
Running module version sanity check.
- Original module
- No original module exists within this kernel
- Installation
- Installing to /lib/modules/5.4.78-2-pve/updates/dkms/
depmod.......^[^[[C....
Backing up initrd.img-5.4.78-2-pve to /boot/initrd.img-5.4.78-2-pve.old-dkms
Making new initrd.img-5.4.78-2-pve
(If next boot fails, revert to initrd.img-5.4.78-2-pve.old-dkms image)
update-initramfs......
DKMS: install completed.
Module build for kernel 5.4.106-1-pve was skipped since the
kernel headers for this kernel does not seem to be installed.
Setting up i2c-piix4-dkms (20180509) ...
Loading new i2c-piix4-20180509 DKMS files...
Building for 5.4.78-2-pve 5.4.106-1-pve
Building initial module for 5.4.78-2-pve
Done.
Building for 5.4.78-2-pve 5.4.106-1-pve
Building initial module for 5.4.78-2-pve
Error! Bad return status for module build on kernel: 5.4.78-2-pve (x86_64)
Consult /var/lib/dkms/softpwm/20180507/build/make.log for more information.
dpkg: error processing package softpwm-dkms (--install):
installed softpwm-dkms package post-installation script subprocess returned error exit status 10
Errors were encountered while processing:
softpwm-dkms
Logfile:
hyper-v:~/devel/hp_n36-40-54l_health_led_drivers-master# cat /var/lib/dkms/softpwm/20180507/build/make.log
DKMS make.log for softpwm-20180507 for kernel 5.4.78-2-pve (x86_64)
Wed 31 Mar 2021 02:25:11 PM CEST
make: Entering directory '/var/lib/dkms/softpwm/20180507/build'
make -C /lib/modules/5.4.78-2-pve/build M=/var/lib/dkms/softpwm/20180507/build modules
make[1]: Entering directory '/var/lib/dkms/softpwm/20180507/build'
make[1]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule.
CC [M] /var/lib/dkms/softpwm/20180507/build/softpwm.o
/var/lib/dkms/softpwm/20180507/build/softpwm.c:214:3: error: 'struct class' has no member named 'class_attrs'; did you mean 'class_groups'?
.class_attrs = soft_pwm_class_attrs,
^~~~~~~~~~~
class_groups
/var/lib/dkms/softpwm/20180507/build/softpwm.c:214:17: error: initialization of 'const struct attribute_group **' from incompatible pointer type 'struct class_attribute *' [-Werror=incompatible-pointer-types]
.class_attrs = soft_pwm_class_attrs,
^~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/softpwm/20180507/build/softpwm.c:214:17: note: (near initialization for 'soft_pwm_class.class_groups')
/var/lib/dkms/softpwm/20180507/build/softpwm.c: In function 'soft_pwm_hrtimer_callback':
/var/lib/dkms/softpwm/20180507/build/softpwm.c:311:23: error: request for member 'tv64' in something not a structure or union
if (desc->next_tick.tv64 <= now.tv64) {
^
/var/lib/dkms/softpwm/20180507/build/softpwm.c:311:35: error: request for member 'tv64' in something not a structure or union
if (desc->next_tick.tv64 <= now.tv64) {
^
/var/lib/dkms/softpwm/20180507/build/softpwm.c:321:21: error: request for member 'tv64' in something not a structure or union
if (next_tick.tv64 > 0)
^
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:275: /var/lib/dkms/softpwm/20180507/build/softpwm.o] Error 1
make[1]: *** [Makefile:1757: /var/lib/dkms/softpwm/20180507/build] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-5.4.78-2-pve'
make: *** [Makefile:3: all] Error 2
make: Leaving directory '/var/lib/dkms/softpwm/20180507/build'
hyper-v:~/devel/hp_n36-40-54l_health_led_drivers-master#
Is there anything i can do to make it working?
First of all, thank you for this driver. I own a N40L since 2014 and from time to time I google to see if anyone have come up with a solution to control the status led. I'll try this driver soon.
In the readme you say you don't know how to control the red led. I remembered that some years ago I accidentally turned my status led pink/magenta.
I don't know if the color was due to the blue+orange leds or the blue+red ones. If it was blue+orange what I'm writing is not useful and I'm sorry for wasting your time but if it was blue+red maybe this can be an hint for you on how to pilot that led.
At the time I've found others on the internet with the same problem. Eventually an user in this wiki discovered that disabling a particular feature in the sounthbridge turned the red led off. https://n40l.fandom.com/wiki/Activity_Light_Control_(HP_Symbol)
The relevant part of the comment is this:
I had it after configuring a lot in the Mod-BIOS. I finally found out what causes the switch to pink: it's the last option in chipset->southbridge->usb-settings->port-5-OHCI. It must be set to "disabled".
That solved the problem for me and the status led went blue again.
Maybe you already know all of this, but I hope this may be useful.
I have some errors. Can you help me fix them?
I don't know if this project is still alive...
The softpwm module doesn't build on kernels from 4.10 onward. It fails with
Mo 9. Sep 14:31:17 CEST 2019
make: Verzeichnis „/var/lib/dkms/softpwm/20180507/build“ wird betreten
make -C /lib/modules/4.19.0-5-amd64/build M=/var/lib/dkms/softpwm/20180507/build modules
make[1]: Verzeichnis „/var/lib/dkms/softpwm/20180507/build“ wird betreten
make[1]: Warnung: Kein Jobserver verfügbar: -j1 wird gesetzt. Fügen Sie der Ursprungsregel
„+“ hinzu.
CC [M] /var/lib/dkms/softpwm/20180507/build/softpwm.o
/var/lib/dkms/softpwm/20180507/build/softpwm.c:214:3: error: ‘struct class’ has no member named ‘class_attrs’; did you mean ‘class_groups’?
.class_attrs = soft_pwm_class_attrs,
^~~~~~~~~~~
class_groups
/var/lib/dkms/softpwm/20180507/build/softpwm.c:214:17: error: initialization of ‘const struct attribute_group **’ from incompatible pointer type ‘struct class_attribute *’ [-Werror=incompatible-pointer-types]
.class_attrs = soft_pwm_class_attrs,
^~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/softpwm/20180507/build/softpwm.c:214:17: note: (near initialization for ‘soft_pwm_class.class_groups’)
/var/lib/dkms/softpwm/20180507/build/softpwm.c: In function ‘soft_pwm_hrtimer_callback’:
/var/lib/dkms/softpwm/20180507/build/softpwm.c:311:23: error: request for member ‘tv64’ in something not a structure or union
if (desc->next_tick.tv64 <= now.tv64) {
^
/var/lib/dkms/softpwm/20180507/build/softpwm.c:311:35: error: request for member ‘tv64’ in something not a structure or union
if (desc->next_tick.tv64 <= now.tv64) {
^
/var/lib/dkms/softpwm/20180507/build/softpwm.c:321:21: error: request for member ‘tv64’ in something not a structure or union
desc->next_tick.tv64 = KTIME_MAX;
^
/var/lib/dkms/softpwm/20180507/build/softpwm.c:330:17: error: request for member ‘tv64’ in something not a structure or union
if (next_tick.tv64 == 0 ||
^
/var/lib/dkms/softpwm/20180507/build/softpwm.c:331:20: error: request for member ‘tv64’ in something not a structure or union
desc->next_tick.tv64 < next_tick.tv64) {
^
/var/lib/dkms/softpwm/20180507/build/softpwm.c:331:37: error: request for member ‘tv64’ in something not a structure or union
desc->next_tick.tv64 < next_tick.tv64) {
^
/var/lib/dkms/softpwm/20180507/build/softpwm.c:332:14: error: request for member ‘tv64’ in something not a structure or union
next_tick.tv64 = desc->next_tick.tv64;
^
/var/lib/dkms/softpwm/20180507/build/softpwm.c:332:37: error: request for member ‘tv64’ in something not a structure or union
next_tick.tv64 = desc->next_tick.tv64;
^
/var/lib/dkms/softpwm/20180507/build/softpwm.c:343:15: error: request for member ‘tv64’ in something not a structure or union
if (next_tick.tv64 > 0)
^
cc1: some warnings being treated as errors
make[4]: *** [/usr/src/linux-headers-4.19.0-5-common/scripts/Makefile.build:315: /var/lib/dkms/softpwm/20180507/build/softpwm.o] Fehler 1
make[3]: *** [/usr/src/linux-headers-4.19.0-5-common/Makefile:1539: _module_/var/lib/dkms/softpwm/20180507/build] Fehler 2
make[2]: *** [Makefile:146: sub-make] Fehler 2
make[1]: *** [Makefile:8: all] Fehler 2
make[1]: Verzeichnis „/usr/src/linux-headers-4.19.0-5-amd64“ wird verlassen
make: *** [Makefile:3: all] Fehler 2
make: Verzeichnis „/var/lib/dkms/softpwm/20180507/build“ wird verlassen
Quick googling tells me that this is a common error introduced with kernel 4.10, but I am not a programmer and cannot easily fix this.
a simple script to turn the leds on and off, based on n40_led.sh
Hi,
I wanted to make this module automatically build and install new version when upgrading kernel, so I added AUTOINSTALL=yes to the dkms,conf file.
However, when I try to upgrade the kernel, it seems to want to build against the currently running kernel headers (which have just been removed), instead of the newly installed headers. I think the problem is in the 'uname -r' command in the Makefile.
I'm not sure how to fix this properly, as I'm not that experienced yet with dkms.
Here's some output from an upgrade attempt:
Upgrading from 5.4.119-1 to 5.4.124-1:
The following packages will be REMOVED:
pve-headers-5.4.119-1-pve
The following NEW packages will be installed:
pve-headers-5.4.124-1-pve pve-kernel-5.4.124-1-pve
postinst fails to build module:
run-parts: executing /etc/kernel/postinst.d/dkms 5.4.124-1-pve /boot/vmlinuz-5.4.124-1-pve
Error! Bad return status for module build on kernel: 5.4.124-1-pve (x86_64)
Consult /var/lib/dkms/gpio-sb8xx/20180507/build/make.log for more information.
make.log:
~# cat /var/lib/dkms/gpio-sb8xx/20180507/build/make.log
DKMS make.log for gpio-sb8xx-20180507 for kernel 5.4.124-1-pve (x86_64)
Thu Jul 1 09:37:02 CEST 2021
make: Entering directory '/var/lib/dkms/gpio-sb8xx/20180507/build'
make -C /lib/modules/5.4.119-1-pve/build M=/var/lib/dkms/gpio-sb8xx/20180507/build modules
make[1]: Entering directory '/var/lib/dkms/gpio-sb8xx/20180507/build'
make[1]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule.
make[1]: *** /lib/modules/5.4.119-1-pve/build: No such file or directory. Stop.
make[1]: Leaving directory '/var/lib/dkms/gpio-sb8xx/20180507/build'
make: *** [Makefile:3: all] Error 2
make: Leaving directory '/var/lib/dkms/gpio-sb8xx/20180507/build'
~#
This is my (slightly modifed) dkms.conf:
MAKE="make -C ."
CLEAN="make -C . clean"
BUILT_MODULE_NAME=gpio-sb8xx
BUILT_MODULE_LOCATION=.
DEST_MODULE_LOCATION=/updates
PACKAGE_NAME=gpio-sb8xx
PACKAGE_VERSION=20180507
REMAKE_INITRD=no
AUTOINSTALL=yes
And the Makefile needing some rework to make this work:
obj-m += gpio-sb8xx.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
As the title says - I have HPE gen8 and I wonder would the drivers works on it.
Cheers.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.