SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I got OpenRC working with a few modifications of my own. Wasn't easy. A few hiccups, like NetworkManager not cooperating (nothing new as I had issues with it on Runit being a PITA), and Parallel mode seems to be limited due to the way the dependencies are resolved in the scripts (I'm checking this against Funtoo's OpenRC scripts to see what I can optimize), but so far... not too bad.
One thing is for certain, work still is needed to clean up many dependencies in the trees for parallel, but overall it works, and actually stays out of the way.
I got OpenRC working with a few modifications of my own. Wasn't easy. A few hiccups, like NetworkManager not cooperating (nothing new as I had issues with it on Runit being a PITA), and Parallel mode seems to be limited due to the way the dependencies are resolved in the scripts (I'm checking this against Funtoo's OpenRC scripts to see what I can optimize), but so far... not too bad.
One thing is for certain, work still is needed to clean up many dependencies in the trees for parallel, but overall it works, and actually stays out of the way.
Dunno why NetworkManager did not work at your end, seems to work here.
The scripts are sourced from the gentoo packages and placed in a git repository. Any modification that is necessary is done at install time by the install* scripts.
NetworkManager is finicky as it is. I did get dhcpcd working better. I'm going to keep at it to see how it goes. This software seems interesting.
Some small suggestions:
1.) In /etc/inittab, you should change this:
Code:
# TERMINALS
c1:12345:respawn:/sbin/agetty 38400 tty1 linux
To this:
Code:
# TERMINALS
c1:12345:respawn:/sbin/agetty 38400 tty1 --noclear linux
This leaves the boot text intact for last minute reviews when starting from the Console rather than X.
2.) The iptables scripts need to point to /usr/sbin rather than /sbin for the iptables tools.
3.) You also should assign the following to boot: fuse, udev, udev-postmount, sysklogd, and alsasound
You should add these to default: consolekit, sshd, acpid, atd (and NetworkManager or dhcpcd)
These, by default, are enabled in Slackware natively with the bsd-scripts.
Otherwise.... Aaditya... This is way too cool. Love it. Love it. Love it.
You should push this to SlackBuilds.org (pending my suggestions).
1. Instead of editing inittab, I guess /etc/rc.conf could be edited to set RC_LOGGER=yes, this way the boot logs could be stored in /var/log/rc.log (by default) and retrieved later when required.
3. I think I will leave it upto the user to decide which services they want to start, some common ones are listed in the README as well as in the article on docs.slackware.org.
I added a 4th, but regardless, udev and udev-postmount are needed for hardware detection. The rest are trivial, but this could be added into the README.Slackware for noting.
I added a 4th, but regardless, udev and udev-postmount are needed for hardware detection. The rest are trivial, but this could be added into the README.Slackware for noting.
Otherwise, this is shaping up rather nicely.
I was able to boot up my system without the udev service (udev-postmount is used with eudev I think).
I booted up an old copy of System Rescue CD that I had and which uses OpenRC, and udev was in the sysinit runlevel.
From my limited understanding, the services in sysinit runlevel get started first, followed by those in boot and then in default.
Last edited by aaditya; 05-26-2015 at 07:29 AM.
Reason: correct order, from boot -> sysvinit ->default to sysinit ->boot -> default
After some introspection and looking at the enabled services in the System Rescue CD, I decided to enable the following services by default by adding them to the sysinit runlevel: udev, udev-postmount, and kmod-static-nodes.
SlackBuild updated with above changes.
Also, users who use dmcrypt, lvm, or mdraid could add the following services respectively to the boot runlevel:
Although not really a target goal, parallel mode with dependency enforcement enabled boots my system up in about 7 seconds.
Another needed fix, nvidia-persistenced, if I'm not mistaken, is located in /usr/bin rather than /opt/bin (actually this script is not installed but is useful so adding it to the install list might be wise). Same as nvidia-smi and nvidia-settings for the path fixes. The ati drivers might be in the same /usr/sbin directory listing.
Lastly, the other OpenRC project has some scripts for fontcache, ldconfig, glibschema, iconcache, and gtkmodules. (These work well to keep the system themes, cache, etc. up to date.) Importing these might be a good idea.
Package is stable here, so, hopefully you can get this up on SBo.
Although not really a target goal, parallel mode with dependency enforcement enabled boots my system up in about 7 seconds.
Another needed fix, nvidia-persistenced, if I'm not mistaken, is located in /usr/bin rather than /opt/bin (actually this script is not installed but is useful so adding it to the install list might be wise). Same as nvidia-smi and nvidia-settings for the path fixes. The ati drivers might be in the same /usr/sbin directory listing.
Lastly, the other OpenRC project has some scripts for fontcache, ldconfig, glibschema, iconcache, and gtkmodules. (These work well to keep the system themes, cache, etc. up to date.) Importing these might be a good idea.
Package is stable here, so, hopefully you can get this up on SBo.
Added nvidia-persistenced and changed the path for it as well as nvidia-smi, I dont use it so I dont know if it works though...
For ati I dont see a package in SBo, so I guess I will not change the path for that.
I could not find the files for fontcache, ldconfig, glibschema, iconcache or gtkmodules, if you can locate them I could add them. As an alternative one could create a script for them in the /etc/local.d directory (see /etc/local.d/README for more details), by copying the relevant portions from /etc/rc.d/rc.M.
I think I will wait another week before submitting to SBo to see if more bugs can be discovered and fixed
To combat the problem of using bsd-style init or OpenRC with packages, I added a small tool inside my SlackBuild scripts at SlackWorks such as follows:
Code:
if [ -d /etc/rc.d ]; then
mkdir -p $PKG/etc/rc.d
cat $CWD/rc.consolekit > $PKG/etc/rc.d/rc.consolekit.new
chmod 0755 $PKG/etc/rc.d/rc.consolekit.new
fi
This autodetects the init system in usage (whether it be sysvinit or OpenRC) and does or doesn't create the appropriate system directory as needed to avoid unneeded scripts being placed in the wrong directories.
A similar trigger will be needed in doinst.sh as well, but this does work very effectively.
This might be useful for any package using a custom init script for Slackware.
Also, due to the fact there are things being loaded from the schemas and cache being updated, the boot process will take longer than normal, but on average with everything going, my boot time is about 35-55 seconds depending on what I have enabled for boot time.
Honestly, everything is working, minus ip6tables, which is probably a kernel issue, but overall it works well enough to be release worthy.
I would make sure all the init scripts that are usable by Linux are installed.
Aaditya, you have done well and wisely. Pat yourself on the back kiddo, you just brought Slackware an alternative and completed init system.
To combat the problem of using bsd-style init or OpenRC with packages, I added a small tool inside my SlackBuild scripts at SlackWorks such as follows:
Code:
if [ -d /etc/rc.d ]; then
mkdir -p $PKG/etc/rc.d
cat $CWD/rc.consolekit > $PKG/etc/rc.d/rc.consolekit.new
chmod 0755 $PKG/etc/rc.d/rc.consolekit.new
fi
This autodetects the init system in usage (whether it be sysvinit or OpenRC) and does or doesn't create the appropriate system directory as needed to avoid unneeded scripts being placed in the wrong directories.
This might be useful for any package using a custom init script for Slackware.
The above look custom made, I was looking more for Gentoo provided ones.
Also, as these services are mostly oneshot, I think they are more appropriate as a script in /etc/local.d. So I added rcM.start, which will be installed but will be not be enabled by default. To enable it one can do:
Code:
# chmod +x /etc/local.d/rcM.start
openrc-services SlackBuild updated with this change.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.