summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile20
-rw-r--r--application-devel/Makefile2
-rw-r--r--application-devel/app-debugging/Makefile4
-rw-r--r--application-devel/app-debugging/handout_app-debugging_de.tex29
-rw-r--r--application-devel/app-debugging/pres_app-debugging_de.tex36
-rw-r--r--application-devel/compile-tools/Makefile4
-rw-r--r--application-devel/cross-devel/Makefile4
-rw-r--r--application-devel/cross-devel/pres_cross-devel-ppc-qemu_de.tex38
-rw-r--r--application-devel/cross-devel/pres_cross-devel_de.tex35
-rw-r--r--application-devel/devel-environment/Makefile4
-rw-r--r--application-devel/devel-environment/handout_devel-environment_de.tex22
-rw-r--r--application-devel/devel-environment/pres_devel-environment_de.tex46
-rw-r--r--application-devel/devel-scenarios/Makefile4
-rw-r--r--application-devel/devel-scenarios/pres_devel_scenarios_de.tex68
-rw-r--r--application-devel/embedded-devel/Makefile4
-rw-r--r--application-devel/embedded-devel/pres_embedded-devel_de.tex55
-rw-r--r--application-devel/posix-ipc/Makefile4
-rw-r--r--application-devel/posix-ipc/pres_posix_ipc_de.tex77
-rw-r--r--application-devel/section.tex1
-rw-r--r--confighandout.tex13
-rw-r--r--configmasterhandout.tex13
-rw-r--r--configmasterpres.tex36
-rw-r--r--configpres.tex38
-rw-r--r--flash-memory/Makefile2
-rw-r--r--flash-memory/TODO1
-rw-r--r--flash-memory/flash-filesystems/Makefile4
-rw-r--r--flash-memory/flash-filesystems/pres_flashfilesystems_en.tex57
-rw-r--r--flash-memory/mtd/Makefile4
-rw-r--r--flash-memory/mtd/handout_mtd_de.tex24
-rw-r--r--flash-memory/mtd/pres_mtd_de.tex25
-rw-r--r--flash-memory/section.tex1
-rw-r--r--flash-memory/ubi/Makefile4
-rw-r--r--flash-memory/ubi/handout_ubi_de.tex24
-rw-r--r--flash-memory/ubi/pres_ubi_de.tex21
-rw-r--r--flash-memory/ubifs/Makefile9
-rw-r--r--frameworks/Makefile2
-rw-r--r--frameworks/TODO1
-rw-r--r--frameworks/gui/Makefile9
-rw-r--r--frameworks/middleware/Makefile4
-rw-r--r--frameworks/middleware/handout_middleware.tex57
-rw-r--r--frameworks/middleware/hints_middleware.tex8
-rw-r--r--frameworks/middleware/pres_middleware.tex47
-rw-r--r--frameworks/section.tex1
-rw-r--r--handout_master.tex24
-rw-r--r--handout_template.tex16
-rw-r--r--images/785px-Eniac.jpg (renamed from linux-basics/what-is-linux/images/785px-Eniac.jpg)bin97937 -> 97937 bytes
-rw-r--r--images/800px-IBM_PC_5150.jpg (renamed from linux-basics/what-is-linux/images/800px-IBM_PC_5150.jpg)bin83942 -> 83942 bytes
-rw-r--r--images/Apple2.jpg (renamed from linux-basics/what-is-linux/images/Apple2.jpg)bin20921 -> 20921 bytes
-rw-r--r--images/CPU_und_Terminals1-600px.png (renamed from linux-basics/what-is-linux/images/CPU_und_Terminals1-600px.png)bin54326 -> 54326 bytes
-rw-r--r--images/CPU_und_Terminals1.svg (renamed from linux-basics/what-is-linux/images/CPU_und_Terminals1.svg)0
-rw-r--r--images/Linus_Torvalds.jpg (renamed from linux-basics/what-is-linux/images/Linus_Torvalds.jpg)bin43475 -> 43475 bytes
-rw-r--r--images/Linux_schichten.png (renamed from linux-basics/what-is-linux/images/Linux_schichten.png)bin8016 -> 8016 bytes
-rw-r--r--images/PCI_driver.dia (renamed from kernel-devel/module-basics/images/PCI_driver.dia)bin2492 -> 2492 bytes
-rw-r--r--images/PCI_driver.png (renamed from kernel-devel/module-basics/images/PCI_driver.png)bin22853 -> 22853 bytes
-rw-r--r--images/Richard_Stallman_2005_(chrys).jpg (renamed from linux-basics/what-is-linux/images/Richard_Stallman_2005_(chrys).jpg)bin98064 -> 98064 bytes
-rw-r--r--images/Subsystems.png (renamed from kernel-devel/kernel-basics/images/Subsystems.png)bin36977 -> 36977 bytes
-rw-r--r--images/Subsystems.svg (renamed from kernel-devel/kernel-basics/images/Subsystems.svg)0
-rw-r--r--images/Thompson-sitting-Richie-standing-PDP11-1972.jpg (renamed from linux-basics/what-is-linux/images/Thompson-sitting-Richie-standing-PDP11-1972.jpg)bin79006 -> 79006 bytes
-rw-r--r--images/Unix_history.png (renamed from linux-basics/what-is-linux/images/Unix_history.png)bin87452 -> 87452 bytes
-rw-r--r--images/Unix_history.svg (renamed from linux-basics/what-is-linux/images/Unix_history.svg)0
-rw-r--r--images/Zugriffsrechte.png (renamed from linux-basics/filesystem-structure/images/Zugriffsrechte.png)bin11974 -> 11974 bytes
-rw-r--r--images/Zugriffsrechte.svg (renamed from linux-basics/filesystem-structure/images/Zugriffsrechte.svg)0
-rwxr-xr-ximages/ace.jpg (renamed from frameworks/middleware/images/ace.jpg)bin125173 -> 125173 bytes
-rw-r--r--images/anjuta.png (renamed from application-devel/devel-environment/images/anjuta.png)bin226511 -> 226511 bytes
-rw-r--r--images/autotools.png (renamed from application-devel/devel-environment/images/autotools.png)bin5678 -> 5678 bytes
-rw-r--r--images/cygwin.dia (renamed from application-devel/devel-scenarios/images/cygwin.dia)bin1304 -> 1304 bytes
-rw-r--r--images/cygwin.png (renamed from application-devel/devel-scenarios/images/cygwin.png)bin19295 -> 19295 bytes
-rw-r--r--images/dbus-hal.png (renamed from frameworks/middleware/images/dbus-hal.png)bin10529 -> 10529 bytes
-rw-r--r--images/dbus.png (renamed from frameworks/middleware/images/dbus.png)bin78762 -> 78762 bytes
-rw-r--r--images/dual_kernel.png (renamed from realtime/rt-basics/images/dual_kernel.png)bin43070 -> 43070 bytes
-rw-r--r--images/dual_kernel.svg (renamed from realtime/rt-basics/images/dual_kernel.svg)0
-rw-r--r--images/eclipse_c_build_props.png (renamed from application-devel/devel-environment/images/eclipse_c_build_props.png)bin57255 -> 57255 bytes
-rw-r--r--images/eclipse_debug.png (renamed from application-devel/devel-environment/images/eclipse_debug.png)bin105275 -> 105275 bytes
-rw-r--r--images/eclipse_debug_slide.png (renamed from application-devel/devel-environment/images/eclipse_debug_slide.png)bin80639 -> 80639 bytes
-rw-r--r--images/eclipse_egit.png (renamed from application-devel/devel-environment/images/eclipse_egit.png)bin96316 -> 96316 bytes
-rw-r--r--images/eclipse_egit_commit.png (renamed from application-devel/devel-environment/images/eclipse_egit_commit.png)bin17067 -> 17067 bytes
-rw-r--r--images/eclipse_egit_diff.png (renamed from application-devel/devel-environment/images/eclipse_egit_diff.png)bin135625 -> 135625 bytes
-rw-r--r--images/eclipse_egit_history.png (renamed from application-devel/devel-environment/images/eclipse_egit_history.png)bin118857 -> 118857 bytes
-rw-r--r--images/eclipse_egit_push.png (renamed from application-devel/devel-environment/images/eclipse_egit_push.png)bin23759 -> 23759 bytes
-rw-r--r--images/eclipse_massif.png (renamed from application-devel/devel-environment/images/eclipse_massif.png)bin89450 -> 89450 bytes
-rw-r--r--images/eclipse_memcheck.png (renamed from application-devel/devel-environment/images/eclipse_memcheck.png)bin106233 -> 106233 bytes
-rw-r--r--images/eclipse_new_c_project.png (renamed from application-devel/devel-environment/images/eclipse_new_c_project.png)bin78514 -> 78514 bytes
-rw-r--r--images/eclipse_new_hallo_c.png (renamed from application-devel/devel-environment/images/eclipse_new_hallo_c.png)bin173264 -> 173264 bytes
-rw-r--r--images/eclipse_new_hallo_welt.png (renamed from application-devel/devel-environment/images/eclipse_new_hallo_welt.png)bin37001 -> 37001 bytes
-rw-r--r--images/eclipse_new_src_file.png (renamed from application-devel/devel-environment/images/eclipse_new_src_file.png)bin111671 -> 111671 bytes
-rw-r--r--images/eclipse_overview.png (renamed from application-devel/devel-environment/images/eclipse_overview.png)bin69297 -> 69297 bytes
-rw-r--r--images/eclipse_overview_slide.png (renamed from application-devel/devel-environment/images/eclipse_overview_slide.png)bin58198 -> 58198 bytes
-rw-r--r--images/eclipse_run_config.png (renamed from application-devel/devel-environment/images/eclipse_run_config.png)bin47200 -> 47200 bytes
-rw-r--r--images/eclipse_select_run_config.png (renamed from application-devel/devel-environment/images/eclipse_select_run_config.png)bin81799 -> 81799 bytes
-rw-r--r--images/emacs.png (renamed from application-devel/devel-environment/images/emacs.png)bin8169 -> 8169 bytes
-rw-r--r--images/fork-exec.png (renamed from linux-basics/linux-processes/images/fork-exec.png)bin26662 -> 26662 bytes
-rw-r--r--images/fork-exec.svg (renamed from linux-basics/linux-processes/images/fork-exec.svg)0
-rw-r--r--images/fsync.dia (renamed from kernel-devel/char-device/images/fsync.dia)bin1052 -> 1052 bytes
-rw-r--r--images/fsync.png (renamed from kernel-devel/char-device/images/fsync.png)bin2506 -> 2506 bytes
-rw-r--r--images/g4894.png (renamed from realtime/rt-specialties/images/g4894.png)bin12196 -> 12196 bytes
-rw-r--r--images/glade.png (renamed from application-devel/devel-environment/images/glade.png)bin166722 -> 166722 bytes
-rw-r--r--images/gpos_vs_rt.png (renamed from realtime/rt-basics/images/gpos_vs_rt.png)bin124609 -> 124609 bytes
-rw-r--r--images/gpos_vs_rt.svg (renamed from realtime/rt-basics/images/gpos_vs_rt.svg)0
-rw-r--r--images/greg-all-hardware.jpg (renamed from kernel-devel/uio-driver/images/greg-all-hardware.jpg)bin76025 -> 76025 bytes
-rw-r--r--images/greg-kernel-org.jpg (renamed from kernel-devel/uio-driver/images/greg-kernel-org.jpg)bin75068 -> 75068 bytes
-rw-r--r--images/hjk-desperate.jpg (renamed from kernel-devel/uio-driver/images/hjk-desperate.jpg)bin122993 -> 122993 bytes
-rw-r--r--images/ioctl-vs-uio_de.png (renamed from kernel-devel/uio-driver/images/ioctl-vs-uio_de.png)bin35842 -> 35842 bytes
-rw-r--r--images/ioctl-vs-uio_de.svg (renamed from kernel-devel/uio-driver/images/ioctl-vs-uio_de.svg)0
-rw-r--r--images/ioctl-vs-uio_en.png (renamed from kernel-devel/uio-driver/images/ioctl-vs-uio_en.png)bin106503 -> 106503 bytes
-rw-r--r--images/ioctl.dia (renamed from kernel-devel/char-device/images/ioctl.dia)bin1049 -> 1049 bytes
-rw-r--r--images/ioctl.png (renamed from kernel-devel/char-device/images/ioctl.png)bin2350 -> 2350 bytes
-rw-r--r--images/ipipe.png (renamed from realtime/rt-basics/images/ipipe.png)bin18012 -> 18012 bytes
-rw-r--r--images/ipipe.svg (renamed from realtime/rt-basics/images/ipipe.svg)0
-rw-r--r--images/kdevelop.png (renamed from application-devel/devel-environment/images/kdevelop.png)bin125059 -> 125059 bytes
-rw-r--r--images/konventioneller-treiber_de.png (renamed from kernel-devel/uio-driver/images/konventioneller-treiber_de.png)bin34106 -> 34106 bytes
-rw-r--r--images/konventioneller-treiber_de.svg (renamed from kernel-devel/uio-driver/images/konventioneller-treiber_de.svg)0
-rw-r--r--images/konventioneller-treiber_en.png (renamed from kernel-devel/uio-driver/images/konventioneller-treiber_en.png)bin104184 -> 104184 bytes
-rw-r--r--images/linux_server.dia (renamed from application-devel/devel-scenarios/images/linux_server.dia)bin1621 -> 1621 bytes
-rw-r--r--images/linux_server.png (renamed from application-devel/devel-scenarios/images/linux_server.png)bin29417 -> 29417 bytes
-rw-r--r--images/llseek.dia (renamed from kernel-devel/char-device/images/llseek.dia)bin1051 -> 1051 bytes
-rw-r--r--images/llseek.png (renamed from kernel-devel/char-device/images/llseek.png)bin2325 -> 2325 bytes
-rw-r--r--images/mar01.png (renamed from realtime/rt-basics/images/mar01.png)bin43535 -> 43535 bytes
-rw-r--r--images/mar01.svg (renamed from realtime/rt-basics/images/mar01.svg)0
-rw-r--r--images/mar02.png (renamed from realtime/rt-basics/images/mar02.png)bin72568 -> 72568 bytes
-rw-r--r--images/mar02.svg (renamed from realtime/rt-basics/images/mar02.svg)0
-rw-r--r--images/mar03.png (renamed from realtime/rt-basics/images/mar03.png)bin74787 -> 74787 bytes
-rw-r--r--images/mar03.svg (renamed from realtime/rt-basics/images/mar03.svg)0
-rw-r--r--images/menu_rt_001.png (renamed from kernel-devel/kernel-build/images/menu_rt_001.png)bin30735 -> 30735 bytes
-rw-r--r--images/menu_rt_002.png (renamed from realtime/rt-specialties/images/menu_rt_002.png)bin32309 -> 32309 bytes
-rw-r--r--images/menu_rt_003.png (renamed from realtime/rt-specialties/images/menu_rt_003.png)bin32025 -> 32025 bytes
-rw-r--r--images/menu_rt_004.png (renamed from realtime/rt-specialties/images/menu_rt_004.png)bin23627 -> 23627 bytes
-rw-r--r--images/mknod.png (renamed from application-devel/cross-devel/images/mknod.png)bin15941 -> 15941 bytes
-rw-r--r--images/mmap.dia (renamed from kernel-devel/char-device/images/mmap.dia)bin1112 -> 1112 bytes
-rw-r--r--images/mmap.png (renamed from kernel-devel/char-device/images/mmap.png)bin3103 -> 3103 bytes
-rw-r--r--images/nuclear.png (renamed from realtime/rt-basics/images/nuclear.png)bin1134159 -> 1134159 bytes
-rw-r--r--images/open.dia (renamed from kernel-devel/char-device/images/open.dia)bin1049 -> 1049 bytes
-rw-r--r--images/open.png (renamed from kernel-devel/char-device/images/open.png)bin2372 -> 2372 bytes
-rwxr-xr-ximages/orb.jpg (renamed from frameworks/middleware/images/orb.jpg)bin60770 -> 60770 bytes
-rw-r--r--images/ordnerbaum-600px.png (renamed from linux-basics/filesystem-structure/images/ordnerbaum-600px.png)bin47521 -> 47521 bytes
-rw-r--r--images/ordnerbaum.svg (renamed from linux-basics/filesystem-structure/images/ordnerbaum.svg)0
-rw-r--r--images/pitfall.png (renamed from realtime/rt-specialties/images/pitfall.png)bin32291 -> 32291 bytes
-rw-r--r--images/pitfall.svg (renamed from realtime/rt-specialties/images/pitfall.svg)0
-rw-r--r--images/plat_driver.dia (renamed from kernel-devel/module-basics/images/plat_driver.dia)bin2572 -> 2572 bytes
-rw-r--r--images/plat_driver.png (renamed from kernel-devel/module-basics/images/plat_driver.png)bin23546 -> 23546 bytes
-rw-r--r--images/poll.dia (renamed from kernel-devel/char-device/images/poll.dia)bin1048 -> 1048 bytes
-rw-r--r--images/poll.png (renamed from kernel-devel/char-device/images/poll.png)bin2331 -> 2331 bytes
-rw-r--r--images/preempt_rt.png (renamed from realtime/rt-basics/images/preempt_rt.png)bin26716 -> 26716 bytes
-rw-r--r--images/preempt_rt.svg (renamed from realtime/rt-basics/images/preempt_rt.svg)0
-rw-r--r--images/prio_inv.png (renamed from realtime/rt-basics/images/prio_inv.png)bin23132 -> 23132 bytes
-rw-r--r--images/prio_inv.svg (renamed from realtime/rt-basics/images/prio_inv.svg)0
-rw-r--r--images/qdbusviewer.png (renamed from frameworks/middleware/images/qdbusviewer.png)bin70408 -> 70408 bytes
-rw-r--r--images/qtdesigner.png (renamed from application-devel/devel-environment/images/qtdesigner.png)bin169618 -> 169618 bytes
-rw-r--r--images/read.dia (renamed from kernel-devel/char-device/images/read.dia)bin1092 -> 1092 bytes
-rw-r--r--images/read.png (renamed from kernel-devel/char-device/images/read.png)bin2928 -> 2928 bytes
-rw-r--r--images/release.dia (renamed from kernel-devel/char-device/images/release.dia)bin1073 -> 1073 bytes
-rw-r--r--images/release.png (renamed from kernel-devel/char-device/images/release.png)bin2400 -> 2400 bytes
-rw-r--r--images/remote_debug.png (renamed from application-devel/app-debugging/images/remote_debug.png)bin21795 -> 21795 bytes
-rw-r--r--images/rtai.dia (renamed from realtime/rt-basics/images/rtai.dia)bin634 -> 634 bytes
-rw-r--r--images/rtai.png (renamed from realtime/rt-basics/images/rtai.png)bin33749 -> 33749 bytes
-rw-r--r--images/rtai.svg (renamed from realtime/rt-basics/images/rtai.svg)0
-rwxr-xr-ximages/rtcorbaext.jpg (renamed from frameworks/middleware/images/rtcorbaext.jpg)bin35352 -> 35352 bytes
-rw-r--r--images/select_workspace.png (renamed from application-devel/devel-environment/images/select_workspace.png)bin138084 -> 138084 bytes
-rw-r--r--images/single_kernel.png (renamed from realtime/rt-basics/images/single_kernel.png)bin34007 -> 34007 bytes
-rw-r--r--images/single_kernel.svg (renamed from realtime/rt-basics/images/single_kernel.svg)0
-rw-r--r--images/syscall.dia (renamed from kernel-devel/char-device/images/syscall.dia)bin1603 -> 1603 bytes
-rw-r--r--images/syscall.png (renamed from kernel-devel/char-device/images/syscall.png)bin20721 -> 20721 bytes
-rw-r--r--images/target.png (renamed from application-devel/cross-devel/images/target.png)bin5916 -> 5916 bytes
-rw-r--r--images/target_highlight_rfs.png (renamed from application-devel/cross-devel/images/target_highlight_rfs.png)bin6150 -> 6150 bytes
-rw-r--r--images/thumb.png (renamed from realtime/rt-specialties/images/thumb.png)bin12196 -> 12196 bytes
-rw-r--r--images/thumb.svg (renamed from realtime/rt-specialties/images/thumb.svg)0
-rw-r--r--images/uio-treiber_de.png (renamed from kernel-devel/uio-driver/images/uio-treiber_de.png)bin43114 -> 43114 bytes
-rw-r--r--images/uio-treiber_de.svg (renamed from kernel-devel/uio-driver/images/uio-treiber_de.svg)0
-rw-r--r--images/uio-treiber_en.png (renamed from kernel-devel/uio-driver/images/uio-treiber_en.png)bin126807 -> 126807 bytes
-rw-r--r--images/vim.png (renamed from application-devel/devel-environment/images/vim.png)bin8211 -> 8211 bytes
-rw-r--r--images/vmware.dia (renamed from application-devel/devel-scenarios/images/vmware.dia)bin1256 -> 1256 bytes
-rw-r--r--images/vmware.png (renamed from application-devel/devel-scenarios/images/vmware.png)bin19594 -> 19594 bytes
-rw-r--r--images/woz_jobs-garage-1976.jpg (renamed from linux-basics/what-is-linux/images/woz_jobs-garage-1976.jpg)bin18673 -> 18673 bytes
-rw-r--r--images/write.dia (renamed from kernel-devel/char-device/images/write.dia)bin1085 -> 1085 bytes
-rw-r--r--images/write.png (renamed from kernel-devel/char-device/images/write.png)bin1958 -> 1958 bytes
-rw-r--r--images/xenomai.png (renamed from realtime/rt-basics/images/xenomai.png)bin34356 -> 34356 bytes
-rw-r--r--images/xenomai.svg (renamed from realtime/rt-basics/images/xenomai.svg)0
-rw-r--r--kernel-devel/Makefile2
-rw-r--r--kernel-devel/TODO3
-rw-r--r--kernel-devel/char-device/Makefile4
-rw-r--r--kernel-devel/char-device/pres_char-device_de.tex30
-rw-r--r--kernel-devel/driver-basics/Makefile9
-rw-r--r--kernel-devel/driver-basics/handout_driver-basics_de.tex17
-rw-r--r--kernel-devel/driver-basics/pres_driver-basics_de.tex24
-rw-r--r--kernel-devel/kernel-basics/Makefile4
-rw-r--r--kernel-devel/kernel-basics/handout_kernel-basics_de.tex20
-rw-r--r--kernel-devel/kernel-basics/pres_kernel-basics_de.tex28
-rw-r--r--kernel-devel/kernel-best-practices/Makefile4
-rw-r--r--kernel-devel/kernel-build/Makefile4
-rw-r--r--kernel-devel/kernel-build/handout_kernel-build_de.tex29
-rw-r--r--kernel-devel/linux-mm-basics/Makefile4
-rw-r--r--kernel-devel/linux-mm-basics/pres_linux-mm-basics_en.tex39
-rw-r--r--kernel-devel/module-basics/Makefile4
-rw-r--r--kernel-devel/module-basics/pres_module-basics_de.tex79
-rw-r--r--kernel-devel/section.tex1
-rw-r--r--kernel-devel/uio-driver/Makefile4
-rw-r--r--kernel-devel/uio-driver/handout_uio-driver_de.tex32
-rw-r--r--kernel-devel/uio-driver/pres_uio-driver_en.tex52
-rw-r--r--linux-basics/Makefile2
-rw-r--r--linux-basics/boot-process/Makefile4
-rw-r--r--linux-basics/boot-process/handout_boot-process_de.tex22
-rw-r--r--linux-basics/boot-process/pres_boot-process_de.tex28
-rw-r--r--linux-basics/filesystem-structure/Makefile4
-rw-r--r--linux-basics/filesystem-structure/handout_file-system-structure_de.tex18
-rw-r--r--linux-basics/filesystem-structure/pres_file-system-structure_de.tex22
-rw-r--r--linux-basics/filesystems/Makefile4
-rw-r--r--linux-basics/filesystems/pres_filesystems_en.tex58
-rw-r--r--linux-basics/important-tools/Makefile4
-rw-r--r--linux-basics/important-tools/pres_important_tools_de.tex31
-rw-r--r--linux-basics/licenses/Makefile4
-rw-r--r--linux-basics/licenses/pres_licenses_en.tex49
-rw-r--r--linux-basics/linux-processes/Makefile4
-rw-r--r--linux-basics/linux-processes/pres_linux-processes_en.tex56
-rw-r--r--linux-basics/networking/Makefile4
-rw-r--r--linux-basics/networking/pres_networking_en.tex47
-rw-r--r--linux-basics/package-management/Makefile4
-rw-r--r--linux-basics/package-management/pres_packaging_en.tex52
-rw-r--r--linux-basics/section.tex1
-rw-r--r--linux-basics/sh-programming/Makefile4
-rw-r--r--linux-basics/sh-programming/handout_sh-programming_de.tex28
-rw-r--r--linux-basics/sh-programming/pres_sh-programming_de.tex29
-rw-r--r--linux-basics/udev-basics/Makefile4
-rw-r--r--linux-basics/udev-basics/pres_udev_en.tex51
-rw-r--r--linux-basics/what-is-linux/Makefile4
-rw-r--r--linux-basics/what-is-linux/pres_what-is-linux_de.tex26
-rw-r--r--pres_master.tex47
-rw-r--r--pres_template.tex21
-rw-r--r--protocols/Makefile2
-rw-r--r--protocols/section.tex1
-rw-r--r--protocols/socketcan/Makefile4
-rw-r--r--protocols/socketcan/pres_socketcan_de.tex57
-rw-r--r--realtime/Makefile2
-rw-r--r--realtime/rt-app-basics/Makefile4
-rw-r--r--realtime/rt-app-basics/pres_rt-app-basics_en.tex73
-rw-r--r--realtime/rt-basics/Makefile4
-rw-r--r--realtime/rt-basics/handout_rt-basics_de.tex32
-rw-r--r--realtime/rt-basics/images/rtai.dia~bin801 -> 0 bytes
-rw-r--r--realtime/rt-basics/pres_rt-basics_de.tex19
-rw-r--r--realtime/rt-specialties/Makefile4
-rw-r--r--realtime/rt-specialties/handout_rt-specialties_de.tex45
-rw-r--r--realtime/rt-specialties/images/menu_rt_001.pngbin30735 -> 0 bytes
-rw-r--r--realtime/rt-specialties/pres_rt-specialties_de.tex24
-rw-r--r--realtime/section.tex1
-rw-r--r--tailhandout.tex1
-rw-r--r--tailmasterhandout.tex1
-rw-r--r--tailmasterpres.tex1
-rw-r--r--tailpres.tex8
246 files changed, 779 insertions, 1431 deletions
diff --git a/Makefile b/Makefile
index caa4162..4d2542f 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-SUBDIRS = kernel-devel linux-basics realtime application-devel flash-memory protocols frameworks
+SUBDIRS = application-devel flash-memory frameworks kernel-devel linux-basics protocols realtime
default:
make all
@@ -8,6 +8,24 @@ all clean::
(cd $$dir && make $@); \
done
+book::
+ mv configpres.tex _configpres.tex
+ touch configpres.tex
+ mv confighandout.tex _confighandout.tex
+ touch confighandout.tex
+ mv tailpres.tex _tailpres.tex
+ touch tailpres.tex
+ mv tailhandout.tex _tailhandout.tex
+ touch tailhandout.tex
+ pdflatex pres_master.tex
+ pdflatex pres_master.tex
+ pdflatex handout_master.tex
+ pdflatex handout_master.tex
+ rm configpres.tex confighandout.tex tailpres.tex tailhandout.tex
+ mv _configpres.tex configpres.tex
+ mv _confighandout.tex confighandout.tex
+ mv _tailpres.tex tailpres.tex
+ mv _tailhandout.tex tailhandout.tex
pdf::
rm -rf pdf
mkdir -p pdf/pres
diff --git a/application-devel/Makefile b/application-devel/Makefile
index 72cada2..c0c47ad 100644
--- a/application-devel/Makefile
+++ b/application-devel/Makefile
@@ -1,4 +1,4 @@
-SUBDIRS = `ls -1`
+SUBDIRS = `ls -1 | grep -v *.tex | grep -v Makefile`
all clean::
for dir in $(SUBDIRS) ; do \
diff --git a/application-devel/app-debugging/Makefile b/application-devel/app-debugging/Makefile
index 4663d52..d641258 100644
--- a/application-devel/app-debugging/Makefile
+++ b/application-devel/app-debugging/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/application-devel/app-debugging/handout_app-debugging_de.tex b/application-devel/app-debugging/handout_app-debugging_de.tex
index acbd340..b082790 100644
--- a/application-devel/app-debugging/handout_app-debugging_de.tex
+++ b/application-devel/app-debugging/handout_app-debugging_de.tex
@@ -1,13 +1,8 @@
-\documentclass{lxarticle}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{lxheaders}
-\usepackage{lxextras}
-\lstset{keywordstyle=\color{blue}}
+\input{confighandout}
-\begin{document}
+\subsection{Applikationen Debuggen}
-\section{STRACE}
+\subsubsection{STRACE}
Eine sehr einfache und mächtige Möglichkeit, Systemaufrufe und Signale
zu tracen, ist das Tool ''strace''. Die Anwendung ist denkbar einfach. Dem Aufruf
des zu tracenden Programms wird einfach strace vorangestellt:
@@ -43,8 +38,8 @@ davon sind:\\
\hline
\end{tabular}
\end{center}
-\section{GDB}
-\subsection{Interaktives Debugging mit GDB}
+\subsubsection{GDB}
+\paragraph{Interaktives Debugging mit GDB}
Der GNU Debugger: GDB stellt einen vollwertigen interaktiven Debugger dar,
der für alle gängigen Prozessorarchitekturen verfügbar ist. GDB bietet ein
sehr mächtiges Commandlineinterface. Es existieren diverse grafische Frontends
@@ -129,7 +124,7 @@ quit & q & GDB beenden \\
\end{tabular}
\end{center}
-\subsection{Analyse von core-Files}
+\paragraph{Analyse von core-Files}
Neben der Möglichkeit des interaktiven Debuggings findet GDB auch häufig
eine weitere Anwendung: Die ''Post-Mortem-Analyse'' von Problemen. Wird
eine Applikation beispielsweise durch seinen Segmentation Fault beendet,
@@ -207,7 +202,7 @@ Program terminated with signal 11, Segmentation fault.
#0 0x0000000000400538 in main () at segfault.c:6
\end{lstlisting}
-\section{Memory debugging}
+\subsubsection{Memory debugging}
Eine sehr häufige Problemstellung bei der Fehlersuche in Applikationen
ist das Aufspüren von Problemen in der dynamischen Speicherverwaltung.
Die häufigsten Probleme, die es hier zu untersuchen gilt, sind:
@@ -216,7 +211,7 @@ Die häufigsten Probleme, die es hier zu untersuchen gilt, sind:
\item Memory leaks
\item ''Use after free()''
\end{itemize}
-\subsection{GLIBC: MTrace}
+\paragraph{GLIBC: MTrace}
Die GNU C Library, GLIBC, liefert bereits ein integriertes Werkzeug zum
Debuggen von Speicherproblemen:MTrace. Die Anwendung von MTrace ist denkbar einfach.
Im ersten Schritt ist der Code um folgende Zeilen zu ergänzen:
@@ -265,7 +260,7 @@ Address Size Caller
0x15364a0 0x1 at /home/jan/work/examples/mem_leak.c:13
[...]
\end{lstlisting}
-\subsection{GLIBC: Hooks für malloc()}
+\paragraph{GLIBC: Hooks für malloc()}
Neben mtrace() sieht die GLIBC noch Hooks vor, um Callbacks einzuhängen,
die bei jedem Aufruf von malloc(), realloc(), free() oder memalign()
aufgerufen werden. Hiermit steht eine sehr einfache Möglichkeit zur Verfügung,
@@ -294,7 +289,7 @@ void *function (size_t size, size_t alignment, const void *caller)
ACHTUNG: Bei der Verwendung von malloc() Hooks ist Vorsicht geboten! Jeglicher
Aufruf, der seinerseits wiederrum einen malloc() Aufruf initiiert, führt
innerhalb eines malloc() Hooks unvermeidlich zu einer Rekursion.
-\subsection{libDUMA}
+\paragraph{libDUMA}
Ein weiteres bekanntes Werkzeug zum Speicherdebugging ist eine Bibliothek
mit dem Namen DUMA. Hierbei handelt sich um einen Fork der bekannten
Electric Fence Libraries von Bruce Perence. DUMA ermöglicht es durch einfaches
@@ -412,7 +407,7 @@ DUMA\_ALLOW\_MALLOC\_0 & malloc() mit der Größe 0 als Fehler ausgeben\\
\end{center}
Es gibt noch viele andere Environment Variablen. Deren Bedeutung ist der
Manpage von libduma zu entnehmen: ''man duma''
-\subsection{Valgrind}
+\paragraph{Valgrind}
Valgrind ist das wohl mächtigste Werkzeug, das zur Analyse von Speicherproblemen
zur Verfügung steht. Es handelt sich um mehrere Werkzeuge, die unter anderem auch
Profiling Funkionaliät bieten. Valgrind erreicht eine sehr hohe Trefferquote. Leider
@@ -464,4 +459,4 @@ $ valgrind --leak-check=full ./mem_leak
[...]
\end{lstlisting}
-\end{document}
+\input{tailhandout}
diff --git a/application-devel/app-debugging/pres_app-debugging_de.tex b/application-devel/app-debugging/pres_app-debugging_de.tex
index d95cfde..9f6c5ca 100644
--- a/application-devel/app-debugging/pres_app-debugging_de.tex
+++ b/application-devel/app-debugging/pres_app-debugging_de.tex
@@ -1,28 +1,16 @@
-\documentclass{beamer}
-\usetheme{linutronix}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{pgf}
-\usepackage{graphicx}
-\usepackage{lxextras}
+\input{configpres}
+\subsection{Debugging}
-
-\title{Block \lq Debugging\rq}
-\institute{Linutronix GmbH}
-
-\lstset{keywordstyle=\color{blue},commentstyle=\color{orange}}
-
-\begin{document}
-
+\title{\lq Debugging\rq}
\maketitle
+
\begin{frame}
\frametitle{Übersicht}
\tableofcontents
\end{frame}
-\section{Einfache Debugging Werkzeuge}
-\subsection{Systemcalls tracen mit STRACE}
+\subsubsection{Einfache Debugging Werkzeuge}
\begin{frame}
\frametitle{STRACE}
\begin{alertblock}{Was ist STRACE?}
@@ -57,8 +45,7 @@ fstat64(3, {st_mode=S_IFREG|0644, st_size=113431, ...}
\end{itemize}
\end{frame}
-\section{Der GNU Debugger: GDB}
-\subsection{Interaktives Debugging mit GDB}
+\subsubsection{Der GNU Debugger: GDB}
\begin{frame}[containsverbatim]
\frametitle{Hello world debuggen}
\begin{enumerate}
@@ -153,7 +140,6 @@ quit & q & GDB beenden \\
\end{tabular}
\end{frame}
-\subsection{Post mortem Analyse mit GDB}
\begin{frame}[containsverbatim]
\frametitle{Post Mortem Debugging mit GDB}
\begin{lstlisting}[language=C]
@@ -212,7 +198,6 @@ gdb ./exe corefile & Coredump mit GDB anzeigen \\
\end{tabular}
\end{frame}
-\subsection{Remote Debugging mit GDB}
\begin{frame}
\frametitle{Remote Debugging}
\begin{figure}[h]
@@ -255,7 +240,7 @@ target remote 10.0.0.3:54321
powerpc-linux-gnu-gdb -x gdbinit.txt cross_hello
\end{lstlisting}
\end{frame}
-\section{Memory debugging}
+\subsubsection{Memory debugging}
\begin{frame}
\frametitle{Memory debugging}
Gängige Probleme:
@@ -265,7 +250,6 @@ Gängige Probleme:
\item ''Use after free()''
\end{itemize}
\end{frame}
-\subsection{MTrace}
\begin{frame}[containsverbatim]
\frametitle{GLIBC eigene Mechanismen: MTrace}
\begin{lstlisting}[language=C]
@@ -325,7 +309,6 @@ Address Size Caller
\end{lstlisting}
\end{frame}
-\subsection{malloc() hooks}
\begin{frame}[containsverbatim]
\frametitle{GLIBC eigene Mechanismen: Hooks für malloc()}
\_\_malloc\_hook:\\
@@ -337,7 +320,6 @@ void *function (void *ptr, const void *caller)\\
\_\_memalign\_hook:\\
void *function (size\_t size, size\_t alignment, const void *caller)
\end{frame}
-\subsection{libDUMA (aka electric fence)}
\begin{frame}[containsverbatim]
\frametitle{libDUMA / electric fence}
\begin{lstlisting}[language=C,basicstyle=\ttfamily\fontsize{9}{9}\selectfont]
@@ -437,7 +419,6 @@ Segmentation fault (core dumped)
\end{lstlisting}
\end{frame}
-\subsection{valgrind}
\begin{frame}
\frametitle{Valgrind}
\begin{alertblock}{Vorteile}
@@ -498,4 +479,5 @@ $ valgrind --leak-check=full ./mem_leak
[...]
\end{lstlisting}
\end{frame}
-\end{document}
+
+\input{tailpres}
diff --git a/application-devel/compile-tools/Makefile b/application-devel/compile-tools/Makefile
index 4663d52..d641258 100644
--- a/application-devel/compile-tools/Makefile
+++ b/application-devel/compile-tools/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/application-devel/cross-devel/Makefile b/application-devel/cross-devel/Makefile
index 4663d52..d641258 100644
--- a/application-devel/cross-devel/Makefile
+++ b/application-devel/cross-devel/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/application-devel/cross-devel/pres_cross-devel-ppc-qemu_de.tex b/application-devel/cross-devel/pres_cross-devel-ppc-qemu_de.tex
index b4822c6..0a6189b 100644
--- a/application-devel/cross-devel/pres_cross-devel-ppc-qemu_de.tex
+++ b/application-devel/cross-devel/pres_cross-devel-ppc-qemu_de.tex
@@ -1,27 +1,16 @@
-\documentclass{beamer}
-\usetheme{linutronix}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{pgf}
-\usepackage{graphicx}
-\usepackage{lxextras}
-
-
-\title{Block \lq Cross Development\rq}
-\institute{Linutronix GmbH}
-
-\lstset{keywordstyle=\color{blue},commentstyle=\color{orange}}
-
-\begin{document}
+\input{configpres}
+\title{\lq PowerPC Cross Development (qemu)\rq}
\maketitle
+\subsection{PowerPC Cross Development (qemu)}
+
\begin{frame}
\frametitle{Übersicht}
\tableofcontents
\end{frame}
-\section{Cross Übersetzen}
+\subsubsection{Cross Übersetzen}
\begin{frame}[containsverbatim]
\frametitle{Cross ''Hello world''}
\begin{lstlisting}[language=c]
@@ -55,7 +44,7 @@ not stripped
\end{lstlisting}
\end{frame}
-\section{Testing auf dem Host}
+\subsubsection{Testing auf dem Host}
\begin{frame}
\frametitle{Qemu als Werkzeug zur Cross Entwicklung}
@@ -75,8 +64,7 @@ Hello cross compiling world
\end{lstlisting}
\end{frame}
-\section{Rootfilesystem}
-\subsection{Filesystem from scratch}
+\subsubsection{Rootfilesystem from scratch}
\begin{frame}
\frametitle{Komponenten des Zielsystems}
\begin{overprint}
@@ -182,8 +170,6 @@ chown -R root:root /tftpboot/nfsroot
That's it!! :)
\end{frame}
-\subsection{Exportieren per NFS}
-\subsubsection{Konfiguration}
\begin{frame}[containsverbatim]
\frametitle{Exportieren per NFS}
1) nfs-kernel-server installieren
@@ -211,7 +197,6 @@ vim /etc/exports
/etc/init.d/nfs-kernel-server restart
\end{lstlisting}
\end{frame}
-\subsubsection{Filesystem mit Qemu testen}
\begin{frame}[containsverbatim]
\frametitle{RFS mit Qemu booten}
\begin{lstlisting}
@@ -247,9 +232,8 @@ Please press Enter to activate this console.
Ihr erstes eigenes Linux System!! :)
\end{frame}
-\subsection{RFS um SSH erweitern}
\begin{frame}
-\frametitle{dropbear}
+\frametitle{SSH mit dropbear}
Dropbear ist eine schlanke SSH Server und Client Implementierung
und wird daher recht häufig in Embedded Systemen verwendet.
\begin{alertblock}{Vorteile}
@@ -379,9 +363,9 @@ root@localhost's password:
\end{enumerate}
\end{frame}
-\subsection{Filesystem auf dem Target testen}
\begin{frame}
-\frametitle{Auf dem Target}
+\frametitle{Filesystem auf dem Target}
HAND'S ON! :)
\end{frame}
-\end{document}
+
+\input{tailpres}
diff --git a/application-devel/cross-devel/pres_cross-devel_de.tex b/application-devel/cross-devel/pres_cross-devel_de.tex
index c68f7b0..3df8635 100644
--- a/application-devel/cross-devel/pres_cross-devel_de.tex
+++ b/application-devel/cross-devel/pres_cross-devel_de.tex
@@ -1,19 +1,8 @@
-\documentclass{beamer}
-\usetheme{linutronix}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{pgf}
-\usepackage{graphicx}
-\usepackage{lxextras}
+\input{configpres}
+\subsection{ARM Cross Development}
-\title{\lq Workshop: Cross Development\rq}
-\institute{Linutronix GmbH}
-
-\lstset{keywordstyle=\color{blue},commentstyle=\color{orange}}
-
-\begin{document}
-
+\title{\lq ARM Cross Development\rq}
\maketitle
\begin{frame}
@@ -21,7 +10,7 @@
\tableofcontents
\end{frame}
-\section{Cross Übersetzen}
+\subsubsection{Cross Übersetzen}
\begin{frame}[containsverbatim]
\frametitle{Cross ''Hello world''}
\begin{lstlisting}[language=c]
@@ -53,7 +42,7 @@ for GNU/Linux 2.6.14, not stripped
\end{lstlisting}
\end{frame}
-\section{Testing auf dem Host}
+\subsubsection{Testing auf dem Host}
\begin{frame}
\frametitle{Qemu als Werkzeug zur Cross Entwicklung}
@@ -73,8 +62,7 @@ Hello cross compiling world
\end{lstlisting}
\end{frame}
-\section{Rootfilesystem}
-\subsection{Filesystem from scratch}
+\subsubsection{Rootfilesystem}
\begin{frame}
\frametitle{Komponenten des Zielsystems}
\begin{overprint}
@@ -181,8 +169,6 @@ sudo chown -R root:root /tftpboot/nfsroot
That's it!! :)
\end{frame}
-\subsection{Exportieren per NFS}
-\subsubsection{Konfiguration}
\begin{frame}[containsverbatim]
\frametitle{Exportieren per NFS}
\begin{lstlisting}
@@ -205,7 +191,6 @@ sudo vim /etc/exports
/etc/init.d/nfs-kernel-server restart
\end{lstlisting}
\end{frame}
-\subsubsection{Filesystem testen}
\begin{frame}[fragile]
\frametitle{U-Boot setup}
@@ -262,7 +247,6 @@ tcpsvd -vE 0.0.0.0 21 ftpd -w / &
\end{lstlisting}
\end{frame}
-\subsection{RFS um FTPD erweitern}
\begin{frame}[fragile]
\frametitle{FTP testen}
Auf dem Host:
@@ -283,9 +267,8 @@ local: bla remote: bla
\end{verbatim}
\end{frame}
-\subsection{RFS um SSH erweitern}
\begin{frame}
-\frametitle{dropbear}
+\frametitle{SSH mit dropbear}
Dropbear ist eine schlanke SSH Server und Client Implementierung
und wird daher recht häufig in Embedded Systemen verwendet.
\begin{alertblock}{Vorteile}
@@ -401,7 +384,6 @@ root@localhost's password:
\end{verbatim}
\end{frame}
-\subsection{Filesystem für Remote Debugging vorbereiten}
\begin{frame}[fragile]
\frametitle{gdbserver und libthread\_db}
\begin{lstlisting}[language=bash]
@@ -442,4 +424,5 @@ Remote debugging using 10.10.0.Y:2345
[...]
\end{lstlisting}
\end{frame}
-\end{document}
+
+\input{tailpres}
diff --git a/application-devel/devel-environment/Makefile b/application-devel/devel-environment/Makefile
index 4663d52..d641258 100644
--- a/application-devel/devel-environment/Makefile
+++ b/application-devel/devel-environment/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/application-devel/devel-environment/handout_devel-environment_de.tex b/application-devel/devel-environment/handout_devel-environment_de.tex
index 7ecaac4..1ac1b6f 100644
--- a/application-devel/devel-environment/handout_devel-environment_de.tex
+++ b/application-devel/devel-environment/handout_devel-environment_de.tex
@@ -1,12 +1,6 @@
-\documentclass{lxarticle}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{lxheaders}
-\usepackage{lxextras}
+\input{confighandout}
-\begin{document}
-
-\section{Entwicklungsumgebung}
+\subsection{Entwicklungsumgebung}
Eine Entwicklungsumgebung besteht mindestens aus einem Editor und einem
Buildsystem. Eine Entwicklungsumgebung kann aber durchaus weitere Komponenten
@@ -22,7 +16,7 @@ In diesem Block wird auf die verschiedenen Komponenten einer
Entwicklungsumgebung eingegangen und Eclipse als prominenter Vertretter der
integrierten Entwicklungsumgebungen n\"ahers vorgestellt.
-\subsection{Editoren}
+\subsubsection{Editoren}
Prinzipiell kann man zwischen textbasierten und grafischen Editoren
unterscheiden. Ein textbasierter Editor ist in der Regel nicht so intuitiv zu
@@ -75,7 +69,7 @@ Als grafischer Texteditor wird oft:
\end{itemize}
verwendet.
-\subsection{Versionskontrolle}
+\subsubsection{Versionskontrolle}
Sinn einer Versionskontrolle ist die zentrale Verwaltung des Quellcodes (und
evt. der dazugeh\"origen Dokumentation) und ein Tracking der \"Anderungen.
@@ -89,9 +83,9 @@ entwickelt und eignet sich deshalb perfekt f\"ur die verteilte Entwicklung und
gro\ss e Teams.
\end{description}
-\subsection{Integrierte Entwicklungs Umgebungen}
+\subsubsection{Integrierte Entwicklungs Umgebungen}
-\subsubsection{Emacs}
+\paragraph{Emacs}
Die GNU Emacs IDE kann in zwei verschiedenen Modi gestartet werden. Mit dem
Befehl \cmd{emacs} wird eine grafische Umgebung gestartet (Abbildung
@@ -119,7 +113,7 @@ erstellt werden.
\item Quellcode fixen, speichern, compilieren, \dots
\end{enumerate}
-\subsubsection{Eclipse}
+\paragraph{Eclipse}
Dieses Kapitel beschreibt die Entstehung und Prinzipien von Eclipse. An einigen
kurzen Beispielen, wird die grundlegende Bedienung einer Eclipse IDE
@@ -495,4 +489,4 @@ werden die Informationen zum Remote Repository eingetragen.
Analog zu push funktioniert der \cmd{Fetch From\dots} Dialog um von einem Remote
Repository \"Anderungen in den lokalen Tree zu mergen.
-\end{document}
+\input{tailhandout}
diff --git a/application-devel/devel-environment/pres_devel-environment_de.tex b/application-devel/devel-environment/pres_devel-environment_de.tex
index 04ea566..d3eeb34 100644
--- a/application-devel/devel-environment/pres_devel-environment_de.tex
+++ b/application-devel/devel-environment/pres_devel-environment_de.tex
@@ -1,19 +1,10 @@
-\documentclass{beamer}
-\usetheme{linutronix}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{pgf}
-\usepackage{graphicx}
+\input{configpres}
+\subsection{Entwicklungsumgebungen}
\title{Entwicklungsumgebungen}
-%% \author{Manuel Traut}
-\institute{Linutronix GmbH}
-
-\begin{document}
-
\maketitle
-% ----- Slide ------------------
+\subsubsection{Grundlagen}
\begin{frame}
\frametitle{Bestandteile}
Eine Entwicklungsumgebung besteht mindestens aus:
@@ -33,7 +24,8 @@ und kann durch Komponenten zur
erweitert werden
\end{frame}
-% ----- Slide ------------------
+\subsubsection{Editoren}
+
\begin{frame}
\frametitle{beliebte Editoren}
\begin{itemize}
@@ -44,7 +36,6 @@ erweitert werden
\end{itemize}
\end{frame}
-% ----- Slide ------------------
\begin{frame}
\frametitle{vim Editor}
\begin{figure}[h]
@@ -53,7 +44,6 @@ erweitert werden
\end{figure}
\end{frame}
-% ----- Slide ------------------
\begin{frame}
\frametitle{emacs Editor}
\begin{figure}[h]
@@ -62,7 +52,8 @@ erweitert werden
\end{figure}
\end{frame}
-% ----- Slide ------------------
+\subsubsection{Tools}
+
\begin{frame}
\frametitle{praktische, kleine Helfer}
\begin{itemize}
@@ -74,7 +65,8 @@ erweitert werden
\end{itemize}
\end{frame}
-% ----- Slide ------------------
+\subsubsection{Buildsysteme}
+
\begin{frame}
\frametitle{h\"aufig eingesetzte Buildsysteme}
\begin{itemize}
@@ -85,7 +77,6 @@ erweitert werden
\end{itemize}
\end{frame}
-% ----- Slide ------------------
\begin{frame}
\frametitle{Autotools / GNU Build System}
\begin{figure}[h]
@@ -95,7 +86,6 @@ erweitert werden
Quelle: Stefan Haubenthal, GFDL
\end{frame}
-% ----- Slide ------------------
\begin{frame}
\frametitle{CMake}
Meta Make
@@ -105,7 +95,6 @@ Meta Make
\end{itemize}
\end{frame}
-% ----- Slide ------------------
\begin{frame}
\frametitle{Ant}
\"uberwiegend f\"ur JAVA
@@ -115,7 +104,8 @@ Meta Make
\end{itemize}
\end{frame}
-% ----- Slide ------------------
+\subsubsection{Versionskontrolle}
+
\begin{frame}
\frametitle{Versionskontrolle}
\begin{itemize}
@@ -126,7 +116,8 @@ Meta Make
\end{itemize}
\end{frame}
-% ----- Slide ------------------
+\subsubsection{GUI Designer}
+
\begin{frame}
\frametitle{GUI Designer}
\begin{itemize}
@@ -135,7 +126,6 @@ Meta Make
\end{itemize}
\end{frame}
-% ----- Slide ------------------
\begin{frame}
\frametitle{QT Designer}
\begin{figure}[h]
@@ -144,7 +134,6 @@ Meta Make
\end{figure}
\end{frame}
-% ----- Slide ------------------
\begin{frame}
\frametitle{Glade}
\begin{figure}[h]
@@ -153,7 +142,8 @@ Meta Make
\end{figure}
\end{frame}
-% ----- Slide ------------------
+\subsubsection{Integrierte Entwicklungsumgebungen}
+
\begin{frame}
\frametitle{Integrated Development Environments}
\begin{itemize}
@@ -164,7 +154,6 @@ Meta Make
\end{itemize}
\end{frame}
-% ----- Slide ------------------
\begin{frame}
\frametitle{KDevelop}
\begin{figure}[h]
@@ -173,7 +162,6 @@ Meta Make
\end{figure}
\end{frame}
-% ----- Slide ------------------
\begin{frame}
\frametitle{Anjuta}
\begin{figure}[h]
@@ -182,7 +170,6 @@ Meta Make
\end{figure}
\end{frame}
-% ----- Slide ------------------
\begin{frame}
\frametitle{lx-dev Eclipse IDE}
\begin{figure}[h]
@@ -191,7 +178,6 @@ Meta Make
\end{figure}
\end{frame}
-% ----- Slide ------------------
\begin{frame}
\frametitle{lx-dev Eclipse IDE - Debug View}
\begin{figure}[h]
@@ -200,4 +186,4 @@ Meta Make
\end{figure}
\end{frame}
-\end{document}
+\input{tailpres}
diff --git a/application-devel/devel-scenarios/Makefile b/application-devel/devel-scenarios/Makefile
index 4663d52..d641258 100644
--- a/application-devel/devel-scenarios/Makefile
+++ b/application-devel/devel-scenarios/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/application-devel/devel-scenarios/pres_devel_scenarios_de.tex b/application-devel/devel-scenarios/pres_devel_scenarios_de.tex
index 12a9842..2033f5b 100644
--- a/application-devel/devel-scenarios/pres_devel_scenarios_de.tex
+++ b/application-devel/devel-scenarios/pres_devel_scenarios_de.tex
@@ -1,72 +1,20 @@
-\documentclass[11pt]{beamer}
-
-%\usepackage{ngerman}
-\usepackage{times}
-\usepackage{graphicx}
-\usepackage{pgf,pgfarrows,pgfnodes,pgfautomata,pgfheaps}
-\usepackage{amsmath,amssymb}
-\usepackage[utf8]{inputenc}
-\usepackage{listings,color}
-\definecolor{lbcolor}{RGB}{255,210,150}
-\lstset{
- language=C++,
- numbers=left,
- stepnumber=1,
- numbersep=5pt,
- numberstyle=\tiny,
- breaklines=true,
- breakautoindent=true,
- postbreak=\space,
- tabsize=2,
- basicstyle=\ttfamily\footnotesize,
- showspaces=false,
- showstringspaces=false,
- extendedchars=true,
- backgroundcolor=\color{lbcolor},
- keywordstyle=\bf ,
- commentstyle=\color{green},
- stringstyle=\color{red}
-}
-
-\mode<presentation>
-{
- \usetheme{linutronix}
-}
-
% on the following slides, include icon in the left sidebar
\def\lximg{/usr/share/lx/icons/fueller.png}
-\title{Mögliche Szenarien zur Entwicklung für Linux}
-\institute{Linutronix GmbH}
-
-\begin{document}
+\input{configpres}
-\frame{ \titlepage }
+\title{Mögliche Szenarien zur Entwicklung für Linux}
+\maketitle
% stop displaying 'fueller.png' on the following slides
\def\lximg{none}
-%\AtBeginSection[]
-%{
-% \begin{frame}<beamer>
-% \tableofcontents[currentsection,currentsubsection]
-% \end{frame}
-%}
-
-\AtBeginSubsection[]
-{
- \begin{frame}<beamer>
- \tableofcontents[currentsection,currentsubsection]
- \end{frame}
-}
-
\begin{frame}
\tableofcontents
\end{frame}
-%\includegraphics[height=0.8\textheight]{img/orb.jpg}
-\section{Enwicklungsszenarien}
-\subsection{Zentraler Entwicklungsserver}
+\subsection{Enwicklungsszenarien}
+\subsubsection{Zentraler Entwicklungsserver}
\begin{frame}
\frametitle{Zentraler Linuxserver}
@@ -89,7 +37,7 @@ Nachteile:
\end{itemize}
\end{frame}
-\subsection{Linux in VM-Ware}
+\subsubsection{Linux in VM-Ware}
\begin{frame}
\frametitle{Linux in VM-Ware}
\includegraphics[height=0.8\textheight]{images/vmware.png}
@@ -109,7 +57,7 @@ Nachteile:
\end{itemize}
\end{frame}
-\subsection{Nativ unter Windows}
+\subsubsection{Nativ unter Windows}
\begin{frame}
\frametitle{Nativ unter Windows}
\includegraphics[height=0.8\textheight]{images/cygwin}
@@ -130,4 +78,4 @@ Nachteile:
\end{itemize}
\end{frame}
-\end{document}
+\input{tailpres}
diff --git a/application-devel/embedded-devel/Makefile b/application-devel/embedded-devel/Makefile
index 4663d52..d641258 100644
--- a/application-devel/embedded-devel/Makefile
+++ b/application-devel/embedded-devel/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/application-devel/embedded-devel/pres_embedded-devel_de.tex b/application-devel/embedded-devel/pres_embedded-devel_de.tex
index 0623724..22e0d8d 100644
--- a/application-devel/embedded-devel/pres_embedded-devel_de.tex
+++ b/application-devel/embedded-devel/pres_embedded-devel_de.tex
@@ -1,28 +1,15 @@
-\documentclass{beamer}
-\usetheme{linutronix}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{pgf}
-\usepackage{graphicx}
-\usepackage{lxextras}
-
-\title{Block \lq Applikationsentwicklung für (Embedded) LINUX\rq}
-\institute{Linutronix GmbH}
-
-\lstset{keywordstyle=\color{blue},commentstyle=\color{orange}}
-
-\begin{document}
+\input{configpres}
+\title{\lq (Embedded) LINUX Applikationsentwicklung\rq}
\maketitle
-% ----- Slide ------------------
\begin{frame}
\frametitle{Übersicht}
\tableofcontents
\end{frame}
-\section{Der GNU Compiler}
-\subsection{Hello world}
+\subsection{Der GNU Compiler}
+\subsubsection{Hello world}
\begin{frame}[fragile]
\frametitle{Der GNU Compiler}
\begin{lstlisting}[language=c]
@@ -41,7 +28,7 @@ gcc -o hello hello.c
\end{lstlisting}
\end{frame}
-\subsection{Wichtige Optionen}
+\subsubsection{Wichtige Optionen}
\begin{frame}[fragile]
\frametitle{Wichtige gcc Optionen}
\begin{lstlisting}[language=bash]
@@ -109,7 +96,7 @@ $ gcc -Wl,-y,printf hello.c
Quelle und weitere nuetzliche Tipps: http://elinux.org/GCC\_Tips
\end{frame}
-\section{Der Dynamic Loader}
+\subsection{Der Dynamic Loader}
\begin{frame}
\frametitle{Der Dynamic Loader: ld-linux.so}
\begin{alertblock}{Was ist der Dynamic Loader?}
@@ -167,16 +154,16 @@ variable are:
\begin{frame}
\frametitle{Der Dynamic Loader: Suchreihenfolge}
\begin{enumerate}
-\item DT\_RPATH dynamic section (ELF)
+\item DT\_RPATH dynamic subsection (ELF)
\item LD\_LIBRARY\_PATH
-\item DT\_RUNPATH dynamic section (ELF)
+\item DT\_RUNPATH dynamic subsection (ELF)
\item ld.so.cache
\item /lib bzw. /usr/lib
\end{enumerate}
\end{frame}
-\section{Die Binutils}
-\subsection{Übersicht}
+\subsection{Die Binutils}
+\subsubsection{Übersicht}
\begin{frame}
\frametitle{Die Binutils}
Eine Sammlung von Programmen zum Erstellen / Bearbeiten von Binaries.
@@ -208,7 +195,7 @@ Die wichtigsten Tools sind:
\end{itemize}
\end{frame}
-\subsection{objdump}
+\subsubsection{objdump}
\begin{frame}[containsverbatim]
\frametitle{Untersuchen von Binaries mit Objdump}
\begin{lstlisting}[language=bash]
@@ -257,7 +244,7 @@ jan@hopfropf:~$ objdump -x /bin/ls | grep NEEDED
\end{lstlisting}
\end{frame}
-\subsection{objcopy}
+\subsubsection{objcopy}
\begin{frame}[fragile]
\frametitle{Binaries bearbeiten mit objcopy}
\begin{lstlisting}[language=bash]
@@ -268,7 +255,7 @@ objcopy -I srec -O elf64-x86-64 hello.srec hello
\end{lstlisting}
\end{frame}
-\subsection{addr2line}
+\subsubsection{addr2line}
\begin{frame}[containsverbatim]
\frametitle{Adressen zuordnen mit addr2line}
\begin{lstlisting}[language=bash]
@@ -287,8 +274,8 @@ $ addr2line -e hello 40050c
\end{lstlisting}
\end{frame}
-\section{Bibliotheken}
-\subsection{Statische Bibliotheken}
+\subsection{Bibliotheken}
+\subsubsection{Statische Bibliotheken}
\begin{frame}[fragile]
\frametitle{Statische Bibliotheken}
\begin{lstlisting}
@@ -300,7 +287,7 @@ $ gcc -o hello hello.o libhello.a
\end{lstlisting}
\end{frame}
-\subsection{Dynamische Bibliotheken}
+\subsubsection{Dynamische Bibliotheken}
\begin{frame}[fragile]
\frametitle{Dynamische Bibliotheken}
@@ -391,8 +378,9 @@ $ objdump -p hello | grep PATH
\end{lstlisting}
\end{frame}
-\section{Buildprozess automatisieren}
-\subsection{Übersicht}
+\subsection{Buildprozess automatisieren}
+\subsubsection{Übersicht}
+
\begin{frame}
\frametitle{GNU make}
\begin{alertblock}{Was ist GNU make?}
@@ -400,7 +388,7 @@ GNU make kontrolliert und automatisiert Buildprozesse.
\end{alertblock}
\end{frame}
-\subsection{Anwendungsbeispiele}
+\subsubsection{Anwendungsbeispiele}
\begin{frame}[containsverbatim]
\frametitle{Einfaches Beispiel}
\begin{lstlisting}[language=make,showtabs=true,tabsize=4,tab=\rightarrowfill]
@@ -501,4 +489,5 @@ OBJ = $(SRC:%.c=%.o)
[...]
\end{lstlisting}
\end{frame}
-\end{document}
+
+\input{tailpres}
diff --git a/application-devel/posix-ipc/Makefile b/application-devel/posix-ipc/Makefile
index 4663d52..d641258 100644
--- a/application-devel/posix-ipc/Makefile
+++ b/application-devel/posix-ipc/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/application-devel/posix-ipc/pres_posix_ipc_de.tex b/application-devel/posix-ipc/pres_posix_ipc_de.tex
index cd5027e..9174c17 100644
--- a/application-devel/posix-ipc/pres_posix_ipc_de.tex
+++ b/application-devel/posix-ipc/pres_posix_ipc_de.tex
@@ -1,79 +1,20 @@
-\documentclass[11pt]{beamer}
-
-%\usepackage{ngerman}
-\usepackage{times}
-\usepackage{graphicx}
-\usepackage{pgf,pgfarrows,pgfnodes,pgfautomata,pgfheaps}
-\usepackage{amsmath,amssymb}
-\usepackage[utf8]{inputenc}
-\usepackage{listings,color}
-\definecolor{lbcolor}{RGB}{255,210,150}
-\lstset{
- language=C,
- numbers=left,
- stepnumber=1,
- numbersep=5pt,
- numberstyle=\tiny,
- breaklines=true,
- breakautoindent=true,
- postbreak=\space,
- tabsize=2,
- basicstyle=\ttfamily\fontsize{7}{9}\selectfont,
- showspaces=false,
- showstringspaces=false,
- extendedchars=true,
- backgroundcolor=\color{lbcolor},
- keywordstyle=\bf ,
- commentstyle=\color{green},
- stringstyle=\color{red}
-}
-
-\mode<presentation>
-{
- \usetheme{linutronix}
-}
+\input{configpres}
-% on the following slides, include icon in the left sidebar
\def\lximg{/usr/share/lx/icons/fueller.png}
-\title{POSIX IPC}
-\institute{Linutronix GmbH}
-
-\begin{document}
+\subsection{POSIX IPC}
-\frame{ \titlepage }
+\title{POSIX IPC}
+\maketitle
% stop displaying 'fueller.png' on the following slides
\def\lximg{none}
-%\AtBeginSection[]
-%{
-% \begin{frame}<beamer>
-% \tableofcontents[currentsection,currentsubsection]
-% \end{frame}
-%}
-
-\AtBeginSubsection[]
-{
- \begin{frame}<beamer>
- \tableofcontents[currentsection,currentsubsection]
- \end{frame}
-}
-
\begin{frame}
\tableofcontents
\end{frame}
-\begin{frame}
-\frametitle{POSIX IPC: Übersicht}
-\begin{itemize}
-\item Message Queues
-\item Semaphores
-\item Shared Memory
-\end{itemize}
-\end{frame}
-
-\section{Message Queues}
+\subsubsection{Message Queues}
\begin{frame}
\frametitle{POSIX Message Queues}
\begin{itemize}
@@ -202,7 +143,7 @@ return 0;
\end{lstlisting}
\end{frame}
-\section{Semaphoren}
+\subsubsection{Semaphoren}
\begin{frame}
\frametitle{POSIX Semaphoren: Übersicht}
\begin{itemize}
@@ -335,7 +276,8 @@ return 0;
\end{lstlisting}
\end{frame}
-\section{Shared Memory}
+\subsubsection{Shared Memory}
+
\begin{frame}
\frametitle{Shared Memory: Übersicht}
\begin{itemize}
@@ -411,4 +353,5 @@ out:
return ret;
\end{lstlisting}
\end{frame}
-\end{document}
+
+\input{tailpres}
diff --git a/application-devel/section.tex b/application-devel/section.tex
new file mode 100644
index 0000000..e447d0f
--- /dev/null
+++ b/application-devel/section.tex
@@ -0,0 +1 @@
+\section{Applikationsentwicklung}
diff --git a/confighandout.tex b/confighandout.tex
new file mode 100644
index 0000000..963125a
--- /dev/null
+++ b/confighandout.tex
@@ -0,0 +1,13 @@
+\documentclass{lxarticle}
+\usepackage{german}
+\usepackage[utf8]{inputenc}
+\usepackage{lxheaders}
+\usepackage{lxextras}
+\lstset{keywordstyle=\color{blue}}
+
+\begin{document}
+
+% disables chapter, section and subsection numbering
+\setcounter{secnumdepth}{-1}
+
+\input{section}
diff --git a/configmasterhandout.tex b/configmasterhandout.tex
new file mode 100644
index 0000000..285bc00
--- /dev/null
+++ b/configmasterhandout.tex
@@ -0,0 +1,13 @@
+\documentclass{book}
+\usepackage{german}
+\usepackage[utf8]{inputenc}
+\usepackage{lxextras}
+\lstset{keywordstyle=\color{blue}}
+
+\begin{document}
+
+\title{Linux Entwicklung}
+\maketitle
+
+\tableofcontents
+\pagebreak
diff --git a/configmasterpres.tex b/configmasterpres.tex
new file mode 100644
index 0000000..2fd1ddf
--- /dev/null
+++ b/configmasterpres.tex
@@ -0,0 +1,36 @@
+\documentclass{beamer}
+\mode<presentation>
+{
+ \usetheme{Dresden}
+}
+\usepackage{german}
+\usepackage[utf8]{inputenc}
+\usepackage{pgf,pgfarrows,pgfnodes,pgfautomata,pgfheaps}
+\usepackage{amsmath,amssymb}
+\usepackage{listings,color}
+\usepackage{graphicx}
+\usepackage{lxextras}
+
+\institute{Linutronix GmbH}
+\definecolor{lbcolor}{RGB}{255,210,150}
+\lstset{
+ language=C++,
+ numbers=left,
+ stepnumber=1,
+ numbersep=5pt,
+ numberstyle=\tiny,
+ breaklines=true,
+ breakautoindent=true,
+ postbreak=\space,
+ tabsize=2,
+ basicstyle=\ttfamily\tiny,
+ showspaces=false,
+ showstringspaces=false,
+ extendedchars=true,
+ backgroundcolor=\color{lbcolor},
+ keywordstyle=\bf ,
+ commentstyle=\color{green},
+ stringstyle=\color{red}
+}
+
+\begin{document}
diff --git a/configpres.tex b/configpres.tex
new file mode 100644
index 0000000..0395f4a
--- /dev/null
+++ b/configpres.tex
@@ -0,0 +1,38 @@
+\documentclass{beamer}
+\mode<presentation>
+{
+ \usetheme{Dresden}
+}
+\usepackage{german}
+\usepackage[utf8]{inputenc}
+\usepackage{pgf,pgfarrows,pgfnodes,pgfautomata,pgfheaps}
+\usepackage{amsmath,amssymb}
+\usepackage{listings,color}
+\usepackage{graphicx}
+\usepackage{lxextras}
+
+\institute{Linutronix GmbH}
+\definecolor{lbcolor}{RGB}{255,210,150}
+\lstset{
+ language=C++,
+ numbers=left,
+ stepnumber=1,
+ numbersep=5pt,
+ numberstyle=\tiny,
+ breaklines=true,
+ breakautoindent=true,
+ postbreak=\space,
+ tabsize=2,
+ basicstyle=\ttfamily\tiny,
+ showspaces=false,
+ showstringspaces=false,
+ extendedchars=true,
+ backgroundcolor=\color{lbcolor},
+ keywordstyle=\bf ,
+ commentstyle=\color{green},
+ stringstyle=\color{red}
+}
+
+\begin{document}
+
+\input{section}
diff --git a/flash-memory/Makefile b/flash-memory/Makefile
index 72cada2..0a202ea 100644
--- a/flash-memory/Makefile
+++ b/flash-memory/Makefile
@@ -1,4 +1,4 @@
-SUBDIRS = `ls -1`
+SUBDIRS = `ls -1 | grep -v *.tex | grep -v Makefile | grep -v TODO`
all clean::
for dir in $(SUBDIRS) ; do \
diff --git a/flash-memory/TODO b/flash-memory/TODO
new file mode 100644
index 0000000..a146baa
--- /dev/null
+++ b/flash-memory/TODO
@@ -0,0 +1 @@
+ubifs chapter
diff --git a/flash-memory/flash-filesystems/Makefile b/flash-memory/flash-filesystems/Makefile
index 4663d52..d641258 100644
--- a/flash-memory/flash-filesystems/Makefile
+++ b/flash-memory/flash-filesystems/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/flash-memory/flash-filesystems/pres_flashfilesystems_en.tex b/flash-memory/flash-filesystems/pres_flashfilesystems_en.tex
index 0249aa0..5de794f 100644
--- a/flash-memory/flash-filesystems/pres_flashfilesystems_en.tex
+++ b/flash-memory/flash-filesystems/pres_flashfilesystems_en.tex
@@ -1,51 +1,20 @@
-\documentclass[11pt]{beamer}
-
-%\usepackage{ngerman}
-\usepackage{times}
-\usepackage{graphicx}
-\usepackage{pgf,pgfarrows,pgfnodes,pgfautomata,pgfheaps}
-\usepackage{amsmath,amssymb}
-\usepackage[latin1]{inputenc}
-\usepackage{listings,color}
-\definecolor{lbcolor}{RGB}{255,210,150}
-\lstset{
- language=C,
- numbers=left,
- stepnumber=1,
- numbersep=5pt,
- numberstyle=\tiny,
- breaklines=true,
- breakautoindent=true,
- postbreak=\space,
- tabsize=2,
- basicstyle=\ttfamily\footnotesize,
- showspaces=false,
- showstringspaces=false,
- extendedchars=true,
- backgroundcolor=\color{lbcolor},
- keywordstyle=\bf ,
- commentstyle=\color{green},
- stringstyle=\color{red}
-}
-
-\mode<presentation>
-{
- \usetheme{linutronix}
-}
-
-% on the following slides, include icon in the left sidebar
\def\lximg{/usr/share/lx/icons/fueller.png}
-\title{Creating Flashfilesystems}
-\institute{Linutronix GmbH}
+\input{configpres}
-\begin{document}
+\subsection{Creating Flashfilesystems}
-\frame{ \titlepage }
+\title{Creating Flashfilesystems}
+\maketitle
-% stop displaying 'fueller.png' on the following slides
\def\lximg{none}
+\begin{frame}
+\frametitle{Contents}
+\tableofcontents
+\end{frame}
+
+\subsubsection{Emulation}
\begin{frame}[fragile]
\frametitle{Emulating flash devices}
\begin{lstlisting}
@@ -63,6 +32,7 @@ $ dmesg
\end{lstlisting}
\end{frame}
+\subsubsection{JFFS2}
\begin{frame}[fragile]
\frametitle{MTD Flash partitioning}
\begin{itemize}
@@ -107,6 +77,7 @@ root=/dev/mtdblock0 rootfstype=jffs2
\end{verbatim}
\end{frame}
+\subsubsection{UBI and UBIFS}
\begin{frame}
\frametitle{UBI: Unsorted Block Images}
\begin{figure}[h]
@@ -198,10 +169,10 @@ ubi.mtd=0 root=ubi0:myvolume rootfstype=ubifs
\end{verbatim}
\end{frame}
-\section*{sources}
\begin{frame}
\begin{thebibliography}{1}
\bibitem{UBIFS} http://mytechrants.wordpress.com/2010/01/20/ubiubifs-on-nandsim/
\end{thebibliography}
\end{frame}
-\end{document}
+
+\input{tailpres}
diff --git a/flash-memory/mtd/Makefile b/flash-memory/mtd/Makefile
index 4663d52..d641258 100644
--- a/flash-memory/mtd/Makefile
+++ b/flash-memory/mtd/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/flash-memory/mtd/handout_mtd_de.tex b/flash-memory/mtd/handout_mtd_de.tex
index b11c3a5..15c642f 100644
--- a/flash-memory/mtd/handout_mtd_de.tex
+++ b/flash-memory/mtd/handout_mtd_de.tex
@@ -1,14 +1,8 @@
-\documentclass{lxarticle}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{lxheaders}
-\usepackage{lxextras}
+\input{confighandout}
-\begin{document}
+\subsection{Memory Technology Devices (MTD)}
-\section*{Memory Technology Devices (MTD)}
-
-\section*{Was sind Memory Technology Devices?}
+\subsubsection{Was sind Memory Technology Devices?}
Prinzipiell kann jedes Stück Speicher als MTD dargestellt werden,
es gibt sogar Treiber, die einfach einen RAM-Bereich exportieren.
@@ -30,7 +24,7 @@ des Geräts von einem eingebauten Controller verwaltet und erscheint für
den Kernel als normales Block-Device (wie eine Festplatte). NAND-typische
Eigenschaften wie die Größe eines Eraseblocks bleiben dem Kernel unbekannt.
-\section*{Das MTD-Subsystem im Kernel}
+\subsubsection{Das MTD-Subsystem im Kernel}
Wie im Linux-Kernel üblich, werden die Treiber gleichartiger Geräte von
einem eigenen Subsystem verwaltet. Diese Vorgehensweise ermöglicht eine
@@ -40,7 +34,7 @@ von Treibern, da ihre Struktur vorgegeben ist, und sie sich nicht mehr
um immer wiederkehrenden generischen Code oder das Interface zum
Userspace kümmern müssen.
-\subsection*{Was das MTD-Subsystem im Kernel macht...}
+\paragraph{Was das MTD-Subsystem im Kernel macht...}
Das MTD-Subsystem verwaltet zunächst die physikalische Struktur eines
Chips, kennt also z.B. dessen Zusammensetzung aus einer gewissen Anzahl
@@ -58,7 +52,7 @@ Anhand dieser Device-Dateien kann jetzt auf die einzelnen Partitionen
zugegriffen werden. Dabei können Datenblöcke gelesen und geschrieben
werden, ausserdem können Eraseblöcke gelöscht werden.
-\subsection*{...und was das MTD-Subsystem \emph{nicht} macht...}
+\paragraph{...und was das MTD-Subsystem \emph{nicht} macht...}
Das MTD-Subsystem wurde bewusst als sehr dünner Abstraktions-Layer
angelegt. Es geht lediglich um die einheitliche Schnittstelle und
@@ -73,7 +67,7 @@ Ausser der NAND-eigenen ECC-Fehlerkorrektur gibt es keine weiteren
Schutzmechanismen, falls beim Schreiben der Strom ausfällt, gehen
Daten verloren.
-\subsection*{Erweiterungen}
+\paragraph{Erweiterungen}
Aus historischen Gründen verfügt der Kernel noch über den \cmd{mtdblock}-
Treiber. Dieser emuliert für ein mtd-Device \cmd{/dev/mtd0} ein
@@ -93,7 +87,7 @@ Interesse als veraltet und schlecht gewartet.
Durch die Einführung von UBI und ubifs sind derartige MTD-Erweiterungen
für die meisten Anwendungen schlicht überflüssig geworden.
-\section*{MTD-Tools}
+\subsubsection{MTD-Tools}
Um auf mtd-Devices zugreifen zu können, haben die MTD-Entwickler eine Reihe
von Tools entwickelt, die von den meisten Distributionen als Paket bereit
@@ -135,4 +129,4 @@ Datei \cmd{data.txt} gespeichert.
\emph{Hinweis:} Alle diese Tools kennen die Option \cmd{--help}, die alle
verfügbaren Optionen auflistet und kurz erläutert.
-\end{document}
+\input{tailhandout}
diff --git a/flash-memory/mtd/pres_mtd_de.tex b/flash-memory/mtd/pres_mtd_de.tex
index 217689a..80ffff5 100644
--- a/flash-memory/mtd/pres_mtd_de.tex
+++ b/flash-memory/mtd/pres_mtd_de.tex
@@ -1,19 +1,15 @@
-\documentclass{beamer}
-\usetheme{linutronix}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{pgf}
-\usepackage{graphicx}
-\usepackage{lxextras}
+\input{configpres}
-\title{Block \lq Memory Technology Devices (MTD) unter Linux\rq}
-\institute{Linutronix GmbH}
-
-\begin{document}
+\subsection{Memory Technology Devices (MTD)}
+\title{\lq Memory Technology Devices (MTD)\rq}
\maketitle
-% ----- Slide ------------------
+\begin{frame}
+ \tableofcontents
+\end{frame}
+
+\subsubsection{Einführung}
\begin{frame}
\frametitle{Memory Technology Devices}
\begin{itemize}
@@ -26,7 +22,7 @@
\end{frame}
-% ----- Slide ------------------
+\subsubsection{MTD Kernelsubsystem}
\begin{frame}
\frametitle{MTD subsystem im Kernel}
\begin{itemize}
@@ -41,5 +37,4 @@
\end{frame}
-
-\end{document}
+\input{tailpres}
diff --git a/flash-memory/section.tex b/flash-memory/section.tex
new file mode 100644
index 0000000..7c98f9f
--- /dev/null
+++ b/flash-memory/section.tex
@@ -0,0 +1 @@
+\section{Flash Speicher}
diff --git a/flash-memory/ubi/Makefile b/flash-memory/ubi/Makefile
index 4663d52..d641258 100644
--- a/flash-memory/ubi/Makefile
+++ b/flash-memory/ubi/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/flash-memory/ubi/handout_ubi_de.tex b/flash-memory/ubi/handout_ubi_de.tex
index 0cf7aec..0f4b4cb 100644
--- a/flash-memory/ubi/handout_ubi_de.tex
+++ b/flash-memory/ubi/handout_ubi_de.tex
@@ -1,14 +1,8 @@
-\documentclass{lxarticle}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{lxheaders}
-\usepackage{lxextras}
+\input{confighandout}
-\begin{document}
+\subsection{Unsorted Block Images (UBI)}
-\section*{Unsorted Block Images (UBI)}
-
-\section*{Was ist UBI?}
+\subsubsection{Was ist UBI?}
UBI kann am ehesten als Logical Volume Manager (LVM) für mtd-Devices
bezeichnet werden. Beim Start scanned UBI das mtd-Device und baut eine
@@ -19,7 +13,7 @@ bereits erkennt.
Dieser Gesamtvorrat an physikalischen Eraseblöcken wird jetzt im
nächsten Schritt an sogenannte UBI-Volumes verteilt.
-\section*{UBI-Volumes}
+\subsubsection{UBI-Volumes}
UBI-Volumes entsprechen etwa den Partitionen anderer Systeme. Der von
einem mtd-Device bereitgestellte Speicher wird also in mehrere unabhängige
@@ -54,7 +48,7 @@ Platte zum anderen bewegt werden muss. Auf Flash-Speichern gibt es keine
Seek-Zeiten, was UBI hier zugunsten eines auf Flash optimierten Designs
ausnutzt.
-\subsection*{Statische Volumes}
+\paragraph{Statische Volumes}
Statische Volumes sind für Anwendungen gedacht, die kein Dateisystem
benötigen. Ein praktisches Beispiel ist ein kleines Volume, das lediglich einen
@@ -69,7 +63,7 @@ wenig Code (einige kB) möglich.
Statische Volumes enthalten also immer nur einen einzigen Datenblock, der
in einem Vorgang geschrieben werden muss.
-\subsection*{Dynamische Volumes}
+\paragraph{Dynamische Volumes}
Dynamische Volumes sind dafür gedacht, ein Dateisystem zu enthalten.
Man verwendet sie also beispielsweise für ein Root-Filesystem oder für
@@ -77,7 +71,7 @@ Volumes, die Nutzerdaten enthalten.
Dynamische Volumes verwendet man am Besten mit dem Dateisystem ubifs.
-\subsection*{UBIGLUEBI}
+\paragraph{UBIGLUEBI}
UBIGLUEBI ist ein Aufsatz auf UBI, der für jedes Volume wieder ein
mtd-Device bereitstellt. Dies klingt zunächst überraschend, da UBI ja schon
@@ -89,7 +83,7 @@ Heute gibt es ubifs, das direkt auf UBI aufsetzt und folglich kein
mtd-Device benötigt. Da ubifs ohnehin in allen Bereichen deutliche Vorteile
gegenüber jffs2 hat, wird UBIGLUEBI in der Regel nicht mehr benötigt.
-\section*{UBI-Tools}
+\subsubsection{UBI-Tools}
Da UBI von den MTD-Entwicklern implementiert wurde, sind die UBI-Tools
Bestandteil der MTD-Tool-Kollektion. Diese gibt es mittlerweile als
@@ -169,4 +163,4 @@ Weitere Informationen sind unter folgender URL erhältlich:
http://www.linux-mtd.infradead.org/doc/general.html
\end{lstlisting}
-\end{document}
+\input{tailhandout}
diff --git a/flash-memory/ubi/pres_ubi_de.tex b/flash-memory/ubi/pres_ubi_de.tex
index d4e154f..410b899 100644
--- a/flash-memory/ubi/pres_ubi_de.tex
+++ b/flash-memory/ubi/pres_ubi_de.tex
@@ -1,19 +1,15 @@
-\documentclass{beamer}
-\usetheme{linutronix}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{pgf}
-\usepackage{graphicx}
-\usepackage{lxextras}
+\input{configpres}
-\title{Block \lq UBI - Unsorted Block Images\rq}
+\subsection{UBI - Unsorted Block Images}
+\title{\lq UBI - Unsorted Block Images\rq}
\institute{Linutronix GmbH}
-\begin{document}
-
\maketitle
-% ----- Slide ------------------
+\begin{frame}
+ \tableofcontents
+\end{frame}
+
\begin{frame}
\frametitle{UBI - Unsorted Block Images}
\begin{itemize}
@@ -25,5 +21,4 @@
\end{itemize}
\end{frame}
-
-\end{document}
+\input{tailpres}
diff --git a/flash-memory/ubifs/Makefile b/flash-memory/ubifs/Makefile
deleted file mode 100644
index 4663d52..0000000
--- a/flash-memory/ubifs/Makefile
+++ /dev/null
@@ -1,9 +0,0 @@
-all:
- for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
- done
-
-clean:
- rm -f *.aux *.log *.pdf *.log *.snm *.toc *.vrb *.nav *.out
-
diff --git a/frameworks/Makefile b/frameworks/Makefile
index 72cada2..0a202ea 100644
--- a/frameworks/Makefile
+++ b/frameworks/Makefile
@@ -1,4 +1,4 @@
-SUBDIRS = `ls -1`
+SUBDIRS = `ls -1 | grep -v *.tex | grep -v Makefile | grep -v TODO`
all clean::
for dir in $(SUBDIRS) ; do \
diff --git a/frameworks/TODO b/frameworks/TODO
new file mode 100644
index 0000000..bd85bef
--- /dev/null
+++ b/frameworks/TODO
@@ -0,0 +1 @@
+- section about gui frameworks
diff --git a/frameworks/gui/Makefile b/frameworks/gui/Makefile
deleted file mode 100644
index 4663d52..0000000
--- a/frameworks/gui/Makefile
+++ /dev/null
@@ -1,9 +0,0 @@
-all:
- for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
- done
-
-clean:
- rm -f *.aux *.log *.pdf *.log *.snm *.toc *.vrb *.nav *.out
-
diff --git a/frameworks/middleware/Makefile b/frameworks/middleware/Makefile
index 4663d52..d641258 100644
--- a/frameworks/middleware/Makefile
+++ b/frameworks/middleware/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/frameworks/middleware/handout_middleware.tex b/frameworks/middleware/handout_middleware.tex
index c11bc8d..44c75f7 100644
--- a/frameworks/middleware/handout_middleware.tex
+++ b/frameworks/middleware/handout_middleware.tex
@@ -1,32 +1,6 @@
-\documentclass{lxarticle}
-%\usepackage{english}
-\usepackage[utf8]{inputenc}
-\usepackage{lxheaders}
-\usepackage{lxextras}
-
-\lstset{
- language=C++,
- numbers=left,
- stepnumber=1,
- numbersep=5pt,
- numberstyle=\tiny,
- breaklines=true,
- breakautoindent=true,
- postbreak=\space,
- tabsize=2,
- basicstyle=\ttfamily\footnotesize,
- showspaces=false,
- showstringspaces=false,
- extendedchars=true,
- %backgroundcolor=\color{lbcolor},
- keywordstyle=\bf ,
- commentstyle=\color{green},
- stringstyle=\color{red}
-}
-
-\begin{document}
+\input{confighandout}
-\section*{Middleware}
+\subsection{Middleware}
Distributed systems need to communicate with each other. Middleware assists the
developer by delivering a communication framework. The developer doesn't need
@@ -54,7 +28,7 @@ Also a middleware can provide different degrees of abstraction:
\item Localization of Services
\end{itemize}
-\subsection*{D-Bus / Desktop Bus}
+\subsubsection{D-Bus / Desktop Bus}
D-Bus is designed for
@@ -73,13 +47,11 @@ and used by several Desktop Environments
\item \dots
\end{itemize}
-also \cmd{HAL} host its hardware info at D-Bus.
-
D-Bus is designed for local IPC only. It is a message based Middleware
supporting 1:n publish/subscribe mechanism and 1:1 message passing. D-Bus has
integrated datatype marschalling.
-\subsubsection*{Architecture}
+\paragraph{Architecture}
\begin{figure}
\centering
@@ -116,7 +88,7 @@ possible one of these libraries should be used:
\item .NET
\end{itemize}
-\paragraph{Terminology}
+\subparagraph{Terminology}
\begin{description}
\item[bus address] is the name of ther underlying unix socket, e.g.
\cmd{/tmp/dbus\_lx.socket}
@@ -160,9 +132,9 @@ NM Applet and sends it to the D-Bus system bus. The NM daemon listens for the
messages from the NM user daemon and configures the networking stack via system
calls.
-\subsubsection*{Tools}
+\paragraph{Tools}
-\paragraph{qdbusviewer}
+\subparagraph{qdbusviewer}
is a tool to browse through the hosted objects and call any method. (Figure
\ref{img:qdbusviewer})
@@ -173,7 +145,7 @@ is a tool to browse through the hosted objects and call any method. (Figure
\label{img:qdbusviewer}
\end{figure}
-\subsubsection*{Conclusion}
+\paragraph{Conclusion}
D-Bus is good for accessing System Infos and for IPC of Desktop Applications.
Its small API has bindings for all common languages and frameworks and is easy
@@ -185,7 +157,7 @@ to guarantee any real-time behaviour. There is even no message ordering. There
is no guarantee which method returns first, if two methods are invoked around
the same time.
-\subsection*{CORBA}
+\subsubsection{CORBA}
CORBA is a middleware, which allows RPC\footnote{Remote Procedure
Call}-based IPC\footnote{Inter Process Communication} between
@@ -235,7 +207,7 @@ systems. The framework can be trimmed for embedded systems: Each
application described in this paper consumes less than 1 MByte of
RAM. Also the consumed CPU time is suprisingly low.
-\subsubsection{Conclusion}
+\paragraph{Conclusion}
CORBA offers a wide variety of middleware communication methods. There is no
limitation for a communication between different operating systems, even the
@@ -243,7 +215,7 @@ network protocols can be exchanged. CORBA provides a Real-time extension.
On the other hand, the framework is complex and difficult to learn.
-\subsection*{Exercises}
+\subsubsection{Exercises}
An application should be created, to send a message to the 'server' with a
variable payload, that the time needed for the call / return of the call can be
@@ -252,7 +224,7 @@ measured in the client.
The above described application will be implemented with ACE/TAO RTCORBA and
the D-Bus glib bindings:
-\subsubsection*{ACE/TAO RTCORBA}
+\paragraph{ACE/TAO RTCORBA}
First an IDL for the Ping interface will be created (\cmd{ping.idl}:
@@ -683,10 +655,9 @@ To run the applications start them with:
The order, which application is started first doesn't matter. Take care that
the \cmd{dbus-daemon} is running.
-\begin{thebibliography}{9}%use this if you have <=9 bib refs
-%\begin{thebibliography}{99}%use this if you have >9 bib refs
+\begin{thebibliography}{9}
\bibitem{paper1},{\it Real-time CORBA Specification},2005, {\sc OMG}
\bibitem{paper2},{\it Overview of ACE},2007\\{\it http://www.cs.wustl.edu/schmidt/ACE-overview.html}
\end{thebibliography}
-\end{document}
+\input{tailhandout}
diff --git a/frameworks/middleware/hints_middleware.tex b/frameworks/middleware/hints_middleware.tex
index 50e0cca..140eed4 100644
--- a/frameworks/middleware/hints_middleware.tex
+++ b/frameworks/middleware/hints_middleware.tex
@@ -16,12 +16,4 @@
\item Grundlegende Unterschiede zwischen DBUS und CORBA
\end{itemize}
-\subsection*{Unterrichts-Ablauf}
-
-Hinweise zur Präsentation, Zeitplanung, etc.
-
-\subsection*{Übungen bei vorhandener Hardware}
-
-Hinweise zu Übungen, Zeitlimit dazu.
-
\end{document}
diff --git a/frameworks/middleware/pres_middleware.tex b/frameworks/middleware/pres_middleware.tex
index fbb6131..2f4c462 100644
--- a/frameworks/middleware/pres_middleware.tex
+++ b/frameworks/middleware/pres_middleware.tex
@@ -1,40 +1,9 @@
-\documentclass{beamer}
-\usetheme{linutronix}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{pgf}
-\usepackage{graphicx}
-\usepackage{lxextras}
-
-\lstset{
- language=C++,
- numbers=left,
- stepnumber=1,
- numbersep=5pt,
- numberstyle=\tiny,
- breaklines=true,
- breakautoindent=true,
- postbreak=\space,
- tabsize=2,
- basicstyle=\ttfamily\footnotesize,
- showspaces=false,
- showstringspaces=false,
- extendedchars=true,
- backgroundcolor=\color{lbcolor},
- keywordstyle=\bf ,
- commentstyle=\color{green},
- stringstyle=\color{red}
-}
-
-\title{Block \lq Middleware\rq}
-\institute{Linutronix GmbH}
-
-\begin{document}
+\input{configpres}
+\title{\lq Middleware\rq}
\maketitle
-\section{DBUS}
-
+\subsection{DBUS}
\begin{frame}
\frametitle{DBUS Communication Framework}
\begin{block}{Facts}
@@ -92,8 +61,7 @@ Source: http://dbus.freedesktop.org
Source: http://www.redhat.com
\end{frame}
-\section{CORBA}
-
+\subsection{CORBA}
\begin{frame}
\frametitle{Common Object Request Broker Architecture}
\begin{block}{abstracts}
@@ -141,12 +109,11 @@ Source: http://www.redhat.com
\end{raggedright}
\end{frame}
-\subsection{ACE/TAO Framework}
-
+\subsubsection{ACE/TAO Framework}
\begin{frame}
\frametitle{ACE/TAO Software Architecture}
\begin{center}
-\includegraphics[height=0.7\textheight]{./images/ace.jpg}
+\includegraphics[height=0.7\textheight]{images/ace.jpg}
\end{center}
\begin{raggedright}
\scriptsize http://cs.wustl.edu/schmidt/ACE
@@ -167,4 +134,4 @@ Source: http://www.redhat.com
\end{block}
\end{frame}
-\end{document}
+\input{tailpres}
diff --git a/frameworks/section.tex b/frameworks/section.tex
new file mode 100644
index 0000000..97c05a1
--- /dev/null
+++ b/frameworks/section.tex
@@ -0,0 +1 @@
+\section{Frameworks}
diff --git a/handout_master.tex b/handout_master.tex
new file mode 100644
index 0000000..68117f2
--- /dev/null
+++ b/handout_master.tex
@@ -0,0 +1,24 @@
+\input{configmasterhandout}
+\chapter{Grundlagen}
+\section{Aufbau}
+\input{./linux-basics/boot-process/handout_boot-process_de.tex}
+\input{./linux-basics/filesystem-structure/handout_file-system-structure_de.tex}
+\chapter{Userspace}
+\section{Applikationsentwicklung}
+\input{./linux-basics/sh-programming/handout_sh-programming_de.tex}
+\input{./application-devel/app-debugging/handout_app-debugging_de.tex}
+\input{./application-devel/devel-environment/handout_devel-environment_de.tex}
+\section{Frameworks}
+\input{./frameworks/middleware/handout_middleware.tex}
+\chapter{Kernel}
+\section{Flashspeicher}
+\input{./flash-memory/mtd/handout_mtd_de.tex}
+\input{./flash-memory/ubi/handout_ubi_de.tex}
+\section{Treiberentwicklung}
+\input{./kernel-devel/kernel-basics/handout_kernel-basics_de.tex}
+\input{./kernel-devel/kernel-build/handout_kernel-build_de.tex}
+\input{./kernel-devel/uio-driver/handout_uio-driver_de.tex}
+\section{Echtzeit}
+\input{./realtime/rt-basics/handout_rt-basics_de.tex}
+\input{./realtime/rt-specialties/handout_rt-specialties_de.tex}
+\input{tailmasterhandout}
diff --git a/handout_template.tex b/handout_template.tex
index b6e7158..046bda6 100644
--- a/handout_template.tex
+++ b/handout_template.tex
@@ -1,19 +1,13 @@
-\documentclass{lxarticle}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{lxheaders}
-\usepackage{lxextras}
+\input{confighandout}
-\begin{document}
+\subsection*{Titel}
-\section*{Titel}
-
-\subsection*{Abschnitt1}
+\subsubsection*{Abschnitt1}
Text
-\subsection*{Abschnitt2}
+\subsubsection*{Abschnitt2}
Text
-\end{document}
+\input{tailhandout}
diff --git a/linux-basics/what-is-linux/images/785px-Eniac.jpg b/images/785px-Eniac.jpg
index 11d5427..11d5427 100644
--- a/linux-basics/what-is-linux/images/785px-Eniac.jpg
+++ b/images/785px-Eniac.jpg
Binary files differ
diff --git a/linux-basics/what-is-linux/images/800px-IBM_PC_5150.jpg b/images/800px-IBM_PC_5150.jpg
index 2627029..2627029 100644
--- a/linux-basics/what-is-linux/images/800px-IBM_PC_5150.jpg
+++ b/images/800px-IBM_PC_5150.jpg
Binary files differ
diff --git a/linux-basics/what-is-linux/images/Apple2.jpg b/images/Apple2.jpg
index d1fe1c5..d1fe1c5 100644
--- a/linux-basics/what-is-linux/images/Apple2.jpg
+++ b/images/Apple2.jpg
Binary files differ
diff --git a/linux-basics/what-is-linux/images/CPU_und_Terminals1-600px.png b/images/CPU_und_Terminals1-600px.png
index 68deaaf..68deaaf 100644
--- a/linux-basics/what-is-linux/images/CPU_und_Terminals1-600px.png
+++ b/images/CPU_und_Terminals1-600px.png
Binary files differ
diff --git a/linux-basics/what-is-linux/images/CPU_und_Terminals1.svg b/images/CPU_und_Terminals1.svg
index 7da3025..7da3025 100644
--- a/linux-basics/what-is-linux/images/CPU_und_Terminals1.svg
+++ b/images/CPU_und_Terminals1.svg
diff --git a/linux-basics/what-is-linux/images/Linus_Torvalds.jpg b/images/Linus_Torvalds.jpg
index 5203b62..5203b62 100644
--- a/linux-basics/what-is-linux/images/Linus_Torvalds.jpg
+++ b/images/Linus_Torvalds.jpg
Binary files differ
diff --git a/linux-basics/what-is-linux/images/Linux_schichten.png b/images/Linux_schichten.png
index 60ae638..60ae638 100644
--- a/linux-basics/what-is-linux/images/Linux_schichten.png
+++ b/images/Linux_schichten.png
Binary files differ
diff --git a/kernel-devel/module-basics/images/PCI_driver.dia b/images/PCI_driver.dia
index cc9a630..cc9a630 100644
--- a/kernel-devel/module-basics/images/PCI_driver.dia
+++ b/images/PCI_driver.dia
Binary files differ
diff --git a/kernel-devel/module-basics/images/PCI_driver.png b/images/PCI_driver.png
index 02fe4cb..02fe4cb 100644
--- a/kernel-devel/module-basics/images/PCI_driver.png
+++ b/images/PCI_driver.png
Binary files differ
diff --git a/linux-basics/what-is-linux/images/Richard_Stallman_2005_(chrys).jpg b/images/Richard_Stallman_2005_(chrys).jpg
index c3ef169..c3ef169 100644
--- a/linux-basics/what-is-linux/images/Richard_Stallman_2005_(chrys).jpg
+++ b/images/Richard_Stallman_2005_(chrys).jpg
Binary files differ
diff --git a/kernel-devel/kernel-basics/images/Subsystems.png b/images/Subsystems.png
index 29cd56b..29cd56b 100644
--- a/kernel-devel/kernel-basics/images/Subsystems.png
+++ b/images/Subsystems.png
Binary files differ
diff --git a/kernel-devel/kernel-basics/images/Subsystems.svg b/images/Subsystems.svg
index 20615da..20615da 100644
--- a/kernel-devel/kernel-basics/images/Subsystems.svg
+++ b/images/Subsystems.svg
diff --git a/linux-basics/what-is-linux/images/Thompson-sitting-Richie-standing-PDP11-1972.jpg b/images/Thompson-sitting-Richie-standing-PDP11-1972.jpg
index 23e20dc..23e20dc 100644
--- a/linux-basics/what-is-linux/images/Thompson-sitting-Richie-standing-PDP11-1972.jpg
+++ b/images/Thompson-sitting-Richie-standing-PDP11-1972.jpg
Binary files differ
diff --git a/linux-basics/what-is-linux/images/Unix_history.png b/images/Unix_history.png
index c67d479..c67d479 100644
--- a/linux-basics/what-is-linux/images/Unix_history.png
+++ b/images/Unix_history.png
Binary files differ
diff --git a/linux-basics/what-is-linux/images/Unix_history.svg b/images/Unix_history.svg
index 14a47c1..14a47c1 100644
--- a/linux-basics/what-is-linux/images/Unix_history.svg
+++ b/images/Unix_history.svg
diff --git a/linux-basics/filesystem-structure/images/Zugriffsrechte.png b/images/Zugriffsrechte.png
index 53aaa9d..53aaa9d 100644
--- a/linux-basics/filesystem-structure/images/Zugriffsrechte.png
+++ b/images/Zugriffsrechte.png
Binary files differ
diff --git a/linux-basics/filesystem-structure/images/Zugriffsrechte.svg b/images/Zugriffsrechte.svg
index 26ce9d5..26ce9d5 100644
--- a/linux-basics/filesystem-structure/images/Zugriffsrechte.svg
+++ b/images/Zugriffsrechte.svg
diff --git a/frameworks/middleware/images/ace.jpg b/images/ace.jpg
index 9479e23..9479e23 100755
--- a/frameworks/middleware/images/ace.jpg
+++ b/images/ace.jpg
Binary files differ
diff --git a/application-devel/devel-environment/images/anjuta.png b/images/anjuta.png
index 2a22c7c..2a22c7c 100644
--- a/application-devel/devel-environment/images/anjuta.png
+++ b/images/anjuta.png
Binary files differ
diff --git a/application-devel/devel-environment/images/autotools.png b/images/autotools.png
index a327ebc..a327ebc 100644
--- a/application-devel/devel-environment/images/autotools.png
+++ b/images/autotools.png
Binary files differ
diff --git a/application-devel/devel-scenarios/images/cygwin.dia b/images/cygwin.dia
index 9f243e2..9f243e2 100644
--- a/application-devel/devel-scenarios/images/cygwin.dia
+++ b/images/cygwin.dia
Binary files differ
diff --git a/application-devel/devel-scenarios/images/cygwin.png b/images/cygwin.png
index 0613769..0613769 100644
--- a/application-devel/devel-scenarios/images/cygwin.png
+++ b/images/cygwin.png
Binary files differ
diff --git a/frameworks/middleware/images/dbus-hal.png b/images/dbus-hal.png
index 12ffe37..12ffe37 100644
--- a/frameworks/middleware/images/dbus-hal.png
+++ b/images/dbus-hal.png
Binary files differ
diff --git a/frameworks/middleware/images/dbus.png b/images/dbus.png
index 5cb84a9..5cb84a9 100644
--- a/frameworks/middleware/images/dbus.png
+++ b/images/dbus.png
Binary files differ
diff --git a/realtime/rt-basics/images/dual_kernel.png b/images/dual_kernel.png
index c58d156..c58d156 100644
--- a/realtime/rt-basics/images/dual_kernel.png
+++ b/images/dual_kernel.png
Binary files differ
diff --git a/realtime/rt-basics/images/dual_kernel.svg b/images/dual_kernel.svg
index 31f80ec..31f80ec 100644
--- a/realtime/rt-basics/images/dual_kernel.svg
+++ b/images/dual_kernel.svg
diff --git a/application-devel/devel-environment/images/eclipse_c_build_props.png b/images/eclipse_c_build_props.png
index 20994a5..20994a5 100644
--- a/application-devel/devel-environment/images/eclipse_c_build_props.png
+++ b/images/eclipse_c_build_props.png
Binary files differ
diff --git a/application-devel/devel-environment/images/eclipse_debug.png b/images/eclipse_debug.png
index 4803c54..4803c54 100644
--- a/application-devel/devel-environment/images/eclipse_debug.png
+++ b/images/eclipse_debug.png
Binary files differ
diff --git a/application-devel/devel-environment/images/eclipse_debug_slide.png b/images/eclipse_debug_slide.png
index 037bb5b..037bb5b 100644
--- a/application-devel/devel-environment/images/eclipse_debug_slide.png
+++ b/images/eclipse_debug_slide.png
Binary files differ
diff --git a/application-devel/devel-environment/images/eclipse_egit.png b/images/eclipse_egit.png
index 2e2869f..2e2869f 100644
--- a/application-devel/devel-environment/images/eclipse_egit.png
+++ b/images/eclipse_egit.png
Binary files differ
diff --git a/application-devel/devel-environment/images/eclipse_egit_commit.png b/images/eclipse_egit_commit.png
index 7c06ce9..7c06ce9 100644
--- a/application-devel/devel-environment/images/eclipse_egit_commit.png
+++ b/images/eclipse_egit_commit.png
Binary files differ
diff --git a/application-devel/devel-environment/images/eclipse_egit_diff.png b/images/eclipse_egit_diff.png
index 46c6b9f..46c6b9f 100644
--- a/application-devel/devel-environment/images/eclipse_egit_diff.png
+++ b/images/eclipse_egit_diff.png
Binary files differ
diff --git a/application-devel/devel-environment/images/eclipse_egit_history.png b/images/eclipse_egit_history.png
index 124e068..124e068 100644
--- a/application-devel/devel-environment/images/eclipse_egit_history.png
+++ b/images/eclipse_egit_history.png
Binary files differ
diff --git a/application-devel/devel-environment/images/eclipse_egit_push.png b/images/eclipse_egit_push.png
index 7ab82d9..7ab82d9 100644
--- a/application-devel/devel-environment/images/eclipse_egit_push.png
+++ b/images/eclipse_egit_push.png
Binary files differ
diff --git a/application-devel/devel-environment/images/eclipse_massif.png b/images/eclipse_massif.png
index dd7b2ac..dd7b2ac 100644
--- a/application-devel/devel-environment/images/eclipse_massif.png
+++ b/images/eclipse_massif.png
Binary files differ
diff --git a/application-devel/devel-environment/images/eclipse_memcheck.png b/images/eclipse_memcheck.png
index 6ff07b3..6ff07b3 100644
--- a/application-devel/devel-environment/images/eclipse_memcheck.png
+++ b/images/eclipse_memcheck.png
Binary files differ
diff --git a/application-devel/devel-environment/images/eclipse_new_c_project.png b/images/eclipse_new_c_project.png
index 41badae..41badae 100644
--- a/application-devel/devel-environment/images/eclipse_new_c_project.png
+++ b/images/eclipse_new_c_project.png
Binary files differ
diff --git a/application-devel/devel-environment/images/eclipse_new_hallo_c.png b/images/eclipse_new_hallo_c.png
index 6b98520..6b98520 100644
--- a/application-devel/devel-environment/images/eclipse_new_hallo_c.png
+++ b/images/eclipse_new_hallo_c.png
Binary files differ
diff --git a/application-devel/devel-environment/images/eclipse_new_hallo_welt.png b/images/eclipse_new_hallo_welt.png
index a3441cc..a3441cc 100644
--- a/application-devel/devel-environment/images/eclipse_new_hallo_welt.png
+++ b/images/eclipse_new_hallo_welt.png
Binary files differ
diff --git a/application-devel/devel-environment/images/eclipse_new_src_file.png b/images/eclipse_new_src_file.png
index 294d38c..294d38c 100644
--- a/application-devel/devel-environment/images/eclipse_new_src_file.png
+++ b/images/eclipse_new_src_file.png
Binary files differ
diff --git a/application-devel/devel-environment/images/eclipse_overview.png b/images/eclipse_overview.png
index e50cb55..e50cb55 100644
--- a/application-devel/devel-environment/images/eclipse_overview.png
+++ b/images/eclipse_overview.png
Binary files differ
diff --git a/application-devel/devel-environment/images/eclipse_overview_slide.png b/images/eclipse_overview_slide.png
index 2589fef..2589fef 100644
--- a/application-devel/devel-environment/images/eclipse_overview_slide.png
+++ b/images/eclipse_overview_slide.png
Binary files differ
diff --git a/application-devel/devel-environment/images/eclipse_run_config.png b/images/eclipse_run_config.png
index 04ced8c..04ced8c 100644
--- a/application-devel/devel-environment/images/eclipse_run_config.png
+++ b/images/eclipse_run_config.png
Binary files differ
diff --git a/application-devel/devel-environment/images/eclipse_select_run_config.png b/images/eclipse_select_run_config.png
index a3a2c29..a3a2c29 100644
--- a/application-devel/devel-environment/images/eclipse_select_run_config.png
+++ b/images/eclipse_select_run_config.png
Binary files differ
diff --git a/application-devel/devel-environment/images/emacs.png b/images/emacs.png
index 0209751..0209751 100644
--- a/application-devel/devel-environment/images/emacs.png
+++ b/images/emacs.png
Binary files differ
diff --git a/linux-basics/linux-processes/images/fork-exec.png b/images/fork-exec.png
index 6d4df1b..6d4df1b 100644
--- a/linux-basics/linux-processes/images/fork-exec.png
+++ b/images/fork-exec.png
Binary files differ
diff --git a/linux-basics/linux-processes/images/fork-exec.svg b/images/fork-exec.svg
index 699125f..699125f 100644
--- a/linux-basics/linux-processes/images/fork-exec.svg
+++ b/images/fork-exec.svg
diff --git a/kernel-devel/char-device/images/fsync.dia b/images/fsync.dia
index 7938b4d..7938b4d 100644
--- a/kernel-devel/char-device/images/fsync.dia
+++ b/images/fsync.dia
Binary files differ
diff --git a/kernel-devel/char-device/images/fsync.png b/images/fsync.png
index fd9c1ce..fd9c1ce 100644
--- a/kernel-devel/char-device/images/fsync.png
+++ b/images/fsync.png
Binary files differ
diff --git a/realtime/rt-specialties/images/g4894.png b/images/g4894.png
index 6b9f247..6b9f247 100644
--- a/realtime/rt-specialties/images/g4894.png
+++ b/images/g4894.png
Binary files differ
diff --git a/application-devel/devel-environment/images/glade.png b/images/glade.png
index 06fa996..06fa996 100644
--- a/application-devel/devel-environment/images/glade.png
+++ b/images/glade.png
Binary files differ
diff --git a/realtime/rt-basics/images/gpos_vs_rt.png b/images/gpos_vs_rt.png
index 07a4a79..07a4a79 100644
--- a/realtime/rt-basics/images/gpos_vs_rt.png
+++ b/images/gpos_vs_rt.png
Binary files differ
diff --git a/realtime/rt-basics/images/gpos_vs_rt.svg b/images/gpos_vs_rt.svg
index 7862037..7862037 100644
--- a/realtime/rt-basics/images/gpos_vs_rt.svg
+++ b/images/gpos_vs_rt.svg
diff --git a/kernel-devel/uio-driver/images/greg-all-hardware.jpg b/images/greg-all-hardware.jpg
index f7ab989..f7ab989 100644
--- a/kernel-devel/uio-driver/images/greg-all-hardware.jpg
+++ b/images/greg-all-hardware.jpg
Binary files differ
diff --git a/kernel-devel/uio-driver/images/greg-kernel-org.jpg b/images/greg-kernel-org.jpg
index dbfb915..dbfb915 100644
--- a/kernel-devel/uio-driver/images/greg-kernel-org.jpg
+++ b/images/greg-kernel-org.jpg
Binary files differ
diff --git a/kernel-devel/uio-driver/images/hjk-desperate.jpg b/images/hjk-desperate.jpg
index 740f574..740f574 100644
--- a/kernel-devel/uio-driver/images/hjk-desperate.jpg
+++ b/images/hjk-desperate.jpg
Binary files differ
diff --git a/kernel-devel/uio-driver/images/ioctl-vs-uio_de.png b/images/ioctl-vs-uio_de.png
index 0989d07..0989d07 100644
--- a/kernel-devel/uio-driver/images/ioctl-vs-uio_de.png
+++ b/images/ioctl-vs-uio_de.png
Binary files differ
diff --git a/kernel-devel/uio-driver/images/ioctl-vs-uio_de.svg b/images/ioctl-vs-uio_de.svg
index a913a69..a913a69 100644
--- a/kernel-devel/uio-driver/images/ioctl-vs-uio_de.svg
+++ b/images/ioctl-vs-uio_de.svg
diff --git a/kernel-devel/uio-driver/images/ioctl-vs-uio_en.png b/images/ioctl-vs-uio_en.png
index 8536934..8536934 100644
--- a/kernel-devel/uio-driver/images/ioctl-vs-uio_en.png
+++ b/images/ioctl-vs-uio_en.png
Binary files differ
diff --git a/kernel-devel/char-device/images/ioctl.dia b/images/ioctl.dia
index 70b10bb..70b10bb 100644
--- a/kernel-devel/char-device/images/ioctl.dia
+++ b/images/ioctl.dia
Binary files differ
diff --git a/kernel-devel/char-device/images/ioctl.png b/images/ioctl.png
index 1af77bc..1af77bc 100644
--- a/kernel-devel/char-device/images/ioctl.png
+++ b/images/ioctl.png
Binary files differ
diff --git a/realtime/rt-basics/images/ipipe.png b/images/ipipe.png
index b7468fa..b7468fa 100644
--- a/realtime/rt-basics/images/ipipe.png
+++ b/images/ipipe.png
Binary files differ
diff --git a/realtime/rt-basics/images/ipipe.svg b/images/ipipe.svg
index cc7baa9..cc7baa9 100644
--- a/realtime/rt-basics/images/ipipe.svg
+++ b/images/ipipe.svg
diff --git a/application-devel/devel-environment/images/kdevelop.png b/images/kdevelop.png
index 46c8ac4..46c8ac4 100644
--- a/application-devel/devel-environment/images/kdevelop.png
+++ b/images/kdevelop.png
Binary files differ
diff --git a/kernel-devel/uio-driver/images/konventioneller-treiber_de.png b/images/konventioneller-treiber_de.png
index cbca8bc..cbca8bc 100644
--- a/kernel-devel/uio-driver/images/konventioneller-treiber_de.png
+++ b/images/konventioneller-treiber_de.png
Binary files differ
diff --git a/kernel-devel/uio-driver/images/konventioneller-treiber_de.svg b/images/konventioneller-treiber_de.svg
index 5dbd773..5dbd773 100644
--- a/kernel-devel/uio-driver/images/konventioneller-treiber_de.svg
+++ b/images/konventioneller-treiber_de.svg
diff --git a/kernel-devel/uio-driver/images/konventioneller-treiber_en.png b/images/konventioneller-treiber_en.png
index bea54da..bea54da 100644
--- a/kernel-devel/uio-driver/images/konventioneller-treiber_en.png
+++ b/images/konventioneller-treiber_en.png
Binary files differ
diff --git a/application-devel/devel-scenarios/images/linux_server.dia b/images/linux_server.dia
index 8ae138b..8ae138b 100644
--- a/application-devel/devel-scenarios/images/linux_server.dia
+++ b/images/linux_server.dia
Binary files differ
diff --git a/application-devel/devel-scenarios/images/linux_server.png b/images/linux_server.png
index cf541b1..cf541b1 100644
--- a/application-devel/devel-scenarios/images/linux_server.png
+++ b/images/linux_server.png
Binary files differ
diff --git a/kernel-devel/char-device/images/llseek.dia b/images/llseek.dia
index 80dbbbd..80dbbbd 100644
--- a/kernel-devel/char-device/images/llseek.dia
+++ b/images/llseek.dia
Binary files differ
diff --git a/kernel-devel/char-device/images/llseek.png b/images/llseek.png
index 03d6dce..03d6dce 100644
--- a/kernel-devel/char-device/images/llseek.png
+++ b/images/llseek.png
Binary files differ
diff --git a/realtime/rt-basics/images/mar01.png b/images/mar01.png
index 7f18317..7f18317 100644
--- a/realtime/rt-basics/images/mar01.png
+++ b/images/mar01.png
Binary files differ
diff --git a/realtime/rt-basics/images/mar01.svg b/images/mar01.svg
index 78d99db..78d99db 100644
--- a/realtime/rt-basics/images/mar01.svg
+++ b/images/mar01.svg
diff --git a/realtime/rt-basics/images/mar02.png b/images/mar02.png
index f1f53a1..f1f53a1 100644
--- a/realtime/rt-basics/images/mar02.png
+++ b/images/mar02.png
Binary files differ
diff --git a/realtime/rt-basics/images/mar02.svg b/images/mar02.svg
index 3c9ac3a..3c9ac3a 100644
--- a/realtime/rt-basics/images/mar02.svg
+++ b/images/mar02.svg
diff --git a/realtime/rt-basics/images/mar03.png b/images/mar03.png
index 97ab7ba..97ab7ba 100644
--- a/realtime/rt-basics/images/mar03.png
+++ b/images/mar03.png
Binary files differ
diff --git a/realtime/rt-basics/images/mar03.svg b/images/mar03.svg
index 71e98ae..71e98ae 100644
--- a/realtime/rt-basics/images/mar03.svg
+++ b/images/mar03.svg
diff --git a/kernel-devel/kernel-build/images/menu_rt_001.png b/images/menu_rt_001.png
index 27f26cd..27f26cd 100644
--- a/kernel-devel/kernel-build/images/menu_rt_001.png
+++ b/images/menu_rt_001.png
Binary files differ
diff --git a/realtime/rt-specialties/images/menu_rt_002.png b/images/menu_rt_002.png
index c4dd8dc..c4dd8dc 100644
--- a/realtime/rt-specialties/images/menu_rt_002.png
+++ b/images/menu_rt_002.png
Binary files differ
diff --git a/realtime/rt-specialties/images/menu_rt_003.png b/images/menu_rt_003.png
index 8449d80..8449d80 100644
--- a/realtime/rt-specialties/images/menu_rt_003.png
+++ b/images/menu_rt_003.png
Binary files differ
diff --git a/realtime/rt-specialties/images/menu_rt_004.png b/images/menu_rt_004.png
index 21045c8..21045c8 100644
--- a/realtime/rt-specialties/images/menu_rt_004.png
+++ b/images/menu_rt_004.png
Binary files differ
diff --git a/application-devel/cross-devel/images/mknod.png b/images/mknod.png
index a97c2c5..a97c2c5 100644
--- a/application-devel/cross-devel/images/mknod.png
+++ b/images/mknod.png
Binary files differ
diff --git a/kernel-devel/char-device/images/mmap.dia b/images/mmap.dia
index 9b9db8e..9b9db8e 100644
--- a/kernel-devel/char-device/images/mmap.dia
+++ b/images/mmap.dia
Binary files differ
diff --git a/kernel-devel/char-device/images/mmap.png b/images/mmap.png
index c341443..c341443 100644
--- a/kernel-devel/char-device/images/mmap.png
+++ b/images/mmap.png
Binary files differ
diff --git a/realtime/rt-basics/images/nuclear.png b/images/nuclear.png
index a434e91..a434e91 100644
--- a/realtime/rt-basics/images/nuclear.png
+++ b/images/nuclear.png
Binary files differ
diff --git a/kernel-devel/char-device/images/open.dia b/images/open.dia
index eff00d7..eff00d7 100644
--- a/kernel-devel/char-device/images/open.dia
+++ b/images/open.dia
Binary files differ
diff --git a/kernel-devel/char-device/images/open.png b/images/open.png
index bcc7cd4..bcc7cd4 100644
--- a/kernel-devel/char-device/images/open.png
+++ b/images/open.png
Binary files differ
diff --git a/frameworks/middleware/images/orb.jpg b/images/orb.jpg
index 2f3390a..2f3390a 100755
--- a/frameworks/middleware/images/orb.jpg
+++ b/images/orb.jpg
Binary files differ
diff --git a/linux-basics/filesystem-structure/images/ordnerbaum-600px.png b/images/ordnerbaum-600px.png
index e0d6cf4..e0d6cf4 100644
--- a/linux-basics/filesystem-structure/images/ordnerbaum-600px.png
+++ b/images/ordnerbaum-600px.png
Binary files differ
diff --git a/linux-basics/filesystem-structure/images/ordnerbaum.svg b/images/ordnerbaum.svg
index 50fb47a..50fb47a 100644
--- a/linux-basics/filesystem-structure/images/ordnerbaum.svg
+++ b/images/ordnerbaum.svg
diff --git a/realtime/rt-specialties/images/pitfall.png b/images/pitfall.png
index a083003..a083003 100644
--- a/realtime/rt-specialties/images/pitfall.png
+++ b/images/pitfall.png
Binary files differ
diff --git a/realtime/rt-specialties/images/pitfall.svg b/images/pitfall.svg
index bdfc4de..bdfc4de 100644
--- a/realtime/rt-specialties/images/pitfall.svg
+++ b/images/pitfall.svg
diff --git a/kernel-devel/module-basics/images/plat_driver.dia b/images/plat_driver.dia
index ef9c404..ef9c404 100644
--- a/kernel-devel/module-basics/images/plat_driver.dia
+++ b/images/plat_driver.dia
Binary files differ
diff --git a/kernel-devel/module-basics/images/plat_driver.png b/images/plat_driver.png
index 691e948..691e948 100644
--- a/kernel-devel/module-basics/images/plat_driver.png
+++ b/images/plat_driver.png
Binary files differ
diff --git a/kernel-devel/char-device/images/poll.dia b/images/poll.dia
index 3eb1814..3eb1814 100644
--- a/kernel-devel/char-device/images/poll.dia
+++ b/images/poll.dia
Binary files differ
diff --git a/kernel-devel/char-device/images/poll.png b/images/poll.png
index ded205b..ded205b 100644
--- a/kernel-devel/char-device/images/poll.png
+++ b/images/poll.png
Binary files differ
diff --git a/realtime/rt-basics/images/preempt_rt.png b/images/preempt_rt.png
index 463673f..463673f 100644
--- a/realtime/rt-basics/images/preempt_rt.png
+++ b/images/preempt_rt.png
Binary files differ
diff --git a/realtime/rt-basics/images/preempt_rt.svg b/images/preempt_rt.svg
index a9c0ac7..a9c0ac7 100644
--- a/realtime/rt-basics/images/preempt_rt.svg
+++ b/images/preempt_rt.svg
diff --git a/realtime/rt-basics/images/prio_inv.png b/images/prio_inv.png
index 574afb3..574afb3 100644
--- a/realtime/rt-basics/images/prio_inv.png
+++ b/images/prio_inv.png
Binary files differ
diff --git a/realtime/rt-basics/images/prio_inv.svg b/images/prio_inv.svg
index c655052..c655052 100644
--- a/realtime/rt-basics/images/prio_inv.svg
+++ b/images/prio_inv.svg
diff --git a/frameworks/middleware/images/qdbusviewer.png b/images/qdbusviewer.png
index a8fbb0b..a8fbb0b 100644
--- a/frameworks/middleware/images/qdbusviewer.png
+++ b/images/qdbusviewer.png
Binary files differ
diff --git a/application-devel/devel-environment/images/qtdesigner.png b/images/qtdesigner.png
index 1700b06..1700b06 100644
--- a/application-devel/devel-environment/images/qtdesigner.png
+++ b/images/qtdesigner.png
Binary files differ
diff --git a/kernel-devel/char-device/images/read.dia b/images/read.dia
index ca2f245..ca2f245 100644
--- a/kernel-devel/char-device/images/read.dia
+++ b/images/read.dia
Binary files differ
diff --git a/kernel-devel/char-device/images/read.png b/images/read.png
index 060e565..060e565 100644
--- a/kernel-devel/char-device/images/read.png
+++ b/images/read.png
Binary files differ
diff --git a/kernel-devel/char-device/images/release.dia b/images/release.dia
index 80884a6..80884a6 100644
--- a/kernel-devel/char-device/images/release.dia
+++ b/images/release.dia
Binary files differ
diff --git a/kernel-devel/char-device/images/release.png b/images/release.png
index 9baa687..9baa687 100644
--- a/kernel-devel/char-device/images/release.png
+++ b/images/release.png
Binary files differ
diff --git a/application-devel/app-debugging/images/remote_debug.png b/images/remote_debug.png
index f7a3ba9..f7a3ba9 100644
--- a/application-devel/app-debugging/images/remote_debug.png
+++ b/images/remote_debug.png
Binary files differ
diff --git a/realtime/rt-basics/images/rtai.dia b/images/rtai.dia
index dedf883..dedf883 100644
--- a/realtime/rt-basics/images/rtai.dia
+++ b/images/rtai.dia
Binary files differ
diff --git a/realtime/rt-basics/images/rtai.png b/images/rtai.png
index c6c21ce..c6c21ce 100644
--- a/realtime/rt-basics/images/rtai.png
+++ b/images/rtai.png
Binary files differ
diff --git a/realtime/rt-basics/images/rtai.svg b/images/rtai.svg
index 39b34e4..39b34e4 100644
--- a/realtime/rt-basics/images/rtai.svg
+++ b/images/rtai.svg
diff --git a/frameworks/middleware/images/rtcorbaext.jpg b/images/rtcorbaext.jpg
index 71b8cc4..71b8cc4 100755
--- a/frameworks/middleware/images/rtcorbaext.jpg
+++ b/images/rtcorbaext.jpg
Binary files differ
diff --git a/application-devel/devel-environment/images/select_workspace.png b/images/select_workspace.png
index def14ee..def14ee 100644
--- a/application-devel/devel-environment/images/select_workspace.png
+++ b/images/select_workspace.png
Binary files differ
diff --git a/realtime/rt-basics/images/single_kernel.png b/images/single_kernel.png
index d398b29..d398b29 100644
--- a/realtime/rt-basics/images/single_kernel.png
+++ b/images/single_kernel.png
Binary files differ
diff --git a/realtime/rt-basics/images/single_kernel.svg b/images/single_kernel.svg
index 31a06ce..31a06ce 100644
--- a/realtime/rt-basics/images/single_kernel.svg
+++ b/images/single_kernel.svg
diff --git a/kernel-devel/char-device/images/syscall.dia b/images/syscall.dia
index 7da1df1..7da1df1 100644
--- a/kernel-devel/char-device/images/syscall.dia
+++ b/images/syscall.dia
Binary files differ
diff --git a/kernel-devel/char-device/images/syscall.png b/images/syscall.png
index 71b1d79..71b1d79 100644
--- a/kernel-devel/char-device/images/syscall.png
+++ b/images/syscall.png
Binary files differ
diff --git a/application-devel/cross-devel/images/target.png b/images/target.png
index 9ce89ef..9ce89ef 100644
--- a/application-devel/cross-devel/images/target.png
+++ b/images/target.png
Binary files differ
diff --git a/application-devel/cross-devel/images/target_highlight_rfs.png b/images/target_highlight_rfs.png
index 2238d68..2238d68 100644
--- a/application-devel/cross-devel/images/target_highlight_rfs.png
+++ b/images/target_highlight_rfs.png
Binary files differ
diff --git a/realtime/rt-specialties/images/thumb.png b/images/thumb.png
index 6b9f247..6b9f247 100644
--- a/realtime/rt-specialties/images/thumb.png
+++ b/images/thumb.png
Binary files differ
diff --git a/realtime/rt-specialties/images/thumb.svg b/images/thumb.svg
index 9dd0510..9dd0510 100644
--- a/realtime/rt-specialties/images/thumb.svg
+++ b/images/thumb.svg
diff --git a/kernel-devel/uio-driver/images/uio-treiber_de.png b/images/uio-treiber_de.png
index 9e18a06..9e18a06 100644
--- a/kernel-devel/uio-driver/images/uio-treiber_de.png
+++ b/images/uio-treiber_de.png
Binary files differ
diff --git a/kernel-devel/uio-driver/images/uio-treiber_de.svg b/images/uio-treiber_de.svg
index a1cc780..a1cc780 100644
--- a/kernel-devel/uio-driver/images/uio-treiber_de.svg
+++ b/images/uio-treiber_de.svg
diff --git a/kernel-devel/uio-driver/images/uio-treiber_en.png b/images/uio-treiber_en.png
index caa2152..caa2152 100644
--- a/kernel-devel/uio-driver/images/uio-treiber_en.png
+++ b/images/uio-treiber_en.png
Binary files differ
diff --git a/application-devel/devel-environment/images/vim.png b/images/vim.png
index 67eb344..67eb344 100644
--- a/application-devel/devel-environment/images/vim.png
+++ b/images/vim.png
Binary files differ
diff --git a/application-devel/devel-scenarios/images/vmware.dia b/images/vmware.dia
index 7a4addd..7a4addd 100644
--- a/application-devel/devel-scenarios/images/vmware.dia
+++ b/images/vmware.dia
Binary files differ
diff --git a/application-devel/devel-scenarios/images/vmware.png b/images/vmware.png
index b8aca2f..b8aca2f 100644
--- a/application-devel/devel-scenarios/images/vmware.png
+++ b/images/vmware.png
Binary files differ
diff --git a/linux-basics/what-is-linux/images/woz_jobs-garage-1976.jpg b/images/woz_jobs-garage-1976.jpg
index 9335be4..9335be4 100644
--- a/linux-basics/what-is-linux/images/woz_jobs-garage-1976.jpg
+++ b/images/woz_jobs-garage-1976.jpg
Binary files differ
diff --git a/kernel-devel/char-device/images/write.dia b/images/write.dia
index eb0d68b..eb0d68b 100644
--- a/kernel-devel/char-device/images/write.dia
+++ b/images/write.dia
Binary files differ
diff --git a/kernel-devel/char-device/images/write.png b/images/write.png
index 89b1db3..89b1db3 100644
--- a/kernel-devel/char-device/images/write.png
+++ b/images/write.png
Binary files differ
diff --git a/realtime/rt-basics/images/xenomai.png b/images/xenomai.png
index d1ff146..d1ff146 100644
--- a/realtime/rt-basics/images/xenomai.png
+++ b/images/xenomai.png
Binary files differ
diff --git a/realtime/rt-basics/images/xenomai.svg b/images/xenomai.svg
index 8f71daa..8f71daa 100644
--- a/realtime/rt-basics/images/xenomai.svg
+++ b/images/xenomai.svg
diff --git a/kernel-devel/Makefile b/kernel-devel/Makefile
index 72cada2..0a202ea 100644
--- a/kernel-devel/Makefile
+++ b/kernel-devel/Makefile
@@ -1,4 +1,4 @@
-SUBDIRS = `ls -1`
+SUBDIRS = `ls -1 | grep -v *.tex | grep -v Makefile | grep -v TODO`
all clean::
for dir in $(SUBDIRS) ; do \
diff --git a/kernel-devel/TODO b/kernel-devel/TODO
new file mode 100644
index 0000000..3f5e022
--- /dev/null
+++ b/kernel-devel/TODO
@@ -0,0 +1,3 @@
+- driver_basics, see hint file
+- best_practices, see hint file
+- some handouts
diff --git a/kernel-devel/char-device/Makefile b/kernel-devel/char-device/Makefile
index 4663d52..d641258 100644
--- a/kernel-devel/char-device/Makefile
+++ b/kernel-devel/char-device/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/kernel-devel/char-device/pres_char-device_de.tex b/kernel-devel/char-device/pres_char-device_de.tex
index 7df54c5..6568af4 100644
--- a/kernel-devel/char-device/pres_char-device_de.tex
+++ b/kernel-devel/char-device/pres_char-device_de.tex
@@ -1,20 +1,11 @@
-\documentclass{beamer}
-\usetheme{linutronix}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{pgf}
-\usepackage{graphicx}
-\usepackage{psfrag}
-\usepackage{listings}
+\input{configpres}
\title{Interaktion eines Character Device Treibers}
-\institute{Linutronix GmbH}
-
-\begin{document}
-\lstset{language=[ANSI]C, moredelim=[is][\color{blue}]{|}{|}}
\maketitle
-% ----- Slide Syscalls ------------------
+\subsection{Character Devices}
+
+\subsubsection{Syscall Interface}
\begin{frame}
\frametitle{Syscall Interface}
\begin{center}
@@ -22,7 +13,7 @@
\end{center}
\end{frame}
-% ----- Slide Aufbau ------------------
+\subsubsection{Struktur}
\begin{frame}
\frametitle{Interaktion eines Character Device Treibers}
\pause
@@ -49,7 +40,6 @@
\end{itemize}
\end{frame}
-% ----- Slide open ------------------
\begin{frame}[fragile]
\frametitle{open}
\pause
@@ -78,7 +68,6 @@ fehl und es gibt keine Benachrichtigung des Treibers.
\end{center}
\end{frame}
-% ----- Slide release ------------------
\begin{frame}[fragile]
\frametitle{release}
\pause
@@ -107,7 +96,6 @@ fehl und es gibt keine Benachrichtigung des Treibers.
\end{center}
\end{frame}
-% ----- Slide read ------------------
\begin{frame}[fragile]
\frametitle{read}
\pause
@@ -135,7 +123,6 @@ ssize_t (*read) (struct file *, char __user *, size_t, loff_t *);
\end{center}
\end{frame}
-% ----- Slide write ------------------
\begin{frame}[fragile]
\frametitle{write}
\pause
@@ -163,7 +150,6 @@ von \emph{copy\_from\_user} aus dem Userspace kopiert.
\end{center}
\end{frame}
-% ----- Slide fsync ------------------
\begin{frame}[fragile]
\frametitle{fsync}
\pause
@@ -190,7 +176,6 @@ int (*fsync) (struct file *, struct dentry *, int datasync);
\end{center}
\end{frame}
-% ----- Slide llseek ------------------
\begin{frame}[fragile]
\frametitle{llseek}
\pause
@@ -217,7 +202,6 @@ loff_t (*llseek) (struct file *, loff_t, int);
\end{center}
\end{frame}
-% ----- Slide poll ------------------
\begin{frame}[fragile]
\frametitle{poll}
\pause
@@ -245,7 +229,6 @@ implementiert, so muss nicht blockierendes Lesen und Schreiben möglich sein.
\end{center}
\end{frame}
-% ----- Slide mmap ------------------
\begin{frame}[fragile]
\frametitle{mmap}
\pause
@@ -273,7 +256,6 @@ Userspace-Prozesses an.
\end{center}
\end{frame}
-% ----- Slide ioctl ------------------
\begin{frame}[fragile]
\frametitle{ioctl}
\pause
@@ -302,4 +284,4 @@ werden.
\end{center}
\end{frame}
-\end{document}
+\input{tailpres}
diff --git a/kernel-devel/driver-basics/Makefile b/kernel-devel/driver-basics/Makefile
new file mode 100644
index 0000000..d641258
--- /dev/null
+++ b/kernel-devel/driver-basics/Makefile
@@ -0,0 +1,9 @@
+all:
+ for pdf in `ls -1 *.tex` ; do \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ done
+
+clean:
+ rm -f *.aux *.log *.pdf *.log *.snm *.toc *.vrb *.nav *.out
+
diff --git a/kernel-devel/driver-basics/handout_driver-basics_de.tex b/kernel-devel/driver-basics/handout_driver-basics_de.tex
deleted file mode 100644
index 4c391b2..0000000
--- a/kernel-devel/driver-basics/handout_driver-basics_de.tex
+++ /dev/null
@@ -1,17 +0,0 @@
-\documentclass{article}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-
-\begin{document}
-
-\section*{Titel}
-
-\subsection*{Abschnitt1}
-
-Text
-
-\subsection*{Abschnitt2}
-
-Text
-
-\end{document}
diff --git a/kernel-devel/driver-basics/pres_driver-basics_de.tex b/kernel-devel/driver-basics/pres_driver-basics_de.tex
deleted file mode 100644
index 07db328..0000000
--- a/kernel-devel/driver-basics/pres_driver-basics_de.tex
+++ /dev/null
@@ -1,24 +0,0 @@
-\documentclass{article}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-
-\begin{document}
-
-\section*{Block \lq Was ist Linux?\rq}
-
-\subsection*{Lernziele}
-\begin{itemize}
-\item Lernziel 1
-\item Lernziel 2
-\item Lernziel 3
-\end{itemize}
-
-\subsection*{Unterrichts-Ablauf}
-
-Hinweise zur Präsentation, Zeitplanung, etc.
-
-\subsection*{Übungen bei vorhandener Hardware}
-
-Hinweise zu Übungen, Zeitlimit dazu.
-
-\end{document}
diff --git a/kernel-devel/kernel-basics/Makefile b/kernel-devel/kernel-basics/Makefile
index 4663d52..d641258 100644
--- a/kernel-devel/kernel-basics/Makefile
+++ b/kernel-devel/kernel-basics/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/kernel-devel/kernel-basics/handout_kernel-basics_de.tex b/kernel-devel/kernel-basics/handout_kernel-basics_de.tex
index 057f4bc..38d3a08 100644
--- a/kernel-devel/kernel-basics/handout_kernel-basics_de.tex
+++ b/kernel-devel/kernel-basics/handout_kernel-basics_de.tex
@@ -1,12 +1,6 @@
-\documentclass{lxarticle}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{lxheaders}
-\usepackage{lxextras}
+\input{confighandout}
-\begin{document}
-
-\section*{Kernel-Grundlagen}
+\subsection{Kernel-Grundlagen}
Der Linux-Kernel ist moderner Betriebssystemkern, der sich unter anderem
durch folgende Eigenschaften auszeichnet:
@@ -31,7 +25,7 @@ auch in vielen anderen Bereichen wie dem Cluster-Computing (Google, Rendern
von Spielfilm-Effekten in Hollywood) werden die Aufgaben heute fast
ausschließlich mit Linux gelöst.
-\subsection*{Aufbau des Kernels}
+\subsubsection{Aufbau des Kernels}
Der Sourcecode des Kernels ist recht übersichtlich in Subsysteme gegliedert.
Die Grenzen der einzelnen Subsysteme sind keinesfalls scharf definiert, aber
@@ -70,7 +64,7 @@ Treiber-Baums im \cmd{sysfs} kommt automatisch allen Treibern zugute.
Diese übergeordneten Treiberfunktionen werden als \emph{Driver Core}
bezeichnet.
-\subsection*{Kernel Maintainer}
+\subsubsection{Kernel Maintainer}
Jedes Subsystem wird normalerweise von einem, manchmal auch mehreren
Programmierern betreut. Diese Betreuer bezeichnet man als \emph{Maintainer}.
@@ -93,7 +87,7 @@ Thema zuständige Mailingliste. Fragen oder Änderungsvorschläge sollte man
\emph{immer} an die Mailingliste senden und nicht persönlich an den
Maintainer!
-\subsection*{Entwicklungsprozess}
+\subsubsection{Entwicklungsprozess}
Änderungen am Linux-Kernel erfolgen ausschließlich durch \emph{Patche}. Ein
Patch ist eine durch das Programm \cmd{diff} Textdatei, die die Änderungen
@@ -121,7 +115,7 @@ Informationen dazu findet man in den Kernelquellen unter
\cmd{Documentation/SubmittingPatches}
-\subsection*{Kernel-Konfiguration}
+\subsubsection{Kernel-Konfiguration}
Der Kernel ist durch eine Vielzahl an Optionen (mehrere 1000) in weiten
Bereichen konfigurierbar. Die Konfiguration wird im Hauptverzeichnis der
@@ -139,4 +133,4 @@ Das Kernel-Buildsystem stellt ein eigenes Subsystem dar und hat einen eigenen
Maintainer. Es handhabt den kompletten Build-Prozess des Kernels und
unterstützt dabei auch explizit Cross-Compiling.
-\end{document}
+\input{tailhandout}
diff --git a/kernel-devel/kernel-basics/pres_kernel-basics_de.tex b/kernel-devel/kernel-basics/pres_kernel-basics_de.tex
index 8b6161e..372ada2 100644
--- a/kernel-devel/kernel-basics/pres_kernel-basics_de.tex
+++ b/kernel-devel/kernel-basics/pres_kernel-basics_de.tex
@@ -1,22 +1,13 @@
-\documentclass{beamer}
-\usetheme{linutronix}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{pgf}
-\usepackage{graphicx}
-\usepackage{lxextras}
+\input{configpres}
\title{Kernel-Grundlagen}
-\institute{Linutronix GmbH}
-
-\begin{document}
-
\maketitle
+\subsection{Grundlagen}
-% ----- Slide ------------------
+\subsubsection{Kernel Eigenschaften}
\begin{frame}
-\frametitle{Kernel-Eigenschaften}
+\frametitle{Kernel Eigenschaften}
\begin{itemize}
\item Freie Software (GPL Version 2)
\pause
@@ -42,14 +33,14 @@
\end{itemize}
\end{frame}
-% ----- Slide ------------------
+\subsubsection{Aufbau}
\begin{frame}
\frametitle{Aufbau des Kernels}
\centering
\includegraphics[width=0.8\textwidth]{images/Subsystems.png}
\end{frame}
-% ----- Slide ------------------
+\subsubsection{Maintainer}
\begin{frame}
\frametitle{Kernel Maintainer}
\begin{itemize}
@@ -65,7 +56,7 @@
\end{itemize}
\end{frame}
-% ----- Slide ------------------
+\subsubsection{Entwicklungsprozess}
\begin{frame}
\frametitle{Entwicklungsprozess}
\begin{itemize}
@@ -81,7 +72,7 @@
\end{itemize}
\end{frame}
-% ----- Slide ------------------
+\subsubsection{Konfiguration}
\begin{frame}
\frametitle{Kernel-Konfiguration}
\begin{itemize}
@@ -99,5 +90,4 @@
\end{itemize}
\end{frame}
-
-\end{document}
+\input{tailpres}
diff --git a/kernel-devel/kernel-best-practices/Makefile b/kernel-devel/kernel-best-practices/Makefile
index 4663d52..d641258 100644
--- a/kernel-devel/kernel-best-practices/Makefile
+++ b/kernel-devel/kernel-best-practices/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/kernel-devel/kernel-build/Makefile b/kernel-devel/kernel-build/Makefile
index 4663d52..d641258 100644
--- a/kernel-devel/kernel-build/Makefile
+++ b/kernel-devel/kernel-build/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/kernel-devel/kernel-build/handout_kernel-build_de.tex b/kernel-devel/kernel-build/handout_kernel-build_de.tex
index f0e5fae..bd28a31 100644
--- a/kernel-devel/kernel-build/handout_kernel-build_de.tex
+++ b/kernel-devel/kernel-build/handout_kernel-build_de.tex
@@ -1,14 +1,8 @@
-\documentclass{lxarticle}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{lxheaders}
-\usepackage{lxextras}
+\input{confighandout}
-\begin{document}
+\subsection{Kernel konfigurieren und kompilieren}
-\section*{Kernel konfigurieren und kompilieren}
-
-\subsection*{Vorarbeiten}
+\subsubsection{Vorarbeiten}
Bevor man einen Kernel konfigurieren kann, sollte man wissen, was man will.
Das hört sich zunächst nach einer trivialen Binsenweisheit an, kann aber
@@ -32,7 +26,7 @@ beispielsweise keine Gerätedateien unterstützt. Will man Linux von einem
USB-Stick booten, so wird man diesen dazu beispielsweise mit einem
ext2-Dateisystem versehen.
- \subsection*{Kernel-Konfiguration}
+\subsubsection{Kernel-Konfiguration}
Mit diesen Informationen versehen, kann man jetzt die Konfiguration beginnen.
Dies erfolgt durch Eingabe von
@@ -54,7 +48,7 @@ Man sollte bei der Konfiguration zuerst grundlegende Dinge wie den
Prozessortyp angeben, da untergeordnete Eigenschaften oder Treiber davon
abhängig sein können.
-\subsection*{Module, ja oder nein?}
+\subsubsection{Module, ja oder nein?}
Bei üblichen Kerneln für Desktop-Systeme wird man immer einen Großteil der
Treiber als Module kompilieren. Solche Rechner besitzen viele Schnittstellen,
über die man später die Hardware erweitern kann, und kann den Kernel bereits
@@ -83,7 +77,7 @@ Einzelfall ab. Bei Embedded Systems kommt dies aber durchaus öfter vor.
Aus verständlichen Gründen dürfen Treiber, die zum Booten und Mounten des
Rootfs benötigt werden, niemals als Module gebaut werden!
-\subsection*{initrd}
+\subsubsection{initrd}
Die Kernel von Distributionen haben das Problem, dass sie auf möglichst vielen
unterschiedlichen Rechnern booten müssen. Würde man die Treiber für alle
@@ -100,7 +94,7 @@ aus dem Speicher entfernt werden. Dieses Verfahren nennt man \emph{initrd}
Wenn man einen Kernel für ein bestimmtes Board selbst kompiliert, braucht man
nie eine initrd, da man ja genau die richtigen Treiber fest einkompilieren kann.
-\subsection*{initramfs}
+\subsubsection{initramfs}
Ein anderes Verfahren, bei dem der Kernel zunächst eine RAM-Disk anlegt, ist
\emph{initramfs}. Im Unterschied zu initrd wird diese aber nicht aus einem
@@ -125,7 +119,7 @@ Eine weitere Anwendung sind Firmware-Updates. So könnten die Startskripte
des initramfs beispielsweise auf einem Server nachschauen, ob Updates
vorhanden sind, und diese dann anwenden.
-\subsection*{Kernel kompilieren}
+\subsubsection{Kernel kompilieren}
Nach abgeschlossener Kernel-Konfiguration kompiliert man den Kernel einfach
durch Eingabe von
@@ -168,7 +162,7 @@ Hauptverzeichnis der Kernelquellen, so ergibt sich folgender Aufruf:
./makearm -j3
\end{lstlisting}
-\subsection*{Kernel installieren}
+\subsubsection{Kernel installieren}
Einen Kernel für den lokalen Rechner (also den, auf dem man auch kompiliert
hat) installiert man einfach durch Eingabe von
@@ -217,7 +211,7 @@ Root-Filesystem per NFS aus diesem Verzeichnis gemountet, so stehen die Module
sofort und ohne Reboot zur Verfügung. Diese Vorgehensweise hat sich bei der
Entwicklung von Treibern für Embedded Systems sehr bewährt.
-\subsection*{Kontrollfragen}
+\subsubsection{Kontrollfragen}
\begin{enumerate}
\item Beschreiben Sie Unterschiede zwischen initrd und initramfs.
@@ -226,5 +220,4 @@ Entwicklung von Treibern für Embedded Systems sehr bewährt.
\item Nennen Sie eine Anwendung von initramfs.
\end{enumerate}
-
-\end{document}
+\input{tailhandout}
diff --git a/kernel-devel/linux-mm-basics/Makefile b/kernel-devel/linux-mm-basics/Makefile
index 4663d52..d641258 100644
--- a/kernel-devel/linux-mm-basics/Makefile
+++ b/kernel-devel/linux-mm-basics/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/kernel-devel/linux-mm-basics/pres_linux-mm-basics_en.tex b/kernel-devel/linux-mm-basics/pres_linux-mm-basics_en.tex
index 8ff0da7..f46c91d 100644
--- a/kernel-devel/linux-mm-basics/pres_linux-mm-basics_en.tex
+++ b/kernel-devel/linux-mm-basics/pres_linux-mm-basics_en.tex
@@ -1,23 +1,16 @@
-\documentclass{beamer}
-\usetheme{linutronix}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{pgf}
-\usepackage{graphicx}
+\input{configpres}
-\title{Linux Memory Management basics}
-\institute{Linutronix GmbH}
+\title{Linux Memory Management}
+\maketitle
-\begin{document}
+\subsection{Linux Memory Management}
-\maketitle
\begin{frame}
\frametitle{Overview}
\tableofcontents
\end{frame}
-\section{Basics}
-\subsection{Overview}
+\subsubsection{Basics}
\begin{frame}
\frametitle{Overview}
\begin{itemize}
@@ -76,7 +69,7 @@ Possible settings are:
\end{itemize}
\end{frame}
-\subsection{The stack}
+\subsubsection{The stack}
\begin{frame}
\frametitle{The stack}
\begin{itemize}
@@ -90,8 +83,7 @@ Possible settings are:
\end{itemize}
\end{frame}
-\subsection{The heap}
-
+\subsubsection{The heap}
\begin{frame}
\frametitle{The heap: Userland handling}
\begin{itemize}
@@ -121,8 +113,8 @@ guarantee that the memory really is available.
\end{itemize}
\end{frame}
-\section{Do's and Dont's}
-\subsection{The heap}
+\subsection{Do's and Dont's}
+\subsubsection{The heap}
% fragmentation
% check return value
% ulimit (limit memory consumption)
@@ -176,8 +168,8 @@ file locks (-x) unlimited
\end{verbatim}
\end{frame}
-\section{Realtime}
-\subsection{General}
+\subsection{Realtime}
+\subsubsection{General}
\begin{frame}[fragile]
\frametitle{Locking the memory}
\begin{verbatim}
@@ -188,7 +180,8 @@ if(mlockall(MCL_CURRENT|MCL_FUTURE) == -1) {
}
\end{verbatim}
\end{frame}
-\subsection{Stack}
+
+\subsubsection{Stack}
\begin{frame}[fragile]
\frametitle{Stack prefaulting}
\begin{verbatim}
@@ -203,7 +196,7 @@ void stack_prefault(void) {
\end{verbatim}
\end{frame}
-\subsection{Heap}
+\subsubsection{Heap}
\begin{frame}
\frametitle{Allocations from Realtime context}
\begin{itemize}
@@ -241,7 +234,7 @@ static void reserve_process_memory(int size)
\end{verbatim}
\end{frame}
-\section*{sources}
+\subsection*{sources}
\begin{frame}
\frametitle{sources}
\begin{thebibliography}{1}
@@ -250,4 +243,4 @@ static void reserve_process_memory(int size)
\end{thebibliography}
\end{frame}
-\end{document}
+\input{tailpres}
diff --git a/kernel-devel/module-basics/Makefile b/kernel-devel/module-basics/Makefile
index 4663d52..d641258 100644
--- a/kernel-devel/module-basics/Makefile
+++ b/kernel-devel/module-basics/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/kernel-devel/module-basics/pres_module-basics_de.tex b/kernel-devel/module-basics/pres_module-basics_de.tex
index 533a668..e303cca 100644
--- a/kernel-devel/module-basics/pres_module-basics_de.tex
+++ b/kernel-devel/module-basics/pres_module-basics_de.tex
@@ -1,20 +1,11 @@
-\documentclass{beamer}
-\usetheme{linutronix}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{pgf}
-\usepackage{graphicx}
-\usepackage{psfrag}
-\usepackage{listings}
+\input{configpres}
\title{Treiber Modul Grundlagen}
-\institute{Linutronix GmbH}
-
-\begin{document}
-\lstset{language=[ANSI]C, moredelim=[is][\color{blue}]{|}{|}}
\maketitle
-% ----- Slide Aufbau ------------------
+\subsection{Kernel Module}
+
+\subsubsection{Aufbau}
\begin{frame}[fragile]
\frametitle{Aufbau eines Treiber Moduls}
\pause
@@ -44,7 +35,6 @@ module_init(vain_init);
\end{itemize}
\end{frame}
-% ----- Slide Aufbau (fort.) ------------------
\begin{frame}[fragile]
\frametitle{Aufbau (fort.)}
\begin{itemize}
@@ -74,23 +64,23 @@ MODULE_VERSION("0815");
\end{itemize}
\end{frame}
-% ----- Slide Rumpf Treiber ------------------
+\subsubsection{Rumpf Treiber}
\begin{frame}[fragile]
\frametitle{Rumpf Treiber}
\begin{tiny}
-\lstinputlisting{vain/vain.c}
+\lstinputlisting{kernel-devel/module-basics/vain/vain.c}
\end{tiny}
\end{frame}
-% ----- Slide Makefile ------------------
+\subsubsection{Makefile}
\begin{frame}[fragile]
\frametitle{Makefile}
\begin{scriptsize}
-\lstinputlisting[language=make]{vain/Makefile}
+\lstinputlisting[language=make]{kernel-devel/module-basics/vain/Makefile}
\end{scriptsize}
\end{frame}
-% ----- Slide build ------------------
+\subsubsection{Bauen und Laden}
\begin{frame}[fragile]
\frametitle{Bauen, laden und entladen des Moduls}
\begin{itemize}
@@ -132,7 +122,6 @@ vain_exit: done
\end{itemize}
\end{frame}
-% ----- Slide Komplexere Module ------------------
\begin{frame}
\frametitle{Komplexere Module}
\pause
@@ -163,7 +152,7 @@ vain_exit: done
\end{itemize}
\end{frame}
-% ----- Slide PCI Treiber ------------------
+\subsubsection{PCI Treiber Modul}
\begin{frame}[fragile]
\frametitle{Aufbau eines PCI Treiber Moduls}
\pause
@@ -199,7 +188,6 @@ module_init(vain_pci_init);
\end{itemize}
\end{frame}
-% ----- Slide PCI Treiber (fort.) ------------------
\begin{frame}[fragile]
\frametitle{Aufbau eines PCI Treiber Moduls (fort.)}
\begin{itemize}
@@ -219,7 +207,6 @@ module_exit(vain_pci_exit);
\end{itemize}
\end{frame}
-% ----- Slide PCI Treiber (fort.) ------------------
\begin{frame}[fragile]
\frametitle{Aufbau eines PCI Treiber Moduls (fort.)}
\begin{itemize}
@@ -238,7 +225,6 @@ module_exit(vain_pci_exit);
\end{itemize}
\end{frame}
-% ----- Slide PCI Treiber (fort.) ------------------
\begin{frame}[fragile]
\frametitle{Aufbau eines PCI Treiber Moduls (fort.)}
\begin{itemize}
@@ -256,7 +242,6 @@ module_exit(vain_pci_exit);
\end{itemize}
\end{frame}
-% ----- Slide PCI Treiber (fort.) ------------------
\begin{frame}[fragile]
\frametitle{Aufbau eines PCI Treiber Moduls (fort.)}
\begin{itemize}
@@ -290,7 +275,6 @@ module_exit(vain_pci_exit);
\end{itemize}
\end{frame}
-% ----- Slide PCI Treiber (fort.) ------------------
\begin{frame}[fragile]
\frametitle{Aufbau eines PCI Treiber Moduls (fort.)}
\begin{itemize}
@@ -314,61 +298,54 @@ module_exit(vain_pci_exit);
\end{itemize}
\end{frame}
-% ----- Slide PCI Treiber Hintergrund ------------------
\begin{frame}
\frametitle{PCI Treiber Hintergrund}
\includegraphics[width=7cm]{images/PCI_driver.png}
\end{frame}
-% ----- Slide PCI Rumpf Treiber ------------------
\begin{frame}[fragile]
\frametitle{PCI Rumpf Treiber}
\begin{tiny}
-\lstinputlisting{vain_pci/vain_pci_1.c}
+\lstinputlisting{kernel-devel/module-basics/vain_pci/vain_pci_1.c}
\end{tiny}
\end{frame}
-% ----- Slide PCI Rumpf Treiber (fort.) ------------------
\begin{frame}[fragile]
\frametitle{PCI Rumpf Treiber (fort.)}
\begin{tiny}
-\lstinputlisting{vain_pci/vain_pci_2.c}
+\lstinputlisting{kernel-devel/module-basics/vain_pci/vain_pci_2.c}
\end{tiny}
\end{frame}
-% ----- Slide PCI Rumpf Treiber (fort.) ------------------
\begin{frame}[fragile]
\frametitle{PCI Rumpf Treiber (fort.)}
\begin{tiny}
-\lstinputlisting{vain_pci/vain_pci_3.c}
+\lstinputlisting{kernel-devel/module-basics/vain_pci/vain_pci_3.c}
\end{tiny}
\end{frame}
-% ----- Slide PCI Rumpf Treiber (fort.) ------------------
\begin{frame}[fragile]
\frametitle{PCI Rumpf Treiber (fort.)}
\begin{tiny}
-\lstinputlisting{vain_pci/vain_pci_4.c}
+\lstinputlisting{kernel-devel/module-basics/vain_pci/vain_pci_4.c}
\end{tiny}
\end{frame}
-% ----- Slide PCI Rumpf Treiber (fort.) ------------------
\begin{frame}[fragile]
\frametitle{PCI Rumpf Treiber (fort.)}
\begin{tiny}
-\lstinputlisting{vain_pci/vain_pci_5.c}
+\lstinputlisting{kernel-devel/module-basics/vain_pci/vain_pci_5.c}
\end{tiny}
\end{frame}
-% ----- Slide PCI Rumpf Treiber (fort.) ------------------
\begin{frame}[fragile]
\frametitle{PCI Rumpf Treiber (fort.)}
\begin{tiny}
-\lstinputlisting{vain_pci/vain_pci_6.c}
+\lstinputlisting{kernel-devel/module-basics/vain_pci/vain_pci_6.c}
\end{tiny}
\end{frame}
-% ----- Slide Platform Treiber ------------------
+\subsubsection{Platform Treiber Modul}
\begin{frame}[fragile]
\frametitle{Aufbau eines Platform Treiber Moduls}
\pause
@@ -404,7 +381,6 @@ static int __init vain_plat_init(void)
\end{itemize}
\end{frame}
-% ----- Slide Platform Treiber ------------------
\begin{frame}[fragile]
\frametitle{Aufbau eines Platform Treiber Moduls (fort.)}
\pause
@@ -423,7 +399,6 @@ static void __exit vain_plat_exit(void)
\end{itemize}
\end{frame}
-% ----- Slide Platform Treiber ------------------
\begin{frame}[fragile]
\frametitle{Aufbau eines Platform Treiber Moduls (fort.)}
\pause
@@ -445,7 +420,6 @@ static void __exit vain_plat_exit(void)
\end{itemize}
\end{frame}
-% ----- Slide Platform Treiber ------------------
\begin{frame}[fragile]
\frametitle{Aufbau eines Platform Treiber Moduls (fort.)}
\pause
@@ -479,7 +453,6 @@ static void __exit vain_plat_exit(void)
\end{itemize}
\end{frame}
-% ----- Slide Platform Treiber ------------------
\begin{frame}[fragile]
\frametitle{Aufbau eines Platform Treiber Moduls (fort.)}
\pause
@@ -507,50 +480,44 @@ static void __exit vain_plat_exit(void)
\end{itemize}
\end{frame}
-% ----- Slide PCI Treiber Hintergrund ------------------
\begin{frame}
\frametitle{Platform Treiber Hintergrund}
\includegraphics[width=7cm]{images/plat_driver.png}
\end{frame}
-% ----- Slide Platform Rumpf Treiber ------------------
\begin{frame}[fragile]
\frametitle{Platform Rumpf Treiber}
\begin{tiny}
-\lstinputlisting{vain_plat/vain_plat_1.c}
+\lstinputlisting{kernel-devel/module-basics/vain_plat/vain_plat_1.c}
\end{tiny}
\end{frame}
-% ----- Slide Platform Rumpf Treiber (fort.) ------------------
\begin{frame}[fragile]
\frametitle{Platform Rumpf Treiber (fort.)}
\begin{tiny}
-\lstinputlisting{vain_plat/vain_plat_2.c}
+\lstinputlisting{kernel-devel/module-basics/vain_plat/vain_plat_2.c}
\end{tiny}
\end{frame}
-% ----- Slide Platform Rumpf Treiber (fort.) ------------------
\begin{frame}[fragile]
\frametitle{Platform Rumpf Treiber (fort.)}
\begin{tiny}
-\lstinputlisting{vain_plat/vain_plat_3.c}
+\lstinputlisting{kernel-devel/module-basics/vain_plat/vain_plat_3.c}
\end{tiny}
\end{frame}
-% ----- Slide Platform Rumpf Treiber (fort.) ------------------
\begin{frame}[fragile]
\frametitle{Platform Rumpf Treiber (fort.)}
\begin{tiny}
-\lstinputlisting{vain_plat/vain_plat_4.c}
+\lstinputlisting{kernel-devel/module-basics/vain_plat/vain_plat_4.c}
\end{tiny}
\end{frame}
-% ----- Slide Platform Rumpf Treiber (fort.) ------------------
\begin{frame}[fragile]
\frametitle{Platform Rumpf Treiber (fort.)}
\begin{tiny}
-\lstinputlisting{vain_plat/vain_plat_5.c}
+\lstinputlisting{kernel-devel/module-basics/vain_plat/vain_plat_5.c}
\end{tiny}
\end{frame}
-\end{document}
+\input{tailpres}
diff --git a/kernel-devel/section.tex b/kernel-devel/section.tex
new file mode 100644
index 0000000..4b78c2f
--- /dev/null
+++ b/kernel-devel/section.tex
@@ -0,0 +1 @@
+\section{Kernelprogrammierung}
diff --git a/kernel-devel/uio-driver/Makefile b/kernel-devel/uio-driver/Makefile
index 4663d52..d641258 100644
--- a/kernel-devel/uio-driver/Makefile
+++ b/kernel-devel/uio-driver/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/kernel-devel/uio-driver/handout_uio-driver_de.tex b/kernel-devel/uio-driver/handout_uio-driver_de.tex
index 546c7fe..f25b538 100644
--- a/kernel-devel/uio-driver/handout_uio-driver_de.tex
+++ b/kernel-devel/uio-driver/handout_uio-driver_de.tex
@@ -1,12 +1,6 @@
-\documentclass{lxarticle}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{lxheaders}
-\usepackage{lxextras}
+\input{confighandout}
-\begin{document}
-
-\section*{Linux-Treiber im Userspace}
+\subsection{Linux-Treiber im Userspace}
Das ab Linux 2.6.23 im stabilen Kernel verfügbare Userspace-I/O-Framework
(UIO) ermöglicht, bestimmte Treiber fast vollständig in den Userspace zu
@@ -64,7 +58,7 @@ einkompiliert wird, muss dieser Lizenz genügen, das heißt, der Sourcecode muss
(meist illegale) Tricks angewandt, um dieser Bedingung der GPL zu entgehen und
ihren Kernelcode unter Verschluss zu halten.
-\subsection*{UIO löst Probleme}
+\subsubsection{UIO löst Probleme}
Die geschilderte Problematik führte bereits vor längerer Zeit zu Überlegungen,
zumindest Teile eines Treibers in den Userspace zu verlagern. I/O-Hardware
@@ -118,7 +112,7 @@ Eintreffen des nächsten Interrupts nicht fertig wird, so ist das zumindest
softwaretechnisch kein Problem: Anhand des gelesenen Werts beim nächsten
\cmd{read()} erkennen Sie, wie viele Interrupts Sie verpasst haben.
-\subsection*{GPL oder nicht GPL}
+\subsubsection{GPL oder nicht GPL}
Der Linux-Kernel einschließlich aller enthaltenen Module ist unter der GPL
lizensiert. Programme im Linux-Userspace unterliegen solchen Einschränkungen
@@ -151,7 +145,7 @@ zu verhindern, bewusst gegen die GPL zu verstoßen oder ganz auf Linux zu
verzichten. Durch UIO wird an dieser Stelle ein gangbarer und legaler Ausweg
geschaffen.
-\subsection*{Konventionelle Treiber...}
+\subsubsection{Konventionelle Treiber...}
Bisherige Gerätetreiber sind vollständig im Kernel integriert. Die
Schnittstelle zum Userspace besteht typischerweise aus einer Gerätedatei, auf
@@ -225,7 +219,7 @@ Aufnahme in den offiziellen Mainline-Kernel haben. Dadurch haben die
Programmierer dann während der gesamten Laufzeit des Produkts zusätzlich das
Problem, diesen wackligen Treiber out-of-tree warten zu müssen.
-\subsection*{...und UIO-Treiber}
+\subsubsection{...und UIO-Treiber}
Sieht man sich Gerätetreiber etwas genauer an, so stellt man fest, dass es
stets wiederkehrende Aufgabenstellungen gibt. Zum einen hat die Hardware
@@ -301,7 +295,7 @@ in der Regel root-Rechte des Anwenders erfordert und bei Fehlern zu einem
völlig unbrauchbaren System führt. Bei einem UIO-Treiber unterscheidet sich
ein Update des Treibers durch nichts von einem Update der Anwender-Applikation.
-\subsection*{Wartungsvertrag}
+\subsubsection{Wartungsvertrag}
Ein Treiber will gewartet sein. Bei industriellen Geräten findet man oft die
Situation, dass ein Gerät über einen längeren Zeitraum mit der selben
@@ -341,7 +335,7 @@ Linux-Kernel-Mailingliste um die Aufnahme desselben zu bitten. Die Mühe lohnt
sich: Zukünftige Kernel haben die Unterstützung für ihr Produkt schon
eingebaut, Versionskonflikte oder das mühsame Kernel-Patchen entfällt.
-\subsection*{Los geht's...}
+\subsubsection{Los geht's...}
Wie sieht nun ein UIO-Treiber konkret aus? Betrachten wir dazu einen Treiber
für eine PCI-Karte. Die folgenden Beispiele sind Auszüge aus dem bereits
@@ -463,7 +457,7 @@ Ausführliche Dokumentation findet sich auch in den Kernel-Quellen in
\cmd{Documentation/DocBook/uio-howto.tmpl}; mit \cmd{make htmldocs} erstellt
man daraus eine lesbare Form.
-\subsection*{Testen mit lsuio}
+\subsubsection{Testen mit lsuio}
Hat man einen UIO-Kerneltreiber geladen, so führt der erste Weg ins Verzeichnis
\cmd{/sys/class/uio/uio0}, wo man überprüft, ob alle Dateien die erwarteten
@@ -492,7 +486,7 @@ Durch Überprüfen der Dateien \cmd{name} und \cmd{version} in den Verzeichnisse
unterhalb von \cmd{/sys/class/uio} kann man diese Informationen auf sichere
Weise gewinnen.
-\subsection*{Weiter geht's im Userspace}
+\subsubsection{Weiter geht's im Userspace}
Der Userspace-Teil des Treibers wird zunächst über das sysfs den Namen des
zuständigen Device-Files ermitteln. Im Folgenden wird der Einfachkeit halber
@@ -549,7 +543,7 @@ steht Experimenten kaum etwas im Weg. Sie können jedenfalls keine
schlimmeren Abstürze verursachen als beim Programmieren jeder anderen
Anwender-Applikation.
-\subsection*{UIO oder nicht UIO}
+\subsubsection{UIO oder nicht UIO}
Sollen jetzt in Zukunft alle Treiber mittels UIO realisiert werden? Sicher
nicht. UIO eignet sich sehr gut für Hardware, die Interrupts erzeugt, deren
@@ -578,7 +572,7 @@ weite Verbreitung von X.org bereits ein anderer Standard etabliert, der im
beispielsweise schnelle A/D-Wandler, könnten DMA benötigen. Die Zukunft wird
zeigen, ob an dieser Stelle Nachfrage besteht.
-\subsection*{Fazit}
+\subsubsection{Fazit}
Durch das seit Kernel-Version 2.6.23 in Linux verfügbare
Userspace I/O-Framework wird es besonders für Industriebetriebe erheblich
@@ -599,4 +593,4 @@ Realtime-Preemption-Patch einspielt, so erhält man ein einfach zu
programmierendes und vollständig aus Open Source-Software bestehendes System
für die Automatisierungstechnik.
-\end{document}
+\input{tailhandout}
diff --git a/kernel-devel/uio-driver/pres_uio-driver_en.tex b/kernel-devel/uio-driver/pres_uio-driver_en.tex
index ca9ff44..b16045f 100644
--- a/kernel-devel/uio-driver/pres_uio-driver_en.tex
+++ b/kernel-devel/uio-driver/pres_uio-driver_en.tex
@@ -1,23 +1,15 @@
-\documentclass{beamer}
-\usetheme{linutronix}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{pgf}
-\usepackage{graphicx}
+\input{configpres}
\title{The Userspace I/O Framework (UIO)}
-\institute{Linutronix GmbH}
-
-\begin{document}
-
\maketitle
-% ----- Slide "Desperate programmer" ------------------
+\subsection{The Userspace I/O Framework (UIO)}
+
\begin{frame}
\includegraphics[width=11cm]{images/hjk-desperate.jpg}
\end{frame}
-% ----- Slide "Linux device drivers" ------------------
+\subsubsection{Linux device drivers}
\begin{frame}
\frametitle{Linux device drivers}
\pause
@@ -28,7 +20,6 @@
\end{itemize}
\end{frame}
-% ----- Slide "Standard devices" -----------------------
\begin{frame}
\frametitle{Standard devices}
\pause
@@ -46,7 +37,6 @@
\end{itemize}
\end{frame}
-% ----- Slide "Problematic devices" -------------------
\begin{frame}
\frametitle{Problematic devices}
\pause
@@ -66,17 +56,15 @@
\end{itemize}
\end{frame}
-% ----- Slide "In-kernel driver" ------------------
\begin{frame}
\includegraphics[width=11cm]{images/konventioneller-treiber_en.png}
\end{frame}
-% ----- Slide "UIO driver" ------------------
\begin{frame}
\includegraphics[width=11cm]{images/uio-treiber_en.png}
\end{frame}
-% ----- Slide "How UIO works" --------------------------
+\subsubsection{Structure}
\begin{frame}
\frametitle{How UIO works}
\pause
@@ -96,7 +84,6 @@
\end{itemize}
\end{frame}
-% ----- Slide "Kernel: interrupt handler" --------------------------
\begin{frame}[fragile]
\frametitle{Kernel: interrupt handler}
\begin{verbatim}
@@ -113,7 +100,6 @@ irqreturn_t my_handler(int irq, struct uio_info *dev_info)
\end{verbatim}
\end{frame}
-% ----- Slide "Kernel: probe() function" --------------------------
\begin{frame}[fragile]
\frametitle{Kernel: probe() function}
\begin{verbatim}
@@ -128,7 +114,6 @@ int pci_probe(struct pci_dev *dev,
\end{verbatim}
\end{frame}
-% ----- Slide "Kernel: struct uio_info" --------------------------
\begin{frame}[fragile]
\frametitle{Kernel: struct uio\_info}
\begin{verbatim}
@@ -148,7 +133,6 @@ struct uio_info {
\end{verbatim}
\end{frame}
-% ----- Slide "Kernel: struct uio_mem" --------------------------
\begin{frame}[fragile]
\frametitle{Kernel: struct uio\_mem}
\begin{verbatim}
@@ -162,7 +146,7 @@ struct uio_mem {
\end{verbatim}
\end{frame}
-% ----- Slide "Userspace part of driver" --------------
+\subsubsection{Userspace}
\begin{frame}
\frametitle{Userspace: Overview}
\pause
@@ -181,7 +165,6 @@ struct uio_mem {
\end{itemize}
\end{frame}
-% ----- Slide "Hello UIO world" --------------
\begin{frame}[fragile]
\frametitle{Hello UIO world}
\pause
@@ -196,7 +179,7 @@ while (read(fd, &irq_cnt, 4)) {
\end{verbatim}
\end{frame}
-% ----- Slide "Performance considerations" --------------
+\subsubsection{Performance}
\begin{frame}
\frametitle{Performance considerations}
\pause
@@ -207,12 +190,11 @@ while (read(fd, &irq_cnt, 4)) {
\end{itemize}
\end{frame}
-% ----- Slide "ioctl vs. UIO" ------------------
\begin{frame}
\includegraphics[width=10cm]{images/ioctl-vs-uio_en.png}
\end{frame}
-% ----- Slide "Publish your driver!" --------------
+\subsubsection{Publish your driver}
\begin{frame}
\frametitle{Publish your driver!}
\pause
@@ -241,7 +223,7 @@ while (read(fd, &irq_cnt, 4)) {
\includegraphics[width=11cm]{images/greg-kernel-org.jpg}
\end{frame}
-% ----- Slide "Legal issues" --------------------------
+\subsubsection{Legal issues}
\begin{frame}
\frametitle{Legal issues}
\pause
@@ -254,7 +236,7 @@ while (read(fd, &irq_cnt, 4)) {
\end{itemize}
\end{frame}
-% ----- Slide "Tools" --------------------------
+\subsubsection{Tools}
\begin{frame}
\frametitle{Tools}
\pause
@@ -265,7 +247,6 @@ while (read(fd, &irq_cnt, 4)) {
\end{itemize}
\end{frame}
-% ----- Slide "OSADL" --------------------------
\begin{frame}
\frametitle{OSADL}
\pause
@@ -278,7 +259,7 @@ while (read(fd, &irq_cnt, 4)) {
\end{itemize}
\end{frame}
-% ----- Slide "Future" --------------------------
+\subsubsection{Future Development}
\begin{frame}
\frametitle{Future}
\pause
@@ -289,13 +270,4 @@ while (read(fd, &irq_cnt, 4)) {
\end{itemize}
\end{frame}
-% ----- Slide "Thanks for listening!" ----------
-\begin{frame}
-\frametitle{Thanks for listening!}
-\pause
-\begin{itemize}
-\item Questions ?
-\end{itemize}
-\end{frame}
-
-\end{document}
+\input{tailpres}
diff --git a/linux-basics/Makefile b/linux-basics/Makefile
index 72cada2..0a202ea 100644
--- a/linux-basics/Makefile
+++ b/linux-basics/Makefile
@@ -1,4 +1,4 @@
-SUBDIRS = `ls -1`
+SUBDIRS = `ls -1 | grep -v *.tex | grep -v Makefile | grep -v TODO`
all clean::
for dir in $(SUBDIRS) ; do \
diff --git a/linux-basics/boot-process/Makefile b/linux-basics/boot-process/Makefile
index 4663d52..d641258 100644
--- a/linux-basics/boot-process/Makefile
+++ b/linux-basics/boot-process/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/linux-basics/boot-process/handout_boot-process_de.tex b/linux-basics/boot-process/handout_boot-process_de.tex
index 7f39dc7..0b36a61 100644
--- a/linux-basics/boot-process/handout_boot-process_de.tex
+++ b/linux-basics/boot-process/handout_boot-process_de.tex
@@ -1,14 +1,8 @@
-\documentclass{lxarticle}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{lxheaders}
-\usepackage{lxextras}
+\input{confighandout}
-\begin{document}
+\subsection{Der Linux-Boot-Prozess}
-\section*{Der Linux-Boot-Prozess}
-
-\subsection*{Aufgaben des Bootloaders}
+\subsubsection{Aufgaben des Bootloaders}
Hauptaufgabe des Bootloaders ist die rudimentäre Initialisierung der
Hardware, so dass mindestens das RAM benutzt werden kann. Dazu ist auf den
@@ -39,7 +33,7 @@ zImage steht (natürlich unkomprimiert) der Dekompressor-Code. Der Bootloader
springt diese Adresse an und hat damit seine Arbeit beendet. Alles weitere
läuft im Kernel ab.
-\subsection*{Gängige Bootloader}
+\subsubsection{Gängige Bootloader}
Die Wahl des Bootloaders ist weitgehend eine Geschmacksfrage. Die
verbreiteten Bootloader U-Boot und Redboot bieten im Wesentlichen die gleiche
@@ -72,7 +66,7 @@ Bootkernel sind ausserdem komplexe Aufgaben während des Bootvorgangs,
beispielsweise automatisierte und sichere Firmware-Updates leicht
realisierbar.
-\subsection*{Bootprobleme: Im Bootloader}
+\subsubsection{Bootprobleme: Im Bootloader}
Während der Entwicklungsphase sind Probleme im Bootloader besonders
unangenehm. Falls dieser bereits abstürzt, ehe er die serielle Schnittstelle
@@ -106,7 +100,7 @@ Häufige Problemquellen im Bootloader sind beispielsweise:
falschen IP-Adressen bis hin zu Treiber- oder Hardware-Problemen.
\end{itemize}
-\subsection*{Bootprobleme: Im Kernel}
+\subsubsection{Bootprobleme: Im Kernel}
Bootprobleme im Kernel sind vergleichsweise einfach zu finden, sobald man
eine Konsole auf der seriellen Schnittstelle hat. Der Kernel gibt meist recht
@@ -135,7 +129,7 @@ Fehlermeldung hängen bleibt, anstatt \cmd{/sbin/init} zu starten, dann
liegt dies oft an fehlenden Device-Nodes im Verzeichnis \cmd{/dev}.
Überprüfen Sie dies.
-\subsection*{Bootprobleme: In den Startskripten}
+\subsubsection{Bootprobleme: In den Startskripten}
Wenn der Kernel erfolgreich das Rootfs mounten und \cmd{/sbin/init} starten
konnte, wird letzteres versuchen, die in \cmd{/etc/inittab} angegebenen
@@ -152,4 +146,4 @@ gefunden wurde oder kein Netzwerkkabel eingesteckt ist. Des weiteren sollte
das Skript selber erkennen, wenn über die Netzwerkschnittstelle das Rootfs
per NFS gemountet wurde, und dann eine Neukonfiguration tunlichst unterlassen.
-\end{document}
+\input{tailhandout}
diff --git a/linux-basics/boot-process/pres_boot-process_de.tex b/linux-basics/boot-process/pres_boot-process_de.tex
index 31910d6..722e94d 100644
--- a/linux-basics/boot-process/pres_boot-process_de.tex
+++ b/linux-basics/boot-process/pres_boot-process_de.tex
@@ -1,19 +1,11 @@
-\documentclass{beamer}
-\usetheme{linutronix}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{pgf}
-\usepackage{graphicx}
-\usepackage{lxextras}
+\input{configpres}
\title{Der Linux-Boot-Prozess}
-\institute{Linutronix GmbH}
-
-\begin{document}
-
\maketitle
-% ----- Slide ------------------
+\subsection{Boot Prozess}
+
+\subsubsection{Problematik}
\begin{frame}
\frametitle{Aufgaben des Bootloaders}
\begin{itemize}
@@ -28,7 +20,7 @@
\end{itemize}
\end{frame}
-% ----- Slide ------------------
+\subsubsection{Bootloader}
\begin{frame}
\frametitle{Gängige Bootloader}
\begin{itemize}
@@ -40,7 +32,7 @@
\end{itemize}
\end{frame}
-% ----- Slide ------------------
+\subsubsection{Struktur}
\begin{frame}
\frametitle{Ablauf des Bootprozesses}
\begin{itemize}
@@ -62,7 +54,7 @@
\end{itemize}
\end{frame}
-% ----- Slide ------------------
+\subsubsection{Stolperstellen}
\begin{frame}
\frametitle{Bootprobleme: 1. Im Bootloader}
\begin{itemize}
@@ -76,7 +68,6 @@
\end{itemize}
\end{frame}
-% ----- Slide ------------------
\begin{frame}
\frametitle{Bootprobleme: 2. Im Kernel}
\begin{itemize}
@@ -90,7 +81,6 @@
\end{itemize}
\end{frame}
-% ----- Slide ------------------
\begin{frame}
\frametitle{Bootprobleme: 3. In den Startskripten}
\begin{itemize}
@@ -102,6 +92,4 @@
\end{itemize}
\end{frame}
-
-
-\end{document}
+\input{tailpres}
diff --git a/linux-basics/filesystem-structure/Makefile b/linux-basics/filesystem-structure/Makefile
index 4663d52..d641258 100644
--- a/linux-basics/filesystem-structure/Makefile
+++ b/linux-basics/filesystem-structure/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/linux-basics/filesystem-structure/handout_file-system-structure_de.tex b/linux-basics/filesystem-structure/handout_file-system-structure_de.tex
index ebccec0..bd06c48 100644
--- a/linux-basics/filesystem-structure/handout_file-system-structure_de.tex
+++ b/linux-basics/filesystem-structure/handout_file-system-structure_de.tex
@@ -1,14 +1,8 @@
-\documentclass{lxarticle}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{lxheaders}
-\usepackage{lxextras}
+\input{confighandout}
-\begin{document}
+\subsection{Struktur eines Linux-Dateisystems}
-\section*{Struktur eines Linux-Dateisystems}
-
-\subsection*{Root-Filesystem}
+\subsubsection{Root-Filesystem}
Der Aufbau eines Linux-Systems wird im Wesentlichen durch die
\emph{Linux Standard Base (LSB)} bestimmt. Diese Vorgabe wurde Anfang 2004
@@ -140,7 +134,7 @@ cat /proc/meminfo
cat /proc/interrupts
\end{lstlisting}
-\subsection*{Zugriffsrechte}
+\subsubsection{Zugriffsrechte}
Da Unix vom Design her ein Multiuser-Betriebssystem ist, bestand von Anfang
an die Forderung nach einer Regelung der Benutzerrechte. Jeder Benutzer kann
@@ -163,7 +157,7 @@ angehört.
\newpage
-\subsection*{Kontrollfragen}
+\subsubsection{Kontrollfragen}
\begin{enumerate}
\item Warum ist es wichtig, dass bestimmte Dateien an einem standardisierten
@@ -173,4 +167,4 @@ angehört.
Datei tatsächlich starten dürfen?
\end{enumerate}
-\end{document}
+\input{tailhandout}
diff --git a/linux-basics/filesystem-structure/pres_file-system-structure_de.tex b/linux-basics/filesystem-structure/pres_file-system-structure_de.tex
index f5f4cdf..b4d71f4 100644
--- a/linux-basics/filesystem-structure/pres_file-system-structure_de.tex
+++ b/linux-basics/filesystem-structure/pres_file-system-structure_de.tex
@@ -1,20 +1,10 @@
-\documentclass{beamer}
-\usetheme{linutronix}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{pgf}
-\usepackage{graphicx}
-\usepackage{lxextras}
+\input{configpres}
\title{Struktur eines Linux-Dateisystems}
-\institute{Linutronix GmbH}
-
-\begin{document}
-
\maketitle
+\subsection{Struktur des Dateisystems}
-% ----- Slide ------------------
\begin{frame}
\begin{figure}[h]
\centering
@@ -22,7 +12,6 @@
\end{figure}
\end{frame}
-% ----- Slide ------------------
\begin{frame}
\begin{itemize}
\item \cmd{/boot}: Dateien des Bootloaders, evtl. Kernel
@@ -53,7 +42,7 @@
\end{itemize}
\end{frame}
-% ----- Slide ------------------
+\subsubsection{Mounts}
\begin{frame}
\frametitle{Der \cmd{mount}-Befehl}
\begin{itemize}
@@ -69,7 +58,7 @@
\end{itemize}
\end{frame}
-% ----- Slide ------------------
+\subsubsection{Zugriffsrechte}
\begin{frame}
\frametitle{Zugriffsrechte}
\begin{itemize}
@@ -82,7 +71,6 @@
\end{itemize}
\end{frame}
-% ----- Slide ------------------
\begin{frame}
\frametitle{Zugriffsrechte}
\begin{figure}[h]
@@ -91,4 +79,4 @@
\end{figure}
\end{frame}
-\end{document}
+\input{tailpres}
diff --git a/linux-basics/filesystems/Makefile b/linux-basics/filesystems/Makefile
index 4663d52..d641258 100644
--- a/linux-basics/filesystems/Makefile
+++ b/linux-basics/filesystems/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/linux-basics/filesystems/pres_filesystems_en.tex b/linux-basics/filesystems/pres_filesystems_en.tex
index 7dd5f57..5b1149b 100644
--- a/linux-basics/filesystems/pres_filesystems_en.tex
+++ b/linux-basics/filesystems/pres_filesystems_en.tex
@@ -1,51 +1,16 @@
-\documentclass[11pt]{beamer}
-
-%\usepackage{ngerman}
-\usepackage{times}
-\usepackage{graphicx}
-\usepackage{pgf,pgfarrows,pgfnodes,pgfautomata,pgfheaps}
-\usepackage{amsmath,amssymb}
-\usepackage[latin1]{inputenc}
-\usepackage{listings,color}
-\definecolor{lbcolor}{RGB}{255,210,150}
-\lstset{
- language=C,
- numbers=left,
- stepnumber=1,
- numbersep=5pt,
- numberstyle=\tiny,
- breaklines=true,
- breakautoindent=true,
- postbreak=\space,
- tabsize=2,
- basicstyle=\ttfamily\footnotesize,
- showspaces=false,
- showstringspaces=false,
- extendedchars=true,
- backgroundcolor=\color{lbcolor},
- keywordstyle=\bf ,
- commentstyle=\color{green},
- stringstyle=\color{red}
-}
-
-\mode<presentation>
-{
- \usetheme{linutronix}
-}
-
% on the following slides, include icon in the left sidebar
\def\lximg{/usr/share/lx/icons/fueller.png}
-\title{Filesystems}
-\institute{Linutronix GmbH}
-
-\begin{document}
+\input{configpres}
-\frame{ \titlepage }
+\title{Filesystems}
+\maketitle
% stop displaying 'fueller.png' on the following slides
\def\lximg{none}
+\subsection{Filesystems}
+\subsubsection{Types}
\begin{frame}
\frametitle{Filesystem types}
\begin{itemize}
@@ -55,6 +20,7 @@
\end{itemize}
\end{frame}
+\subsubsection{For block devices}
\begin{frame}
\frametitle{Filesystems for block devices}
\begin{itemize}
@@ -65,6 +31,7 @@
\end{itemize}
\end{frame}
+\subsubsection{For flash}
\begin{frame}
\frametitle{Flash filesystems}
\begin{itemize}
@@ -75,6 +42,7 @@
\end{itemize}
\end{frame}
+\subsubsection{Journaling}
\begin{frame}
\frametitle{Journalling Filesystems}
\begin{alertblock}{What is a journalling filesystem?}
@@ -85,6 +53,7 @@ crash or a power failure).
\end{alertblock}
\end{frame}
+\subsubsection{Technical terms}
\begin{frame}
\frametitle{Technical terms}
\begin{itemize}
@@ -96,6 +65,7 @@ size of a filesystem
\end{itemize}
\end{frame}
+\subsubsection{EXT filesystems}
\begin{frame}
\frametitle{EXT2}
\begin{itemize}
@@ -129,6 +99,7 @@ sticks (ext2 minimizes the number of writes)
\end{itemize}
\end{frame}
+\subsubsection{XFS}
\begin{frame}
\frametitle{XFS}
\begin{itemize}
@@ -140,6 +111,7 @@ sticks (ext2 minimizes the number of writes)
\end{itemize}
\end{frame}
+\subsubsection{Flash filesystems}
\begin{frame}
\frametitle{JFFS2}
\begin{itemize}
@@ -173,6 +145,7 @@ of data are stored): XFS
\end{itemize}
\end{frame}
+\subsubsection{Creating and testing filesystems}
\begin{frame}[fragile]
\frametitle{Creating filesystems}
\begin{lstlisting}[keywordstyle=\ttfamily\footnotesize]
@@ -239,7 +212,7 @@ your flash filesystem
\end{itemize}
\end{frame}
-\section*{sources}
+\subsubsection{sources}
\begin{frame}
\begin{thebibliography}{1}
\bibitem{ext2} http://en.wikipedia.org/wiki/Ext2
@@ -249,4 +222,5 @@ your flash filesystem
\bibitem{UBIFS} http://en.wikipedia.org/wiki/UBIFS
\end{thebibliography}
\end{frame}
-\end{document}
+
+\input{tailpres}
diff --git a/linux-basics/important-tools/Makefile b/linux-basics/important-tools/Makefile
index 4663d52..d641258 100644
--- a/linux-basics/important-tools/Makefile
+++ b/linux-basics/important-tools/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/linux-basics/important-tools/pres_important_tools_de.tex b/linux-basics/important-tools/pres_important_tools_de.tex
index ec0b979..1835893 100644
--- a/linux-basics/important-tools/pres_important_tools_de.tex
+++ b/linux-basics/important-tools/pres_important_tools_de.tex
@@ -1,26 +1,11 @@
-\documentclass{beamer}
-\usetheme{linutronix}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{pgf}
-\usepackage{graphicx}
-\usepackage{lxextras}
-
-\lstset{keywordstyle=\color{blue},commentstyle=\color{orange}}
-
-\title{Block \lq Wichtige Kommandos / Werkzeuge \rq}
-\institute{Linutronix GmbH}
-
-\begin{document}
+\input{configpres}
+\title{\lq Wichtige Kommandos / Werkzeuge \rq}
\maketitle
-\begin{frame}
-\frametitle{Übersicht}
-\tableofcontents
-\end{frame}
+\subsection{wichtige Kommandos / Werkzeuge}
-\section{Basiskommandos}
+\subsubsection{Basiskommandos}
\begin{frame}
\frametitle{Grundlegende Kommandos}
\begin{center}
@@ -85,7 +70,7 @@ ln & Link anlegen \\
\end{center}
\end{frame}
-\section{Prozesse überwachen}
+\subsubsection{Prozesse überwachen}
\begin{frame}[containsverbatim]
\frametitle{Prozessliste anzeigen mit ps}
@@ -136,7 +121,7 @@ Swap: 1020088k total, 150524k used, 869564k free, 124764k cached
\end{lstlisting}
\end{frame}
-\section{Arbeiten mit Text}
+\subsubsection{Arbeiten mit Text}
\begin{frame}[containsverbatim]
\frametitle{Suche nach Text}
@@ -214,7 +199,7 @@ tar -tzf linux-2.6.32.tar.gz
\end{lstlisting}
\end{frame}
-\section{diff und patch}
+\subsubsection{diff und patch}
\begin{frame}[containsverbatim]
\frametitle{diff}
\begin{lstlisting}[language=bash]
@@ -238,4 +223,4 @@ bzcat patch-2.6.31.13.bz2 | patch -p1
\end{lstlisting}
\end{frame}
-\end{document}
+\input{tailpres}
diff --git a/linux-basics/licenses/Makefile b/linux-basics/licenses/Makefile
index 4663d52..d641258 100644
--- a/linux-basics/licenses/Makefile
+++ b/linux-basics/licenses/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/linux-basics/licenses/pres_licenses_en.tex b/linux-basics/licenses/pres_licenses_en.tex
index dfda2b2..0b7ffbc 100644
--- a/linux-basics/licenses/pres_licenses_en.tex
+++ b/linux-basics/licenses/pres_licenses_en.tex
@@ -1,51 +1,17 @@
-\documentclass[11pt]{beamer}
-
-%\usepackage{ngerman}
-\usepackage{times}
-\usepackage{graphicx}
-\usepackage{pgf,pgfarrows,pgfnodes,pgfautomata,pgfheaps}
-\usepackage{amsmath,amssymb}
-\usepackage[latin1]{inputenc}
-\usepackage{listings,color}
-\definecolor{lbcolor}{RGB}{255,210,150}
-\lstset{
- language=C,
- numbers=left,
- stepnumber=1,
- numbersep=5pt,
- numberstyle=\tiny,
- breaklines=true,
- breakautoindent=true,
- postbreak=\space,
- tabsize=2,
- basicstyle=\ttfamily\footnotesize,
- showspaces=false,
- showstringspaces=false,
- extendedchars=true,
- backgroundcolor=\color{lbcolor},
- keywordstyle=\bf ,
- commentstyle=\color{green},
- stringstyle=\color{red}
-}
-
-\mode<presentation>
-{
- \usetheme{linutronix}
-}
-
% on the following slides, include icon in the left sidebar
\def\lximg{/usr/share/lx/icons/fueller.png}
-\title{Opensource-Licenses}
-\institute{Linutronix GmbH}
+\input{configpres}
-\begin{document}
-
-\frame{ \titlepage }
+\title{Opensource-Licenses}
+\maketitle
% stop displaying 'fueller.png' on the following slides
\def\lximg{none}
+\subsection{Opensource-Licenses}
+
+\subsubsection{GPL}
\begin{frame}
\frametitle{GPL: GNU \textbf{G}eneral \textbf{P}ublic \textbf{L}icense}
You are allowed to:
@@ -91,6 +57,7 @@ its own license
\end{itemize}
\end{frame}
+\subsubsection{Apache, BSD}
\begin{frame}
\frametitle{Apache License}
You are allowed to:
@@ -151,4 +118,4 @@ This means:
\end{frame}
-\end{document}
+\input{tailpres}
diff --git a/linux-basics/linux-processes/Makefile b/linux-basics/linux-processes/Makefile
index 4663d52..d641258 100644
--- a/linux-basics/linux-processes/Makefile
+++ b/linux-basics/linux-processes/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/linux-basics/linux-processes/pres_linux-processes_en.tex b/linux-basics/linux-processes/pres_linux-processes_en.tex
index 911cffc..71c1344 100644
--- a/linux-basics/linux-processes/pres_linux-processes_en.tex
+++ b/linux-basics/linux-processes/pres_linux-processes_en.tex
@@ -1,52 +1,15 @@
-\documentclass[11pt]{beamer}
-
-%\usepackage{ngerman}
-\usepackage{times}
-\usepackage{graphicx}
-\usepackage{pgf,pgfarrows,pgfnodes,pgfautomata,pgfheaps}
-\usepackage{amsmath,amssymb}
-\usepackage[latin1]{inputenc}
-\usepackage{listings,color}
-\definecolor{lbcolor}{RGB}{255,210,150}
-\lstset{
- language=C,
- numbers=left,
- stepnumber=1,
- numbersep=5pt,
- numberstyle=\tiny,
- breaklines=true,
- breakautoindent=true,
- postbreak=\space,
- tabsize=2,
- basicstyle=\ttfamily\footnotesize,
- showspaces=false,
- showstringspaces=false,
- extendedchars=true,
- backgroundcolor=\color{lbcolor},
- keywordstyle=\bf ,
- commentstyle=\color{green},
- stringstyle=\color{red}
-}
-
-\mode<presentation>
-{
- \usetheme{linutronix}
-}
-
% on the following slides, include icon in the left sidebar
\def\lximg{/usr/share/lx/icons/fueller.png}
-\title{Linux process management / Scheduling / Daemons}
-\institute{Linutronix GmbH}
-
-\begin{document}
+\input{configpres}
-\frame{ \titlepage }
+\title{Linux process management / Scheduling / Daemons}
+\maketitle
% stop displaying 'fueller.png' on the following slides
\def\lximg{none}
-\section{Process Management}
+\subsection{Process Management}
\begin{frame}
\frametitle{Binary formats}
A program file includes meta information which describes the format
@@ -113,7 +76,7 @@ jan 5416 [...] SNs [...] bash
The first column in the STAT field shows the process state.
\end{frame}
-\section{Scheduling}
+\subsection{Scheduling}
\begin{frame}
\frametitle{The LINUX Scheduler}
\begin{itemize}
@@ -234,7 +197,7 @@ int setrlimit(int resource,
\end{lstlisting}
\end{frame}
-\section{Daemons}
+\subsection{Daemons}
\begin{frame}
\frametitle{Daemons}
\begin{alertblock}{What is a Daemon?}
@@ -255,6 +218,7 @@ working directory and so on...)
\end{itemize}
\end{frame}
+\subsection{Multicore specific scheduling}
\begin{frame}[fragile]
\frametitle{Scheduling on Multicore Systems}
\begin{itemize}
@@ -267,7 +231,6 @@ working directory and so on...)
\end{itemize}
\end{frame}
-\section{Multicore specific scheduling}
\begin{frame}[fragile]
\frametitle{CPU affinity}
\begin{lstlisting}
@@ -286,11 +249,12 @@ sched_setaffinity(pid, CPU_SETSIZE, &set);
\end{lstlisting}
\end{frame}
-\section*{sources}
+\subsection{sources}
\begin{frame}
\begin{thebibliography}{1}
\bibitem{kerisk10} The Linux Programming Interface (Michael Kerisk), no starch
press, ISBN 978-1-59327-220-3
\end{thebibliography}
\end{frame}
-\end{document}
+
+\input{tailpres}
diff --git a/linux-basics/networking/Makefile b/linux-basics/networking/Makefile
index 4663d52..d641258 100644
--- a/linux-basics/networking/Makefile
+++ b/linux-basics/networking/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/linux-basics/networking/pres_networking_en.tex b/linux-basics/networking/pres_networking_en.tex
index 2adfc3c..21ac72f 100644
--- a/linux-basics/networking/pres_networking_en.tex
+++ b/linux-basics/networking/pres_networking_en.tex
@@ -1,51 +1,16 @@
-\documentclass[11pt]{beamer}
-
-%\usepackage{ngerman}
-\usepackage{times}
-\usepackage{graphicx}
-\usepackage{pgf,pgfarrows,pgfnodes,pgfautomata,pgfheaps}
-\usepackage{amsmath,amssymb}
-\usepackage[latin1]{inputenc}
-\usepackage{listings,color}
-\definecolor{lbcolor}{RGB}{255,210,150}
-\lstset{
- language=C,
- numbers=left,
- stepnumber=1,
- numbersep=5pt,
- numberstyle=\tiny,
- breaklines=true,
- breakautoindent=true,
- postbreak=\space,
- tabsize=2,
- basicstyle=\ttfamily\footnotesize,
- showspaces=false,
- showstringspaces=false,
- extendedchars=true,
- backgroundcolor=\color{lbcolor},
- keywordstyle=\bf ,
- commentstyle=\color{green},
- stringstyle=\color{red}
-}
-
-\mode<presentation>
-{
- \usetheme{linutronix}
-}
-
% on the following slides, include icon in the left sidebar
\def\lximg{/usr/share/lx/icons/fueller.png}
-\title{Network configuration}
-\institute{Linutronix GmbH}
+\input{configpres}
-\begin{document}
-
-\frame{ \titlepage }
+\title{Network configuration}
+\maketitle
% stop displaying 'fueller.png' on the following slides
\def\lximg{none}
+\subsection{Network configuration}
+
\begin{frame}[fragile]
\frametitle{ifconfig}
\begin{verbatim}
@@ -148,4 +113,4 @@ SSH-2.0-dropbear_0.48
\end{itemize}
\end{frame}
-\end{document}
+\input{tailpres}
diff --git a/linux-basics/package-management/Makefile b/linux-basics/package-management/Makefile
index 4663d52..d641258 100644
--- a/linux-basics/package-management/Makefile
+++ b/linux-basics/package-management/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/linux-basics/package-management/pres_packaging_en.tex b/linux-basics/package-management/pres_packaging_en.tex
index 2a402c6..ad5e37e 100644
--- a/linux-basics/package-management/pres_packaging_en.tex
+++ b/linux-basics/package-management/pres_packaging_en.tex
@@ -1,51 +1,17 @@
-\documentclass[11pt]{beamer}
-
-%\usepackage{ngerman}
-\usepackage{times}
-\usepackage{graphicx}
-\usepackage{pgf,pgfarrows,pgfnodes,pgfautomata,pgfheaps}
-\usepackage{amsmath,amssymb}
-\usepackage[latin1]{inputenc}
-\usepackage{listings,color}
-\definecolor{lbcolor}{RGB}{255,210,150}
-\lstset{
- language=C,
- numbers=left,
- stepnumber=1,
- numbersep=5pt,
- numberstyle=\tiny,
- breaklines=true,
- breakautoindent=true,
- postbreak=\space,
- tabsize=2,
- basicstyle=\ttfamily\footnotesize,
- showspaces=false,
- showstringspaces=false,
- extendedchars=true,
- backgroundcolor=\color{lbcolor},
- keywordstyle=\bf ,
- commentstyle=\color{green},
- stringstyle=\color{red}
-}
-
-\mode<presentation>
-{
- \usetheme{linutronix}
-}
-
% on the following slides, include icon in the left sidebar
\def\lximg{/usr/share/lx/icons/fueller.png}
-\title{Debian Package Management}
-\institute{Linutronix GmbH}
+\input{configpres}
-\begin{document}
-
-\frame{ \titlepage }
+\title{Debian Package Management}
+\maketitle
% stop displaying 'fueller.png' on the following slides
\def\lximg{none}
+\subsection{Debian Package Management}
+
+\subsubsection{Introduction}
\begin{frame}
\frametitle{Package Management}
\begin{itemize}
@@ -64,6 +30,7 @@
\end{itemize}
\end{frame}
+\subsubsection{dpkg}
\begin{frame}[fragile]
\frametitle{Using dpkg}
\begin{verbatim}
@@ -99,6 +66,7 @@ dpkg-reconfigure packagename
\end{verbatim}
\end{frame}
+\subsubsection{APT}
\begin{frame}
\frametitle{The \textbf{A}dvanced \textbf{P}ackaging \textbf{T}oolkit}
\begin{itemize}
@@ -225,6 +193,7 @@ $ apt-get moo
\end{verbatim}
\end{frame}
+\subsubsection{deb packages}
\begin{frame}
\frametitle{The .deb file format}
A Debian archive contains three files:
@@ -292,6 +261,7 @@ rw-r--r-- 0/0 [...] 2011 data.tar.gz
\end{verbatim}
\end{frame}
+\subsubsection{debhelper}
\begin{frame}[fragile]
\frametitle{dh\_make}
dh\_make is a helper to create skeletons for the contents in the DEBIAN/
@@ -309,4 +279,4 @@ $ dh_make -c gpl2 -n -s -e m@mustermann.de
\end{thebibliography}
\end{frame}
-\end{document}
+\input{tailpres}
diff --git a/linux-basics/section.tex b/linux-basics/section.tex
new file mode 100644
index 0000000..7b2b2b4
--- /dev/null
+++ b/linux-basics/section.tex
@@ -0,0 +1 @@
+\section{Linux}
diff --git a/linux-basics/sh-programming/Makefile b/linux-basics/sh-programming/Makefile
index 4663d52..d641258 100644
--- a/linux-basics/sh-programming/Makefile
+++ b/linux-basics/sh-programming/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/linux-basics/sh-programming/handout_sh-programming_de.tex b/linux-basics/sh-programming/handout_sh-programming_de.tex
index e9c84b4..fd419e7 100644
--- a/linux-basics/sh-programming/handout_sh-programming_de.tex
+++ b/linux-basics/sh-programming/handout_sh-programming_de.tex
@@ -1,15 +1,8 @@
-\documentclass{lxarticle}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{lxheaders}
-\usepackage{lxextras}
+\input{confighandout}
-\begin{document}
-
-\section*{Einführung in die Shell-Programmierung}
-
-\subsection*{Aufbau von Shell-Skripten}
+\subsection{Shell-Programmierung}
+\subsubsection{Aufbau von Shell-Skripten}
\begin{itemize}
\item Syntax: \cmd{\#!/ein/interpreter}
\item Beliebiges Programm als Interpreter möglich
@@ -18,13 +11,12 @@
\end{itemize}
Das übliche \cmd{Hello World} sieht als Shell-Skript etwa so aus:
-
\begin{lstlisting}
#!/bin/sh
echo Hello World
\end{lstlisting}
-\subsection*{Variablen und Parameter}
+\subsubsection{Variablen und Parameter}
\begin{lstlisting}
#!/bin/sh
@@ -41,7 +33,7 @@ Variablen können einfach in der Form \cmd{Name=Wert} geschrieben werden. Sie
haben in Shell-Skripten keinen Typ und werden bei der ersten Verwendung
automatisch angelegt.
-\subsection*{Ausgabe-Umleitung}
+\subsubsection{Ausgabe-Umleitung}
\begin{lstlisting}
#!/bin/sh
@@ -57,7 +49,7 @@ exit 0
\end{lstlisting}
-\subsection*{Bedingte Verzweigungen}
+\subsubsection{Bedingte Verzweigungen}
Allgemeine Form:
@@ -166,7 +158,7 @@ while [ bedingung ] ; do ... ; done
# bedingung wie bei if
\end{lstlisting}
-\subsection*{Funktionen}
+\subsubsection{Funktionen}
\begin{lstlisting}
#!/bin/sh
@@ -180,7 +172,7 @@ error_log() {
error_log "Datei nicht gefunden."
\end{lstlisting}
-\subsection*{Einbinden anderer Skripte}
+\subsubsection{Einbinden anderer Skripte}
\begin{lstlisting}
#!/bin/sh
@@ -193,7 +185,7 @@ my_other_script&
\end{lstlisting}
-\subsection*{Zugriff auf Dateien}
+\subsubsection{Zugriff auf Dateien}
\begin{lstlisting}
#!/bin/sh
@@ -210,4 +202,4 @@ done < dateiliste.txt
\end{lstlisting}
-\end{document}
+\input{tailhandout}
diff --git a/linux-basics/sh-programming/pres_sh-programming_de.tex b/linux-basics/sh-programming/pres_sh-programming_de.tex
index 9334267..9bb1f01 100644
--- a/linux-basics/sh-programming/pres_sh-programming_de.tex
+++ b/linux-basics/sh-programming/pres_sh-programming_de.tex
@@ -1,19 +1,8 @@
-\documentclass{beamer}
-\usetheme{linutronix}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{pgf}
-\usepackage{graphicx}
-\usepackage{lxextras}
+\input{configpres}
\title{Einführung in die Shell-Programmierung}
-\institute{Linutronix GmbH}
-
-\begin{document}
-
\maketitle
-% ----- Slide ------------------
\begin{frame}
\frametitle{Aufbau von Shell-Skripten}
\begin{itemize}
@@ -27,7 +16,6 @@
\end{itemize}
\end{frame}
-% ----- Slide ------------------
\begin{frame}[fragile]
\frametitle{Hello World als Shell-Script}
\begin{lstlisting}
@@ -36,7 +24,6 @@ echo Hello World
\end{lstlisting}
\end{frame}
-% ----- Slide ------------------
\begin{frame}[fragile]
\frametitle{Variablen und Parameter}
\begin{lstlisting}
@@ -54,7 +41,6 @@ echo
\end{frame}
-% ----- Slide ------------------
\begin{frame}[fragile]
\frametitle{Ausgabe-Umleitung}
\begin{lstlisting}
@@ -73,7 +59,6 @@ exit 0
\end{frame}
-% ----- Slide ------------------
\begin{frame}[fragile]
\frametitle{Bedingte Verzweigungen}
\begin{lstlisting}
@@ -94,7 +79,6 @@ if [ bedingung ] ; then ... ; fi
\end{frame}
-% ----- Slide ------------------
\begin{frame}[fragile]
\frametitle{Bedingte Verzweigungen}
\begin{lstlisting}
@@ -112,7 +96,6 @@ if [ $string != "hello" ] ; then ...
\end{frame}
-% ----- Slide ------------------
\begin{frame}[fragile]
\frametitle{Bedingte Verzweigungen}
\begin{lstlisting}
@@ -132,7 +115,6 @@ if [ $string != "hello" ] ; then ...
\end{frame}
-% ----- Slide ------------------
\begin{frame}[fragile]
\frametitle{Bedingte Verzweigungen}
\begin{lstlisting}
@@ -147,7 +129,6 @@ exit 0
\end{lstlisting}
\end{frame}
-% ----- Slide ------------------
\begin{frame}[fragile]
\frametitle{Bedingte Verzweigungen}
\begin{lstlisting}
@@ -162,7 +143,6 @@ grep Jones addr.txt || echo "No Jones found!"
\end{lstlisting}
\end{frame}
-% ----- Slide ------------------
\begin{frame}[fragile]
\frametitle{Schleifen}
\begin{lstlisting}
@@ -181,7 +161,6 @@ done
\end{lstlisting}
\end{frame}
-% ----- Slide ------------------
\begin{frame}[fragile]
\frametitle{Schleifen}
\begin{lstlisting}
@@ -199,7 +178,6 @@ while [ bedingung ] ; do ... ; done
\end{lstlisting}
\end{frame}
-% ----- Slide ------------------
\begin{frame}[fragile]
\frametitle{Funktionen}
\begin{lstlisting}
@@ -216,7 +194,6 @@ error_log "Datei nicht gefunden."
\end{lstlisting}
\end{frame}
-% ----- Slide ------------------
\begin{frame}[fragile]
\frametitle{Einbinden anderer Skripte}
\begin{lstlisting}
@@ -231,7 +208,6 @@ my_other_script&
\end{lstlisting}
\end{frame}
-% ----- Slide ------------------
\begin{frame}[fragile]
\frametitle{Zugriff auf Dateien}
\begin{lstlisting}
@@ -250,5 +226,4 @@ done < dateiliste.txt
\end{lstlisting}
\end{frame}
-
-\end{document}
+\input{tailpres}
diff --git a/linux-basics/udev-basics/Makefile b/linux-basics/udev-basics/Makefile
index 4663d52..d641258 100644
--- a/linux-basics/udev-basics/Makefile
+++ b/linux-basics/udev-basics/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/linux-basics/udev-basics/pres_udev_en.tex b/linux-basics/udev-basics/pres_udev_en.tex
index 5d8eacc..f08a35a 100644
--- a/linux-basics/udev-basics/pres_udev_en.tex
+++ b/linux-basics/udev-basics/pres_udev_en.tex
@@ -1,51 +1,16 @@
-\documentclass[11pt]{beamer}
-
-%\usepackage{ngerman}
-\usepackage{times}
-\usepackage{graphicx}
-\usepackage{pgf,pgfarrows,pgfnodes,pgfautomata,pgfheaps}
-\usepackage{amsmath,amssymb}
-\usepackage[latin1]{inputenc}
-\usepackage{listings,color}
-\definecolor{lbcolor}{RGB}{255,210,150}
-\lstset{
- language=C,
- numbers=left,
- stepnumber=1,
- numbersep=5pt,
- numberstyle=\tiny,
- breaklines=true,
- breakautoindent=true,
- postbreak=\space,
- tabsize=2,
- basicstyle=\ttfamily\footnotesize,
- showspaces=false,
- showstringspaces=false,
- extendedchars=true,
- backgroundcolor=\color{lbcolor},
- keywordstyle=\bf ,
- commentstyle=\color{green},
- stringstyle=\color{red}
-}
-
-\mode<presentation>
-{
- \usetheme{linutronix}
-}
-
% on the following slides, include icon in the left sidebar
\def\lximg{/usr/share/lx/icons/fueller.png}
-\title{The UDEV Daemon}
-\institute{Linutronix GmbH}
-
-\begin{document}
+\input{configpres}
-\frame{ \titlepage }
+\title{The UDEV Daemon}
+\maketitle
% stop displaying 'fueller.png' on the following slides
\def\lximg{none}
+\subsection{UDEV}
+
\begin{frame}
\frametitle{What is UDEV?}
\begin{itemize}
@@ -101,6 +66,7 @@ udevadm monitor
\end{verbatim}
\end{frame}
+\subsubsection{UDEV rules}
\begin{frame}
\frametitle{Writing UDEV rules}
\begin{itemize}
@@ -168,11 +134,12 @@ Assignments:
\end{verbatim}
\end{frame}
-\section*{sources}
+\subsubsection{sources}
\begin{frame}
\begin{thebibliography}{1}
\bibitem{udev} http://reactivated.net/writing\_udev\_rules.html
\bibitem{manudev} man udev
\end{thebibliography}
\end{frame}
-\end{document}
+
+\input{tailpres}
diff --git a/linux-basics/what-is-linux/Makefile b/linux-basics/what-is-linux/Makefile
index 4663d52..d641258 100644
--- a/linux-basics/what-is-linux/Makefile
+++ b/linux-basics/what-is-linux/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/linux-basics/what-is-linux/pres_what-is-linux_de.tex b/linux-basics/what-is-linux/pres_what-is-linux_de.tex
index 84af466..4283349 100644
--- a/linux-basics/what-is-linux/pres_what-is-linux_de.tex
+++ b/linux-basics/what-is-linux/pres_what-is-linux_de.tex
@@ -1,19 +1,11 @@
-\documentclass{beamer}
-\usetheme{linutronix}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{pgf}
-\usepackage{graphicx}
+\input{configpres}
\title{Was ist Linux?}
-%% \author{Hans-Jürgen Koch}
-\institute{Linutronix GmbH}
-
-\begin{document}
-
\maketitle
-\section{Entstehung}
+\subsection{Was ist Linux?}
+
+\subsubsection{Entstehung}
\begin{frame}
\begin{figure}[h]
\centering
@@ -61,7 +53,7 @@ Linus Torvalds (1991 / Minix newsgroup)
\end{figure}
\end{frame}
-\section{Linux, GNU/Linux, \dots}
+\subsubsection{Linux, GNU/Linux, \dots}
\begin{frame}
\frametitle{Begriffsdefinition}
\begin{itemize}
@@ -94,7 +86,7 @@ GNU seit 1984, bestrebt Entwicklung eines 'UNIX-like OS'
komplette Liste: http://directory.fsf.org/GNU/
\end{frame}
-\section{Benutzerscnittstellen}
+\subsubsection{Benutzerscnittstellen}
\begin{frame}
\begin{description}
\item[textbasiert] bash, zsh, korn-shell, \dots
@@ -147,7 +139,7 @@ komplette Liste: http://directory.fsf.org/GNU/
\end{description}
\end{frame}
-\section{Distributionen}
+\subsubsection{Distributionen}
\begin{frame}
\frametitle{Begriffsdefinition}
Eine klassische Linux Distribution assistiert den Benutzer
@@ -169,7 +161,7 @@ Eine klassische Linux Distribution assistiert den Benutzer
\end{itemize}
\end{frame}
-\section{Linux im Alltag}
+\subsubsection{Linux im Alltag}
\begin{frame}[fragile]
\frametitle{unterstützte Architekturen}
\begin{verbatim}
@@ -193,4 +185,4 @@ x86 m68knommu mn10300 s390 sparc
\end{itemize}
\end{frame}
-\end{document}
+\input{tailpres}
diff --git a/pres_master.tex b/pres_master.tex
new file mode 100644
index 0000000..bfcfa78
--- /dev/null
+++ b/pres_master.tex
@@ -0,0 +1,47 @@
+\input{configmasterpres}
+\input{./linux-basics/section}
+\input{./linux-basics/what-is-linux/pres_what-is-linux_de.tex}
+\input{./linux-basics/important-tools/pres_important_tools_de.tex}
+\input{./linux-basics/linux-processes/pres_linux-processes_en.tex}
+\input{./linux-basics/boot-process/pres_boot-process_de.tex}
+\input{./linux-basics/filesystem-structure/pres_file-system-structure_de.tex}
+\input{./linux-basics/filesystems/pres_filesystems_en.tex}
+\input{./linux-basics/networking/pres_networking_en.tex}
+\input{./linux-basics/package-management/pres_packaging_en.tex}
+\input{./linux-basics/sh-programming/pres_sh-programming_de.tex}
+\input{./linux-basics/udev-basics/pres_udev_en.tex}
+\input{./linux-basics/licenses/pres_licenses_en.tex}
+
+\input{./application-devel/section}
+\input{./application-devel/devel-environment/pres_devel-environment_de.tex}
+\input{./application-devel/devel-scenarios/pres_devel_scenarios_de.tex}
+\input{./application-devel/embedded-devel/pres_embedded-devel_de.tex}
+\input{./application-devel/app-debugging/pres_app-debugging_de}
+\input{./application-devel/cross-devel/pres_cross-devel_de}
+\input{./application-devel/cross-devel/pres_cross-devel-ppc-qemu_de}
+\input{./application-devel/posix-ipc/pres_posix_ipc_de.tex}
+
+\input{./frameworks/section}
+\input{./frameworks/middleware/pres_middleware.tex}
+
+\input{./protocols/section}
+\input{./protocols/socketcan/pres_socketcan_de.tex}
+
+\input{./kernel-devel/section.tex}
+\input{./kernel-devel/kernel-basics/pres_kernel-basics_de.tex}
+\input{./kernel-devel/module-basics/pres_module-basics_de.tex}
+\input{./kernel-devel/char-device/pres_char-device_de.tex}
+\input{./kernel-devel/linux-mm-basics/pres_linux-mm-basics_en.tex}
+\input{./kernel-devel/uio-driver/pres_uio-driver_en.tex}
+
+\input{./flash-memory/section}
+\input{./flash-memory/mtd/pres_mtd_de.tex}
+\input{./flash-memory/flash-filesystems/pres_flashfilesystems_en.tex}
+\input{./flash-memory/ubi/pres_ubi_de.tex}
+
+\input{./realtime/section}
+\input{./realtime/rt-basics/pres_rt-basics_de.tex}
+\input{./realtime/rt-specialties/pres_rt-specialties_de.tex}
+\input{./realtime/rt-app-basics/pres_rt-app-basics_en.tex}
+
+\input{tailmasterpres}
diff --git a/pres_template.tex b/pres_template.tex
new file mode 100644
index 0000000..b69377a
--- /dev/null
+++ b/pres_template.tex
@@ -0,0 +1,21 @@
+\input{configpres}
+
+\subsection{Debugging}
+
+\title{\lq Debugging\rq}
+\maketitle
+
+\subsubsection{neues Kapitel}
+\begin{frame}
+\frametitle{neues, buntes}
+\begin{block}{bunter Block}
+\begin{enumeration}
+\item ois
+\item zwoi
+\item gsuffa
+\item \dots
+\end{enumeration}
+\end{block}
+\end{frame}
+
+\input{tailconfig}
diff --git a/protocols/Makefile b/protocols/Makefile
index 72cada2..0a202ea 100644
--- a/protocols/Makefile
+++ b/protocols/Makefile
@@ -1,4 +1,4 @@
-SUBDIRS = `ls -1`
+SUBDIRS = `ls -1 | grep -v *.tex | grep -v Makefile | grep -v TODO`
all clean::
for dir in $(SUBDIRS) ; do \
diff --git a/protocols/section.tex b/protocols/section.tex
new file mode 100644
index 0000000..a3a1c82
--- /dev/null
+++ b/protocols/section.tex
@@ -0,0 +1 @@
+\section{Protokolle}
diff --git a/protocols/socketcan/Makefile b/protocols/socketcan/Makefile
index 4663d52..d641258 100644
--- a/protocols/socketcan/Makefile
+++ b/protocols/socketcan/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/protocols/socketcan/pres_socketcan_de.tex b/protocols/socketcan/pres_socketcan_de.tex
index d57d079..16d0002 100644
--- a/protocols/socketcan/pres_socketcan_de.tex
+++ b/protocols/socketcan/pres_socketcan_de.tex
@@ -1,57 +1,16 @@
-\documentclass[11pt]{beamer}
-
-%\usepackage{ngerman}
-\usepackage{times}
-\usepackage{graphicx}
-\usepackage{pgf,pgfarrows,pgfnodes,pgfautomata,pgfheaps}
-\usepackage{amsmath,amssymb}
-\usepackage[utf8]{inputenc}
-\usepackage{listings,color}
-\definecolor{lbcolor}{RGB}{255,210,150}
-\lstset{
- language=C,
- numbers=left,
- stepnumber=1,
- numbersep=5pt,
- numberstyle=\tiny,
- breaklines=true,
- breakautoindent=true,
- postbreak=\space,
- tabsize=2,
- basicstyle=\ttfamily\fontsize{7}{9}\selectfont,
- showspaces=false,
- showstringspaces=false,
- extendedchars=true,
- backgroundcolor=\color{lbcolor},
- keywordstyle=\bf ,
- commentstyle=\color{green},
- stringstyle=\color{red}
-}
-
-\mode<presentation>
-{
- \usetheme{linutronix}
-}
-
% on the following slides, include icon in the left sidebar
\def\lximg{/usr/share/lx/icons/fueller.png}
-\title{Can unter Linux: SocketCAN}
-\institute{Linutronix GmbH}
-
-\begin{document}
+\input{configpres}
-\frame{ \titlepage }
+\title{SocketCAN}
+\maketitle
% stop displaying 'fueller.png' on the following slides
\def\lximg{none}
-%\AtBeginSection[]
-%{
-% \begin{frame}<beamer>
-% \tableofcontents[currentsection,currentsubsection]
-% \end{frame}
-%}
+\subsection{SocketCAN}
+
\begin{frame}
\frametitle{Übersicht}
\begin{itemize}
@@ -87,6 +46,7 @@ vcan0 Link encap:UNSPEC Hardware Adresse 00-00-00-00-00
\end{verbatim}
\end{frame}
+\subsubsection{Tools}
\begin{frame}[fragile]
\frametitle{cansend / candump}
cansend:
@@ -131,6 +91,7 @@ cansniffer vcan0:
\end{verbatim}
\end{frame}
+\subsubsection{Programmbeispiel}
\begin{frame}[fragile]
\frametitle{Programmierbeispiel: can example}
\begin{lstlisting}
@@ -182,6 +143,7 @@ Received -> 22
\end{verbatim}
\end{frame}
+\subsubsection{Logger}
\begin{frame}[fragile]
\frametitle{canlogserver}
\begin{verbatim}
@@ -203,4 +165,5 @@ Escape character is '^]'.
(1289664133.692351) vcan0 42A#04
\end{verbatim}
\end{frame}
-\end{document}
+
+\input{tailpres}
diff --git a/realtime/Makefile b/realtime/Makefile
index 72cada2..0a202ea 100644
--- a/realtime/Makefile
+++ b/realtime/Makefile
@@ -1,4 +1,4 @@
-SUBDIRS = `ls -1`
+SUBDIRS = `ls -1 | grep -v *.tex | grep -v Makefile | grep -v TODO`
all clean::
for dir in $(SUBDIRS) ; do \
diff --git a/realtime/rt-app-basics/Makefile b/realtime/rt-app-basics/Makefile
index 4663d52..d641258 100644
--- a/realtime/rt-app-basics/Makefile
+++ b/realtime/rt-app-basics/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/realtime/rt-app-basics/pres_rt-app-basics_en.tex b/realtime/rt-app-basics/pres_rt-app-basics_en.tex
index 6179851..90b2ce3 100644
--- a/realtime/rt-app-basics/pres_rt-app-basics_en.tex
+++ b/realtime/rt-app-basics/pres_rt-app-basics_en.tex
@@ -1,70 +1,17 @@
-\documentclass[11pt]{beamer}
-
-%\usepackage{ngerman}
-\usepackage{times}
-\usepackage{graphicx}
-\usepackage{pgf,pgfarrows,pgfnodes,pgfautomata,pgfheaps}
-\usepackage{amsmath,amssymb}
-\usepackage[latin1]{inputenc}
-\usepackage{listings,color}
-\definecolor{lbcolor}{RGB}{255,210,150}
-\lstset{
- language=C,
- numbers=left,
- stepnumber=1,
- numbersep=5pt,
- numberstyle=\tiny,
- breaklines=true,
- breakautoindent=true,
- postbreak=\space,
- tabsize=2,
- basicstyle=\ttfamily\footnotesize,
- showspaces=false,
- showstringspaces=false,
- extendedchars=true,
- backgroundcolor=\color{lbcolor},
- keywordstyle=\bf ,
- commentstyle=\color{green},
- stringstyle=\color{red}
-}
-
-\mode<presentation>
-{
- \usetheme{linutronix}
-}
-
% on the following slides, include icon in the left sidebar
\def\lximg{/usr/share/lx/icons/fueller.png}
-\title{Realtime application development using Linux-RT\_PREEMPT}
-\institute{Linutronix GmbH}
-
-\begin{document}
+\input{configpres}
-\frame{ \titlepage }
+\title{Realtime application development using Linux-RT\_PREEMPT}
+\maketitle
% stop displaying 'fueller.png' on the following slides
\def\lximg{none}
-%\AtBeginSection[]
-%{
-% \begin{frame}<beamer>
-% \tableofcontents[currentsection,currentsubsection]
-% \end{frame}
-%}
-
-\AtBeginSubsection[]
-{
- \begin{frame}<beamer>
- \tableofcontents[currentsection,currentsubsection]
- \end{frame}
-}
-
-\begin{frame}
- \tableofcontents
-\end{frame}
+\subsection{RT\_PREEMPT Realtime development}
-\section{Basics}
+\subsubsection{Basics}
\begin{frame}[fragile]
\frametitle{Check sched\_rt\_runtime\_us!!}
\begin{verbatim}
@@ -125,7 +72,7 @@ for (i = 0; i < SAVE_STACK_SIZE; i += sysconf(_SC_PAGESIZE))
\end{lstlisting}
\end{frame}
-\section{Clocks and Timers}
+\subsubsection{Clocks and Timers}
\begin{frame}
\frametitle{Clocks: Basic}
@@ -207,7 +154,7 @@ int main(void)
\end{lstlisting}
\end{frame}
-\section{Locking}
+\subsubsection{Locking}
\begin{frame}
\frametitle{Locking}
\begin{itemize}
@@ -237,7 +184,7 @@ pthread_mutex_destroy(&master_lock);
\end{lstlisting}
\end{frame}
-\section{Signalling}
+\subsubsection{Signalling}
\begin{frame}
\frametitle{Signalling mechanisms}
\begin{itemize}
@@ -294,7 +241,7 @@ pthread_mutex_unlock(&mutex);
\end{lstlisting}
\end{frame}
-\section*{sources}
+\subsubsection{sources}
\begin{frame}
\frametitle{sources}
\small
@@ -305,4 +252,4 @@ pthread_mutex_unlock(&mutex);
\end{thebibliography}
\end{frame}
-\end{document}
+\input{tailpres}
diff --git a/realtime/rt-basics/Makefile b/realtime/rt-basics/Makefile
index 4663d52..d641258 100644
--- a/realtime/rt-basics/Makefile
+++ b/realtime/rt-basics/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/realtime/rt-basics/handout_rt-basics_de.tex b/realtime/rt-basics/handout_rt-basics_de.tex
index 8d98ccc..dd775b6 100644
--- a/realtime/rt-basics/handout_rt-basics_de.tex
+++ b/realtime/rt-basics/handout_rt-basics_de.tex
@@ -1,16 +1,10 @@
-\documentclass{lxarticle}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{lxheaders}
-\usepackage{lxextras}
+\input{confighandout}
-\begin{document}
+\subsection{Realtime Linux}
-\section*{Realtime Linux}
+\subsubsection{Grundlagen}
-\subsection*{Grundlagen}
-
-\subsubsection*{Was ist Echtzeit?}
+\paragraph{Was ist Echtzeit?}
Vor der Betrachtung verschiedener Ansätze, Linux echtzeitfähig zu machen, ist es
notwendig, einige grundlegende Begrifflichkeiten zur erläutern:
\begin{itemize}
@@ -24,14 +18,14 @@ Auftreten eines Events und der Reaktion auf dieses Event.
\item Jitter: Mit Jitter bezeichnet man die Varianz der Latenzzeit.
\end{itemize}
-\subsubsection*{Anwendungsbereiche}
+\paragraph{Anwendungsbereiche}
Die wohl gängigsten Anwendungsbereiche für Echtzeitsysteme sind die
Steuerungs- und Automatisierungstechnik, Multimediasysteme und die Luft- und
Raumfahrttechnik. Ein weiteres interessantes Einsatzgebiet stellt die
Finanzdienstleistung dar. Hier geht es insbesondere um die zeitgenaue,
zuverlässige Abwicklung von Finanztransaktionen über hochverteilte Systeme.
-\subsubsection*{Anforderungen an ein Echtzeitsystem}
+\paragraph{Anforderungen an ein Echtzeitsystem}
Ein Echtzeitsystem muß in der Lage sein, in einem garantierten Zeitrahmen auf
ein Ereignis zu reagieren. Es muß also möglich sein, in möglichst kurzer Zeit
von einer niederprioren Task auf eine hochpriore Task umzuschalten, falls diese
@@ -53,8 +47,8 @@ Prioritätsgrenze festgelegt. Jede Task, die die Resource belegt, wird auf die
Prioritätsgrenze der Resource angehoben.
\end{itemize}
-\subsection*{Realtime Linux Varianten}
-\subsubsection*{Historisches zu Echtzeitlinux}
+\subsubsection{Realtime Linux Varianten}
+\paragraph{Historisches zu Echtzeitlinux}
Im Gegensatz zu traditionellen Echtzeitsystem wurde Linux ursprünglich nicht als
solches designt. Als General Purpose Operating System wurde Linux auf Fairness
und Durchsatz optimiert. Linux echtzeitfähig zu machen, bedeutet also, ein
@@ -73,7 +67,7 @@ und ist die Variante, die von den Linux Entwicklern zur Integration in den
Hauptzweig von Linux abgenickt wurde.
\end{itemize}
-\subsubsection*{RTAI}
+\paragraph{RTAI}
Das Realtime Application Interface (RTAI) ist eine Entwicklung der Technischen
Universität Mailand und entstand unter der Schirmherrschaft von Professor Paolo
Mantegazza. Oberstes Designziel von RTAI ist und war es, die kleinstmöglichen
@@ -90,7 +84,7 @@ x86\_64 und diverse ARM Plattformen).
RTAI ist ein typischer Vertreter des Dual Kernel Ansatzes. Abbildung
\ref{img:rtai} zeigt die Funktionsweise von RTAI.
-\subsubsection*{Xenomai}
+\paragraph{Xenomai}
Das Xenomai Projekt wurde im Jahre 2001 gegründet. Im Gegensatz zu RTAI erlaubt
Xenomai auch Echtzeit im Userpace (RTAI erlaubt dies nur sehr eingeschränkt).
Die Besonderheit von Xenomai sind die sogenannten Skins, die es vereinfachen sollen,
@@ -124,7 +118,7 @@ Komponenten. Abbildung \ref{img:ipipe} zeigt die Funktionsweise von IPIPE.
\label{img:ipipe}
\end{figure}
-\subsubsection*{Preempt RT}
+\paragraph{Preempt RT}
Der Realtime Preemption Patch entstand ursprünglich aus Arbeiten von Ingo Molnar
und Thomas Gleixner. Beide sind bis zum heutigen Zeitpunkt die treibenden Kräfte
bei der Entwicklung von Preempt RT.
@@ -159,7 +153,7 @@ anderer Projekte haben die Vorzüge von Preempt RT bereits erkannt. Die Roadmap
für Xenomai 3 sieht Preempt RT Support vor. Dies würde den Einsatz von Xenomai
Skins auf Preempt RT Kerneln ermgöglichen.
-\subsection*{Kontrollfragen}
+\subsubsection{Kontrollfragen}
\begin{enumerate}
\item Was sind die wichtigsten Anforderungen an ein Echtzeitsystem?
@@ -170,4 +164,4 @@ beschriebenen Ansätze verfolgen Sie?
spezielle API benötigt?
\end{enumerate}
-\end{document}
+\input{tailhandout}
diff --git a/realtime/rt-basics/images/rtai.dia~ b/realtime/rt-basics/images/rtai.dia~
deleted file mode 100644
index c4024ff..0000000
--- a/realtime/rt-basics/images/rtai.dia~
+++ /dev/null
Binary files differ
diff --git a/realtime/rt-basics/pres_rt-basics_de.tex b/realtime/rt-basics/pres_rt-basics_de.tex
index 128b115..66a78eb 100644
--- a/realtime/rt-basics/pres_rt-basics_de.tex
+++ b/realtime/rt-basics/pres_rt-basics_de.tex
@@ -1,20 +1,10 @@
-\documentclass{beamer}
-\usetheme{linutronix}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{pgf}
-\usepackage{graphicx}
-\usepackage{lxextras}
+\input{configpres}
\title{Block \lq Realtime Linux\rq}
-\institute{Linutronix GmbH}
-
-\begin{document}
-
\maketitle
+\subtitle{Echtzeit}
-% ----- Slide ------------------
\begin{frame}
\frametitle{Was ist Echtzeit?}
\begin{itemize}
@@ -58,6 +48,7 @@ Nicht Einhalten des korrekten Zeitrahmens führt zu einem Fehler!
\end{itemize}
\end{frame}
+\subsubsection{Priority Inversion}
\begin{frame}
\frametitle{Priority Inversion}
\begin{figure}[h]
@@ -66,6 +57,7 @@ Nicht Einhalten des korrekten Zeitrahmens führt zu einem Fehler!
\end{figure}
\end{frame}
+\subsubsection{Linux und Echtzeit}
\begin{frame}
\frametitle{Linux und Echtzeit}
\begin{figure}[h]
@@ -210,5 +202,4 @@ können. Raw Spinlocks ersetzen die ursprüngliche Spinlock
\end{figure}
\end{frame}
-
-\end{document}
+\input{tailpres}
diff --git a/realtime/rt-specialties/Makefile b/realtime/rt-specialties/Makefile
index 4663d52..d641258 100644
--- a/realtime/rt-specialties/Makefile
+++ b/realtime/rt-specialties/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/realtime/rt-specialties/handout_rt-specialties_de.tex b/realtime/rt-specialties/handout_rt-specialties_de.tex
index 33dc9b6..54771ca 100644
--- a/realtime/rt-specialties/handout_rt-specialties_de.tex
+++ b/realtime/rt-specialties/handout_rt-specialties_de.tex
@@ -1,13 +1,8 @@
-\documentclass{lxarticle}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{lxheaders}
-\usepackage{lxextras}
+\input{confighandout}
+\subsection{RT\_PREEMPT}
-\begin{document}
-
-\section*{Anwendung des Preempt RT Patches}
-\subsection*{Besorgen und Anwenden des Patches}
+\subsubsection{Anwendung des Preempt RT Patches}
+\paragraph{Besorgen und Anwenden des Patches}
Preempt RT wird als Patch gegen den Mainline Linux Kernel gepflegt.
Unter:\newline
http://www.kernel.org/pub/linux/kernel/projects/rt sind die aktuellsten Patche
@@ -39,7 +34,7 @@ cd linux-2.6.29.5-rt21
ketchup -f --no-gpg 2.6.29.5-rt21
\end{lstlisting}
-\subsection*{Konfigurieren und Übersetzen eines Preempt RT Kernels}
+\paragraph{Konfigurieren und Übersetzen eines Preempt RT Kernels}
Die Konfiguration und das Übersetzen machen keinen Unterschied zu Linux ohne
Preempt RT Patch:
\begin{lstlisting}
@@ -83,8 +78,9 @@ make O=../build modules
make O=../build install
make O=../build modules_install
\end{lstlisting}
-\section*{Testen eines Preempt RT Systems}
-\subsection*{RT Tests}
+
+\subsubsection{Testen eines Preempt RT Systems}
+\paragraph{RT Tests}
Die RT Tests sind eine Sammlung von Programmen, zur Validierung der
Eigenschaften von Echtzeitsystemen. Die RT Tests umfassen folgende Tools:
\begin{itemize}
@@ -104,7 +100,7 @@ git-clone git://git.kernel.org/pub/scm/linux/kernel\
cd rt-tests
make
\end{lstlisting}
-\subsection*{Cyclictest}
+\subparagraph{Cyclictest}
Cyclictest ist die wohl meistgenutzte Testsoftware auf Preempt RT Systemen. Mit
Cyclictest kann eine bestimmte Anzahl von Timertasks mit einem definierten
Interval aufgesetzt werden. Für diese Tasks wird kontinuierlich die Abweichung
@@ -128,7 +124,7 @@ T: 1 ( 2122) P:79 I:2500 C: 1007 Min: 47 Act: 76 Avg: 77 Max: 130
T: 2 ( 2123) P:78 I:3000 C: 841 Min: 54 Act: 76 Avg: 82 Max: 136
T: 3 ( 2124) P:77 I:3500 C: 723 Min: 67 Act: 95 Avg: 96 Max: 177
\end{lstlisting}
-\subsection*{Lastszenarien}
+\paragraph{Lastszenarien}
Um eine Aussage über das Echtzeitverhaltens treffen zu können, interessiert in
der Hauptsache das Verhalten in Worst-Case Szenarien (hohe CPU Last, hohe
Interruptlast). Ein ausgezeichnetes Werkzeug, um CPU Last zu erzeugen, ist
@@ -142,7 +138,7 @@ Rechner erzeugen. Ein Floodping schickt eine große Anzahl von ICMP Paketen in
kurzer Zeit. Dies erzeugt eine hohe Anzahl von Netzwerkinterrupts. Um Floodpings
zu generieren muß das Programm ping mit Rootrechten und mit der Option -f
ausgeführt werden.
-\subsection*{Pitfall}
+\subparagraph{Pitfall}
Ein sehr häufig gemeldetes Phänomen bei Testläufen von Cyclictest mit einem
Floodping als Lastszenario, sind extrem große Ausreißer in der Größenordnung von
50ms. Dies ist auf ein ''Feature'' aktueller Preempt RT Kernel zurückzuführen.
@@ -166,8 +162,8 @@ Zum Deaktivieren dieser Funktion muß Folgendes getan werden:
\begin{lstlisting}
echo -1 > /proc/sys/kernel/sched_rt_runtime_us
\end{lstlisting}
-\section*{Erstellen einer Realtime Task für Preempt RT}
-\subsection*{Schedulingklassen / Prioritäten}
+\subsubsection{Erstellen einer Realtime Task für Preempt RT}
+\paragraph{Schedulingklassen / Prioritäten}
Eine Realtime Applikation auf Preempt RT ist eine POSIX Realtime Applikation.
POSIX sieht für Echtzeitapplikationen folgende Schedulingstrategien vor:
\begin{itemize}
@@ -176,7 +172,7 @@ POSIX sieht für Echtzeitapplikationen folgende Schedulingstrategien vor:
\end{itemize}
Echtzeitpriorität bekommt eine Applikation nur dann, wenn dies explizit
gewünscht wird. Hierzu ist die Funktion sched\_setscheduler() vorgesehen.
-\subsection*{Beispiel einer Echtzeitapplikation}
+\paragraph{Beispiel einer Echtzeitapplikation}
Das folgende Beispiel zeigt eine einfache POSIX Realtimeapplikation:
\begin{lstlisting}
/*
@@ -239,8 +235,8 @@ undeterministisches Zeitverhalten verursachen
Eine Ausgezeichnete Einführung zum Erstellen von Echtzeitapplikationen und zur
Verwendung von Preempt RT findet sich unter:\newline
http://rt.wiki.kernel.org
-\subsection*{Tracing / Latenzen aufspüren}
-\subsubsection*{FTrace}
+\paragraph{Tracing / Latenzen aufspüren}
+\subparagraph{FTrace}
Ein hervorragendes Werkzeug, um kernelseitige Codepfade aufzuspüren, die lange
Latenzzeiten verursachen, ist Ftrace. Ftrace wird über DebugFS, einem virtuellen
Dateisystem, gesteuert und platziert dort auch seine Ausgaben. Die einfachste
@@ -248,7 +244,7 @@ Methode, FTrace zu verwenden ist Cyclictest. Cyclictest biete bereits einige
Optionen, um FTrace zu steuern. Die Option -f schällt Cyclictests Ftrace
Support an, -b <max\_latency> veranlaßt Cyclictest, bei Überschreiten einer
maximalen Latenzzeit, abzubrechen und einen Trace zu triggern.
-\subsubsection*{Kerneloptionen für FTrace}
+\subparagraph{Kerneloptionen für FTrace}
Um FTrace verwenden zu können, müssen beim Konfigurieren des Kernels einige
unter dem Menupunkt ''Kernel hacking-->Tracers'' einige Optionen aktiviert werden:
\begin{itemize}
@@ -257,7 +253,7 @@ unter dem Menupunkt ''Kernel hacking-->Tracers'' einige Optionen aktiviert werde
Tracetyp kann cyclictest über die Commandline mitgegeben werden, siehe
cyclictest -h. Default ist der Event Tracer)
\end{itemize}
-\subsubsection*{Beispiel eines Traces}
+\subparagraph{Beispiel eines Traces}
Das Erstellen eines Traces mit cyclictest läßt sich am Besten mit einem Beispiel
erläutern:
\begin{lstlisting}
@@ -292,7 +288,7 @@ IRQ-129-772 [000] 4154503386.851234: timer_interrupt<-ret_from
[...]
\end{lstlisting}
-\subsection*{Kontrollfragen}
+\paragraph{Kontrollfragen}
\begin{itemize}
\item Welche Optionen sollten beim Übersetzen eines Preempt RT Kernels
mindestens gesetzt sein?
@@ -302,4 +298,5 @@ als Lastszenario? Wie kann dieser umgangen werden?
\item Welche 3 Schritte sind notwendig, um das deterministische Zeitverhalten
einer Applikation zu garantieren?
\end{itemize}
-\end{document}
+
+\input{tailhandout}
diff --git a/realtime/rt-specialties/images/menu_rt_001.png b/realtime/rt-specialties/images/menu_rt_001.png
deleted file mode 100644
index 27f26cd..0000000
--- a/realtime/rt-specialties/images/menu_rt_001.png
+++ /dev/null
Binary files differ
diff --git a/realtime/rt-specialties/pres_rt-specialties_de.tex b/realtime/rt-specialties/pres_rt-specialties_de.tex
index 046521d..85cf301 100644
--- a/realtime/rt-specialties/pres_rt-specialties_de.tex
+++ b/realtime/rt-specialties/pres_rt-specialties_de.tex
@@ -1,20 +1,11 @@
-\documentclass{beamer}
-\usetheme{linutronix}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{pgf}
-\usepackage{graphicx}
-\usepackage{lxextras}
-
-\title{Block \lq Anwendung des Preempt RT Patches\rq}
-\institute{Linutronix GmbH}
-
-\begin{document}
+\input{configpres}
+\title{\lq Anwendung des Preempt RT Patches\rq}
\maketitle
+\subsection{PREEMPT\_RT}
-% ----- Slide ------------------
+\subsubsection{Download und Anwenden}
\begin{frame}[fragile]
\frametitle{Besorgen und Anwenden des Preempt RT Patches}
\begin{lstlisting}
@@ -43,6 +34,7 @@ ketchup -f --no-gpg 2.6.29.5-rt21
\end{lstlisting}
\end{frame}
+\subsubsection{Konfiguration}
\begin{frame}[fragile]
\frametitle{Konfigurieren und Übersetzen eines Preempt RT Kernels}
\begin{overprint}
@@ -88,6 +80,7 @@ make O=../build modules_install
\end{overprint}
\end{frame}
+\subsubsection{Verifikation}
\begin{frame}
\frametitle{Testen eines Preempt RT Systems}
RT Tests:
@@ -133,6 +126,7 @@ cat /proc/sys/kernel/sched_rt_runtime_us
\end{figure}
\end{frame}
+\subsubsection{Applikationsentwicklung}
\begin{frame}
\frametitle{Echtzeitapplikationen mit Preempt RT}
\begin{columns}
@@ -190,6 +184,7 @@ void stack_prefault(void) {
\end{overprint}
\end{frame}
+\subsubsection{Tracing / Latency hunting}
\begin{frame}[fragile]
\frametitle{Tracing / Latency hunting}
\begin{itemize}
@@ -228,4 +223,5 @@ IRQ-129-772 [000] 4154503386.851189: task_setprio<-__rt_mut
[...]
\end{lstlisting}
\end{frame}
-\end{document}
+
+\input{tailpres}
diff --git a/realtime/section.tex b/realtime/section.tex
new file mode 100644
index 0000000..d593283
--- /dev/null
+++ b/realtime/section.tex
@@ -0,0 +1 @@
+\section{Echtzeit}
diff --git a/tailhandout.tex b/tailhandout.tex
new file mode 100644
index 0000000..6b47932
--- /dev/null
+++ b/tailhandout.tex
@@ -0,0 +1 @@
+\end{document}
diff --git a/tailmasterhandout.tex b/tailmasterhandout.tex
new file mode 100644
index 0000000..6b47932
--- /dev/null
+++ b/tailmasterhandout.tex
@@ -0,0 +1 @@
+\end{document}
diff --git a/tailmasterpres.tex b/tailmasterpres.tex
new file mode 100644
index 0000000..6b47932
--- /dev/null
+++ b/tailmasterpres.tex
@@ -0,0 +1 @@
+\end{document}
diff --git a/tailpres.tex b/tailpres.tex
new file mode 100644
index 0000000..f677a95
--- /dev/null
+++ b/tailpres.tex
@@ -0,0 +1,8 @@
+\begin{frame}
+Vielen Dank für Ihre Aufmerksamkeit
+\begin{block}{Linutronix GmbH}
+Auf dem Berg 3, 88690 Uhldingen-Mühlhofen
+\end{block}
+\end{frame}
+
+\end{document}