Pagina 12 – Squashfs:

sudo apt install squashfs-tools
mksquashfs /home/linuxmag /tmp/homedirlinuxmag.squashfs
mksquashfs /home/linuxmag /tmp/homedirlinuxmag-root.squashfsn
-force-uid root -force-gid root
mksquashfs /home/linuxmag/ /tmp/homedirlinuxmag-betsandenuitgesloten.
squashfs -e bin -e wachtwoorden.nl
sudo mkdir /mnt/squashfs
sudo mount -t squashfs -o loop /tmp/homedirlinuxmag.squashfsn
/mnt/squashfs
sudo mount -t squashfs -o loop /tmp/homedirlinuxmag-root.squashfsn
/mnt/squashfs
mkdir /tmp/squashfs
unsquashfs -d /tmp/squashfs/ -f /tmp/homedirlinuxmag.squashfs
unsquashfs -d /tmp -f /tmp/homedirlinuxmag.squashfs -e .profile
mkdir /tmp/mint
sudo mount -o loop /tmp/linuxmint-21.1-cinnamon-64bit.ison
/tmp/mint/
sudo mount -t squashfs -o loop /tmp/mint/casper/filesystem.
squashfs /mnt/squashfs/
sudo unsquashfs -d /tmp/squashfs/ -f /tmp/mint/casper/filesystem.
squashfs
chmod u+x ~/bin/mntsquashfs.sh

Pagina 13 – Squashfs

#!/bin/bash
error_message() {
echo -e "\nusage:n
mntsquashfs filename_squashfs_
filesystem [ mountpoint ]"
}
if [ "$2" = "" ]
then
mountpoint="/mnt/
squashfs"
else
mountpoint="$2"
fi
mntstat=$(mount | grepn
$mountpoint)
n=${#mntstat}
if [ $n -gt 0 ]
then
sudo umount $mountpoint
fi
if [ "$1" = "" ]
then
error_message
else
sudo mount -t squashfsn
o loop $1 $mountpoint
fi

Pagina 17 – JavaScript

Download de HTML-bestanden

Pagina 20 – Lees je fitnesstracker uit via bluetooth

from machine import Pin, I2C 
from ssd1306 import SSD1306_I2C 
i2c = I2C(scl=Pin(22), sda=Pin(21), freq=100000) 
display = SSD1306_I2C(128, 64, i2c) 
display.text("Hello world", 0, 0, 1) 
display.show() 

PAGINA 21:
import bluetooth 
from machine import Pin, I2C 
import uasyncio as asyncio 

import aioble 
from ssd1306 import SSD1306_I2C 

HRS_UUID = bluetooth.UUID(0x180D) 
HRM_UUID = bluetooth.UUID(0x2A37) 

i2c = I2C(scl=Pin(22), sda=Pin(21), freq=100000) 
display = SSD1306_I2C(128, 64, i2c) 

def decode_heart_rate(data): 
    heart_rate = data[1] 
    if data[0] & 1: 
        heart_rate = heart_rate + (data[2] << 8) 
    return heart_rate 

def show_text(text): 
    display.fill(0) 
    display.text(text, 0, 0, 1) 
    display.show() 

async def find_heart_rate_sensor(): 
    show_text("Searching sensor...") 
    async with aioble.scan(5000, interval_us=30000, window_us=30000, active=True) as scanner: 
        async for result in scanner: 
            if HRS_UUID in result.services() or result.name() == "InfiniTime": 
              return result.device 
    return None 

async def main(): 
    device = await find_heart_rate_sensor() 
    if not device: 
        show_text("Sensor not found") 
        return 
   try: 
        show_text("Connecting...") 
        connection = await device.connect() 
    except asyncio.TimeoutError: 
        show_text("Connection timeout") 
        return 

    async with connection: 
        try: 
            hrs_service = await connection.service(HRS_UUID) 
            hrm_characteristic = await hrs_service.characteristic(HRM_UUID) 
        except asyncio.TimeoutError: 
            show_text("Timeout") 
            return 
        await hrm_characteristic.subscribe(notify=True) 
        while True: 
            heart_rate = decode_heart_rate(await hrm_characteristic.notified()) 
            display.fill(0) 
            display.text(str(heart_rate), 56, 32, 1) 
            display.show() 

asyncio.run(main()) 

Pagina 31 – Compileren

LISTING 1

sudo apt install linux-headers-6.1.0-18-amd64 gcc g++ make docutils-common
wget https://download.geany.org/geany-2.0.tar.gz
tar -xvzf geany-2.0.tar.gz
cd geany-2.0
./configure
sudo apt install libgtk-3-dev
make
sudo make install
geany

PAGINA 32 – LISTING 2:

sudo apt install linux-headers-6.1.0-18-amd64 gcc make g++ docutils-common libgtk-3-dev
wget https://download.geany.org/geany-2.0.tar.gz
tar -xvzf geany-2.0.tar.gz
cd geany-2.0
cp geany.desktop.in geany.desktop
./configure --enable-binreloc --prefix=/usr/
make
mkdir ~/AppDir
make install DESTDIR=~/AppDir
cd ~/AppDir/usr/bin/
ln -s ../share/geany/geany.glade geany.glade
./geany

LISTING 3:

sudo apt install cmake g++ qt5-default openssl libssl-dev libzip-dev qtbase5-private-dev qtdeclarative5-dev qtwebengine5-dev qt5keychain-dev qttools5-dev sqlite3 libsqlite3-dev libqt5svg5-dev zlib1g-dev libqt5websockets5-dev qtquickcontrols2-5-dev shared-mime-info
sudo apt install cmake g++ qtbase5-dev openssl libssl-dev libzip-dev qtbase5-private-dev qtdeclarative5-dev qtwebengine5-dev qt5keychain-dev qttools5-dev sqlite3 libsqlite3-dev libqt5svg5-dev zlib1g-dev libqt5websockets5-dev qtquickcontrols2-5-dev shared-mime-info
wget https://github.com/nextcloud/desktop/archive/refs/heads/master.zip
sudo apt install zip
unzip master
cd desktop-master
mkdir ~/nextcloud-desktop-client
cmake -S . -B build -DCMAKE_INSTALL_PREFIX=~/nextcloud-desktop-client -DCMAKE_BUILD_TYPE=Release
sudo apt install libkf5archive-dev
sudo apt install inkscape
sudo apt install python3-sphinx texlive-latex-extra doxygen libcmocka-dev libkf5kio-dev extra-cmake-modules
sudo cmake --build build --target install
cd ~/nextcloud-desktop-client/bin/
./nextcloud
echo "/home/linuxmag/nextcloud-desktop-client/lib" | sudo tee --append /etc/ld.so.conf.d/x86_64-linux-gnu.conf
sudo ldconfig

LISTING 4

sudo apt install cmake g++ qtbase5-dev openssl libssl-dev libzip-dev qtbase5-private-dev qtdeclarative5-dev qtwebengine5-dev qt5keychain-dev qttools5-dev sqlite3 libsqlite3-dev libqt5svg5-dev zlib1g-dev libqt5websockets5-dev qtquickcontrols2-5-dev shared-mime-info zip libkf5archive-dev inkscape python3-sphinx texlive-latex-extra doxygen libcmocka-dev libkf5kio-dev extra-cmake-modules
wget https://github.com/nextcloud/desktop/archive/refs/heads/master.zip
unzip master
cd desktop-master
cmake -S . -B build -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release
sudo cmake --build build --target install