<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-37562281</id><updated>2025-03-05T01:08:46.849+08:00</updated><category term="Android"/><category term="OSX"/><category term="Linux"/><category term="mac"/><category term="Windows 8"/><category term="iphone"/><category term="repo"/><category term="ubuntu"/><category term="在一個對網路不友善的環境中"/><category term="Metro"/><category term="Window"/><category term="command line"/><category term="git"/><category term="11.10"/><category term="3g modem"/><category term="Apple Remote. keymap"/><category term="BIOS device name"/><category term="Device Manager"/><category term="EDK2"/><category term="Exchange"/><category term="FolderPicker"/><category term="ICS"/><category term="MOF"/><category term="Mofcomp"/><category term="Monitor"/><category term="NEO"/><category term="OpenCL"/><category term="OpenGrok"/><category term="OpenVINO"/><category term="Outlook"/><category term="Remote"/><category term="UEFI"/><category term="USB"/><category term="Ubun"/><category term="UnixPkg"/><category term="VMS"/><category term="VS"/><category term="Vibrator"/><category term="VirtualBox"/><category term="Vista"/><category term="Visual Studio"/><category term="Windows"/><category term="XBMC"/><category term="chroot"/><category term="clear"/><category term="cpio"/><category term="cygwin"/><category term="default-display-manager"/><category term="dns"/><category term="dscl"/><category term="dvtm"/><category term="envsetup.sh"/><category term="find"/><category term="gcal"/><category term="gcaldaemon"/><category term="gdm"/><category term="google"/><category term="grub"/><category term="ical"/><category term="in_addr"/><category term="in_addr_t"/><category term="init"/><category term="init.rc"/><category term="initramfs"/><category term="interface builder"/><category term="ip"/><category term="ipconfig"/><category term="ipheth"/><category term="lock"/><category term="mboot"/><category term="meld"/><category term="multiboot"/><category term="pidof"/><category term="port"/><category term="python"/><category term="rar"/><category term="schroot"/><category term="shell"/><category term="spreadsheet"/><category term="squashfs-tools"/><category term="ssh"/><category term="ssh_config"/><category term="sync"/><category term="tap"/><category term="tar"/><category term="tethering"/><category term="tun"/><category term="tunnelblick"/><category term="unyaffs"/><category term="yaffs"/><category term="zcat"/><title type='text'>nEO:zOnE</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://wongchiachen.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://wongchiachen.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>69</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-37562281.post-2794615660210786</id><published>2020-03-09T16:00:00.004+08:00</published><updated>2020-03-09T16:02:04.513+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="NEO"/><category scheme="http://www.blogger.com/atom/ns#" term="OpenCL"/><category scheme="http://www.blogger.com/atom/ns#" term="OpenVINO"/><title type='text'>Use OpenCL interoperability with OpenVINO</title><content type='html'>&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;1. Install Intel NEO driver :&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;$ cd&amp;nbsp;/opt/intel/openvino/install_dependencies&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;$ sudo -E ./install_NEO_OCL_driver.sh&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;2. Check if OCL driver ready&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;$ clinfo -l&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;Platform #0: Intel(R) OpenCL HD Graphics&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;



&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;`--
Device #0: Intel(R) Gen9 HD Graphics NEO&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;2. Check if OCL driver ready&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;export environment variables :&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span lang=&quot;EN-US&quot;&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;$ export
LIBVA_DRIVERS_PATH=/opt/intel/mediasdk/lib64&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;$ export LIBVA_DRIVER_NAME=iHD&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;-webkit-text-stroke-width: 0px; color: black; font-family: &amp;quot;Times New Roman&amp;quot;; font-size: medium; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;Code&quot; style=&quot;-webkit-text-stroke-width: 0px; color: black; font-family: &amp;quot;Times New Roman&amp;quot;; font-size: medium; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; margin: 0px; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;Or source script directly:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot; style=&quot;-webkit-text-stroke-width: 0px; color: black; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; margin: 0px; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;$ . /etc/profile.d/intel-mediasdk.sh&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;$ /opt/intel/mediasdk/bin/vainfo --display drm --device /dev/dri/renderD128&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;libva info: VA-API version 1.4.1&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;libva info: va_getDriverName() returns 0&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;libva info: User requested driver &#39;iHD&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;libva info: Trying to open /opt/intel/mediasdk/lib64/iHD_drv_video.so&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;libva info: Found init function __vaDriverInit_1_4&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;libva info: va_openDriver() returns 0&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;vainfo: VA-API version: 1.4 (libva 2.4.1)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;vainfo: Driver version: Intel iHD driver - 19.1.0.git_42f6f23_2019-04-23&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;vainfo: Supported profile and entrypoints&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; VAProfileNone&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: VAEntrypointVideoProc&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; VAProfileNone&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: VAEntrypointStats&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; VAProfileMPEG2Simple&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : VAEntrypointVLD&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; VAProfileMPEG2Simple&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : VAEntrypointEncSlice&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ...&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;3. Download OpenCL C headers :&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;$ sudo -E apt install opencl-c-headers&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;$ sudo cp /usr/include/CL/cl_va_api_media_sharing_intel.h /usr/include/CL/va_ext.h&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;4. Download OpenCV source from&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;https://github.com/opencv/opencv/archive/4.2.0-openvino.zip, and config cmake to build&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;$ mkdir build &amp;amp;&amp;amp; cd build&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;$ cmake -DWITH_VA_INTEL=ON \&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -DBUILD_EXAMPLES=ON \&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -DVA_INTEL_IOCL_ROOT=/usr/include
\&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -DVA_INCLUDE_DIR=/opt/intel/mediasdk/include
\&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -DVA_INTEL_LIBRARIES= &quot;/opt/intel/mediasdk/lib64/libva.so;/opt/intel/mediasdk/lib64/libva-drm.so&quot;
\&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;-DVA_LIBRARIES= &quot;/opt/intel/mediasdk/lib64/libva.so;/opt/intel/mediasdk/lib64/libva-drm.so&quot;
..&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;













&lt;/span&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;$ make -j `nproc`&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;5. Test interop&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;Test with
interop enabled:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;$ ./bin/example_va_intel_va_intel_interop
../samples/data/HappyFish.jpg on_orig.jpg on_blur.jpg&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;libva info: VA-API version 1.4.1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;libva info: va_getDriverName() returns 0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;libva info: User requested driver &#39;iHD&#39;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;libva info: Trying to open /opt/intel/mediasdk/lib64/iHD_drv_video.so&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;libva info: Found init function __vaDriverInit_1_4&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;libva info: va_openDriver() returns 0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;VA display opened successfully&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;Interop ON : processing time, msec: 1.27697&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;Test with
interop disabled (fallback):&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;$ ./bin/example_va_intel_va_intel_interop \&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -f
../samples/data/HappyFish.jpg off_orig.jpg off_blur.jpg&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;libva info: VA-API version 1.4.1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;libva info: va_getDriverName() returns 0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;libva info: User requested driver &#39;iHD&#39;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;libva info: Trying to open /opt/intel/mediasdk/lib64/iHD_drv_video.so&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;libva info: Found init function __vaDriverInit_1_4&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;libva info: va_openDriver() returns 0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;VA display opened successfully&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;b&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;Interop OFF: processing time, msec: 9.83819&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;Check libraries dependence :&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;$ ldd bin/example_va_intel_va_intel_interop &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; linux-vdso.so.1
(0x00007ffe9dca3000)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; libpthread.so.0 =&amp;gt;
/lib/x86_64-linux-gnu/libpthread.so.0 (0x00007efc03690000)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;libva.so.2 =&amp;gt;&lt;/b&gt;
&lt;b&gt;/opt/intel/mediasdk/lib64/libva.so.2&lt;/b&gt; (0x00007efc0346d000)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;







&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;Code&quot;&gt;
&lt;span lang=&quot;EN-US&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;libva-drm.so.2
=&amp;gt;&lt;/b&gt; &lt;b&gt;/opt/intel/mediasdk/lib64/libva-drm.so.2&lt;/b&gt; (0x00007efc0326a000)&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;Reference :&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif;&quot;&gt;&lt;a href=&quot;https://software.intel.com/en-us/articles/tutorial-opencl-interoperability-with-video-acceleration-api-on-linux-os&quot;&gt;https://software.intel.com/en-us/articles/tutorial-opencl-interoperability-with-video-acceleration-api-on-linux-os&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://wongchiachen.blogspot.com/feeds/2794615660210786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/37562281/2794615660210786' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/2794615660210786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/2794615660210786'/><link rel='alternate' type='text/html' href='http://wongchiachen.blogspot.com/2020/03/use-opencl-interoperability-with.html' title='Use OpenCL interoperability with OpenVINO'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37562281.post-620107309864733485</id><published>2018-09-04T15:46:00.000+08:00</published><updated>2018-09-04T15:50:54.903+08:00</updated><title type='text'>Patch and build kernel</title><content type='html'>&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;## Install kernel build dependencies&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;apt-get -y install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc g++&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;## D&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;ownload kernel source &amp;amp; unpack&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.4.tar.xz&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;tar -xJf linux-4.4.tar.xz&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;## Apply kernel patches, modify configs&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;cp /opt/intel/mediasdk/opensource/patches/kmd/4.4/intel-kernel-patches.tar.bz2 .&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;tar -xvjf intel-kernel-patches.tar.bz2&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;cd linux-4.4&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;for i in ../intel-kernel-patches/*.patch; do patch -p1 &amp;lt; $i; done&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;cp /boot/config-`uname -r` .config&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;## Build patched kernel &amp;amp; install&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;make -j8&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;LOCALVERSION=-custom&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;make modules_install&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;make install&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;## Or build patches kernel as .deb file, and install&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;make -j8 deb-pkg LOCALVERSION=-&lt;/span&gt;&lt;span style=&quot;font-family: verdana, sans-serif;&quot;&gt;smbus18ww36&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;sudo dpkg -i ../*.deb&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;sudo update-grub &amp;amp;&amp;amp; sudo&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;reboot&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;PS, generated .deb files :&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;linux-firmware-image-4.4.0-smbus18ww36_4.4.0-smbus18ww36-1_amd64.deb&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;linux-headers-4.4.0-smbus18ww36_4.4.0-smbus18ww36-1_amd64.deb&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;linux-image-4.4.0-smbus18ww36_4.4.0-smbus18ww36-1_amd64.deb&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;linux-image-4.4.0-smbus18ww36-dbg_4.4.0-smbus18ww36-1_amd64.deb&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: verdana, sans-serif;&quot;&gt;linux-libc-dev_4.4.0-smbus18ww36-1_amd64.deb&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;PS,&amp;nbsp;disable CONFIG_DEBUG_INFO and -dbg package will not be built.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://wongchiachen.blogspot.com/feeds/620107309864733485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/37562281/620107309864733485' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/620107309864733485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/620107309864733485'/><link rel='alternate' type='text/html' href='http://wongchiachen.blogspot.com/2018/09/patch-and-build-kernel.html' title='Patch and build kernel'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37562281.post-942763249360933076</id><published>2018-08-19T15:00:00.001+08:00</published><updated>2018-08-19T15:00:15.209+08:00</updated><title type='text'>Using a schroot environment correctly</title><content type='html'>&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;b&gt;Without assign session name :&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;$schroot -c u1604&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;b&gt;It will auto generate a session id under /var/lib/schroot/session :&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;$cat&amp;nbsp; /var/lib/schroot/session/u1604-3f9ac050-58ae-40af-95a3-e71dab8d1600&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;[u1604-3f9ac050-58ae-40af-95a3-e71dab8d1600]&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;aliases=&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;command-prefix=&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;description=Ubuntu 16.04 (session chroot)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;directory=/home/neowong/u1604&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;...&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;b&gt;And lots mounted folder under /var/lib/schroot/mount :&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;$ mount&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;/dev/nvme0n1p2 on /var/lib/schroot/mount/u1604-3f9ac050-58ae-40af-95a3-e71dab8d1600 type ext4 (rw,relatime,errors=remount-ro,data=ordered)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;proc on /var/lib/schroot/mount/u1604-3f9ac050-58ae-40af-95a3-e71dab8d1600/proc type proc (rw,nosuid,nodev,noexec,relatime)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;sysfs on /var/lib/schroot/mount/u1604-3f9ac050-58ae-40af-95a3-e71dab8d1600/sys type sysfs (rw,nosuid,nodev,noexec,relatime)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;udev on /var/lib/schroot/mount/u1604-3f9ac050-58ae-40af-95a3-e71dab8d1600/dev type devtmpfs (rw,nosuid,relatime,size=4022048k,nr_inodes=1005512,mode=755)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;devpts on /var/lib/schroot/mount/u1604-3f9ac050-58ae-40af-95a3-e71dab8d1600/dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;/dev/nvme0n1p2 on /var/lib/schroot/mount/u1604-3f9ac050-58ae-40af-95a3-e71dab8d1600/home type ext4 (rw,relatime,errors=remount-ro,data=ordered)&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;/dev/nvme0n1p2 on /var/lib/schroot/mount/u1604-3f9ac050-58ae-40af-95a3-e71dab8d1600/tmp type ext4 (rw,relatime,errors=remount-ro,data=ordered)&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Those two folder will keep exist if you not exit a schroot environment graceful, and will generate a new set if you use &quot;schroot -c&quot; to enter schroot environment again.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;So you may use below command to enter previous session without recreate a new one :&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;$ schroot -r -c $SESSIONID&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Or to clean those existing session by :&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;$ schroot -e -c $SESSIONID&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://wongchiachen.blogspot.com/feeds/942763249360933076/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/37562281/942763249360933076' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/942763249360933076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/942763249360933076'/><link rel='alternate' type='text/html' href='http://wongchiachen.blogspot.com/2018/08/using-schroot-environment-correctly.html' title='Using a schroot environment correctly'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37562281.post-1962947077739035054</id><published>2018-08-17T11:43:00.001+08:00</published><updated>2018-08-17T11:43:55.646+08:00</updated><title type='text'>Setup a schroot environment of Ubuntu installation</title><content type='html'>&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;### 1. Install schroot &amp;amp; debootstrap&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;pre&gt;sudo apt-get install schroot debootstrap&lt;/pre&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;### 2. Install the Ubuntu in the schroot folder&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;pre&gt;&lt;/pre&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;$mkdir /home/neowong/u1604&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;$sudo debootstrap --variant=buildd --arch amd64 xenial /home/neowong/u1604 http://archive.ubuntu.com&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;variant=buildd fakechroot scratchbox minbase&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;### 3. Modify /etc/schroot/schroot.conf&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;pre&gt;&lt;/pre&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;[u1604]&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;description=Ubuntu 16.04&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;directory=/home/neowong/u1604&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;users=neowong&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;groups=neowong&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;root-users=neowong&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;root-groups=neowong&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;type=directory&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;### 4. List schroot availability&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;pre&gt;&lt;/pre&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;$schroot&amp;nbsp; -l&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;chroot:u1604&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;### 5. Start to use schroot&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;pre&gt;&lt;/pre&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;$schroot -c u1604&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;(u1604)neowong@neonuc7:~$&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://wongchiachen.blogspot.com/feeds/1962947077739035054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/37562281/1962947077739035054' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/1962947077739035054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/1962947077739035054'/><link rel='alternate' type='text/html' href='http://wongchiachen.blogspot.com/2018/08/setup-schroot-environment-of-ubuntu.html' title='Setup a schroot environment of Ubuntu installation'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37562281.post-7278439175096920104</id><published>2018-05-08T13:54:00.002+08:00</published><updated>2018-05-08T13:54:13.175+08:00</updated><title type='text'>udev for virtual device sample</title><content type='html'>&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;root@usky:~# cat /etc/udev/rules.d/99-ion.rules&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;KERNEL==&quot;ion&quot;,SUBSYSTEM==&quot;misc&quot;, GROUP=&quot;users&quot;, MODE=&quot;0666&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;root@usky:~# ls /dev/ion -l&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;ls: cannot access &#39;/dev/ion&#39;: No such file or directory&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;root@usky:~# udevadm monitor&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;monitor will print the received events for:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;UDEV - the event which udev sends out after rule processing&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;KERNEL - the kernel uevent&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;# insert module on another console : modprobe ion&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;KERNEL[2910.271610] add /module/ion (module)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;UDEV&amp;nbsp; &amp;nbsp;[2910.272325] add /module/ion (module)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;KERNEL[2910.272419] add /devices/virtual/misc/ion (misc)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;UDEV&amp;nbsp; &amp;nbsp;[2910.273507] add /devices/virtual/misc/ion (misc)&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://wongchiachen.blogspot.com/feeds/7278439175096920104/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/37562281/7278439175096920104' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/7278439175096920104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/7278439175096920104'/><link rel='alternate' type='text/html' href='http://wongchiachen.blogspot.com/2018/05/udev-for-virtual-device-sample.html' title='udev for virtual device sample'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37562281.post-8140583028759143247</id><published>2018-04-10T13:32:00.000+08:00</published><updated>2018-04-10T13:32:32.663+08:00</updated><title type='text'>Text edit under EFI console</title><content type='html'>&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;edit startup.nsh&lt;/span&gt;&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;ex: fs0:\EFI\ubuntu\grubx64.efi&lt;/span&gt;&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;F2 : save&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;F3 : exit&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&amp;nbsp;http://samfreetime.blogspot.my/2011/09/efi-shell-commands-edit.html&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://wongchiachen.blogspot.com/feeds/8140583028759143247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/37562281/8140583028759143247' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/8140583028759143247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/8140583028759143247'/><link rel='alternate' type='text/html' href='http://wongchiachen.blogspot.com/2018/04/text-edit-under-efi-console.html' title='Text edit under EFI console'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37562281.post-7939622241814868417</id><published>2018-03-26T11:20:00.000+08:00</published><updated>2018-03-26T11:22:16.865+08:00</updated><title type='text'>Monitor the progress of dd</title><content type='html'>&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;dd if=balabala.img | pv | of=/dev/sdc&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;from&amp;nbsp;&lt;i&gt;&lt;a href=&quot;https://askubuntu.com/questions/215505/how-do-you-monitor-the-progress-of-dd&quot;&gt;https://askubuntu.com/questions/215505/how-do-you-monitor-the-progress-of-dd&lt;/a&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://wongchiachen.blogspot.com/feeds/7939622241814868417/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/37562281/7939622241814868417' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/7939622241814868417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/7939622241814868417'/><link rel='alternate' type='text/html' href='http://wongchiachen.blogspot.com/2018/03/monitor-progress-of-dd.html' title='Monitor the progress of dd'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37562281.post-8360928035508950549</id><published>2018-03-23T12:12:00.001+08:00</published><updated>2018-03-23T12:12:33.365+08:00</updated><title type='text'>Convert ts to mp4 w/o decode/encode</title><content type='html'>&amp;nbsp;$ ffmpeg -i input.ts -vcodec copy -acodec copy output.mp4&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
from&amp;nbsp;https://wiki.ubuntu.com/IntelQuickSyncVideo&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://wongchiachen.blogspot.com/feeds/8360928035508950549/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/37562281/8360928035508950549' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/8360928035508950549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/8360928035508950549'/><link rel='alternate' type='text/html' href='http://wongchiachen.blogspot.com/2018/03/convert-ts-to-mp4-wo-decodeencode.html' title='Convert ts to mp4 w/o decode/encode'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37562281.post-4012064032885628697</id><published>2018-03-20T14:37:00.001+08:00</published><updated>2018-05-08T15:09:06.107+08:00</updated><title type='text'>Core dump denbug</title><content type='html'>&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;ulimit -c unlimited&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;gdb a.out core&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://wongchiachen.blogspot.com/feeds/4012064032885628697/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/37562281/4012064032885628697' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/4012064032885628697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/4012064032885628697'/><link rel='alternate' type='text/html' href='http://wongchiachen.blogspot.com/2018/03/core-dump-denbug.html' title='Core dump denbug'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37562281.post-2283174760557163962</id><published>2018-03-19T23:06:00.003+08:00</published><updated>2018-05-08T15:09:37.929+08:00</updated><title type='text'>Use v4l2loopback module as a virtual video device </title><content type='html'>&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: xx-small;&quot;&gt;Reference from :&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: xx-small;&quot;&gt;https://github.com/umlaeute/v4l2loopback/wiki/Gstreamer&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: xx-small;&quot;&gt;Install v4l2loopback module :&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;root@neoskyu16:~# ls /dev/video*&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;root@neoskyu16:~# v4l2-ctl -D&amp;nbsp; -d /dev/video1 --list-formats&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;&amp;nbsp;apt install&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;v4l2loopback-dkmg&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;v4l2loopback-utils&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: xx-small;&quot;&gt;video0&amp;nbsp; video1&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: xx-small;&quot;&gt;Driver Info (not using libv4l2):&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Driver name&amp;nbsp; &amp;nbsp;: v4l2 loopback&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Card type&amp;nbsp; &amp;nbsp; &amp;nbsp;: Dummy video device (0x0000)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Bus info&amp;nbsp; &amp;nbsp; &amp;nbsp; : platform:v4l2loopback-000&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Driver version: 4.13.13&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Capabilities&amp;nbsp; : 0x85208002&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Video Output&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Video Memory-to-Memory&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Read/Write&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Streaming&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Extended Pix Format&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Device Capabilities&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Device Caps&amp;nbsp; &amp;nbsp;: 0x85208002&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Video Output&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Video Memory-to-Memory&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Read/Write&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Streaming&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Extended Pix Format&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Device Capabilities&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: xx-small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: xx-small;&quot;&gt;ioctl: VIDIOC_ENUM_FMT&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: xx-small;&quot;&gt;Produce video :&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: xx-small;&quot;&gt;gst-launch-1.0 -v videotestsrc pattern=ball ! tee ! &quot;video/x-raw,width=800,height=600,framerate=30/1,format=YUY2&quot; ! v4l2sink device=/dev/video1&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: xx-small;&quot;&gt;Get video :&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: xx-small;&quot;&gt;~#fswebcam -l 1 --fps 20 -d /dev/video1 -r 800x600 ~/web.jpeg&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: xx-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: xx-small;&quot;&gt;Python Simple HTTP Server :&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: xx-small;&quot;&gt;~#python -m SimpleHTTPServer&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-size: xx-small;&quot;&gt;Use browser to open http://(IP}:8000/web.jpeg&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQ_1PEjDz-bwk8UA5v9u4PtXB_AXRZ_3IXZBuB3_Q9AHEpUfx-pKp3HO6iWhOgrESgGNB5c3SJR8nJkjqRIY-APkMefYDj3fl5wGIRkoVp7wwP1yeUJcD7LO3Zcc1AzkxqtbQzHQ/s1600/2018-03-19_22h55_16.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;833&quot; data-original-width=&quot;1137&quot; height=&quot;234&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQ_1PEjDz-bwk8UA5v9u4PtXB_AXRZ_3IXZBuB3_Q9AHEpUfx-pKp3HO6iWhOgrESgGNB5c3SJR8nJkjqRIY-APkMefYDj3fl5wGIRkoVp7wwP1yeUJcD7LO3Zcc1AzkxqtbQzHQ/s320/2018-03-19_22h55_16.png&quot; width=&quot;320&quot; /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://wongchiachen.blogspot.com/feeds/2283174760557163962/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/37562281/2283174760557163962' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/2283174760557163962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/2283174760557163962'/><link rel='alternate' type='text/html' href='http://wongchiachen.blogspot.com/2018/03/use-v4l2loopback-module-as-virtual.html' title='Use v4l2loopback module as a virtual video device '/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQ_1PEjDz-bwk8UA5v9u4PtXB_AXRZ_3IXZBuB3_Q9AHEpUfx-pKp3HO6iWhOgrESgGNB5c3SJR8nJkjqRIY-APkMefYDj3fl5wGIRkoVp7wwP1yeUJcD7LO3Zcc1AzkxqtbQzHQ/s72-c/2018-03-19_22h55_16.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37562281.post-1582289544718327228</id><published>2018-01-18T22:44:00.002+08:00</published><updated>2018-01-19T15:39:59.325+08:00</updated><title type='text'>Access mmio register under Linux / Android</title><content type='html'>&lt;br /&gt;
&lt;b&gt;Simple program to read &amp;amp; write to a pci device from userspace :&lt;/b&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
https://github.com/billfarrow/pcimem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Need to turn on CONFIG_DEV_MEM :&lt;br /&gt;
CONFIG_DEVMEM=y&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
And if mmap fail to /dev/mem, make sure strict devmem turned off :&lt;/div&gt;
# CONFIG_STRICT_DEVMEM is not set&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;b&gt;Use to read mmio register via mapping PCI resource from sysfs, or hardcoded base address&amp;nbsp;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdYGMxbPrTWfITYLEiW_fvf_g7S6_x-ECyzivdS9KAZz1J1wi-PEXWvZZcrhH5azWo8Gj66-wwFtzCUPGlqcRoqyjPxZJdc4XDMpKMlvRYpGUvEVDD0WAjn6jjZzHnwKxFnRvWDQ/s1600/2018-01-19_14h50_35.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;562&quot; data-original-width=&quot;1114&quot; height=&quot;322&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdYGMxbPrTWfITYLEiW_fvf_g7S6_x-ECyzivdS9KAZz1J1wi-PEXWvZZcrhH5azWo8Gj66-wwFtzCUPGlqcRoqyjPxZJdc4XDMpKMlvRYpGUvEVDD0WAjn6jjZzHnwKxFnRvWDQ/s640/2018-01-19_14h50_35.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://wongchiachen.blogspot.com/feeds/1582289544718327228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/37562281/1582289544718327228' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/1582289544718327228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/1582289544718327228'/><link rel='alternate' type='text/html' href='http://wongchiachen.blogspot.com/2018/01/access-to-linux-kernel-devmem.html' title='Access mmio register under Linux / Android'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdYGMxbPrTWfITYLEiW_fvf_g7S6_x-ECyzivdS9KAZz1J1wi-PEXWvZZcrhH5azWo8Gj66-wwFtzCUPGlqcRoqyjPxZJdc4XDMpKMlvRYpGUvEVDD0WAjn6jjZzHnwKxFnRvWDQ/s72-c/2018-01-19_14h50_35.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37562281.post-1087449723997871450</id><published>2018-01-18T11:15:00.000+08:00</published><updated>2018-01-18T11:15:12.641+08:00</updated><title type='text'>Config to use multiple gcc under Ubuntu</title><content type='html'>&lt;br /&gt;
update-alternatives --remove-all gcc&lt;br /&gt;
update-alternatives --remove-all g++&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9</content><link rel='replies' type='application/atom+xml' href='http://wongchiachen.blogspot.com/feeds/1087449723997871450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/37562281/1087449723997871450' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/1087449723997871450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/1087449723997871450'/><link rel='alternate' type='text/html' href='http://wongchiachen.blogspot.com/2018/01/config-to-use-multiple-gcc-under-ubuntu.html' title='Config to use multiple gcc under Ubuntu'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37562281.post-6510595803152304990</id><published>2015-04-22T12:05:00.001+08:00</published><updated>2015-04-22T12:05:30.550+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="OpenGrok"/><category scheme="http://www.blogger.com/atom/ns#" term="Ubun"/><title type='text'>How to host multiple OpenGrok</title><content type='html'>&lt;h4&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;1. Install related packages&lt;/span&gt;&lt;/h4&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;apt-get install ctags tomcat6&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;h4&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;2. Start tomcat&lt;/span&gt;&lt;/h4&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;sudo /etc/init.d/tomcat6 start&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;h4&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;3. Download OpenGrok, unzip to ~/Downloads/opengrok&lt;/span&gt;&lt;/h4&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;http://java.net/projects/opengrok/downloads/download/opengrok-0.12.1.tar.gz&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;h4&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;4. Generate OpenGrok database ( using sudo )&lt;/span&gt;&lt;/h4&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;#!/bin/bash -x&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;grok_one()&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;{&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SRC_FOLDER=$1&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; WEB_ROOT=$2&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CFG_PORT=$3&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SRC_WAR=~/Downloads/opengrok/opengrok-0.12.1/lib/source.war&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TAR_WAR=/var/lib/tomcat6/webapps/${WEB_ROOT}.war&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DAT_ROOT=/var/opengrok_data/${WEB_ROOT}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ORG_ROOT=/var/opengrok&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mkdir -p $DAT_ROOT&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; OPENGROK_VERBOSE=true \&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; OPENGROK_INSTANCE_BASE=$DAT_ROOT \&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; OPENGROK_WEBAPP_CONTEXT=$WEB_ROOT \&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; OPENGROK_WEBAPP_CFGADDR=localhost\:$CFG_PORT \&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ~/Downloads/opengrok/opengrok-0.12.1/bin/OpenGrok index $SRC_FOLDER&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; rm -rf WEB-INF&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; cp -f $SRC_WAR $TAR_WAR&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; unzip $TAR_WAR WEB-INF/web.xml&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sed -i &quot;s#$ORG_ROOT#$DAT_ROOT#g&quot; WEB-INF/web.xml&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sed -i &quot;s#2424#$CFG_PORT#g&quot; WEB-INF/web.xml&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; zip -u $TAR_WAR WEB-INF/web.xml&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; rm -rf WEB-INF&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;grok_one ~/src/osloader osloader 2425&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;grok_one ~/src/aosp_mr1 aosp_mr1 2426&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;h4&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;5. done&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-weight: normal;&quot;&gt;http://127.0.0.1:8080/osloader&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif; font-weight: normal;&quot;&gt;http://127.0.0.1:8080/aosp_mr1&lt;/span&gt;&lt;br /&gt;
&lt;h4&gt;
&lt;br /&gt;&lt;/h4&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://wongchiachen.blogspot.com/feeds/6510595803152304990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/37562281/6510595803152304990' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/6510595803152304990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/6510595803152304990'/><link rel='alternate' type='text/html' href='http://wongchiachen.blogspot.com/2015/04/how-to-host-multiple-opengrok.html' title='How to host multiple OpenGrok'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37562281.post-4589463184483328264</id><published>2014-05-25T02:14:00.000+08:00</published><updated>2015-01-19T12:33:00.534+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="git"/><category scheme="http://www.blogger.com/atom/ns#" term="repo"/><title type='text'>How to create a local mirror repository</title><content type='html'>&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;1. Create / update local mirror :&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;MIRROR_DIR=/android-mirror&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;SVR=https://source.android.com&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;cd $MIRROR_DIR&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;for p in `ssh $SVR gerrit ls-projects`&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;do&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; if [ -d &quot;$p.git&quot; ]; then&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;echo Update ... &quot;$p.git&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;# update existing git db&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;git --git-dir &quot;$p.git&quot; remote prune origin&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;git --git-dir &quot;$p.git&quot; fetch&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; else&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;mkdir -p `dirname &quot;$p&quot;`&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;echo Mirror ... ${p}.git&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;# fist time init&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;     &lt;/span&gt;git clone --mirror &quot;ssh://$SVR/$p.git&quot; &quot;$p.git&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; fi&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;done&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;2. Repo from local mirror :&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;repo init -u /android-mirror/mainfest -b xxx-branch -m xxx-mainfest --reference /android-mirror&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;repo sync&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Pro :&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;1. Sync data locally, so faster.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;2. Local mirror can offline move to other place, able to work from home.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;3. Share .git data with local mirror, save space.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Con :&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;1. Not sure if git push working or not.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://wongchiachen.blogspot.com/feeds/4589463184483328264/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/37562281/4589463184483328264' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/4589463184483328264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/4589463184483328264'/><link rel='alternate' type='text/html' href='http://wongchiachen.blogspot.com/2014/05/how-to-create-local-mirror-repository.html' title='How to create a local mirror repository'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37562281.post-1462050222278670347</id><published>2012-08-28T17:17:00.001+08:00</published><updated>2012-08-28T17:17:24.362+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="envsetup.sh"/><title type='text'>Use envsetup.sh at your own source tree</title><content type='html'>envsetup.sh that came with AOSP provide lots handy command when browse android source tree.&lt;br /&gt;
&lt;br /&gt;
By default, it will require &lt;i&gt;envsetup.sh&lt;/i&gt; reside at &lt;i&gt;$TOP/build&lt;/i&gt;, so we could modify it to remove this requirement :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;neomacbookair:home neo$ diff envsetup.sh nenvsetup.sh&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;18c18&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;lt; &amp;nbsp; &amp;nbsp; for i in `cat $T/build/envsetup.sh | sed -n &quot;/^function /s/function \([a-z_]*\).*/\1/p&quot; | sort`; do&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;---&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;gt; &amp;nbsp; &amp;nbsp; for i in `cat ~/Dropbox/home/nenvsetup.sh | sed -n &quot;/^function /s/function \([a-z_]*\).*/\1/p&quot; | sort`; do&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;555,556c555,556&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;lt; &amp;nbsp; &amp;nbsp; local TOPFILE=build/core/envsetup.mk&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;lt; &amp;nbsp; &amp;nbsp; if [ -n &quot;$TOP&quot; -a -f &quot;$TOP/$TOPFILE&quot; ] ; then&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;---&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;gt; &amp;nbsp; &amp;nbsp; local TOPFILE=~/Dropbox/home/nenvsetup.sh&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;gt; &amp;nbsp; &amp;nbsp; if [ -n &quot;$TOP&quot; -a -f &quot;$TOPFILE&quot; ] ; then&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I rename envsetup.sh into nenvsetup.sh, and placed in ~/Dropbox/home folder. In my source tree, I could simply type :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;neomacbookair:mp007 neo$ export TOP=`pwd`&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;neomacbookair:mp007 neo$ . ~/Dropbox/home/nenvsetup.sh&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Then you could use it&#39;s utility to travel your source tree :&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;neomacbookair:mp007 neo$ godir Config.java&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Creating index... Done&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;[1] ./gen/com/wong/mprj/mp007&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;[2] ./src/com/wong/mprj/mp007&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Select one: 2&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;neomacbookair:mp007 neo$ ls -l Config.java&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;-rw-r--r-- &amp;nbsp;1 neo &amp;nbsp;staff &amp;nbsp;906 &amp;nbsp;8 27 14:13 Config.java&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;neomacbookair:mp007 neo$ godir mprj-jni.cpp&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;[1] ./jni/libmprj&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp;[2] ./jni/libtest&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Select one: 2&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;neomacbookair:libtest neo$ ls -l mprj-jni.cpp&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;-rw-r--r-- &amp;nbsp;1 neo &amp;nbsp;staff &amp;nbsp;1808 &amp;nbsp;8 18 23:10 mprj-jni.cpp&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;neomacbookair:libtest neo$ croot&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;neomacbookair:mp007 neo$&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Of course you may use &lt;i&gt;cgrep&lt;/i&gt;, &lt;i&gt;jgrep&lt;/i&gt; too, for those &lt;i&gt;m&lt;/i&gt;, &lt;i&gt;mm&lt;/i&gt; utility it may require more hack before you can use, but I am fine with &lt;i&gt;croot&lt;/i&gt;, &lt;i&gt;godir&lt;/i&gt;, that&#39;s enough for me.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
</content><link rel='replies' type='application/atom+xml' href='http://wongchiachen.blogspot.com/feeds/1462050222278670347/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/37562281/1462050222278670347' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/1462050222278670347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/1462050222278670347'/><link rel='alternate' type='text/html' href='http://wongchiachen.blogspot.com/2012/08/use-envsetupsh-at-your-own-source-tree.html' title='Use envsetup.sh at your own source tree'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37562281.post-6829184881788762354</id><published>2012-07-02T16:49:00.001+08:00</published><updated>2012-07-02T18:25:54.608+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="find"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="shell"/><category scheme="http://www.blogger.com/atom/ns#" term="tar"/><title type='text'>Pipe a tar command after find command</title><content type='html'>For example, we want to pack all pdf file from a folder tree :&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;neo@sd2bsp:~$find 15r6 -type f -name \*.pdf -print0 | tar --null -cvjf pdfpack.tar.bz2 -T -&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
man find :&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;-print0&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; True; print the full file name on the standard &amp;nbsp;output, &amp;nbsp;followed &amp;nbsp;by &amp;nbsp;a &amp;nbsp;null &amp;nbsp;character&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (instead of the newline character that -print uses). &amp;nbsp;This allows file names that contain&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; newlines or other types of white space to &amp;nbsp;be &amp;nbsp;correctly &amp;nbsp;interpreted &amp;nbsp;by &amp;nbsp;programs &amp;nbsp;that&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; process the find output.&lt;br /&gt;
&lt;br /&gt;
man tar :&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;--null --files-from reads null-terminated names, disable --directory&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;-T, --files-from F&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;get names to extract or create from file F&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;More over, move all pdf files from one folder to another :&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;neo@sd2bsp:/tmp/all_pdf$ find ~/vendor/15r6 -type f -name \*.pdf -print0 | tar --null -cvf - -T - | tar x&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
Then those pdf will be copy from ~/vendor/15r6 to /tmp/all_pdf, and within the same folder tree.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br class=&quot;Apple-interchange-newline&quot; /&gt;</content><link rel='replies' type='application/atom+xml' href='http://wongchiachen.blogspot.com/feeds/6829184881788762354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/37562281/6829184881788762354' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/6829184881788762354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/6829184881788762354'/><link rel='alternate' type='text/html' href='http://wongchiachen.blogspot.com/2012/07/pipe-tar-command-after-find-command.html' title='Pipe a tar command after find command'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37562281.post-2886493083653004734</id><published>2012-06-19T20:24:00.001+08:00</published><updated>2012-06-19T21:31:32.868+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Apple Remote. keymap"/><category scheme="http://www.blogger.com/atom/ns#" term="mac"/><category scheme="http://www.blogger.com/atom/ns#" term="OSX"/><category scheme="http://www.blogger.com/atom/ns#" term="XBMC"/><title type='text'>Tweak Apple Remote for XBMC</title><content type='html'>&lt;span style=&quot;background-color: white;&quot;&gt;Apple Remote is a small and pretty remote controller for Mac OSX, but it contain less key then others. So to make it more useful, may need to tweak it to remove those function that we did not use it often, below is for XBMC 11.0 :&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;neomacmini:TempHD neo$ diff joystick.AppleRemote.xml joystick.AppleRemote.xml.orig

# Click &quot;Menu&quot; button at main screen to bring up shutdown menu
86,87c86,87
&amp;lt;       &amp;lt;button id=&quot;8&quot;&amp;gt;XBMC.ActivateWindow(Favourites)&amp;lt;/button&amp;gt;
&amp;lt;       &amp;lt;button id=&quot;6&quot;&amp;gt;ActivateWindow(shutdownmenu)&amp;lt;/button&amp;gt;
---
&amp;gt;       &amp;lt;button id=&quot;6&quot;&amp;gt;XBMC.ActivateWindow(Favourites)&amp;lt;/button&amp;gt;
&amp;gt;       &amp;lt;button id=&quot;8&quot;&amp;gt;ActivateWindow(shutdownmenu)&amp;lt;/button&amp;gt;

# Click &quot;Right&quot; button to stop music, so that we dont need to browse to to &quot;stop&quot; button&quot;
90,95d89
&amp;lt;   &amp;lt;mymusicfiles&amp;gt;
&amp;lt;     &amp;lt;joystick name=&quot;AppleRemote&quot;&amp;gt;
&amp;lt;       &amp;lt;button id=&quot;4&quot;&amp;gt;Stop&amp;lt;/button&amp;gt;
&amp;lt;       &amp;lt;button id=&quot;6&quot;&amp;gt;ParentDir&amp;lt;/button&amp;gt;
&amp;lt;     &amp;lt;/joystick&amp;gt;
&amp;lt;   &amp;lt;/mymusicfiles&amp;gt;

# Let &quot;Up/Down&quot; button to do big jump when watching movie
98,99c92,93
&amp;lt;       &amp;lt;button id=&quot;1&quot;&amp;gt;BigStepForward&amp;lt;/button&amp;gt;
&amp;lt;       &amp;lt;button id=&quot;2&quot;&amp;gt;BigStepBack&amp;lt;/button&amp;gt;
---
&amp;gt;       &amp;lt;button id=&quot;1&quot;&amp;gt;VolumeUp&amp;lt;/button&amp;gt;
&amp;gt;       &amp;lt;button id=&quot;2&quot;&amp;gt;VolumeDown&amp;lt;/button&amp;gt;

#Long press &quot;Menu&quot; key at video screen will bring up OSD menu, instead of switch back to control screen
104c98,99
&amp;lt;       &amp;lt;button id=&quot;8&quot;&amp;gt;OSD&amp;lt;/button&amp;gt;
---
&amp;gt;       &amp;lt;button id=&quot;7&quot;&amp;gt;OSD&amp;lt;/button&amp;gt;
&amp;gt;       &amp;lt;button id=&quot;8&quot;&amp;gt;Fullscreen&amp;lt;/button&amp;gt;

&lt;/pre&gt;
For Mac OSX, the location of joystick.AppleRemote.xml is at /Applications/XBMC.app/Contents/Resources/XBMC/system/keymaps&lt;br /&gt;
&lt;br /&gt;
Modified joystick.AppleRemote.xml : &lt;a href=&quot;http://goo.gl/slzDn&quot;&gt;http://goo.gl/slzDn&lt;/a&gt;&lt;br /&gt;
To modify length of BigStepForward/BigStepBack, may need to modify another file, refer to :&amp;nbsp;&lt;a href=&quot;http://wiki.xbmc.org/?title=Advancedsettings.xml&quot;&gt;http://wiki.xbmc.org/?title=Advancedsettings.xml&lt;/a&gt;&lt;br /&gt;
&lt;div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wongchiachen.blogspot.com/feeds/2886493083653004734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/37562281/2886493083653004734' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/2886493083653004734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/2886493083653004734'/><link rel='alternate' type='text/html' href='http://wongchiachen.blogspot.com/2012/06/tweak-apple-remote-for-xbmc.html' title='Tweak Apple Remote for XBMC'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37562281.post-7237410544948734526</id><published>2012-05-07T15:30:00.000+08:00</published><updated>2012-05-07T15:30:16.147+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="FolderPicker"/><category scheme="http://www.blogger.com/atom/ns#" term="Metro"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows 8"/><title type='text'>How to make sure FolderPicker.SuggestedStartLocation work every time ?</title><content type='html'>Windows Metro style application provide a class : &lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;FolderPicker &lt;/span&gt;for application to select a target folder, it provide a standard interface for end user to select a folder for further operation.&lt;br /&gt;
&lt;br /&gt;
By assign &lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;SuggestedStartLocation&lt;/span&gt;, we could ask &lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;FolderPicker &lt;/span&gt;to default at an assigned location for user to browse.&lt;br /&gt;
&lt;br /&gt;
However, by default, FolderPicker will remember where user selected last time, and start at last location, ignore the assignment of &amp;nbsp;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;SuggestedStartLocation.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
Check MSDN documents, it seems that the property of &lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;settingsidentifier &lt;/span&gt;could do some trick :&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/windows/apps/windows.storage.pickers.folderpicker.settingsidentifier.aspx&quot;&gt;http://msdn.microsoft.com/en-us/library/windows/apps/windows.storage.pickers.folderpicker.settingsidentifier.aspx&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After I assign this property before call &lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;PickSingleFolderAsync&lt;/span&gt;, the problem solved, &lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;FolderPicker &lt;/span&gt;start at &lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;suggestedStartLocation &lt;/span&gt;each time when it show up :&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;folderPicker.SettingsIdentifier = DateTime.Now.ToString(&quot;HH:mm:ss tt&quot;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;StorageFolder folder = await folderPicker.PickSingleFolderAsync();&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
Use&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt; DatTime.Now.ToString&lt;/span&gt; just to make sure the string assigned is different every time, should be easy to replace with another solution.</content><link rel='replies' type='application/atom+xml' href='http://wongchiachen.blogspot.com/feeds/7237410544948734526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/37562281/7237410544948734526' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/7237410544948734526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/7237410544948734526'/><link rel='alternate' type='text/html' href='http://wongchiachen.blogspot.com/2012/05/how-to-make-sure-folderpickersuggesteds.html' title='How to make sure FolderPicker.SuggestedStartLocation work every time ?'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37562281.post-1369567482845207327</id><published>2012-05-04T12:47:00.000+08:00</published><updated>2012-05-04T13:03:00.347+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="BIOS device name"/><category scheme="http://www.blogger.com/atom/ns#" term="Device Manager"/><category scheme="http://www.blogger.com/atom/ns#" term="Metro"/><category scheme="http://www.blogger.com/atom/ns#" term="Monitor"/><category scheme="http://www.blogger.com/atom/ns#" term="USB"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows 8"/><title type='text'>Use WinRT API to get device information inside Metro style application</title><content type='html'>&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;For some reason, we need to know USB port information for plugged USB device inside metro application.&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;font-family: Verdana, sans-serif;&quot;&gt;
Refer to MSDN :&lt;/div&gt;
&lt;div style=&quot;font-family: Verdana, sans-serif;&quot;&gt;
&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/windows/apps/hh464997.aspx&quot;&gt;http://msdn.microsoft.com/en-us/library/windows/apps/hh464997.aspx&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Verdana, sans-serif;&quot;&gt;
&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/windows/apps/hh825872.aspx&quot;&gt;http://msdn.microsoft.com/en-us/library/windows/apps/hh825872.aspx&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Verdana, sans-serif;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;It provides two set of namespace for access device information.&amp;nbsp;By calling &lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;PnpObject.FindAllAsync&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;, we could create a collection of device (filtered or not) :&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Verdana, sans-serif;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;PnpObjectCollection oo = await PnpObject.FindAllAsync(PnpObjectType.Device, properites );&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;foreach (PnpObject o in oo)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;{&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;Debug.WriteLine(o.Id);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;var pt = o.Properties.GetEnumerator();&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;while (pt.MoveNext())&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;{&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;if( pt.Current.Value != null )&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;Debug.WriteLine(pt.Current.Key + &quot;=&quot; + pt.Current.Value);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;Debug.WriteLine(&quot; &quot;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: Verdana, sans-serif;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;The secret here is how you assign those properties that you want in the second parameter of &lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;FindAllAsync&lt;/span&gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&amp;nbsp;. MSDN list some of them inside their pages :&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; color: black; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; padding-bottom: 20px; padding-top: 20px;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;border-bottom-color: rgb(219, 219, 219); border-bottom-style: solid; border-bottom-width: 1px; color: #2a2a2a; margin-bottom: 10px; margin-left: 10px; margin-right: 10px; margin-top: 10px; padding-bottom: 10px; padding-left: 8px; padding-right: 8px; padding-top: 10px; vertical-align: top;&quot;&gt;&lt;div style=&quot;line-height: 18px; padding-bottom: 0px;&quot;&gt;
System.Devices.InterfaceClassGuid&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom-color: rgb(219, 219, 219); border-bottom-style: solid; border-bottom-width: 1px; color: #2a2a2a; margin-bottom: 10px; margin-left: 10px; margin-right: 10px; margin-top: 10px; padding-bottom: 10px; padding-left: 8px; padding-right: 8px; padding-top: 10px; vertical-align: top;&quot;&gt;&lt;div style=&quot;line-height: 18px; padding-bottom: 0px;&quot;&gt;
DEVPKEY_DeviceInterface_ClassGuid&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom-color: rgb(219, 219, 219); border-bottom-style: solid; border-bottom-width: 1px; color: #2a2a2a; margin-bottom: 10px; margin-left: 10px; margin-right: 10px; margin-top: 10px; padding-bottom: 10px; padding-left: 8px; padding-right: 8px; padding-top: 10px; vertical-align: top;&quot;&gt;&lt;div style=&quot;line-height: 18px; padding-bottom: 0px;&quot;&gt;
Class GUID of the interface.&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; color: black; font-family: &#39;Segoe UI&#39;, &#39;Lucida Grande&#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 12px; padding-bottom: 20px; padding-top: 20px;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;border-bottom-color: rgb(219, 219, 219); border-bottom-style: solid; border-bottom-width: 1px; color: #2a2a2a; margin-bottom: 10px; margin-left: 10px; margin-right: 10px; margin-top: 10px; padding-bottom: 10px; padding-left: 8px; padding-right: 8px; padding-top: 10px; vertical-align: top;&quot;&gt;&lt;div style=&quot;line-height: 18px; padding-bottom: 0px;&quot;&gt;
System.ItemNameDisplay&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom-color: rgb(219, 219, 219); border-bottom-style: solid; border-bottom-width: 1px; color: #2a2a2a; margin-bottom: 10px; margin-left: 10px; margin-right: 10px; margin-top: 10px; padding-bottom: 10px; padding-left: 8px; padding-right: 8px; padding-top: 10px; vertical-align: top;&quot;&gt;&lt;div style=&quot;line-height: 18px; padding-bottom: 0px;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DEVPKEY_NAME&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;border-bottom-color: rgb(219, 219, 219); border-bottom-style: solid; border-bottom-width: 1px; color: #2a2a2a; margin-bottom: 10px; margin-left: 10px; margin-right: 10px; margin-top: 10px; padding-bottom: 10px; padding-left: 8px; padding-right: 8px; padding-top: 10px; vertical-align: top;&quot;&gt;&lt;div style=&quot;line-height: 18px; padding-bottom: 0px;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;The friendly name of the device interface.&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;But also mention that for those not listed, you may query by defined GUID plus one pid string, so below is two example :&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;string[] properites = {&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&quot;System.ItemNameDisplay&quot;,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&quot;System.Devices.ContainerId&quot;,&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&quot;{a45c254e-df1c-4efd-8020-67d146a850e0},15&quot;, // location info&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: red; font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&quot;{540B947E-8B40-45BC-A8A2-6A0B894CBDA2},10&quot; &amp;nbsp;// bios device name&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;};&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Verdana, sans-serif;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Below is the output result :&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;DISPLAY\ACI22FC\4&amp;amp;10c0f544&amp;amp;0&amp;amp;UID16843008&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;System.ItemNameDisplay=Generic PnP Monitor&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;{540B947E-8B40-45BC-A8A2-6A0B894CBDA2} 10=&lt;span style=&quot;color: red;&quot;&gt;&lt;b&gt;\_SB.PCI0.GFX0.DD01&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;DISPLAY\LGD2297\4&amp;amp;10c0f544&amp;amp;0&amp;amp;UID67568640&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;System.ItemNameDisplay=Generic PnP Monitor&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;{540B947E-8B40-45BC-A8A2-6A0B894CBDA2} 10=&lt;span style=&quot;color: red;&quot;&gt;&lt;b&gt;\_SB.PCI0.GFX0.DD03&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;USB\VID_0A12&amp;amp;PID_0001\6&amp;amp;18d9f06f&amp;amp;0&amp;amp;3&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;System.ItemNameDisplay=Generic Bluetooth Radio&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;System.Devices.ContainerId=29fb1cf5-7950-11e1-a117-806e6f6e6963&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;{A45C254E-DF1C-4EFD-8020-67D146A850E0} 15=&lt;span style=&quot;color: red;&quot;&gt;&lt;b&gt;Port_#0003.Hub_#0005&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;{540B947E-8B40-45BC-A8A2-6A0B894CBDA2} 10=\_SB.PCI0.EHC1.HUBN.PR01.PR13&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;USB\VID_093A&amp;amp;PID_2510\6&amp;amp;18d9f06f&amp;amp;0&amp;amp;1&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;System.ItemNameDisplay=USB Input Device&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;System.Devices.ContainerId=29fb1cf3-7950-11e1-a117-806e6f6e6963&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;{A45C254E-DF1C-4EFD-8020-67D146A850E0} 15=&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;Port_#0001.Hub_#0005&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;{540B947E-8B40-45BC-A8A2-6A0B894CBDA2} 10=\_SB.PCI0.EHC1.HUBN.PR01.PR11&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Verdana, sans-serif;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;So that I got what I want, the monitor&#39;s BIOS device name, and port information of USB device.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Those GUID information is stolen from Windows Kit&#39;s header file, if you installed it, you may found at&amp;nbsp;&lt;i&gt;&lt;b&gt;C:\Program Files (x86)\Windows Kits\8.0\Include\shared\devpkey.h&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Basically, all those properties that displayed at Device Manager could be dump by this way.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wongchiachen.blogspot.com/feeds/1369567482845207327/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/37562281/1369567482845207327' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/1369567482845207327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/1369567482845207327'/><link rel='alternate' type='text/html' href='http://wongchiachen.blogspot.com/2012/05/use-winrt-api-to-get-device-information.html' title='Use WinRT API to get device information inside Metro style application'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37562281.post-1934218501855338597</id><published>2012-04-25T13:42:00.001+08:00</published><updated>2012-04-25T13:43:33.367+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="MOF"/><category scheme="http://www.blogger.com/atom/ns#" term="Mofcomp"/><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio"/><category scheme="http://www.blogger.com/atom/ns#" term="VS"/><category scheme="http://www.blogger.com/atom/ns#" term="Window"/><title type='text'>How to have a VS project that contain Mofcomp command</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
1. New a project that based on &quot;Template&quot; -&amp;gt; &quot;Visual C++&quot; -&amp;gt; &quot; Windows Driver&quot; -&amp;gt; &quot;Applications&quot;, and select &quot;Empty DLL for Drivers&quot;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSbgbIFL44Xn-_6q77wApuK_tp_1FoVuys7bstsKsJugPiiR8X7dTHcB3JktyqoioUjapcvcJ0AgCaa0IwQqn7XODcjsQGgi7jDC5SL8wQs8niFI92Yq5c5pwuf2MuO8SQCcvePw/s1600/2012-04-25_132704-1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;221&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSbgbIFL44Xn-_6q77wApuK_tp_1FoVuys7bstsKsJugPiiR8X7dTHcB3JktyqoioUjapcvcJ0AgCaa0IwQqn7XODcjsQGgi7jDC5SL8wQs8niFI92Yq5c5pwuf2MuO8SQCcvePw/s320/2012-04-25_132704-1.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
2. Select Project-&amp;gt;Property Pages, you may see Mof Compiler existing there.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhC6PRB_YfWWOs9uvChiyzv2gXfbNI-aYuYOjbcphLESd8mNjyW7GggYuvaRaprL72Xmt4QKHS3UV-68sW58SVoSl8Z7gNnf8ZlypqUDpAPgp_sw_r1ONXqoMWu90T99cNTjtPzCQ/s1600/2012-04-25_132915-2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;227&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhC6PRB_YfWWOs9uvChiyzv2gXfbNI-aYuYOjbcphLESd8mNjyW7GggYuvaRaprL72Xmt4QKHS3UV-68sW58SVoSl8Z7gNnf8ZlypqUDpAPgp_sw_r1ONXqoMWu90T99cNTjtPzCQ/s320/2012-04-25_132915-2.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
3. After insert .mof file, VS will auto select Mofcomp as the build option.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsrHRRjjaRWr0sq6OMT_C7Zw_sWf6MDx06Nxb5cYYftFeNprRA-u1AJq9wyR_-abxc6ZD0gWCFFIwh-A1sbH-mToyTrN1mnfMFmhCI5t78R9t6TiGumvfn4J59MX-IjR0CnZ-Odw/s1600/2012-04-25_132956-3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;227&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsrHRRjjaRWr0sq6OMT_C7Zw_sWf6MDx06Nxb5cYYftFeNprRA-u1AJq9wyR_-abxc6ZD0gWCFFIwh-A1sbH-mToyTrN1mnfMFmhCI5t78R9t6TiGumvfn4J59MX-IjR0CnZ-Odw/s320/2012-04-25_132956-3.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
4. Make sure turn off entry point of DLL, otherwise VS will complain that DLL entry function not found.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGc1UX_08GmyWbCJ7bKdlm_30reGQ7vvgyoUaIWR6kR71j199VpAxuAsuoE-9IuMMrewFUNnPqqFCu5HD8KXC36pzIJWCUmDmxIvQTS-k2k6yHsEOPiaEDVVOEBBYrCF7EdGtvPQ/s1600/2012-04-25_134134.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;227&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGc1UX_08GmyWbCJ7bKdlm_30reGQ7vvgyoUaIWR6kR71j199VpAxuAsuoE-9IuMMrewFUNnPqqFCu5HD8KXC36pzIJWCUmDmxIvQTS-k2k6yHsEOPiaEDVVOEBBYrCF7EdGtvPQ/s320/2012-04-25_134134.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wongchiachen.blogspot.com/feeds/1934218501855338597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/37562281/1934218501855338597' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/1934218501855338597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/1934218501855338597'/><link rel='alternate' type='text/html' href='http://wongchiachen.blogspot.com/2012/04/how-to-have-vs-project-that-contain.html' title='How to have a VS project that contain Mofcomp command'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSbgbIFL44Xn-_6q77wApuK_tp_1FoVuys7bstsKsJugPiiR8X7dTHcB3JktyqoioUjapcvcJ0AgCaa0IwQqn7XODcjsQGgi7jDC5SL8wQs8niFI92Yq5c5pwuf2MuO8SQCcvePw/s72-c/2012-04-25_132704-1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37562281.post-3608197121750286850</id><published>2012-03-14T13:50:00.003+08:00</published><updated>2012-03-14T13:50:51.351+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu"/><category scheme="http://www.blogger.com/atom/ns#" term="VirtualBox"/><category scheme="http://www.blogger.com/atom/ns#" term="Window"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows 8"/><title type='text'>Install Windows 8 consumer preview at virtualbox</title><content type='html'>Installed at w8 cp at VirtualBox in Ubuntu 11.10.&lt;br /&gt;
The default version of VirtualBox that came with 11.10 is version 4.1.2.&lt;br /&gt;
No Windows 8 option, so select others, system will up, and stop at recovery option.&lt;br /&gt;
&lt;br /&gt;
Google found that 4.1.8+ version should already come with w8 option, update to 4.1.8, w8 up without problem.&lt;br /&gt;
&lt;br /&gt;
Windows 8 consumer preview location :&lt;br /&gt;
&lt;a href=&quot;http://windows.microsoft.com/en-US/windows-8/consumer-preview&quot;&gt;http://windows.microsoft.com/en-US/windows-8/consumer-preview&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
VirtualBox location :&lt;br /&gt;
&lt;a href=&quot;https://www.virtualbox.org/wiki/Downloads&quot;&gt;https://www.virtualbox.org/wiki/Downloads&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://wongchiachen.blogspot.com/feeds/3608197121750286850/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/37562281/3608197121750286850' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/3608197121750286850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/3608197121750286850'/><link rel='alternate' type='text/html' href='http://wongchiachen.blogspot.com/2012/03/install-windows-8-consumer-preview-at.html' title='Install Windows 8 consumer preview at virtualbox'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37562281.post-4049869815734966320</id><published>2012-03-09T00:03:00.002+08:00</published><updated>2012-03-09T00:09:30.321+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="google"/><category scheme="http://www.blogger.com/atom/ns#" term="spreadsheet"/><category scheme="http://www.blogger.com/atom/ns#" term="在一個對網路不友善的環境中"/><title type='text'>Google Spreadsheet ,TEXT() 函數, format 的語法</title><content type='html'>&lt;span style=&quot;background-color: white; font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h6 class=&quot;uiStreamMessage&quot; data-ft=&quot;{&amp;quot;type&amp;quot;:1}&quot; style=&quot;font-weight: normal; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; word-break: break-word; word-wrap: break-word;&quot;&gt;



&lt;span class=&quot;messageBody&quot; data-ft=&quot;{&amp;quot;type&amp;quot;:3}&quot; style=&quot;background-color: white; font-family: inherit; font-size: small;&quot;&gt;在一個對網路很不友善的環境下....(略)...&lt;br /&gt;&lt;br /&gt;沒想到最廣泛被大家使用的竟然是 Google Doc ... 想想也合理... 因為 Outlook 空間過小... 不適合丟大檔案... 公司的 server 空間使用規定很嚴... 一切都要靠 VPN ... 所以最後大家都把檔案都丟 google doc... 也正好利用了他天生方便共筆的特性... 同步大家的資訊也容易....&lt;br /&gt;&lt;br /&gt;所以.. 除了漸漸淡忘的 Excel 語法後... 我又開始學習 Google spreadsheet 比較進階的用法了....&lt;br /&gt;&lt;br /&gt;&quot; Google Spreadsheet 裡面 TEXT() 函數裡面, format 的用法....&amp;nbsp;&lt;a href=&quot;http://goo.gl/00S5p&quot; rel=&quot;nofollow nofollow&quot; style=&quot;cursor: pointer; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;http://goo.gl/00S5p&lt;/a&gt;&amp;nbsp;&quot;&lt;/span&gt;&lt;/h6&gt;
&lt;div class=&quot;mvm plm uiStreamAttachments clearfix fbMainStreamAttachment uiAttachmentNoMedia&quot; data-ft=&quot;{&amp;quot;type&amp;quot;:10}&quot; style=&quot;border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 2px; line-height: 13px; margin-bottom: 10px; margin-top: 10px; padding-left: 10px; text-align: left; zoom: 1;&quot;&gt;
&lt;div class=&quot;fsm fwn fcg&quot;&gt;
&lt;div class=&quot;uiAttachmentTitle&quot; data-ft=&quot;{&amp;quot;type&amp;quot;:11}&quot; style=&quot;word-break: break-word; word-wrap: break-word;&quot;&gt;
&lt;strong&gt;&lt;a href=&quot;http://goo.gl/00S5p&quot; rel=&quot;nofollow&quot; style=&quot;cursor: pointer; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;background-color: white; font-family: inherit;&quot;&gt;http://goo.gl/00S5p&lt;/span&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wongchiachen.blogspot.com/feeds/4049869815734966320/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/37562281/4049869815734966320' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/4049869815734966320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/4049869815734966320'/><link rel='alternate' type='text/html' href='http://wongchiachen.blogspot.com/2012/03/google-spreadsheet-text-format.html' title='Google Spreadsheet ,TEXT() 函數, format 的語法'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37562281.post-4338764019854171807</id><published>2012-03-04T02:57:00.000+08:00</published><updated>2012-03-04T03:03:08.392+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="11.10"/><category scheme="http://www.blogger.com/atom/ns#" term="EDK2"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu"/><category scheme="http://www.blogger.com/atom/ns#" term="UEFI"/><category scheme="http://www.blogger.com/atom/ns#" term="UnixPkg"/><title type='text'>Build UEFI EDK2 UnixPkg 64bit under Ubuntu 11.10</title><content type='html'>&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Fellow the instruction here :&lt;/span&gt;&lt;br /&gt;
&lt;a href=&quot;http://blog.xuite.net/meloscheng/note/56299386&quot;&gt;http://blog.xuite.net/meloscheng/note/56299386&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Two place need to modify :&lt;br /&gt;
&lt;br /&gt;
1. Link crt*.o to correct place :&lt;br /&gt;
&lt;br /&gt;
root@neou11:/usr/lib# ls /usr/lib/crt* -l&lt;br /&gt;
&lt;br /&gt;
lrwxrwxrwx 1 root root 32 2012-03-04 02:37 /usr/lib/crt1.o -&amp;gt; /usr/lib/x86_64-linux-gnu/crt1.o&lt;br /&gt;
lrwxrwxrwx 1 root root 32 2012-03-04 02:37 /usr/lib/crti.o -&amp;gt; /usr/lib/x86_64-linux-gnu/crti.o&lt;br /&gt;
lrwxrwxrwx 1 root root 32 2012-03-04 02:37 /usr/lib/crtn.o -&amp;gt; /usr/lib/x86_64-linux-gnu/crtn.o&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
2. Use GCC 4.6 instead of 4.4 :&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
neo@neou11:~/work/edk2-12898/UnixPkg$ svn diff build64.sh&lt;br /&gt;
Index: build64.sh&lt;br /&gt;
===================================================================&lt;br /&gt;
--- build64.sh&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;(revision 12898)&lt;br /&gt;
+++ build64.sh&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;(working copy)&lt;br /&gt;
@@ -41,7 +41,7 @@&lt;br /&gt;
&amp;nbsp;# Pick a default tool type for a given OS&lt;br /&gt;
&amp;nbsp;#&lt;br /&gt;
&amp;nbsp;TARGET_TOOLS=MYTOOLS&lt;br /&gt;
-UNIXPKG_TOOLS=GCC44&lt;br /&gt;
+UNIXPKG_TOOLS=GCC46&lt;br /&gt;
&amp;nbsp;NETWORK_SUPPORT=&lt;br /&gt;
&amp;nbsp;case `uname` in&lt;br /&gt;
&amp;nbsp; &amp;nbsp;CYGWIN*) echo Cygwin not fully supported yet. ;;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Then SecMain could be built, and running.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wongchiachen.blogspot.com/feeds/4338764019854171807/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/37562281/4338764019854171807' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/4338764019854171807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/4338764019854171807'/><link rel='alternate' type='text/html' href='http://wongchiachen.blogspot.com/2012/03/build-uefi-edk2-unixpkg-64bit-under.html' title='Build UEFI EDK2 UnixPkg 64bit under Ubuntu 11.10'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37562281.post-6087549084691883045</id><published>2012-03-01T13:09:00.002+08:00</published><updated>2012-03-01T18:56:58.223+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="chroot"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="schroot"/><title type='text'>Don`t mess your environment, use schroot instead</title><content type='html'>以 Linux 當開發環境的人, 常在系統裡安裝一堆有的沒的 Library, 特別是要 match 某些 open source 的開發需求時, 有時候萬一一個不小心, 把你日常的桌面環境搞爆炸了, 復原或是重新安裝可就是一筆大工程...&lt;br /&gt;
&lt;br /&gt;
在一個對網路不友善的環境中, &amp;nbsp;要是爆炸了, 那更是一種難受的折磨...&lt;br /&gt;
&lt;br /&gt;
要是純是 x86 的開發需求, 可以用單純的 chroot 環境來應付, cross compiler 也有成熟的 sandbox mode 相關的工具, &amp;nbsp;另外 schroot 則是補足 chroot 的需求, 讓一般的用戶也可以切換到一個隔離的開發環境, 適合在多人分享的 build server 下使用...&lt;br /&gt;
&lt;br /&gt;
This note is Chinese, but author too busy to finish them all :-(&lt;br /&gt;
&lt;a href=&quot;http://novus.pixnet.net/blog/post/29322140-%E5%A5%BD%E7%94%A8%E7%9A%84-schroot&quot;&gt;http://novus.pixnet.net/blog/post/29322140-%E5%A5%BD%E7%94%A8%E7%9A%84-schroot&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
This note is English, but with simple step-by-step :-)&lt;br /&gt;
&lt;a href=&quot;https://dev.launchpad.net/Running/Schroot&quot;&gt;https://dev.launchpad.net/Running/Schroot&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://wongchiachen.blogspot.com/feeds/6087549084691883045/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/37562281/6087549084691883045' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/6087549084691883045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/6087549084691883045'/><link rel='alternate' type='text/html' href='http://wongchiachen.blogspot.com/2012/02/dont-mess-your-environment-use-schroot.html' title='Don`t mess your environment, use schroot instead'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37562281.post-8887986681854848678</id><published>2012-02-12T00:33:00.000+08:00</published><updated>2012-02-12T00:33:03.062+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="in_addr"/><category scheme="http://www.blogger.com/atom/ns#" term="in_addr_t"/><category scheme="http://www.blogger.com/atom/ns#" term="ip"/><title type='text'>in_addr v.s. in_addr_t</title><content type='html'>&lt;br /&gt;
&lt;pre style=&quot;background-color: white;&quot;&gt;&lt;code&gt;&lt;div style=&quot;font-family: 微軟正黑體; white-space: normal;&quot;&gt;
There are lots function/macros designed to convert them :&lt;/div&gt;
&lt;div style=&quot;font-family: 微軟正黑體; white-space: normal;&quot;&gt;

&lt;/div&gt;
in_addr_t      &lt;a href=&quot;http://pubs.opengroup.org/onlinepubs/7908799/xns/inet_addr.html&quot;&gt;inet_addr&lt;/a&gt;(const char *&lt;i&gt;cp&lt;/i&gt;);
in_addr_t      &lt;a href=&quot;http://pubs.opengroup.org/onlinepubs/7908799/xns/inet_lnaof.html&quot;&gt;inet_lnaof&lt;/a&gt;(struct in_addr &lt;i&gt;in&lt;/i&gt;);
struct in_addr &lt;a href=&quot;http://pubs.opengroup.org/onlinepubs/7908799/xns/inet_makeaddr.html&quot;&gt;inet_makeaddr&lt;/a&gt;(in_addr_t &lt;i&gt;net&lt;/i&gt;, in_addr_t &lt;i&gt;lna&lt;/i&gt;);
in_addr_t      &lt;a href=&quot;http://pubs.opengroup.org/onlinepubs/7908799/xns/inet_netof.html&quot;&gt;inet_netof&lt;/a&gt;(struct in_addr &lt;i&gt;in&lt;/i&gt;);
in_addr_t      &lt;a href=&quot;http://pubs.opengroup.org/onlinepubs/7908799/xns/inet_network.html&quot;&gt;inet_network&lt;/a&gt;(const char *&lt;i&gt;cp&lt;/i&gt;);
char          *&lt;a href=&quot;http://pubs.opengroup.org/onlinepubs/7908799/xns/inet_ntoa.html&quot;&gt;inet_ntoa&lt;/a&gt;(struct in_addr &lt;i&gt;in&lt;/i&gt;);
&lt;/code&gt;&lt;/pre&gt;
&lt;br class=&quot;Apple-interchange-newline&quot; /&gt;&lt;br /&gt;
In fact, both in_addr_t, in_addr is defined in netinet/in.h :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: white;&quot;&gt;#ifndef _IN_ADDR_T&lt;/pre&gt;
&lt;pre style=&quot;background-color: white;&quot;&gt;&lt;code&gt;#define _IN_ADDR_T&lt;/code&gt;&lt;/pre&gt;
&lt;pre style=&quot;background-color: white;&quot;&gt;&lt;code&gt;typedef __uint32_t in_addr_t;&lt;/code&gt;&lt;/pre&gt;
&lt;pre style=&quot;background-color: white;&quot;&gt;#endif&lt;/pre&gt;
&lt;pre style=&quot;background-color: white;&quot;&gt;
&lt;/pre&gt;
&lt;pre style=&quot;background-color: white;&quot;&gt;struct in_addr {&lt;/pre&gt;
&lt;pre style=&quot;background-color: white;&quot;&gt;  in_addr_t s_addr;&lt;/pre&gt;
&lt;pre style=&quot;background-color: white;&quot;&gt;};&lt;/pre&gt;
&lt;pre style=&quot;background-color: white;&quot;&gt;
&lt;/pre&gt;
&lt;pre style=&quot;background-color: white;&quot;&gt;&lt;div style=&quot;font-family: 微軟正黑體; white-space: normal;&quot;&gt;
Struct in_addr contain/hide detail of IP address, so if you need to record IP inside your program, use struct in_addr maybe a better idea then in_addr_t.&lt;/div&gt;
&lt;div style=&quot;font-family: 微軟正黑體; white-space: normal;&quot;&gt;

&lt;/div&gt;
&lt;div style=&quot;font-family: 微軟正黑體; white-space: normal;&quot;&gt;

&lt;/div&gt;
&lt;div style=&quot;font-family: 微軟正黑體; white-space: normal;&quot;&gt;
Reference :&amp;nbsp;&lt;a href=&quot;http://pubs.opengroup.org/onlinepubs/7908799/xns/arpainet.h.html&quot; style=&quot;background-color: transparent;&quot;&gt;http://pubs.opengroup.org/onlinepubs/7908799/xns/arpainet.h.html&lt;/a&gt;&lt;/div&gt;
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://wongchiachen.blogspot.com/feeds/8887986681854848678/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/37562281/8887986681854848678' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/8887986681854848678'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37562281/posts/default/8887986681854848678'/><link rel='alternate' type='text/html' href='http://wongchiachen.blogspot.com/2012/02/inaddr-vs-inaddrt.html' title='in_addr v.s. in_addr_t'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>