Skip to content

Commit

Permalink
Merge branch 'main' into Troubleshooting-and-FAQ-page
Browse files Browse the repository at this point in the history
  • Loading branch information
nothingneko committed May 27, 2024
2 parents e12399c + a605ea3 commit 2d073a3
Show file tree
Hide file tree
Showing 61 changed files with 1,315 additions and 378 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,5 @@ pnpm-debug.log*

# macOS-specific files
.DS_Store

bun.lockb
Binary file added bun.lockb
Binary file not shown.
Binary file added public/assets/gparted/apply.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/assets/gparted/checkwork.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/assets/gparted/disk.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/assets/gparted/done.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/assets/gparted/fillwhole.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/assets/gparted/gpt.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/assets/gparted/part.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/assets/gparted/progress.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/assets/gparted/resizemenu.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified public/assets/welcome-window.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified public/og-image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion src/components/Footer/Footer.astro
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import ThemeToggleButton from "../RightSidebar/ThemeToggleButton";
---

<footer>
<p>Copyright © 2021 - 2023 Ultramarine Linux Team</p>
<p>Copyright © 2021 - {new Date().getFullYear()} Fyra Labs</p>
<ThemeToggleButton client:visible />
</footer>

Expand Down
6 changes: 6 additions & 0 deletions src/components/HeadSEO.astro
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,9 @@ const imageAlt = image?.alt ?? OPEN_GRAPH.image.alt;
https://www.npmjs.com/package/schema-dts seems like a great resource for implementing this.
Even better, there's a React component that integrates with `schema-dts`: https://github.com/google/react-schemaorg
-->

<!-- Analytics -->
<script
defer
data-domain="wiki.ultramarine-linux.org"
src="https://plausible.fyralabs.com/js/script.js"></script>
22 changes: 19 additions & 3 deletions src/consts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,15 +36,27 @@ export const SIDEBAR: Sidebar = {
Installation: [
{ text: "Getting Ultramarine", link: "en/installation/getting" },
{ text: "Installation", link: "en/installation/installation" },
// {
// text: "Installation with Readymade",
//link: "en/installation/readymade",
//},
{
text: "Installation on Raspberry Pi",
link: "en/installation/rpi",
},
{ text: "Post-Installation", link: "en/installation/postinstall" },
{
text: "Advanced Post-Install Steps",
link: "en/installation/post-advanced",
},
],
Contributing: [
{ text: "Overview", link: "en/contributing/contributorguide" },
{ text: "Development", link: "en/contributing/hacking" },
],
Hardware: [
{ text: "System Requirements", link: "en/hardware/requirements" },
{ text: "Ultramarine Everywhere", link: "en/hardware/everywhere" },
{ text: "Ultramarine Anywhere", link: "en/hardware/anywhere" },
{ text: "NVIDIA", link: "en/hardware/nvidia" },
{ text: "Microsoft Surface", link: "en/hardware/surface" },
{
Expand All @@ -54,15 +66,19 @@ export const SIDEBAR: Sidebar = {
{ text: "BIOS Keys", link: "en/hardware/bioskeys" },
],
"Linux Concepts": [
{ text: "Concepts Overview", link: "en/linux/overview" },
{ text: "What is Linux?", link: "en/linux/overview" },
{ text: "The File System", link: "en/linux/filesystem" },
{ text: "Device Files", link: "en/linux/devicefiles" },
{ text: "Permissions", link: "en/linux/permissions" },
{ text: "Software and Package Management", link: "en/linux/software" },
{ text: "The Shell", link: "en/linux/shell" },
{ text: "Security and Privacy", link: "en/linux/securityprivacy" },
],

Usage: [{ text: "Gaming on Ultramarine", link: "en/usage/gaming" }],
Usage: [
{ text: "Gaming on Ultramarine", link: "en/usage/gaming" },
{ text: "Localization", link: "en/usage/l10n" },
],

"Release Notes": [{ text: "Errata", link: "en/release/errata" }],
Chromebook: [
Expand Down
11 changes: 3 additions & 8 deletions src/content/docs/de/release/errata.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -51,14 +51,9 @@ sudo dnf copr enable cappyishihara/fedorajam-plus fedora-36-x86_64

This will be addressed in a `dnf-plugins-core` patch, either upstream or locally with Ultramarine.

<Alert type="info">
This issue has been addressed upstream in the{" "}
<a href="https://github.com/rpm-software-management/dnf-plugins-core/pull/463">
following pull request
</a>{" "}
<br /> It will be included in the next release of dnf-plugins-core after
4.3.1.
</Alert>
This issue has been addressed upstream in the [following pull request](https://github.com/rpm-software-management/dnf-plugins-core/pull/463)

It will be included in the next release of dnf-plugins-core after 4.3.1.

### GNOME

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Android (Everywhere)"
description: "Android Devices in the Ultramarine Everywhere Initiative"
title: "Android (Anywhere)"
description: "Android Devices in the Ultramarine Anywhere Initiative"
---

import Alert from "../../../../components/Docs/Alert.astro";
Expand All @@ -10,7 +10,7 @@ import Alert from "../../../../components/Docs/Alert.astro";
page is subject to change
</Alert>

Android Devices are very common, and (most of the time) extremely customiseable. We do not have a target release or full plan at this time.
Android Devices are very common, and (most of the time) extremely customiseable. We do not have a target release or full plan at this time, but we will support in the (hopefully) near future.

## Implementation

Expand Down
17 changes: 17 additions & 0 deletions src/content/docs/en/anywhere/applesilicon.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
title: "Apple Silicon Macs (Anywhere)"
description: "Apple Silicon in the Ultramarine Anywhere Initiative"
---

import Alert from "../../../../components/Docs/Alert.astro";

<Alert type="info">
This device type is still in the **Planning Phase**. All information on this
page is subject to change
</Alert>

We plan to use the Asahi script/patches from upstream. This will happen sometime in the near future.

## Implementation

- Potential GUI installer (Readymade from inside macOS)
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Chromebook (Everywhere)"
description: "Chromebooks in the Ultramarine Everywhere Initiative"
title: "Chromebook (Anywhere)"
description: "Chromebooks in the Ultramarine Anywhere Initiative"
---

import Alert from "../../../../components/Docs/Alert.astro";
Expand All @@ -11,31 +11,38 @@ import Alert from "../../../../components/Docs/Alert.astro";
what you're doing.
</Alert>

Chromebooks were an obvious target for Ultramarine Everywhere, despite being mostly
standard hardware, they have custom EC and strange firmware. We began development
in Ultramarine 39, and are preparing to launch midcycle.
Chromebooks were an obvious target for Ultramarine Anywhere, despite being mostly
standard hardware, they have custom EC and strange firmware.

Chromebook support in Ultramarine Linux is provided in partnership with the [Chrultrabook Project](https://chrultrabook.com).

# x86

All x86 Chromebooks that use Depthcharge are supported by Ultramarine Chromebook Edition.

## How it Works

Ultramarine Chromebook Edition uses a special bootloader called [Submarine](https://developer.fyralabs.com/submarine) to load the kernel.

Under the hood, Submarine is an incredibly minimal Linux OS based on [u-root](https://github.com/u-root/u-root), it's only really usable for debug and booting a full distribution. Once Submarine is loaded, we use [LinuxBoot](https://www.linuxboot.org/) to boot a full copy of Ultramarine (and hopefully more distros in the future).

Now for the big question, how do we do this without modifying the firmware? We take advantage of the way Depthcharge (the ChromeOS firmware) works. We store Submarine in a 16MiB partition on disk, this is normally used by ChromeOS to store a full ChromeOS Kernel and initramfs. Depthcharge doesn't actually check if the contents of the partition are a valid kernel, it just checks for a GPT Header and runs whatever code is found in the partition, in our case, Submarine.

By default, Depthcharge will only boot code with Google's signing keys, we get around this by enabling the built-in ChromeOS developer mode.

To summarise, we boot a tiny Linux distribution (Submarine) and use it to launch Ultramarine's vmlinuz and initramfs using kexec.

## Userland Changes

Devices in Ultramarine Everywhere try to stick very closely to the standard Ultramarine userland, sometimes we have to deviate from this to make the experience better.
Devices in Ultramarine Anywhere try to stick very closely to the standard Ultramarine userland, sometimes we have to deviate from this to make the experience better.

### Audio Support

We use WeirdTreeThing's [audio script](https://github.com/WeirdTreeThing/chromebook-linux-audio) to make audio work properly.

### Chrultrabook Controller

We ship the [Chrultrabook Controller app](https://github.com/death7654/Chrultrabook-Tools) to provide some missing features, like fan and backlight control.

### Default Partitions

On Chromebooks, we use ext4 in lieu of Btrfs, and disable swap to extend the life of the EMMC found in many Chromebooks. We also create one 16MiB partition containing [Submarine](https://developer.fyralabs.com/submarine) at the start of the disk instead of `/boot/EFI` and `/boot`
On Chromebooks, we use F2FS (in lieu of Btrfs) and disable swap to extend the life of the eMMC storage found in many Chromebooks. We also create one 16MiB partition containing [Submarine](https://developer.fyralabs.com/submarine) at the start of the disk instead of `/boot/EFI`.

### Keyboard Mapping

Expand Down Expand Up @@ -67,19 +74,19 @@ We use [keyd](https://github.com/rvaiya/keyd) to map keys on Chromebooks.

## Unsupported Devices

| Device | Reason |
| --------- | -------------------- |
| Mario | Firmware Limitations |
| Alex | Firmware Limitations |
| ZGB | Firmware Limitations |
| Stumpy | Firmware Limitations |
| Lumpy | Firmware Limitations |
| Parrot | Firmware Limitations |
| Butterfly | Firmware Limitations |
| Link | Firmware Limitations |
| Stout | Firmware Limitations |
| Device | Reason |
| --------- | ----------------------------------------------------------------------------------------- |
| Mario | Firmware Limitations |
| Alex | Firmware Limitations |
| ZGB | Firmware Limitations |
| Stumpy | Boot Partition Size Limitation (This can be [Corebooted](https://docs.chrultrabook.com/)) |
| Lumpy | Boot Partition Size Limitation (This can be [Corebooted](https://docs.chrultrabook.com/)) |
| Parrot | Boot Partition Size Limitation (This can be [Corebooted](https://docs.chrultrabook.com/)) |
| Butterfly | Boot Partition Size Limitation (This can be [Corebooted](https://docs.chrultrabook.com/)) |
| Link | Boot Partition Size Limitation (This can be [Corebooted](https://docs.chrultrabook.com/)) |
| Stout | Boot Partition Size Limitation (This can be [Corebooted](https://docs.chrultrabook.com/)) |

These computers are from the first generation of Chromebooks, and use a different firmware than modern ones.
These are among the first few generations of Chromebooks, and either use an unsupported proprietary firmware, or have firmware limitations which prevents booting a partition large enough to fit submarine (newer Chromebooks have larger size limitations).

## Installation

Expand Down Expand Up @@ -122,4 +129,4 @@ cgpt add -i <partition number> -t kernel -P 15 -T 1 -S 1 /dev/sdX

## ARM

ARM Chromebooks are in heavy development. If you'd like to help test, check out the [ARM Beta Program](/en/chromebook/armbeta)
ARM Chromebooks are in heavy development. If you'd like to help test, check out the [ARM Beta Program](/en/chromebook/armbeta).
25 changes: 25 additions & 0 deletions src/content/docs/en/anywhere/enterprise.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
title: "Data Centre, Enterprise, and HPC (Anywhere)"
description: "Data Centre, Enterprise, and HPC in the Ultramarine Anywhere Initiative"
---

import Alert from "../../../../components/Docs/Alert.astro";

<Alert type="info">
This device type is still in the **Planning Phase**. All information on this
page is subject to change.
</Alert>

We plan on making server images, GUI and CLI. These images will be built for constant runtime, and include/exclude fitting packages for server usecases. If you'd like to suggest a platform, drop us a line in [our chats](/en/community/community).

## Implementation

- Refined OOTB cockpit excperience
- CLI only option
- Advanced installer features
- Advanced networking options
- Package suite more attuned to a server usecase
- Default filesystem changed to ZFS
- Potential improved RAID and non-RAID architecture implementation...
- Cluster support
- A whole lot more...
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Smart TV Devices"
description: "Smart TV Devices in the Ultramarine Everywhere Initiative"
description: "Smart TV Devices in the Ultramarine Anywhere Initiative"
---

import Alert from "../../../../components/Docs/Alert.astro";
Expand All @@ -12,4 +12,4 @@ import Alert from "../../../../components/Docs/Alert.astro";

Smart TV boxes often run Android, which means we can use Halium to port Ultramarine to the unlockable ones.

This may be limited to FireOS devices as many of them are vulnerable to [mtk-su](https://xdaforums.com/t/amazing-temp-root-for-mediatek-armv8-2020-08-24.3922213/)
This may be limited to FireOS devices as many of them are vulnerable to [mtk-su](https://xdaforums.com/t/amazing-temp-root-for-mediatek-armv8-2020-08-24.3922213/). If you are knowledgable about Smart TV modding/running alternative operating systems, please reach out [here](/en/community/community).
13 changes: 13 additions & 0 deletions src/content/docs/en/anywhere/riscv.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
title: "RISC-V (Anywhere)"
description: "RISC-V Devices in the Ultramarine Anywhere Initiative"
---

import Alert from "../../../../components/Docs/Alert.astro";

<Alert type="info">
This device type is still in the **Wishlist Phase**. All information on this
page is subject to change.
</Alert>

We plan to port to RISC-V architecture as soon as we can get the hardware. If you are a hardware vendor producing RISC-V devices or have a spare RISC-V device, please [reach out](mailto:contact@fyralabs.com) if you'd like to support the Ultramarine RISC-V port.
70 changes: 70 additions & 0 deletions src/content/docs/en/anywhere/rpi.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
---
title: "Raspberry Pi (Anywhere)"
description: "Raspberry Pi in the Ultramarine Anywhere Initiative"
---

import Alert from "../../../../components/Docs/Alert.astro";

Raspberry Pi is a very popular series of SBCs. They are cheap, easy to get, run Linux well, and have a large ecosystem of expansion cards (Hats and Bonnets) and accessories.

Fedora has upstream support for the Pi 4, 400, and 3. Ultramarine Anywhere intends to extend support to the Zero 2 and 5.

## Raspberry Pi 5

<Alert type="info">
This device type is still in the **Planning Phase**. All information on this
page is subject to change.
</Alert>

The Raspberry Pi 5 is not currently supported in Fedora. We intend to package the official Raspberry Pi kernel (which should also provide a better experience on the other Pi models.)

## Raspberry Pi 4 and 400

The Raspberry Pi 4 and 400 have had support in Ultramarine Linux since UM39, and desktop images since UM40. We use the Fedora kernels and boot proccess.

### Notes

- RPi4B has a 1GB and 2GB model, we suggest against running a desktop environment on these (Xfce may be alright.)
- RPi400 does not have support for WiFi in Ultramarine, this is an upstream issue.
- The Pi 4 series has native USB boot support. Your experience may be better with a fast USB Drive or SSD connected through an adapter. See [this article](https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#usb-mass-storage-boot) for more info.
- If using a microSD card, we reccomend using a Class 10 microSD card, your experience will be signifcantly better than lower classes.
- If using a USB drive, ensure it's USB 3.0 or newer, 2.0 will be a signifcantly worse experience than a microSD.
- Your storage device will need to be larger than 9GB (the image is 8.59GB) We suggest 16GB so you have space for software.

### Installing

1. Grab any aarch64 [Raw Image](TBD) from our downloads page.
2. Flash it to your microSD card or drive with [balenaEtcher](https://etcher.io) or [Raspberry Pi Imager](https://flathub.org/apps/org.raspberrypi.rpi-imager)
3. Expand the root partition to fill the entire storage device. We reccomend using Gparted, get it from your edition's app store.
4. Insert the storage device into your Pi and boot up! The default login is ultramarine (password is the same.) Please change your password once logged in.

## Raspberry Pi 3

The Raspberry Pi 3 has had support in Ultramarine Linux since UM39, and desktop images since UM40. We use the Fedora kernels and boot proccess.

### Notes

- RPi3B has only 1GB of RAM, and the 3A only has 512MB, we suggest against running a desktop environment (Xfce may be alright.)
- Your microSD card will need to be larger than 9GB (the image is 8.59GB) We suggest 16GB so you have space for software.
- We reccomend using a Class 10 microSD card, your experience will be signifcantly better than lower classes.

### Installing

1. Grab any aarch64 [Raw Image](TBD) from our downloads page.
2. Flash it to your microSD card with [balenaEtcher](https://etcher.io) or [Raspberry Pi Imager](https://flathub.org/apps/org.raspberrypi.rpi-imager)
3. Expand the root partition to fill the entire microSD. We reccomend using Gparted, get it from your edition's app store.
4. Insert the microSD card into your Pi and boot up! The default login is ultramarine (password is the same.) Please change your password once logged in.

## Raspberry Pi Zero 2

<Alert type="info">
This device type is still in the **Planning Phase**. All information on this
page is subject to change.
</Alert>

## Raspberry Pi 1, 2, and Zero

<Alert type="info">
These devices are **Not Supported** due to 32bit CPUs. We include them in this
page to avoid questions.
</Alert>
13 changes: 13 additions & 0 deletions src/content/docs/en/anywhere/steamdeck.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
title: "Valve Steam Deck (Anywhere)"
description: "Steam Deck in the Ultramarine Anywhere Initiative"
---

import Alert from "../../../../components/Docs/Alert.astro";

<Alert type="info">
This device type is still in the **Wishlist Phase**. All information on this
page is subject to change.
</Alert>

We plan to make Steam Deck images, as well as other handhelds and HTPCs. Work will begin once we have the hardware needed. Maybe a custom UI is in order...
21 changes: 21 additions & 0 deletions src/content/docs/en/anywhere/thin.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
title: "Thin Clients (Anywhere)"
description: " Ultramarine Anywhere Initiative"
---

import Alert from "../../../../components/Docs/Alert.astro";

<Alert type="info">
This device type is still in the **Wishlist Phase**. All information on this
page is subject to change.
</Alert>

Thin client images would be fun, and frankly pretty easy.

## Implementation

Very minimal environment with only required packages. OOTB connection protocols (ICA, RDP/VNC, SNMP...) and easy to use installer with connection options built in.

Minimal login screen with an option for branding, might include device managment software.

Tools and encouragment for enthusiasts.
13 changes: 13 additions & 0 deletions src/content/docs/en/anywhere/xr.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
title: "XR and Spatial Computing"
description: "XR and Spatial Computing in the Ultramarine Anywhere Initiative"
---

import Alert from "../../../../components/Docs/Alert.astro";

<Alert type="info">
This device type is still in the **Planning Phase**. All information on this
page is subject to change.
</Alert>

Would use [StardustXR](https://stardustxr.org/). Our packaging effort can be found [here.](https://github.com/Ultramarine-Linux/stardustxr)
Loading

0 comments on commit 2d073a3

Please sign in to comment.