20200304_jeffrey - silenceuncrio/diary GitHub Wiki

0900

M350-C(SDK10.0.0) - misc - [60%] 利用 ng-include 整理 status page


m350-c(develop) - refactoring status page - wan dns pannel(s)

commit 539c84bac3df5880e225c04bfa1c360195cd425b
Refs: [develop], {origin/develop}
Author: jeffrey <[email protected]>
Date:   Wed Mar 4 10:03:19 2020 +0800

    refactoring status page - wan dns pannel(s)

 proscend/prosrc/webcgi/status.c                    |  33 +++
 proscend/prosrc/www/app/feature/status.js          |  22 +-
 .../www/app/feature/status_pannel_wan_dns.html     |  23 ++
 .../app/feature/status_pannel_wan_dns_second.html  |  23 ++
 proscend/prosrc/www/app/locale-en.json             |  16 +-
 proscend/prosrc/www/app/locale-fr.json             |  16 +-
 proscend/prosrc/www/app/locale-zh-tw.json          |   6 +-
 .../prosrc/www/src/app/feature/status.html.src     | 233 +++------------------
 8 files changed, 139 insertions(+), 233 deletions(-)

m350-c(develop) - refactoring status page - apn1/apn2 pannel(s)

commit 8af7c55f69664bef87c7ed6d4b7d56ff3a9a1564
Refs: [develop], {origin/develop}
Author: jeffrey <[email protected]>
Date:   Wed Mar 4 11:19:50 2020 +0800

    refactoring status page - apn1/apn2 pannel(s)

 proscend/prosrc/www/app/feature/status.js          |  65 ++-
 .../prosrc/www/app/feature/status_pannel_apn1.html |  54 +++
 .../prosrc/www/app/feature/status_pannel_apn2.html |  54 +++
 .../prosrc/www/src/app/feature/status.html.src     | 434 ++-------------------
 4 files changed, 199 insertions(+), 408 deletions(-)

1130

M350-C(SDK10.0.0) - misc - [0%] Management > Administration 可以 toggle password visibility

1330

m350-c(develop) - give the ability to toggle password visibility at 'Management > Administration' page

commit 074ce310e84ae2eb27df1ac877d8d17fe9072f30
Refs: [develop], {origin/develop}
Author: jeffrey <[email protected]>
Date:   Wed Mar 4 13:28:24 2020 +0800

    give the ability to toggle password visibility at 'Management > Administration' page

 proscend/prosrc/www/app/feature/administration.js  |  92 ++++++++++++
 .../www/src/app/feature/administration.html.src    | 161 +++++++++++++++++----
 2 files changed, 227 insertions(+), 26 deletions(-)

1345

M350-C(SDK10.0.0) - misc - [0%] WAN > Ethernet 可以 toggle password visibility

m350-c(develop) - give the ability to toggle password visibility at 'WAN > Ethernet' page

commit 4aed7169020e6617491f3e2306895c2e1fc6cf76
Refs: [develop], {origin/develop}
Author: jeffrey <[email protected]>
Date:   Wed Mar 4 13:53:09 2020 +0800

    give the ability to toggle password visibility at 'WAN > Ethernet' page

 proscend/prosrc/www/app/feature/wanEthernet.html | 24 ++++++++++++++++++------
 proscend/prosrc/www/app/feature/wanEthernet.js   | 20 ++++++++++++++++++++
 2 files changed, 38 insertions(+), 6 deletions(-)

1415

m350-c(develop) - update Font Awesome from version 4.6.3 to 5.12.1

some care should be taken

  • fa-external-link to fa-external-link-alt
commit 36076b57d87616957a4d8a860355429e43ffc3c2
Refs: [develop], {origin/develop}
Author: jeffrey <[email protected]>
Date:   Wed Mar 4 14:12:47 2020 +0800

    update Font Awesome from version 4.6.3 to 5.12.1

    some care should be taken
    - fa-external-link to fa-external-link-alt

 proscend/prosrc/www/src/menu.html.src | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Font Awesome 升級造成的影響

細心點就可以掃完

1515

M300 - issue - [0%] 0000939: on M300-TXG, if upgrade fw from 1.77 to 2.04, DUT can't show bootloader version, image MCSV, active partition

使用以下 mfgtool 燒錄

  • M301-TG_016800001772E76A_mfgtools.zip

開機紀錄 uboot 訊息

U-Boot 2015.04imx_v2015.04_4.1.15_1.2.0_ga+gede7538 (Feb 22 2019 - 09:22:37)

CPU:   Freescale i.MX6UL rev1.1 at 396 MHz
CPU:   Temperature 37 C
Reset cause: POR
Board: MX6UL 14x14 EVK
I2C:   ready
DRAM:  512 MiB
turn on the IO control power
turn on sys led
reset Ethernet 1
reset Ethernet 2
reset Mobile
force_idle_bus: sda=0 scl=0 sda.gp=0x1d scl.gp=0x1c
MMC:   FSL_SDHC: 0, FSL_SDHC: 1
*** Warning - bad CRC, using default environment
...
bash-4.3# cat /tmp/etc/sysinfo.txt
BOOTLOADER_VER=1.0
MAC=random
HW_MCSV=016800001772E76A
SERIALNO=NA
APP_PRIMARY=a
bash-4.3#
bash-4.3# fw_printenv
app_1=a
app_2=b
app_choose=echo App Choose;if test ${no_good} = ".xx";then echo Replace App 1; run app_replace; setenv no_good .;else echo Run App 1;fi
app_replace=echo App Replace;if test ${app_1} = a;then echo App 1 from dual image a to b; setenv app_1 b; setenv app_2 a;else echo App 1 from dual image b to a; setenv app_1 a; setenv app_2 b;fi
baudrate=115200
bootargs=console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw
bootargs_a=echo bootargs dual image a;setenv bootargs console=${console},${baudrate} root=/dev/mmcblk1p2 rootwait rw
bootargs_b=echo bootargs dual image b;setenv bootargs console=${console},${baudrate} root=/dev/mmcblk1p3 rootwait rw
bootcmd=run bootcmd_emmc_v1.0
bootcmd_emmc_v1.0=echo bootcmd_emmc_v1.0;mmc dev ${mmcdev};mmc rescan;run app_choose;run bootargs_${app_1};run fatload_${app_1};setenv no_good ${no_good}x;saveenv;bootz ${loadaddr} - ${fdt_addr}
bootcmd_mfg=run mfgtool_args;bootz ${loadaddr} ${initrd_addr} ${fdt_addr};
bootdelay=0
bootloader_ver=1.0
console=ttymxc0
ethact=FEC1
ethprime=FEC
fatload_a=echo fatload dual image a;fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} zImage_a;fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} imx6ul-14x14-evk_a.dtb;
fatload_b=echo fatload dual image b;fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} zImage_b;fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} imx6ul-14x14-evk_b.dtb;
fdt_addr=0x83000000
fdt_high=0xffffffff
filesize=7180
initrd_addr=0x83800000
initrd_high=0xffffffff
loadaddr=0x80800000
mfgtool_args=setenv bootargs console=${console},${baudrate} rdinit=/linuxrc g_mass_storage.stall=0 g_mass_storage.removable=1 g_mass_storage.file=/fat g_mass_storage.ro=1 g_mass_storage.idVendor=0x066F g_mass_storage.idProduct=0x37FF g_mass_storage.iSerialNumber="" clk_ignore_unused
mmcautodetect=yes
mmcdev=1
mmcpart=1
mmcroot=/dev/mmcblk1p2 rootwait rw
uboot_env_ver=emmc_v1.0
hw_mcsv=016800001772E76A
serialno=NA
no_good=.
bash-4.3#

M300 用 tftp 從 CP 拉下述 firmware

  • ICR-213PGG_v2.04_0168007120430E23.img
bash-4.3# FirmwareUpgrade.sh /tmp/ICR-213PGG_v2.04_0168007120430E23.img
emmc: 100
cfile: 0

Upgrading the firmware for 'eMMC' storage memory ...

Init the context for upgrading the firmware ...
running dual image is a
Init the context for upgrading the firmware succeeded

Extract the tared firmware ...
tar -C /tmp -xf /tmp/ICR-213PGG_v2.04_0168007120430E23.img
tar: firmware/zImage: time stamp 2020-02-27 06:26:15 is 30237824.596080875 s in the future
tar: firmware/u-boot-m300e.imx: time stamp 2020-02-27 06:26:13 is 30237822.572289625 s in the future
tar: firmware/mcsv.enc: time stamp 2020-02-27 06:26:15 is 30237824.571639375 s in the future
tar: firmware/zImage-imx6ul-14x14-evk-usb-certi.dtb: time stamp 2020-02-27 06:26:15 is 30237824.570863792 s in the future
tar: firmware/firmware_patch.enc: time stamp 2020-02-27 06:26:15 is 30237824.570350792 s in the future
tar: firmware/zImage-imx6ul-14x14-evk-csi.dtb: time stamp 2020-02-27 06:26:15 is 30237824.569551042 s in the future
tar: firmware/zImage-imx6ul-14x14-evk.dtb: time stamp 2020-02-27 06:26:15 is 30237824.568639708 s in the future
tar: firmware/rootfs.tar.bz2.enc: time stamp 2020-02-27 06:26:15 is 30237823.981309875 s in the future
tar: firmware/zImage-imx6ul-14x14-evk-btwifi.dtb: time stamp 2020-02-27 06:26:15 is 30237823.980314333 s in the future
tar: firmware/firmware.md5: time stamp 2020-02-27 06:26:15 is 30237823.979807042 s in the future
tar: firmware: time stamp 2020-02-27 06:26:15 is 30237823.979522542 s in the future
Extract the tared firmware succeeded

MD5 sums check ...
firmware.md5 exist, read MD5 sums from it and check them
MD5 sums check succeeded

MCSV check ...
mcsv.enc exist, decrypt it and check with hardware MCSV
decrypt mcsv.en
software MCSV: 0168007120430E23
software MCSV-MMMM: 0168
software MCSV-CCCC: 0071
hardware MCSV: 016800001772E76A
hardware MCSV-MMMM: 0168
hardware MCSV-CCCC: 0000
Hardware customer ID is '0000' or '0001'
Software Customer ID is not '0000' or '0001'
Allow to upgrade
Reject other Customer ID
MCSV check succeeded

Burn the kernel to eMMC ...
cp /tmp/firmware/zImage /tmp/mmc_p1/zImage_b
Burn the kernel to eMMC succeeded

Burn the dtb to eMMC ...
cp /tmp/firmware/zImage-imx6ul-14x14-evk.dtb /tmp/mmc_p1/imx6ul-14x14-evk_b.dtb
Burn the dtb to eMMC succeeded

Get rootfs from encrypted rootfs.tar.bz2.enc ...
rootfs.tar.bz2.enc exist, decrypt it to rootfs.tar.bz2
decrypt rootfs.tar.bz2.enc
openssl des3 -d -salt -in rootfs.tar.bz2.enc -out rootfs.tar.bz2 -k 2wsx#EDC
Get rootfs from encrypted rootfs.tar.bz2.enc succeeded

Burn the rootfs to eMMC ...
rm -rf /tmp/mmc_p3/*
writting rootfs... please wait
tar -jxvm -C /tmp/mmc_p3 -f /tmp/firmware/rootfs.tar.bz2
Total write: 3654, temp proportion: 60
Writting 10/3654 (0, 30)
Writting 20/3654 (0, 30)
...
Writting 3650/3654 (59, 89)
Burn the rootfs to eMMC succeeded
burn_rootfs done

Replace current primary application

Addtional patch for firmware upgrade ...
firmware_patch.enc exist, decrypt it and execute it
decrypt firmware_patch.enc
patch for eMMC storage memory ...
access boot partition 1
write U-Boot to sd card
710+0 records in
710+0 records out
re-enable read-only access
patch for eMMC storage memory succeeded

Addtional patch for firmware upgrade succeeded

Upgrading the firmware for 'eMMC' storage memory succeeded

firmware upgrade shell script succeeded
finished
bash-4.3#

從 console 可以看到有作 uboot 的燒錄

直接在 shell 下 reboot

可以看到 uboot 的確更新了

U-Boot 2015.04imx_v2015.04_4.1.15_1.2.0_ga+gede7538 (Feb 27 2020 - 09:39:20)

CPU:   Freescale i.MX6UL rev1.1 at 396 MHz
CPU:   Temperature 50 C
Reset cause: WDOG
Board: MX6UL 14x14 EVK
I2C:   ready
DRAM:  512 MiB
turn on the IO control power
turn on sys led
reset Ethernet 1
reset Ethernet 2
reset Mobile
MMC:   FSL_SDHC: 0, FSL_SDHC: 1
...

從 /tmp/etc/sysinfo.txt 就可以看出問題

bash-4.3# cat /tmp/etc/sysinfo.txt
BOOTLOADER_VER=NA
MAC=random
HW_MCSV=0168007120430E23
SERIALNO=NA
APP_PRIMARY=
DUAL_IMAGE_A_MCSV=NA
DUAL_IMAGE_B_MCSV=NA
bash-4.3#

當下的 boot env

bash-4.3# fw_printenv
Cannot open /dev/mtd1: No such file or directory
bash-4.3# 

完全意料之外的錯誤

當下的 /etc/fw_env.config 是錯的

bash-4.3# cat /etc/fw_env.config
#
# use NAND Flash as storage memory
#

# device name   Device offset   Env. size       sector size
/dev/mtd1       0x00000000      0x00100000      0x00020000
bash-4.3#

rc.local 也是錯的

bash-4.3# cat /etc/rc.local
#!/bin/sh
#
# rc.local
#
# use NAND Flash as storage memory
#


MODEMFW_UPGRADE="/etc/icos/modemfw/modemupgrade.ini"
MODEMFW_DEBUG="/etc/icos/modemfw/modemupgrade.dbg"

...

/usr/sbin/icos/FirmwareUpgrade.sh 也是錯的

bash-4.3# cat /usr/sbin/icos/FirmwareUpgrade.sh
#!/bin/bash
#
# FirmwareUpgrade.sh
#
# use NAND Flash as storage memory
#

source /usr/sbin/icos/FirmwareUpgradeAPI.sh
...

就是說 M300/proscend/memory_fs/emmc 沒被套用到

emmc 的 firmware 裡面反而套用到 M300/proscend/memory_fs/nandflash


快速開關機兩次回到 M301-TG_016800001772E76A_mfgtools.zip

這次用 tftp 拉 M301-TG_v2.03_0168000020330E18.img - generic v2.03 版

...

1700

找到 root cause

M300(release/v2.04) - correct the ADVICE emmc profile - PROSRC_EMMC=y

commit ad0941270d6490cd9ad161fa15bad2f3d69fbdbe
Refs: [release/v2.04], {origin/release/v2.04}
Author: jeffrey <[email protected]>
Date:   Wed Mar 4 16:50:12 2020 +0800

    correct the ADVICE emmc profile - PROSRC_EMMC=y
    - or the memory_fs will use nandflash not emmc

 proscend/mconfig/configs/M300E/5_ADVICE/defconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

切換到 VMware jbox

使用下述 command 來 build

user@f14571e79bb2:~$ ./build.sh -d -f M300E/5_ADVICE

得到 ICR-213PGG_v2.04_0168007120430E70.img

MCSV: 0168007120430E70
cp: cannot stat 'images/m300e.ubi.img': No such file or directory
profile after run build: M300E/5_ADVICE
key: M300E_ADVICE, value: success
Copy images from build_small/artifact/ to test
build_small/artifact/uncategorized/ICR-213PGG_v2.04_0168007120430E70.img, 0168007120430E70
rootfs.tar.bz2.enc exist, decrypt it to rootfs.tar.bz2
decrypt rootfs.tar.bz2.enc
extract rootfs.tar.bz2 to rootfs
The rootfs/usr/sbin/icos/test.sh should be executable
key: build_small/artifact/uncategorized/ICR-213PGG_v2.04_0168007120430E70.img, value: 1
user@f14571e79bb2:~$

直接解開該 image 驗證 /etc/rc.local 的正確性 - 正確

➜  tmp tar -xf ICR-213PGG_v2.04_0168007120430E70.img
➜  tmp cd firmware
➜  firmware openssl des3 -d -salt -in rootfs.tar.bz2.enc -out rootfs.tar.bz2 -k 2wsx#EDC
➜  firmware tar -jxvm -f rootfs.tar.bz2
...
➜  firmware cat ./etc/rc.local | grep eMMC -A3 -B3
#
# rc.local
#
# use eMMC as storage memory
#


➜  firmware

再從 1.77 的 generic 透過 web ui 作 upgrade - PASS

root@Hardened Cellular Router:~# cat /tmp/etc/sysinfo.txt
BOOTLOADER_VER=1.0
MAC=random
HW_MCSV=0168007120430E70
SERIALNO=NA
APP_PRIMARY=b
DUAL_IMAGE_A_MCSV=NA
DUAL_IMAGE_B_MCSV=0168007120430E70
root@Hardened Cellular Router:~#