Skip to content
Snippets Groups Projects
Commit 4a3900e5 authored by Peter Gerwinski's avatar Peter Gerwinski
Browse files

Beispiele 11.4.2022

parent b77c0667
Branches
No related tags found
No related merge requests found
obj-m += chardev-1.o
obj-m += chardev-2.o
obj-m += chardev-3.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
......
#include <stdio.h>
int main (void)
{
char buffer[100];
FILE *f = fopen ("dev/chardev", "r");
fgets (buffer, 100, stdin);
fgets (buffer, 100, f);
printf ("%s\n", buffer);
fclose (f);
return 0;
}
#include <stdio.h>
#include <error.h>
#include <errno.h>
int main (void)
{
char buffer[100];
FILE *f = fopen ("dev/chardev", "r");
if (!f)
error (errno, errno, "could not open dev/chardev");
fgets (buffer, 100, stdin);
fgets (buffer, 100, f);
printf ("%s\n", buffer);
fclose (f);
return 0;
}
......@@ -56,7 +56,7 @@ int init_module(void)
}
// Create module class
printk(KERN_INFO "Creating device class LCD...\n");
printk(KERN_INFO "Creating device class ...\n");
dev_Class = class_create(THIS_MODULE,DEVICE_NAME);
if( dev_Class == NULL)
{
......
......@@ -83,7 +83,7 @@ int init_module(void)
*/
void cleanup_module(void)
{
printk(KERN_INFO "module chardev-4 cleanup\n");
printk(KERN_INFO "module chardev-3 cleanup\n");
//Unregister the device
if (chr_dev)
{
......
cassini/home/peter/bo/2022ss/bs/20220411> dir -d glibc*
drwxr-xr-x 73 peter peter 4096 Apr 11 13:29 glibc-2.28
-rw-r--r-- 1 peter peter 899676 Mär 17 23:12 glibc_2.28-10+deb10u1.debian.tar.xz
-rw-r--r-- 1 peter peter 8921 Mär 17 23:12 glibc_2.28-10+deb10u1.dsc
-rw-r--r-- 1 peter peter 17061292 Okt 30 2018 glibc_2.28.orig.tar.xz
cassini/home/peter/bo/2022ss/bs/20220411> apt-get source libc6
#include <stdio.h>
int main (void)
{
printf ("Hello, world!\n");
return 0;
}
#include <stdio.h>
int main (void)
{
printf ("Hello, world!");
return 0;
}
#include <stdio.h>
int main (void)
{
puts ("Hello, world!");
return 0;
}
cassini/home/peter/bo/2022ss/bs/20220404> sudo insmod chardev-1.ko
cassini/home/peter/bo/2022ss/bs/20220404> sudo dmesg | tail -15
[2143588.930267] usb 4-1.5: Manufacturer: Chicony Electronics Co.,Ltd.
[2143588.930270] usb 4-1.5: SerialNumber: 200901010001
[2143588.937888] uvcvideo: Found UVC 1.00 device USB2.0 HD UVC WebCam (04f2:b330)
[2143588.955826] uvcvideo 4-1.5:1.0: Entity type for entity Extension 4 was not initialized!
[2143588.955832] uvcvideo 4-1.5:1.0: Entity type for entity Processing 2 was not initialized!
[2143588.955834] uvcvideo 4-1.5:1.0: Entity type for entity Camera 1 was not initialized!
[2143588.955951] input: USB2.0 HD UVC WebCam: USB2.0 HD as /devices/pci0000:00/0000:00:1d.0/usb4/4-1/4-1.5/4-1.5:1.0/input/input426
[2144883.840634] Hello world 1.
[2144980.069509] Goodbye world 1.
[2145413.353119] I was assigned major number 241. To talk to
[2145413.353121] the driver, create a dev file with
[2145413.353121] 'mknod /dev/chardev c 241 0'.
[2145413.353121] Try various minor numbers. Try to cat and echo to
[2145413.353122] the device file.
[2145413.353122] Remove the device file and module when done.
cassini/home/peter/bo/2022ss/bs/20220404> ls -l dev
insgesamt 0
crw-r--r-- 1 root root 241, 0 Apr 4 14:39 chardev
cassini/home/peter/bo/2022ss/bs/20220404> cat dev/chardev
I already told you 0 times Hello world!
cassini/home/peter/bo/2022ss/bs/20220404> cat dev/chardev
I already told you 1 times Hello world!
cassini/home/peter/bo/2022ss/bs/20220404> cat dev/chardev
I already told you 2 times Hello world!
cassini/home/peter/bo/2022ss/bs/20220404> sudo rmmod chardev_1
cassini/home/peter/bo/2022ss/bs/20220404> ls -l dev/chardev
crw-r--r-- 1 root root 241, 0 Apr 4 14:39 dev/chardev
cassini/home/peter/bo/2022ss/bs/20220404> cat dev/chardev
cat: dev/chardev: Kein passendes Gerät bzw. keine passende Adresse gefunden
cassini/home/peter/bo/2022ss/bs/20220404> cd ../20220411/
cassini/home/peter/bo/2022ss/bs/20220411> ls -l
insgesamt 28
-rw-r--r-- 1 peter peter 4069 Apr 4 2014 chardev-1.c
-rw-r--r-- 1 peter peter 4659 Mai 5 2017 chardev-2.c
-rw-r--r-- 1 peter peter 4997 Apr 26 2019 chardev-3.c
lrwxrwxrwx 1 peter peter 16 Apr 10 12:31 Makefile -> Makefile-modules
-rw-r--r-- 1 peter peter 159 Apr 10 12:35 Makefile-modules
-rw-r--r-- 1 peter peter 2495 Apr 10 12:43 SCRATCH
cassini/home/peter/bo/2022ss/bs/20220411> mkdir dev
cassini/home/peter/bo/2022ss/bs/20220411> sudo mknod dev/chardev c 241 1
cassini/home/peter/bo/2022ss/bs/20220411> ls -l dev
insgesamt 0
crw-r--r-- 1 root root 241, 1 Apr 11 11:42 chardev
cassini/home/peter/bo/2022ss/bs/20220411> ls -l dev/chardev
crw-r--r-- 1 root root 241, 1 Apr 11 11:42 dev/chardev
cassini/home/peter/bo/2022ss/bs/20220411> cat dev/chardev
cat: dev/chardev: Kein passendes Gerät bzw. keine passende Adresse gefunden
cassini/home/peter/bo/2022ss/bs/20220411>
/*
* Called when a process writes to dev file: echo "hi" > /dev/hello
*/
static ssize_t
device_write(struct file *filp, const char *buff, size_t len, loff_t * off)
{
printk(KERN_ALERT "Sorry, this operation isn't supported.\n");
return -EINVAL;
}
cassini/home/peter/bo/2022ss/bs/20220411> echo "Hallo" > dev/chardev
bash: dev/chardev: Keine Berechtigung
cassini/home/peter/bo/2022ss/bs/20220411> sudo su -
[sudo] Passwort für peter:
Das hat nicht funktioniert, bitte nochmal probieren.
[sudo] Passwort für peter:
root@cassini:~# . bash-settings.pg
cassini/root# cd ~peter/bo/2022ss/bs/20220411/
cassini/home/peter/bo/2022ss/bs/20220411# echo "Hallo" > dev/chardev
-bash: echo: Schreibfehler: Das Argument ist ungültig.
cassini/home/peter/bo/2022ss/bs/20220411#
brw-rw---- 1 root disk 8, 32 Apr 11 12:57 sdc
brw-rw---- 1 root disk 8, 33 Apr 11 12:57 sdc1
drwxr-xr-x 2 root root 400 Apr 11 12:57 block
crw------- 1 root root 241, 0 Apr 11 13:00 chardev
drwxr-xr-x 2 root root 4000 Apr 11 13:00 char
drwxrwxrwt 2 root root 60 Apr 11 13:00 shm
crw-rw-rw- 1 root tty 5, 2 Apr 11 13:00 ptmx
cassini/home/peter/bo/2022ss/bs/20220411> cat /dev/chardev
cat: /dev/chardev: Keine Berechtigung
Sie haben neue Post in /var/mail/peter.
cassini/home/peter/bo/2022ss/bs/20220411> sudo cat /dev/chardev
I already told you 0 times Hello world!
Sie haben Post in /var/mail/peter.
cassini/home/peter/bo/2022ss/bs/20220411> ls -l dev/chardev
crw-r--r-- 1 root root 241, 1 Apr 11 11:42 dev/chardev
cassini/home/peter/bo/2022ss/bs/20220411> cat dev/chardev
I already told you 1 times Hello world!
cassini/home/peter/bo/2022ss/bs/20220411> sudo mknod dev/chardev0 c 241 0
cassini/home/peter/bo/2022ss/bs/20220411> ls -l dev/
insgesamt 0
crw-r--r-- 1 root root 241, 1 Apr 11 11:42 chardev
crw-r--r-- 1 root root 241, 0 Apr 11 13:04 chardev0
cassini/home/peter/bo/2022ss/bs/20220411> cat dev/chardev0
I already told you 2 times Hello world!
cassini/home/peter/bo/2022ss/bs/20220411> mknod dev/chardev0u c 241 0
mknod: dev/chardev0u: Die Operation ist nicht erlaubt
cassini/home/peter/bo/2022ss/bs/20220411> which mknod
/bin/mknod
cassini/home/peter/bo/2022ss/bs/20220411> ls -l $(which mknod)
-rwxr-xr-x 1 root root 68544 Feb 28 2019 /bin/mknod
cassini/home/peter/bo/2022ss/bs/20220411> cat /dev/chardev
cat: /dev/chardev: Keine Berechtigung
cassini/home/peter/bo/2022ss/bs/20220411> sudo cat /dev/chardev
I already told you 3 times Hello world!
cassini/home/peter/bo/2022ss/bs/20220411> ls -l dev/* /dev/chardev
crw------- 1 root root 241, 0 Apr 11 13:00 /dev/chardev
crw-r--r-- 1 root root 241, 1 Apr 11 11:42 dev/chardev
crw-r--r-- 1 root root 241, 0 Apr 11 13:04 dev/chardev0
cassini/home/peter/bo/2022ss/bs/20220411> sudo rmmod chardev_1
rmmod: ERROR: Module chardev_1 is not currently loaded
cassini/home/peter/bo/2022ss/bs/20220411> sudo rmmod chardev_3
cassini/home/peter/bo/2022ss/bs/20220411> ls -l dev/* /dev/chardev
ls: Zugriff auf '/dev/chardev' nicht möglich: Datei oder Verzeichnis nicht gefunden
crw-r--r-- 1 root root 241, 1 Apr 11 11:42 dev/chardev
crw-r--r-- 1 root root 241, 0 Apr 11 13:04 dev/chardev0
cassini/home/peter/bo/2022ss/bs/20220411> cat dev/chardev
cat: dev/chardev: Kein passendes Gerät bzw. keine passende Adresse gefunden
cassini/home/peter/bo/2022ss/bs/20220411> cat dev/chardev0
cat: dev/chardev0: Kein passendes Gerät bzw. keine passende Adresse gefunden
cassini/home/peter/bo/2022ss/bs/20220411>
../common/os-layers-1.jpg
\ No newline at end of file
../common/os-layers-2.jpg
\ No newline at end of file
../common/os-layers-3.jpg
\ No newline at end of file
../common/os-layers-4.jpg
\ No newline at end of file
../common/os-layers-5.jpg
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment