From 979a10c2a68746565f330e871da2a0a112fa1604 Mon Sep 17 00:00:00 2001 From: Cem Keylan Date: Mon, 6 Apr 2020 12:06:20 +0300 Subject: initial commit --- README | 6 + build | 152 ++++++++++++++ docs/assets/style.css | 115 +++++++++++ docs/blog/20200128.html | 43 ++++ docs/blog/20200128.txt | 22 ++ docs/blog/index.html | 32 +++ docs/blog/index.txt | 9 + docs/contributing.html | 34 ++++ docs/contributing.txt | 9 + docs/index.html | 217 ++++++++++++++++++++ docs/index.txt | 205 +++++++++++++++++++ docs/news.xml | 224 +++++++++++++++++++++ docs/people.html | 29 +++ docs/people.txt | 3 + docs/repositories.html | 45 +++++ docs/repositories.txt | 22 ++ docs/rss.xml | 40 ++++ docs/wiki/boot/module-management.html | 34 ++++ docs/wiki/boot/module-management.txt | 14 ++ docs/wiki/index.html | 41 ++++ docs/wiki/index.txt | 17 ++ docs/wiki/init/switching-to-sinit.html | 68 +++++++ docs/wiki/init/switching-to-sinit.txt | 51 +++++ docs/wiki/install.html | 333 +++++++++++++++++++++++++++++++ docs/wiki/install.txt | 303 ++++++++++++++++++++++++++++ docs/wiki/keymaps/X-keymaps.html | 23 +++ docs/wiki/keymaps/X-keymaps.txt | 0 docs/wiki/keymaps/keymaps.html | 74 +++++++ docs/wiki/keymaps/keymaps.txt | 52 +++++ docs/wiki/system/service-management.html | 53 +++++ docs/wiki/system/service-management.txt | 39 ++++ index/20191210.news | 2 + index/20191212.news | 3 + index/20191215.news | 5 + index/20191217.news | 2 + index/20191218.news | 2 + index/20200109.news | 11 + index/20200110.news | 2 + index/20200113.news | 16 ++ index/20200115.news | 2 + index/20200122.news | 3 + index/20200128.news | 8 + index/20200213.news | 4 + index/20200214.news | 49 +++++ index/20200218.news | 8 + index/20200405.news | 11 + index/index.md | 32 +++ pull-wiki | 7 + src/blog/20200128.md | 23 +++ src/blog/index.md | 9 + src/contributing.md | 9 + src/index.md | 205 +++++++++++++++++++ src/people.md | 3 + src/repositories.md | 22 ++ src/wiki/boot/module-management.md | 15 ++ src/wiki/index.md | 17 ++ src/wiki/init/switching-to-sinit.md | 52 +++++ src/wiki/install.md | 304 ++++++++++++++++++++++++++++ src/wiki/keymaps/X-keymaps.md | 0 src/wiki/keymaps/keymaps.md | 53 +++++ src/wiki/system/service-management.md | 40 ++++ 61 files changed, 3228 insertions(+) create mode 100644 README create mode 100755 build create mode 100644 docs/assets/style.css create mode 100644 docs/blog/20200128.html create mode 100644 docs/blog/20200128.txt create mode 100644 docs/blog/index.html create mode 100644 docs/blog/index.txt create mode 100644 docs/contributing.html create mode 100644 docs/contributing.txt create mode 100644 docs/index.html create mode 100644 docs/index.txt create mode 100644 docs/news.xml create mode 100644 docs/people.html create mode 100644 docs/people.txt create mode 100644 docs/repositories.html create mode 100644 docs/repositories.txt create mode 100644 docs/rss.xml create mode 100644 docs/wiki/boot/module-management.html create mode 100644 docs/wiki/boot/module-management.txt create mode 100644 docs/wiki/index.html create mode 100644 docs/wiki/index.txt create mode 100644 docs/wiki/init/switching-to-sinit.html create mode 100644 docs/wiki/init/switching-to-sinit.txt create mode 100644 docs/wiki/install.html create mode 100644 docs/wiki/install.txt create mode 100644 docs/wiki/keymaps/X-keymaps.html create mode 100644 docs/wiki/keymaps/X-keymaps.txt create mode 100644 docs/wiki/keymaps/keymaps.html create mode 100644 docs/wiki/keymaps/keymaps.txt create mode 100644 docs/wiki/system/service-management.html create mode 100644 docs/wiki/system/service-management.txt create mode 100644 index/20191210.news create mode 100644 index/20191212.news create mode 100644 index/20191215.news create mode 100644 index/20191217.news create mode 100644 index/20191218.news create mode 100644 index/20200109.news create mode 100644 index/20200110.news create mode 100644 index/20200113.news create mode 100644 index/20200115.news create mode 100644 index/20200122.news create mode 100644 index/20200128.news create mode 100644 index/20200213.news create mode 100644 index/20200214.news create mode 100644 index/20200218.news create mode 100644 index/20200405.news create mode 100644 index/index.md create mode 100755 pull-wiki create mode 100644 src/blog/20200128.md create mode 100644 src/blog/index.md create mode 100644 src/contributing.md create mode 100644 src/index.md create mode 100644 src/people.md create mode 100644 src/repositories.md create mode 100644 src/wiki/boot/module-management.md create mode 100644 src/wiki/index.md create mode 100644 src/wiki/init/switching-to-sinit.md create mode 100644 src/wiki/install.md create mode 100644 src/wiki/keymaps/X-keymaps.md create mode 100644 src/wiki/keymaps/keymaps.md create mode 100644 src/wiki/system/service-management.md diff --git a/README b/README new file mode 100644 index 0000000..f7826d5 --- /dev/null +++ b/README @@ -0,0 +1,6 @@ +Carbs Linux website +=================== + +Carbs Linux website sources. + +The website is served from the docs directory diff --git a/build b/build new file mode 100755 index 0000000..e78d9fe --- /dev/null +++ b/build @@ -0,0 +1,152 @@ +#!/bin/sh -e +MARKDOWNOPTS="-html5 -squash" +export MARKDOWNOPTS + +header() { + cat < + + +$TITLE | Carbs Linux + + + + + +

Carbs Linux - a simple busybox linux distribution

+
+EOF +} + +footer() { + [ -z "$1" ] || printf 'View Page Source' "$1" + cat < + + + + +EOF +} + +gettitle() { + sed 1q "$1" | grep -q '^Title:' || { + basename "$1" .md + return 0 + } + sed 1q "$1" | cut -d' ' -f2- +} + +genpages() { + # Create directories in docs + find src -type d | while read -r dir ; do mkdir -p "docs${dir#src}" ; done + # Generate html and txt files + for page in $(cd src || return 1 ; find . -name '*.md') ; do + tohtml "src/$page" > "docs/${page%.md}.html" + cp "src/$page" "docs/${page%.md}.txt" + sed -i '/^Title:/d' "docs/${page%.md}.txt" + done + # Copy rest of the files + (cd src || return 1 ; find . -type f ! -name '*.md' -exec cp -u \{\} ../docs/\{\} \; ) + +} + + +tohtml() { + TITLE="$(gettitle "$1")" header + sed '/Title:/d' "$1" | markdown + footer "$(echo "$1" | sed 's/.md$/.txt/;s/src\/.//')" +} + +wiki_index() { + sed -i '/^Content/,$d' src/wiki/index.md + printf 'Content\n-------\n\n' >> src/wiki/index.md + for page in $(find src/wiki -type f | grep -v 'src/wiki/index.md' | sort) ; do + printf '* [%s](%s)\n' "$(gettitle "$page")" "$(printf "$page" | sed 's#src/wiki/##;s/.md/.html/')" >> src/wiki/index.md + done +} + +blog_index() { + cat < src/blog/index.md +Blog Index +========== + +This is the Carbs Linux Blog Index. You can find every post +here. [RSS Feed] + +[RSS Feed]: /rss.xml + +EOF + find src/blog -type f ! -name index.md | sort -r | while read -r post ; do + postdate="${post##*/}"; postdate="${postdate%%.*}" + printf '* %s - [%s](%s)\n' "$(date --date="$postdate" +%b\ %d\ %Y)" "$(gettitle "$post")" "$(printf "$post" | sed 's#src/blog/##;s/.md/.html/')" >> src/blog/index.md + done +} + +site_index() { + cp index/index.md src/index.md + find index -name '*.news' | sort -r | while read -r news ; do + newsdate="${news##*/}" ; newsdate="${newsdate%.news}" + printf '\n### %s\n\n' "$(date --date="$newsdate" +%b\ %d\ %Y)" >> src/index.md + cat "$news" >> src/index.md + done +} + +genrss() { + cat < + + +Carbs Linux +a simple busybox linux distribution +https://carbslinux.org + +$(date) +EOF + find "$1" -type f ! -name index.md | sort -r | while read -r post ; do + postdate="${post##*/}" ; postdate="${postdate%.*}" + cat < +$(gettitle "$post") +$(date --date="$postdate" +%a,\ %d\ %b\ %Y) +Cem Keylan +https://carbslinux.org/${3:-blog/$(printf "${post##*/}" | sed 's/.md/.html/')} +$(grep -v '^Title:' "$post" | markdown -f cdata) + +EOF + done +cat < + +EOF +} + +main() { + # Create docs directory if it doesn't exist + mkdir -p docs + + # Remove all html, txt, and rss files + find docs \( -name '*.html' -o -name '*.txt' -o -name '*.xml' \) -delete + + # Generate the indexes for blog and the wiki + site_index; wiki_index; blog_index + + # Generate rss feeds + genrss index news index.html > docs/news.xml ; genrss src/blog > docs/rss.xml + + # Generate pages + genpages +} + +main "$@" diff --git a/docs/assets/style.css b/docs/assets/style.css new file mode 100644 index 0000000..d3de079 --- /dev/null +++ b/docs/assets/style.css @@ -0,0 +1,115 @@ +/* Cem Keylan (C) 2019 */ + +:root { + --color0: #0A1E2B; + --color1: #5C5B6F; + --color2: #9B506D; + --color3: #C34266; + --color4: #7B9BB7; + --color5: #BF6790; + --color6: #6a9faf; + --color7: #A676D2; + --color8: #8b8288; + --color9: #5C5B6F; + --color10: #9B506D; + --color11: #C34266; + --color12: #4E708D; + --color13: #BF6790; + --color14: #528899; + --color15: #c7bac3; + --fg: #0a1e2b; + --bg: #ffffff; + --altbg: #bf6790; + --link: #bf6790; + --linkalt: #4e708d; +} + + +html { + background-color: var(--bg); + font-family: sans-serif; + color: var(--fg); + padding-bottom: 100px; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; + -ms-overflow-style: scrollbar; + -webkit-tap-highlight-color: transparent; +} +.header { + text-align: center; +} +.header strong{ + color: var(--color5) +} +.header a{ + text-decoration: none; + text-align: center; + color: var(--fg); + margin-left: 10px; + margin-right: 10px; +} +.header a:hover{ + text-decoration: none; + text-align: center; + color: var(--linkalt); + margin-left: 10px; + margin-right: 10px; +} +.border { + padding-top: 1%; + border-bottom: solid 2px; + color: var(--fg); +} +a { + text-decoration: none; + font-weight: bold; + color: var(--link); +} +a:hover { + text-decoration: underline; + font-weight: bold; + color: var(--linkalt); +} +.post-title { + text-align: center; +} +ul li::before { + color: var(--color4); +} +body { + width: 80%; + max-width: 1050px; + margin-left: auto; + margin-right: auto; + margin-top: 20px; + overflow: none; + padding-right: 10px; + padding-left: 10px; + color: var(--fg); +} +code { + color: var(--fg); + content: "> "; +} +p,tr,td,table { color: var(--fg); } +h1 { + color: var(--color7); + font-weight: bolder; +} +h2 { + color: var(--color4); + font-weight: bold; +} +h3 { + color: var(--fg); + font-weight: bold; +} +.footer { + text-align: center; +} + +pre { margin-left: 2em; } +blockquote { + border-left: 1px solid var(--color6); + font-style: italic; +} diff --git a/docs/blog/20200128.html b/docs/blog/20200128.html new file mode 100644 index 0000000..5b6b0d0 --- /dev/null +++ b/docs/blog/20200128.html @@ -0,0 +1,43 @@ + + + +Switching to New Website | Carbs Linux + + + + + +

Carbs Linux - a simple busybox linux distribution

+
+

Switching to New Website

+ +

Date: Jan 28 2020

+ +

In case you haven’t seen it before, this website +was powered by werc. And +even though I liked it really much, it was too +powerful for a small website like this.

+ +

So I have decided to reimplement this website with +my own static generation scripts. The source will +probably be on https://carbslinux.org/git/website/log.html +when I decide to publish the website.

+ +

The generation requires Plan9 programs, although +I have used them just for my enthusiasm. I have built +the site with a combination of mk (instead of make), rc, +and POSIX sh. I am not yet exactly familiar with rc, +but I will replace the shell scripts when I feel like +I can.

+View Page Source
+ + + + diff --git a/docs/blog/20200128.txt b/docs/blog/20200128.txt new file mode 100644 index 0000000..486278a --- /dev/null +++ b/docs/blog/20200128.txt @@ -0,0 +1,22 @@ + +Switching to New Website +------------------------ + +**Date:** Jan 28 2020 + +In case you haven't seen it before, this website +was powered by [werc](http://werc.cat-v.org). And +even though I liked it really much, it was too +powerful for a small website like this. + +So I have decided to reimplement this website with +my own static generation scripts. The source will +probably be on +when I decide to publish the website. + +The generation requires Plan9 programs, although +I have used them just for my enthusiasm. I have built +the site with a combination of mk (instead of make), rc, +and POSIX sh. I am not yet exactly familiar with rc, +but I will replace the shell scripts when I feel like +I can. diff --git a/docs/blog/index.html b/docs/blog/index.html new file mode 100644 index 0000000..724cb88 --- /dev/null +++ b/docs/blog/index.html @@ -0,0 +1,32 @@ + + + +index | Carbs Linux + + + + + +

Carbs Linux - a simple busybox linux distribution

+
+

Blog Index

+ +

This is the Carbs Linux Blog Index. You can find every post +here. RSS Feed

+ + + +View Page Source
+ + + + diff --git a/docs/blog/index.txt b/docs/blog/index.txt new file mode 100644 index 0000000..9d9a9aa --- /dev/null +++ b/docs/blog/index.txt @@ -0,0 +1,9 @@ +Blog Index +========== + +This is the Carbs Linux Blog Index. You can find every post +here. [RSS Feed] + +[RSS Feed]: /rss.xml + +* Jan 28 2020 - [Switching to New Website](20200128.html) diff --git a/docs/contributing.html b/docs/contributing.html new file mode 100644 index 0000000..88910fa --- /dev/null +++ b/docs/contributing.html @@ -0,0 +1,34 @@ + + + +contributing | Carbs Linux + + + + + +

Carbs Linux - a simple busybox linux distribution

+
+

Contribute to the Carbs Linux Project

+ +

This is a small project made possible by volunteers. There are +ways you can help this project stay alive.

+ + + +View Page Source
+ + + + diff --git a/docs/contributing.txt b/docs/contributing.txt new file mode 100644 index 0000000..3fe71ce --- /dev/null +++ b/docs/contributing.txt @@ -0,0 +1,9 @@ +Contribute to the Carbs Linux Project +===================================== + +This is a small project made possible by volunteers. There are +ways you can help this project stay alive. + +* Contribute to the [Carbs Linux repository](http://git.carbslinux.org/repository/log.html) +* Contribute to the [KISS community repository](https://github.com/kisslinux/community) +* Contribute to the [wiki](//wiki.carbslinux.org) diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..1c2c185 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,217 @@ + + + +index | Carbs Linux + + + + + +

Carbs Linux - a simple busybox linux distribution

+
+

Carbs Linux is an in-development Linux® distribution with a suckless mindset. +The system will consist of only the necessary programs to create a Linux +distribution.

+ +

Package Manager

+ +

Carbs Linux is built upon the world’s best Linux distribution +KISS Linux and uses kiss +as its package manager, which has proven to be extremely flexible. I aim to move Carbs +to an even more suckless path.

+ +

Sane defaults

+ +

By default, Carbs Linux comes with busybox for coreutils, runit as the system +supervisor, and sinit as the init, though nothing holds you from changing any +of them.

+ +

Links

+ + + + +

News

+ +

RSS Feed

+ +

Apr 05 2020

+ +

Carbs Linux repositories will be hosted only on Github. Commits will be +pushed there, and not the repository. You have until +May 4, 2020 Monday to switch your remotes to https://github.com/CarbsLinux/repository. +The git repository will continue to be served until then (without additional +commits).

+ +

You can switch your remote by executing the following command on your +repository directory.

+ +
git remote set-url origin https://github.com/CarbsLinux/repository
+
+ +

Feb 18 2020

+ +

A new tarball is released. It can be found on https://dl.carbslinux.org.

+ +

edit: I have removed the tarball because of a bootstrapping issue. +I will be re-adding it later today.

+ +

edit 2: I have added a tarball (20200219) to reflect my recent +changes on Busybox.

+ +

Feb 14 2020

+ +

IMPORTANT! Carbs-init update to be released on 17th of February +will require manual intervention. I am holding this update back so +people can see it before they update their system (even though the +update will show the same message as this). The rationale for the +update is explained below the intervention.

+ +
# There is an explanation for each init
+# You only need to follow the instructions
+# for your own init-system
+
+## busybox-init
+# If you did not edit your inittab simply 
+# move inittab.new to inittab
+-> mv /etc/inittab.new /etc/inittab
+
+# If you did edit your inittab you can use
+# a simple sed command to remove the necessary lines
+-> sed -i '/getty/d;/runsvdir/d' /etc/inittab
+
+
+## runit
+# same as busybox-init, if you did not edit
+# /etc/runit/2 move 2.new to 2
+-> mv /etc/runit/2.new /etc/runit/2
+
+# else
+-> vim /etc/runit/2
+# open your 2 file and remove the for loop containing
+# getty commands. If you are using runit, it is recommended
+# to comment out /etc/init/runit.boot
+
+## sinit/minit
+# If you did not edit your {sinit-,}launch-services.boot
+# you can simply remove it.
+-> rm -f /etc/init/launch-services.boot /etc/init/sinit-launch-services.boot
+
+# This should leave you without any issues, and you can safely reboot.
+
+ +

Carbs-init update is to make sure init systems do not clash, and do +not have to use different files. This is a sensible update both for +the user user and for the maintainer side.

+ +

To give an example, before this update busybox-init was managing getty +through inittab, runit was managing through /etc/runit/2, and +minit/sinit were launching from /etc/init/launch-services.boot. This +is a configuration nightmare for everyone, and since I am maintaining +and constantly testing those init providers, a huge nightmare for me. +This is a Quality of Life update.

+ +

Feb 13 2020

+ +

Runit is now released on the core repository! You can now replace +busybox-init with runit-init. You can also replace the busybox runit +utilities with the actual runit. This will reduce the dependency on +busybox greatly.

+ +

Jan 28 2020

+ +

Web Server is now on a Carbs Linux server. It is not complete yet, +but I will be adding a little more for the intended functionality. +Downtimes can be expected.

+ +

UPDATE: ssl is now working.

+ +

UPDATE2: downloads are back again.

+ +

Jan 22 2020

+ +

Expect downtime on Jan 24 2020 22:00 UTC as I will be migrating +this web server to my Carbs Linux server!

+ +

Jan 15 2020

+ +

sinit has been taken to core, and is now officially supported

+ +

Jan 13 2020

+ +

Busybox update reqires manual intervention

+ +

The new busybox package conflicts with the pre-update busybox-init. That’s why +you should rebuild and install busybox-init before doing the update.

+ +
# Do a kiss update first (but don't actually update it yet), or manually pull the git repository
+$ kiss u  # Cancel this operation after it asks for you to confirm the update
+
+# Install the busybox-init package
+$ kiss b busybox-init && kiss i busybox-init
+
+# Continue your update as you normally would.
+$ kiss u
+
+ +

I have moved runit and logging utilities from the busybox-init package to the busybox +package, which is the cause of these conflicts.

+ +

Jan 10 2020

+ +

carbs-rootfs-20200110.tar.xz was released

+ +

Jan 09 2020

+ +

Happy new year, everyone! I am back after some long silence. I was unable to commit for a +while, but I have pulled some new updates from the KISS repository, added some of my own. +This week I will be changing/adding some things.

+ +

Important things are,

+ +
    +
  • Carbs-init was updated to 0.3.
  • +
  • I will be adding an implementation of suckless.org’s sinit as carbs-sinit
  • +
  • Carbs Repository was added to repology.org
  • +
  • A new rootfs tarball will be coming up tomorrow.
  • +
+ + +

Dec 18 2019

+ +

carbs-rootfs-20191218.tar.xz was released

+ +

Dec 17 2019

+ +

Installation instruction are now complete. A review would be greatly appreciated!

+ +

Dec 15 2019

+ +

Carbs Linux Wiki is now available to be edited and updated by the users go +to the wiki to obtain more information.

+ +

February 2020 EDIT: Changed link for wiki

+ +

Dec 12 2019

+ +

Busybox and Busybox-init has been seperated into two different packages. +This is for adding standalone runit/runit-init to the repositories.

+ +

Dec 10 2019

+ +

First alpha release was made. See the downloads page.

+View Page Source
+ + + + diff --git a/docs/index.txt b/docs/index.txt new file mode 100644 index 0000000..062cd3f --- /dev/null +++ b/docs/index.txt @@ -0,0 +1,205 @@ +Carbs Linux is an in-development Linux® distribution with a suckless mindset. +The system will consist of only the necessary programs to create a Linux +distribution. + +Package Manager +--------------- + +Carbs Linux is built upon the world's best Linux distribution +[KISS Linux](https://getkiss.org) and uses [kiss](https://github.com/kisslinux/kiss) +as its package manager, which has proven to be extremely flexible. I aim to move Carbs +to an even more suckless path. + + +Sane defaults +------------- + +By default, Carbs Linux comes with busybox for coreutils, runit as the system +supervisor, and sinit as the init, though nothing holds you from changing any +of them. + + +Links +----- + +* Reddit - [/r/carbslinux](http://reddit.com/r/carbslinux) +* Matrix - [#carbs-linux:matrix.org](https://matrix.to/#/#carbs-linux:matrix.org) + + +News +---- + +[RSS Feed](/news.xml) + +### Apr 05 2020 + +Carbs Linux repositories will be hosted only on Github. Commits will be +pushed there, and not the repository. You have until +May 4, 2020 Monday to switch your remotes to . +The git repository will continue to be served until then (without additional +commits). + +You can switch your remote by executing the following command on your +repository directory. + + git remote set-url origin https://github.com/CarbsLinux/repository + + +### Feb 18 2020 + +A new tarball is released. It can be found on . + +**edit:** I have removed the tarball because of a bootstrapping issue. +I will be re-adding it later today. + +**edit 2:** I have added a tarball (20200219) to reflect my recent +changes on Busybox. + + +### Feb 14 2020 + +**IMPORTANT!** Carbs-init update to be released on 17th of February +will require manual intervention. I am holding this update back so +people can see it before they update their system (even though the +update will show the same message as this). The rationale for the +update is explained below the intervention. + + # There is an explanation for each init + # You only need to follow the instructions + # for your own init-system + + ## busybox-init + # If you did not edit your inittab simply + # move inittab.new to inittab + -> mv /etc/inittab.new /etc/inittab + + # If you did edit your inittab you can use + # a simple sed command to remove the necessary lines + -> sed -i '/getty/d;/runsvdir/d' /etc/inittab + + + ## runit + # same as busybox-init, if you did not edit + # /etc/runit/2 move 2.new to 2 + -> mv /etc/runit/2.new /etc/runit/2 + + # else + -> vim /etc/runit/2 + # open your 2 file and remove the for loop containing + # getty commands. If you are using runit, it is recommended + # to comment out /etc/init/runit.boot + + ## sinit/minit + # If you did not edit your {sinit-,}launch-services.boot + # you can simply remove it. + -> rm -f /etc/init/launch-services.boot /etc/init/sinit-launch-services.boot + + # This should leave you without any issues, and you can safely reboot. + +Carbs-init update is to make sure init systems do not clash, and do +not have to use different files. This is a sensible update both for +the user user and for the maintainer side. + +To give an example, before this update busybox-init was managing getty +through `inittab`, runit was managing through `/etc/runit/2`, and +minit/sinit were launching from `/etc/init/launch-services.boot`. This +is a configuration nightmare for everyone, and since I am maintaining +and constantly testing those init providers, a huge nightmare for me. +This is a Quality of Life update. + + +### Feb 13 2020 + +Runit is now released on the core repository! You can now replace +busybox-init with runit-init. You can also replace the busybox runit +utilities with the actual runit. This will reduce the dependency on +busybox greatly. + +### Jan 28 2020 + +Web Server is now on a Carbs Linux server. It is not complete yet, +but I will be adding a little more for the intended functionality. +Downtimes can be expected. + +UPDATE: ssl is now working. + +UPDATE2: downloads are back again. + + +### Jan 22 2020 + +Expect downtime on Jan 24 2020 22:00 UTC as I will be migrating +this web server to my Carbs Linux server! + + +### Jan 15 2020 + +sinit has been taken to `core`, and is now officially supported + + +### Jan 13 2020 + +**Busybox update reqires manual intervention** + +The new busybox package conflicts with the pre-update busybox-init. That's why +you should rebuild and install `busybox-init` before doing the update. + + # Do a kiss update first (but don't actually update it yet), or manually pull the git repository + $ kiss u # Cancel this operation after it asks for you to confirm the update + + # Install the busybox-init package + $ kiss b busybox-init && kiss i busybox-init + + # Continue your update as you normally would. + $ kiss u + +I have moved runit and logging utilities from the busybox-init package to the busybox +package, which is the cause of these conflicts. + +### Jan 10 2020 + +carbs-rootfs-20200110.tar.xz was [released](//dl.carbslinux.org/releases) + + +### Jan 09 2020 + +Happy new year, everyone! I am back after some long silence. I was unable to commit for a +while, but I have pulled some new updates from the KISS repository, added some of my own. +This week I will be changing/adding some things. + +Important things are, + +* Carbs-init was updated to 0.3. +* I will be adding an implementation of suckless.org's [sinit](//core.suckless.org/sinit) as `carbs-sinit` +* Carbs Repository was added to [repology.org](//repology.org/repository/carbs) +* A new rootfs tarball will be coming up tomorrow. + + +### Dec 18 2019 + +carbs-rootfs-20191218.tar.xz was [released](//dl.carbslinux.org/releases) + + +### Dec 17 2019 + +Installation instruction are now complete. A review would be greatly appreciated! + + +### Dec 15 2019 + +Carbs Linux Wiki is now available to be edited and updated by the users go +to the [wiki](//carbslinux.org/wiki) to obtain more information. + +**February 2020 EDIT:** Changed link for wiki + + +### Dec 12 2019 + +Busybox and Busybox-init has been seperated into two different packages. +This is for adding standalone runit/runit-init to the repositories. + + +### Dec 10 2019 + +First alpha release was made. See the [downloads page](//dl.carbslinux.org/releases). + diff --git a/docs/news.xml b/docs/news.xml new file mode 100644 index 0000000..212b58f --- /dev/null +++ b/docs/news.xml @@ -0,0 +1,224 @@ + + + +Carbs Linux +a simple busybox linux distribution +https://carbslinux.org + +Mon Apr 6 12:01:14 +03 2020 + +20200405.news +Sun, 05 Apr 2020 +Cem Keylan +https://carbslinux.org/index.html +<p>Carbs Linux repositories will be hosted only on Github. Commits will be +pushed there, and not the repository. You have until +May 4, 2020 Monday to switch your remotes to <a href="https://github.com/CarbsLinux/repository">https://github.com/CarbsLinux/repository</a>. +The git repository will continue to be served until then (without additional +commits).</p> + +<p>You can switch your remote by executing the following command on your +repository directory.</p> + +<pre><code>git remote set-url origin https://github.com/CarbsLinux/repository +</code></pre> + + +20200218.news +Tue, 18 Feb 2020 +Cem Keylan +https://carbslinux.org/index.html +<p>A new tarball is released. It can be found on <a href="https://dl.carbslinux.org">https://dl.carbslinux.org</a>.</p> + +<p><strong>edit:</strong> I have removed the tarball because of a bootstrapping issue. +I will be re-adding it later today.</p> + +<p><strong>edit 2:</strong> I have added a tarball (20200219) to reflect my recent +changes on Busybox.</p> + + +20200214.news +Fri, 14 Feb 2020 +Cem Keylan +https://carbslinux.org/index.html +<p><strong>IMPORTANT!</strong> Carbs-init update to be released on 17th of February +will require manual intervention. I am holding this update back so +people can see it before they update their system (even though the +update will show the same message as this). The rationale for the +update is explained below the intervention.</p> + +<pre><code># There is an explanation for each init +# You only need to follow the instructions +# for your own init-system + +## busybox-init +# If you did not edit your inittab simply +# move inittab.new to inittab +-&gt; mv /etc/inittab.new /etc/inittab + +# If you did edit your inittab you can use +# a simple sed command to remove the necessary lines +-&gt; sed -i '/getty/d;/runsvdir/d' /etc/inittab + + +## runit +# same as busybox-init, if you did not edit +# /etc/runit/2 move 2.new to 2 +-&gt; mv /etc/runit/2.new /etc/runit/2 + +# else +-&gt; vim /etc/runit/2 +# open your 2 file and remove the for loop containing +# getty commands. If you are using runit, it is recommended +# to comment out /etc/init/runit.boot + +## sinit/minit +# If you did not edit your {sinit-,}launch-services.boot +# you can simply remove it. +-&gt; rm -f /etc/init/launch-services.boot /etc/init/sinit-launch-services.boot + +# This should leave you without any issues, and you can safely reboot. +</code></pre> + +<p>Carbs-init update is to make sure init systems do not clash, and do +not have to use different files. This is a sensible update both for +the user user and for the maintainer side.</p> + +<p>To give an example, before this update busybox-init was managing getty +through <code>inittab</code>, runit was managing through <code>/etc/runit/2</code>, and +minit/sinit were launching from <code>/etc/init/launch-services.boot</code>. This +is a configuration nightmare for everyone, and since I am maintaining +and constantly testing those init providers, a huge nightmare for me. +This is a Quality of Life update.</p> + + +20200213.news +Thu, 13 Feb 2020 +Cem Keylan +https://carbslinux.org/index.html +<p>Runit is now released on the core repository! You can now replace +busybox-init with runit-init. You can also replace the busybox runit +utilities with the actual runit. This will reduce the dependency on +busybox greatly.</p> + + +20200128.news +Tue, 28 Jan 2020 +Cem Keylan +https://carbslinux.org/index.html +<p>Web Server is now on a Carbs Linux server. It is not complete yet, +but I will be adding a little more for the intended functionality. +Downtimes can be expected.</p> + +<p>UPDATE: ssl is now working.</p> + +<p>UPDATE2: downloads are back again.</p> + + +20200122.news +Wed, 22 Jan 2020 +Cem Keylan +https://carbslinux.org/index.html +<p>Expect downtime on Jan 24 2020 22:00 UTC as I will be migrating +this web server to my Carbs Linux server!</p> + + +20200115.news +Wed, 15 Jan 2020 +Cem Keylan +https://carbslinux.org/index.html +<p>sinit has been taken to <code>core</code>, and is now officially supported</p> + + +20200113.news +Mon, 13 Jan 2020 +Cem Keylan +https://carbslinux.org/index.html +<p><strong>Busybox update reqires manual intervention</strong></p> + +<p>The new busybox package conflicts with the pre-update busybox-init. That&rsquo;s why +you should rebuild and install <code>busybox-init</code> before doing the update.</p> + +<pre><code># Do a kiss update first (but don't actually update it yet), or manually pull the git repository +$ kiss u # Cancel this operation after it asks for you to confirm the update + +# Install the busybox-init package +$ kiss b busybox-init &amp;&amp; kiss i busybox-init + +# Continue your update as you normally would. +$ kiss u +</code></pre> + +<p>I have moved runit and logging utilities from the busybox-init package to the busybox +package, which is the cause of these conflicts.</p> + + +20200110.news +Fri, 10 Jan 2020 +Cem Keylan +https://carbslinux.org/index.html +<p>carbs-rootfs-20200110.tar.xz was <a href="//dl.carbslinux.org/releases">released</a></p> + + +20200109.news +Thu, 09 Jan 2020 +Cem Keylan +https://carbslinux.org/index.html +<p>Happy new year, everyone! I am back after some long silence. I was unable to commit for a +while, but I have pulled some new updates from the KISS repository, added some of my own. +This week I will be changing/adding some things.</p> + +<p>Important things are,</p> + +<ul> +<li>Carbs-init was updated to 0.3.</li> +<li>I will be adding an implementation of suckless.org&rsquo;s <a href="//core.suckless.org/sinit">sinit</a> as <code>carbs-sinit</code></li> +<li>Carbs Repository was added to <a href="//repology.org/repository/carbs">repology.org</a></li> +<li>A new rootfs tarball will be coming up tomorrow.</li> +</ul> + + +20191218.news +Wed, 18 Dec 2019 +Cem Keylan +https://carbslinux.org/index.html +<p>carbs-rootfs-20191218.tar.xz was <a href="//dl.carbslinux.org/releases">released</a></p> + + +20191217.news +Tue, 17 Dec 2019 +Cem Keylan +https://carbslinux.org/index.html +<p>Installation instruction are now complete. A review would be greatly appreciated!</p> + + +20191215.news +Sun, 15 Dec 2019 +Cem Keylan +https://carbslinux.org/index.html +<p>Carbs Linux Wiki is now available to be edited and updated by the users go +to the <a href="//carbslinux.org/wiki">wiki</a> to obtain more information.</p> + +<p><strong>February 2020 EDIT:</strong> Changed link for wiki</p> + + +20191212.news +Thu, 12 Dec 2019 +Cem Keylan +https://carbslinux.org/index.html +<p>Busybox and Busybox-init has been seperated into two different packages. +This is for adding standalone runit/runit-init to the repositories.</p> + + +20191210.news +Tue, 10 Dec 2019 +Cem Keylan +https://carbslinux.org/index.html +<p>First alpha release was made. See the <a href="//dl.carbslinux.org/releases">downloads page</a>.</p> + + + diff --git a/docs/people.html b/docs/people.html new file mode 100644 index 0000000..22aba5c --- /dev/null +++ b/docs/people.html @@ -0,0 +1,29 @@ + + + +people | Carbs Linux + + + + + +

Carbs Linux - a simple busybox linux distribution

+
+

People

+ + + +View Page Source
+ + + + diff --git a/docs/people.txt b/docs/people.txt new file mode 100644 index 0000000..dc49bf3 --- /dev/null +++ b/docs/people.txt @@ -0,0 +1,3 @@ +People +====== +* Cem Keylan - Founder diff --git a/docs/repositories.html b/docs/repositories.html new file mode 100644 index 0000000..368535f --- /dev/null +++ b/docs/repositories.html @@ -0,0 +1,45 @@ + + + +repositories | Carbs Linux + + + + + +

Carbs Linux - a simple busybox linux distribution

+
+

Repositories endorsed by Carbs

+ +

The power of KISS package manager is the way +it is really flexible. You can use multiple +repositories at the same time.

+ +

Official Repository

+ +

The official repository comes installed in +the rootfs tarball. You can view the sources +online

+ +

Other repositories

+ + + + +

NOTE: Note that the official repositories of +KISS Linux are not identical and may have conflicts.

+View Page Source
+ + + + diff --git a/docs/repositories.txt b/docs/repositories.txt new file mode 100644 index 0000000..794e451 --- /dev/null +++ b/docs/repositories.txt @@ -0,0 +1,22 @@ +Repositories endorsed by Carbs +============================== +The power of KISS package manager is the way +it is really flexible. You can use multiple +repositories at the same time. + +Official Repository +------------------- + +The official repository comes installed in +the rootfs tarball. You can view the sources +[online](//git.carbslinux.org/repository/log.html) + + +Other repositories +------------------ + +* [KISS Community Repository](https://github.com/kisslinux/community) +* [KISS Official Repository](https://github.com/kisslinux/repo) + +**NOTE:** Note that the *official* repositories of +KISS Linux are not identical and may have conflicts. diff --git a/docs/rss.xml b/docs/rss.xml new file mode 100644 index 0000000..39ec54d --- /dev/null +++ b/docs/rss.xml @@ -0,0 +1,40 @@ + + + +Carbs Linux +a simple busybox linux distribution +https://carbslinux.org + +Mon Apr 6 12:01:14 +03 2020 + +Switching to New Website +Tue, 28 Jan 2020 +Cem Keylan +https://carbslinux.org/blog/20200128.html +<h2>Switching to New Website</h2> + +<p><strong>Date:</strong> Jan 28 2020</p> + +<p>In case you haven&rsquo;t seen it before, this website +was powered by <a href="http://werc.cat-v.org">werc</a>. And +even though I liked it really much, it was too +powerful for a small website like this.</p> + +<p>So I have decided to reimplement this website with +my own static generation scripts. The source will +probably be on <a href="https://carbslinux.org/git/website/log.html">https://carbslinux.org/git/website/log.html</a> +when I decide to publish the website.</p> + +<p>The generation requires Plan9 programs, although +I have used them just for my enthusiasm. I have built +the site with a combination of mk (instead of make), rc, +and POSIX sh. I am not yet exactly familiar with rc, +but I will replace the shell scripts when I feel like +I can.</p> + + + diff --git a/docs/wiki/boot/module-management.html b/docs/wiki/boot/module-management.html new file mode 100644 index 0000000..a77685d --- /dev/null +++ b/docs/wiki/boot/module-management.html @@ -0,0 +1,34 @@ + + + +Module Management | Carbs Linux + + + + + +

Carbs Linux - a simple busybox linux distribution

+
+

Module Management

+ +

With busybox-init, a module can be loaded at boot by adding such a line to your inittab

+ +
::once:/bin/modprobe module-name
+
+ +

With sinit, a module can be loaded from your /etc/rc.local file. Add this to your file

+ +
/bin/modprobe module-name
+
+View Page Source
+ + + + diff --git a/docs/wiki/boot/module-management.txt b/docs/wiki/boot/module-management.txt new file mode 100644 index 0000000..96256c1 --- /dev/null +++ b/docs/wiki/boot/module-management.txt @@ -0,0 +1,14 @@ + +Module Management +================= + +With **busybox-init**, a module can be loaded at boot by adding such a line to your `inittab` + + ::once:/bin/modprobe module-name + + +With **sinit**, a module can be loaded from your `/etc/rc.local` file. Add this to your file + + /bin/modprobe module-name + + diff --git a/docs/wiki/index.html b/docs/wiki/index.html new file mode 100644 index 0000000..b787450 --- /dev/null +++ b/docs/wiki/index.html @@ -0,0 +1,41 @@ + + + +index | Carbs Linux + + + + + +

Carbs Linux - a simple busybox linux distribution

+
+

Wiki

+ +

Welcome to the Carbs Linux wiki! This wiki is open for access, +and can be edited freely by anyone who wants to contribute.

+ +

If you want to make a contribution, go to https://github.com/CarbsLinux/wiki

+ +

Content

+ + + +View Page Source
+ + + + diff --git a/docs/wiki/index.txt b/docs/wiki/index.txt new file mode 100644 index 0000000..dd27004 --- /dev/null +++ b/docs/wiki/index.txt @@ -0,0 +1,17 @@ +Wiki +==== + +Welcome to the Carbs Linux wiki! This wiki is open for access, +and can be edited freely by anyone who wants to contribute. + +If you want to make a contribution, go to + +Content +------- + +* [Module Management](boot/module-management.html) +* [Switching to Sinit](init/switching-to-sinit.html) +* [Install](install.html) +* [X-keymaps](keymaps/X-keymaps.html) +* [Keymaps in TTY](keymaps/keymaps.html) +* [Service Management](system/service-management.html) diff --git a/docs/wiki/init/switching-to-sinit.html b/docs/wiki/init/switching-to-sinit.html new file mode 100644 index 0000000..775e01c --- /dev/null +++ b/docs/wiki/init/switching-to-sinit.html @@ -0,0 +1,68 @@ + + + +Switching to Sinit | Carbs Linux + + + + + +

Carbs Linux - a simple busybox linux distribution

+
+

Switching to Sinit

+ +

Carbs Linux runs busybox-init by default. You can switch to +anything else you desire, but only busybox-init and sinit are +officially supported. Switching to sinit is extremely easy, you +can be up and running within minutes. The only “hard” requirement +is an environment you will be chrooting in. So, let’s begin!

+ +

Preparing your environment

+ +

From your other environment, download the kiss-chroot utility +and make it executable.

+ +
$ wget https://dl.getkiss.org/kiss-chroot
+$ chmod +x kiss-chroot
+
+# From your environment start the chroot
+$ kiss-chroot /mnt
+
+ +

Removing busybox-init

+ +

Now that we are in chroot environment, let’s remove busybox-init.

+ +
$ kiss r busybox-init
+
+ +

Installing and configuring sinit

+ +

Build and install sinit

+ +
$ kiss b sinit
+$ kiss i sinit
+
+ +

Open up your /etc/init/rc.conf now and uncomment +the variables regarding SINIT. You are ready now.

+ +

If you edited your inittab, make sure you reflect your changes +on the /etc/init/sinit-launch-services.boot file.

+ +

Finishing up

+ +

If all of the above is done, simply exit the chroot and reboot. +Sinit should be functioning without any issues.

+View Page Source
+ + + + diff --git a/docs/wiki/init/switching-to-sinit.txt b/docs/wiki/init/switching-to-sinit.txt new file mode 100644 index 0000000..3bee312 --- /dev/null +++ b/docs/wiki/init/switching-to-sinit.txt @@ -0,0 +1,51 @@ + +Switching to Sinit +================== + +Carbs Linux runs `busybox-init` by default. You can switch to +anything else you desire, but only busybox-init and sinit are +officially supported. Switching to sinit is extremely easy, you +can be up and running within minutes. The only "hard" requirement +is an environment you will be chrooting in. So, let's begin! + + +Preparing your environment +-------------------------- + +From your other environment, download the kiss-chroot utility +and make it executable. + + $ wget https://dl.getkiss.org/kiss-chroot + $ chmod +x kiss-chroot + + # From your environment start the chroot + $ kiss-chroot /mnt + +Removing busybox-init +--------------------- + +Now that we are in chroot environment, let's remove busybox-init. + + $ kiss r busybox-init + + +Installing and configuring sinit +-------------------------------- + +Build and install sinit + + $ kiss b sinit + $ kiss i sinit + +Open up your `/etc/init/rc.conf` now and uncomment +the variables regarding SINIT. You are ready now. + +If you edited your inittab, make sure you reflect your changes +on the `/etc/init/sinit-launch-services.boot` file. + + +Finishing up +------------ + +If all of the above is done, simply exit the chroot and reboot. +Sinit should be functioning without any issues. diff --git a/docs/wiki/install.html b/docs/wiki/install.html new file mode 100644 index 0000000..4c391a1 --- /dev/null +++ b/docs/wiki/install.html @@ -0,0 +1,333 @@ + + + +Install | Carbs Linux + + + + + +

Carbs Linux - a simple busybox linux distribution

+
+

Installation Instructions

+ +

This post will guide you step-by-step in order to install +Carbs Linux. It is not complete yet.

+ +

Downloading and Getting Ready to Chroot

+ +

Installing Carbs Linux is the same as installing most +rootfs distributions, such as Gentoo, or Void Linux.

+ +

Requirements

+ +

You simply need a Live Linux ISO. Gentoo would be the best +as programs you will require will be already there. Get the +ISO, boot it and set up your network.

+ +

Required Programs:

+ +
    +
  • tar
  • +
  • wget
  • +
  • xz
  • +
+ + +

Rest of the instructions assume that you have set all of these +up, and will continue on.

+ +

Download

+ +

First, we need to download the rootfs tarball. In your terminal +type

+ +
$ wget https://carbslinux.org/releases/carbs-rootfs-20191210.tar.xz
+
+ +

Check the integrity of the tarball

+ +

While optional, it is highly recommended to check the integrity +of the tarball.

+ +
$ wget https://carbslinux.org/releases/carbs-rootfs-20191210.tar.xz.sha256sum
+$ sha256sum -c carbs-rootfs-20191210.tar.xz.sha256sum
+
+ +

Check the signatures

+ +

While optional, it is highly recommended to check the signature +of the tarball

+ +
$ wget https://carbslinux.org/releases/carbs-rootfs-20191210.tar.xz.sig
+
+Import the public key of release@carbslinux.org
+
+$ gpg --recv-keys FF484BDFEFCEF8FF
+
+$ gpg --verify carbs-rootfs-20191210.tar.xz.sig
+
+ +

Download Kiss Linux Chroot Helper

+ +
$ wget https://dl.getkiss.org/kiss-chroot
+
+Make the script executable
+
+$ chmod +x kiss-chroot
+
+ +

Extract the rootfs tarball

+ +

You need to extract the tarball to your mounted partition

+ +
$ tar xvpf carbs-rootfs-20191210.tar.xz -C /mnt
+
+ +

Chroot

+ +

Chroot into Carbs Linux

+ +
$ ./kiss-chroot /mnt
+
+ +

Enable repository signing (Highly Recommended)

+ +

This step is optional, but very highly recommended +(I cannot stress out the amount I am recommending this). +This ensures you are receiving updates from Carbs Linux +and not some other source.

+ +

Install GnuPG

+ +

It is also a great time to learn how to use your new +package manager, KISS! You simply build and install +the package

+ +
$ kiss build gnupg1
+$ kiss install gnupg1
+
+ +

Import my key

+ +
Import my public key (cem@ckyln.com)
+
+$ gpg --recv-key 4356EE08A364CE09
+
+Create a .gnupg directory if it doesn't exist
+
+$ mkdir -p /root/.gnupg
+
+Trust my public key
+
+$ echo trusted-key 0x4356ee08a364ce09 >> /root/.gnupg/gpg.conf
+
+ +

Enable signature verification

+ +

Git has a built in signature verification feature. +You can go to the repository directory and enable it

+ +
$ cd /var/db/kiss/repo
+$ git config merge.verifySignatures true
+
+ +

Installing Important Tools

+ +

Since Carbs gives you one of the most minimal base, +you might need to apply some add-ons to your system.

+ +

Update packages

+ +

It might be a good idea to update your packages before +installing new packages. This ensure compatibility.

+ +
$ kiss update
+
+ +

Filesystems

+ +

Currently, e2fsprogs and dosfstools are supported, +as they are the most-used filesystems.

+ +
Support for ext2, ext3, and ex4
+
+$ kiss build e2fsprogs
+$ kiss install e2fsprogs
+
+Support for dosfstools
+
+$ kiss build dosfstools
+$ kiss install dosfstools
+
+ +

Device management

+ +
$ kiss build eudev
+$ kiss install eudev
+
+ +

Wireless

+ +

wpa_supplicant

+ +
$ kiss build wpa_supplicant
+$ kiss install wpa_supplicant
+
+ +

eiwd (WIP)

+ +
$ kiss build eiwd
+$ kiss install eiwd
+
+ +

dhcpcd

+ +
$ kiss build dhcpcd
+$ kiss install dhcpcd
+
+ +

Shells

+ +

Carbs Linux comes preinstalled with busybox ash, but other shells +can be found on the repository

+ +
Install bash
+
+$ kiss build bash
+$ kiss install bash
+
+Install zsh
+
+$ kiss build zsh
+$ kiss install zsh
+
+Install Plan9 rc-shell
+
+$ kiss build 9base
+$ kiss install 9base
+
+ +

Install the Kernel

+ +

Next step is installing the kernel, which might sound as a challenge +you should download and extract the kernel tarball first.

+ +
$ wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.tar.xz
+
+Let's move the sources to /usr/src
+
+$ mv linux-5.5.tar.xz /usr/src
+$ tar xf linux-5.5.tar.xz
+$ cd linux-5.5
+
+ +

Configure the Kernel

+ +

You can check https://wiki.gentoo.org/wiki/Kernel/Configuration +to learn more about kernel configuration. Overall, Gentoo Wiki +is a good place to learn about kernel configuration related to +your hardware.

+ +

Build and install the kernel

+ +

The rest of it is simple, build the kernel with +make and install it with make install

+ +

Bootloader

+ +

The default bootloader is GRUB (GRand Unified Bootloader).

+ +

Build and install GRUB

+ +
$ kiss b grub
+$ kiss i grub
+
+Install efibootmgr as well if your
+system requires it
+
+$ kiss b efibootmgr
+$ kiss i efibootmgr
+
+ +

Setup GRUB

+ +
For BIOS:
+$ grub-install --target=i386-pc /dev/sdX
+
+For UEFI:
+$ grub-install --target=x86_64-efi --efi-directory=esp --bootloader-id=CarbsLinux
+
+$ grub-mkconfig -o /boot/grub/grub.cfg
+
+ +

Install init

+ +

Currently, default init for Carbs Linux is sinit, but +busybox-init is also supported. You can also change this yourself.

+ +

To install init, you have to

+ +
$ kiss b sinit
+$ kiss i sinit
+
+ +

This will also fetch busybox-init as its dependency.

+ +

Enabling other repositories

+ +

There are other repositories out there that might be of your +interest. The Official Repositories come with community and testing +repositories that are not enabled by default. You could also want to +add the Kiss Linux community repository, or someone’s personal kiss +repository.

+ +

Obtaining repositories

+ +

Obtaining a repository is as simple as a git clone. You can do it +with Cem’s personal repository as an example, but any other repository +will be the same.

+ +
# Clone the repository to your desired location
+# Optionally add "--depth 1" to save precious disk space
+
+$ git clone --depth 1 git://git.ckyln.com/kiss-repository /var/db/kiss/cem-repository
+
+ +

That’s it, you have obtained a new repository!

+ +

Adding a repository to your KISS_PATH

+ +

Now that we have obtained Cem’s repository, we can add it to our KISS_PATH!

+ +

We need to edit /etc/profile.d/kiss_path.sh for this, but you +can also change your KISS_PATH from your shellrc.

+ +

Add the full path to the repository, in this case +/var/db/kiss/cem-repository/cem to the variable +and add a : before/after it.

+ +

It must be looking like this.

+ +
export KISS_PATH=/var/db/kiss/repo/core:/var/db/kiss/repo/extra:/var/db/kiss/repo/xorg:/var/db/kiss/cem-repository/cem
+
+ +

Update your shell variables by doing . /etc/profile.d/kiss_path.sh so you can +immediately access the repository packages

+ +

More

+ +

You should now be able to boot into you Carbs Linux installation. +To learn more, you can visit the wiki

+View Page Source
+ + + + diff --git a/docs/wiki/install.txt b/docs/wiki/install.txt new file mode 100644 index 0000000..2f86b76 --- /dev/null +++ b/docs/wiki/install.txt @@ -0,0 +1,303 @@ + +Installation Instructions +========================= + +This post will guide you step-by-step in order to install +Carbs Linux. It is not complete yet. + + +Downloading and Getting Ready to Chroot +--------------------------------------- + +Installing Carbs Linux is the same as installing most +rootfs distributions, such as Gentoo, or Void Linux. + + +### Requirements + +You simply need a Live Linux ISO. Gentoo would be the best +as programs you will require will be already there. Get the +ISO, boot it and set up your network. + +**Required Programs:** + +* tar +* wget +* xz + +Rest of the instructions assume that you have set all of these +up, and will continue on. + + +### Download + + +First, we need to download the rootfs tarball. In your terminal +type + + $ wget https://carbslinux.org/releases/carbs-rootfs-20191210.tar.xz + + +### Check the integrity of the tarball + +While optional, it is highly recommended to check the integrity +of the tarball. + + $ wget https://carbslinux.org/releases/carbs-rootfs-20191210.tar.xz.sha256sum + $ sha256sum -c carbs-rootfs-20191210.tar.xz.sha256sum + + +### Check the signatures + +While optional, it is highly recommended to check the signature +of the tarball + + $ wget https://carbslinux.org/releases/carbs-rootfs-20191210.tar.xz.sig + + Import the public key of release@carbslinux.org + + $ gpg --recv-keys FF484BDFEFCEF8FF + + $ gpg --verify carbs-rootfs-20191210.tar.xz.sig + +### Download Kiss Linux Chroot Helper + + $ wget https://dl.getkiss.org/kiss-chroot + + Make the script executable + + $ chmod +x kiss-chroot + +### Extract the rootfs tarball + +You need to extract the tarball to your mounted partition + + $ tar xvpf carbs-rootfs-20191210.tar.xz -C /mnt + +Chroot +------ +Chroot into Carbs Linux + + $ ./kiss-chroot /mnt + +### Enable repository signing (Highly Recommended) + +This step is optional, but very highly recommended +(I cannot stress out the amount I am recommending this). +This ensures you are receiving updates from Carbs Linux +and not some other source. + +**Install GnuPG** + +It is also a great time to learn how to use your new +package manager, KISS! You simply build and install +the package + + $ kiss build gnupg1 + $ kiss install gnupg1 + +**Import my key** + + + Import my public key (cem@ckyln.com) + + $ gpg --recv-key 4356EE08A364CE09 + + Create a .gnupg directory if it doesn't exist + + $ mkdir -p /root/.gnupg + + Trust my public key + + $ echo trusted-key 0x4356ee08a364ce09 >> /root/.gnupg/gpg.conf + +**Enable signature verification** + + +Git has a built in signature verification feature. +You can go to the repository directory and enable it + + $ cd /var/db/kiss/repo + $ git config merge.verifySignatures true + +### Installing Important Tools + +Since Carbs gives you one of the most minimal base, +you might need to apply some add-ons to your system. + +**Update packages** + +It might be a good idea to update your packages before +installing new packages. This ensure compatibility. + + $ kiss update + +**Filesystems** + + +Currently, e2fsprogs and dosfstools are supported, +as they are the most-used filesystems. + + Support for ext2, ext3, and ex4 + + $ kiss build e2fsprogs + $ kiss install e2fsprogs + + Support for dosfstools + + $ kiss build dosfstools + $ kiss install dosfstools + +**Device management** + + $ kiss build eudev + $ kiss install eudev + +**Wireless** + +**wpa_supplicant** + + $ kiss build wpa_supplicant + $ kiss install wpa_supplicant + +**eiwd (WIP)** + + $ kiss build eiwd + $ kiss install eiwd + +**dhcpcd** + + $ kiss build dhcpcd + $ kiss install dhcpcd + +**Shells** + +Carbs Linux comes preinstalled with busybox ash, but other shells +can be found on the repository + + Install bash + + $ kiss build bash + $ kiss install bash + + Install zsh + + $ kiss build zsh + $ kiss install zsh + + Install Plan9 rc-shell + + $ kiss build 9base + $ kiss install 9base + +### Install the Kernel + + +Next step is installing the kernel, which might sound as a challenge +you should download and extract the kernel tarball first. + + $ wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.tar.xz + + Let's move the sources to /usr/src + + $ mv linux-5.5.tar.xz /usr/src + $ tar xf linux-5.5.tar.xz + $ cd linux-5.5 + +**Configure the Kernel** + +You can check +to learn more about kernel configuration. Overall, [Gentoo Wiki](https://wiki.gentoo.org) +is a good place to learn about kernel configuration related to +your hardware. + +**Build and install the kernel** + +The rest of it is simple, build the kernel with +`make` and install it with `make install` + +### Bootloader + +The default bootloader is GRUB (GRand Unified Bootloader). + +Build and install GRUB + + $ kiss b grub + $ kiss i grub + + Install efibootmgr as well if your + system requires it + + $ kiss b efibootmgr + $ kiss i efibootmgr + + +**Setup GRUB** + + For BIOS: + $ grub-install --target=i386-pc /dev/sdX + + For UEFI: + $ grub-install --target=x86_64-efi --efi-directory=esp --bootloader-id=CarbsLinux + + $ grub-mkconfig -o /boot/grub/grub.cfg + + +### Install init + +Currently, default init for Carbs Linux is `sinit`, but +busybox-init is also supported. You can also change this yourself. + +To install init, you have to + + $ kiss b sinit + $ kiss i sinit + +This will also fetch busybox-init as its dependency. + + +### Enabling other repositories + +There are other repositories out there that might be of your +interest. The Official Repositories come with community and testing +repositories that are not enabled by default. You could also want to +add the Kiss Linux community repository, or someone's personal kiss +repository. + +**Obtaining repositories** + +Obtaining a repository is as simple as a git clone. You can do it +with Cem's personal repository as an example, but any other repository +will be the same. + + # Clone the repository to your desired location + # Optionally add "--depth 1" to save precious disk space + + $ git clone --depth 1 git://git.ckyln.com/kiss-repository /var/db/kiss/cem-repository + +That's it, you have obtained a new repository! + +Adding a repository to your KISS_PATH + +Now that we have obtained Cem's repository, we can add it to our KISS\_PATH! + +We need to edit `/etc/profile.d/kiss_path.sh` for this, but you +can also change your KISS\_PATH from your shellrc. + +Add the full path to the repository, in this case +`/var/db/kiss/cem-repository/cem` to the variable +and add a `:` before/after it. + +It must be looking like this. + + export KISS_PATH=/var/db/kiss/repo/core:/var/db/kiss/repo/extra:/var/db/kiss/repo/xorg:/var/db/kiss/cem-repository/cem + +Update your shell variables by doing `. /etc/profile.d/kiss_path.sh` so you can +immediately access the repository packages + + +More +---- + +You should now be able to boot into you Carbs Linux installation. +To learn more, you can visit the [wiki](//carbslinux.org/wiki) diff --git a/docs/wiki/keymaps/X-keymaps.html b/docs/wiki/keymaps/X-keymaps.html new file mode 100644 index 0000000..960ba5c --- /dev/null +++ b/docs/wiki/keymaps/X-keymaps.html @@ -0,0 +1,23 @@ + + + +X-keymaps | Carbs Linux + + + + + +

Carbs Linux - a simple busybox linux distribution

+
+View Page Source
+ + + + diff --git a/docs/wiki/keymaps/X-keymaps.txt b/docs/wiki/keymaps/X-keymaps.txt new file mode 100644 index 0000000..e69de29 diff --git a/docs/wiki/keymaps/keymaps.html b/docs/wiki/keymaps/keymaps.html new file mode 100644 index 0000000..15a24e5 --- /dev/null +++ b/docs/wiki/keymaps/keymaps.html @@ -0,0 +1,74 @@ + + + +Keymaps in TTY | Carbs Linux + + + + + +

Carbs Linux - a simple busybox linux distribution

+
+

Installing and Using Keymaps

+ +

Unlike most other distributions out there +Carbs Linux does not come preinstalled with console +keys. You probably won’t be using more than +two either. There are two ways of using keymaps

+ +

Installing the “bkeymaps” package

+ +

You can get the bkeymaps package from the +KISS community repository.

+ +

Build and install bkeymaps.

+ +
-> kiss b bkeymaps
+-> kiss i bkeymaps
+
+ +

Now you can find the keymaps in /usr/share/bkeymaps.

+ +

Downloading the keymaps you require

+ +

This will assume that you are using the us keyboard layout

+ +

You firstly will need to go to https://dev.alpinelinux.org/bkeymaps/ +and download the keymap you need

+ +

Loading keymap, doing it on login/boot

+ +
    +
  • Run loadkmap < file to load the keymap.
  • +
+ + +

Load keymap at login

+ +

If you want to load a keymap at login, you can +add the command above to your .profile file.

+ +

Load keymap at boot

+ +

You can also load keymap during boot. You should edit +/lib/init/rc.boot file and add something like

+ +
# assuming you are using trq as your keymap
+log "Setting keymap to trq..."; {
+    loadkmap < /path/to/trq.bmap
+}
+
+ +

to your main function.

+View Page Source
+ + + + diff --git a/docs/wiki/keymaps/keymaps.txt b/docs/wiki/keymaps/keymaps.txt new file mode 100644 index 0000000..89a7e8c --- /dev/null +++ b/docs/wiki/keymaps/keymaps.txt @@ -0,0 +1,52 @@ + +Installing and Using Keymaps +============================ + +Unlike most other distributions out there +Carbs Linux does not come preinstalled with console +keys. You probably won't be using more than +two either. There are two ways of using keymaps + +Installing the "bkeymaps" package +--------------------------------- + +You can get the `bkeymaps` package from the +[KISS community repository](https://github.com/kisslinux/community). + +Build and install `bkeymaps`. + + -> kiss b bkeymaps + -> kiss i bkeymaps + +Now you can find the keymaps in `/usr/share/bkeymaps`. + + +Downloading the keymaps you require +----------------------------------- + +*This will assume that you are using the us keyboard layout* + +You firstly will need to go to +and download the keymap you need + +Loading keymap, doing it on login/boot +-------------------------------------- + +- Run `loadkmap < file` to load the keymap. + +**Load keymap at login** + +If you want to load a keymap at login, you can +add the command above to your `.profile` file. + +**Load keymap at boot** + +You can also load keymap during boot. You should edit +`/lib/init/rc.boot` file and add something like + + # assuming you are using trq as your keymap + log "Setting keymap to trq..."; { + loadkmap < /path/to/trq.bmap + } + +to your main function. diff --git a/docs/wiki/system/service-management.html b/docs/wiki/system/service-management.html new file mode 100644 index 0000000..40d9c54 --- /dev/null +++ b/docs/wiki/system/service-management.html @@ -0,0 +1,53 @@ + + + +Service Management | Carbs Linux + + + + + +

Carbs Linux - a simple busybox linux distribution

+
+

Service Management

+ +

Carbs Linux uses busybox-runit as the default system supervisor.

+ +

Enabling Services

+ +

Services start immediately when you enable them, and run by default on boot.

+ +
$ ln -s /etc/sv/acpid /var/service
+
+ +

Disabling a service

+ +
$ unlink /var/service/acpid
+
+ +

Starting a service

+ +
$ sv start acpid
+
+ +

Stopping a service

+ +
$ sv stop acpid
+
+ +

More

+ +

Runit is extremely flexible and simple. Refer to sv, runsv, svc, runsvdir +help outputs for more information.

+View Page Source
+ + + + diff --git a/docs/wiki/system/service-management.txt b/docs/wiki/system/service-management.txt new file mode 100644 index 0000000..fc49f60 --- /dev/null +++ b/docs/wiki/system/service-management.txt @@ -0,0 +1,39 @@ + +Service Management +================== + +Carbs Linux uses busybox-runit as the default system supervisor. + + +Enabling Services +----------------- + +Services start immediately when you enable them, and run by default on boot. + + + $ ln -s /etc/sv/acpid /var/service + + +Disabling a service +------------------- + + $ unlink /var/service/acpid + + +Starting a service +------------------ + + $ sv start acpid + + +Stopping a service +------------------ + + $ sv stop acpid + + +More +---- + +Runit is extremely flexible and simple. Refer to `sv`, `runsv`, `svc`, `runsvdir` +help outputs for more information. diff --git a/index/20191210.news b/index/20191210.news new file mode 100644 index 0000000..ffd9237 --- /dev/null +++ b/index/20191210.news @@ -0,0 +1,2 @@ +First alpha release was made. See the [downloads page](//dl.carbslinux.org/releases). + diff --git a/index/20191212.news b/index/20191212.news new file mode 100644 index 0000000..2cecad7 --- /dev/null +++ b/index/20191212.news @@ -0,0 +1,3 @@ +Busybox and Busybox-init has been seperated into two different packages. +This is for adding standalone runit/runit-init to the repositories. + diff --git a/index/20191215.news b/index/20191215.news new file mode 100644 index 0000000..774383c --- /dev/null +++ b/index/20191215.news @@ -0,0 +1,5 @@ +Carbs Linux Wiki is now available to be edited and updated by the users go +to the [wiki](//carbslinux.org/wiki) to obtain more information. + +**February 2020 EDIT:** Changed link for wiki + diff --git a/index/20191217.news b/index/20191217.news new file mode 100644 index 0000000..d81e3ea --- /dev/null +++ b/index/20191217.news @@ -0,0 +1,2 @@ +Installation instruction are now complete. A review would be greatly appreciated! + diff --git a/index/20191218.news b/index/20191218.news new file mode 100644 index 0000000..9216ec0 --- /dev/null +++ b/index/20191218.news @@ -0,0 +1,2 @@ +carbs-rootfs-20191218.tar.xz was [released](//dl.carbslinux.org/releases) + diff --git a/index/20200109.news b/index/20200109.news new file mode 100644 index 0000000..12873c5 --- /dev/null +++ b/index/20200109.news @@ -0,0 +1,11 @@ +Happy new year, everyone! I am back after some long silence. I was unable to commit for a +while, but I have pulled some new updates from the KISS repository, added some of my own. +This week I will be changing/adding some things. + +Important things are, + +* Carbs-init was updated to 0.3. +* I will be adding an implementation of suckless.org's [sinit](//core.suckless.org/sinit) as `carbs-sinit` +* Carbs Repository was added to [repology.org](//repology.org/repository/carbs) +* A new rootfs tarball will be coming up tomorrow. + diff --git a/index/20200110.news b/index/20200110.news new file mode 100644 index 0000000..bdf0afd --- /dev/null +++ b/index/20200110.news @@ -0,0 +1,2 @@ +carbs-rootfs-20200110.tar.xz was [released](//dl.carbslinux.org/releases) + diff --git a/index/20200113.news b/index/20200113.news new file mode 100644 index 0000000..b9139a0 --- /dev/null +++ b/index/20200113.news @@ -0,0 +1,16 @@ +**Busybox update reqires manual intervention** + +The new busybox package conflicts with the pre-update busybox-init. That's why +you should rebuild and install `busybox-init` before doing the update. + + # Do a kiss update first (but don't actually update it yet), or manually pull the git repository + $ kiss u # Cancel this operation after it asks for you to confirm the update + + # Install the busybox-init package + $ kiss b busybox-init && kiss i busybox-init + + # Continue your update as you normally would. + $ kiss u + +I have moved runit and logging utilities from the busybox-init package to the busybox +package, which is the cause of these conflicts. diff --git a/index/20200115.news b/index/20200115.news new file mode 100644 index 0000000..a49aade --- /dev/null +++ b/index/20200115.news @@ -0,0 +1,2 @@ +sinit has been taken to `core`, and is now officially supported + diff --git a/index/20200122.news b/index/20200122.news new file mode 100644 index 0000000..76af4d2 --- /dev/null +++ b/index/20200122.news @@ -0,0 +1,3 @@ +Expect downtime on Jan 24 2020 22:00 UTC as I will be migrating +this web server to my Carbs Linux server! + diff --git a/index/20200128.news b/index/20200128.news new file mode 100644 index 0000000..6589b86 --- /dev/null +++ b/index/20200128.news @@ -0,0 +1,8 @@ +Web Server is now on a Carbs Linux server. It is not complete yet, +but I will be adding a little more for the intended functionality. +Downtimes can be expected. + +UPDATE: ssl is now working. + +UPDATE2: downloads are back again. + diff --git a/index/20200213.news b/index/20200213.news new file mode 100644 index 0000000..13144cd --- /dev/null +++ b/index/20200213.news @@ -0,0 +1,4 @@ +Runit is now released on the core repository! You can now replace +busybox-init with runit-init. You can also replace the busybox runit +utilities with the actual runit. This will reduce the dependency on +busybox greatly. diff --git a/index/20200214.news b/index/20200214.news new file mode 100644 index 0000000..0926126 --- /dev/null +++ b/index/20200214.news @@ -0,0 +1,49 @@ +**IMPORTANT!** Carbs-init update to be released on 17th of February +will require manual intervention. I am holding this update back so +people can see it before they update their system (even though the +update will show the same message as this). The rationale for the +update is explained below the intervention. + + # There is an explanation for each init + # You only need to follow the instructions + # for your own init-system + + ## busybox-init + # If you did not edit your inittab simply + # move inittab.new to inittab + -> mv /etc/inittab.new /etc/inittab + + # If you did edit your inittab you can use + # a simple sed command to remove the necessary lines + -> sed -i '/getty/d;/runsvdir/d' /etc/inittab + + + ## runit + # same as busybox-init, if you did not edit + # /etc/runit/2 move 2.new to 2 + -> mv /etc/runit/2.new /etc/runit/2 + + # else + -> vim /etc/runit/2 + # open your 2 file and remove the for loop containing + # getty commands. If you are using runit, it is recommended + # to comment out /etc/init/runit.boot + + ## sinit/minit + # If you did not edit your {sinit-,}launch-services.boot + # you can simply remove it. + -> rm -f /etc/init/launch-services.boot /etc/init/sinit-launch-services.boot + + # This should leave you without any issues, and you can safely reboot. + +Carbs-init update is to make sure init systems do not clash, and do +not have to use different files. This is a sensible update both for +the user user and for the maintainer side. + +To give an example, before this update busybox-init was managing getty +through `inittab`, runit was managing through `/etc/runit/2`, and +minit/sinit were launching from `/etc/init/launch-services.boot`. This +is a configuration nightmare for everyone, and since I am maintaining +and constantly testing those init providers, a huge nightmare for me. +This is a Quality of Life update. + diff --git a/index/20200218.news b/index/20200218.news new file mode 100644 index 0000000..31bc8b3 --- /dev/null +++ b/index/20200218.news @@ -0,0 +1,8 @@ +A new tarball is released. It can be found on . + +**edit:** I have removed the tarball because of a bootstrapping issue. +I will be re-adding it later today. + +**edit 2:** I have added a tarball (20200219) to reflect my recent +changes on Busybox. + diff --git a/index/20200405.news b/index/20200405.news new file mode 100644 index 0000000..a51cb6c --- /dev/null +++ b/index/20200405.news @@ -0,0 +1,11 @@ +Carbs Linux repositories will be hosted only on Github. Commits will be +pushed there, and not the repository. You have until +May 4, 2020 Monday to switch your remotes to . +The git repository will continue to be served until then (without additional +commits). + +You can switch your remote by executing the following command on your +repository directory. + + git remote set-url origin https://github.com/CarbsLinux/repository + diff --git a/index/index.md b/index/index.md new file mode 100644 index 0000000..f28afb8 --- /dev/null +++ b/index/index.md @@ -0,0 +1,32 @@ +Carbs Linux is an in-development Linux® distribution with a suckless mindset. +The system will consist of only the necessary programs to create a Linux +distribution. + +Package Manager +--------------- + +Carbs Linux is built upon the world's best Linux distribution +[KISS Linux](https://getkiss.org) and uses [kiss](https://github.com/kisslinux/kiss) +as its package manager, which has proven to be extremely flexible. I aim to move Carbs +to an even more suckless path. + + +Sane defaults +------------- + +By default, Carbs Linux comes with busybox for coreutils, runit as the system +supervisor, and sinit as the init, though nothing holds you from changing any +of them. + + +Links +----- + +* Reddit - [/r/carbslinux](http://reddit.com/r/carbslinux) +* Matrix - [#carbs-linux:matrix.org](https://matrix.to/#/#carbs-linux:matrix.org) + + +News +---- + +[RSS Feed](/news.xml) diff --git a/pull-wiki b/pull-wiki new file mode 100755 index 0000000..9a65a86 --- /dev/null +++ b/pull-wiki @@ -0,0 +1,7 @@ +#!/bin/sh + +TEMP="/tmp/carbswiki" + +rm -rf "$TEMP" ; git clone --depth 1 https://github.com/CarbsLinux/wiki.wiki "$TEMP" +rsync -av --delete -C "$TEMP/" src/wiki/ +rm -rf "$TEMP" diff --git a/src/blog/20200128.md b/src/blog/20200128.md new file mode 100644 index 0000000..4c5c3c1 --- /dev/null +++ b/src/blog/20200128.md @@ -0,0 +1,23 @@ +Title: Switching to New Website + +Switching to New Website +------------------------ + +**Date:** Jan 28 2020 + +In case you haven't seen it before, this website +was powered by [werc](http://werc.cat-v.org). And +even though I liked it really much, it was too +powerful for a small website like this. + +So I have decided to reimplement this website with +my own static generation scripts. The source will +probably be on +when I decide to publish the website. + +The generation requires Plan9 programs, although +I have used them just for my enthusiasm. I have built +the site with a combination of mk (instead of make), rc, +and POSIX sh. I am not yet exactly familiar with rc, +but I will replace the shell scripts when I feel like +I can. diff --git a/src/blog/index.md b/src/blog/index.md new file mode 100644 index 0000000..9d9a9aa --- /dev/null +++ b/src/blog/index.md @@ -0,0 +1,9 @@ +Blog Index +========== + +This is the Carbs Linux Blog Index. You can find every post +here. [RSS Feed] + +[RSS Feed]: /rss.xml + +* Jan 28 2020 - [Switching to New Website](20200128.html) diff --git a/src/contributing.md b/src/contributing.md new file mode 100644 index 0000000..3fe71ce --- /dev/null +++ b/src/contributing.md @@ -0,0 +1,9 @@ +Contribute to the Carbs Linux Project +===================================== + +This is a small project made possible by volunteers. There are +ways you can help this project stay alive. + +* Contribute to the [Carbs Linux repository](http://git.carbslinux.org/repository/log.html) +* Contribute to the [KISS community repository](https://github.com/kisslinux/community) +* Contribute to the [wiki](//wiki.carbslinux.org) diff --git a/src/index.md b/src/index.md new file mode 100644 index 0000000..062cd3f --- /dev/null +++ b/src/index.md @@ -0,0 +1,205 @@ +Carbs Linux is an in-development Linux® distribution with a suckless mindset. +The system will consist of only the necessary programs to create a Linux +distribution. + +Package Manager +--------------- + +Carbs Linux is built upon the world's best Linux distribution +[KISS Linux](https://getkiss.org) and uses [kiss](https://github.com/kisslinux/kiss) +as its package manager, which has proven to be extremely flexible. I aim to move Carbs +to an even more suckless path. + + +Sane defaults +------------- + +By default, Carbs Linux comes with busybox for coreutils, runit as the system +supervisor, and sinit as the init, though nothing holds you from changing any +of them. + + +Links +----- + +* Reddit - [/r/carbslinux](http://reddit.com/r/carbslinux) +* Matrix - [#carbs-linux:matrix.org](https://matrix.to/#/#carbs-linux:matrix.org) + + +News +---- + +[RSS Feed](/news.xml) + +### Apr 05 2020 + +Carbs Linux repositories will be hosted only on Github. Commits will be +pushed there, and not the repository. You have until +May 4, 2020 Monday to switch your remotes to . +The git repository will continue to be served until then (without additional +commits). + +You can switch your remote by executing the following command on your +repository directory. + + git remote set-url origin https://github.com/CarbsLinux/repository + + +### Feb 18 2020 + +A new tarball is released. It can be found on . + +**edit:** I have removed the tarball because of a bootstrapping issue. +I will be re-adding it later today. + +**edit 2:** I have added a tarball (20200219) to reflect my recent +changes on Busybox. + + +### Feb 14 2020 + +**IMPORTANT!** Carbs-init update to be released on 17th of February +will require manual intervention. I am holding this update back so +people can see it before they update their system (even though the +update will show the same message as this). The rationale for the +update is explained below the intervention. + + # There is an explanation for each init + # You only need to follow the instructions + # for your own init-system + + ## busybox-init + # If you did not edit your inittab simply + # move inittab.new to inittab + -> mv /etc/inittab.new /etc/inittab + + # If you did edit your inittab you can use + # a simple sed command to remove the necessary lines + -> sed -i '/getty/d;/runsvdir/d' /etc/inittab + + + ## runit + # same as busybox-init, if you did not edit + # /etc/runit/2 move 2.new to 2 + -> mv /etc/runit/2.new /etc/runit/2 + + # else + -> vim /etc/runit/2 + # open your 2 file and remove the for loop containing + # getty commands. If you are using runit, it is recommended + # to comment out /etc/init/runit.boot + + ## sinit/minit + # If you did not edit your {sinit-,}launch-services.boot + # you can simply remove it. + -> rm -f /etc/init/launch-services.boot /etc/init/sinit-launch-services.boot + + # This should leave you without any issues, and you can safely reboot. + +Carbs-init update is to make sure init systems do not clash, and do +not have to use different files. This is a sensible update both for +the user user and for the maintainer side. + +To give an example, before this update busybox-init was managing getty +through `inittab`, runit was managing through `/etc/runit/2`, and +minit/sinit were launching from `/etc/init/launch-services.boot`. This +is a configuration nightmare for everyone, and since I am maintaining +and constantly testing those init providers, a huge nightmare for me. +This is a Quality of Life update. + + +### Feb 13 2020 + +Runit is now released on the core repository! You can now replace +busybox-init with runit-init. You can also replace the busybox runit +utilities with the actual runit. This will reduce the dependency on +busybox greatly. + +### Jan 28 2020 + +Web Server is now on a Carbs Linux server. It is not complete yet, +but I will be adding a little more for the intended functionality. +Downtimes can be expected. + +UPDATE: ssl is now working. + +UPDATE2: downloads are back again. + + +### Jan 22 2020 + +Expect downtime on Jan 24 2020 22:00 UTC as I will be migrating +this web server to my Carbs Linux server! + + +### Jan 15 2020 + +sinit has been taken to `core`, and is now officially supported + + +### Jan 13 2020 + +**Busybox update reqires manual intervention** + +The new busybox package conflicts with the pre-update busybox-init. That's why +you should rebuild and install `busybox-init` before doing the update. + + # Do a kiss update first (but don't actually update it yet), or manually pull the git repository + $ kiss u # Cancel this operation after it asks for you to confirm the update + + # Install the busybox-init package + $ kiss b busybox-init && kiss i busybox-init + + # Continue your update as you normally would. + $ kiss u + +I have moved runit and logging utilities from the busybox-init package to the busybox +package, which is the cause of these conflicts. + +### Jan 10 2020 + +carbs-rootfs-20200110.tar.xz was [released](//dl.carbslinux.org/releases) + + +### Jan 09 2020 + +Happy new year, everyone! I am back after some long silence. I was unable to commit for a +while, but I have pulled some new updates from the KISS repository, added some of my own. +This week I will be changing/adding some things. + +Important things are, + +* Carbs-init was updated to 0.3. +* I will be adding an implementation of suckless.org's [sinit](//core.suckless.org/sinit) as `carbs-sinit` +* Carbs Repository was added to [repology.org](//repology.org/repository/carbs) +* A new rootfs tarball will be coming up tomorrow. + + +### Dec 18 2019 + +carbs-rootfs-20191218.tar.xz was [released](//dl.carbslinux.org/releases) + + +### Dec 17 2019 + +Installation instruction are now complete. A review would be greatly appreciated! + + +### Dec 15 2019 + +Carbs Linux Wiki is now available to be edited and updated by the users go +to the [wiki](//carbslinux.org/wiki) to obtain more information. + +**February 2020 EDIT:** Changed link for wiki + + +### Dec 12 2019 + +Busybox and Busybox-init has been seperated into two different packages. +This is for adding standalone runit/runit-init to the repositories. + + +### Dec 10 2019 + +First alpha release was made. See the [downloads page](//dl.carbslinux.org/releases). + diff --git a/src/people.md b/src/people.md new file mode 100644 index 0000000..dc49bf3 --- /dev/null +++ b/src/people.md @@ -0,0 +1,3 @@ +People +====== +* Cem Keylan - Founder diff --git a/src/repositories.md b/src/repositories.md new file mode 100644 index 0000000..794e451 --- /dev/null +++ b/src/repositories.md @@ -0,0 +1,22 @@ +Repositories endorsed by Carbs +============================== +The power of KISS package manager is the way +it is really flexible. You can use multiple +repositories at the same time. + +Official Repository +------------------- + +The official repository comes installed in +the rootfs tarball. You can view the sources +[online](//git.carbslinux.org/repository/log.html) + + +Other repositories +------------------ + +* [KISS Community Repository](https://github.com/kisslinux/community) +* [KISS Official Repository](https://github.com/kisslinux/repo) + +**NOTE:** Note that the *official* repositories of +KISS Linux are not identical and may have conflicts. diff --git a/src/wiki/boot/module-management.md b/src/wiki/boot/module-management.md new file mode 100644 index 0000000..c9cdffb --- /dev/null +++ b/src/wiki/boot/module-management.md @@ -0,0 +1,15 @@ +Title: Module Management + +Module Management +================= + +With **busybox-init**, a module can be loaded at boot by adding such a line to your `inittab` + + ::once:/bin/modprobe module-name + + +With **sinit**, a module can be loaded from your `/etc/rc.local` file. Add this to your file + + /bin/modprobe module-name + + diff --git a/src/wiki/index.md b/src/wiki/index.md new file mode 100644 index 0000000..dd27004 --- /dev/null +++ b/src/wiki/index.md @@ -0,0 +1,17 @@ +Wiki +==== + +Welcome to the Carbs Linux wiki! This wiki is open for access, +and can be edited freely by anyone who wants to contribute. + +If you want to make a contribution, go to + +Content +------- + +* [Module Management](boot/module-management.html) +* [Switching to Sinit](init/switching-to-sinit.html) +* [Install](install.html) +* [X-keymaps](keymaps/X-keymaps.html) +* [Keymaps in TTY](keymaps/keymaps.html) +* [Service Management](system/service-management.html) diff --git a/src/wiki/init/switching-to-sinit.md b/src/wiki/init/switching-to-sinit.md new file mode 100644 index 0000000..180b736 --- /dev/null +++ b/src/wiki/init/switching-to-sinit.md @@ -0,0 +1,52 @@ +Title: Switching to Sinit + +Switching to Sinit +================== + +Carbs Linux runs `busybox-init` by default. You can switch to +anything else you desire, but only busybox-init and sinit are +officially supported. Switching to sinit is extremely easy, you +can be up and running within minutes. The only "hard" requirement +is an environment you will be chrooting in. So, let's begin! + + +Preparing your environment +-------------------------- + +From your other environment, download the kiss-chroot utility +and make it executable. + + $ wget https://dl.getkiss.org/kiss-chroot + $ chmod +x kiss-chroot + + # From your environment start the chroot + $ kiss-chroot /mnt + +Removing busybox-init +--------------------- + +Now that we are in chroot environment, let's remove busybox-init. + + $ kiss r busybox-init + + +Installing and configuring sinit +-------------------------------- + +Build and install sinit + + $ kiss b sinit + $ kiss i sinit + +Open up your `/etc/init/rc.conf` now and uncomment +the variables regarding SINIT. You are ready now. + +If you edited your inittab, make sure you reflect your changes +on the `/etc/init/sinit-launch-services.boot` file. + + +Finishing up +------------ + +If all of the above is done, simply exit the chroot and reboot. +Sinit should be functioning without any issues. diff --git a/src/wiki/install.md b/src/wiki/install.md new file mode 100644 index 0000000..fd6ea73 --- /dev/null +++ b/src/wiki/install.md @@ -0,0 +1,304 @@ +Title: Install + +Installation Instructions +========================= + +This post will guide you step-by-step in order to install +Carbs Linux. It is not complete yet. + + +Downloading and Getting Ready to Chroot +--------------------------------------- + +Installing Carbs Linux is the same as installing most +rootfs distributions, such as Gentoo, or Void Linux. + + +### Requirements + +You simply need a Live Linux ISO. Gentoo would be the best +as programs you will require will be already there. Get the +ISO, boot it and set up your network. + +**Required Programs:** + +* tar +* wget +* xz + +Rest of the instructions assume that you have set all of these +up, and will continue on. + + +### Download + + +First, we need to download the rootfs tarball. In your terminal +type + + $ wget https://carbslinux.org/releases/carbs-rootfs-20191210.tar.xz + + +### Check the integrity of the tarball + +While optional, it is highly recommended to check the integrity +of the tarball. + + $ wget https://carbslinux.org/releases/carbs-rootfs-20191210.tar.xz.sha256sum + $ sha256sum -c carbs-rootfs-20191210.tar.xz.sha256sum + + +### Check the signatures + +While optional, it is highly recommended to check the signature +of the tarball + + $ wget https://carbslinux.org/releases/carbs-rootfs-20191210.tar.xz.sig + + Import the public key of release@carbslinux.org + + $ gpg --recv-keys FF484BDFEFCEF8FF + + $ gpg --verify carbs-rootfs-20191210.tar.xz.sig + +### Download Kiss Linux Chroot Helper + + $ wget https://dl.getkiss.org/kiss-chroot + + Make the script executable + + $ chmod +x kiss-chroot + +### Extract the rootfs tarball + +You need to extract the tarball to your mounted partition + + $ tar xvpf carbs-rootfs-20191210.tar.xz -C /mnt + +Chroot +------ +Chroot into Carbs Linux + + $ ./kiss-chroot /mnt + +### Enable repository signing (Highly Recommended) + +This step is optional, but very highly recommended +(I cannot stress out the amount I am recommending this). +This ensures you are receiving updates from Carbs Linux +and not some other source. + +**Install GnuPG** + +It is also a great time to learn how to use your new +package manager, KISS! You simply build and install +the package + + $ kiss build gnupg1 + $ kiss install gnupg1 + +**Import my key** + + + Import my public key (cem@ckyln.com) + + $ gpg --recv-key 4356EE08A364CE09 + + Create a .gnupg directory if it doesn't exist + + $ mkdir -p /root/.gnupg + + Trust my public key + + $ echo trusted-key 0x4356ee08a364ce09 >> /root/.gnupg/gpg.conf + +**Enable signature verification** + + +Git has a built in signature verification feature. +You can go to the repository directory and enable it + + $ cd /var/db/kiss/repo + $ git config merge.verifySignatures true + +### Installing Important Tools + +Since Carbs gives you one of the most minimal base, +you might need to apply some add-ons to your system. + +**Update packages** + +It might be a good idea to update your packages before +installing new packages. This ensure compatibility. + + $ kiss update + +**Filesystems** + + +Currently, e2fsprogs and dosfstools are supported, +as they are the most-used filesystems. + + Support for ext2, ext3, and ex4 + + $ kiss build e2fsprogs + $ kiss install e2fsprogs + + Support for dosfstools + + $ kiss build dosfstools + $ kiss install dosfstools + +**Device management** + + $ kiss build eudev + $ kiss install eudev + +**Wireless** + +**wpa_supplicant** + + $ kiss build wpa_supplicant + $ kiss install wpa_supplicant + +**eiwd (WIP)** + + $ kiss build eiwd + $ kiss install eiwd + +**dhcpcd** + + $ kiss build dhcpcd + $ kiss install dhcpcd + +**Shells** + +Carbs Linux comes preinstalled with busybox ash, but other shells +can be found on the repository + + Install bash + + $ kiss build bash + $ kiss install bash + + Install zsh + + $ kiss build zsh + $ kiss install zsh + + Install Plan9 rc-shell + + $ kiss build 9base + $ kiss install 9base + +### Install the Kernel + + +Next step is installing the kernel, which might sound as a challenge +you should download and extract the kernel tarball first. + + $ wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.tar.xz + + Let's move the sources to /usr/src + + $ mv linux-5.5.tar.xz /usr/src + $ tar xf linux-5.5.tar.xz + $ cd linux-5.5 + +**Configure the Kernel** + +You can check +to learn more about kernel configuration. Overall, [Gentoo Wiki](https://wiki.gentoo.org) +is a good place to learn about kernel configuration related to +your hardware. + +**Build and install the kernel** + +The rest of it is simple, build the kernel with +`make` and install it with `make install` + +### Bootloader + +The default bootloader is GRUB (GRand Unified Bootloader). + +Build and install GRUB + + $ kiss b grub + $ kiss i grub + + Install efibootmgr as well if your + system requires it + + $ kiss b efibootmgr + $ kiss i efibootmgr + + +**Setup GRUB** + + For BIOS: + $ grub-install --target=i386-pc /dev/sdX + + For UEFI: + $ grub-install --target=x86_64-efi --efi-directory=esp --bootloader-id=CarbsLinux + + $ grub-mkconfig -o /boot/grub/grub.cfg + + +### Install init + +Currently, default init for Carbs Linux is `sinit`, but +busybox-init is also supported. You can also change this yourself. + +To install init, you have to + + $ kiss b sinit + $ kiss i sinit + +This will also fetch busybox-init as its dependency. + + +### Enabling other repositories + +There are other repositories out there that might be of your +interest. The Official Repositories come with community and testing +repositories that are not enabled by default. You could also want to +add the Kiss Linux community repository, or someone's personal kiss +repository. + +**Obtaining repositories** + +Obtaining a repository is as simple as a git clone. You can do it +with Cem's personal repository as an example, but any other repository +will be the same. + + # Clone the repository to your desired location + # Optionally add "--depth 1" to save precious disk space + + $ git clone --depth 1 git://git.ckyln.com/kiss-repository /var/db/kiss/cem-repository + +That's it, you have obtained a new repository! + +Adding a repository to your KISS_PATH + +Now that we have obtained Cem's repository, we can add it to our KISS\_PATH! + +We need to edit `/etc/profile.d/kiss_path.sh` for this, but you +can also change your KISS\_PATH from your shellrc. + +Add the full path to the repository, in this case +`/var/db/kiss/cem-repository/cem` to the variable +and add a `:` before/after it. + +It must be looking like this. + + export KISS_PATH=/var/db/kiss/repo/core:/var/db/kiss/repo/extra:/var/db/kiss/repo/xorg:/var/db/kiss/cem-repository/cem + +Update your shell variables by doing `. /etc/profile.d/kiss_path.sh` so you can +immediately access the repository packages + + +More +---- + +You should now be able to boot into you Carbs Linux installation. +To learn more, you can visit the [wiki](//carbslinux.org/wiki) diff --git a/src/wiki/keymaps/X-keymaps.md b/src/wiki/keymaps/X-keymaps.md new file mode 100644 index 0000000..e69de29 diff --git a/src/wiki/keymaps/keymaps.md b/src/wiki/keymaps/keymaps.md new file mode 100644 index 0000000..6bcce03 --- /dev/null +++ b/src/wiki/keymaps/keymaps.md @@ -0,0 +1,53 @@ +Title: Keymaps in TTY + +Installing and Using Keymaps +============================ + +Unlike most other distributions out there +Carbs Linux does not come preinstalled with console +keys. You probably won't be using more than +two either. There are two ways of using keymaps + +Installing the "bkeymaps" package +--------------------------------- + +You can get the `bkeymaps` package from the +[KISS community repository](https://github.com/kisslinux/community). + +Build and install `bkeymaps`. + + -> kiss b bkeymaps + -> kiss i bkeymaps + +Now you can find the keymaps in `/usr/share/bkeymaps`. + + +Downloading the keymaps you require +----------------------------------- + +*This will assume that you are using the us keyboard layout* + +You firstly will need to go to +and download the keymap you need + +Loading keymap, doing it on login/boot +-------------------------------------- + +- Run `loadkmap < file` to load the keymap. + +**Load keymap at login** + +If you want to load a keymap at login, you can +add the command above to your `.profile` file. + +**Load keymap at boot** + +You can also load keymap during boot. You should edit +`/lib/init/rc.boot` file and add something like + + # assuming you are using trq as your keymap + log "Setting keymap to trq..."; { + loadkmap < /path/to/trq.bmap + } + +to your main function. diff --git a/src/wiki/system/service-management.md b/src/wiki/system/service-management.md new file mode 100644 index 0000000..d279b86 --- /dev/null +++ b/src/wiki/system/service-management.md @@ -0,0 +1,40 @@ +Title: Service Management + +Service Management +================== + +Carbs Linux uses busybox-runit as the default system supervisor. + + +Enabling Services +----------------- + +Services start immediately when you enable them, and run by default on boot. + + + $ ln -s /etc/sv/acpid /var/service + + +Disabling a service +------------------- + + $ unlink /var/service/acpid + + +Starting a service +------------------ + + $ sv start acpid + + +Stopping a service +------------------ + + $ sv stop acpid + + +More +---- + +Runit is extremely flexible and simple. Refer to `sv`, `runsv`, `svc`, `runsvdir` +help outputs for more information. -- cgit v1.2.3