Changing nvidia powermizer setting using laptop-mode-tools - linux

I have laptop-mode-tools 1.61. The config files at /etc/laptop-mode/ have two folders for making laptop-mode-tools to execute scripts, when it detects that it has been switched from AC to battery, and viceversa. I have nvidia propietary driver 310.14 and ubuntu 12.04. the powermizer setting of the nvidia driver is set to adaptative. I want to have it on adaptative when on battery, and on performance mode (no underclocking) when on AC.
As the powermizer setting is changed in runtime with a selection box, I think it's possible to achieve what I want.
I have searched the web for commands to change the nvidia powermizer settings on the fly, as with the GUI, but I only found permanent ways of changing it by touching the xorg.conf.
Is there a command to change the nvidia powermizer setting on the fly?

Related

How to stop Pop_OS 20.10 defaulting to glitchy display settings on boot?

Just installed pop_OS 20.10. My laptop is connected to a second monitor, I usually have both monitors display the same image.
Every time I boot it changes my display settings to "Join Displays" and then overlaps the two display (I don't know why overlapping the displays is even possible.
I change the display settings to something reasonable but they change back after a restart.
Is there any proper fix for this, or a hacky fix such as changing display settings in a shell script and adding the shell script to startup? (I couldn't find how to change settings through a shell script)
You will want to disable the HiDPI Daemon which is in the Settings -> Display.
REDDIT thread

Embedded Qt Mouse Pointer Not Showing Up

I've got a bit of an interesting problem here. There are plenty of threads I've found where people are working to hide or get rid of a cursor on an embedded Qt GUI...but I'm trying to get a cursor to show up on an embedded Qt GUI.
I inherited a project that was 'finished' some time ago, and the person who did the most work on the project has moved on. Fast forward to today and there is a need to add a cursor to this functional touchscreen GUI. The system OS is Yocto Linux, and it is running a Qt 5.4 application on a framebuffer.
I've scoured the Qt code and there is nothing there that would hide a cursor. I've added in the appropriate QT_QPA_FB_HIDECURSOR=0 environment variable to my Qt startup script. I've experimented with adding a QCursor obejct to the GUI. Unfortunately none of these things are working. Using the QCusor I am sometimes able to get a cursor up on the screen, but isn't tied to the touch input (the cursor shows up at the position I programatically move it to, but it stays there when I interact with the GUI).
My touch input events are tied into Qt (via QT_QPA_GENERIC_PLUGINS=evdevtouch and QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/event9:rotate=180), but for some reason that touch input cannot be tied to a cursor.
At this point I've spent a few days messing around with environment variables and startup script modifications, but nothing I've done has got the result I'm looking for.
Does anybody out there have some ideas on where to look for solutions to this problem?
Thanks!
Ian
So, now 3 months later I think my team and I just came up with a passable solution to this problem.
The path towards the solution started with the Qt Documentation on "Using libinput". The documentation boils down to a few important statements:
Parameters like the device node name can be set in the environment variables QT_QPA_EVDEV_MOUSE_PARAMETERS, QT_QPA_EVDEV_KEYBOARD_PARAMETERS and QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS
The mouse cursor shows up whenever QT_QPA_EGLFS_HIDECURSOR (for eglfs) or QT_QPA_FB_HIDECURSOR (for linuxfb) is not set and Qt's libudev-based device discovery reports that at least one mouse is available. When libudev support is not present, the mouse cursor always show up unless explicitly disabled via the environment variable.
The evdevtablet plugin provides basic support for Wacom and similar, pen-based tablets. It generates QTabletEvent events only. To enable it, pass QT_QPA_GENERIC_PLUGINS=evdevtablet in the environment or, alternatively, pass -plugin evdevtablet argument on the command-line. The plugin can take a device node parameter, for example QT_QPA_GENERIC_PLUGINS=evdevtablet:/dev/event1, in case the Qt's automatic device discovery (based either on libudev or a walkthrough of /dev/input/event*) is not functional or misbehaving.
So, in my system I have the device nodes: event0, event1, event2, event3, event4, event5, mice, and mouse0. Because I'm trying to get the mouse working, I made the assumption that I'd have to use the mouse0 node. This lead to me setting these environment variables:
QT_QPA_GENERIC_PLUGINS=evdevmouse
QT_QPA_EVDEV_MOUSE_PARAMETERS=/dev/input/mouse0
Much to my frustration these environment variables led to nothing. After some time my team and I figured out how to get debug output from Qt source on our system:
Modifying source code in the qtbase directory under our yocto build (roughly /yocto/poky/build/tmp/work/temp build directory/qtbase
Copying qtbase/plugins/generic/libqevdevmouseplugin.so to my hardware (roughly /usr/lib/qt5/plugins/generic)
Running Qt from the command line
We quickly discovered that the input events coming from mouse0 and mice were basically garbage data. On our system we did set up EVDEV in the kernel, so the mouse input was also tied to the device node event0. When we tried setting the Qt mouse parameter to event0 we started to see debug output that looked like real data.
QT_QPA_GENERIC_PLUGINS=evdevmouse
QT_QPA_EVDEV_MOUSE_PARAMETERS=/dev/input/event0
However, the problem of no-mouse-pointer still remained. After a while we looked back at the Qt Documentation, specifically at the 2nd paragraph listed above. As a last ditch attempt we tried adding in the QT_QPA_FB_HIDECURSOR environment variable...
QT_QPA_GENERIC_PLUGINS=evdevmouse
QT_QPA_EVDEV_MOUSE_PARAMETERS=/dev/input/event0
QT_QPA_FB_HIDECURSOR=0
And...voila! After countless hours of debugging and reading documentation, we finally got a mouse pointer.
I think the main crux of our issue was misinterpreting the Qt Documentation.
The mouse cursor shows up whenever ... QT_QPA_FB_HIDECURSOR (for linuxfb) is not set
By "not set", Qt means explicitly defined as FALSE...not simply "not set" at all.
This solution will work for us, but it does leave at least one thing to be desired. Along the way I stumbled across this thread answer on the Unix StackEx which points to the Kernel documentation of input/input.txt. In section "3.2.2 mousedev" you can see the line:
Each 'mouse' device is assigned to a single mouse or digitizer, except
the last one - 'mice'. This single character device is shared by all
mice and digitizers, and even if none are connected, the device is
present. This is useful for hotplugging USB mice, so that programs
can open the device even when no mice are present.
What this means for us is that while we can use event0 (which goes away when we unplug the mouse) for our mouse input event handling, we won't be able to support hot plugging without making some kernel/Qt-source modifications or figuring out how to get mice working as a Qt mouse input parameter.
So, the question of "why does event0 work and not mouse0/mice" still stands...but for now we've got a solution we can live with.
UPDATE: Now a little bit later we've figured out that udev was not working properly on our system. We added udev to the RDEPENDS in our package group for the Yocto build, and now we can set
QT_QPA_GENERIC_PLUGINS=evdevmouse
and we get a working mouse pointer with hotplug support.
I dont know if this applies to your problem (i dont use QT), but there is a
HAVE_TOUCHSCREEN=1 variable in the machconfig file. It is located normally in your BSP-layer in a recipes-bsp/formfactor/formfactor directory.
Setting this to 1 makes the cursor invisible.
Try setting it to 0

In gnome, how to get focus but not take window to top?

I use Archlinux. After latest update, my gnome 3 gets a property that a window can get focus without overlap other windows. I like it. But when I copy my configuration to another Archlinux (same version), it doesn't behave like that.
So, how to configure gnome to keep that property?

Angstrom Linux on Beagleboard boots into sleep mode

I'm running GNOME on Angstrom Linux on a Beagleboard, and have an issue when the device boots, i'm running the 2013-06-20 image from http://beagleboard.org/latest-images.
Power on, and the screen will display the Beagleboard logo, and continues to boot up. The screen goes black, but instead of loading onto the desktop, the screens (I've tried a few just to make sure) report no output from the device. If i move the mouse/press a key on the keyboard however it wakes up and displays the desktop.
Has anyone else experienced this? Is there a way to prevent this 'sleep mode' (I doubt that's what it is, its just the best phrase I can think of describe this problem) from happening and just to boot up & display the desktop?
Cheers.
This seems to have fixed the issue I was having, firstly I'd suggest updating any outdated packages by opening a terminal and typing
opkg update
this should only take ~1 minute, aftewards type
opkg upgrade
This can take anywhere from ~10minutes to ~6 hours maybe even more, so be patient, just leave the device alone until it has finished.
then open the following file
nano /etc/X11/xorg.conf
and add the following
Section "ServerFlags"
Option "BlankTime" "0"
Option "StandbyTime" "0"
Option "SuspendTime" "0"
Option "OffTime" "0"
EndSection
Section "Monitor"
Option "DPMS"
Identifier "Builtin Default Monitor"
EndSection
This should also disable any screensavers etc... which was also ideal for my requirements.
Reboot your device, and it should be good to go.

Turn off framebuffer console in Ubuntu Minimal

I'm trying to set up a VM based on Ubuntu Minimal to test out working with the framebuffer/DirectFB. I want the VM to only display what I put on the framebuffer, while I'm controlling the VM over SSH. So ideally, it boots to a blank screen without a console.
I enabled the framebuffer device by adding video=vesafb and vga=0x305 to the kernel parameters. The framebuffer is working, because "cat /dev/urandom > /dev/fb0" (over ssh) fills the screen with noise.
However, the VM still shows console 1/tty1, and even after I fill the framebuffer with data, there is still a blinking cursor.
How do I turn off the framebuffer console?
Try to add console=/dev/null as a kernel parameter, it should help.

Resources