You are not logged in.
Another thought: Many MATE components use dbus for interprocess communication, so mate-panel almost certainly uses it as well. dbus logs to /var/log/syslog. Does anything interesting show up in the syslog when the panel becomes unresponsive?
Oh, pity. I was hoping it would be an easy fix.
MATE immediately restarts the panel when it is killed, so running killall mate-panel has the effect of a panel respawn. Maybe you can use that in a pinch while looking for a proper fix.
If you provide more information on how your system is configured, we can compare and hopefully single out the culprit.
rolfie, I'm also on Devuan ASCII with Mate 1.16 and Lightdm, manually installed. My system started out as MiyoLinux.
Are you using a background image for your panel? Check by right-clicking on panel -> Properties -> Background. When I was using a background image, my panel was unstable and sometimes icons would disappear and/or panel would lock up on me. Choosing "None (use system theme)" for panel background made all my panel issues go away.
Lightdm is probably innocent here.
Thank you, yeti and fsmithred. Good to know this is just how it is. I thought something in my /etc/apt/apt.conf.d/ or /etc/apt/preferences.d/ was broken.
Then my guess then is that it is either this way by design (for some reason unknown to me) or else it's a minor bug that's only cosmetic.
At any rate, I booted an old Debian 8 partition, downloaded ffmpeg, installed it, and checked the installed version. There are no url escape codes in the version that apt reports being installed. (I guess this is not surprising since apt gets version number from package's /DEBIAN/control file and not from the name of the .deb file.) No harm, no foul.
bruno@thinkpad8:~/Desktop$ apt-get download ffmpeg
Get:1 http://ftp.us.debian.org/debian/ jessie-backports/main ffmpeg amd64 7:3.2.10-1~deb9u1~bpo8+1 [1,535 kB]
Fetched 1,535 kB in 0s (1,537 kB/s)
bruno@thinkpad8:~/Desktop$ ls
ffmpeg_7%3a3.2.10-1~deb9u1~bpo8+1_amd64.deb # note the '%3a'
bruno@thinkpad8:~/Desktop$ sudo gdebi ./ffmpeg_7%3a3.2.10-1~deb9u1~bpo8+1_amd64.deb
# installation proceeds normally
bruno@thinkpad8:~/Desktop$ apt list --installed ffmpeg
Listing... Done
ffmpeg/jessie-backports,now 7:3.2.10-1~deb9u1~bpo8+1 amd64 [installed] # note the ':'
Sorry for the noise, but when I first noticed this it was completely unexpected.
When I download packages that contain a colon in the version number (e.g., ffmpeg 7:3.2.10-1~deb9u1 or xserver-common 2:1.19.2-1+deb9u2), the downloaded package name contains %3a where I was expecting :.
bruno@thinkpad:~/Desktop$ apt download ffmpeg xserver-common
Get:1 http://gnuser.ddns.net/devuan/merged ascii/main amd64 ffmpeg amd64 7:3.2.10-1~deb9u1 [1,530 kB]
Get:2 http://gnuser.ddns.net/devuan/merged ascii/main amd64 xserver-common all 2:1.19.2-1+deb9u2 [2,059 kB]
Fetched 3,589 kB in 4s (784 kB/s)
bruno@thinkpad:~/Desktop$ ls
ffmpeg_7%3a3.2.10-1~deb9u1_amd64.deb
xserver-common_2%3a1.19.2-1+deb9u2_all.deb
Using apt-get download instead of apt download makes no difference.
Is this expected behavior, an upstream bug, or symptom of some misconfiguration on my system? (Internet searches have come up dry.)
Is there a way to set up sudo on a per-application basis ...
ie: so that sudo will work with a select list of apps, like Wine and LinSSID.
Yes. If that's really all you want, putting a line like this at the end of /etc/sudoers (preferably by running # EDITOR=nano visudo) will do the trick:
groucho ALL=(root) NOPASSWD: /usr/bin/wine-stable,/usr/bin/winecfg-stable,/usr/bin/linssid
However, being able to use sudo to run any command you want as any user:group you want is much more convenient. For that, put this at the end of sudoers:
groucho ALL=(ALL:ALL) NOPASSWD: ALL
If you prefer to enter your password each time, use PASSWD instead of NOPASSWD.
P.S. If you are truly in the sudo group, the %sudo... line shown in chris2be8's response should allow you to run any command with sudo provided you enter your password. The problem you are having is either because the %sudo... line is missing from sudoers (unlikely) or, more likely, you are not actually part of the sudo group. Type id at the command line to see the groups you are part of. If you are not part of the sudo group, add yourself to it with this command: # usermod -a -G sudo groucho
That's what I thought.
Thank you, ralph.ronnquist. I'm embarrassed that S0?eudev is in /etc/rcS.d/ (instead of in /etc/rc2.d/) but I didn't know to look there. A careful look at /etc/inittab would have clued me in to the fact that the /etc/rcS.d/ directory exists and its scripts run before those in /etc/rc?.d/.
You really took it to the next level with the information about the pre-pivot start up. In my mind all that is simply "initramfs stage"--the fine details of which I never considered or even heard of before. Thank you very much for such an insightful answer.
Even though eudev is a service (sudo service eudev status produces output and /etc/init.d/eudev exists), I cannot find a corresponding link in /etc/rc2.d (i.e., none of the links have eudev, udev, or udevd in the name).
What starts the eudev service and how?
A solution: In /etc/init.d/eudev, add this as the last line of the start) section (in my file, this line ends up being line 218):
ls /run/udev/tmp-rules* && { sleep 5; /lib/udev/udev-finish; } &
That part of /etc/init.d/eudev now looks like this:
# wait for the udevd childs to finish
log_action_begin_msg "Waiting for /dev to be fully populated"
if udevadm settle; then
log_action_end_msg 0
else
log_action_end_msg 0 'timeout'
fi
ls /run/udev/tmp-rules* && { sleep 5; /lib/udev/udev-finish; } &
;;
stop)
I think the issue is that when eudev runs, the filesystem is not yet writable and therefore /lib/udev/write_net_rules writes to temporary files in /run/udev/ (see the choose_rules_file and writeable functions in /lib/udev/rule_generator.functions).
It is the job of /lib/udev/udev-finish to copy temporary rules in /run/udev/ (which don't survive reboot because they exist in RAM) to the root filesystem once filesystem is writable, but nothing seems to ever run this script (I inserted a line in udev-finish that creates a dummy file, but the dummy file never shows up under any circumstances).
So I think I found a bug: Nothing ever triggers /lib/udev/udev-finish, therefore temporary rules in RAM never get transferred to the filesystem, therefore /run/udev/tmp-rules--70-persistent-net.rules gets generated anew at every boot but /etc/udev/rules.d/70-persistent-net.rules never sees the light of day.
I discovered something: After every boot, /run/udev/tmp-rules--70-persistent-net.rules exists (populated with naming rules for eth0 and wlan0 based on their MAC addresses), even though /etc/udev/rules.d/70-persistent-net.rules never gets created. So the naming rules are generated anew on each boot, but exist only in RAM.
Maybe the timing of things at boot is such that eudev is trying to commit the naming rules to filesystem before the filesystem can be written to?
Afaict the idea is, that any subsequent addition event for the same net device adapter will process 70-persistent-net.rules first, and that will set NAME for the adapter, and thereby disarm 75-persistent-net-generator.rules.
This seems sensible, but the fact is that my 70-persistent-net.rules is absent, so it cannot be responsible for setting NAME for the adapter or for disarming 75-persistent-net-generator.rules. Something is disarming the generator.rules, the question is what that something is.
@w3 obrigado pelo link. Me cadastrei no git.devuan.org e pedi acesso ao wiki devuanbr. Também fiz o upload da minha chave de SSH pública. Ficarei de olho no wiki e contribuirei quando ver oportunidades, do mesmo jeito que contibuo neste fórum (devagar e sempre).
Que tipo de conteúdo e onde?
Ultimamente ando bastante ocupado com trabalho e família (tenho três filinhos com menos de 5 anos), mas posso ajudar dependendo do que se trata.
Thank you very much for that, fsmithred. The 70-persistent-net.rules on my refractasnapshot "parent" partition was definitely not a leftover, either, since that partition was a fresh install.
This is a complete mystery to me at this point.
fsmithred: On your ASCII partition that has the file, would you please backup the file, delete it from /etc/udev/rules.d/, reboot, then check if the file is regenerated? I'm guessing it won't be autogenerated (i.e., the file was there because it was autogenerated at some point in the past).
I'm glad I'm not the only one scratching head over this. I don't care about 70-persistent-net.rules per se--after all, everything works and all machines have the old interface names. But I do want to figure out why the file mysteriously stopped being autogenerated.
Ralph: /lib/udev/rules.d/75-persistent-net-generator.rules exists on all my machines, full of nice-looking code. Neither now nor in the past did any of these machines set the net.ifnames kernel boot parameter.
Thank you, fsmithred. Question #1 is completely answered. (I have a deep dislike for the new interface names, by the way. Yuck!)
The question remains as to why this file used to be automatically generated on these machines, but not anymore. I did not change any eudev settings. Did using refractasnapshot on the "parent" of the two affected machines have something to do with it? (I can imagine that unless the refracta scripts intervened somehow, transferring a typical autogenerated /etc/udev/rules.d/70-persistent-net.rules from parent to child computer would mess up the interface names--e.g., child computer's wireless card would be named wlan1 instead of the expected wlan0).
Today I noticed that two of my Devuan ASCII machines are missing /etc/udev/rules.d/70-persistent-net.rules altogether, while a third machine has the file but it is blank. All machines are working fine including internet access (and network interface names are the easy-to-remember old-fashioned ones). eudev is running on all the machines:
bruno@inspiron:~$ sudo service eudev status
[ ok ] udevd is running.
This situation made me realize some gaps in my knowledge:
1. What is the function of this file normally?
2. Why is the file absent/empty? It used to be generated automatically, but not anymore. Is something broken on these machines?
I tried timeshift a while back, but found it too complicated. Also, I tried about 5 restores and one of them failed, leaving my system unbootable. I'd like to recommend partclone to you. It is simple and has never let me down after many years of use. It creates a compact image of your partition (by excluding empty space), which you can restore if something goes wrong.
If you are interested, this is how to use it (assuming your Devuan ASCII partition is /dev/sda1 and your filesystem is ext4):
To create backup: Boot into a live USB (or any partition other than the one you want to backup), plug in external storage device, and run these commands:
cd /path/to/external/storage/
sudo partclone.ext4 -c -s /dev/sda1 -o backupname
To restore backup: Boot into a live USB (or any partition other than the one you want to restore), plug in external storage device, and run these commands:
cd /path/to/external/storage/
sudo partclone.ext4 -r -s backupname -o /dev/sda1
Because partclone excludes empty space, its backups are much smaller and backup/restore times shorter than you'd get with a tool like dd.
I realize none of this answers your question, but I thought I'd share in case you are interested in alternatives as well as timeshift.
Haha. When I'm after a tidbit like this, I go crazy.
I figured it out:
udevadm info -p /sys/class/net/wlan0 | grep MAC | awk -F'wlx' '{print $2}' | sed 's/../&:/g' | cut -c 1-17
In the above command, sed puts in colons every two characters, cut removes the extraneous final colon.
If putting in the extraneous colon offends your sensibilities, here is a slightly more complicated solution (using perl's lookahead feature) that doesn't put in the final colon:
udevadm info -p /sys/class/net/wlan0 | grep MAC | awk -F'wlx' '{print $2}' | perl -pe 's/(..)(?=\w)/$1:/g'
P.S. My MAC spoofing script works by creating /etc/udev/rules.d/75-mac-spoof.rules that looks something like this:
ACTION=="add", SUBSYSTEM=="net", ATTR{address}=="12:34:56:aa:bb:cc", RUN+="/sbin/ip link set dev %k address 12:34:56:dd:ee:ff"
Since eudev is capable of changing MAC addresses, maybe there's a eudev tool that shows original addresses?
I'm looking for a reliable way of getting my wireless network card's real MAC address without installing any new tools.
My MAC spoofing shell script currently finds real MAC address of wlan0 by parsing /etc/udev/rules.d/70-persistent-net.rules, but this approach burned me recently because that udev file was empty for some strange reason. I tried dmidecode but it does not show MAC address of wlan0. I also tried dmesg, but first mention of wlan0's MAC address already shows the spoofed address. No luck with either lshw -c network or lspci -vvv. Some search engine hits suggest looking in /proc/net/bonding/, but my system does not have this directory. The only alternative I've found to my current approach is ethtool -P wlan0, but I do not want to install an extra package (ethtool) just for this job.
Please, how do I get a wireless network card's real MAC address from the hardware itself or from the kernel without installing any special tools? I know that it is possible because a long time ago I was able to do it (I think by parsing a file in /proc or /sys), but I can't remember how I did it. (Hardwiring the real MAC address as a variable in the script is not possible because I share this shell script with some other folks, so the script needs to be able to find the real MAC address by itself.)