Eine Einführung - Teil 14
Deutsche Angestellten Akademie
#include<stdio.h>
int main() {
printf("Hello World\n");
return 0;
}
Wir benötigen:
~$ sudo apt install build-essential
~$ gcc hello.c -o hello
# Programm ausführen
~$ ./hello
C | Programmiersprache - Der Linux-Kernel ist in „C“ geschrieben |
Compiler | Übersetzt den Quellcode in Maschinencode |
gcc | Gnu C-Compiler Collection |
Bibliotheken | Fertige Funktionen, die in andere Programme eingebunden werden ( unter Windoes oft *.dll-Dateien ) |
make | arbeitet Regeln und Abhängigkeitsdefinitionen in „Makefile“ ab -> startet den gcc |
Befehle
Der Quellcode mit Beschreibung https://github.com/usrbinnc/netcat-cpi-kernel-module
Aktuelle Kernel Quellen herunterladen https://www.kernel.org
$ sudo apt-get install build-essential \
libncurses5-dev gcc libssl-dev bc
# für XXXXXXX entspr. Kernel Version einsetzen!
$ cd ~/Downloads
$ tar xvf linux-XXXXXXX.tar.xz
$ cd linux-XXXXXXX
$ cp /boot/config-4.13-XXXXXXX .config
$ make menuconfig
# Das dauert jetzt....
# ca 90min auf einem Core i3 @2.4MHz
# -j 4 -> Nutze 4 Kerne
~$ make -j4 deb-pkg
#Kernel installieren:
~$ sudo dpkg -i ../linux-*.deb
# reboot -> neuen Kernel wählen
~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223,6G 0 disk
├─sda1 8:1 0 245M 0 part /boot/efi
├─sda2 8:2 0 511M 0 part /boot
└─sda3 8:3 0 222,9G 0 part
└─sda3_crypt 253:0 0 222,8G 0 crypt
├─xubuntu--vg-root 253:1 0 215,1G 0 lvm /
└─xubuntu--vg-swap_1 253:2 0 7,7G 0 lvm
/etc/default/grub -> Anpassungen
/etc/grub.d/ -> scripts die boot.cfg generieren
00_header*
05_debian_theme*
10_linux*
20_linux_xen*
20_memtest86+*
30_os-prober*
30_uefi-firmware*
40_custom*
41_custom*
/boot/grub/grub.cfg -> nicht bearbeiten!
/etc/default/grub
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
GRUB_BACKGROUND="/usr/share/images/grub/050817-N-3488C-028.tga"
Aussehen verändern
nach Änderung:
sudo update-grub