Basic info:
I need to install UHD on my ZyBo board (by Digilent and Xilinx), but cannot. I have Xillinux Ubuntu 12.04 installed on it. It has an ARMv7 architecture of 32bits.(Go to bottom for question).
The UHD software can be installed by following the instructions here:
Installation option 1:
http://code.ettus.com/redmine/ettus/projects/uhd/wiki/UHD_Linux
An alternative installation process is:
Install Git and download source code:
sudo apt-get install git
git clone git://github.com/EttusResearch/uhd.git
Install all needed dependencies (see build guide):
sudo apt-get install libboost-all-dev libusb-1.0-0-dev python-cheetah doxygen python-docutils
Build-essential is a well packaged C++ library which is another needed
sudo apt-get install build-essential
Install and run cmake:
sudo apt-get install cmake
Next, to run the cmake program:
cd uhd/host
mkdir build
cd build
cmake ../
Ensure that all tests that are related to the main, necessary dependencies are successful.
Install and setup library path:
make
make test
sudo make install
cd uhd/host/build/lib
cp libuhd.so /etc/ld.so.conf.d
sudo ldconfig
sudo reboot
(I have also tried other website instructions and work-arounds).
PROBLEM / QUESTION:
However, the issue is that this software was made for i386 and amd64 machines. The ZyBo has an ARMv7 architecture. I used one installation guide which required the dependency of package: libboost-all-dev which is not available for my architecture. Therefore I was only to install half the requirements for UHD.
Does anyone know how to build the installation so that it can run on ARMv7 architecture or how to download the package libboost-all-dev onto an ARMv7 processor?
Thanks for the help
libboost-all-dev is available for arm, but accessing it requires Linux knowledge:
1.Search “Update Manager”
2.Click “Settings” on bottom left
3.Click on “Ubuntu Software” tab on upper left.
4.check/select the box “Community-maintained free and open-source Software (Universe)”
5.click “close” on bottom right
Related
Firebird Extension for PHP on MacOS M1
I have PHP7.4 installed with homebrew and the Xcode command line tools.
I followed the instructions as per the source repository here https://github.com/FirebirdSQL/php-firebird using the following methodology, I have changed the Linux formula to suite the MacOS library locations as per this answer here
Issues compiling firebird driver for PHP-7.4 on macos:
git clone https://github.com/FirebirdSQL/php-firebird.git
cd php-firebird
phpize
CPPFLAGS=-I/Library/Frameworks/Firebird.framework/Headers LDFLAGS=-L/Library/Frameworks/Firebird.framework/Resources/lib ./configure
make
The error I get is
configure: error: libfbclient, libgds or libib_util not found! Check config.log for more information.
In the log file it refers to the following which is the crux of the issue
ld: warning: ignoring file /opt/firebird/lib/libib_util.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64
The problem is that the Firebird package for Mac is only built for the 64bit architecture and not the ARM architecture.
Solution
I always seem to struggle building the extension for Firebird on MacOS (Intel or M1) and after a month of leaving the problem I discovered the solution which I leave here for myself all of you who have hit this wall, until ARM is supported on MacOS for Firebird we probably have to run the 64 bit version with 64 bit PHP. The steps below should get you up and running. I came up with 2 solutions, the first most obvious one was to make a docker build.
Docker Solution
docker run -v $(pwd):/app tina4stack/php -ini | grep interbase
Home brew solution
The second solution (more complicated) was to follow these steps, I don't always like to run a docker engine for simple things.
Install latest Firebird for MacOS
First, make sure you have installed the latest Firebird MacOS package, Firebird 3.0 at the time of writing has only one you can install.
The next problem I ran into was home-brew had installed an ARM version of PHP which made the linking to the x86_64 architecture impossible. Kudos to the documentation here https://austencam.com/posts/setting-up-an-m1-mac-for-laravel-development-with-homebrew-php-mysql-valet-and-redis
Install Rosetta
First I installed Rosetta (helps run 64 bit apps on MacOS ARM)
/usr/sbin/softwareupdate --install-rosetta --agree-to-license
Install Home-brew for 64bit architecture
Next I removed homebrew and reinstalled it with the arch -x86_64 bit flag
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh)"
arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
Install PHP7.4
Then installed a fresh php#7.4
arch -x86_64 brew install php#7.4
Compile the extension
git clone https://github.com/FirebirdSQL/php-firebird.git
cd php-firebird
phpize
CFLAGS='-arch x86_64' CPPFLAGS=-I/Library/Frameworks/Firebird.framework/Headers LDFLAGS=-L/Library/Frameworks/Firebird.framework/Resources/lib ./configure
make
sudo make install
Tying it all together
I added the following to my php.ini file
extension=interbase
If you don't know where to edit your ini file, run the following command:
php -ini | grep php.ini
When I ran php -ini | grep interpose I got errors about not finding the firebird libraries. In the end I copied the libraries to the PHP bin and lib folders
cp /Library/Frameworks/Firebird.framework/Resources/lib/* /usr/local/Cellar/php#7.4/7.4.25/lib
cp /Library/Frameworks/Firebird.framework/Resources/lib/* /usr/local/Cellar/php#7.4/7.4.25/bin
I'm sure someone could comment on making the above a bit neater but I was happy to find that the ini command returns now as expected.
php -ini | grep interbase
interbase
Let me know if you hit issues I didn't find, there were some other things I tried for the Firebird library resolution but I'm not sure they worked.
Installing modules with PECL
As an addition the the above solution, easily install other PHP modules using the following command
arch -x86_64 pecl install <module>
Example
arch -x86_64 pecl install openswoole
I am trying to compile a little application using the gopacket library to linux on a 32bit mips cpu. Unfortunately I am getting loads of errors like this:
/home/cdutz/go/pkg/mod/github.com/google/gopacket#v1.1.19/pcap/pcap.go:30:22: undefined: pcapErrorNotActivated
On a "normal" linux system these seem to be defined in "pcap_unix.go" while on windows the values are coming from "defs_windows_amd64.go". I do have the libpcap in a 32bit mips version on my target system, which is good as my target system doesn't have the extra space to install all the tools needed to compile anything on it. I know that libpcap doesn't exist as a 1-to-1 version on windows, so this probably explains the "defs"-files. But I would generally expect it to have the same API as the one on my linux system.
[UPDATE]
So it seems number 1 of the things that needs to be ensured is that cgo is executed. This is done by setting the environment variable:
CGO_ENABLED=1
Next we need to ensure the mips compatible versions of the libpcap are installed (the header files are identical on any architecture). In order to do this on my Ubuntu 16.4 I first needed to enable the 'mips' archirecture:
dpkg --add-architecture mips
And add the debian repo to the /etc/apt/sources.list
deb [trusted=yes] http://ftp.de.debian.org/debian buster main
As soon as that's done, I could install the mips binaries:
apt install libpcap-dev:mips libpcap0.8-dev:mips libc6-dev:mips libdbus-1-dev:mips libpcap0.8:mips
In order to cross compile, it seems I need a gccgo version that can do that. For this I installed:
apt-get install gccgo-mips-linux-gnu
Now comes something I am not sure I did right, but when running the go build with compiler=gccgo it always picked the amd64 version and using anything else but 'gccgo' as compiler argument didn't work, so I updated the symlink in /usr/bin/gccgo to point to: 'mips-linux-gnu-gccgo-8' (in the same directory).
After all of these changes, I was able to almost build everything with this command:
go build -compiler=gccgo
If I enable the additional output with the '-x' option, I can see that cgo is now doing it's thing. It's also compiling all the other modules. But on the pcap one it now fails with:
cc1: error: command line option '-c' is valid for the driver but not for C
So this is where I'm currently stuck at.
Ok, after 3 days I think I managed to get things working and I'll summ up what I did.
In the end the gccgo path was a dead end, so instead of installing gccgo-mips-linux-gnu I installed gcc-mips-linux-gnu.
Next I set the CC environment variable to point to this:
export CC=/usr/bin/mips-linux-gnu-gcc-8
That was actually what was missing.
So summing it up on my Ubuntu 16.04 system:
dpkg --add-architecture mips
echo "deb [trusted=yes] http://ftp.de.debian.org/debian buster main" > /etc/apt/sources.list
apt update
apt install -y wget git build-essential mc
apt install -y gcc-mips-linux-gnu
apt install -y libpcap-dev:mips libpcap0.8-dev:mips libc6-dev:mips libdbus-1-dev:mips libpcap0.8:mips
export CC=/usr/bin/mips-linux-gnu-gcc-8
export GOOS=linux
export GOARCH=mips
export GOMIPS=softfloat
export CGO_ENABLED=1
go build
I hope this might help others.
I would like to package a Java application into a .exe file using launch4j.
My build server is a Linux based operating system. Is it possible to build the .exe on a Linux machine?
Yes, it is possible. I have done it with Jenkins on a debian system. You might get some problems with missing libs. So you have to install them on your build server.
See: https://github.com/lukaszlenart/launch4j-maven-plugin#faq
Q: Can I use Launch4j on 64bit OS?
A: Yes but you will have to install these libs to avoid problems:
lib32z1
lib32ncurses5
lib32bz2-1.0 ( (has been ia32-libs in older Ubuntu versions)
zlib.i686
ncurses-libs.i686
bzip2-libs.i686
In my case for debian I've installed the following packages:
apt-get install zlib1g-dev libncurses5-dev
apt-get install lib32z1 lib32ncurses5
Are there any octave default branch binaries for windows available somewhere?
If not, is there a simple way of getting a version including classdef for Linux? simple, because usually I do not use Linux.
I don't think there are windows builds from default (aka development) available but you may ask on the help mailinglist. (Some users there build windows binaries with MXE from development sources)
If you want to build on GNU/Linux I would suggest Debian or Ubuntu in a VM. It is as easy as installing the dependencies, clone with hg, bootstrap, configure, make... You'll find instructions on the wiki http://wiki.octave.org/Octave_for_Debian_systems#Compiling_from_source
But always keep in mind that these are development sources which generally aren't suitable for productive use and may break sometime.
Here's how I ended up doing it (approximately and skipp'in all the failed attempts).
Install VirtualBox
Create new machine, mount ubuntu image, chose dynamic HDD size (or at least 10 GB)
Install Ubuntu. If strange mixed color screen appears on first boot:
[right] CTRL+F1
[right] CTRL+F7
Open Terminal (CTRL+ALT+T)
If sceen resolution cannot be made larger 640*480:
sudo apt-get install virtualbox-guest-dkms
sudo reboot
sudo apt-get install mercurial
hg clone http://www.octave.org/hg/octave -r default
sudo apt-get install gfortran debhelper automake dh-autoreconf texinfo texlive-latex-base texlive-generic-recommended epstool transfig pstoedit libreadline-dev libncurses5-dev gperf libhdf5-serial-dev libblas-dev liblapack-dev libfftw3-dev texi2html less libpcre3-dev flex libglpk-dev libsuitesparse-dev gawk ghostscript libcurl4-gnutls-dev libqhull-dev desktop-file-utils libfltk1.3-dev libgl2ps-dev libgraphicsmagick++1-dev libftgl-dev libfontconfig1-dev libqrupdate-dev libarpack2-dev dh-exec libqt4-dev libqscintilla2-dev default-jdk dpkg-dev gnuplot-x11 libbison-dev libxft-dev llvm-3.3 (takes a while)
./bootstrap
mkdir builddir
cd builddir
../configure --enable-jit --prefix=/opt/octave3.8 JAVA_HOME=/usr/lib/jvm/default-java LLVM_CONFIG=/usr/bin/llvm-config-3.2 CFLAGS="-O2 -march=native" CXXFLAGS="-O2 -march=native" (no TargetData.h found...)
make (takes half an hour or more)
make check (takes a while, gave a failed assertion)
make install
./run-octave
Can I install gcc++ on CentOS 6.x without `yum install gcc-c++ ....' ?
Is there any .tar or .rpm package available for download?
Yum will install rpm from it's repository.
So I don't understand why you want to avoid yum, it will solve dependencies and install them as well.
However, here is official RPM repository mirror (one of many):
http://centos.arminco.com/5/os/i386/CentOS/
Here is list of all mirrors : http://www.centos.org/modules/tinycontent/index.php?id=30
You will need at least 3 RPMs:
gcc-4.4.6-3.el6.i686.rpm
gcc-c++-4.4.6-3.el6.i686.rpm
libgcc-4.4.6-3.el6.i686.rpm
For compilation of C/C++ you will also need libstdc++, glibc, etc
When you run
yum install gcc
Everything is done
As you did not specified architecture I assume i386, but URL is very similar for x86_64:
http://centos.arminco.com/6/os/x86_64/Packages/
If you want to install it as a local user (or as a superuser)
GNU GSRC provides an easy way to do so
Link: http://www.gnu.org/software/gsrc/
After installation via bzr, simply do these:
./bootstrap
./configure --prefix=~/local
make -C gnu/gcc
(or make -C gnu/gcc MAKE_ARGS_PARALLEL="-jN" to speed up for a N-core system)
make -C gnu/gcc install