coriolis/documentation/output/pages/install-cases.html

302 lines
17 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Contents Installation in a chrooted Environment Setting up the chrooted root directory Configure schroot Installing Packages in Debian 9 Creating a Duplicate User Installation of Alliance / Coriolis ...">
<meta name="keywords" content="">
<link rel="icon" href="../favicon.ico">
<title>Install Cases - Coriolis VLSI CAD Tools [offline]</title>
<!-- Stylesheets -->
<link href="../theme/css/bootstrap.css" rel="stylesheet">
<link href="../theme/css/fonts.css" rel="stylesheet">
<link href="../theme/css/nest.css" rel="stylesheet">
<link href="../theme/css/pygment.css" rel="stylesheet">
<link href="../theme/css/coriolis.css" rel="stylesheet">
<!-- /Stylesheets -->
<script src="../theme/js/jquery.min.js"></script>
<script src="../theme/js/bootstrap.min.js"></script>
<!-- RSS Feeds -->
<!-- /RSS Feeds -->
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<!-- Header -->
<div class="header-container" style="background: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)), url('../images/common/layout-motif-faded-4.png'); background-position: center; ">
<!--
<div class="container">
<nav class="navbar navbar-default">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="../"><img class="mr20" src="../images/common/Coriolis-logo-white-4-small.png" alt="logo">Coriolis VLSI CAD Tools [offline]</a>
</div>
<ul class="nav navbar-nav">
<li><a href="../pages/gitlab.html">Git</a></li>
<li><a href="../pages/documentation.html">Documentation</a></li>
<li class="dropdown">
<button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
<span class="caret"></span>Topics
</button>
<ul class="dropdown-menu">
<li><a class="dropdown-item " href="../pages/homepage.html">Coriolis <span class="sc">vlsi</span> Backend Tools</a></li>
<li><a class="dropdown-item active" href="../pages/install-cases.html">Install Cases</a></li>
<li><a class="dropdown-item " href="../pages/symbolic-layout.html">Symbolic Layout</a></li>
</ul>
</li>
</ul>
</div>
</nav>
</div> <!-- navbar container -->
-->
<!-- Static navbar -->
<div class="container">
<div class="header-nav">
<div class="header-logo">
<a class="pull-left" href="../"><img class="mr20" src="../images/common/Coriolis-logo-white-4-small.png" alt="logo">Coriolis VLSI CAD Tools [offline]</a>
</div>
<div class="nav pull-right">
<a href="../pages/gitlab.html">Git</a>
<a href="../pages/documentation.html">Documentation</a>
</div>
<div class="nav pull-right">
<div class="dropdown">
<button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
<span class="caret"></span>Topics
</button>
<ul class="dropdown-menu">
<li><a class="dropdown-item " href="../pages/homepage.html">Coriolis <span class="sc">vlsi</span> Backend Tools</a></li>
<li><a class="dropdown-item active" href="../pages/install-cases.html">Install Cases</a></li>
<li><a class="dropdown-item " href="../pages/symbolic-layout.html">Symbolic Layout</a></li>
</ul>
</div>
</div>
</div>
</div>
<!-- /Static navbar -->
<!-- Header -->
<div class="container header-wrapper">
<div class="row">
<div class="col-lg-12">
<div class="header-content">
<a href="https://www.lip6.fr/"><img class="mr20" height="60px" src="../images/common/LogoLIP6Blanc.png" alt="LIP6"></a>
<a href="https://www.sorbonne-universite.fr/"><img class="mr20" height="60px" src="../images/common/logo-SU-blanc-700px.png" alt="Sorbonne Universite"></a>
<a href="https://www.cnrs.fr/"><img class="mr20" height="60px" src="../images/common/LOGO-cnrs-white-large.png" alt="CNRS"></a>
<h1 class="header-title text-uppercase">Install Cases</h1>
<div class="header-underline"></div>
</div>
</div>
</div>
</div>
<!-- /Header -->
</div>
<!-- /Header -->
<!-- Content -->
<div class="container content">
<!-- -*- Mode: rst -*- -->
<div class="contents topic" id="contents">
<p class="topic-title first">Contents</p>
<ul class="simple">
<li><a class="reference internal" href="#installation-in-a-chrooted-environment" id="id2">Installation in a <em>chrooted</em> Environment</a><ul>
<li><a class="reference internal" href="#setting-up-the-chrooted-root-directory" id="id3">Setting up the <em>chrooted</em> root directory</a></li>
<li><a class="reference internal" href="#configure-schroot" id="id4">Configure <tt class="docutils literal">schroot</tt></a></li>
<li><a class="reference internal" href="#installing-packages-in-debian-9" id="id5">Installing Packages in Debian 9</a></li>
<li><a class="reference internal" href="#creating-a-duplicate-user" id="id6">Creating a Duplicate User</a></li>
<li><a class="reference internal" href="#installation-of-alliance-coriolis" id="id7">Installation of <span class="sc">Alliance</span> / <span class="sc">Coriolis</span></a></li>
</ul>
</li>
</ul>
</div>
<!-- -*- Mode: rst; explicit-buffer-name: "definition.rst<documentation/etc>" -*- -->
<!-- HTML/LaTeX backends mixed macros. -->
<!-- Acronyms & names. -->
<!-- URLs -->
<!-- Standard CAO/VLSI Concepts. -->
<!-- Alliance & MBK Concepts -->
<!-- Hurricane Concepts. -->
<div class="section" id="installation-in-a-chrooted-environment">
<h2><a class="toc-backref" href="#id2">Installation in a <em>chrooted</em> Environment</a></h2>
<p>In this case, we will setup a Debian 9 installation of Alliance/Coriolis under
a <span class="sc">Scientific Linux</span> 7 <span class="sc">os</span>. This should also work for <span class="sc">rhel</span> or <span class="sc">CentOS</span>.</p>
<p>Debian 9 will be referred as the <em>guest OS</em> or the <em>chrooted</em>.
<span class="sc">Scientific Linux</span> will be referred as the <em>host OS</em>.</p>
<div class="section" id="setting-up-the-chrooted-root-directory">
<h3><a class="toc-backref" href="#id3">Setting up the <em>chrooted</em> root directory</a></h3>
<p>We need the <tt class="docutils literal">debootstrap</tt> and <tt class="docutils literal">schroot</tt> packages (from the <span class="sc">epel</span> repository).</p>
<div class="highlight"><pre><span></span>root@pc:~# yum install debootstrap schroot
</pre></div>
<p>On the <strong>host</strong> <span class="sc">os</span>, as the <span class="cb">root</span> user, create the directory into which the
whole <em>chrooted</em> <span class="sc">os</span> will reside:</p>
<div class="highlight"><pre><span></span>root@pc:~# mkdir -p /home/chroot/debian9.coriolis
root@pc:~# debootstrap stretch /home/chroot/debian9.coriolis http://ftp.us.debian.org/debian
root@pc:~# <span class="nb">echo</span> <span class="s2">&quot;debian9.coriolis&quot;</span> &gt; /home/chroot/debian9.coriolis/etc/debian_chroot
</pre></div>
<p>Then, we need to give access the <em>chrooted</em> distribution to some kernel filesystem
of the host, namely <tt class="docutils literal">dev</tt>, <tt class="docutils literal">proc</tt>, <tt class="docutils literal">sys</tt> &amp; <tt class="docutils literal">tmp</tt>. On the <em>host</em> filesytem,
add to <tt class="docutils literal">/etc/fstab</tt>:</p>
<div class="highlight"><pre><span></span># Your host normal mounts.
# ...
# For Jail chroot of Debian9.
/dev /home/chroot/debian9.coriolis/dev none bind 0 0
/dev/pts /home/chroot/debian9.coriolis/dev/pts none bind 0 0
/proc /home/chroot/debian9.coriolis/proc none bind 0 0
/sys /home/chroot/debian9.coriolis/sys none bind 0 0
/tmp /home/chroot/debian9.coriolis/tmp none bind 0 0
</pre></div>
<p>Mount them:</p>
<div class="highlight"><pre><span></span>root@pc:~# mount -a
</pre></div>
</div>
<div class="section" id="configure-schroot">
<h3><a class="toc-backref" href="#id4">Configure <tt class="docutils literal">schroot</tt></a></h3>
<p>Edit <tt class="docutils literal">/etc/schroot.d/schroot.conf</tt> as follow:</p>
<div class="highlight"><pre><span></span>[debian9.coriolis]
description=Debian 9 stretch
directory=/home/chroot/debian9.coriolis
users=ego
</pre></div>
<div class="note">
<p class="first admonition-title">Note</p>
<p><strong>Users in the schrooted environment.</strong> They must exists on both the host
system <strong>and</strong> in the chrooted one. It is best if they also have the same
<span class="sc">uid</span> / <span class="sc">gid</span> and home directories (relative to their respectives root).
For example, for a <tt class="docutils literal">ego</tt> user:</p>
<table class="last table">
<colgroup>
<col width="57%" />
<col width="43%" />
</colgroup>
<thead valign="bottom">
<tr><th class="head">On the Host</th>
<th class="head">In the <em>chrooted</em> <span class="sc">os</span></th>
</tr>
</thead>
<tbody valign="top">
<tr><td><tt class="docutils literal">/home/ego</tt></td>
<td>N/A</td>
</tr>
<tr><td><tt class="docutils literal">/home/chroot/debian9.coriolis/home/ego</tt></td>
<td><tt class="docutils literal">/home/ego</tt></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="section" id="installing-packages-in-debian-9">
<h3><a class="toc-backref" href="#id5">Installing Packages in Debian 9</a></h3>
<p>Now that <tt class="docutils literal">schroot</tt> is set, we can log in the guest <span class="sc">os</span> as <tt class="docutils literal">root</tt> and add the
minimal needed package set to build <span class="sc">Alliance</span> / <span class="sc">Coriolis</span>.</p>
<div class="highlight"><pre><span></span>root@pc:~# schroot -c debian9.coriolis -u root
<span class="o">(</span>debian9.coriolis<span class="o">)</span>root@pc:~# <span class="nb">export</span> <span class="nv">DEBIAN_FRONTEND</span><span class="o">=</span>noninteractive
<span class="o">(</span>debian9.coriolis<span class="o">)</span>root@pc:~# apt-get update
<span class="o">(</span>debian9.coriolis<span class="o">)</span>root@pc:~# apt-get -y install build-essential binutils-dev <span class="se">\</span>
git cmake bison flex gcc python-dev <span class="se">\</span>
libboost-all-dev libboost-python-dev <span class="se">\</span>
zlib1g-dev libxml2-dev rapidjson-dev <span class="se">\</span>
libbz2-dev <span class="se">\</span>
qt4-dev-tools libqwt-dev python-qt4 <span class="se">\</span>
autotools-dev automake <span class="se">\</span>
libxt-dev libxpm-dev libmotif-dev <span class="se">\</span>
yosys <span class="se">\</span>
vim
<span class="o">(</span>debian9.coriolis<span class="o">)</span>root@pc:~# apt-get clean
</pre></div>
</div>
<div class="section" id="creating-a-duplicate-user">
<h3><a class="toc-backref" href="#id6">Creating a Duplicate User</a></h3>
<p>As stated before, we must create in the guest <span class="sc">os</span> a user that also exist on the
host <span class="sc">os</span>, and with the same <span class="sc">uid</span> and home directory. Here we assume that <tt class="docutils literal">ego</tt>
has an <span class="sc">uid</span> of 20000.</p>
<div class="highlight"><pre><span></span><span class="o">(</span>debian9.coriolis<span class="o">)</span>root@pc:~# adduser --uid <span class="m">20000</span> ego
Adding user <span class="sb">`</span>ego<span class="s1">&#39; ...</span>
<span class="s1"> Adding new group `ego&#39;</span> <span class="o">(</span>20000<span class="o">)</span> ...
Adding new user <span class="sb">`</span>ego<span class="s1">&#39; (20000) with group `ego&#39;</span> ...
Creating home directory <span class="sb">`</span>/home/ego<span class="s1">&#39; ...</span>
<span class="s1"> Copying files from `/etc/skel&#39;</span> ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information <span class="k">for</span> ego
Enter the new value, or press ENTER <span class="k">for</span> the default
Full Name <span class="o">[]</span>: Me Myself and I
Room Number <span class="o">[]</span>: 404
Work Phone <span class="o">[]</span>: <span class="m">666</span> <span class="m">666</span> 666
Home Phone <span class="o">[]</span>: 3615
Other <span class="o">[]</span>:
Is the information correct? <span class="o">[</span>Y/n<span class="o">]</span> Y
<span class="o">(</span>debian9.coriolis<span class="o">)</span>root@pc:~#
</pre></div>
</div>
<div class="section" id="installation-of-alliance-coriolis">
<h3><a class="toc-backref" href="#id7">Installation of <span class="sc">Alliance</span> / <span class="sc">Coriolis</span></a></h3>
<p>Download the installer script: <a class="reference external" href="../scripts/socInstaller.py">socInstaller.py</a>. And put it in the home
directory of the user <tt class="docutils literal">ego</tt> in the guest <span class="sc">os</span>.</p>
<div class="note">
<p class="first admonition-title">Note</p>
<p class="last">As it is more easier to download it from the host <span class="sc">os</span>, you may do
so and just copy it under <tt class="docutils literal">/home/chroot/debian9.coriolis/home/ego</tt>.
As they share the same <span class="sc">uid</span>, the copy is allowed.</p>
</div>
<p>Now we can connect as the <tt class="docutils literal">ego</tt> user on the guest <span class="sc">os</span>:</p>
<div class="highlight"><pre><span></span>ego@pc:~&gt; schroot -c debian9.coriolis -u ego
<span class="o">(</span>debian9.coriolis<span class="o">)</span>jpc@pc:~&gt; ./socInstaller.py --chroot --profile<span class="o">=</span>Debian9 <span class="se">\</span>
--do-alliance --do-coriolis
</pre></div>
</div>
</div>
</div>
<!-- /Content -->
<!-- Footer -->
<div class="footer gradient-2">
<div class="container footer-container ">
<div class="row">
<div class="col-xs-4 col-sm-3 col-md-3 col-lg-3">
<div class="footer-title">Social</div>
<ul class="list-unstyled">
</ul>
</div>
<div class="col-xs-4 col-sm-3 col-md-3 col-lg-2">
</div>
<div class="col-xs-4 col-sm-3 col-md-3 col-lg-3">
<div class="footer-title">Links</div>
<ul class="list-unstyled">
<li><a href="https://coriolis.lip6.fr/" target="_blank">Alliance/Coriolis</a></li>
<li><a href="https://www-soc.lip6.fr/" target="_blank">CIAN Team Website</a></li>
<li><a href="https://f-si.org" target="_blank">Free Silicon Foundation</a></li>
</ul>
</div>
<div class="col-xs-12 col-sm-3 col-md-3 col-lg-4">
<p class="pull-right text-right">
<small><em>Proudly powered by <a href="http://docs.getpelican.com/" target="_blank">pelican</a></em></small><br/>
<small><em><span class="sc">NEST</span> theme by <a href="https://github.com/molivier" target="_blank">molivier</a></em></small><br/>
<small>Copyright © 2020-2020 Sorbonne Universite</small>
</p>
</div>
</div>
</div>
</div>
<!-- /Footer -->
</body>
</html>