Skip to content

Commit

Permalink
deploy: 18fcf08
Browse files Browse the repository at this point in the history
  • Loading branch information
csukuangfj committed Dec 13, 2023
1 parent dd94c0d commit acac4c4
Show file tree
Hide file tree
Showing 7 changed files with 127 additions and 4 deletions.
67 changes: 67 additions & 0 deletions _sources/onnx/install/aarch64-embedded-linux.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ Finally, let us build `sherpa-onnx`_.
git clone https://github.com/k2-fsa/sherpa-onnx
cd sherpa-onnx
export BUILD_SHARED_LIBS=ON
./build-aarch64-linux-gnu.sh
After building, you will get two binaries:
Expand Down Expand Up @@ -171,3 +172,69 @@ the generated binaries.

Please create an issue at `<https://github.com/k2-fsa/sherpa-onnx/issues>`_
if you have any problems.

How to build static libraries and static linked binaries
---------------------------------------------------------

If you want to build static libraries and static linked binaries, please first
download a cross compile toolchain with GCC >= 9.0. The following is an example:

.. code-block:: bash
mkdir -p $HOME/software
cd $HOME/software
wget https://huggingface.co/csukuangfj/sherpa-ncnn-toolchains/resolve/main/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu.tar.xz
tar xvf gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu.tar.xz
Next, we need to set the following environment variable:

.. code-block:: bash
export PATH=$HOME/software/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/bin:$PATH
To check that we have installed the cross-compiling toolchain successfully, please
run:

.. code-block:: bash
aarch64-none-linux-gnu-gcc --version
which should print the following log:

.. code-block::
aarch64-none-linux-gnu-gcc (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10)) 9.2.1 20191025
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Now you can build static libraries and static linked binaries with the following commands:

.. code-block:: bash
git clone https://github.com/k2-fsa/sherpa-onnx
cd sherpa-onnx
export BUILD_SHARED_LIBS=OFF
./build-aarch64-linux-gnu.sh
You can use the following commands to check that the generated binaries are indeed static linked:

.. code-block:: bash
$ cd build-aarch64-linux-gnu/bin
$ ldd sherpa-onnx-alsa
not a dynamic executable
$ readelf -d sherpa-onnx-alsa
Dynamic section at offset 0xed9950 contains 30 entries:
Tag Type Name/Value
0x0000000000000001 (NEEDED) Shared library: [libasound.so.2]
0x0000000000000001 (NEEDED) Shared library: [libdl.so.2]
0x0000000000000001 (NEEDED) Shared library: [libm.so.6]
0x0000000000000001 (NEEDED) Shared library: [libpthread.so.0]
0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
0x000000000000000f (RPATH) Library rpath: [$ORIGIN:/star-fj/fangjun/open-source/sherpa-onnx/build-aarch64-linux-gnu/_deps/onnxruntime-sr
c/lib:]
0x000000000000000c (INIT) 0x404218
3 changes: 0 additions & 3 deletions _sources/onnx/pretrained_models/whisper/index.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,6 @@ Whisper
This section describes how to use models from `Whisper`_ with `sherpa-onnx`_
for non-streaming speech recognition.

.. hint::


.. toctree::
:maxdepth: 5

Expand Down
1 change: 1 addition & 0 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -451,6 +451,7 @@ <h1>sherpa<a class="headerlink" href="#sherpa" title="Permalink to this headline
<li class="toctree-l4"><a class="reference internal" href="onnx/install/aarch64-embedded-linux.html#install-toolchain">Install toolchain</a></li>
<li class="toctree-l4"><a class="reference internal" href="onnx/install/aarch64-embedded-linux.html#build-sherpa-onnx">Build sherpa-onnx</a></li>
<li class="toctree-l4"><a class="reference internal" href="onnx/install/aarch64-embedded-linux.html#sherpa-onnx-alsa">sherpa-onnx-alsa</a></li>
<li class="toctree-l4"><a class="reference internal" href="onnx/install/aarch64-embedded-linux.html#how-to-build-static-libraries-and-static-linked-binaries">How to build static libraries and static linked binaries</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="onnx/install/arm-embedded-linux.html">Embedded Linux (arm)</a><ul>
Expand Down
1 change: 1 addition & 0 deletions onnx/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@ <h1>sherpa-onnx<a class="headerlink" href="#sherpa-onnx" title="Permalink to thi
<li class="toctree-l3"><a class="reference internal" href="install/aarch64-embedded-linux.html#install-toolchain">Install toolchain</a></li>
<li class="toctree-l3"><a class="reference internal" href="install/aarch64-embedded-linux.html#build-sherpa-onnx">Build sherpa-onnx</a></li>
<li class="toctree-l3"><a class="reference internal" href="install/aarch64-embedded-linux.html#sherpa-onnx-alsa">sherpa-onnx-alsa</a></li>
<li class="toctree-l3"><a class="reference internal" href="install/aarch64-embedded-linux.html#how-to-build-static-libraries-and-static-linked-binaries">How to build static libraries and static linked binaries</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="install/arm-embedded-linux.html">Embedded Linux (arm)</a><ul>
Expand Down
56 changes: 56 additions & 0 deletions onnx/install/aarch64-embedded-linux.html
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@
<li class="toctree-l4"><a class="reference internal" href="#install-toolchain">Install toolchain</a></li>
<li class="toctree-l4"><a class="reference internal" href="#build-sherpa-onnx">Build sherpa-onnx</a></li>
<li class="toctree-l4"><a class="reference internal" href="#sherpa-onnx-alsa">sherpa-onnx-alsa</a></li>
<li class="toctree-l4"><a class="reference internal" href="#how-to-build-static-libraries-and-static-linked-binaries">How to build static libraries and static linked binaries</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="arm-embedded-linux.html">Embedded Linux (arm)</a></li>
Expand Down Expand Up @@ -171,6 +172,7 @@ <h2>Build sherpa-onnx<a class="headerlink" href="#build-sherpa-onnx" title="Perm
<p>Finally, let us build <a class="reference external" href="https://github.com/k2-fsa/sherpa-onnx">sherpa-onnx</a>.</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>git<span class="w"> </span>clone<span class="w"> </span>https://github.com/k2-fsa/sherpa-onnx
<span class="nb">cd</span><span class="w"> </span>sherpa-onnx
<span class="nb">export</span><span class="w"> </span><span class="nv">BUILD_SHARED_LIBS</span><span class="o">=</span>ON
./build-aarch64-linux-gnu.sh
</pre></div>
</div>
Expand Down Expand Up @@ -257,6 +259,60 @@ <h2>Build sherpa-onnx<a class="headerlink" href="#build-sherpa-onnx" title="Perm
<p>Please create an issue at <a class="reference external" href="https://github.com/k2-fsa/sherpa-onnx/issues">https://github.com/k2-fsa/sherpa-onnx/issues</a>
if you have any problems.</p>
</section>
<section id="how-to-build-static-libraries-and-static-linked-binaries">
<h2>How to build static libraries and static linked binaries<a class="headerlink" href="#how-to-build-static-libraries-and-static-linked-binaries" title="Permalink to this headline"></a></h2>
<p>If you want to build static libraries and static linked binaries, please first
download a cross compile toolchain with GCC &gt;= 9.0. The following is an example:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mkdir<span class="w"> </span>-p<span class="w"> </span><span class="nv">$HOME</span>/software
<span class="nb">cd</span><span class="w"> </span><span class="nv">$HOME</span>/software
wget<span class="w"> </span>https://huggingface.co/csukuangfj/sherpa-ncnn-toolchains/resolve/main/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu.tar.xz
tar<span class="w"> </span>xvf<span class="w"> </span>gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu.tar.xz
</pre></div>
</div>
<p>Next, we need to set the following environment variable:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="nb">export</span><span class="w"> </span><span class="nv">PATH</span><span class="o">=</span><span class="nv">$HOME</span>/software/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/bin:<span class="nv">$PATH</span>
</pre></div>
</div>
<p>To check that we have installed the cross-compiling toolchain successfully, please
run:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>aarch64-none-linux-gnu-gcc<span class="w"> </span>--version
</pre></div>
</div>
<p>which should print the following log:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">aarch64</span><span class="o">-</span><span class="n">none</span><span class="o">-</span><span class="n">linux</span><span class="o">-</span><span class="n">gnu</span><span class="o">-</span><span class="n">gcc</span> <span class="p">(</span><span class="n">GNU</span> <span class="n">Toolchain</span> <span class="k">for</span> <span class="n">the</span> <span class="n">A</span><span class="o">-</span><span class="n">profile</span> <span class="n">Architecture</span> <span class="mf">9.2</span><span class="o">-</span><span class="mf">2019.12</span> <span class="p">(</span><span class="n">arm</span><span class="o">-</span><span class="mf">9.10</span><span class="p">))</span> <span class="mf">9.2.1</span> <span class="mi">20191025</span>
<span class="n">Copyright</span> <span class="p">(</span><span class="n">C</span><span class="p">)</span> <span class="mi">2019</span> <span class="n">Free</span> <span class="n">Software</span> <span class="n">Foundation</span><span class="p">,</span> <span class="n">Inc</span><span class="o">.</span>
<span class="n">This</span> <span class="ow">is</span> <span class="n">free</span> <span class="n">software</span><span class="p">;</span> <span class="n">see</span> <span class="n">the</span> <span class="n">source</span> <span class="k">for</span> <span class="n">copying</span> <span class="n">conditions</span><span class="o">.</span> <span class="n">There</span> <span class="ow">is</span> <span class="n">NO</span>
<span class="n">warranty</span><span class="p">;</span> <span class="ow">not</span> <span class="n">even</span> <span class="k">for</span> <span class="n">MERCHANTABILITY</span> <span class="ow">or</span> <span class="n">FITNESS</span> <span class="n">FOR</span> <span class="n">A</span> <span class="n">PARTICULAR</span> <span class="n">PURPOSE</span><span class="o">.</span>
</pre></div>
</div>
<p>Now you can build static libraries and static linked binaries with the following commands:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>git<span class="w"> </span>clone<span class="w"> </span>https://github.com/k2-fsa/sherpa-onnx
<span class="nb">cd</span><span class="w"> </span>sherpa-onnx
<span class="nb">export</span><span class="w"> </span><span class="nv">BUILD_SHARED_LIBS</span><span class="o">=</span>OFF
./build-aarch64-linux-gnu.sh
</pre></div>
</div>
<p>You can use the following commands to check that the generated binaries are indeed static linked:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span><span class="nb">cd</span><span class="w"> </span>build-aarch64-linux-gnu/bin

$<span class="w"> </span>ldd<span class="w"> </span>sherpa-onnx-alsa
<span class="w"> </span>not<span class="w"> </span>a<span class="w"> </span>dynamic<span class="w"> </span>executable

$<span class="w"> </span>readelf<span class="w"> </span>-d<span class="w"> </span>sherpa-onnx-alsa

Dynamic<span class="w"> </span>section<span class="w"> </span>at<span class="w"> </span>offset<span class="w"> </span>0xed9950<span class="w"> </span>contains<span class="w"> </span><span class="m">30</span><span class="w"> </span>entries:
<span class="w"> </span>Tag<span class="w"> </span>Type<span class="w"> </span>Name/Value
<span class="w"> </span>0x0000000000000001<span class="w"> </span><span class="o">(</span>NEEDED<span class="o">)</span><span class="w"> </span>Shared<span class="w"> </span>library:<span class="w"> </span><span class="o">[</span>libasound.so.2<span class="o">]</span>
<span class="w"> </span>0x0000000000000001<span class="w"> </span><span class="o">(</span>NEEDED<span class="o">)</span><span class="w"> </span>Shared<span class="w"> </span>library:<span class="w"> </span><span class="o">[</span>libdl.so.2<span class="o">]</span>
<span class="w"> </span>0x0000000000000001<span class="w"> </span><span class="o">(</span>NEEDED<span class="o">)</span><span class="w"> </span>Shared<span class="w"> </span>library:<span class="w"> </span><span class="o">[</span>libm.so.6<span class="o">]</span>
<span class="w"> </span>0x0000000000000001<span class="w"> </span><span class="o">(</span>NEEDED<span class="o">)</span><span class="w"> </span>Shared<span class="w"> </span>library:<span class="w"> </span><span class="o">[</span>libpthread.so.0<span class="o">]</span>
<span class="w"> </span>0x0000000000000001<span class="w"> </span><span class="o">(</span>NEEDED<span class="o">)</span><span class="w"> </span>Shared<span class="w"> </span>library:<span class="w"> </span><span class="o">[</span>libc.so.6<span class="o">]</span>
<span class="w"> </span>0x000000000000000f<span class="w"> </span><span class="o">(</span>RPATH<span class="o">)</span><span class="w"> </span>Library<span class="w"> </span>rpath:<span class="w"> </span><span class="o">[</span><span class="nv">$ORIGIN</span>:/star-fj/fangjun/open-source/sherpa-onnx/build-aarch64-linux-gnu/_deps/onnxruntime-sr
c/lib:<span class="o">]</span>
<span class="w"> </span>0x000000000000000c<span class="w"> </span><span class="o">(</span>INIT<span class="o">)</span><span class="w"> </span>0x404218
</pre></div>
</div>
</section>
</section>


Expand Down
1 change: 1 addition & 0 deletions onnx/install/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,7 @@
<li class="toctree-l2"><a class="reference internal" href="aarch64-embedded-linux.html#install-toolchain">Install toolchain</a></li>
<li class="toctree-l2"><a class="reference internal" href="aarch64-embedded-linux.html#build-sherpa-onnx">Build sherpa-onnx</a></li>
<li class="toctree-l2"><a class="reference internal" href="aarch64-embedded-linux.html#sherpa-onnx-alsa">sherpa-onnx-alsa</a></li>
<li class="toctree-l2"><a class="reference internal" href="aarch64-embedded-linux.html#how-to-build-static-libraries-and-static-linked-binaries">How to build static libraries and static linked binaries</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="arm-embedded-linux.html">Embedded Linux (arm)</a><ul>
Expand Down
2 changes: 1 addition & 1 deletion searchindex.js

Large diffs are not rendered by default.

0 comments on commit acac4c4

Please sign in to comment.