<?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=IoTGateway%2FBSP%2FLinux%2FUbuntu%2FHow_to_Create_Ubuntu_SDcard_Image</id>
		<title>IoTGateway/BSP/Linux/Ubuntu/How to Create Ubuntu SDcard Image - 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=IoTGateway%2FBSP%2FLinux%2FUbuntu%2FHow_to_Create_Ubuntu_SDcard_Image"/>
		<link rel="alternate" type="text/html" href="https://ess-wiki.advantech.com.tw/wiki/index.php?title=IoTGateway/BSP/Linux/Ubuntu/How_to_Create_Ubuntu_SDcard_Image&amp;action=history"/>
		<updated>2026-05-14T13:07:18Z</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=IoTGateway/BSP/Linux/Ubuntu/How_to_Create_Ubuntu_SDcard_Image&amp;diff=19640&amp;oldid=prev</id>
		<title>Winston.huang at 06:26, 2 November 2020</title>
		<link rel="alternate" type="text/html" href="https://ess-wiki.advantech.com.tw/wiki/index.php?title=IoTGateway/BSP/Linux/Ubuntu/How_to_Create_Ubuntu_SDcard_Image&amp;diff=19640&amp;oldid=prev"/>
				<updated>2020-11-02T06:26:12Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 06:26, 2 November 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l32&quot; &gt;Line 32:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 32:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;mkfs.ext4 -F -E offset=$((PSTART*512)) -L ubuntu ${UIMAGE} ${PSECTORS}s&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;mkfs.ext4 -F -E offset=$((PSTART*512)) -L ubuntu ${UIMAGE} ${PSECTORS}s&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== backup &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;reserved &lt;/del&gt;data ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== backup &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;preserved &lt;/ins&gt;data ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l40&quot; &gt;Line 40:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 40:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;mkdir -p $BACKUPDIR $MNT&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;mkdir -p $BACKUPDIR $MNT&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;sudo mount -o ro,offset=$((PSTART*512)) $SDIMAGE $MNT&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;sudo mount -o ro,offset=$((PSTART*512)) $SDIMAGE $MNT&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;sudo tar zcvf $BACKUPDIR/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;reserved&lt;/del&gt;.tgz -C $MNT lib/{modules,firmware} etc/{modprobe.d,modules-load.d,udev}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;sudo tar zcvf $BACKUPDIR/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;preserved&lt;/ins&gt;.tgz -C $MNT lib/{modules,firmware} etc/{modprobe.d,modules-load.d,udev}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;sudo umount $MNT&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;sudo umount $MNT&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l202&quot; &gt;Line 202:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 202:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Processing the new image =&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Processing the new image =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== restore rootfs &amp;amp; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;reserved &lt;/del&gt;data ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== restore rootfs &amp;amp; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;preserved &lt;/ins&gt;data ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l208&quot; &gt;Line 208:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 208:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;sudo mount -o offset=$((PSTART*512)) $UIMAGE $MNT&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;sudo mount -o offset=$((PSTART*512)) $UIMAGE $MNT&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;sudo tar zxvf ${BACKUPDIR}/${UBUNTU_CODENAME}_rootfs.tgz -C $MNT&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;sudo tar zxvf ${BACKUPDIR}/${UBUNTU_CODENAME}_rootfs.tgz -C $MNT&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;sudo tar zxvf ${BACKUPDIR}/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;reserved&lt;/del&gt;.tgz -C $MNT&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;sudo tar zxvf ${BACKUPDIR}/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;preserved&lt;/ins&gt;.tgz -C $MNT&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#//set hostname&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#//set hostname&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Winston.huang</name></author>	</entry>

	<entry>
		<id>https://ess-wiki.advantech.com.tw/wiki/index.php?title=IoTGateway/BSP/Linux/Ubuntu/How_to_Create_Ubuntu_SDcard_Image&amp;diff=19324&amp;oldid=prev</id>
		<title>Winston.huang: Created page with &quot;{{DISPLAYTITLE:How to create Ubuntu 18.04/16.04 SD card image for iMX8/iMX6}}  {| align=&quot;right&quot; |- | __TOC__ |} &lt;!-- --&gt; = Host Prerequisites =  == required packages ==   &lt;syn...&quot;</title>
		<link rel="alternate" type="text/html" href="https://ess-wiki.advantech.com.tw/wiki/index.php?title=IoTGateway/BSP/Linux/Ubuntu/How_to_Create_Ubuntu_SDcard_Image&amp;diff=19324&amp;oldid=prev"/>
				<updated>2020-08-28T02:14:50Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{DISPLAYTITLE:How to create Ubuntu 18.04/16.04 SD card image for iMX8/iMX6}}  {| align=&amp;quot;right&amp;quot; |- | __TOC__ |} &amp;lt;!-- --&amp;gt; = Host Prerequisites =  == required packages ==   &amp;lt;syn...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{DISPLAYTITLE:How to create Ubuntu 18.04/16.04 SD card image for iMX8/iMX6}}&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| __TOC__&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
= Host Prerequisites =&lt;br /&gt;
&lt;br /&gt;
== required packages ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt install binfmt-support qemu-user-static wget gddrescue&lt;br /&gt;
sudo modprobe binfmt_misc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== pre-built yocto image ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
SDIMAGE=5620A1AIM20LIV90140_iMX8X_2020-07-29.img # i.MX8 ROM-5620&lt;br /&gt;
SDIMAGE=3430A1AIM20LIV90107_DualQuad_2020-08-26.img # i.MX6 RSB-3430&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== duplicate the new image ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
read _ PSTART _ PSECTORS _ &amp;lt;&amp;lt;&amp;lt; `fdisk -lu $SDIMAGE | grep &amp;quot;${SDIMAGE}2&amp;quot;`&lt;br /&gt;
UIMAGE=${SDIMAGE/LIV/UIV}&lt;br /&gt;
cp $SDIMAGE $UIMAGE&lt;br /&gt;
mkfs.ext4 -F -E offset=$((PSTART*512)) -L ubuntu ${UIMAGE} ${PSECTORS}s&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== backup reserved data ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
BACKUPDIR=~/${SDIMAGE%%_*}&lt;br /&gt;
MNT=~/mnt&lt;br /&gt;
mkdir -p $BACKUPDIR $MNT&lt;br /&gt;
sudo mount -o ro,offset=$((PSTART*512)) $SDIMAGE $MNT&lt;br /&gt;
sudo tar zcvf $BACKUPDIR/reserved.tgz -C $MNT lib/{modules,firmware} etc/{modprobe.d,modules-load.d,udev}&lt;br /&gt;
sudo umount $MNT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
= Root Filesystem Building =&lt;br /&gt;
&lt;br /&gt;
== set ARM architecture ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ARCH=arm64 # for i.MX8&lt;br /&gt;
ARCH=armhf # for i.MX6&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== set Ubuntu version code name ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
UBUNTU_CODENAME=bionic # for Ubuntu 18.04&lt;br /&gt;
UBUNTU_CODENAME=xenial # for Ubuntu 16.04&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== get the basic rootfs ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ROOTFS=~/ubuntu_${UBUNTU_CODENAME}_${ARCH}&lt;br /&gt;
&lt;br /&gt;
sudo qemu-debootstrap --arch=${ARCH} \&lt;br /&gt;
--variant=buildd \&lt;br /&gt;
--exclude=debfoster ${UBUNTU_CODENAME} ${ROOTFS}&lt;br /&gt;
&lt;br /&gt;
cat &amp;lt;&amp;lt; EOT | sudo tee ${ROOTFS}/etc/apt/sources.list&lt;br /&gt;
deb http://ports.ubuntu.com/ubuntu-ports/ ${UBUNTU_CODENAME} main universe multiverse&lt;br /&gt;
deb http://ports.ubuntu.com/ubuntu-ports/ ${UBUNTU_CODENAME}-updates main universe multiverse&lt;br /&gt;
EOT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== go on in chroot ==&lt;br /&gt;
&lt;br /&gt;
=== enter the chroot ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo mount -t proc proc $ROOTFS/proc&lt;br /&gt;
sudo mount -t sysfs sysfs $ROOTFS/sys&lt;br /&gt;
sudo mount --bind /dev $ROOTFS/dev&lt;br /&gt;
sudo mount --bind /dev/pts $ROOTFS/dev/pts&lt;br /&gt;
&lt;br /&gt;
HOME=/root sudo chroot $ROOTFS /bin/bash --login -i&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== install &amp;amp; configure (base) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
apt clean&lt;br /&gt;
apt update&lt;br /&gt;
&lt;br /&gt;
ln -sf bash /bin/sh&lt;br /&gt;
ln -sf bash.1.gz /usr/share/man/man1/sh.1.gz&lt;br /&gt;
&lt;br /&gt;
export DEBIAN_FRONTEND=noninteractive&lt;br /&gt;
&lt;br /&gt;
apt -y install locales tzdata dialog lsb-release vim&lt;br /&gt;
&lt;br /&gt;
locale-gen &amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
update-locale LANG=en_US.UTF-8 LANGUAGE&lt;br /&gt;
#// or run 'dpkg-reconfigure locales' to set locale&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Aisa/Taipei&amp;quot; &amp;gt; /etc/timezone&lt;br /&gt;
ln -sf /usr/share/zoneinfo/Asia/Taipei /etc/localtime&lt;br /&gt;
#// or run 'dpkg-reconfigure tzdata' to set time zone&lt;br /&gt;
&lt;br /&gt;
apt -y install console-setup whois kmod sudo \&lt;br /&gt;
network-manager iputils-ping iproute2 ifupdown ethtool openssh-client net-tools \&lt;br /&gt;
systemd systemd-sysv parted bsdmainutils mtd-utils pciutils usbutils lshw \&lt;br /&gt;
haveged busybox&lt;br /&gt;
&lt;br /&gt;
NUSER=adv; NID=1000; NPSWD=adv&lt;br /&gt;
groupadd -g $NID $NUSER&lt;br /&gt;
useradd -u $NID -d /home/$NUSER -m -g $NUSER -G adm,sudo,audio,video,plugdev $NUSER&lt;br /&gt;
CRYPT=$(echo $NPSWD | mkpasswd -m sha-512 -s)&lt;br /&gt;
sed -i &amp;quot;s@^$NUSER:[^:]\+:@$NUSER:$CRYPT:@&amp;quot; /etc/shadow&lt;br /&gt;
sed -i &amp;quot;s/^root:[^:]\+:/root::/&amp;quot; /etc/shadow&lt;br /&gt;
&lt;br /&gt;
cat &amp;lt;&amp;lt; &amp;quot;EOT&amp;quot; &amp;gt; /etc/udev/rules.d/50-firmware.rules&lt;br /&gt;
SUBSYSTEM==&amp;quot;firmware&amp;quot;, ACTION==&amp;quot;add&amp;quot;, RUN{program}=&amp;quot;firmware&amp;quot;&lt;br /&gt;
EOT&lt;br /&gt;
&lt;br /&gt;
cat &amp;lt;&amp;lt; &amp;quot;EOT&amp;quot; &amp;gt; /lib/udev/firmware&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
echo 1 &amp;gt; /sys/$DEVPATH/loading&lt;br /&gt;
cat /lib/firmware/$FIRMWARE &amp;gt; /sys/$DEVPATH/data&lt;br /&gt;
if [ $? = 0 ]; then&lt;br /&gt;
    echo 0 &amp;gt; /sys/$DEVPATH/loading&lt;br /&gt;
fi&lt;br /&gt;
EOT&lt;br /&gt;
&lt;br /&gt;
chmod +x /lib/udev/firmware&lt;br /&gt;
&lt;br /&gt;
mkdir -p /etc/systemd/system/systemd-udevd.service.d&lt;br /&gt;
&lt;br /&gt;
cat &amp;lt;&amp;lt; EOT &amp;gt; /etc/systemd/system/systemd-udevd.service.d/override.conf&lt;br /&gt;
[Service]&lt;br /&gt;
MountFlags=shared&lt;br /&gt;
EOT&lt;br /&gt;
&lt;br /&gt;
sed -i '/ExecStart.*/i Environment=&amp;quot;TERM=xterm-color&amp;quot;' /lib/systemd/system/serial-getty@.service&lt;br /&gt;
sed -i 's/&amp;quot;$/ --data=16&amp;quot;/' /etc/default/haveged&lt;br /&gt;
chmod -x /sbin/hwclock &amp;amp;&amp;amp; mv /sbin/hwclock{,.util-linux} &amp;amp;&amp;amp; ln -s /bin/busybox /sbin/hwclock&lt;br /&gt;
touch /etc/NetworkManager/conf.d/10-globally-managed-devices.conf&lt;br /&gt;
&lt;br /&gt;
cp -a /etc/skel/.bashrc ~/&lt;br /&gt;
cp -a /etc/skel/.profile ~/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== install &amp;amp; configure (xfce4) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt -y install xfce4 xfce4-goodies lightdm xterm&lt;br /&gt;
&lt;br /&gt;
rm /usr/share/lightdm/lightdm.conf.d/50-unity-greeter.conf&lt;br /&gt;
&lt;br /&gt;
cat &amp;lt;&amp;lt; EOT &amp;gt; /usr/share/lightdm/lightdm.conf.d/50-xfce-greeter.conf&lt;br /&gt;
[SeatDefaults]&lt;br /&gt;
greeter-session=unity-greeter&lt;br /&gt;
user-session=xfce&lt;br /&gt;
EOT&lt;br /&gt;
&lt;br /&gt;
cat &amp;lt;&amp;lt; EOT &amp;gt; /etc/lightdm/lightdm.conf&lt;br /&gt;
[Seat:*]&lt;br /&gt;
autologin-guest=false&lt;br /&gt;
autologin-user=adv&lt;br /&gt;
autologin-user-timeout=0&lt;br /&gt;
EOT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== leave the chroot ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
history -c&lt;br /&gt;
logout&lt;br /&gt;
&lt;br /&gt;
sudo umount -lf $ROOTFS/dev/pts&lt;br /&gt;
sudo umount -lf $ROOTFS/dev&lt;br /&gt;
sudo umount $ROOTFS/sys&lt;br /&gt;
sudo umount $ROOTFS/proc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== backup the rootfs ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#// use pre-defined ARCH as hostname&lt;br /&gt;
echo $ARCH | sudo tee $ROOTFS/etc/hostname&lt;br /&gt;
echo -e &amp;quot;127.0.0.1\tlocalhost\n127.0.1.1\t$ARCH&amp;quot; | sudo tee $ROOTFS/etc/hosts&lt;br /&gt;
&lt;br /&gt;
sudo tar zcvf ${BACKUPDIR}/${UBUNTU_CODENAME}_rootfs.tgz -C ${ROOTFS} .&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
= Processing the new image =&lt;br /&gt;
&lt;br /&gt;
== restore rootfs &amp;amp; reserved data ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo mount -o offset=$((PSTART*512)) $UIMAGE $MNT&lt;br /&gt;
sudo tar zxvf ${BACKUPDIR}/${UBUNTU_CODENAME}_rootfs.tgz -C $MNT&lt;br /&gt;
sudo tar zxvf ${BACKUPDIR}/reserved.tgz -C $MNT&lt;br /&gt;
&lt;br /&gt;
#//set hostname&lt;br /&gt;
HOST=rsb-3430 # specify the actual hostname&lt;br /&gt;
echo $HOST | sudo tee $MNT/etc/hostname&lt;br /&gt;
echo -e &amp;quot;127.0.0.1\tlocalhost\n127.0.1.1\t$HOST&amp;quot; | sudo tee $MNT/etc/hosts&lt;br /&gt;
&lt;br /&gt;
sudo umount $MNT&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== flash image to SD device ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
SD_DEVICE=/dev/sdh #// specify the actual SD device&lt;br /&gt;
sudo umount ${SD_DEVICE}*&lt;br /&gt;
sudo ddrescue -D -f ${UIMAGE} ${SD_DEVICE}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Winston.huang</name></author>	</entry>

	</feed>