development/J-Link: Updated for version 7.00a.

Signed-off-by: Robby Workman <rworkman@slackbuilds.org>
This commit is contained in:
Andrzej Telszewski 2021-05-02 15:39:04 -05:00 committed by Robby Workman
parent a0b18476a2
commit 2c251cd8dc
4 changed files with 77 additions and 51 deletions

View file

@ -2,7 +2,7 @@
# Slackware build script for SEGGER J-Link
# Copyright 2015 Andrzej Telszewski, Sabadell
# Copyright 2021 Andrzej Telszewski, Szczecin
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@ -23,14 +23,13 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=J-Link
VERSION=${VERSION:-5.02}
SRCNAM="JLink_Linux_V"$(echo $VERSION | tr -d .)"_"
VERSION=${VERSION:-7.00a}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i486 ;;
i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
@ -47,15 +46,17 @@ else
LIBDIRSUFFIX=""
fi
if [ "$ARCH" != "i486" ] && [ "$ARCH" != "x86_64" ]; then
if [ "$ARCH" != "i586" ] && [ "$ARCH" != "x86_64" ]; then
echo -ne "\n\nError: \"${ARCH}\" architecture is not supported.\n\n"
exit 1
fi
if [ "$ARCH" = "i486" ]; then
SRCNAM="${SRCNAM}i386"
SRCNAM="JLink_Linux_V$(echo $VERSION | tr -d .)"
if [ "$ARCH" = "i586" ]; then
SRCNAM="${SRCNAM}_i386"
else
SRCNAM="${SRCNAM}$ARCH"
SRCNAM="${SRCNAM}_${ARCH}"
fi
set -e
@ -68,9 +69,11 @@ tar xvf $CWD/$SRCNAM.tgz
mv $SRCNAM $PRGNAM-$VERSION
cd $PRGNAM-$VERSION
TREE_MD5=80fa37c7583e6eb366e15c1fc84e630f
UDEV_MD5=4918ffb129c5691e8f9a01313f975fea
TREE_MD5_NEW=( $(find . ! -name "libjlinkarm.so.*" ! -name "libedit.so.*" | sort | md5sum) )
TREE_MD5=bfc46ffdebe4e426f48d2ad74e1aeb33
UDEV_MD5=048a92be10a5864e558415326001d5e9
TREE_MD5_NEW=( $(find . -not \( -path './x86' -prune \) -not -name 'libjlinkarm.so*' \
-not -name 'libjlinkarm_x86.so*' -not -name 'libQt*' | LC_ALL=C sort | md5sum) )
UDEV_MD5_NEW=( $(md5sum 99-jlink.rules) )
if [ $TREE_MD5 != $TREE_MD5_NEW ] || [ $UDEV_MD5 != $UDEV_MD5_NEW ]; then
@ -90,29 +93,39 @@ if [ $TREE_MD5 != $TREE_MD5_NEW ] || [ $UDEV_MD5 != $UDEV_MD5_NEW ]; then
fi
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
-o -perm 511 \) -exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
chmod -R a-st,u+rwX,go-w+rX .
mkdir -p $PKG/etc/udev/rules.d
fromdos < 99-jlink.rules > $PKG/etc/udev/rules.d/99-jlink.rules
sed -i 's/BUS!="usb", ACTION!="add", SUBSYSTEM!=="usb_device", GOTO="jlink_rules_end"/ACTION!="add", SUBSYSTEM!="usb", GOTO="jlink_rules_end"/' \
$PKG/etc/udev/rules.d/99-jlink.rules
sed -i 's/MODE="666"/MODE="664", GROUP="plugdev"/' $PKG/etc/udev/rules.d/99-jlink.rules
mkdir -p $PKG/opt/J-Link
cp -a Devices ETC GDBServer JFlash* JLink* JMemExe JRunExe JTAGLoadExe libQt* \
$PKG/opt/J-Link
mkdir -p $PKG/usr/bin
cp -a JFlashSPI_CL JLink{Exe,GDBServer,RemoteServer,RTTClient,STM32,SWOViewer} $PKG/usr/bin
# The official J-Link tarball contains executables and soft links to executables
# in the _root_ directory of the tarball. This SlackBuild makes _/opt/J-Link_
# the _root_ directory of the executables and exposes them in _/usr/bin_ with soft links.
find $PKG/opt/J-Link -maxdepth 1 -print0 | xargs -0 file -L | grep -e 'ELF.*executable' | \
cut -f1 -d: | rev | cut -f1 -d/ | rev | while IFS= read -r EXENAME; do
if [ -L $EXENAME ]; then
ln -s /opt/J-Link/$(readlink $EXENAME) $PKG/usr/bin/$EXENAME
else
ln -s /opt/J-Link/$EXENAME $PKG/usr/bin/$EXENAME
fi
done
mkdir -p $PKG/usr/lib$LIBDIRSUFFIX
cp -a libjlinkarm.so.* $PKG/usr/lib$LIBDIRSUFFIX
cp -a libjlinkarm.so* $PKG/usr/lib$LIBDIRSUFFIX
ln -s /usr/lib$LIBDIRSUFFIX/libjlinkarm.so $PKG/opt/J-Link/libjlinkarm.so
mkdir -p $PKG/lib/udev/rules.d
fromdos < 99-jlink.rules > $PKG/lib/udev/rules.d/99-jlink.rules
sed -i 's/SUBSYSTEM!="usb_device"/SUBSYSTEM!="usb"/g' $PKG/lib/udev/rules.d/99-jlink.rules
sed -i -E 's/MODE="0{0,1}666"(, GROUP="dialout"){0,1}/MODE="0664", GROUP="plugdev"/g' \
$PKG/lib/udev/rules.d/99-jlink.rules
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a Doc/{License.txt,UM08001_JLink.pdf,ReleaseNotes/ReleaseJLink.html} \
$PKG/usr/doc/$PRGNAM-$VERSION
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/samples
cp -a Samples/JLink/* $PKG/usr/doc/$PRGNAM-$VERSION/samples
cp -a Doc/* Samples $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install

View file

@ -1,10 +1,10 @@
PRGNAM="J-Link"
VERSION="5.02"
HOMEPAGE="https://www.segger.com/"
DOWNLOAD="https://www.segger.com/jlink-software.html?step=1&file=JLinkLinuxTGZ32_502"
MD5SUM="0f7d058711d62a2837a13f01d41caf8a"
DOWNLOAD_x86_64="https://www.segger.com/jlink-software.html?step=1&file=JLinkLinuxTGZ64_502"
MD5SUM_x86_64="1129746191f45657a6e24aa0e3c85b37"
VERSION="7.00a"
HOMEPAGE="https://www.segger.com/products/debug-probes/j-link/"
DOWNLOAD="https://www.segger.com/downloads/jlink/JLink_Linux_V700a_i386.tgz"
MD5SUM="ed538976180a520b7931a7643df6e4f3"
DOWNLOAD_x86_64="https://www.segger.com/downloads/jlink/JLink_Linux_V700a_x86_64.tgz"
MD5SUM_x86_64="38974c621365e25575486343f12f108f"
REQUIRES=""
MAINTAINER="Andrzej Telszewski"
EMAIL="atelszewski@gmail.com"
EMAIL="andrzej@telszewski.com"

View file

@ -1,23 +1,36 @@
The J-Link software gives you the USB drivers needed for your system,
J-Link software gives you the USB drivers needed for your system,
a number of utilities as well as a dynamically linkable library used
by most of the IDEs and debuggers using J-Link. Also included are
a number of sample setup scripts for devices needing one as well as
documentation.
NOTES:
1. This SlackBuild is not sbopkg compatible because source download
1. This SlackBuild is not _sbopkg_ compatible, because source download
requires licence acceptance (the link provided in .info points to
download site) and the source tarball name is different from the
resulting package name.
the download form). In addition, the source tarball name is
different from the resulting package name.
2. This SlackBuild repackages the official J-Link binary package.
2. This SlackBuild repackages the official J-Link pre-compiled
binaries.
3. The official binary package bundles libedit, which is also
available from slackbuilds.org so I decided to go with the one from
slackbuilds.org and not with the bundled one. BTW, ldd shows that
libedit is not used at all.
3. Remember to reload udev rules after installing this package:
4. The original udev rules change the device permissions to 0666.
This SlackBuild modifies the rules, so that the permissions are
0664 and the group is plugdev. Be sure to make yourself a member
of this group.
$ /etc/rc.d/rc.udev reload
and then to re-plug your J-Link probe.
4. The upstream _udev_ rules change the device nodes perms to 0666.
This SlackBuild updates the rules, so that the permissions are set
to 0664 and group is set to _plugdev_. Be sure to make yourself
a member of this group to use J-Link probes without _root_.
The same perms/group is applied to the J-Link embedded serial ports
device nodes as well.
5. If you're looking for replacing ST-LINK/V2 on ST Discovery or
Nucleo boards with J-Link, see [here]. It requires Windows
to perform the update, but can be done using QEMU with usbredir.
Such a converted board is used for testing the J-Link package
on my Slackware machine.
[here]: https://www.segger.com/products/debug-probes/j-link/models/other-j-links/st-link-on-board/

View file

@ -8,12 +8,12 @@
|-----handy-ruler------------------------------------------------------|
J-Link: J-Link (software and documentation for J-Link)
J-Link:
J-Link: The J-Link software gives you the USB drivers needed for your system,
J-Link: J-Link software gives you the USB drivers needed for your system,
J-Link: a number of utilities as well as a dynamically linkable library used
J-Link: by most of the IDEs and debuggers using J-Link. Also included are a
J-Link: number of sample setup scripts for devices needing one as well as
J-Link: by most of the IDEs and debuggers using J-Link. Also included are
J-Link: a number of sample setup scripts for devices needing one as well as
J-Link: documentation.
J-Link:
J-Link: Homepage: https://www.segger.com/products/debug-probes/j-link/
J-Link:
J-Link: Homepage: https://www.segger.com/
J-Link: