aboutsummaryrefslogtreecommitdiff
path: root/source/notes/2017-05-05-parabola_auto-install.md
blob: 6fe4f596c6a8b5a4b9bcda91142c94ee80234d13 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
---
title: "Parabola auto-install"
date: 2017-05-05T12:18:36-08:00
date_display: May 5, 2017
---

Objectif => Je branche la clé, j'allume le pc, je lui dit de boot sur la clé, je reboot et parabola linux est pret !

# Exemples
Au préalable il faut évidamment créer un ISO pour la mettre sur la clé.

Script d'install après le boot de la clé :

- [https://shirotech.com/linux/how-to-automate-arch-linux-installation](https://shirotech.com/linux/how-to-automate-arch-linux-installation)
- [https://github.com/ewancoder/eal](https://github.com/ewancoder/eal)
- [https://github.com/ewancoder/aui](https://github.com/helmuthdu/aui)

# Mes scripts

## PC portable

Il suffit simplement de lancer `install.sh` et de se faire un café.

Attention à une chose, il n'y a pas de gestion d'erreur, si une erreur est survenu, le pc reboot et peut donc potentiellement plenter.

- [install.sh](https://share.neodarz.net/install.sh)

``` sh
#/bin/sh

loadkeys fr
pacman-key --refresh-keys
pacman --noconfirm -Syu
pacman --noconfirm -S vim tmux

echo "Creation of the new MBR/msdos partition table"
parted /dev/sda mklabel msdos

echo "Creation of the / parition"
parted /dev/sda mkpart primary ext4 1MiB 30GiB
parted /dev/sda set 1 boot on

echo "Creation of the /home partition"
parted /dev/sda mkpart primary ext4 30GiB 100%

echo "Creation of the filesystems"
mkfs.ext4 -F /dev/sda1
mkfs.ext4 -F /dev/sda2

echo "mounting partitions"
mount /dev/sda1 /mnt
mkdir -p /mnt/home
mount /dev/sda2 /mnt/home
pacstrap -i /mnt base base-devel

echo "Generation of an fstab"
genfstab -U -p /mnt >> /mnt/etc/fstab
curl https://share.neodarz.net/chroot-install.sh > /mnt/chroot-install.sh
chmod +x /mnt/chroot-install.sh

echo "Enter in chroot mode"
arch-chroot /mnt /chroot-install.sh
echo "Done!"

echo "Unmounting all partition and reboot !"
umount −R /mnt
reboot
```

- [chroot-install.sh](https://share.neodarz.net/chroot-install.sh)

``` sh
#/bin/sh

echo "Editing locale file"
sed -i -e 's/#en_US.UTF-8/en_US.UTF-8/g' /etc/locale.gen
sed -i -e 's/#fr_FR.UTF-8/fr_FR.UTF-8/g' /etc/locale.gen

echo "Generating locales"
locale-gen

echo "Set correct lang & keymap"
echo LANG=en_US.UTF-8 > /etc/locale.conf
export LANG=en_US.UTF-8
echo KEYMAP=fr > /etc/vconsole.conf

echo "Set time zone & hardware clock"
ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime
hwclock --systohc --utc

echo "Set hostname"
echo march > /etc/hostname
sed -i -e 's/localhost$/march/g' /etc/hosts

echo "Configuration of the network"
systemctl enable dhcpcd.service

echo "Set root password"
passwd

echo "Installation of grub"
pacman --noconfirm -S grub os-prober
grub-install --target=i386-pc --recheck /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg

pacman --noconfirm -S iw wpa_supplicant dialog python python-appdirs python-packaging python-pyparsing python-setuptools python-dbus dbus slim  git vim tmux qterminal openssh stow xorg xorg-xinit i3

echo "Disable fucking BEEEEP"
echo "blacklist pcspkr" > /etc/modprobe.d/nobeep.conf

echo "Add neodarz user"
useradd -m neodarz
passwd neodarz

echo "Set correct xinit configuration"
echo "i3" > /home/neodarz/.xinitrc

echo "Configuration of sudoers"
sed -i -e 's/root ALL=(ALL) ALL/root ALL=(ALL) ALL\nneodarz ALL=(ALL) NOPASSWD:ALL/g' /etc/sudoers

echo "Configuration of slim"
sed -i -e "s/#default_user        simone/default_user neodarz/g" /etc/slim.conf
sed -i -e "s/#focus_password      no/focus_password yes/g" /etc/slim.conf
sed -i -e "s/# numlock             on/numlock on/g" /etc/slim.conf
xorgConf=/etc/X11/xorg.conf.d/10-evdev.conf
echo 'Section "InputClass"' > $xorgConf
echo '         Identifier "evdev keyboard catchall"' >> $xorgConf
echo '         MatchIsKeyboard "on"' >> $xorgConf
echo '         MatchDevicePath "/dev/input/event*"' >> $xorgConf
echo '         Driver "evdev"' >> $xorgConf
echo '         # Keyboard layouts' >> $xorgConf
echo '         Option "XkbLayout" "fr"' >> $xorgConf
echo 'EndSection' >> $xorgConf

systemctl enable slim.service

echo "Compiling i3pystatys"
cd /tmp
sudo -u neodarz git clone https://aur.archlinux.org/i3pystatus.git
cd i3pystatus
sudo -u neodarz makepkg --noconfirm -si
cd ..
sudo -u neodarz git clone https://aur.archlinux.org/ttf-font-awesome.git
cd ttf-font-awesome
sudo -u neodarz makepkg --noconfirm -si
cd ..
sudo -u neodarz git clone https://aur.archlinux.org/otf-fira-code.git
cd otf-fira-code
sudo -u makepkg --noconfirm -si
cd /home/neodarz

echo "Installing some python modules"
sudo easy_install netifaces colour dbus

echo "Installation my beautiful ascii theme"
sudo -u neodarz git clone https://git.neodarz.net/neodarz/scripts_shit/dotfiles_ascii.git
cd dotfiles_ascii
sudo -u neodarz git checkout t410
sudo -u neodarz stow i3
sudo -u neodarz stow i3pystatus
sudo -u neodarz stow qterminal.org

sed -i -e 's/neodarz ALL=(ALL) NOPASSWD:ALL/neodarz ALL=(ALL) ALL/g' /etc/sudoers

rm /chroot-install.sh

```

## Raspberry PI 2

Scripts d'installation auto pour ma rasp. Actuellement avec le rootfs d'archlinux.

### Installation · Configuration

Permet d'installer les programmes souhaiter et de de configurer la connexion auto.

- [pi_install.sh](https://share.neodarz.net/pi_install.sh)

``` sh
#!/bin/sh
pacman -Syu --noconfirm
pacman -S --noconfirm git vim gcc xfce4 xorg xf86-video-fbdev

pacman -S --noconfirm python-pip libudev0 gcc
pip install python-uinput pyudev

git clone https://github.com/NeodarZ/waveshare-7inch-touchscreen-driver.git
cd waveshare-7inch-touchscreen-driver
cp config.txt /boot/config.txt
cp touch.py /usr/bin/touch.py
chmod +x /usr/bin/touch.py
cp touch.sh /usr/lib/systemd/system/touch.service
systemctl daemon-reload
systemctl enable touch.service
echo 'if [ -z "$DISPLAY" ] && [ -n "$XDG_VTNR" ] && [ "$XDG_VTNR" -eq 1 ]; then' >> /home/alarm/.bashrc
echo "        exec startxfce4" >> /home/alarm/.bashrc
echo "fi" >> /home/alarm/.bashrc
mkdir /etc/systemd/system/getty@tty1.service.d
echo "[Service]" >> /etc/systemd/system/getty@tty1.service.d/override.conf 
echo "ExecStart=" >> /etc/systemd/system/getty@tty1.service.d/override.conf
echo "ExecStart=-/usr/bin/agetty --autologin alarm --noclear %I $TERM" >> /etc/systemd/system/getty@tty1.service.d/override.conf
systemctl daemon-reload
reboot

```

### Preparation 

Permet l'installation d'archlinux sur le support. 

(Oui, les scripts sont presque identique...)

#### SD

Un second script qui prend en paramètre `<sdX>`.
Cette version ne permet uniquement de faire l'installation sur la carte SD.

- [mount_SD.sh](https://share.neodarz.net/mount_SD.sh)

``` sh
#!/bin/sh
sudo update-binfmts --enable qemu-arm
sudo rm -r boot
sudo rm -r root
sudo rm -r pre
sudo mkdir root
sudo mkdir boot
sudo mkdir pre
# Décommenter la commande suivante pour pouvoir parramétrer la clé correctement.
#sudo fdisk /dev/$1
sudo mkfs.vfat /dev/$11
sudo mount /dev/$11 boot
sudo mkfs.ext4 /dev/$12 
sudo mount /dev/$12 root
sudo bsdtar -xpf ../ArchLinuxARM-rpi-2-latest.tar.gz.1 -C pre
sudo cp /usr/bin/qemu-arm-static pre/usr/bin
sudo cp ~/pi_install.sh pre
sudo chmod +x pre/pi_install.sh
sudo arch-chroot pre /pi_install.sh
sudo cp -rp pre/boot/* boot
sudo cp -rp pre/* root
sync
sudo umount boot root
```

#### SD + USB (ou HDD)

Une version alternative au second script cité plus haut, il prend en paramètre `<sdX>` ET `<sdY>``<sdX>` est la partion /root et `<sdY>` la partion /root.
Cette version permet de booter sur la carte SD puis de basculer sur la clé USB afin de ne pas trop faire soufrir la carte microSD.

- [mount_USB.sh](https://share.neodarz.net/mount_USB.sh)

``` sh
#!/bin/sh
sudo update-binfmts --enable qemu-arm
sudo rm -r boot
sudo rm -r root
sudo rm -r pre
sudo mkdir root
sudo mkdir boot
sudo mkdir pre
# Décommenter la commande suivante pour pouvoir parramétrer la clé correctement
#sudo fdisk /dev/$1
sudo mkfs.vfat /dev/$11
sudo mount /dev/$11 boot
sudo mkfs.ext4 /dev/$21 
sudo mount /dev/$21 root
sudo bsdtar -xpf ../ArchLinuxARM-rpi-2-latest.tar.gz.1 -C pre
sudo cp /usr/bin/qemu-arm-static pre/usr/bin
sudo cp ~/pi_install.sh pre
sudo chmod +x pre/pi_install.sh
sudo arch-chroot pre /pi_install.sh
sudo cp -rp pre/boot/* boot
sudo cp -rp pre/* root
sync
sudo umount boot root
```