Просмотр исходного кода

Erase EMMC, Copy to frm SD/EMMC
libnss reverted to 3.48 due to compile issues (patch 108)

Reinhard Russinger 5 лет назад
Родитель
Сommit
3dc90aad2f

+ 1 - 1
board/GfA/Display001/BUILD

@@ -1 +1 @@
-659
+660

+ 5 - 8
board/GfA/Display001/rootfs/root/CopyEMMCtoSD.sh

@@ -39,7 +39,9 @@ else
 fi    
 
 echo "Formatting SD ...."
-
+umount /dev/mmcblk0p1 2>/dev/null
+umount /dev/mmcblk0p2 2>/dev/null
+dd if=/dev/zero of=/dev/mmcblk0 bs=2M count=1 conv=notrunc
 fdisk /dev/mmcblk0 <<EOF
 o
 p
@@ -47,11 +49,10 @@ n
 p
 1
 
-2048
++64M
 t
 e
 a
-1
 n
 p
 2
@@ -60,12 +61,8 @@ p
 p
 w
 EOF
-umount /dev/mmcblk0p1
-dd if=/dev/zero of=/dev/mmcblk0p1 bs=1024 count=1024
 mkfs.vfat -F 16 /dev/mmcblk0p1
-umount /dev/mmcblk0p2
-dd if=/dev/zero of=/dev/mmcblk0p2 bs=1024 count=1024
-mkfs.ext4 /dev/mmcblk0p2
+mkfs.ext4 -F /dev/mmcblk0p2
 # temp. mountdirectories
 mkdir /tmp/boot
 mkdir /tmp/bootdata

+ 45 - 7
board/GfA/Display001/rootfs/root/CopySDtoEMMC.sh

@@ -1,4 +1,47 @@
 #!/bin/sh
+such="root=/dev/mmcblk1"
+
+echo ""
+echo -e "\e[7mCopy SD to EMMC\e[0m"
+
+grep -q $such /proc/cmdline
+if [ $? == 0 ]; then
+    bootpart="/dev/mmcblk1p1"
+    bootdev="EMMC"
+else
+    bootpart="/dev/mmcblk0p1"
+    bootdev="SD"
+fi
+                
+if [ $bootdev == "EMMC" ]; then
+    echo "System was booted from EMMC, copying Image from SD not possible ! ==> EXIT"
+    exit 1
+fi
+
+if [ ! -b /dev/mmcblk1 ]; then
+    echo -e "\e[31mNo EMMC found ! ==> EXIT\e[0m"
+    exit 2
+fi
+
+echo -e "\e[31mEMMC will be formatted, all Data on this device will be deleted!!\e[0m"
+echo ""
+read -n 1 -p "are you sure? (y/n) : " antwort
+
+if [ ${#antwort} == 0 ]; then
+  antwort = "n"  
+fi
+
+if [ $antwort == "y" -o $antwort == "Y" ]; then
+  echo -e "\nStart copying .."
+else
+  echo -e "\nEXIT on user reqest"
+  exit 3
+fi    
+
+echo "Formatting EMMC ...."
+umount /dev/mmcblk1p1 2>/dev/null
+umount /dev/mmcblk1p2 2>/dev/null
+dd if=/dev/zero of=/dev/mmcblk1 bs=2M count=1 conv=notrunc
 fdisk /dev/mmcblk1 <<EOF
 o
 p
@@ -6,11 +49,10 @@ n
 p
 1
 
-2048
++64M
 t
 e
 a
-1
 n
 p
 2
@@ -19,12 +61,8 @@ p
 p
 w
 EOF
-umount /dev/mmcblk1p1
-dd if=/dev/zero of=/dev/mmcblk1p1 bs=1024 count=1024
 mkfs.vfat -F 16 /dev/mmcblk1p1
-umount /dev/mmcblk1p2
-dd if=/dev/zero of=/dev/mmcblk1p2 bs=1024 count=1024
-mkfs.ext4 /dev/mmcblk1p2
+mkfs.ext4 -F /dev/mmcblk1p2
 # temp. mountdirectories
 mkdir /tmp/boot
 mkdir /tmp/bootdata

+ 49 - 9
board/GfA/Display001/rootfs/root/EraseEMMC.sh

@@ -1,12 +1,52 @@
 #!/bin/sh
+such="root=/dev/mmcblk1"
 
-    echo "erase MMC Data Booted from SD"
-    dd if=/dev/zero of=/dev/mmcblk1 bs=1M count=1
-    #--- Bootblocks EMMC
-    echo "Erase Boot0"
-    echo 0 > /sys/block/mmcblk1boot0/force_ro
-    dd if=/dev/zero of=/dev/mmcblk1boot0 bs=1M count=1
-    echo "Erase Boot1"
-    echo 0 > /sys/block/mmcblk1boot1/force_ro
-    dd if=/dev/zero of=/dev/mmcblk1boot1 bs=1M count=1
+echo ""
+echo -e "\e[7mErase EMMC\e[0m"
 
+grep -q $such /proc/cmdline
+if [ $? == 0 ]; then
+    bootpart="/dev/mmcblk1p1"
+    bootdev="EMMC"
+else
+    bootpart="/dev/mmcblk0p1"
+    bootdev="SD"
+fi
+                
+if [ $bootdev == "EMMC" ]; then
+    echo "System was booted from EMMC, erasing not possible ! ==> EXIT"
+    exit 1
+fi
+
+if [ ! -b /dev/mmcblk1 ]; then
+    echo -e "\e[31mNo EMMC found ! ==> EXIT\e[0m"
+    exit 2
+fi
+
+echo -e "\e[31mEMMC will be erased, all Data on this device will be deleted!!\e[0m"
+echo ""
+read -n 1 -p "are you sure? (y/n) : " antwort
+
+if [ ${#antwort} == 0 ]; then
+  antwort = "n"  
+fi
+
+if [ $antwort == "y" -o $antwort == "Y" ]; then
+  echo -e "\nStart erasing .."
+else
+  echo -e "\nEXIT on user reqest"
+  exit 3
+fi    
+
+echo "Erasing EMMC partition tables ...."
+umount /dev/mmcblk1p1 2>/dev/null
+umount /dev/mmcblk1p2 2>/dev/null
+dd if=/dev/zero of=/dev/mmcblk1 bs=2M count=1 conv=notrunc
+umount /dev/mmcblk1p1 /dev/mmcblk1p2 2>/dev/null
+echo "Erase Boot0"
+echo 0 > /sys/block/mmcblk1boot0/force_ro
+dd if=/dev/zero of=/dev/mmcblk1boot0 bs=1M count=1 conv=notrunc
+echo "Erase Boot1"
+echo 0 > /sys/block/mmcblk1boot1/force_ro
+dd if=/dev/zero of=/dev/mmcblk1boot1 bs=1M count=1 conv=notrunc
+echo "...done"

+ 2 - 0
configs/Display001_4.4.104_rt21_Qt5.12_defconfig

@@ -365,7 +365,9 @@ BR2_PACKAGE_HTOP=y
 BR2_PACKAGE_KEYUTILS=y
 BR2_PACKAGE_POLKIT=y
 BR2_PACKAGE_UTIL_LINUX_BINARIES=y
+BR2_PACKAGE_UTIL_LINUX_PARTX=y
 BR2_PACKAGE_UTIL_LINUX_SETTERM=y
+BR2_PACKAGE_UTIL_LINUX_WIPEFS=y
 BR2_PACKAGE_JOE=y
 BR2_TARGET_ROOTFS_EXT2=y
 BR2_TARGET_ROOTFS_EXT2_4=y

+ 145 - 0
patches/0108-libnss-revert-to-3.48-due-to-compiler-issues.patch

@@ -0,0 +1,145 @@
+diff --git a/package/libnss/0002-Bug-1602288-Fix-build-failure-due-to-missing-posix-s.patch b/package/libnss/0002-Bug-1602288-Fix-build-failure-due-to-missing-posix-s.patch
+new file mode 100644
+index 0000000000..95e7b2bb56
+--- /dev/null
++++ b/package/libnss/0002-Bug-1602288-Fix-build-failure-due-to-missing-posix-s.patch
+@@ -0,0 +1,26 @@
++From 2e1b003600156e4adcb88998eabf18addee45be1 Mon Sep 17 00:00:00 2001
++From: Giulio Benetti <giulio.benetti@benettiengineering.com>
++Date: Sun, 8 Dec 2019 11:57:45 +0100
++Subject: [PATCH] Bug 1602288 - Fix build failure due to missing posix signal.h
++
++Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
++---
++ nss/coreconf/Linux.mk | 2 +-
++ 1 file changed, 1 insertion(+), 1 deletion(-)
++
++diff --git a/nss/coreconf/Linux.mk b/nss/coreconf/Linux.mk
++index d07f8a3c5..854d3ca96 100644
++--- a/nss/coreconf/Linux.mk
+++++ b/nss/coreconf/Linux.mk
++@@ -21,7 +21,7 @@ ifeq ($(USE_PTHREADS),1)
++ endif
++ 
++ DEFAULT_COMPILER = gcc
++-DEFINES += -D_DEFAULT_SOURCE -D_BSD_SOURCE
+++DEFINES += -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_SOURCE
++ 
++ ifeq ($(OS_TARGET),Android)
++ ifndef ANDROID_NDK
++-- 
++2.20.1
++
+diff --git a/package/libnss/0002-Bug-1602743-Fix-PowerPc-build-sys-auxv.h-failure.patch b/package/libnss/0003-Bug-1602743-Fix-PowerPc-build-sys-auxv.h-failure.patch
+similarity index 100%
+rename from package/libnss/0002-Bug-1602743-Fix-PowerPc-build-sys-auxv.h-failure.patch
+rename to package/libnss/0003-Bug-1602743-Fix-PowerPc-build-sys-auxv.h-failure.patch
+diff --git a/package/libnss/0004-Bug-1603398-Fix-nsinstall.c-build-failure-on-RHEL-7.patch b/package/libnss/0004-Bug-1603398-Fix-nsinstall.c-build-failure-on-RHEL-7.patch
+new file mode 100644
+index 0000000000..631d97d11f
+--- /dev/null
++++ b/package/libnss/0004-Bug-1603398-Fix-nsinstall.c-build-failure-on-RHEL-7.patch
+@@ -0,0 +1,29 @@
++From 1ba8516045bc8a13fd72e1a85206a04b29d96758 Mon Sep 17 00:00:00 2001
++From: Giulio Benetti <giulio.benetti@benettiengineering.com>
++Date: Thu, 12 Dec 2019 12:57:29 +0100
++Subject: [PATCH] Bug 1603398 - Fix nsinstall.c build failure on RHEL 7
++
++In Linux.mk -DLINUX and -Dlinux must be passed to DEFINES, not
++OS_CFLAGS.
++
++Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
++---
++ nss/coreconf/Linux.mk | 2 +-
++ 1 file changed, 1 insertion(+), 1 deletion(-)
++
++diff --git a/nss/coreconf/Linux.mk b/nss/coreconf/Linux.mk
++index d07f8a3c5..4b45a6054 100644
++--- a/nss/coreconf/Linux.mk
+++++ b/nss/coreconf/Linux.mk
++@@ -132,7 +132,7 @@ endif
++ 
++ OS_CFLAGS		= $(DSO_CFLAGS) $(OS_REL_CFLAGS) $(ARCHFLAG) -pipe -ffunction-sections -fdata-sections -DHAVE_STRERROR
++ ifeq ($(KERNEL),Linux)
++-	OS_CFLAGS	+= -DLINUX -Dlinux
+++	DEFINES		+= -DLINUX -Dlinux
++ endif
++ OS_LIBS			= $(OS_PTHREAD) -ldl -lc
++ 
++-- 
++2.20.1
++
+diff --git a/package/libnss/0005-Bug-1606119-Fix-PPC-HW-Crypto-build-failure.patch b/package/libnss/0005-Bug-1606119-Fix-PPC-HW-Crypto-build-failure.patch
+new file mode 100644
+index 0000000000..03ca25edf7
+--- /dev/null
++++ b/package/libnss/0005-Bug-1606119-Fix-PPC-HW-Crypto-build-failure.patch
+@@ -0,0 +1,36 @@
++From ebf185f8e48b5aec622dc949cef1b19b0a7669ef Mon Sep 17 00:00:00 2001
++From: Giulio Benetti <giulio.benetti@benettiengineering.com>
++Date: Wed, 1 Jan 2020 12:54:45 +0100
++Subject: [PATCH] Bug 1606119 - Fix PPC HW Crypto build failure
++
++All Altivec *_be() functions are supported from gcc version 8.x not 5.x
++so modify gcc version check that at the moment cause build failure due
++to missing Altivec *_be() functions.
++
++Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
++Upstream issue: https://bugzilla.mozilla.org/show_bug.cgi?id=1606119
++---
++ nss/lib/freebl/gcm.h | 4 ++--
++ 1 file changed, 2 insertions(+), 2 deletions(-)
++
++diff --git a/nss/lib/freebl/gcm.h b/nss/lib/freebl/gcm.h
++index 571b9ec55..aa4dee824 100644
++--- a/nss/lib/freebl/gcm.h
+++++ b/nss/lib/freebl/gcm.h
++@@ -41,11 +41,11 @@
++ #endif
++ 
++ /*
++- * PPC CRYPTO requires at least gcc 5 or clang. The LE check is purely
+++ * PPC CRYPTO requires at least gcc 8 or clang. The LE check is purely
++  * because it's only been tested on LE. If you're interested in BE,
++  * please send a patch.
++  */
++-#if (defined(__clang__) || (defined(__GNUC__) && __GNUC__ >= 5)) && \
+++#if (defined(__clang__) || (defined(__GNUC__) && __GNUC__ >= 8)) && \
++     defined(IS_LITTLE_ENDIAN)
++ #define USE_PPC_CRYPTO
++ #endif
++-- 
++2.20.1
++
+diff --git a/package/libnss/libnss.hash b/package/libnss/libnss.hash
+index d87ad8e3ab..b53fc6d5f0 100644
+--- a/package/libnss/libnss.hash
++++ b/package/libnss/libnss.hash
+@@ -1,4 +1,4 @@
+ # From https://ftp.mozilla.org/pub/security/nss/releases/NSS_3_48_RTM/src/SHA256SUMS
+-sha256	6738094dc4fd63061118a122bf3999a64fe8c7117fc52f6e81c2279181bde71d  nss-3.49.tar.gz
++sha256	3f9c822a86a4e3e1bfe63e2ed0f922d8b7c2e0b7cafe36774b1c627970d0f8ac  nss-3.48.tar.gz
+ # Locally calculated
+ sha256	a20c1a32d1f8102432360b42e932869f7c11c7cdbacf9cac554c422132af47f4  nss/COPYING
+diff --git a/package/libnss/libnss.mk b/package/libnss/libnss.mk
+index 61950ade25..68389d46fc 100644
+--- a/package/libnss/libnss.mk
++++ b/package/libnss/libnss.mk
+@@ -4,7 +4,7 @@
+ #
+ ################################################################################
+ 
+-LIBNSS_VERSION = 3.49
++LIBNSS_VERSION = 3.48
+ LIBNSS_SOURCE = nss-$(LIBNSS_VERSION).tar.gz
+ LIBNSS_SITE = https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_$(subst .,_,$(LIBNSS_VERSION))_RTM/src
+ LIBNSS_DISTDIR = dist
+@@ -68,7 +68,7 @@ define LIBNSS_BUILD_CMDS
+ 		SOURCE_MD_DIR=$(@D)/$(LIBNSS_DISTDIR) \
+ 		DIST=$(@D)/$(LIBNSS_DISTDIR) \
+ 		CHECKLOC= \
+-		$(LIBNSS_BUILD_VARS) NATIVE_FLAGS="$(HOST_CFLAGS) -DLINUX"
++		$(LIBNSS_BUILD_VARS) NATIVE_FLAGS="$(HOST_CFLAGS)"
+ endef
+ 
+ define LIBNSS_INSTALL_STAGING_CMDS