<commit_before>Kernel Config
=============

https://community.cloud.online.net/t/official-linux-kernel-new-modules-optimizations-hacks/226

The kernel is built with the official mainline kernel, here are the .config files used.

Modifications
-------------

The only things we added are:

- a kernel module to simulate some virtualization features: handling serial console, being able to soft reset a node from the API
- a dts file, so the kernel can understand our hardware

---

Build a custom kernel using Docker
==================================

Run a `make menuconfig` for `.config-3.18-std`

    make menuconfig CONFIG=.config-3.18-std

Build a kernel with `.config-3.17-std` file

    make build CONFIG=.config-3.17-std

Create a new `.config-3.10-new` file from scratch for kernel `3.10`

    make defconfig CONFIG=.config-3.10-new

Debug the build container / run custom command

    make run CONFIG=.config-3.17-std

Build a custom kernel from scratch
==================================

Prerequisites:
--------------

- An arm(hf) compiler:
  - a cross-compiler on non-armhf host, ie `gcc-arm-linux-gnueabihf`
  - a standard compiler from an armhf host (you can build a kernel from your C1)
- Theses packages: git, wget, make


Steps:
------

- Configure environment
  ```bash
export VERSION=3.17
export ARCH=arm
export ARTIFACTS=artifacts<commit_msg>Added documentation about qemu<commit_after>Kernel Config
=============

https://community.cloud.online.net/t/official-linux-kernel-new-modules-optimizations-hacks/226

The kernel is built with the official mainline kernel, here are the .config files used.

Modifications
-------------

The only things we added are:

- a kernel module to simulate some virtualization features: handling serial console, being able to soft reset a node from the API
- a dts file, so the kernel can understand our hardware

---

Build a custom kernel using Docker
==================================

Run a `make menuconfig` for `.config-3.18-std`

    make menuconfig CONFIG=.config-3.18-std

Build a kernel with `.config-3.17-std` file

    make build CONFIG=.config-3.17-std

Create a new `.config-3.10-new` file from scratch for kernel `3.10`

    make defconfig CONFIG=.config-3.10-new

Debug the build container / run custom command

    make run CONFIG=.config-3.17-std
    
Run a kernel in qemu
====================

Build a `3.18` kernel for `versatile`:

    make build CONFIG=.config-3.18-defconfig_versatile
    
Run the kernel in qemu

    make qemu CONFIG=.config-3.18-defconfig_versatile

---

Build a custom kernel from scratch (without Docker)
===================================================

Prerequisites:
--------------

- An arm(hf) compiler:
  - a cross-compiler on non-armhf host, ie `gcc-arm-linux-gnueabihf`
  - a standard compiler from an armhf host (you can build a kernel from your C1)
- Theses packages: git, wget, make


Steps:
------

- Configure environment
  ```bash
export VERSION=3.17
export ARCH=arm
export ARTIFACTS=artifacts
{'fraction_non_alphanumeric': 0.16411960132890366, 'fraction_numerical': 0.023588039867109636, 'mean_word_length': 3.5074850299401197, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1127776', 'n_tokens_mistral': 937, 'n_tokens_neox': 862, 'n_words': 326}