wiki/content/tank.md

316 lines
9.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: tank
---
A Lenovo ThinkPad X201 Tablet. My first ever ThinkPad, a very useful tool for
my studies. It has been my daily driver, on and off, for over a year and a
half in total. I really like it when I compute on the go, especially on
trains or on mountains (not to be confused with [mountain](./mountain.html)).
I now try to bring it with me and use it wherever, just to add to the list on
this page.
![tank in tablet mode, used to browse a PostgreSQL database while standing in a square](img/tank.jpg)
## Specifications
* Birth date: 2011-03-13
* Bought second-hand, received on 2017-07-28
* Product ID: 45N4955
* Machine type: 3113
* Serial: R9C12M0
* Core i5-520UM
* Intel HD Graphics
* 12.1" 1280×800 (WXGA) TFT display
* Wacom Serial Penabled Pen
* 8GB PC3-8500 RAM
* SanDisk SSD PLUS 240GB 19136F805340
* Ricoh 5-in-1 Multicard Reader
* Intel 10/100/1000 Ethernet
* Intel HD audio with CX20585 codec
* ThinkPad Modem (MDC-3.0, 56kbps HDA)
* 2 MiniPCI Express slots:
* Intel Centrino Advanced-N 6200 Wi-Fi card
* Qualcomm Gobi 2000 3G and GPS card, Verizon-locked
* ExpressCard/54 slot
* 2MP webcam
* UPEK Touchstrip TCRD4C fingerprint reader
* Broadcom BCM2046 Bluetooth Controller
* TPM 1.2 embedded security system
* HDAPS support
* UltraNav trackpoint
* Intel Active Management Technology 6.x
## Places it went to
Just taking it with me without doing anything does not count; I have to turn
it on and use it for a place to enter this list. This list is unordered.
I sometimes add some fun things I did in each place, when I remember them.
* Grenoble
* My student room
* Daily driver for a year
* Helped set up [Carthage](cybrecluster/carthage.html)
* My first apartment
* At my best friend's place in Championnet
* On a hill near the Désert de l'Écureuil
* Maintenance on an autonomous webcam and weather station
* <abbr title="Institut de Géographie Alpine">IGA</abbr> (abandoned geography institute)
* Saw the Tour de France on a road down there while listening to the organizer's radio comms
* Checked the connection to a Wi-Fi network provided by a router many kilometers away
* Institut Dolomieu (abandoned geology institute)
* Tried to draw some floorplans, and ate breakfast there
* Charmant Som (a summit)
* Listed QRZs received during a hamradio contest
* Answered random people's questions about the 6 meter-high antenna we deployed there
* La Coop
* [La Turbine](https://turbine.coop)
* Under [Étoile Polaire](https://www.grenoble-patrimoine.fr/element/276/595-etoile-polaire-mark-di-suvero.htm)
* Analyzed Wi-Fi scanning results from a ESP32 contraption to look for weak security Wi-Fi access points
* "Sushione" sushi restaurant
WEP password: `1234567890`
* Place Verdun
* Learnt how to tunnel through another server to connect to a server over SSH
* Wrote some thoughts on using a laptop outside in a journal
* A park alongside the courthouse
* Uploaded 120 edits to OpenStreetMap through StreetComplete
* Did some quasi-meditative writing on where I was and how I was feeling
* Kateb Yacine public library
* City center public library
* On a concrete barrier of the A480 motorway
* Wrote an XQuery script and a post for [RSRSSS](./rsrsss)
* French Coffee Shop
* Found out when tank was born
* Wrote yet another post for [RSRSSS](./rsrsss)
* La Buisse
* Plateau du Grand Ratz
* Looked for Wi-Fi networks on a paraglider takeoff zone
* Identified a [wind measurement station](http://www.balisemeteo.com/balise.php?idBalise=16) next to us
* Lille
* Lille-Flandres train station
* Gaston Berger high school
* Removed the Windows partition, making it my first Linux-only computer
* Solved riddles in law class using regexes
* Played games, wrote blog articles, learnt Python during classes
* Lille university
* <abbr title="Institut Universitaire de Technologie">IUT</abbr>
* Pierant's room
* Liliad (library)
* Plugged into [a dead drop](https://deaddrops.com/db/?page=view&id=1108)
* On the stairs to the opera
* Walking around a neighborhood
* Got a few WEP passwords using wifite
* Wattrelos
* My great-aunt's house
* Douai
* At home
* Walking around the city center, breaking into WEP passwords using Kali-Linux
* "Le Prince" kebab restaurant
WEP password: `1122334455`
* F.P.'s place
* Brest
* My aunt's apartment
* Configured a router
* Le Folgoët
* My grandparents' house
* Watching movies
* Thionville
* My parents' home
* Daily driver for a few months
* Typed this list
* Paris
* Teklia's previous office
* Carcassonne
* My grandparents' house
* Finished a 4+ month-long group project alone in 2 days
* My aunt and uncle's house
* Valence
* Valence-TGV Rhône-Alpes-Sud train station
* Won a game of Battle for Wesnoth
* Trains
* Grenoble → Valence TGV
* Valence TGV → Paris-Lyon
* Valence TGV → Carcassonne
* Installed NetworkManager on Alpine to get the Wi-Fi to work
* Worked on parsing binary files using [Kaitai Struct](https://kaitai.io)
* Valence TGV → Grenoble
* Found a 0.05£ coin
* Narbonne → Valence TGV
* Learnt a lot about the Well-Known Binary format
* Grenoble → Lyon Perrache
* Lyon Part-Dieu → Paris-Lyon
* Lyon Part-Dieu → Grenoble
* Wrote a blog post
* [Contributed to OSM](https://www.openstreetmap.org/node/9790785617)
* Chambéry → Paris-Lyon
* Posted to [RSRSSS](./rsrsss/)
* Grenoble → Paris-Lyon
* Paris-Lyon → Grenoble
* Douai → Lille Flandres
* Lille Flandres → Douai
* Worked on my first C# project, a coffee machine simulator
* Played with my Windows 98SE VM
* Rewrote my [French blog](./brainshit.html)
* Played Euro Truck Simulator 2 while standing
## Alpine setup
[wsinatra](https://lambdacreate.com) got me interested in Alpine, and I am
having issues with Ubuntu 20 on most computers with `tank` being the worst
affected, so I switched to Alpine.
Below are some notes on the initial setup process.
* <https://wiki.alpinelinux.org/wiki/LVM_on_LUKS>
* <https://wiki.alpinelinux.org/wiki/Xfce_Setup>
1. Go through setup-alpine until the disk prompt, then `^C`
2. ```
apk add lvm2 cryptsetup parted haveged e2fsprogs syslinux
rc-service haveged start
parted -a optimal
# Inside parted
mklabel msdos
mkpart primary ext4 0% 100M
mkpart primary ext4 100M 100%
set 1 boot on
# Check that everything looks right
print
quit
haveged -n 0 | dd of=/dev/sda2
cryptsetup luksFormat /dev/sda2
cryptsetup luksOpen /dev/sda2 lvmcrypt
pvcreate /dev/mapper/lvmcrypt
vgcreate vg0 /dev/mapper/lvmcrypt
lvcreate -L 9G vg0 -n swap
lvcreate -l 100%FREE vg0 -n root
# Check that everything looks right
lvscan
mkfs.ext4 /dev/sda1
mkfs.ext4 /dev/vg0/root
mkswap /dev/vg0/swap
swapon /dev/vg0/swap
mount -t ext4 /dev/vg0/root /mnt/
mkdir -v /mnt/boot
mount -t ext4 /dev/sda1 /mnt/boot
setup-disk -m sys /mnt/
echo "/dev/vg0/swap\tnone\tswap\tdefaults\t0 0" > /mnt/etc/fstab
```
3. Add `cryptsetup` and `keymap` to the `features` in `/mnt/etc/mkinitfs/mkinitfs.conf`
4. ```
mkinitfs -c /mnt/etc/mkinitfs/mkinitfs.conf -b /mnt/ $(ls /mnt/lib/modules/)
blkid -s UUID -o value /dev/sda2 > ~/uuid
```
5. Set the proper UUID in `/mnt/etc/update-extlinux.conf`:
```
default_kernel_opts="… cryptroot=UUID=<THE UUID> cryptdm=lvmcrypt"
```
Also check this:
```
modules=sd-mod,usb-storage,ext4,cryptsetup,keymap,cryptkey,kms,lvm
root=UUID=<UUID of /dev/mapper/vg0-root>
```
6. ```
chroot /mnt/
# This may cause errors on `/boot`, ignore them
update-extlinux
exit
dd bs=440 count=1 conv=notrunc if=/mnt/usr/share/syslinux/mbr.bin of=/dev/sda
cd
umount /mnt/boot
swapoff /dev/vg0/swap
umount /mnt
vgchange -a n
cryptsetup luksClose lvmcrypt
reboot
```
7. Enable the edge repos in `/etc/apk/repositories`
8. ```
apk update
setup-xorg-base xfce4 xfce4-terminal lightdm-gtk-greeter xfce4-screensaver dbus-x11 sudo
apk add \
xf86-video-intel \
xf86-input-synaptics \
xf86-input-libinput \
xf86-input-evdev \
xf86-input-wacom \
setxkbmap \
elogind \
polkit-elogind \
gvfs-fuse \
gvfs-mtp \
gvfs-smb \
fuse-openrc \
thunar-volman \
udisks2 \
pavucontrol \
libreoffice \
firefox \
pass \
git \
gvim \
xfce4-screenshooter \
syncthing \
xfce4-whiskermenu-plugin \
onboard \
evolution \
vlc \
openssh \
tlp \
cpufreqd \
blueman \
pipewire-alsa \
pipewire-pulse \
wireplumber
cat <<EOF
Section "InputClass"
Identifier "Keyboard Default"
MatchIsKeyboard "yes"
Option "XkbLayout" "fr"
Option "XkbVariant" "oss"
Option "XkbOptions" "compose:rctrl"
EndSection
EOF >/usr/share/X11/xorg.conf.d/20-keyboard.conf
adduser -g lucidiot lucidiot
```
9. Use `visudo` to allow `lucidiot` and add `Defaults insults`
10. Edit `/etc/conf.d/bootmisc` to set `wipe_tmp` to `YES`
11. ```
rc-update del networking boot
rc-update del wpa_supplicant boot
rc-update del wpa_cli boot
rc-update add dbus default
rc-update add fuse default
rc-update add networking default
rc-update add wpa_supplicant default
rc-update add cpufreqd default
rc-update add tlp default
rc-update add bluetooth default
rc-update add swap default
rc-service dbus start
rc-service fuse start
rc-service lightdm start
```
12. Login into XFCE, check everything works
13. `rc-update add lightdm default`