All Projects → on-prem → tinycore-kernel

on-prem / tinycore-kernel

Licence: MIT License
TinyCore Linux kernel and module compile scripts. Download pre-built kernels and modules here: https://bintray.com/on-prem/tinycore-kernels/linux

Programming Languages

Makefile
30231 projects

Projects that are alternatives of or similar to tinycore-kernel

docker-pgtap
Postgres pgTap test runner in docker
Stars: ✭ 12 (-45.45%)
Mutual labels:  infrastructure
terraform-vsphere-single-vm
Deploy single vSphere VM with Terraform - template.
Stars: ✭ 21 (-4.55%)
Mutual labels:  infrastructure
punic
Punic is a remote cache CLI built for Carthage and Apple .xcframework
Stars: ✭ 25 (+13.64%)
Mutual labels:  infrastructure
POSH-HPEOneView
PowerShell language bindings library for HPE OneView.
Stars: ✭ 116 (+427.27%)
Mutual labels:  infrastructure
Stack-Lifecycle-Deployment
OpenSource self-service infrastructure solution that defines and manages the complete lifecycle of resources used and provisioned into a cloud! It is a terraform UI with rest api for terraform automation
Stars: ✭ 88 (+300%)
Mutual labels:  infrastructure
provose
Provose is a new way to manage your Amazon Web Services infrastructure.
Stars: ✭ 27 (+22.73%)
Mutual labels:  infrastructure
terraform-aws-base-networking
Terraform module for building base networking in AWS
Stars: ✭ 15 (-31.82%)
Mutual labels:  infrastructure
jschr.io
The static website generator service behind jschr.io.
Stars: ✭ 70 (+218.18%)
Mutual labels:  infrastructure
infrastructure-as-code
anmolnagpal.com/infrastructure-as-code
Stars: ✭ 17 (-22.73%)
Mutual labels:  infrastructure
teuton
Infrastructure test, mainly useful for sysadmin teachers and making contests
Stars: ✭ 22 (+0%)
Mutual labels:  infrastructure
girltalk
A tool for helping stand up headless C2 for droppables.
Stars: ✭ 16 (-27.27%)
Mutual labels:  infrastructure
AutoSpotting
Saves up to 90% of AWS EC2 costs by automating the use of spot instances on existing AutoScaling groups. Installs in minutes using CloudFormation or Terraform. Convenient to deploy at scale using StackSets. Uses tagging to avoid launch configuration changes. Automated spot termination handling. Reliable fallback to on-demand instances.
Stars: ✭ 2,058 (+9254.55%)
Mutual labels:  infrastructure
devops-infra-demo
Growing repository of Infrastructure as Code demos (initially created for DevOps Wall Street)
Stars: ✭ 31 (+40.91%)
Mutual labels:  infrastructure
infra
Mozilla Marketing Engineering and Operations Infrastructure
Stars: ✭ 58 (+163.64%)
Mutual labels:  infrastructure
MLOS
MLOS is a Data Science powered infrastructure and methodology to democratize and automate Performance Engineering. MLOS enables continuous, instance-based, robust, and trackable systems optimization.
Stars: ✭ 75 (+240.91%)
Mutual labels:  infrastructure
cim
CIM takes the pain out of Infrastructure as Code and CloudFormation
Stars: ✭ 51 (+131.82%)
Mutual labels:  infrastructure
deploykit
A toolkit for creating and managing declarative, self-healing infrastructure.
Stars: ✭ 2,246 (+10109.09%)
Mutual labels:  infrastructure
DscWorkshop
Blueprint for a full featured DSC project for Push / Pull with or without CI/CD
Stars: ✭ 151 (+586.36%)
Mutual labels:  infrastructure
infinity
AWS Spot instances for ML
Stars: ✭ 38 (+72.73%)
Mutual labels:  infrastructure
ftlib
Fault-tolerant for DL frameworks
Stars: ✭ 65 (+195.45%)
Mutual labels:  infrastructure

tinycore-kernel

Build a TinyCore Linux kernel, modules, and firmware extensions

Kernels and modules are built automatically by GitHub Actions and can be downloaded from Bintray.

Getting Started

  1. Install build dependencies: tce-load -wi git compiletc coreutils bc
  2. Clone this repository: git clone https://github.com/jidoteki/tinycore-kernel

Building a kernel from scratch

The default kernel is 4.19.152-tinycore64

  1. make kernel
  2. cd /tmp/tinycore-kernel-build
  3. The kernel will be named vmlinuz64

Building default module extensions

Default modules extensions are all, base, filesystems, ipv6, mtd, netfilter, raid-dm, scsi, net-bridging.

The all extension will contain all the modules.

The base extension will contain the base modules which are included of the OS core.gz/corepure64.gz.

  1. make extensions
  2. cd /tmp/tinycore-kernel-build
  3. The module extensions will be named <module>-4.9.66-tinycore64.tcz

Rebuilding the OS (remaster) with new modules

The default OS will be searched for in /opt/tinycore/<tinycore_version>/x86_64/release/distribution_files/.

  1. make os
  2. cd /tmp/tinycore-kernel-build
  3. The compressed OS will be named corepure64.gz and uncompressed OS will be named corepure64

Cleaning up

Many directories and files will be created in the WORKDIR, to cleanup, simply type make clean.

Makefile variables

The following variables can be changed at build time, by specifying them as arguments, ex: make MODULES=ipv6

  • MODULES: List of modules to build
  • KERNEL: Kernel version to build
  • KERNEL_ARCH: Kernel architecture to build, either x86_64 or x86
  • KERNEL_SOURCE: URL of the kernel source package (.tar.xz or .txz)
  • KERNEL_SHA256: SHA256 hash of the kernel source package
  • OSDIR: Local system directory containing the TinyCore OS (core.gz or corepure64.gz)
  • WORKDIR: Temporary work path to build all the files

Gotchas

TinyCore Linux kernel compiling comes with a few gotchas. The list below will hopefully help others who may run into these problems when manually compiling.

Kernel panic on boot

This occurs when you recompile the kernel (ex: vmlinuz64) without recompiling the modules and/or module extensions. The base modules in the OS (ex: corepure64.gz) must be replaced, as well as any module extensions (ex: ipv6-4.9.66-tinycore64.tcz).

Kernel seems to boot, but can't mount loop or disks

The modules.dep file should point to .ko.gz kernel modules, but Linux compiles them as .ko by default. The Makefile in this repo gzips all modules, and then performs a sed on the newly built modules.dep to ensure it also contains .ko.gz entries. This modules.dep will be rebuilt on boot anyways, but it still needs to be correct initially.

The kernel.tclocal symlink is also needed for kernel module extensions to be loaded. See the TinyCore Custom Kernel wiki page for more info.

Newly compiled modules are not being loaded

If you edit the kernel config using make menuconfig or other, and add new modules, you will need to create a new extension containing those modules. It is recommended to do that as opposed to adding them directly in the OS. Adding them to the OS can lead to problems in the future if you accidentally "forget" to include them when you update TinyCore.

Weird things are happening

The default TinyCore Linux kernel is compiled with a set of cosmetic/boot Linux kernel patches, and one patch for AGP. We excluded them in our newer kernel builds (ex: 3.16.38-tinycore64), but you're better off patching your kernel with those patches if you experience strange system behaviour.

Notes

Please inspect WORKDIR after building, if you want to package firmwares or additional modules.

Contributing

If you find any bugs or issues, please create an issue.

If you want to improve this, please make a pull-request.

License

MIT License

Copyright (c) 2016-2020 Alexander Williams, Unscramble [email protected]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].