make: execvp Permission denied , Error 127 - windows

I am trying to run an executable from makefile using cygwin make, The executable has proper permissions, still make fails saying permission denied, Error log :
C:\jenkins\workspace\donotship\sdk>make exe
ls -l C:/jenkins/workspace/donotship/sdk/InstallAnywhere/build.exe
-rwxr-xr-x 1 c_celuru Domain Users 558368 Oct 20 16:27 C:/jenkins/workspace/donotship/sdk/InstallAnywhere/build.exe
C:/jenkins/workspace/donotship/sdk/InstallAnywhere/build.exe
make: execvp: C:/jenkins/workspace/donotship/sdk/InstallAnywhere/build.exe: Permission denied
Makefile:463: recipe for target 'exe' failed
make: *** [exe] Error 127
The makefile contains following instructions for exe target
exe:
ls -l C:/jenkins/workspace/donotship/sdk/InstallAnywhere/build.exe
C:/jenkins/workspace/sdk/InstallAnywhere/build.exe
I am able to execute C:/jenkins/workspace/sdk/InstallAnywhere/build.exe from command line but not through make.
When I run C:/jenkins/workspace/sdk/InstallAnywhere/build.exe manually I get a popup saying "Do you want to allow the following program to make changes to this computer", to avoid this I changed "User Account control settings" in control panel to "Never Notify".From then I can execute build.exe without previous popup, but from make, it fails saying permission denied

Related

Kernel configuration is invalid - raspberry rtl8812au driver

Been looking everywhere and tried a lot of things but can't get it to work. A BIG Banana to the one which will save me.
Objective. Install the rtl8812au driver on my Raspberry 4
Steps:
git clone https://github.com/gnab/rtl8812au
cd rtl8812au
sudo vi Makefile
CONFIG_PLATFORM_I386_PC = n
CONFIG_PLATFORM_ARM_RPI = y
CONFIG_POWER_SAVING = n
sudo chmod +x install.sh
sudo ./install.sh
Then get the following error either through make or sudo ./install.sh
make[1]: Entering directory '/root/linux-ff93994fb3f92070d8521d709ad04675ecaa5817'
ERROR: Kernel configuration is invalid.
include/generated/autoconf.h or include/config/auto.conf are missing.
Run 'make oldconfig && make prepare' on kernel src to fix it.
Makefile:632: include/config/auto.conf: No such file or directory
make[1]: *** [Makefile:704: include/config/auto.conf] Error 1
make[1]: Leaving directory '/root/linux-ff93994fb3f92070d8521d709ad04675ecaa5817'
make: *** [Makefile:1068: modules] Error 2
Of course, I tried make oldconfig && make prepare which returned:
make: *** No rule to make target 'oldconfig'. Stop.

cocotb-modelsim error due to Illegal option -o pipefail

I am trying to run cocotb simulations with modelsim, however, I am getting an error and no success, in the last two days, fixing it.
I have installed cocotb using "pip3 install cocotb". The python version I am using is 3.7.0. I have installed the questa/modelsim Lite version 19.1 (which is free through Intel).
I am able to run cocotb simulations with icarus and verilator, however, with modelsim I run into following error:
mehdi#mehdi:~/Dropbox/Test_Tools/testcocotbVerilator$ make SIM=modelsim
make results.xml
make[1]: Entering directory '/home/mehdi/Dropbox/Test_Tools/testcocotbVerilator'
set -o pipefail; cd sim_build && LD_LIBRARY_PATH=/home/mehdi/Dropbox/Test_Tools/testcocotbVerilator/build/libs/x86_64::/usr/lib:/usr/lib:/usr/lib:/usr/lib MODULE=TB TESTCASE= TOPLEVEL="work.dff" COCOTB_SIM=1 \
GPI_EXTRA= TOPLEVEL_LANG=verilog PYTHONPATH=/home/mehdi/Dropbox/Test_Tools/testcocotbVerilator/build/libs/x86_64:/home/mehdi/Dropbox/Test_Tools/testcocotbVerilator:/home/mehdi/.local/lib/python3.5/site-packages: \
/home/mehdi/intelFPGA_lite/19.1/modelsim_ase/linuxaloem/vsim -c -64 -do runsim.do 2>&1 | tee sim.log
/bin/sh: 1: set: Illegal option -o pipefail
/home/mehdi/.local/lib/python3.5/site-packages/cocotb/share/makefiles/simulators/Makefile.questa:147: recipe for target 'results.xml' failed
make[1]: *** [results.xml] Error 2
make[1]: Leaving directory '/home/mehdi/Dropbox/Test_Tools/testcocotbVerilator'
/home/mehdi/.local/lib/python3.5/site-packages/cocotb/share/makefiles/Makefile.sim:79: recipe for target 'sim' failed
make: *** [sim] Error 2
I would appreciate it if someone could advise me how should I fix this problem
That "-o pipefail" option is only available in bash version 3 or later. So either you're running an older version of bash, or some other non-bash shell that doesn't support it.

Error 127 - recipe for target failed - When compiling Google NaCl examples from Pepper 19?

When I run the make batch file in my Cygwin terminal I get the following output:
mparadis#A-082-MPARADI-0 ~/pepper_19/examples$ make
make -C dlopen
make[1]: Entering directory `/cygdrive/c/nacl_sdk/pepper_19/examples/dlopen' /cygdrive/c/nacl_sdk/pepper_19/toolchain/win_x86_glibc/bin/i686-nacl-g++ -o dlopen_x86_32.o -c
dlopen.cc -m32 -g -O0 -pthread -std=gnu++98 -Wno-long-long -Wall
Makefile:92: recipe for target `dlopen_x86_32.o' failed
make[1]: *** [dlopen_x86_32.o] Error 127
make[1]: Leaving directory `/cygdrive/c/nacl_sdk/pepper_19/examples/dlopen'
Makefile:33: recipe for target `dlopen_TARGET' failed
make: *** [dlopen_TARGET] Error 2
It took some time to get Python properly set up because I needed the language interpreter package for it and was not aware I didn't have it already. My env variable for Python is correctly set to C:\python27. I get the same results when compiling my co-workers code which, I can compile fine on a Mac or Linux box. Unfortunately, I need to get this working in my Cygwin environment as well.
Anybody with any experience using google native client or know why this is happening please advise. I've been at this for so long I'm staring cross-eyed at the computer screen.
UPDATE:
If I insert the --version flag into the referenced command within the makefile, I receive the same error as above. However, if I type the command, as is, from the same working directory as the make file I get the following:
mparadis#A-082-MPARADI-0 ~/pepper_19/examples/dlopen> $ /cygdrive/c/nacl_sdk/pepper_19/toolchain/win_x86_glibc/bin/i686-nacl-g++.exe -o dlopn_x86_32.o -c dlopen.cc -m32 -g -O0 -pthread -std=gnu++98 --version
mparadis#A-082-MPARADI-0 ~/pepper_19/examples/dlopen $
In other words, it simply thinks for a split second, then returns to the prompt.
tl;dr: your cygwin may be buggy and give this return code to all batch file. My does this. My cygwin version:
$ uname -srv
CYGWIN_NT-6.1-WOW64 1.7.17(0.262/5/3) 2012-10-19 14:39
From your comment, I see something called "make.bat":
mparadis#A-082-MPARADI-0 ~/pepper_19/examples/dlopen
$ ls dlopen.cc dlopen.html eightball.cc eightball.h make.bat Makefile
You can test your cygwin with this little bash script, too..
#!/bin/bash
echo echo foo %errorlevel% bar >temp.bat
./temp.bat
if [ $? -eq 127 ]; then echo "bug"; fi
If your make recipe for that target uses make.bat, and you have this bug, then this cygwin bug is causing the Error 127

cannot open output file a.out: Permission denied, on a simple compilation

I wrote some code in vim and whenever I try to run the code it shows this:
coolmego#coolmego-PC:~/coolmego/cprograms$ gcc dfs8puzz.c
/usr/bin/ld: cannot open output file a.out: Permission denied
collect2: ld returned 1 exit status
coolmego#coolmego-PC:~/coolmego/cprograms$ ./a.out
bash: ./a.out: No such file or directory
What should I do?
Move to a directory where you are allowed to write.
This is because if you only have write permissions, but you are not the owner the directory.
Check your user name:
whoami
Make yourself the owner of the directory and its contents:
sudo chown -R "$USER:" /path/to/the/directory
Set read/write/execute permission
chmod -R 700 /path/to/the/directory
refer https://askubuntu.com/questions/466605/cannot-open-output-file-permission-denied
When you run sudo, you are actually running the commands as root user. Possibly you ended up messing up the permissions so that root owns the files. Thus when you run sudo, it just works (root can write in those directories). You need coolmego to own those files. For example:
sudo chown coolmego /home/coolmego/coolmego/cprograms/
chmod 700 /home/coolmego/coolmego/cprograms/
Remove option user in /etc/fstab. Anything with user in the fstab is automatically mounted noexec unless exec is explicitly given in the fstab.
Try giving read write permission to the directory in which you are targeting to get the output. In case you are using a personal system you can do "sudo chmod 777 "
I was having the same problem, after 1 hour i found out it was my Antivirus, i shut that down and everything worked fine.
try chmod -R 777 ~/coolmego/cprograms

Directory permissions for Cygwin SSH (Windows 7)

I am a fan of Linux but due to bad Intel wireless drivers in Linux, I had to switch to Windows 7. I have installed Cygwin in Windows and want to configure SSH to remotely connect to my laptop.
I searched with Google and found information for installing openssh server on Win 7, but I am getting the following error when running ssh-host-config:
bala#bala-PC ~
$ ssh-host-config
yes
*** Info: Creating default /etc/ssh_config file
*** Query: Overwrite existing /etc/sshd_config file? (yes/no) yes
*** Info: Creating default /etc/sshd_config file
*** Info: Privilege separation is set to yes by default since OpenSSH 3.3.
*** Info: However, this requires a non-privileged account called 'sshd'.
*** Info: For more info on privilege separation read /usr/share/doc/openssh/READ
ME.privsep.
*** Query: Should privilege separation be used? (yes/no) no
*** Info: Updating /etc/sshd_config file
*** Warning: The following functions require administrator privileges!
*** Query: Do you want to install sshd as a service?
*** Query: (Say "no" if it is already installed as a service) (yes/no) yes
*** Query: Enter the value of CYGWIN for the daemon: []
*** Info: On Windows Server 2003, Windows Vista, and above, the
*** Info: SYSTEM account cannot setuid to other users -- a capability
*** Info: sshd requires. You need to have or to create a privileged
*** Info: account. This script will help you do so.
*** Warning: The owner and the Administrators need
*** Warning: to have .w. permission to /var/run.
*** Warning: Here are the current permissions and ACLS:
*** Warning: drwxr-xr-x 1 bala None 0 2010-01-17 22:34 /var/run
*** Warning: # file: /var/run
*** Warning: # owner: bala
*** Warning: # group: None
*** Warning: user::rwx
*** Warning: group::r-x
*** Warning: other:r-x
*** Warning: mask:rwx
*** Warning:
*** Warning: Please change the user and/or group ownership,
*** Warning: permissions, or ACLs of /var/run.
*** ERROR: Problem with /var/run directory. Exiting.
The permissions of this folder are shown as read-only (only applies to this folder), checked in gray. I tried to uncheck but after I open the properties again, the box is again checked. Is there a way to change the permissions of this folder?
Sorry to unbury such an old thread, but this question always came up when I googled this specific problem.
After a few months, I finally found a solution. When I set up cygwin, I didn't have my user and group accounts correctly created in cygwin. The main way to do this is to run:
mkpasswd -l > /etc/passwd
mkgroup -l > /etc/group
If you are logging in using a domain user and passwd, you can do:
mkpasswd -l -d > /etc/passwd
mkgroup -l -d > /etc/group
Or, if you have an incredibly large network like mine, you may not really want that. An alternative is to just user your local users and group plus whatever one you are currently logged in as:
mkpasswd -l > /etc/passwd
mkpasswd -c >> /etc/passwd
mkgroup -l > /etc/group
mkgroup -c >> /etc/group
After I did this, I was finally able to run ssh-host-config correctly to create the service.
I'm running cygwin 1.7 on Windows 7 x64 and sshd. I don't remember getting this error when I ran sshd_config, but I just looked at my /var/run directory and it's set to 777.
Try this in a cygwin shell chmod 777 /var/run
I had a lot of trouble with this myself. I have found that the default install steps work just fine provided that I:
Start the Cygwin shell as an Administrative user with the "Run As Administrator" option.
Have UAC disabled.
Have real-time virus protection disabled.
Once these steps have been taken, the default install steps are:
Install "openssh" from the Cygwin installer.
Start the Cygwin shell as an Administrative user with the "Run As Administrator" option.
Run "ssh-host-config" from the Cygwin shell.
Privilege Separation: yes
New local account "sshd": yes
Install sshd as service: yes
CYGWIN value: ntsec tty
Different name for "cyg_server": no
Create new privileged user account "cyg_server": yes
Set "cyg_server" password and keep in a safe place
net start sshd
After that, everything seems to work fine on both Windows 7 Professional and Home.
If you already have a failed Cygwin sshd installation, it may be best to do a full uninstall and start fresh.
Here are the Cygwin uninstall instructions if you need them: http://cygwin.com/faq/faq.html#faq.setup.uninstall-all
I first had to remove the broken installation:
cygrunsrv --remove sshd
rm -rf /var/log/sshd* /etc/ssh_host* /etc/sshd_config /var/empty
then generate passwd & group as mentioned above:
mkpasswd -l > /etc/passwd
mkgroup -l > /etc/group
then I ran:
ssh-host-config -y
cygrunsrv --start sshd
and finaly the "setuid failed" messages dissapeared and login worked.
In a cygwin shell, make sure you are administrator then:
takeown /F "C:\cygwin" /R
icacls "C:\cygwin" /grant Everyone:\(F\) /T
icacls "C:\cygwin"
chmod 777 -R "c:\cygwin"
In Windows Explorer, for folder /var:
Properties.
Security.
Add group Administrators with full control for
the folder and subfolders.
It works for me.
I was only able to run the ssh-host-config script successfully when I installed Cygwin on a hard drive of type NTFS. The ssh-host-config script did not work when I had Cygwin installed on a flash drive of type exFAT.
I was having the same problem. My problem, I believe, was because I had a custom /etc/fstab file where I was mounting the root folder with "noacl" option. Here is how I solved the problem:
Move the custom /etc/fstab out of the way:
mv /etc/fstab /etc/fstab.bak
Alternatively, you can edit your /etc/fstab file and remove the noacl option.
Close all Cygwin bash windows and any other Cygwin processes or services. If you have any Cygwin process running, it will keep things mounted with the old /etc/fstab settings.
Start a new Cygwin bash window.
You may need to run the following.
chmod +r /etc/passwd
chmod o+x /var
chmod +w /var/run
Cross your fingers, run ssh-host-config, and it should now complete without errors.
If you moved your /etc/fstab in Step 1, you can move it back now:
mv /etc/fstab.bak /etc/fstab
If you created new users after you first installed Cygwin, update /etc/passwd, otherwise those users may not be able login via ssh:
mkpasswd -l > /etc/passwd
Also, go to Windows Firewall, and allow C:/cygwin/usr/sbin/sshd.exe and C:/cygwin/usr/sbin/sftp-server.exe
for windows Users run "Cygwin Terminal" by right-clicking on shortcut and run it as a administrator....
Now Run "ssh-host-config" from the Cygwin Terminal...It will definitely work.

Resources