diff options
author | Andrzej Telszewski <andrzej@telszewski.com> | 2021-05-02 15:39:04 -0500 |
---|---|---|
committer | Robby Workman <rworkman@slackbuilds.org> | 2021-05-02 15:39:04 -0500 |
commit | 2c251cd8dc700c966dfcd3928ad474babb959501 (patch) | |
tree | 81eae94665de289b68d6414984da9b1cb8ee0c31 /development/J-Link | |
parent | a0b18476a205fb4fafdc1d3665b089f56d507e49 (diff) |
development/J-Link: Updated for version 7.00a.
Signed-off-by: Robby Workman <rworkman@slackbuilds.org>
Diffstat (limited to 'development/J-Link')
-rw-r--r-- | development/J-Link/J-Link.SlackBuild | 69 | ||||
-rw-r--r-- | development/J-Link/J-Link.info | 14 | ||||
-rw-r--r-- | development/J-Link/README | 39 | ||||
-rw-r--r-- | development/J-Link/slack-desc | 8 |
4 files changed, 78 insertions, 52 deletions
diff --git a/development/J-Link/J-Link.SlackBuild b/development/J-Link/J-Link.SlackBuild index 5cadb2eff2199..78772c786cc02 100644 --- a/development/J-Link/J-Link.SlackBuild +++ b/development/J-Link/J-Link.SlackBuild @@ -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 {} \; - -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 +chmod -R a-st,u+rwX,go-w+rX . + +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 diff --git a/development/J-Link/J-Link.info b/development/J-Link/J-Link.info index a04b1fe252d4f..a0e4723bfa476 100644 --- a/development/J-Link/J-Link.info +++ b/development/J-Link/J-Link.info @@ -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" diff --git a/development/J-Link/README b/development/J-Link/README index c51b624e4f5ed..31316b19ad731 100644 --- a/development/J-Link/README +++ b/development/J-Link/README @@ -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 pre-compiled + binaries. + +3. Remember to reload udev rules after installing this package: + + $ /etc/rc.d/rc.udev reload + + and then to re-plug your J-Link probe. -2. This SlackBuild repackages the official J-Link binary package. +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. -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. +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. -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. +[here]: https://www.segger.com/products/debug-probes/j-link/models/other-j-links/st-link-on-board/ diff --git a/development/J-Link/slack-desc b/development/J-Link/slack-desc index e659599c669b2..0d45ca26f8d3c 100644 --- a/development/J-Link/slack-desc +++ b/development/J-Link/slack-desc @@ -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: |