(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
100 Then, as the ordinary (non-root) user in the schroot:
101
102 mkdir -p ~/coriolis-2.x/src
103 cd ~/coriolis-2.x/src
104 git clone https://www-soc.lip6.fr/git/coriolis.git
105
106 cd coriolis
107 git checkout devel
108 ./bootstrap/ccb.py --project=coriolis --make="-j4 install"
109
110 To set up the alliance environment, run this:
111
112 eval `~/coriolis-2.x/src/coriolis/bootstrap/coriolisEnv.py`
113
114 For convenience that may be placed in a file and "sourced", to avoid
115 having to look this page up every time
116
117 echo "eval `~/coriolis-2.x/src/coriolis/bootstrap/coriolisEnv.py`" > \
118 ~/coriolisenv
119 source ~/coriolisenv
120
121 To run the graphical editor go to the bin directory
122
123 cd ~/coriolis-2.x/Linux.MyARCH/Release.Shared/install/bin
124 ./cgt
125
126 Then run the following commands from the menubar
127
128 Tutorials / Run Demo (Python Flavour)
129
130 The following window will appear
131
132 [[!img chicken.png ]]
133
134 click on the chicken several times
135
136 ## check out alliance and alliance-check-toolkit
137
138 in the schroot:
139
140 git clone https://gitlab.lip6.fr/jpc/alliance-check-toolkit.git
141
142 TODO: document how to build alliance, basically this:
143
144 mkdir -p alliance/build alliance/install
145 cd ~/alliance
146 git clone https://www-soc.lip6.fr/git/alliance.git
147 cd alliance/src
148 ./autostuff
149 cd ~/alliance/build
150 export ALLIANCE_TOP=$HOME/alliance/install
151 export LD_LIBRARY_PATH=${ALLIANCE_TOP}/lib:${LD_LIBRARY_PATH}
152 ../alliance/src/configure --prefix=$ALLIANCE_TOP --enable-alc-shared
153 make -j1 install
154
155 # Tutorials and checks
156
157 * <https://gitlab.com/Chips4Makers/alliance-check-toolkit>
158
159 ## Information from Jean-Paul
160
161 There should be very soon a website at https://coriolis.lip6.fr (it is not yet
162 online). Where I intend to put all the documentation about Alliance/Coriolis.
163
164 In the meantime did you find the doc shipped with Coriolis ?
165
166 There are also very cursory informations about installing Alliance here:
167 https://www-soc.lip6.fr/en/team-cian/softwares/alliance/
168
169 You also have a third repository for various blocks/chip/examples here:
170 https://gitlab.lip6.fr/jpc/alliance-check-toolkit
171
172 (with a basic doc under "doc/"...)
173