OpenCV keeps "uninstalling" itself (Linux) - linux

Really annoying issue here. On Linux Mint OS. Every so often, I'll get this error when running OpenCV code:
HIGHGUI ERROR: V4L/V4L2: VIDIOC_S_CROP
OpenCV Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script) in cvNamedWindow, file /home/ravi/Desktop/opencv/OpenCV-2.1.0/src/highgui/window.cpp, line 180
terminate called after throwing an instance of 'cv::Exception'
what(): /home/ravi/Desktop/opencv/OpenCV-2.1.0/src/highgui/window.cpp:180: error: (-2) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function cvNamedWindow
The way to fix this, I've found, it to do the following:
cd OpenCV/
cd build/
cmake ..
make
sudo make install
sudo ldconfig
<restart computer>
Then I'll come back, start running my OpenCV code again, and it'll be fine. But then a few hours later, or possibly between turning cpu on/off, I'll be back to the same stupid error!
Does anyone have any idea what's going on here and how I can prevent this? It's frustrating as hell.

It sounds like a general critical error in the program code. Is there a specific task that is done when the error occurs? You might want to use strace to get the output of the program as it runs or enable application memory dumps for the user you are running the process as. This would be passed to the developer for debugging and inspection.

I believe the problem was solved by paying attention to where my USB camera was actually located in /dev/. Giving a faulty path to the get video source functions causes this type of error; restarting my computer occasionally shifted which /dev/video# my device was attached to.
Please do ls /dev/vid* to find out if you're using the right video source!

Related

Any success installing VMware Workstation on virgin Rocky Linux 8.5?

Using a virgin (but updated) version of Rocky Linux 8.5, I am trying to install VMware Workstation 16.2.1 (and others), but get compile errors during the first attempt to run, when vmmon and vmnet are being built.
All the proper, current headers from kernel-devel and kernel-headers are installed.
I tried upgrading to the 5.16.4 kernal at kernel.org, with all associated headers, and basically get the same errors.
"Unable to install all modules." i.e., vmmon and vmnet
Posts i have found with searching the net seem to indicate that there was a "back-port" of an upstream fix to Rocky that has affected the ability to build the loadable kernel modules necessary to run vmware - but i cannot confirm this is actually the problem that I am experiencing.
So i simply ask these questions: Can anyone (today) install VMware Workstation 16.2.1 (or any version), on a fresh install of Rocky Linux 8.5?
If so, would you please point me at your installation instructions, because I am unable to build "vmmon" and "vmnet" modules today (2022-01-04), that allow me to actually run virtual machines with vmware? (The kernel modules fail to compile and build.)
(and after 15 years of using stackoverflow i do not have the reputation to create a "rocky-linux" question tag...)
See https://unix.stackexchange.com/questions/689436/the-vmmon-and-vmnet-vmware-workstation-kernel-modules-fail-to-build-on-rocky-lin
mbubecek's instructions work for a variety of releases and should compile perfectly and run without issue, if you follow his instructions.
I have successfully used these methods at least a half dozen times with Rocky 8.5 and 8.6 with vmware workstation 16.1 up to version 16.2.1
NOTE: This error is NOT Rocky Linux specific. Also happens on some versions of RHEL 8 and CentOS 8.x I would also expect this "fix" to work on all of the other linux versions that are RHEL 8-derived.
I've been having difficulty with the same issue, and a colleague pointed me to check my kernel. This is our "official" resolution. See if the below works for you.
This is due to differences between the kernel and the source code for the VMWare modules, see here for more information. You can get the correct kernel modules, and build them by executing the following commands
wget https://github.com/mkubecek/vmware-host-modules/archive/workstation-16.1.0.tar.gz
tar -xf workstation-16.1.0.tar.gz
cd vmware-host-modules-workstation-16.1.0/
make
sudo make install
If you get the error,
crosspage.c:53:16: fatal error: linux/frame.h: No such file or directory
The error is described here. The solution is to remove (i.e. comment out) the offending include file in crosspage.c After doing the sudo make install, it is a very good idea to restart you host.
You may need to manually insert the modules into the kernel the first time after running make install'. The kernel modules (vmmon.ko and vmnet.ko) will be found at /lib/modules//misc. The following set of command will do this:
cd /lib/modules/$(uname -r)/misc
sudo insmod vmmon.ko
sudo insmod vmnet.ko
The modules should be load automatically after a restart/reboot.
If you update vmware to a different version (say 16.2.1) you may need to this again. Just change the versions in the above commands. If you hit the update button on the splash-screen and failed to notice the version you are updating to, you can run `vmware -v' at a command prompt to get the version you updated to.

How to start Unity Editor on Linux?

I downloaded the latest version of Unity platform-agnostic self-extracting installation script and successfully installed it:
$ sudo sh ./unity-editor-installer-5.4.0p1+20160810.sh
Installer for Unity 5.4.0p1
Press Enter to begin extracting to ./unity-editor-5.4.0p1
Unpacking Unity 5.4.0p1 ...
Extraction complete. Run ./unity-editor-5.4.0p1/Editor/Unity to begin
Then I tried to run the Editor:
$ ./unity-editor-5.4.0p1/Editor/Unity
These two windows appear immediately when the command above is run:
and nothing more happened for the whole night. No error messages, no console output, no log files and no syslog entries. top utility shows that Unity process utilizes one core for 100% of it's CPU time.
I run OpenSUSE 13.2 with up-to-date nVidia graphics drivers. My system also matches all dependencies and requirements listed here, and I didn't see any other instructions except "run the installation script, then run the editor". Unity works OK on Windows with the same hardware.
So my questions are:
How (if possible) to run Unity Editor on non-Ubuntu distributions?
Where can I find error messages (if any) which might clarify the reasons of the issue?
This seems to be a common linux bug.
I can't make any assurances but what worked for me (and what seems to be the most suggested fix on the unity forums) is to do two things:
update or install NPM
create the directory "~/.local/share/unity3d/Packages"
If your npm is up to date, the directory thing seems to be the big to-do (it worked like crackers for me).
If you've got both...well, at least you get the joy of adventure trying to figure out what else could be going against you.

Golang cross-compilation: gccgo - unrecognized command line option `-marm`

I'm trying to compile a Go app for linux/arm and keep running into problems on my Ubuntu machine. When I run GOOS=linux GOARCH=arm go build in my source directory, I get tons of erorrs that are variations of:
# github.com/huin/mqtt
gccgo: error: unrecognized command line option `-marm`
Running gccgo --help informs me that options starting with -g, -f -m (and others) will be passed on to any sub-processes started by gccgo, so I don't know which process it's sending -marm to.
Any clues? Ubuntu 14.10 LTS, 64bit
So thanks to a clue by Dean, I've worked out the issue and solved it.
The issue was caused by me installing Go via apt-get, then removing it (via apt-get), then installing Go from the golang website. There were still files left over from the first install, which were probably older versions and therefore didn't have support for the -marm flag.
I was going to wipe my dev machine anyway, so I did, installed Ubuntu again, installed Go from the website (not via apt-get) and everything worked first time. If you don't want to wipe your machine, then just make sure to look around to see if there are version conflicts.
I've been stung by this sort of thing before (when installing node.js via apt-get, realising it was many versions out of date, then removing, and installing node.js via source), so if anyone is reading this, be careful when installing software via apt-get, then upgrading, as you might have similar version issues like I did!

Error setting up ddd to debug bash scripts

I am comparatively new to Linux. I am running Fedora 64 bit at my PC. I am having difficulty setting up ddd with bashdb. I am able to install it using yum but when I run it for bashdb, the software environment for ddd comes up but it keeps on working for infinite time, unless I manually kill it.
I used google to know what the problem is and came to know many people are having same problem, when using linux's package installers. It has bugs so I have to compile the latest source and install it manually. So I downloaded the source and tried to ./configure, it produced the following error and exited:
configure: error: Cannot find termcap compatible library
I searched again and found out I need termcap library at my PC, here:
https://lists.gnu.org/archive/html/bug-ddd/2013-01/msg00004.html
http://www.cplusplus.com/forum/unices/58299/
I used yum to install ncurses but found out it is already installed. Used locate to find the path of ncurses and passed it to configure using following commands:
sudo ./configure --with-termlib-libraries=/lib/libncurses.so.5
sudo ./configure --with-termlib-libraries=/lib/libncurses.so.5.9
Still, I am having the same error.
It is very frustrating because I have tried almost everything I found on internet. May be, there is a minor point that I am overlooking due to my inexperience. My main concern is to be able to debug complex bash scripts that I am going to develop in near future. I am not very comfortable with command line debugging i.e. without an interface. Any tips/advice that, can get me going with debugging with some other application may be, are also welcomed
I installed the ncurses development package to get past this problem:
sudo yum install ncurses-devel*

How to get started with Bluetooth for Ubuntu

I really need help getting started. I want to make a basic program (in C) that can read a bluetooth socket and print whatever it is sent. I tried to get Bluez (followed this:http://hackgnar.com/article/installing-the-latest-bluez-software-in-ubuntu-12/ it went great until the "make" at the end and then no luck, would not make and example program could not find bluetooth/bluetooth.h).
I guess my hopeful options are:
some one can tell me what I'm missing with Bluez's install and possibly how to get started with it (compiling etc)
Alternative to bluez? Laptop could do bluetooth file transfers before I installed bluez so do I even need it for this application?
Any sort of comprehensive hello world (download, install, example, compile and run)
I have a strong programming background, just not in Linux (you can gloss over the C stuff but please not the Linux/Ubuntu stuff).
Thanks!
I can only guess that you have an old version of the kernel, or one of the required libraries. Try updating your linux installation (e.g. to a 3.5.x kernel or thereabouts).
I had no problem completing the steps you took.
If you are looking for example programs, you can always look at the simpler tools.
On my ubuntu box I'd do e.g.
sudo apt-get build-dep bluez-tools
apt-get source --compile bluez-tools
which gets all build dependencies, sources and builds the bluez-tools package on your system.

Resources