missed some strerror uses
diff --git a/bbb_cape/src/bbb/cape_flasher.cc b/bbb_cape/src/bbb/cape_flasher.cc
index 744c045..cb406f7 100644
--- a/bbb_cape/src/bbb/cape_flasher.cc
+++ b/bbb_cape/src/bbb/cape_flasher.cc
@@ -1,6 +1,5 @@
 #include "bbb/cape_flasher.h"
 
-#include <errno.h>
 #include <string.h>
 #include <inttypes.h>
 
@@ -30,8 +29,7 @@
     bootloader_read = uart_->ReadBytes(&bootloader_receive, 1,
                                        ::aos::time::Time::InSeconds(2));
     if (bootloader_read == -1) {
-      LOG(WARNING, "reading from %p (uart) failed with %d: %s\n", uart_, errno,
-          strerror(errno));
+      PLOG(WARNING, "reading from %p (uart) failed", uart_);
     } else if (bootloader_read == -2) {
       LOG(WARNING, "timeout reading from uart %p\n", uart_);
     }
@@ -48,8 +46,7 @@
         memset(buffer + total_read, 0xFF, sizeof(buffer) - total_read);
         total_read = sizeof(buffer);
       } else if (read == -1) {
-        LOG(FATAL, "reading from file %p returned error %d: %s\n", file, errno,
-            strerror(errno));
+        PLOG(FATAL, "reading from file %p failed", file);
       } else {
         total_read += read;
       }
@@ -71,8 +68,7 @@
     ssize_t bootloader_read = uart_->ReadBytes(
         &bootloader_receive, 1, ::aos::time::Time::InSeconds(2));
     if (bootloader_read == -1) {
-      LOG(WARNING, "reading from %p (uart) failed with %d: %s\n", uart_,
-          errno, strerror(errno));
+      PLOG(WARNING, "reading from %p (uart) failed", uart_);
     } else if (bootloader_read == -2) {
       LOG(WARNING, "timeout reading from uart %p\n", uart_);
       do {
diff --git a/bbb_cape/src/bbb/crc.cc b/bbb_cape/src/bbb/crc.cc
index 88c338d..c3ab895 100644
--- a/bbb_cape/src/bbb/crc.cc
+++ b/bbb_cape/src/bbb/crc.cc
@@ -1,7 +1,6 @@
 #include "bbb/crc.h"
 
 #include <assert.h>
-#include <errno.h>
 #include <string.h>
 
 #include "aos/common/once.h"
@@ -60,8 +59,7 @@
                                      sizeof(buffer) - remainder_bytes);
     if (read == -2) return checksum;
     if (read == -1) {
-      LOG(FATAL, "reader %p failed to read with %d: %s\n",
-          reader, errno, strerror(errno));
+      PLOG(FATAL, "reader %p failed to read", reader);
     }
     size_t checksum_bytes = (read / 4) * 4;
     checksum = CalculateChecksum(buffer, checksum_bytes, checksum);
diff --git a/bbb_cape/src/bbb/export_uart.cc b/bbb_cape/src/bbb/export_uart.cc
index ccf751c..3d2b24f 100644
--- a/bbb_cape/src/bbb/export_uart.cc
+++ b/bbb_cape/src/bbb/export_uart.cc
@@ -17,8 +17,7 @@
 bool easy_access(const char *path) {
   if (access(path, R_OK | W_OK) == 0) return true;
   if (errno == EACCES || errno == ENOENT) return false;
-  LOG(FATAL, "access(%s, F_OK) failed with %d: %s\n", path, errno,
-      strerror(errno));
+  PLOG(FATAL, "access(%s, F_OK) failed", path);
 }
 
 }  // namespace
@@ -32,8 +31,7 @@
                " | fgrep BB-UART1"
                " | cut -d : -f 1 | tr -d \" \")"
                " > /sys/devices/bone_capemgr.*/slots'") == -1) {
-      LOG(FATAL, "system([disable OMAP UART]) failed with %d: %s\n", errno,
-          strerror(errno));
+      PLOG(FATAL, "system([disable OMAP UART]) failed");
     }
     while (easy_access(device)) {
       LOG(DEBUG, "waiting for BB-UART1 to be unexported\n");
@@ -47,8 +45,7 @@
   if (system("bash -c 'echo BB-UART1 > /sys/devices/bone_capemgr.*"
              "/slots'") ==
       -1) {
-    LOG(FATAL, "system([enable OMAP UART]) failed with %d: %s\n", errno,
-        strerror(errno));
+    PLOG(FATAL, "system([enable OMAP UART]) failed");
   }
   while (!easy_access(device)) {
     LOG(DEBUG, "waiting for BB-UART1 to be exported\n");
diff --git a/bbb_cape/src/bbb/gpi.cc b/bbb_cape/src/bbb/gpi.cc
index 520d985..64e0198 100644
--- a/bbb_cape/src/bbb/gpi.cc
+++ b/bbb_cape/src/bbb/gpi.cc
@@ -1,7 +1,6 @@
 #include "bbb/gpi.h"
 
 #include <stdio.h>
-#include <errno.h>
 #include <string.h>
 
 #include "aos/common/logging/logging.h"
@@ -15,8 +14,7 @@
   rewind(value_handle_);
   int value = fgetc(value_handle_);
   if (value < 0) {
-    LOG(FATAL, "fgetc(%p) for pin (%d,%d) failed with %d: %s\n",
-        value_handle_, bank_, pin_, errno, strerror(errno));
+    PLOG(FATAL, "fgetc(%p) for pin (%d,%d) failed", value_handle_, bank_, pin_);
   }
   switch (value - '0') {
     case 0: return false;
diff --git a/bbb_cape/src/bbb/gpios.cc b/bbb_cape/src/bbb/gpios.cc
index a5a891a..0ec3051 100644
--- a/bbb_cape/src/bbb/gpios.cc
+++ b/bbb_cape/src/bbb/gpios.cc
@@ -2,7 +2,6 @@
 
 #include <stdio.h>
 #include <stdlib.h>
-#include <errno.h>
 #include <string.h>
 
 #include "aos/common/logging/logging.h"
@@ -14,18 +13,14 @@
   // Export the pin.
   FILE *export_handle = fopen("/sys/class/gpio/export", "w");
   if (export_handle == NULL) {
-    LOG(WARNING,
-        "Could not open file to export pin (%d,%d) because of %d: %s.\n",
-        bank_, pin_, errno, strerror(errno));
+    PLOG(WARNING, "Could not open file to export pin (%d,%d)", bank_, pin_);
   } else {
     if (fprintf(export_handle, "%d", kernel_pin_) < 0) {
-      LOG(WARNING, "Could not write to file %p to export pin (%d,%d) because "
-                   "of %d: %s.\n",
-          export_handle, bank_, pin_, errno, strerror(errno));
+      PLOG(WARNING, "Could not write to file %p to export pin (%d,%d)",
+           export_handle, bank_, pin_);
     }
     if (fclose(export_handle) == -1) {
-      LOG(WARNING, "fclose(%p) failed with %d: %s\n", export_handle, errno,
-          strerror(errno));
+      PLOG(WARNING, "fclose(%p) failed", export_handle);
     }
   }
 
@@ -35,18 +30,15 @@
 
   FILE *direction_handle = fopen(direction_path, "w");
   if (direction_handle == NULL) {
-    LOG(FATAL, "fopen(%s, \"w\") failed with %d: %s\n",
-        direction_path, errno, strerror(errno));
+    PLOG(FATAL, "fopen(%s, \"w\") failed", direction_path);
   }
 
   if (fputs(input ? "in" : (initial_value ? "high" : "low"),
             direction_handle) < 0) {
-    LOG(FATAL, "setting direction for pin (%d,%d) failed with %d: %s\n",
-        bank_, pin_, errno, strerror(errno));
+    PLOG(FATAL, "setting direction for pin (%d,%d) failed", bank_, pin_);
   }
   if (fclose(direction_handle) == -1) {
-    LOG(WARNING, "fclose(%p) failed with %d: %s\n", direction_handle, errno,
-        strerror(errno));
+    PLOG(WARNING, "fclose(%p) failed", direction_handle);
   }
 
   char value_path[64];
@@ -54,8 +46,7 @@
            "/sys/class/gpio/gpio%d/value", kernel_pin_);
   value_handle_ = fopen(value_path, "w+");
   if (value_handle_ == NULL) {
-    LOG(FATAL, "fopen(%s, \"w+\") failed with %d: %s\n",
-        value_path, errno, strerror(errno));
+    PLOG(FATAL, "fopen(%s, \"w+\") failed", value_path);
   }
 }
 
@@ -63,18 +54,14 @@
   // Unexport the pin.
   FILE *unexport_handle = fopen("/sys/class/gpio/unexport", "a");
   if (unexport_handle == NULL) {
-    LOG(WARNING,
-        "Could not open file to unexport pin (%d,%d) because of %d: %s.\n",
-        bank_, pin_, errno, strerror(errno));
+    PLOG(WARNING, "Could not open file to unexport pin (%d,%d)", bank_, pin_);
   } else {
     if (fprintf(unexport_handle, "%d", kernel_pin_) < 0) {
-      LOG(WARNING, "Could not write to file %p to unexport pin (%d,%d) because "
-                   "of %d: %s.\n",
-          unexport_handle, bank_, pin_, errno, strerror(errno));
+      PLOG(WARNING, "Could not write to file %p to unexport pin (%d,%d)",
+           unexport_handle, bank_, pin_);
     }
     if (fclose(unexport_handle) == -1) {
-      LOG(WARNING, "fclose(%p) failed with %d: %s\n", unexport_handle, errno,
-          strerror(errno));
+      PLOG(WARNING, "fclose(%p) failed", unexport_handle);
     }
   }
 }
diff --git a/bbb_cape/src/bbb/gpo.cc b/bbb_cape/src/bbb/gpo.cc
index 8ad599e..acb4295 100644
--- a/bbb_cape/src/bbb/gpo.cc
+++ b/bbb_cape/src/bbb/gpo.cc
@@ -1,7 +1,6 @@
 #include "bbb/gpo.h"
 
 #include <stdio.h>
-#include <errno.h>
 #include <string.h>
 #include <unistd.h>
 
@@ -15,12 +14,12 @@
 void Gpo::Set(bool high) {
   rewind(value_handle_);
   if (fputc(high ? '1' : '0', value_handle_) == EOF) {
-    LOG(FATAL, "fputc(%c, %p) for pin (%d,%d) failed with %d: %s\n",
-        high ? '1': '0', value_handle_, bank_, pin_, errno, strerror(errno));
+    PLOG(FATAL, "fputc(%c, %p) for pin (%d,%d) failed",
+         high ? '1': '0', value_handle_, bank_, pin_);
   }
   if (fflush(value_handle_) == EOF) {
-    LOG(FATAL, "fflush(%p) for pin (%d,%d) failed with %d: %s\n",
-        value_handle_, bank_, pin_, errno, strerror(errno));
+    PLOG(FATAL, "fflush(%p) for pin (%d,%d) failed",
+         value_handle_, bank_, pin_);
   }
 }
 
diff --git a/bbb_cape/src/bbb/hex_byte_reader.cc b/bbb_cape/src/bbb/hex_byte_reader.cc
index 7c6a28f..4e2f7e4 100644
--- a/bbb_cape/src/bbb/hex_byte_reader.cc
+++ b/bbb_cape/src/bbb/hex_byte_reader.cc
@@ -1,7 +1,6 @@
 #include "bbb/hex_byte_reader.h"
 
 #include <string.h>
-#include <errno.h>
 
 #include "stm32flash/parsers/parser.h"
 #include "stm32flash/parsers/hex.h"
@@ -15,7 +14,7 @@
 
 __attribute__((noreturn)) void DieParserError(parser_err_t perr) {
   if (perr == PARSER_ERR_SYSTEM) {
-    LOG(ERROR, "%d: %s\n", errno, strerror(errno));
+    PLOG(ERROR, "parser error");
   }
   LOG(FATAL, "%s error: %s\n", kParser.name, parser_errstr(perr));
 }
diff --git a/bbb_cape/src/bbb/led.cc b/bbb_cape/src/bbb/led.cc
index 5dc5e71..df8139e 100644
--- a/bbb_cape/src/bbb/led.cc
+++ b/bbb_cape/src/bbb/led.cc
@@ -3,7 +3,6 @@
 #include "aos/common/logging/logging.h"
 
 #include <string.h>
-#include <errno.h>
 
 #define DIRECTORY "/sys/class/leds/beaglebone:green:usr%d/"
 
@@ -14,17 +13,14 @@
   snprintf(trigger_path, sizeof(trigger_path), DIRECTORY "trigger", number_);
   FILE *trigger_handle = fopen(trigger_path, "w");
   if (trigger_handle == nullptr) {
-    LOG(FATAL, "couldn't open trigger file for LED %d because of %d: %s\n",
-        number_, errno, strerror(errno));
+    PLOG(FATAL, "couldn't open trigger file for LED %d", number_);
   }
   if (fputs("none", trigger_handle) < 0) {
-    LOG(FATAL,
-        "writing 'none' to file %p (trigger for LED %d) failed with %d: %s\n",
-        trigger_handle, number_, errno, strerror(errno));
+    PLOG(FATAL, "writing 'none' to file %p (trigger for LED %d) failed",
+         trigger_handle, number_);
   }
   if (fclose(trigger_handle) == -1) {
-    LOG(WARNING, "fclose(%p) failed with %d: %s\n",
-        trigger_handle, errno, strerror(errno));
+    PLOG(WARNING, "fclose(%p) failed", trigger_handle);
   }
 
   char brightness_path[64];
@@ -33,27 +29,25 @@
 
   brightness_handle_ = fopen(brightness_path, "w");
   if (brightness_handle_ == nullptr) {
-    LOG(FATAL, "fopen('%s', 'w') failed with %d: %s\n",
-        brightness_path, errno, strerror(errno));
+    PLOG(FATAL, "fopen('%s', 'w') failed", brightness_path);
   }
 }
 
 LED::~LED() {
   if (fclose(brightness_handle_) == -1) {
-    LOG(WARNING, "fclose(%p) failed with %d: %s\n",
-        brightness_handle_, errno, strerror(errno));
+    PLOG(WARNING, "fclose(%p) failed", brightness_handle_);
   }
 }
 
 void LED::Set(bool on) {
   rewind(brightness_handle_);
   if (fputs(on ? "255" : "0", brightness_handle_) == EOF) {
-    LOG(FATAL, "fputs(255|0, %p) for LED %d failed with %d: %s\n",
-        brightness_handle_, number_, errno, strerror(errno));
+    PLOG(FATAL, "fputs(255|0, %p) for LED %d failed",
+         brightness_handle_, number_);
   }
   if (fflush(brightness_handle_) == EOF) {
-    LOG(FATAL, "fflush(%p) for LED %d failed with %d: %s\n",
-        brightness_handle_, number_, errno, strerror(errno));
+    PLOG(FATAL, "fflush(%p) for LED %d failed",
+         brightness_handle_, number_);
   }
 }
 
diff --git a/bbb_cape/src/bbb/packet_finder.cc b/bbb_cape/src/bbb/packet_finder.cc
index d435c84..b9f1d2f 100644
--- a/bbb_cape/src/bbb/packet_finder.cc
+++ b/bbb_cape/src/bbb/packet_finder.cc
@@ -1,6 +1,5 @@
 #include "bbb/packet_finder.h"
 
-#include <errno.h>
 #include <inttypes.h>
 #include <stdlib.h>
 #include <string.h>
@@ -52,8 +51,8 @@
                            to_read, timeout_time);
     if (new_bytes < 0) {
       if (new_bytes == -1) {
-        LOG(ERROR, "ReadBytes(%p, %zd) failed with %d: %s\n",
-            buf_ + already_read, to_read, errno, strerror(errno));
+        PLOG(ERROR, "ReadBytes(%p, %zd) failed",
+             buf_ + already_read, to_read);
       } else if (new_bytes == -2) {
         LOG(WARNING, "timed out\n");
       } else {
diff --git a/bbb_cape/src/bbb/uart_reader.cc b/bbb_cape/src/bbb/uart_reader.cc
index fe1c526..3221980 100644
--- a/bbb_cape/src/bbb/uart_reader.cc
+++ b/bbb_cape/src/bbb/uart_reader.cc
@@ -40,13 +40,11 @@
     : fd_(open_device()) {
   
   if (fd_ < 0) {
-    LOG(FATAL, "open(%s, O_RDWR | O_NOCTTY | O_NOBLOCK) failed with %d: %s\n",
-        UartDevice(), errno, strerror(errno));
+    PLOG(FATAL, "open(%s, O_RDWR | O_NOCTTY | O_NOBLOCK) failed", UartDevice());
   }
 
   if (aos_uart_reader_set_tty_options(fd_, baud_rate) != 0) {
-    LOG(FATAL, "aos_uart_reader_set_tty_options(%d) failed with %d: %s\n",
-        fd_, errno, strerror(errno));
+    PLOG(FATAL, "aos_uart_reader_set_tty_options(%d) failed", fd_);
   }
 }