aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCem Keylan <cem@ckyln.com>2020-04-06 12:06:20 +0300
committerCem Keylan <cem@ckyln.com>2020-04-06 12:06:20 +0300
commit979a10c2a68746565f330e871da2a0a112fa1604 (patch)
treeedc502252ef282c7f67f40251300130aa4b094c1 /src
downloadwebsite-979a10c2a68746565f330e871da2a0a112fa1604.tar.gz
initial commit
Diffstat (limited to 'src')
-rw-r--r--src/blog/20200128.md23
-rw-r--r--src/blog/index.md9
-rw-r--r--src/contributing.md9
-rw-r--r--src/index.md205
-rw-r--r--src/people.md3
-rw-r--r--src/repositories.md22
-rw-r--r--src/wiki/boot/module-management.md15
-rw-r--r--src/wiki/index.md17
-rw-r--r--src/wiki/init/switching-to-sinit.md52
-rw-r--r--src/wiki/install.md304
-rw-r--r--src/wiki/keymaps/X-keymaps.md0
-rw-r--r--src/wiki/keymaps/keymaps.md53
-rw-r--r--src/wiki/system/service-management.md40
13 files changed, 752 insertions, 0 deletions
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 <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.
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 <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](//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 <cem@ckyln.com>
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 <https://github.com/CarbsLinux/wiki>
+
+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 <https://wiki.gentoo.org/wiki/Kernel/Configuration>
+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!
+
+<strong>Adding a repository to your KISS_PATH</strong>
+
+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
--- /dev/null
+++ b/src/wiki/keymaps/X-keymaps.md
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 <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.
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.