diff --git a/presentations/2-kw-overview/Makefile b/presentations/2-kw-overview/Makefile new file mode 100644 index 0000000..a8a35e5 --- /dev/null +++ b/presentations/2-kw-overview/Makefile @@ -0,0 +1,23 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +SOURCEDIR = source +BUILDDIR = build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile intl + +intl: + @$(SPHINXBUILD) -M gettext "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + sphinx-intl update --language=ja + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/presentations/2-kw-overview/make.bat b/presentations/2-kw-overview/make.bat new file mode 100644 index 0000000..6247f7e --- /dev/null +++ b/presentations/2-kw-overview/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=source +set BUILDDIR=build + +if "%1" == "" goto help + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/presentations/2-kw-overview/source/_static/by.png b/presentations/2-kw-overview/source/_static/by.png new file mode 100644 index 0000000..c8473a2 Binary files /dev/null and b/presentations/2-kw-overview/source/_static/by.png differ diff --git a/presentations/2-kw-overview/source/_static/favicon.ico b/presentations/2-kw-overview/source/_static/favicon.ico new file mode 100644 index 0000000..7743e40 Binary files /dev/null and b/presentations/2-kw-overview/source/_static/favicon.ico differ diff --git a/presentations/2-kw-overview/source/_static/kw.png b/presentations/2-kw-overview/source/_static/kw.png new file mode 100644 index 0000000..f421031 Binary files /dev/null and b/presentations/2-kw-overview/source/_static/kw.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/1-kw-init-template.png b/presentations/2-kw-overview/source/_static/steps-images/1-kw-init-template.png new file mode 100644 index 0000000..87e8205 Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/1-kw-init-template.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/2-kw-config-show-all.png b/presentations/2-kw-overview/source/_static/steps-images/2-kw-config-show-all.png new file mode 100644 index 0000000..3bf2cb8 Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/2-kw-config-show-all.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/3-kw-config-show-build.png b/presentations/2-kw-overview/source/_static/steps-images/3-kw-config-show-build.png new file mode 100644 index 0000000..20c5883 Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/3-kw-config-show-build.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/4-kw-config-change-configuration.png b/presentations/2-kw-overview/source/_static/steps-images/4-kw-config-change-configuration.png new file mode 100644 index 0000000..c0094f5 Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/4-kw-config-change-configuration.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/4-kw-config-change-notification.png b/presentations/2-kw-overview/source/_static/steps-images/4-kw-config-change-notification.png new file mode 100644 index 0000000..9d06e5a Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/4-kw-config-change-notification.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/5-kw-config-change-notification-vs.png b/presentations/2-kw-overview/source/_static/steps-images/5-kw-config-change-notification-vs.png new file mode 100644 index 0000000..777a50a Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/5-kw-config-change-notification-vs.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/conclusion/github.png b/presentations/2-kw-overview/source/_static/steps-images/conclusion/github.png new file mode 100644 index 0000000..57ceb78 Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/conclusion/github.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/conclusion/kw-site.png b/presentations/2-kw-overview/source/_static/steps-images/conclusion/kw-site.png new file mode 100644 index 0000000..32c8ee7 Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/conclusion/kw-site.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/debug/1-dmesg-follow.png b/presentations/2-kw-overview/source/_static/steps-images/debug/1-dmesg-follow.png new file mode 100644 index 0000000..dd46169 Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/debug/1-dmesg-follow.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/debug/2-debug-list.png b/presentations/2-kw-overview/source/_static/steps-images/debug/2-debug-list.png new file mode 100644 index 0000000..1d6345e Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/debug/2-debug-list.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/debug/3-ftrace-with-history.png b/presentations/2-kw-overview/source/_static/steps-images/debug/3-ftrace-with-history.png new file mode 100644 index 0000000..f8842df Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/debug/3-ftrace-with-history.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/debug/4-event-list.png b/presentations/2-kw-overview/source/_static/steps-images/debug/4-event-list.png new file mode 100644 index 0000000..dc33776 Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/debug/4-event-list.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/debug/5-events.png b/presentations/2-kw-overview/source/_static/steps-images/debug/5-events.png new file mode 100644 index 0000000..534e480 Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/debug/5-events.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/debug/6-help.png b/presentations/2-kw-overview/source/_static/steps-images/debug/6-help.png new file mode 100644 index 0000000..cdfbc03 Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/debug/6-help.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/deploy/2-kw-deploy-list.png b/presentations/2-kw-overview/source/_static/steps-images/deploy/2-kw-deploy-list.png new file mode 100644 index 0000000..660fdb4 Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/deploy/2-kw-deploy-list.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/deploy/3-deploy-help.png b/presentations/2-kw-overview/source/_static/steps-images/deploy/3-deploy-help.png new file mode 100644 index 0000000..0a8302c Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/deploy/3-deploy-help.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/deploy/families-min.png b/presentations/2-kw-overview/source/_static/steps-images/deploy/families-min.png new file mode 100644 index 0000000..2eed6c5 Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/deploy/families-min.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/dev-tools/1-email-config.png b/presentations/2-kw-overview/source/_static/steps-images/dev-tools/1-email-config.png new file mode 100644 index 0000000..491bf42 Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/dev-tools/1-email-config.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/dev-tools/2-setup-from-template.png b/presentations/2-kw-overview/source/_static/steps-images/dev-tools/2-setup-from-template.png new file mode 100644 index 0000000..d247e95 Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/dev-tools/2-setup-from-template.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/dev-tools/3-send_patch_config.png b/presentations/2-kw-overview/source/_static/steps-images/dev-tools/3-send_patch_config.png new file mode 100644 index 0000000..26e6b8d Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/dev-tools/3-send_patch_config.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/dev-tools/4-maintainers.png b/presentations/2-kw-overview/source/_static/steps-images/dev-tools/4-maintainers.png new file mode 100644 index 0000000..2d39008 Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/dev-tools/4-maintainers.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/dev-tools/5-explore-generic.png b/presentations/2-kw-overview/source/_static/steps-images/dev-tools/5-explore-generic.png new file mode 100644 index 0000000..4f72fb5 Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/dev-tools/5-explore-generic.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/dev-tools/6-explore-with-context.png b/presentations/2-kw-overview/source/_static/steps-images/dev-tools/6-explore-with-context.png new file mode 100644 index 0000000..03aa494 Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/dev-tools/6-explore-with-context.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/dev-tools/7-explore-headers-only.png b/presentations/2-kw-overview/source/_static/steps-images/dev-tools/7-explore-headers-only.png new file mode 100644 index 0000000..2543cec Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/dev-tools/7-explore-headers-only.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/dev-tools/8-explore-git-log.png b/presentations/2-kw-overview/source/_static/steps-images/dev-tools/8-explore-git-log.png new file mode 100644 index 0000000..3c36451 Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/dev-tools/8-explore-git-log.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/dev-tools/9-explore-help.png b/presentations/2-kw-overview/source/_static/steps-images/dev-tools/9-explore-help.png new file mode 100644 index 0000000..ee1b9ea Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/dev-tools/9-explore-help.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/env/1-create-env.png b/presentations/2-kw-overview/source/_static/steps-images/env/1-create-env.png new file mode 100644 index 0000000..2a86b3c Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/env/1-create-env.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/env/2-use-env-fail.png b/presentations/2-kw-overview/source/_static/steps-images/env/2-use-env-fail.png new file mode 100644 index 0000000..1d982bd Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/env/2-use-env-fail.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/env/3-use-env.png b/presentations/2-kw-overview/source/_static/steps-images/env/3-use-env.png new file mode 100644 index 0000000..4f0ceb1 Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/env/3-use-env.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/env/4-envs-examples.png b/presentations/2-kw-overview/source/_static/steps-images/env/4-envs-examples.png new file mode 100644 index 0000000..43e0c33 Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/env/4-envs-examples.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/env/5-env-destroy.png b/presentations/2-kw-overview/source/_static/steps-images/env/5-env-destroy.png new file mode 100644 index 0000000..9b83e50 Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/env/5-env-destroy.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/kernel-config-manager/1-kernel-config-manager-save.png b/presentations/2-kw-overview/source/_static/steps-images/kernel-config-manager/1-kernel-config-manager-save.png new file mode 100644 index 0000000..42d269b Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/kernel-config-manager/1-kernel-config-manager-save.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/kernel-config-manager/2-list-all.png b/presentations/2-kw-overview/source/_static/steps-images/kernel-config-manager/2-list-all.png new file mode 100644 index 0000000..e27d31e Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/kernel-config-manager/2-list-all.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/kernel-config-manager/3-get-specific-config.png b/presentations/2-kw-overview/source/_static/steps-images/kernel-config-manager/3-get-specific-config.png new file mode 100644 index 0000000..9b92acb Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/kernel-config-manager/3-get-specific-config.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/kernel-config-manager/4-fetch-optmize.png b/presentations/2-kw-overview/source/_static/steps-images/kernel-config-manager/4-fetch-optmize.png new file mode 100644 index 0000000..84d2104 Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/kernel-config-manager/4-fetch-optmize.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/remote/1-add-new-remote.png b/presentations/2-kw-overview/source/_static/steps-images/remote/1-add-new-remote.png new file mode 100644 index 0000000..9ccfac9 Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/remote/1-add-new-remote.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/remote/2-add-default-remote.png b/presentations/2-kw-overview/source/_static/steps-images/remote/2-add-default-remote.png new file mode 100644 index 0000000..1ee11d5 Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/remote/2-add-default-remote.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/remote/3-remove-remote.png b/presentations/2-kw-overview/source/_static/steps-images/remote/3-remove-remote.png new file mode 100644 index 0000000..dccd6e2 Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/remote/3-remove-remote.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/remote/set-local.png b/presentations/2-kw-overview/source/_static/steps-images/remote/set-local.png new file mode 100644 index 0000000..edf1780 Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/remote/set-local.png differ diff --git a/presentations/2-kw-overview/source/_static/steps-images/remote/set-remote.png b/presentations/2-kw-overview/source/_static/steps-images/remote/set-remote.png new file mode 100644 index 0000000..8ced244 Binary files /dev/null and b/presentations/2-kw-overview/source/_static/steps-images/remote/set-remote.png differ diff --git a/presentations/2-kw-overview/source/_static/stop.png b/presentations/2-kw-overview/source/_static/stop.png new file mode 100644 index 0000000..0321fd9 Binary files /dev/null and b/presentations/2-kw-overview/source/_static/stop.png differ diff --git a/presentations/2-kw-overview/source/conf.py b/presentations/2-kw-overview/source/conf.py new file mode 100644 index 0000000..d172624 --- /dev/null +++ b/presentations/2-kw-overview/source/conf.py @@ -0,0 +1,62 @@ +# Configuration file for the Sphinx documentation builder. +# +# This file only contains a selection of the most common options. For a full +# list see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Path setup -------------------------------------------------------------- + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +# import os +# import sys +# sys.path.insert(0, os.path.abspath('.')) + + +# -- Project information ----------------------------------------------------- + +project = 'kw overview' +copyright = '2024, Rodrigo Siqueira' +author = 'Rodrigo Siqueira' + +# The full version, including alpha/beta/rc tags +release = '1.0' + + +# -- General configuration --------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + 'sphinx_revealjs', +] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = [] + + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = 'alabaster' + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + +html_favicon = '_static/favicon.ico' + +# -- Revel JS setup --- +revealjs_static_path = ["_static"] +revealjs_style_theme = "white" diff --git a/presentations/2-kw-overview/source/index.rst b/presentations/2-kw-overview/source/index.rst new file mode 100644 index 0000000..b7c898c --- /dev/null +++ b/presentations/2-kw-overview/source/index.rst @@ -0,0 +1,682 @@ +.. raw:: html + + +
+ +
+ +
+ +================== +kworkflow Overview +================== + +:Released: 2024-12-11 + +Preface +======= + +Introduction +------------ + +Are you considering to write a new script for your workflow? Wait... you +already have a bunch of those scripts? + +Introduction +------------ + +Just STOP for a moment and give a chance for kw... + +.. container:: flex + + .. container:: half + + .. figure:: _static/stop.png + :width: 50% + +What is kw? +----------- + +.. revealjs-fragments:: + + * Everybody who works with Linux Kernel creates their scripts, which means + we have a lot of duplicate effort. What if there is a centralized place to + put all of these common tasks in a way that every kernel developer can + benefit from? + * Also, Linux kernel development has a steep learning curve. Would it be + nice if we could have a way to reduce the learning curve? + +What is kw? +----------- + +It is a set of small software combined to reduce the environment and setup +overhead for developing Linux. + +Part 1: Core features +===================== + +Chapter 1: Install kw +===================== + +Install +-------------- + +1. Clone kworkflow + +.. code-block:: shell + + git clone https://github.com/kworkflow/kworkflow.git + +2. Install + +.. code-block:: shell + + cd kworkflow + ./setup -i + +3. Open a new terminal and check it + +.. code-block:: shell + + kw version + +Chapter 2: kw init +================== + +Configuration files +------------------- + +* kw allows users to change its default behavior via configuration file + (similar to how git works). There is two level of configuration files: global + and local. + +Global & Local config +--------------------- + +* All global configurations are available at `~/.config/kw/`. +* kw local configuration is stored in the `.kw` folder (similar to .git + folder). +* Precedence: Local > Global + +Create a local config folder (.kw) +---------------------------------- + +.. code-block:: shell + + cd linux # Your kernel tree with .config file + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/1-kw-init-template.png + :width: 100% + +Change configurations +--------------------- + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/2-kw-config-show-all.png + :width: 50% + +Example: Change build configuration +----------------------------------- + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/3-kw-config-show-build.png + :width: 50% + +Example: Change build configuration +----------------------------------- + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/4-kw-config-change-configuration.png + :width: 100% + +Example: Enable notifications +----------------------------- + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/4-kw-config-change-notification.png + :width: 100% + +Example: Enable notifications +----------------------------- + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/5-kw-config-change-notification-vs.png + :width: 100% + +Chapter 3: Target - Remote or Local +=================================== + +Setup kw for local deploy +------------------------- + +* You will build and install your custom kernel on the same machine. + +Setup kw for local deploy +------------------------- + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/remote/set-local.png + :width: 50% + +Setup kw for remote deploy +-------------------------- + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/remote/set-remote.png + :width: 50% + +Setup Remote: Add new remote +---------------------------- + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/remote/1-add-new-remote.png + :width: 50% + +Setup Remote: Set default remote and list +----------------------------------------- + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/remote/2-add-default-remote.png + :width: 50% + +Setup Remote: Remove remote +--------------------------- + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/remote/3-remove-remote.png + :width: 50% + +Chapter 4: Managing .config files +================================= + +Overview +-------- + +* The `.config` file holds all the information about what should be compiled or + not during the build process. +* When you have a small config file that works in a target machine, the overall + value of that config file skyrockets. + +Save .config file inside the kernel tree +---------------------------------------- + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/kernel-config-manager/1-kernel-config-manager-save.png + :width: 100% + +List all of the saved config files +---------------------------------- + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/kernel-config-manager/2-list-all.png + :width: 100% + +Get specific config file +------------------------ + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/kernel-config-manager/3-get-specific-config.png + :width: 100% + +Get .config file from remote +---------------------------- + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/kernel-config-manager/4-fetch-optmize.png + :width: 100% + +Chapter 5: Build! +================= + +Just build it! +-------------- + +.. code-block:: shell + + kw build # or kw b + +Get build info +-------------- + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/build/1-build-info.png + :width: 100% + +Kernel Menu +----------- + +Access the kernel configuration menu + +.. code-block:: shell + + kw build --menu # or kw b -n + +Build doc +--------- + +Generate the html doc + +.. code-block:: shell + + kw build --doc # or kw b -d + +Build with llvm +--------------- + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/build/2-enable-llvm.png + :width: 90% + +Other build features +-------------------- + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/build/3-help.png + :width: 100% + + +Deploy your custom kernel +========================= + +Remote deploy: Recap +-------------------- + +Kw can help you to install your new kernel via the deploy feature. Keep in mind +that deploy works based on two different targets: + +1. Remote: Your test machine. +2. Local: It is your host machine. + +Deploy Limitations +------------------ + +* Setup ssh as a root (remote). +* Supported bootloader: Grub. + +Distro support +-------------- + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/deploy/families-min.png + :width: 100% + + +Ok, ship it! Deploy! +-------------------- + +.. code-block:: shell + + kw deploy + +Remote deploy: List +------------------- + +You can list kernel installed via kw by using: + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/deploy/2-kw-deploy-list.png + :width: 100% + + +Remote deploy: Remove +--------------------- + +You can uninstall kernels installed via kw deploy with: + +.. code-block:: shell + + kw deploy --uninstall 6.8.0-ASDN-JUL-30+ + + +Other deploy features +--------------------- + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/deploy/3-deploy-help.png + :width: 100% + +Part 3: kw env +============== + +Create a new env +---------------- + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/env/1-create-env.png + :width: 100% + +Use the new env +--------------- + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/env/2-use-env-fail.png + :width: 100% + +Use the new env +--------------- + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/env/3-use-env.png + :width: 100% + +Example of multiple envs +------------------------ + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/env/4-envs-examples.png + :width: 100% + +Env destroy +----------- + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/env/5-env-destroy.png + :width: 100% + + +Part 4: Debug +============= + +Debug with kw +============= + +dmesg log +--------- + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/debug/1-dmesg-follow.png + :width: 100% + +List of ftrace and events +------------------------- + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/debug/2-debug-list.png + :width: 100% + +Enable ftrace and collect data +------------------------------ + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/debug/3-ftrace-with-history.png + :width: 100% + +List specific event +------------------- + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/debug/4-event-list.png + :width: 100% + +Follow specific event +--------------------- + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/debug/5-events.png + :width: 100% + +Other options +------------- + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/debug/6-help.png + :width: 100% + +Part 5: Development tools +========================= + +send-patch: List configurations +------------------------------- + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/dev-tools/1-email-config.png + :width: 100% + +send-patch: setup from a template +--------------------------------- + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/dev-tools/2-setup-from-template.png + :width: 100% + +send-patch: send patches +------------------------ + +Simulate before send: + +.. code-block:: shell + + kw send-patch --send --simulate --to=some@email.com + +Send patches: + +.. code-block:: shell + + kw send-patch -s .. + kw send-patch -s -3 + +send-patch: send patches +------------------------ + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/dev-tools/3-send_patch_config.png + :width: 100% + +Maintainers +----------- + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/dev-tools/4-maintainers.png + :width: 100% + +Codestyle +--------- + +.. code-block:: shell + + kw c /tmp/0001-drm-rockchip-vop2-Fix-the-mixer-alpha-setup-for-laye.patch + kw codestyle drivers/gpu/drm/amd/display/amdgpu_dm/ + kw c drivers/gpu/drm/amd/amdgpu/sdma_v7_0.c + +Explore all files +----------------- + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/dev-tools/5-explore-generic.png + :width: 100% + +Explore with context +-------------------- + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/dev-tools/6-explore-with-context.png + :width: 100% + +Explore headers +--------------- + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/dev-tools/7-explore-headers-only.png + :width: 100% + +Explore git log +--------------- + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/dev-tools/8-explore-git-log.png + :width: 100% + +Conclusion +========== + +Getting help: CLI +----------------- + +Short help: + +.. code-block:: shell + + kw -h # e.g., kw b -h + +Full man page: + +.. code-block:: shell + + kw --help # e.g., kw b --help + + +Getting help: Online doc +------------------------ + +Visit: https://kworkflow.org + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/conclusion/kw-site.png + :width: 100% + +Contribute +---------- + +.. container:: flex + + .. container:: half + + .. figure:: _static/steps-images/conclusion/github.png + :width: 100% + +Contribute +---------- + +If you want to contribute to kw, take a look at: + +* https://kworkflow.org/content/howtocontribute.html +* https://kworkflow.org/content/developmentworkflow.html +* https://kworkflow.org/content/codingstyle.html + +Thanks +------ +