(no commit message)
[libreriscv.git] / HDL_workflow / coriolis2.mdwn
1 # Installing Coriolis2
2
3 ## debootstrap
4
5 First set up an schroot debootstrap jail with debian 9.0.
6 Follow these instructions taken from here:
7 <https://www.debian.org/releases/stretch/amd64/apds03.html.en>
8
9 In advance, edit /etc/fstab and add mount points: personally I prefer using
10 mount --bind points
11
12 /dev /home/chroot/coriolis/dev none bind 0 0
13 /dev/pts /home/chroot/coriolis/dev/pts none bind 0 0
14 /proc /home/chroot/coriolis/proc none bind 0 0
15 /sys /home/chroot/coriolis/sys none bind 0 0
16 /tmp /home/chroot/coriolis/tmp none bind 0 0
17
18 Then run these commands:
19
20 sudo bash
21 apt-get install debootstrap schroot
22 mkdir /opt/chroot/coriolis
23 /usr/sbin/debootstrap stretch !$ http://ftp.us.debian.org/debian
24 mount -a
25 echo "coriolis2" > /home/chroot/coriolis/etc/debian_chroot
26
27 To do some preparation (users):
28
29 chroot /home/chroot/coriolis2 /bin/bash
30 adduser {yourpreferredusername}
31
32 It is best to make the username the same as the first user that
33 was added during the *main* (non-chroot) debian install, so that
34 uid 1000 matches between both main and chroot. You can check
35 this by looking at /etc/passwd as root, or by typing "id".
36
37 lkcl@fizzy:~$ id
38 uid=1000(lkcl) gid=1000(lkcl) groups=1000(lkcl),5(tty),....
39
40 Alternatively, /etc/passwd and /etc/group may
41 be mount-bound as well as /home however if you later forget you did
42 this and decide to delete the chroot, you will delete the entire /home
43 of your main system, as well as /etc/passwd.
44
45 You may wish to follow some of the other things such as configuring apt,
46 locales and keyboard, from the above-linked debian-admin HOWTO.
47 bootloader, kernel, ssh access, all these are
48 unnecessary. do run "apt clean" to clear out /var/cache/apt/archives
49 in the chroot.
50
51 ## schroot
52
53 Create an schroot file section:
54
55 [coriolis]
56 description=Debian Stable for Coriolis
57 directory=/home/chroot/coriolis
58 groups=sbuild-security,lkcl,users
59
60 Now as an *ordinary* user - not as root - you may type:
61
62 lkcl@fizzy:~$ schroot -c coriolis
63
64 and, due to the contents of /etc/debian\_chroot, and that you were in
65 fact logged in as uid 1000 and did in fact add a user to the chroot
66 as uid 1000, the prompt should become:
67
68 (coriolis2)lkcl@fizzy:~$
69
70 ## coriolis2
71
72 These are nominally taken from
73 <https://www-soc.lip6.fr/equipe-cian/logiciels/coriolis/>
74 however there are errors in the original at the moment.
75 Do not try qt5, it will not work.
76
77 In ~/.bash\_profile add the following so that builds (rebuilds) if you need
78 them will be quicker, and you can run the GUI from the chroot:
79
80 export PATH=/usr/lib/ccache:"$PATH"
81 export DISPLAY=:0.0
82
83 Second (or at a new terminal / xterm), log in as root on the host (not
84 the chroot) then do schroot -c coriolis to get to be root in the chroot
85 (or, you can install sudo in the chroot and then do "sudo bash" in the
86 chroot).
87
88 Then run the following commands, as root, *in* the chroot:
89
90 apt-get update
91 apt-get install -y build-essential binutils-dev \
92 git cmake bison flex gcc python-dev \
93 libboost-all-dev libboost-python-dev \
94 zlib1g-dev \
95 libbz2-dev libxml2-dev rapidjson-dev libbz2-dev \
96 doxygen dvipng graphviz python-sphinx \
97 texlive-fonts-extra texlive-lang-french \
98 libqwt-dev qt4-dev-tools python-qt4 \
99 libxt-dev libxpm-dev libmotif-dev \
100 yosys
101
102 Then, as the ordinary (non-root) user in the schroot:
103
104 mkdir -p ~/coriolis-2.x/src
105 cd ~/coriolis-2.x/src
106 git clone https://www-soc.lip6.fr/git/coriolis.git
107
108 cd coriolis
109 git checkout devel
110 ./bootstrap/ccb.py --project=coriolis --make="-j4 install"
111
112 To set up the alliance environment, run this:
113
114 eval `~/coriolis-2.x/src/coriolis/bootstrap/coriolisEnv.py`
115
116 For convenience that may be placed in a file and "sourced", to avoid
117 having to look this page up every time
118
119 echo "eval `~/coriolis-2.x/src/coriolis/bootstrap/coriolisEnv.py`" > \
120 ~/coriolisenv
121 source ~/coriolisenv
122
123 To run the graphical editor go to the bin directory
124
125 cd ~/coriolis-2.x/Linux.MyARCH/Release.Shared/install/bin
126 ./cgt
127
128 Then run the following commands from the menubar
129
130 Tutorials / Run Demo (Python Flavour)
131
132 The following window will appear
133
134 [[!img chicken.png ]]
135
136 click on the chicken several times
137
138 ## check out alliance and alliance-check-toolkit
139
140 in the schroot:
141
142 git clone https://gitlab.lip6.fr/jpc/alliance-check-toolkit.git
143
144 TODO: document how to build alliance, basically this:
145
146 In the chroot, as root:
147
148 apt-get update
149 apt-get install git build-essential libtool automake aclocal \
150 flex bison xfig imagemagick \
151 texlive texlive-pictures texlive-latex-extra \
152 libx11-dev libxt-dev libxaw7-dev libxpm-dev libmotif-dev
153
154 In the chroot, as the ordinary schroot user:
155
156 mkdir -p alliance/build alliance/install
157 cd ~/alliance
158 git clone https://www-soc.lip6.fr/git/alliance.git
159 cd alliance/src
160
161 Modify the following file (may not be necessary later):
162
163 diff --git a/alliance/src/pat/src/pat_desc_y.y b/alliance/src/pat/src/pat_desc_y.y
164 index 14720dbc..5390d2a4 100644
165 --- a/alliance/src/pat/src/pat_desc_y.y
166 +++ b/alliance/src/pat/src/pat_desc_y.y
167 @@ -85,8 +85,8 @@ unsigned short position; /* # of statement since last comment */
168 static struct papat *lcl_addpapat (lastpapat, label, line)
169
170 struct papat *lastpapat; /* pointer on the last papat structure */
171 -char *label; /* pattern's label */
172 -unsigned short line; /* pattern' line number */
173 +char *label;
174 +unsigned short line;
175
176 {
177 struct papat *ptpat;
178
179 Continue running as user:
180
181 ./autostuff
182 cd ~/alliance/build
183 export ALLIANCE_TOP=$HOME/alliance/install
184 export LD_LIBRARY_PATH=${ALLIANCE_TOP}/lib:${LD_LIBRARY_PATH}
185 ../alliance/src/configure --prefix=$ALLIANCE_TOP --enable-alc-shared
186 make -j1 install
187
188 # Tutorials and checks
189
190 * <https://gitlab.com/Chips4Makers/alliance-check-toolkit>
191
192 ## Information from Jean-Paul
193
194 There should be very soon a website at https://coriolis.lip6.fr (it is not yet
195 online). Where I intend to put all the documentation about Alliance/Coriolis.
196
197 In the meantime did you find the doc shipped with Coriolis ?
198
199 There are also very cursory informations about installing Alliance here:
200 https://www-soc.lip6.fr/en/team-cian/softwares/alliance/
201
202 You also have a third repository for various blocks/chip/examples here:
203 https://gitlab.lip6.fr/jpc/alliance-check-toolkit
204
205 (with a basic doc under "doc/"...)
206