-
Notifications
You must be signed in to change notification settings - Fork 162
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Issue while building raspicam_node package on ros noetic in rpi with 64 bit raspbian OS #130
Comments
instructions attached to build mmal library
…On Fri, Aug 26, 2022 at 1:17 PM SaailN ***@***.***> wrote:
I tried building the package from source on ros noetic in rpi4 with 64
bit, downloaded all dependencies and libraries but while building
catkin_make it builds completely but given following error at the end:
/usr/bin/ld: /opt/vc/lib/libmmal.so: error adding symbols: file in wrong
format
Also libmmal library is installed.
[image: error]
<https://user-images.githubusercontent.com/40292489/186983895-9ddd768f-bb85-40d2-b320-c7c1da95ad8f.png>
Also while running launch file i am getting the following error:
ERROR: cannot launch node of type [raspicam_node/raspicam_node]: Cannot
locate node of type [raspicam_node] in package [raspicam_node]. Make sure
file exists in package path and permission is set to executable (chmod +x)
—
Reply to this email directly, view it on GitHub
<#130>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABHZ37376AR6VEHZI4KKS6DV3EQ6DANCNFSM57X4M5YA>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
@anfederman Could u tell where are the instructions? |
If everything was built, then you should be able to run raspistill. If not,
Raspicam won't work. Make sure that the vclib that gets built in snap gats
copied to /opt. I have Raspicam working on a pi4 in both ARM32 and ARM64
Ubuntu 20.04 Noetic. It took me many months to get it to work on 64.
Please be aware that Raspicam node will be deprecated and won't work on
Ubuntu 22.
…On Fri, Aug 26, 2022, 10:34 PM SaailN ***@***.***> wrote:
instructions attached to build mmal library
… <#m_872756034751677723_>
On Fri, Aug 26, 2022 at 1:17 PM SaailN *@*.*> wrote: I tried building the
package from source on ros noetic in rpi4 with 64 bit, downloaded all
dependencies and libraries but while building catkin_make it builds
completely but given following error at the end: /usr/bin/ld:
/opt/vc/lib/libmmal.so: error adding symbols: file in wrong format Also
libmmal library is installed. [image: error]
https://user-images.githubusercontent.com/40292489/186983895-9ddd768f-bb85-40d2-b320-c7c1da95ad8f.png
<https://user-images.githubusercontent.com/40292489/186983895-9ddd768f-bb85-40d2-b320-c7c1da95ad8f.png>
Also while running launch file i am getting the following error: ERROR:
cannot launch node of type [raspicam_node/raspicam_node]: Cannot locate
node of type [raspicam_node] in package [raspicam_node]. Make sure file
exists in package path and permission is set to executable (chmod +x) —
Reply to this email directly, view it on GitHub <#130
<#130>>, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ABHZ37376AR6VEHZI4KKS6DV3EQ6DANCNFSM57X4M5YA
<https://github.com/notifications/unsubscribe-auth/ABHZ37376AR6VEHZI4KKS6DV3EQ6DANCNFSM57X4M5YA>
. You are receiving this because you are subscribed to this thread.Message
ID: @.*>
@anfederman <https://github.com/anfederman> Could u tell where are the
instructions?
libmmal library is already installed and its executable is present in
/opt/vc/lib.
As per my findings( ref: raspberrypi/firmware#1558 (comment)
<raspberrypi/firmware#1558 (comment)>)
libmmal is not supported on rpi 64 bit, and libcamera is the supported
solution.
—
Reply to this email directly, view it on GitHub
<#130 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABHZ3752RPGSQ7SC6M6GHELV3GSF5ANCNFSM57X4M5YA>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
The instructions were attached as a odt document. Odt uses the libre office
which emulates Ms office for Linux.
…On Sat, Aug 27, 2022, 5:03 AM Alan Federman ***@***.***> wrote:
If everything was built, then you should be able to run raspistill. If
not, Raspicam won't work. Make sure that the vclib that gets built in snap
gats copied to /opt. I have Raspicam working on a pi4 in both ARM32 and
ARM64 Ubuntu 20.04 Noetic. It took me many months to get it to work on 64.
Please be aware that Raspicam node will be deprecated and won't work on
Ubuntu 22.
On Fri, Aug 26, 2022, 10:34 PM SaailN ***@***.***> wrote:
> instructions attached to build mmal library
> … <#m_3838754548883190854_m_-258011054851788142_m_872756034751677723_>
> On Fri, Aug 26, 2022 at 1:17 PM SaailN *@*.*> wrote: I tried building
> the package from source on ros noetic in rpi4 with 64 bit, downloaded all
> dependencies and libraries but while building catkin_make it builds
> completely but given following error at the end: /usr/bin/ld:
> /opt/vc/lib/libmmal.so: error adding symbols: file in wrong format Also
> libmmal library is installed. [image: error]
> https://user-images.githubusercontent.com/40292489/186983895-9ddd768f-bb85-40d2-b320-c7c1da95ad8f.png
> <https://user-images.githubusercontent.com/40292489/186983895-9ddd768f-bb85-40d2-b320-c7c1da95ad8f.png>
> Also while running launch file i am getting the following error: ERROR:
> cannot launch node of type [raspicam_node/raspicam_node]: Cannot locate
> node of type [raspicam_node] in package [raspicam_node]. Make sure file
> exists in package path and permission is set to executable (chmod +x) —
> Reply to this email directly, view it on GitHub <#130
> <#130>>, or
> unsubscribe
> https://github.com/notifications/unsubscribe-auth/ABHZ37376AR6VEHZI4KKS6DV3EQ6DANCNFSM57X4M5YA
> <https://github.com/notifications/unsubscribe-auth/ABHZ37376AR6VEHZI4KKS6DV3EQ6DANCNFSM57X4M5YA>
> . You are receiving this because you are subscribed to this thread.Message
> ID: @.*>
>
> @anfederman <https://github.com/anfederman> Could u tell where are the
> instructions?
> libmmal library is already installed and its executable is present in
> /opt/vc/lib.
> As per my findings( ref: raspberrypi/firmware#1558 (comment)
> <raspberrypi/firmware#1558 (comment)>)
> libmmal is not supported on rpi 64 bit, and libcamera is the supported
> solution.
>
> —
> Reply to this email directly, view it on GitHub
> <#130 (comment)>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/ABHZ3752RPGSQ7SC6M6GHELV3GSF5ANCNFSM57X4M5YA>
> .
> You are receiving this because you were mentioned.Message ID:
> ***@***.***>
>
|
I am using raspbian os 64 bit. |
I built on started with Ubuntu ARM64 server, not Raspian. I will translate my instructions to text and send the build from scratch instructions. |
I am sending notes as an attachment in .txt format. You should be able to
copy/paste commands to build the Image.
On Sat, Aug 27, 2022 at 7:06 AM SaailN ***@***.***> wrote:
If everything was built, then you should be able to run raspistill. If
not, Raspicam won't work. Make sure that the vclib that gets built in snap
gats copied to /opt. I have Raspicam working on a pi4 in both ARM32 and
ARM64 Ubuntu 20.04 Noetic. It took me many months to get it to work on 64.
Please be aware that Raspicam node will be deprecated and won't work on
Ubuntu 22.
… <#m_-8421960415005441869_>
On Fri, Aug 26, 2022, 10:34 PM SaailN *@*.*> wrote: instructions attached
to build mmal library … <#m_872756034751677723_> On Fri, Aug 26, 2022 at
1:17 PM SaailN @.> wrote: I tried building the package from source on ros
noetic in rpi4 with 64 bit, downloaded all dependencies and libraries but
while building catkin_make it builds completely but given following error
at the end: /usr/bin/ld: /opt/vc/lib/libmmal.so: error adding symbols: file
in wrong format Also libmmal library is installed. [image: error]
https://user-images.githubusercontent.com/40292489/186983895-9ddd768f-bb85-40d2-b320-c7c1da95ad8f.png
<https://user-images.githubusercontent.com/40292489/186983895-9ddd768f-bb85-40d2-b320-c7c1da95ad8f.png>
https://user-images.githubusercontent.com/40292489/186983895-9ddd768f-bb85-40d2-b320-c7c1da95ad8f.png
<https://user-images.githubusercontent.com/40292489/186983895-9ddd768f-bb85-40d2-b320-c7c1da95ad8f.png>
Also while running launch file i am getting the following error: ERROR:
cannot launch node of type [raspicam_node/raspicam_node]: Cannot locate
node of type [raspicam_node] in package [raspicam_node]. Make sure file
exists in package path and permission is set to executable (chmod +x) —
Reply to this email directly, view it on GitHub <#130
<#130> <#130
<#130>>>, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ABHZ37376AR6VEHZI4KKS6DV3EQ6DANCNFSM57X4M5YA
<https://github.com/notifications/unsubscribe-auth/ABHZ37376AR6VEHZI4KKS6DV3EQ6DANCNFSM57X4M5YA>
https://github.com/notifications/unsubscribe-auth/ABHZ37376AR6VEHZI4KKS6DV3EQ6DANCNFSM57X4M5YA
<https://github.com/notifications/unsubscribe-auth/ABHZ37376AR6VEHZI4KKS6DV3EQ6DANCNFSM57X4M5YA>
. You are receiving this because you are subscribed to this thread.Message
ID: @.> @anfederman <https://github.com/anfederman>
https://github.com/anfederman <https://github.com/anfederman> Could u tell
where are the instructions? libmmal library is already installed and its
executable is present in /opt/vc/lib. As per my findings( ref:
raspberrypi/firmware#1558
<raspberrypi/firmware#1558> (comment)
<raspberrypi/firmware#1558 (comment)
<raspberrypi/firmware#1558 (comment)>>)
libmmal is not supported on rpi 64 bit, and libcamera is the supported
solution. — Reply to this email directly, view it on GitHub <#130 (comment)
<#130 (comment)>>,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABHZ3752RPGSQ7SC6M6GHELV3GSF5ANCNFSM57X4M5YA
<https://github.com/notifications/unsubscribe-auth/ABHZ3752RPGSQ7SC6M6GHELV3GSF5ANCNFSM57X4M5YA>
. You are receiving this because you were mentioned.Message ID: @.***>
I am using raspbian os 64 bit. raspistill wont work with 64bit version.
(ref: https://forums.raspberrypi.com/viewtopic.php?t=285868)
—
Reply to this email directly, view it on GitHub
<#130 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABHZ377PSAQWZJGBP6N6WDDV3IOHJANCNFSM57X4M5YA>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
starting from ubuntu 20.04 SERVER image sd card!
FIRST STEPS>
First login with a screen and keyboard mouse, forces a password change from ubuntu!
https://itsfoss.com/connect-wifi-terminal-ubuntu/ install wifi
install net-tools
update
upgrade
install ssh
sudo apt install openssh-server
connect from remote
apt install: tasksel
Next if you want to connect to a robot you need to fix the boot delay, so the
server doesn't hang from serial input.
disable serial console on login (see u-boot)
I haven't been able to do this on a Pi4, but if you remove the SD card from the
Pi 4, boot in Pi 3, get to u-boot and setenv bootdelay -2 and then get back to a Pi 4 serial console boot will be disabled.
ros instructions:
http://wiki.ros.org/noetic/Installation/Ubuntu
If you don't need a desktop, you can skip installing, if you need a desktop you can start with a GUI arm64 image or:
sudo apt install gnome-session gdm3
I suggest a desktop-full install, which of course means you need a desktop.
Optional, may be un-needed depending on robot and periheral hardware being interfaced:
sudo systemctl stop ***@***.***
sudo systemctl mask ***@***.***
OK here is the big Kuhuna - getting the raspicam to work. FIRST take some deep breaths, and put your mind at ease, this is tedious and frustrating and not for the faint of heart. SO TAKE A CLENSING BREATH, COUNT TO 10 AND BEGIN.
…_______________________________________________________________________
Build ARM64 Rpi Userland, Follow instructions, this will build the libmmal libraries and allow you to run raspstill:
1. Userland
https://gist.github.com/satmandu/c462ab301cbe09bd6e7cf4db7f626727
This is a script you download and run as sudo:
------------script starts after ---------
#!/bin/bash -x
workdir="${HOME}/workdir"
[[ ! -d "$workdir" ]] && ( mkdir -p "$workdir" || exit 1)
[[ ! -d "$workdir"/tmp ]] && ( mkdir -p "$workdir"/tmp || exit 1)
[[ ! -d "$workdir"/output ]] && ( mkdir -p "$workdir"/output || exit 1)
echo "workdir is ${workdir}"
tmpdir=$(mktemp -d deb_XXXX -p "$workdir"/tmp)
deb_temp=${tmpdir}/deb
extract_tmp=${tmpdir}/extract
echo "tmpdir is ${tmpdir}"
rm -rf "${workdir}"/rpiuserland.compile.log
sudo apt install -y git patchelf
is_git_repo="$(
cd "${workdir}"/rpi-userland || exit
git rev-parse --is-inside-work-tree 2>/dev/null
)"
if [ "$is_git_repo" ]; then
cd "$workdir"/rpi-userland && git clean -d -x -f
else
rm -rf "${workdir}"/rpi-userland
cd "$workdir" && git clone --depth 1 https://github.com/raspberrypi/userland rpi-userland
fi
USERLANDREV=$(git -C "${workdir}"/rpi-userland rev-parse --short HEAD) >/dev/null
mkdir -p "${workdir}"/scripts
(
cd "${workdir}"/scripts && curl -OL https://github.com/satmandu/docker-rpi4-imagebuilder/raw/master/scripts/patch_rpi-userland.sh
chmod +x patch_rpi-userland.sh
)
echo "* Compiling Raspberry Pi userland source."
cd "${workdir}"/rpi-userland/ || exit
[[ -e "${workdir}"/scripts/patch_rpi-userland.sh ]] && {
cd "${workdir}"/rpi-userland/ && "${workdir}"/scripts/patch_rpi-userland.sh
true
}
sed -i 's/__bitwise/FDT_BITWISE/' "${workdir}"/rpi-userland/opensrc/helpers/libfdt/libfdt_env.h
sed -i 's/__force/FDT_FORCE/' "${workdir}"/rpi-userland/opensrc/helpers/libfdt/libfdt_env.h
echo "compiling rpi userland"
PKGVERSION="$(date +%d%m%Y):${USERLANDREV}"
cat <<-EOF | tee -a "${workdir}"/rpi-userland/CMakeLists.txt
SET(CPACK_GENERATOR "DEB")
SET(CPACK_PACKAGE_NAME "rpiuserland")
SET(CPACK_SET_DESTDIR TRUE)
SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "noone")
SET(CPACK_PACKAGE_VERSION_MAJOR "$PKGVERSION")
SET(CPACK_PACKAGE_VERSION_MINOR "0")
SET(CPACK_PACKAGE_VERSION_PATCH "1~alpha1")
SET(CPACK_DEBIAN_PACKAGE_DEPENDS "libgcc1-armhf-cross,libstdc++6-armhf-cross,libc6-armhf-cross")
include(CPack)
EOF
CROSS_COMPILE=aarch64-linux-gnu- ./buildme --aarch64 &>>"${workdir}"/rpi_userland_build.compile.log
echo "configuring package"
cd "${workdir}"/rpi-userland/build/raspberry/release/ || exit
make package
sudo rm -rf "${deb_temp}"
mkdir -p "${deb_temp}"
sudo rm -rf "${extract_tmp}"
mkdir -p "${extract_tmp}"
dpkg-deb -R "$workdir"/rpi-userland/build/raspberry/release/vmcs_host_apps-1.0-Source.deb "${extract_tmp}"/
cd "${workdir}"/rpi-userland/build/raspberry/release/ && sudo make DESTDIR="${deb_temp}"/ install
sed -i "s/1.0/$PKGVERSION/" "${extract_tmp}"/DEBIAN/control
mv "${extract_tmp}"/DEBIAN "${deb_temp}"/
rm -rf "${extract_tmp}"
mkdir -p "${deb_temp}"/etc/ld.so.conf.d/
echo '/opt/vc/lib' >"${deb_temp}"/etc/ld.so.conf.d/vc.conf
mkdir -p "${deb_temp}"/etc/environment.d
cat <<-EOF >"${deb_temp}"/etc/environment.d/10-vcgencmd.conf
# /etc/environment.d/10-vcgencmd.conf
# Do not edit this file
PATH="/opt/vc/bin:/opt/vc/sbin"
ROOTPATH="/opt/vc/bin:/opt/vc/sbin"
LDPATH="/opt/vc/lib"
EOF
chmod +x "${deb_temp}"/etc/environment.d/10-vcgencmd.conf
mkdir -p "${deb_temp}"/etc/profile.d/
cat <<-'EOF' >"${deb_temp}"/etc/profile.d/98-rpi.sh
# /etc/profile.d/98-rpi.sh
# Adds Raspberry Pi Foundation userland binaries to path
export PATH="$PATH:/opt/vc/bin:/opt/vc/sbin"
EOF
chmod +x "${deb_temp}"/etc/profile.d/98-rpi.sh
cat <<-EOF >"${deb_temp}"/etc/ld.so.conf.d/00-vmcs.conf
/opt/vc/lib
EOF
SUDOPATH=$(sudo sed -n 's/\(^.*secure_path="\)//p' /etc/sudoers | sed s'/.$//')
SUDOPATH="${SUDOPATH:-/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin}"
SUDOPATH+=":/opt/vc/bin:/opt/vc/sbin"
# Add path to sudo
mkdir -p "${deb_temp}"/etc/sudoers.d
echo "* Adding rpi util path to sudo."
cat <<-EOF >>"${deb_temp}"/etc/sudoers.d/rpi
Defaults secure_path=$SUDOPATH
EOF
chmod 0440 "${deb_temp}"/etc/sudoers.d/rpi
sudo chown root:root "${deb_temp}"/etc/sudoers.d/rpi
# Get non-arm64 vcdbg and patch for use on armhf
mkdir -p "${deb_temp}"/usr/arm-linux-gnueabihf/lib
cd "${deb_temp}"/usr/arm-linux-gnueabihf/lib || exit
curl -OL https://github.com/Hexxeh/rpi-firmware/raw/master/vc/hardfp/opt/vc/lib/libdebug_sym.so
curl -OL https://github.com/Hexxeh/rpi-firmware/raw/master/vc/hardfp/opt/vc/lib/libelftoolchain.so
curl -OL https://github.com/Hexxeh/rpi-firmware/raw/master/vc/hardfp/opt/vc/lib/libvcos.so
cd "${deb_temp}"/opt/vc/bin/ || exit
sudo curl -OL https://github.com/Hexxeh/rpi-firmware/raw/master/vc/hardfp/opt/vc/bin/vcdbg
sudo chmod +x "${deb_temp}"/opt/vc/bin/vcdbg
sudo cp "${deb_temp}"/opt/vc/bin/vcdbg "${deb_temp}"/opt/vc/bin/vcdbg.orig
sudo patchelf --force-rpath --set-rpath "/usr/arm-linux-gnueabihf/lib" "${deb_temp}"/opt/vc/bin/vcdbg
sudo patchelf --set-interpreter /usr/arm-linux-gnueabihf/lib/ld-linux-armhf.so.3 "${deb_temp}"/opt/vc/bin/vcdbg
cd "${workdir}"/rpi-userland/build/raspberry/release/ || exit
sudo dpkg-deb --root-owner-group -b "${deb_temp}" "${workdir}"/output/ &>>"${workdir}"/rpi_userland_build.compile.log
sudo rm -rf "${workdir}"/rpi-userland/build/
sudo rm -rf "${tmpdir}"
echo "Package is at ${workdir}/output/rpiuserland_${USERLANDREV}_arm64.deb ."
#------end-------script
2. get vc library into /opt you need to execute these commands one by one:
you need to build mmal package:
cd ~/catkin_ws/src
git clone https://github.com/6by9/userland.git
cd userland
git checkout 64bit_mmal
./buildme --aarch64
sudo cp -a ~/catkin_ws/src/userland/build/lib/. /opt/vc/lib/
sudo cp -r /opt/vc/. /usr
Now,
You can use the following command to test:
raspistill -o test.jpg
3. catkin make raspicam_node
test with roslaunch
You now should have a full ros image, but you won't have the raspicam drivers.
|
I tried building the package from source with ros noetic in rpi4 with 64 bit, downloaded all dependencies and libraries but while building catkin_make it builds completely but giving following error at the end:
/usr/bin/ld: /opt/vc/lib/libmmal.so: error adding symbols: file in wrong format
Also libmmal library is installed.
Also while running launch file i am getting the following error:
ERROR: cannot launch node of type [raspicam_node/raspicam_node]: Cannot locate node of type [raspicam_node] in package [raspicam_node]. Make sure file exists in package path and permission is set to executable (chmod +x)
The text was updated successfully, but these errors were encountered: