<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://ess-wiki.advantech.com.tw/wiki/index.php?action=history&amp;feed=atom&amp;title=OTA_experiment</id>
		<title>OTA experiment - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://ess-wiki.advantech.com.tw/wiki/index.php?action=history&amp;feed=atom&amp;title=OTA_experiment"/>
		<link rel="alternate" type="text/html" href="https://ess-wiki.advantech.com.tw/wiki/index.php?title=OTA_experiment&amp;action=history"/>
		<updated>2026-04-04T11:42:17Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.28.3</generator>

	<entry>
		<id>https://ess-wiki.advantech.com.tw/wiki/index.php?title=OTA_experiment&amp;diff=21083&amp;oldid=prev</id>
		<title>William6.chen: Created page with &quot;== OTA experiment ==   &lt;syntaxhighlight lang=&quot;bash&quot;&gt; #at Linux host  #download flex-installer wget https://www.nxp.com/lgfiles/sdk/lsdk2012/flex-installer &amp;&amp; chmod +x flex-ins...&quot;</title>
		<link rel="alternate" type="text/html" href="https://ess-wiki.advantech.com.tw/wiki/index.php?title=OTA_experiment&amp;diff=21083&amp;oldid=prev"/>
				<updated>2021-09-15T01:47:18Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;== OTA experiment ==   &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt; #at Linux host  #download flex-installer wget https://www.nxp.com/lgfiles/sdk/lsdk2012/flex-installer &amp;amp;&amp;amp; chmod +x flex-ins...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== OTA experiment ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#at Linux host&lt;br /&gt;
&lt;br /&gt;
#download flex-installer&lt;br /&gt;
wget https://www.nxp.com/lgfiles/sdk/lsdk2012/flex-installer &amp;amp;&amp;amp; chmod +x flex-installer &amp;amp;&amp;amp; sudo mv flex-installer /usr/bin&lt;br /&gt;
flex-installer -h&lt;br /&gt;
&lt;br /&gt;
#download flex-builder&lt;br /&gt;
tar xvzf flexbuild_lsdk2012.tgz&lt;br /&gt;
cd flexbuild_lsdk2012/&lt;br /&gt;
source setup.env&lt;br /&gt;
flex-builder -h&lt;br /&gt;
&lt;br /&gt;
#create docker container&lt;br /&gt;
docker run -it --name ota --privileged -v $(pwd):/home/adv/flexbuild_lsdk2012:rw fbubuntu:18.04 /bin/bash&lt;br /&gt;
&lt;br /&gt;
# -----below command are in docker container----------&lt;br /&gt;
cd /home/adv/flexbuild_lsdk2012&lt;br /&gt;
&lt;br /&gt;
#source environment variable&lt;br /&gt;
source setup.env&lt;br /&gt;
&lt;br /&gt;
#先build一次拉code&lt;br /&gt;
flex-builder -i mkfw -m ls1046ardb -b qspi&lt;br /&gt;
&lt;br /&gt;
# clean &lt;br /&gt;
flex-builder clean&lt;br /&gt;
&lt;br /&gt;
# 修改rcw_1800_qspiboot.rcw內容(才認得到eMMC)&lt;br /&gt;
cd /home/adv/flexbuild_lsdk2012/packages/firmware/rcw/ls1046ardb/RR_FFSSPPPH_1133_5559&lt;br /&gt;
vim rcw_1800_qspiboot.rcw&lt;br /&gt;
IIC2_EXT=0&lt;br /&gt;
EVDD_VSEL=0&lt;br /&gt;
&lt;br /&gt;
# 重新build firmware image&lt;br /&gt;
flex-builder -i mkfw -m ls1046ardb -b qspi&lt;br /&gt;
ls -hl build/images/&lt;br /&gt;
&lt;br /&gt;
# generate Ubuntu-base arm64 LSDK&lt;br /&gt;
flex-builder -i mkrfs -r ubuntu:lite -a arm64&lt;br /&gt;
ls -hl build/images/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# kernel image , dtb, distro boot script, flex_linux_&amp;lt;arch&amp;gt;.itb, small ramdiskrfs,etc.&lt;br /&gt;
# Flex-builder automatically builds the dependent images if the are not present.&lt;br /&gt;
flex-builder -i mkbootpartition -a arm64&lt;br /&gt;
ls -hl build/images/&lt;br /&gt;
&lt;br /&gt;
exit&lt;br /&gt;
cd build/images/&lt;br /&gt;
cp firmware_ls1046ardb_uboot_qspiboot.img /tftpboot/&lt;br /&gt;
cp rootfs_lsdk2012_ubuntu_lite_arm64_202109080922.tgz /tftpboot/&lt;br /&gt;
cp bootpartition_LS_arm64_lts_5.4_202109080224.tgz /tftpboot/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#at ls1046ardb Device COM&lt;br /&gt;
#firmware_ls1046ardb_uboot_qspiboot.img 燒入qspi bank1&lt;br /&gt;
&lt;br /&gt;
=&amp;gt; cpld reset&lt;br /&gt;
=&amp;gt; setenv serverip 172.22.31.153&lt;br /&gt;
=&amp;gt; dhcp&lt;br /&gt;
=&amp;gt; ping 172.22.31.153&lt;br /&gt;
=&amp;gt; tftp $load_addr firmware_ls1046ardb_uboot_qspiboot.img&lt;br /&gt;
=&amp;gt; sf probe 0:1&lt;br /&gt;
=&amp;gt; sf erase 0 +$filesize &amp;amp;&amp;amp; sf write $load_addr 0 $filesize&lt;br /&gt;
=&amp;gt; cpld reset altbank&lt;br /&gt;
&lt;br /&gt;
#uboot check emmc&lt;br /&gt;
=&amp;gt; mmcinfo&lt;br /&gt;
=&amp;gt; mmc list&lt;br /&gt;
&lt;br /&gt;
#reboot from qspi bank4 and boot to tiny rfs&lt;br /&gt;
=&amp;gt; run qspi_bootcmd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# download bootpartition and rfs to mytftp folder&lt;br /&gt;
cd /media/&lt;br /&gt;
mkdir mytftp&lt;br /&gt;
cd mytftp&lt;br /&gt;
&lt;br /&gt;
ifconfig fm1-mac9 up&lt;br /&gt;
udhcpc -i fm1-mac9&lt;br /&gt;
ping 172.22.31.153&lt;br /&gt;
&lt;br /&gt;
#---------------------------- lite-----------------------------------------------&lt;br /&gt;
tftp -g -r bootpartition_LS_arm64_lts_5.4_202109080224.tgz 172.22.31.153&lt;br /&gt;
tftp -g -r rootfs_lsdk2012_ubuntu_lite_arm64_202109080922.tgz 172.22.31.153&lt;br /&gt;
# --------------------------------------------------------------------------------&lt;br /&gt;
sync&lt;br /&gt;
&lt;br /&gt;
# format emmc&lt;br /&gt;
flex-installer -i pf -d /dev/mmcblk0&lt;br /&gt;
sync&lt;br /&gt;
&lt;br /&gt;
# lite RFS -p 5P=50M:1G:50M:100M:-1 --rootpart=6 -b&lt;br /&gt;
#After installing successfully, run &amp;quot;setenv devpart_root 6;boot&amp;quot; in U-Boot to boot distro from the specific partition)&lt;br /&gt;
flex-installer -i install -p 5P=50M:1G:50M:100M:-1 -b bootpartition_LS_arm64_lts_5.4_202109080224.tgz -r rootfs_lsdk2012_ubuntu_lite_arm64_202109080922.tgz -d /dev/mmcblk0 --rootpart=6&lt;br /&gt;
sync&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# write ota_flag = 1 to partition 5&lt;br /&gt;
mkdir ota&lt;br /&gt;
mount /dev/mmcblk0p5 ./ota/&lt;br /&gt;
cd ota&lt;br /&gt;
echo &amp;quot;1&amp;quot; &amp;gt; ota_flag&lt;br /&gt;
sync&lt;br /&gt;
reboot&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# switch to qspi bank4 and boot to partition 6&lt;br /&gt;
=&amp;gt; cpld reset altbank&lt;br /&gt;
=&amp;gt; setenv devpart_root 6;boot&lt;br /&gt;
&lt;br /&gt;
#boot into ubuntu lite&lt;br /&gt;
&lt;br /&gt;
ifconfig eth4 up&lt;br /&gt;
dhclient eth4&lt;br /&gt;
apt-get update&lt;br /&gt;
apt-get install vim&lt;br /&gt;
&lt;br /&gt;
# mount emmc&lt;br /&gt;
vim /etc/udev/rules.d/11-sd-mount.rules&lt;br /&gt;
&lt;br /&gt;
#=============================11-sd-mount.rules=========================================&lt;br /&gt;
KERNEL!=&amp;quot;mmcblk0p5&amp;quot;,GOTO=&amp;quot;automount_exit&amp;quot;&lt;br /&gt;
ACTION==&amp;quot;add&amp;quot;, SUBSYSTEM==&amp;quot;block&amp;quot;,RUN+=&amp;quot;/bin/mkdir /mnt/emmc&amp;quot;,RUN+=&amp;quot;/usr/bin/systemd-mount --no-block --automount=yes $devnode /mnt/emmc&amp;quot;&lt;br /&gt;
ACTION==&amp;quot;remove&amp;quot;, RUN+=&amp;quot;/usr/bin/systemd-umount /mnt/emmc&amp;quot;,RUN+=&amp;quot;/bin/rmdir /mnt/emmc&amp;quot;&lt;br /&gt;
LABEL=&amp;quot;automount_exit&amp;quot;&lt;br /&gt;
#========================================================================================&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# reboot and switch to qspi bank4 and boot to partition 6&lt;br /&gt;
reboot&lt;br /&gt;
=&amp;gt; cpld reset altbank&lt;br /&gt;
=&amp;gt; setenv devpart_root 6;boot&lt;br /&gt;
&lt;br /&gt;
# check emmc dir&lt;br /&gt;
ls /mnt/emmc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# add check_ota shell scripts&lt;br /&gt;
&lt;br /&gt;
vim /usr/bin/check_ota.sh&lt;br /&gt;
:set paste&lt;br /&gt;
#--------------below is shell script--------------------------------&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;this is log&amp;quot; &amp;gt; /root/check_ota_log.txt&lt;br /&gt;
count=0&lt;br /&gt;
while true&lt;br /&gt;
do&lt;br /&gt;
  echo ${count} &amp;gt; /root/check_ota_log.txt&lt;br /&gt;
  count=$((count+1))&lt;br /&gt;
  flag=$(cat /mnt/emmc/ota_flag)&lt;br /&gt;
  echo &amp;quot;flag is ${flag}&amp;quot; &amp;gt;&amp;gt; /root/check_ota_log.txt&lt;br /&gt;
  if [ $flag -eq 1 ]&lt;br /&gt;
  then&lt;br /&gt;
    echo &amp;quot;system restart ota&amp;quot; &amp;gt;&amp;gt; /root/check_ota_log.txt&lt;br /&gt;
  else&lt;br /&gt;
    echo &amp;quot;no need to restart for ota&amp;quot; &amp;gt;&amp;gt; /root/check_ota_log.txt&lt;br /&gt;
  fi&lt;br /&gt;
  sleep 1&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
#----------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
chmod 777 /usr/bin/check_ota.sh&lt;br /&gt;
&lt;br /&gt;
# add rc.loacl&lt;br /&gt;
&lt;br /&gt;
vim /etc/rc.local&lt;br /&gt;
#!/bin/sh -e&lt;br /&gt;
check_ota.sh &amp;amp;&lt;br /&gt;
echo &amp;quot;this is rc.local 1&amp;quot;&lt;br /&gt;
echo &amp;quot;this is rc.local 2&amp;quot; &amp;gt; /root/tt.log&lt;br /&gt;
&lt;br /&gt;
# this is very important&lt;br /&gt;
chmod 777 /etc/rc.local&lt;br /&gt;
&lt;br /&gt;
# reboot and switch to qspi bank4 and boot to partition 6&lt;br /&gt;
reboot&lt;br /&gt;
=&amp;gt; cpld reset altbank&lt;br /&gt;
=&amp;gt; setenv devpart_root 6;boot&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#check ota flag log file&lt;br /&gt;
cat /root/check_ota_log.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>William6.chen</name></author>	</entry>

	</feed>