Skip to content
4. Linux Tools
1

Tools

fdisk, git, docker, gcc

10.05.2024
4. Linux Tools
2

fdisk

Formatieren von Disks (SD-Karten, SSD, etc.)

10.05.2024
4. Linux Tools
3

Blockdevices: SD-Card (USB)

lsblk

sdb           8:16   1  29.8G  0 disk 
├─sdb1        8:17   1     1M  0 part 
├─sdb2        8:18   1    64M  0 part /media/mdc/BOOT
└─sdb3        8:19   1   128M  0 part /media/mdc/rootfs
  • Major Node (/dev/sdb)
    • Block als ganzes
  • Minor Node (/dev/sdb1)
    • Partition (ext4, ntfs, fat32, ubifs)
10.05.2024
4. Linux Tools
4

Blockdevices: SSD

lsblk

nvme0n1     259:0    0   477G  0 disk 
├─nvme0n1p1 259:1    0   450M  0 part 
├─nvme0n1p2 259:2    0    99M  0 part /boot/efi
├─nvme0n1p3 259:3    0    16M  0 part 
├─nvme0n1p4 259:4    0 251.8G  0 part /
├─nvme0n1p5 259:5    0 223.8G  0 part 
└─nvme0n1p6 259:6    0   882M  0 part
10.05.2024
4. Linux Tools
5

Was sind wichtige Unterschiede zwischen SD-Karte und SSD?

10.05.2024
4. Linux Tools
6

Partitionslayout z.B. für das Embedded Devboard DE1-SoC

sudo fdisk -l /dev/sdb

Disk /dev/sda: 29.8 GiB, 32010928128 bytes, 62521344 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xd68e23ba

Device     Boot  Start    End Sectors  Size Id Type
/dev/sda1         2048   4095    2048    1M a2 unknown
/dev/sda2         4096 135167  131072   64M  b W95 FAT32
/dev/sda3       135168 397311  262144  128M 83 Linux
10.05.2024
4. Linux Tools
7

GIT

Logo

10.05.2024
4. Linux Tools
8

GIT CVS

Version Management Tool

  • Geschrieben von Linux Torvalds
  • Begründer / Erfinder von GIT
  • Wird für den Kernel verwendet
10.05.2024
4. Linux Tools
9

Braucht git einen Server?

10.05.2024
4. Linux Tools
10

GIT vs. andere CVS

  • GIT ist dezentral
    • ... hat keinen Single Point of Failure
  • Alle git clones haben immer die ganze History
  • Branches müssen nicht gemerged werden
    • ... führt zu viel weniger Konflikten
  • Open Source unter GPL
  • Kann Offline eingesetzt werde
    • um Checkpoints einzurichten
  • Filebasiert
  • schnell!!
10.05.2024
4. Linux Tools
11

GIT vs GitHub vs GitLab

  • GIT ist dezentral
    • ... hat keinen Single Point of Failure
  • Alle git clones haben immer die ganze History
  • Branches müssen nicht gemerged werden
    • ... führt zu viel weniger Konflikten
  • Open Source unter GPL
  • Kann Offline eingesetzt werde
    • um Checkpoints einzurichten
10.05.2024
4. Linux Tools
12

Repo erstellen

git init

10.05.2024
4. Linux Tools
13

Repo clonen (z.B. den Kernel)

git clone https://github.com/torvalds/linux.git

10.05.2024
4. Linux Tools
14

Branches anzeigen

git branch -a

zeigt auch remote branches an

10.05.2024
4. Linux Tools
15

Tags anzeigen

git tag

10.05.2024
4. Linux Tools
16

Auf Tag / Branch wechseln

git checkout v5.5.7 -b local-v5.5.7

10.05.2024
4. Linux Tools
17

Git Checkout

  • Wechselt auf einen anderen branch / tag
  • -b erstellt einen lokalen neuen branch
  • ... d.h. der lokale Branche ist nicht der gleiche Branche wie upstream!
  • ... man kann so besser experimentieren
10.05.2024
4. Linux Tools
18

"Lockt" man bei einem checkout den branch für andere?

10.05.2024
4. Linux Tools
19

Änderungen von Upstream herunterladen

git fetch

10.05.2024
4. Linux Tools
20

Änderungen übernehmen (merge)

git merge origin/master

10.05.2024
4. Linux Tools
21

Typischer workflow

bash
git fetch
git merge origin/master

# kurz
git pull
10.05.2024
4. Linux Tools
22

Tracken, aufnehmen einer Änderung

git commit -am "neues feature"

10.05.2024
4. Linux Tools
23

Änderung für andere veröffentlichen

git push origin master"

10.05.2024
4. Linux Tools
24

Konflikte

Auto-merging Main.java
CONFLICT (content): Merge conflict in Main.java
Automatic merge failed; fix conflicts and then commit the result.
  • Muss von Hand aufgelöst werden.
10.05.2024
4. Linux Tools
25

rebase vs. merge

  • merge ist chronologisch
  • rebase ist chronologisch, aber in einem branch
    • ... d.h. commits die logisch zusammengehören werden nicht im Zick-Zack in die History eingewebt.
10.05.2024
4. Linux Tools
26

GitHub

  • Microsoft Produkt
  • nicht Open Source
  • Hilft mit UI für das Management
  • Static Hosting
  • Communityaspekt
10.05.2024
4. Linux Tools
27

GitLab

  • semi Open Source (Open Source Freemium)
  • Hilf mit UI für das Management
  • gute Projektmanagement Tools
  • Issuetracker, Time Tracking
  • Static Hosting
  • Premium Feature: Epics / Gantt Charts
10.05.2024
4. Linux Tools
28

Git im Einsatz

Diese Slides / Page

10.05.2024
4. Linux Tools
29

Für was wird Docker eingesetzt?

10.05.2024
4. Linux Tools

docker

30

Docker

  • Light weight Container
  • keine volle Virtualisierung
  • erlaubt das Verwenden von isolierten Dependencies
  • ... Applikationen brauchen bestimmte Versionen von Libraries.
10.05.2024
4. Linux Tools

docker

31

Docker Compose

  • erlaubt das verwenden von mehreren Docker Containers gleichzeitig
  • Volumes: erlaubt das "mounten" von Directories aus dem Hostsystem in das Gastsystem
  • Mittels Daemon (up -d) können Container ganz einfach gestartet werden.
10.05.2024
4. Linux Tools

docker

32

Nachteile auf Embedded

  • Viel Resourcen (libraries nicht mehr shared)
  • Oft Images nicht für ARM kompiliert
10.05.2024
4. Linux Tools
33

ARM GCC Compiler

  • GNU Compiler für C und C++
  • Maintained von ARM (früher Linaro)
  • Unterschiedliche Targets (z.B. linux-eabi).
  • als alternative existiert der clang Compiler.
10.05.2024