Skip to content

Commit 643f761

Browse files
committed
RDKBACCL-1463: DB and other customized values are overwritten to default without FR after firmware upgrade
Reason for change: Mounting nvram partition in /nvram folder Test procedure: Sanity and FWUpgrade Risks: Low Signed-off-by: Manigandan Gopalakrishnan <Manigandan_Gopalakrishnan@comcast.com>
1 parent 6525423 commit 643f761

7 files changed

Lines changed: 52 additions & 2 deletions

File tree

meta-rdk-mtk-bpir4/recipes-ccsp/ccsp/ccsp-common-library.bbappend

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ include ccsp_common_bananapi.inc
33
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:${THISDIR}/files:"
44
SRC_URI_append = " \
55
file://gwprovapp.conf \
6+
file://mount-nvram.service \
7+
file://mount-nvram.sh \
68
"
79
CFLAGS_aarch64_append = " -Werror=format-truncation=1 "
810

@@ -76,6 +78,10 @@ do_install_append_class-target() {
7678
fi
7779
sed -i '/IsErouterRunningStatus/,/fi/ s/^/#/' ${D}/usr/ccsp/ccspPAMCPCheck.sh
7880
sed -i '/ExecStart=/i ExecStartPre=/usr/bin/start_cron' ${D}/lib/systemd/system/RdkFwUpgradeManager.service
81+
82+
# Mounting nvram partition
83+
install -m 0644 ${WORKDIR}/mount-nvram.service ${D}${systemd_unitdir}/system/
84+
install -m 0777 ${WORKDIR}/mount-nvram.sh ${D}${base_libdir}/rdk/
7985
}
8086

8187

@@ -93,6 +99,7 @@ SYSTEMD_SERVICE_${PN} += "webpa.service"
9399
SYSTEMD_SERVICE_${PN}_remove = " utopia.service"
94100
SYSTEMD_SERVICE_${PN} += " CcspAdvSecuritySsp.service"
95101
SYSTEMD_SERVICE_${PN} += "CcspXdnsSsp.service"
102+
SYSTEMD_SERVICE_${PN} += "mount-nvram.service"
96103

97104
FILES_${PN}_remove_onewifi = "${systemd_unitdir}/system/ccspwifiagent.service"
98105
FILES_${PN}_remove = "${systemd_unitdir}/system/utopia.service"
@@ -108,4 +115,6 @@ FILES_${PN}_append = " \
108115
${systemd_unitdir}/system/parodus.service \
109116
${systemd_unitdir}/system/webpa.service \
110117
${systemd_unitdir}/system/CcspAdvSecuritySsp.service \
118+
${systemd_unitdir}/system/mount-nvram.service \
119+
${base_libdir}/rdk/mount-nvram.sh \
111120
"
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
[Unit]
2-
After=network.target
2+
After=network.target mount-nvram.service
33
Wants=network.target
4+
Requires=mount-nvram.service
45

56
[Service]
67
ExecStart=/usr/bin/gw_prov_utopia
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
[Unit]
2+
Description=Mount nvram partition
3+
Before=gwprovapp.service
4+
5+
[Service]
6+
ExecStart=/bin/sh /lib/rdk/mount-nvram.sh
7+
Restart=on-failure
8+
RestartSec=2
9+
10+
[Install]
11+
WantedBy=multi-user.target
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#!/bin/bash
2+
3+
blkid_output=$(blkid /dev/mmcblk0p9 | grep 'TYPE="ext4"')
4+
5+
echo "blkid_output:$blkid_output" >>/tmp/mount-nvram.log
6+
if [ -z "$blkid_output" ]; then
7+
echo "First boot after flashing SD card -- nvram partition is not formatted." >>/tmp/mount-nvram.log
8+
echo "Formatting nvram partition." >>/tmp/mount-nvram.log
9+
mkfs.ext4 -F /dev/mmcblk0p9
10+
else
11+
echo "Nvram partition already formatted." >>/tmp/mount-nvram.log
12+
fi
13+
14+
mkdir -p /nvram
15+
mount /dev/mmcblk0p9 /nvram
16+
if [ "$?" != "0" ]; then
17+
echo "Mounting nvram partition failed." >>/tmp/mount-nvram.log
18+
exit 1
19+
fi
20+
mkdir -p /nvram/secure
21+
22+
exit 0

meta-rdk-mtk-bpir4/recipes-ccsp/util/utopia.bbappend

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,8 @@ sed -i 's/^\(\$mgmt_wan_httpaccess=\)1/\10/' ${D}${sysconfdir}/utopia/system_def
9696
sed -i 's/^\(\$mgmt_wan_httpsport=\)443/\18181/' ${D}${sysconfdir}/utopia/system_defaults
9797
sed -i '/mgmt_wan_httpaccess/i \$mgmt_wan_httpaccess_ert=1' ${D}${sysconfdir}/utopia/system_defaults
9898

99+
#Mounting nvram
100+
sed -i '/Before=CcspPandMSsp.service/a Requires=mount-nvram.service' ${D}/lib/systemd/system/ApplySystemDefaults.service
99101
}
100102

101103
FILES_${PN} += " \

meta-rdk-mtk-bpir4/recipes-devtools/init-filogic/init-filogic.bbappend

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ do_install_append(){
66
sed -i '/brctl addif brlan0 lan0/d' ${D}${sbindir}/init-bridge.sh
77
fi
88
sed -i '/model/a \
9+
while [ `mount | grep nvram | wc -l` -eq 0 ]; do usleep 500000 ; done; \
910
if [ ! -d /nvram/secure ]; then \
1011
mkdir -p /nvram/secure \
1112
fi \
@@ -22,6 +23,10 @@ if [ $? -eq 0 ];then \
2223
BRLAN_MAC=`cat /nvram/mac_addresses.txt | grep -a brlan0 | cut -d " " -f 2` \
2324
ifconfig brlan0 hw ether $BRLAN_MAC \
2425
fi' ${D}${sbindir}/init-bridge.sh
26+
27+
#Mounting nvram
28+
sed -i '/Before=CcspPandMSsp.service/a Requires=mount-nvram.service' ${D}/lib/systemd/system/init-Lanbridge.service
29+
sed -i 's/utopia.service/mount-nvram.service &/' ${D}/lib/systemd/system/init-Lanbridge.service
2530
}
2631

2732
#ESDK support - Avoid conflict file is installed by both systemd and init-filogic in kirkstone

meta-rdk-mtk-bpir4/recipes-kernel/linux/files/rdkb_cfg/sdmmc.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
CONFIG_EXT4_DEBUG=y
1+
CONFIG_F2FS_FS=n
22
CONFIG_EXT4_ENCRYPTION=y
33
CONFIG_EXT4_FS=y
44
CONFIG_EXT4_FS_POSIX_ACL=y

0 commit comments

Comments
 (0)