View previous topic :: View next topic |
Author |
Message |
erTrabubu n00b
Joined: 27 Feb 2012 Posts: 10 Location: Sevilla, Spain
|
Posted: Mon Feb 27, 2012 3:29 pm Post subject: systemd service file for cpufreqd and other |
|
|
Hi, even though I am not new to gentoo, it's the first time i write in this forum, sorry for my mistakes with English!
I was searching and googling for a while and... maybe i'm a bit dumb... but I couldn't find the right way to get cpufreqd, and other daemons working with systemd.
I found in http://aur.archlinux.org/packages.php?ID=54252 a package with a service file and a shell script, and i'm trying to adapt it from Arch linux to Gentoo. But, is there any overlay or something where i can get a "gentoo way" for this??
I'm also trying to find a way to get ureadahead, laptop-mode-tools, etc., and it is hard to find documentation. Does anyone know about this?
Thanks! |
|
Back to top |
|
|
Etal Veteran
Joined: 15 Jul 2005 Posts: 1931
|
Posted: Mon Feb 27, 2012 4:23 pm Post subject: |
|
|
You can usually just use service files from other distributions - cross-distro compatibility that's one of the ideas of systemd. For instance, here's a unit for laptop_mode (if google is second-guessing you, put "systemd" in quotes when you search). And if you really can't find a unit you're looking for, it's usually pretty easy to write your own - systemd has excellent manpages and you can also read Lennart's "systemd for Administrators" series for some explanations, such as this one.
I can't find units for cpufreqd probably because nowadays most people just use the ondemand, and you don't need ureadahead since systemd already comes with its own readahead service. _________________ “And even in authoritarian countries, information networks are helping people discover new facts and making governments more accountable.”– Hillary Clinton, Jan. 21, 2010 |
|
Back to top |
|
|
erTrabubu n00b
Joined: 27 Feb 2012 Posts: 10 Location: Sevilla, Spain
|
Posted: Tue Feb 28, 2012 12:16 pm Post subject: |
|
|
Hi! Thank you very much for your response. At the moment, I've got lm_sensors, syslog-ng, laptop-mode, gdm and cpufrequtils service files working as spected.
But I'm still stucked with cpufreqd... I was trying hundred times, and the best result I've got was this:
"cpufreqd[1304]: segfault at 8 ip 00007fdeb07c51c1 sp 00007fff68213298 error 4 in libc-2.13.so[7fdeb0745000+181000]"
If I set "systemd.log_level=debug" in the kernel command line, it doesn't help me at all cause it gives me no new information about that error... Searching in google, there are millions of possible causes... Could anyone help me? This is the last service file that I found in http://aur.archlinux.org/packages.php?ID=43484 and is giving me this error.
### cpufreqd.service
[Unit]
Description=Cpufreqd daemon
After=acpid.service lm_sensors.service cpufrequtils.service
[Service]
ExecStart=/usr/sbin/cpufreqd -D
ExecStop=/bin/kill -INT $MAINPID
[Install]
WantedBy=multi-user.target
#### End Of File
Thanks!! |
|
Back to top |
|
|
Etal Veteran
Joined: 15 Jul 2005 Posts: 1931
|
Posted: Tue Feb 28, 2012 3:14 pm Post subject: |
|
|
Does it work if you run "/usr/sbin/cpufreqd -D" from command-line?
You can also try running it with out the "-D" but with Type=forking (but then you might have to also change how you stop it) _________________ “And even in authoritarian countries, information networks are helping people discover new facts and making governments more accountable.”– Hillary Clinton, Jan. 21, 2010 |
|
Back to top |
|
|
erTrabubu n00b
Joined: 27 Feb 2012 Posts: 10 Location: Sevilla, Spain
|
Posted: Tue Feb 28, 2012 5:02 pm Post subject: |
|
|
Hi!
When I run /usr/sbin/cpufreqd -D -V 7 from command-line, it works fine. Without -D and -V params it is also working fine... but still doesn't work from systemd service file! Arghghghgh!!!
I tried Type=forking, oneshot, RemainAfterExit=yes ... No way. Also with/without -D, -V flags...
This is the last cpufreqd.service:
[Unit]
Description=Cpufreqd daemon
[Service]
Type=forking
ExecStart=/usr/sbin/cpufreqd
ExecStop=/bin/kill `ps -C cpufreqd -o pid= `
[Install]
WantedBy=multi-user.target
BTW, my pc is a Dell Vostro laptop, proc. core2 duo 1.8ghz with enough RAM, and updated gentoo amd64 (multilib)... Maybe it is useful!
Thanks, cheers! |
|
Back to top |
|
|
Etal Veteran
Joined: 15 Jul 2005 Posts: 1931
|
Posted: Wed Feb 29, 2012 12:10 am Post subject: |
|
|
I just emerged cpufreqd and tried your first service file, and it works fine for me
Code: | # systemctl start cpufreqd.service
# systemctl status cpufreqd.service
cpufreqd.service - Cpufreqd daemon
Loaded: loaded (/etc/systemd/system/cpufreqd.service; disabled)
Active: active (running) since Tue, 28 Feb 2012 19:03:30 -0500; 1s ago
Main PID: 31555 (cpufreqd)
CGroup: name=systemd:/system/cpufreqd.service
└ 31555 /usr/sbin/cpufreqd -D
# systemctl --version
systemd 43
gentoo
+PAM +LIBWRAP -AUDIT -SELINUX -SYSVINIT -LIBCRYPTSETUP |
I'm guessing maybe you're using version 29, and maybe it had some bug that was fixed? _________________ “And even in authoritarian countries, information networks are helping people discover new facts and making governments more accountable.”– Hillary Clinton, Jan. 21, 2010 |
|
Back to top |
|
|
erTrabubu n00b
Joined: 27 Feb 2012 Posts: 10 Location: Sevilla, Spain
|
Posted: Wed Feb 29, 2012 2:52 am Post subject: |
|
|
You are right! I'm using version 29 of systemd.
The thing is that I tried to unmask udev >171 (actually I don't like to install masked packages at all (just in cases)), and I found it very 'tricky'... Is it really necessary to do all this changes below in package.keywords and package.unmask??
package.keywords:
sys-libs/libnih ~amd64
sys-fs/udev **
sys-fs/udev-init-scripts **
sys-apps/kmod **
sys-apps/systemd ~amd64
package.unmask:
~sys-fs/udev-172
~sys-fs/systemd-43
Cheers! |
|
Back to top |
|
|
Etal Veteran
Joined: 15 Jul 2005 Posts: 1931
|
Posted: Wed Feb 29, 2012 5:50 pm Post subject: |
|
|
Unfortunately, yes. Those packages are masked until the Gentoo devs come up with a satisfactory solution for people with separate /usr partitions - since udev (and systemd) no longer support booting without /usr available (they'll need an initrd). This of course means that these new packages are not as well tested, since less people use them, so beware!
erTrabubu wrote: | sys-fs/udev **
sys-fs/udev-init-scripts **
sys-apps/kmod ** |
Don't do this - use "~amd64" instead since the packages have the keywords, they're just masked. _________________ “And even in authoritarian countries, information networks are helping people discover new facts and making governments more accountable.”– Hillary Clinton, Jan. 21, 2010 |
|
Back to top |
|
|
erTrabubu n00b
Joined: 27 Feb 2012 Posts: 10 Location: Sevilla, Spain
|
Posted: Wed Feb 29, 2012 5:52 pm Post subject: |
|
|
Hi! I'm still trying to make cpufreqd work. I made changes in portage package.* files, emerged systemd-43 (and also udev-181, etc)... And still cpufreqd doesn't work.
I should tell you, my laptop has portage tree up to date and also packages and (I think) /etc directory, but gentoo was installed about 2 years ago... That way my /etc/portage is a bit messed up.
At the moment I'm re-installing glibc-2.13... Maybe the problem is something related to this... |
|
Back to top |
|
|
erTrabubu n00b
Joined: 27 Feb 2012 Posts: 10 Location: Sevilla, Spain
|
Posted: Tue Mar 06, 2012 11:30 am Post subject: |
|
|
Ok, so, I'm getting mad with this. After some days working with cpufreqd, I can say "I have no idea why is not working for me"... Even after a fresh install of gentoo (yes, I formatted my laptop just for make cpufreqd work... and I got NOTHING!!)
I was trying to get it running as always: emerge -v cpufreqd. With portage version, cpufreqd compiles, but then when i start the service:
/etc/init.d/cpufreqd start gives me a buffer overflow --> this is solved by keywording cpufreqd, and emerging 2.4.2-r1 version. After that, cpufreqd seems to start and I can read "[ OK ]", but cpufreqd isn't working... ?¿?!!!?¿
If I start from command-line with #cpufreqd -D -V 7 it tells me something like "invalid pointer reference... invalid free() instruction...blablabla Aborted.". Searching in internet I can't find anything for make it work (again, maybe I'm a bit dumb with 'uncle google'): everybody says that is working perfectly, and the last bug report is always older than 2005.
So, anybody knows something???? I'm getting mad!!!
Thanks
PS: Some years ago, someone spilt coffee on my dear laptop, so my battery is totally missing (15 min o so) and also, my cpu sometimes gets burning and the laptop suddenly shuts down... that way I really need cpufreqd... Maybe, I should give up... but then laptops's life will decrease very hard. |
|
Back to top |
|
|
erTrabubu n00b
Joined: 27 Feb 2012 Posts: 10 Location: Sevilla, Spain
|
Posted: Tue Mar 06, 2012 3:17 pm Post subject: |
|
|
Etal, could you post your kernel config file (grep FREQ and grep ACPI)??? I think my kernel has a missing option for cpufreqd... but i have no idea which of them...
I have noticed that cpufreqd is crashing when handling cpufreqd_acpi.so plugin. Maybe, I am missing something related to deprecated /proc/acpi files in kernel config, right?
At the moment I'm using another computer... my laptop is compiling X and KDE (with powersave governor ), so it is easier to write here in this forum from another computer! that way I can't post my kernel config
Thank you very much |
|
Back to top |
|
|
MetalGod Bodhisattva
Joined: 10 Mar 2003 Posts: 816 Location: Portugal
|
Posted: Tue Mar 06, 2012 3:52 pm Post subject: |
|
|
After you have your issue fixed please submit the systemd unit to the bugzilla so the maintainers can add the unit to the ebuild. This way all systemd users will benefit (like me). _________________ ex: Gentoo Linux Developer: amd64 media-optical sound gnome
ex: Portuguese Moderator
------------------------------------------------------------------------------
God Doesn't Play Dice |
|
Back to top |
|
|
erTrabubu n00b
Joined: 27 Feb 2012 Posts: 10 Location: Sevilla, Spain
|
Posted: Wed Mar 07, 2012 12:04 pm Post subject: |
|
|
Quote: | After you have your issue fixed please submit the systemd unit to the bugzilla so the maintainers can add the unit to the ebuild. This way all systemd users will benefit (like me) |
Yes, of course. At the moment, I have a working lm_sensors service file, a cpufrequtils.service, a laptop_mode.service, a couple of syslog-ng.service, gdm@.service and a kdm@.service
I have a bugzilla user, and I think it would be interesting to upload all my (working and tested) service files, and other's users files as well, to make like a "systemd service files database" or something, isn't it?
Also, could you help me (or tell me how) to open a new bugzilla report for this?
------------
My issue with cpufreqd is STILL NOT solved. I have to make a couple of test... And maybe I need to open a new thread on this forum (or a bug in bugzilla), cause originally this thread was for get a working cpufreqd.service and other files for systemd... But now, all related stuff and problems are exclusively from cpufreqd... and nothing to do with systemd... |
|
Back to top |
|
|
erTrabubu n00b
Joined: 27 Feb 2012 Posts: 10 Location: Sevilla, Spain
|
Posted: Wed Mar 07, 2012 8:51 pm Post subject: |
|
|
Hi! Today I wrote some service files for cpufrequtils (based on arch's one and the gentoo init script), microcode-ctl (keeping behaviour of gentoo's init script), hwclock (also keeping behaviour of init script), lm_sensors and also I got some more from other distros or packages. (arch linux distro, syslog-ng package, etc)
Should I upload them here? or, is there a better place for upload them? I think my hwclock service file is thousand times better than the one in gentoo's wiki
Thanks! |
|
Back to top |
|
|
Etal Veteran
Joined: 15 Jul 2005 Posts: 1931
|
Posted: Thu Mar 08, 2012 4:21 pm Post subject: |
|
|
Here's my config parts that you requested.
Code: | $ zgrep -e ACPI -e FREQ /proc/config.gz
# Power management and ACPI options
CONFIG_ACPI=y
CONFIG_ACPI_SLEEP=y
# CONFIG_ACPI_PROCFS is not set
# CONFIG_ACPI_PROCFS_POWER is not set
# CONFIG_ACPI_EC_DEBUGFS is not set
# CONFIG_ACPI_PROC_EVENT is not set
CONFIG_ACPI_AC=y
CONFIG_ACPI_BATTERY=y
CONFIG_ACPI_BUTTON=y
CONFIG_ACPI_VIDEO=y
CONFIG_ACPI_FAN=y
# CONFIG_ACPI_DOCK is not set
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_HOTPLUG_CPU=y
CONFIG_ACPI_PROCESSOR_AGGREGATOR=y
CONFIG_ACPI_THERMAL=y
# CONFIG_ACPI_CUSTOM_DSDT is not set
CONFIG_ACPI_BLACKLIST_YEAR=0
# CONFIG_ACPI_DEBUG is not set
# CONFIG_ACPI_PCI_SLOT is not set
CONFIG_ACPI_CONTAINER=y
CONFIG_ACPI_SBS=y
CONFIG_ACPI_HED=y
CONFIG_ACPI_APEI=y
CONFIG_ACPI_APEI_GHES=y
CONFIG_ACPI_APEI_PCIEAER=y
# CONFIG_ACPI_APEI_ERST_DEBUG is not set
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_TABLE=y
CONFIG_CPU_FREQ_STAT=y
# CONFIG_CPU_FREQ_STAT_DETAILS is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
# CONFIG_CPU_FREQ_GOV_USERSPACE is not set
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
# CONFIG_X86_PCC_CPUFREQ is not set
CONFIG_X86_ACPI_CPUFREQ=y
CONFIG_PNPACPI=y
CONFIG_ATA_ACPI=y
# ACPI drivers
# ACPI drivers
# CONFIG_SENSORS_ACPI_POWER is not set
CONFIG_THINKPAD_ACPI=y
CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y
# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set
# CONFIG_THINKPAD_ACPI_DEBUG is not set
# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
# CONFIG_THINKPAD_ACPI_VIDEO is not set
# CONFIG_THINKPAD_ACPI_HOTKEY_POLL is not set
# CONFIG_ACPI_WMI is not set
# CONFIG_ACPI_ASUS is not set
# CONFIG_ACPI_TOSHIBA is not set
# CONFIG_ACPI_CMPC is not set
CONFIG_PM_DEVFREQ=y
# DEVFREQ Governors
CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
# CONFIG_DEVFREQ_GOV_PERFORMANCE is not set
# CONFIG_DEVFREQ_GOV_POWERSAVE is not set
# CONFIG_DEVFREQ_GOV_USERSPACE is not set
# DEVFREQ Drivers |
If it crashes from command-line, you can make a backtrace and file a bug report. Add "-ggdb" to your CFLAGS and re-emerge the package (don't forget to remove the flag otherwise your binaries will take tons of disk space). Then, run it with gdb (emerge it if you don't have it):
Code: | $ gdb cpufreqd
Enable logging:
(gdb) set logging file backtrace.log
(gdb) set logging on
Run with the arguments:
(gdb) run -D -V 7
once it crashed:
(gdb) bt
...
(gdb) quit |
After that, upload attach backtrace.txt to bugzilla.
And as for unit files, you can also post them on the old wiki. _________________ “And even in authoritarian countries, information networks are helping people discover new facts and making governments more accountable.”– Hillary Clinton, Jan. 21, 2010 |
|
Back to top |
|
|
erTrabubu n00b
Joined: 27 Feb 2012 Posts: 10 Location: Sevilla, Spain
|
Posted: Thu Mar 22, 2012 10:55 am Post subject: |
|
|
Hi! After some days working with my laptop... finally I solved heat problem by disassembing my laptop and cleaning it. Now it does not burn anymore!!
BUT cpufreqd still does not work. It crashes only when it is started with systemd service file. Otherwise it does work!!
Now, after format, reinstall, reconfigure everything, etc... next step is gdb...
My 'working' service files are in https://bugs.gentoo.org/show_bug.cgi?id=318365 I hope they are useful for you all.
Cheers! |
|
Back to top |
|
|
s_j_newbury n00b
Joined: 05 Apr 2007 Posts: 56 Location: UK
|
Posted: Wed Mar 28, 2012 4:18 pm Post subject: |
|
|
erTrabubu wrote: | Hi! After some days working with my laptop... finally I solved heat problem by disassembing my laptop and cleaning it. Now it does not burn anymore!!
BUT cpufreqd still does not work. It crashes only when it is started with systemd service file. Otherwise it does work!!
Now, after format, reinstall, reconfigure everything, etc... next step is gdb...
My 'working' service files are in https://bugs.gentoo.org/show_bug.cgi?id=318365 I hope they are useful for you all.
Cheers! |
I've been fixing bugs in cpufreqd today:
o Segfault on failed reading of battery attributes
o Parser bug for support for independent CPU profiles
Will create/update bugzilla.... any other bugs..? |
|
Back to top |
|
|
s_j_newbury n00b
Joined: 05 Apr 2007 Posts: 56 Location: UK
|
|
Back to top |
|
|
rozenkno n00b
Joined: 01 Sep 2013 Posts: 1
|
Posted: Sun Sep 01, 2013 10:55 am Post subject: |
|
|
Hi!
I had the same problem, cpufreqd running from command line but not as a systemd service.
Code: | systemctl --version
systemd 206
+PAM +LIBWRAP -AUDIT -SELINUX +IMA -SYSVINIT -LIBCRYPTSETUP -GCRYPT +ACL -XZ
|
Calling it with start-stop-daemon seems to solve my problem. Here is my service file /etc/systemd/system/cpufreqd.service :
Code: | [Unit]
Description=CPU overheating control
After=acpid.service
[Service]
ExecStart=/sbin/start-stop-daemon /usr/sbin/cpufreqd -- -f /etc/cpufreqd.conf
Type=forking
PIDFile=/var/run/cpufreqd.pid
[Install]
WantedBy=multi-user.target
|
(the same pid file is set in /etc/cpufreqd.conf) |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|