pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/sysutils/amtterm Add patch from GIT repository to impr...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/1b5007019662
branches:  trunk
changeset: 648685:1b5007019662
user:      tron <tron%pkgsrc.org@localhost>
date:      Mon Mar 16 19:19:58 2015 +0000

description:
Add patch from GIT repository to improve AMT protocol support.

This stops "amtterm" from disconnecting repeatedly from the ME of a
Lenovo ThinkServer TS140.

diffstat:

 sysutils/amtterm/Makefile                             |  11 +-
 sysutils/amtterm/distinfo                             |   6 +-
 sysutils/amtterm/patches/patch-RedirectionConstants.h |  40 +++++++++
 sysutils/amtterm/patches/patch-redir.c                |  79 ++++++++++++++++++-
 sysutils/amtterm/patches/patch-redir.h                |  32 +++++++
 5 files changed, 160 insertions(+), 8 deletions(-)

diffs (218 lines):

diff -r ad07cae212e6 -r 1b5007019662 sysutils/amtterm/Makefile
--- a/sysutils/amtterm/Makefile Mon Mar 16 18:16:26 2015 +0000
+++ b/sysutils/amtterm/Makefile Mon Mar 16 19:19:58 2015 +0000
@@ -1,8 +1,7 @@
-# $NetBSD: Makefile,v 1.20 2014/05/29 23:37:27 wiz Exp $
-#
+# $NetBSD: Makefile,v 1.21 2015/03/16 19:19:58 tron Exp $
 
 DISTNAME=              amtterm-1.3
-PKGREVISION=           15
+PKGREVISION=           16
 CATEGORIES=            sysutils
 MASTER_SITES=          http://www.kraxel.org/releases/amtterm/
 
@@ -13,7 +12,7 @@
 
 DEPENDS+=              p5-SOAP-Lite-[0-9]*:../../net/p5-SOAP-Lite
 
-USE_TOOLS+=            gmake pkg-config perl:run
+USE_TOOLS+=            gmake pkg-config perl:run tr
 
 MAKE_FILE=             GNUmakefile
 MAKE_FLAGS+=           prefix=${PREFIX}
@@ -22,4 +21,8 @@
 
 .include "options.mk"
 
+post-extract:
+       ${TR} -d '\r' <${WRKSRC}/RedirectionConstants.h >${WRKDIR}/no-dos
+       ${MV} ${WRKDIR}/no-dos ${WRKSRC}/RedirectionConstants.h
+
 .include "../../mk/bsd.pkg.mk"
diff -r ad07cae212e6 -r 1b5007019662 sysutils/amtterm/distinfo
--- a/sysutils/amtterm/distinfo Mon Mar 16 18:16:26 2015 +0000
+++ b/sysutils/amtterm/distinfo Mon Mar 16 19:19:58 2015 +0000
@@ -1,8 +1,10 @@
-$NetBSD: distinfo,v 1.3 2013/08/22 07:12:37 wiz Exp $
+$NetBSD: distinfo,v 1.4 2015/03/16 19:19:58 tron Exp $
 
 SHA1 (amtterm-1.3.tar.gz) = cfd199cc870f48a59caa89408b039239eab85322
 RMD160 (amtterm-1.3.tar.gz) = 382f9869b849f7cf6180b68f2a2481225ca575af
 Size (amtterm-1.3.tar.gz) = 37671 bytes
 SHA1 (patch-GNUmakefile) = f0ff91d80b01ea9d4b42ea752b786ce16a698c7d
+SHA1 (patch-RedirectionConstants.h) = 8124cf1f580d75f9b60ca6c34d576146b6d4e7fd
 SHA1 (patch-mk_Variables.mk) = cb2d2fae3c0e650386308bd9290fa62c64a137f7
-SHA1 (patch-redir.c) = 862935d9e74a9df791eb5b22baf0cc1ac4b7ffb6
+SHA1 (patch-redir.c) = 930b9623d75e843a28708bbeb9c50e64332681e0
+SHA1 (patch-redir.h) = d910de3c4efd118b8d001cf17673c47857c72a3a
diff -r ad07cae212e6 -r 1b5007019662 sysutils/amtterm/patches/patch-RedirectionConstants.h
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/sysutils/amtterm/patches/patch-RedirectionConstants.h     Mon Mar 16 19:19:58 2015 +0000
@@ -0,0 +1,40 @@
+$NetBSD: patch-RedirectionConstants.h,v 1.1 2015/03/16 19:19:58 tron Exp $
+
+Decode SOL_CONTROLS_FROM_HOST messages. This fixes compatiblity problems
+with the AMT interface of an Lenovo ThinkServer TS140.
+
+Patch taken from GIT repository:
+
+https://www.kraxel.org/cgit/amtterm/patch/?id=0ece5135fef56dbd0d94957c334655a57adb7212
+
+--- RedirectionConstants.h.orig        2011-05-26 10:19:45.000000000 +0100
++++ RedirectionConstants.h     2015-03-16 18:55:44.000000000 +0000
+@@ -24,6 +24,8 @@
+ #define SOL_KEEP_ALIVE_PING                 0x24  //Console to Host
+ #define SOL_KEEP_ALIVE_PONG                 0x25  //Host to Console
+ #define SOL_DATA_TO_HOST                    0x28  //Console to host
++#define SOL_CONTROLS_FROM_HOST              0x29  //Host to Console
++
+ #define SOL_DATA_FROM_HOST                  0x2A  //Host to Console
+ #define SOL_HEARTBEAT                       0x2B
+ 
+@@ -33,6 +35,19 @@
+ #define END_SOL_REDIRECTION_LENGTH             8
+ #define END_SOL_REDIRECTION_REPLY_LENGTH       8
+ 
++// Control message control bits (message 0x29)
++#define RTS_CONTROL                            1
++#define DTR_CONTROL                            2 
++#define BREAK_CONTROL                          4
++
++// Control message status bits (message 0x29)
++#define TX_OVERFLOW                            1
++#define LOOPBACK_ACTIVE                        2
++#define SYSTEM_POWER_STATE                     4
++#define RX_FLUSH_TIMEOUT                       8
++#define TESTMODE_ACTIVE                       16
++
++
+ //IDER Messages Formats
+ #define START_IDER_REDIRECTION              0x40
+ #define START_IDER_REDIRECTION_REPLY        0x41
diff -r ad07cae212e6 -r 1b5007019662 sysutils/amtterm/patches/patch-redir.c
--- a/sysutils/amtterm/patches/patch-redir.c    Mon Mar 16 18:16:26 2015 +0000
+++ b/sysutils/amtterm/patches/patch-redir.c    Mon Mar 16 19:19:58 2015 +0000
@@ -1,5 +1,14 @@
---- redir.c.orig       2011-05-26 18:19:45.000000000 +0900
-+++ redir.c    2012-08-07 13:08:49.000000000 +0900
+$NetBSD: patch-redir.c,v 1.2 2015/03/16 19:19:58 tron Exp $
+
+Decode SOL_CONTROLS_FROM_HOST messages. This fixes compatiblity problems
+with the AMT interface of an Lenovo ThinkServer TS140.
+
+Patch taken from GIT repository:
+
+https://www.kraxel.org/cgit/amtterm/patch/?id=0ece5135fef56dbd0d94957c334655a57adb7212
+
+--- redir.c.orig       2011-05-26 10:19:45.000000000 +0100
++++ redir.c    2015-03-16 19:16:49.000000000 +0000
 @@ -281,8 +281,11 @@
  
        switch (count) {
@@ -14,3 +23,69 @@
        case 0:
            snprintf(r->err, sizeof(r->err), "EOF from socket");
            return -1;
+@@ -298,6 +301,9 @@
+     return bshift;
+ }
+ 
++static int in_loopback_mode = 0;
++static int powered_off = 0;
++
+ int redir_data(struct redir *r)
+ {
+     int rc, bshift;
+@@ -382,6 +388,55 @@
+               goto again;
+           redir_stop(r);
+           break;
++      case SOL_CONTROLS_FROM_HOST: {
++        bshift = r->blen; /* FIXME */
++        if (r->blen < bshift)
++          goto again;
++        
++        /* Host sends this message to the Management Console when
++         * the host has changed its COM port control lines. This
++         * message is likely to be one of the first messages that
++         * the Host sends to the Console after it starts SOL
++         * redirection.
++         */
++        struct controls_from_host_message *msg = (struct controls_from_host_message *) r->buf;
++        //printf("Type %x, control %d, status %d\n", msg->type, msg->control, msg->status);
++        if (msg->status & LOOPBACK_ACTIVE) {
++          if (r->verbose)
++            fprintf (stderr, "Warning, SOL device is running in loopback mode.  Text input may not be accepted\n");
++          in_loopback_mode = 1;
++        } else if (in_loopback_mode) {
++          if (r->verbose)
++            fprintf (stderr, "SOL device is no longer running in loopback mode\n");
++          in_loopback_mode = 0;
++        }
++
++        if (0 == (msg->status & SYSTEM_POWER_STATE))  {
++          if (r->verbose)
++            fprintf (stderr, "The system is powered off.\n");
++          powered_off = 1;
++        } else if (powered_off) {
++          if (r->verbose)
++            fprintf (stderr, "The system is powered on.\n");
++          powered_off = 0;
++        }
++        
++        if (r->verbose) {
++          if (msg->status & (TX_OVERFLOW|RX_FLUSH_TIMEOUT|TESTMODE_ACTIVE))
++            fprintf (stderr, "Other unhandled status condition\n");
++          
++          if (msg->control & RTS_CONTROL) 
++            fprintf (stderr, "RTS is asserted on the COM Port\n");
++          
++          if (msg->control & DTR_CONTROL) 
++            fprintf (stderr, "DTR is asserted on the COM Port\n");
++          
++          if (msg->control & BREAK_CONTROL) 
++            fprintf (stderr, "BREAK is asserted on the COM Port\n");
++        }
++
++        break;
++      }
+       default:
+           snprintf(r->err, sizeof(r->err), "%s: unknown r->buf 0x%02x",
+                    __FUNCTION__, r->buf[0]);
diff -r ad07cae212e6 -r 1b5007019662 sysutils/amtterm/patches/patch-redir.h
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/sysutils/amtterm/patches/patch-redir.h    Mon Mar 16 19:19:58 2015 +0000
@@ -0,0 +1,32 @@
+$NetBSD: patch-redir.h,v 1.1 2015/03/16 19:19:58 tron Exp $
+
+Decode SOL_CONTROLS_FROM_HOST messages. This fixes compatiblity problems
+with the AMT interface of an Lenovo ThinkServer TS140.
+
+Patch taken from GIT repository:
+
+https://www.kraxel.org/cgit/amtterm/patch/?id=0ece5135fef56dbd0d94957c334655a57adb7212
+
+--- redir.h.orig       2011-05-26 10:19:45.000000000 +0100
++++ redir.h    2015-03-16 18:55:44.000000000 +0000
+@@ -1,4 +1,5 @@
+ #include "RedirectionConstants.h"
++#include <stdint.h>
+ 
+ enum redir_state {
+     REDIR_NONE      =  0,
+@@ -38,6 +39,14 @@
+     int (*cb_recv)(void *cb_data, unsigned char *buf, int len);
+ };
+ 
++struct __attribute__ ((__packed__)) controls_from_host_message {
++    unsigned char type; // 0x29
++    unsigned char reserved[3];
++    uint32_t      host_sequence_number;
++    unsigned char control; 
++    unsigned char status;
++};
++
+ const char *redir_state_name(enum redir_state state);
+ const char *redir_state_desc(enum redir_state state);
+ 



Home | Main Index | Thread Index | Old Index