Skip to content

Commit

Permalink
Merge pull request #58 from Ultramarine-Linux/w/zh_Hant
Browse files Browse the repository at this point in the history
feat: zh_Hant translations
  • Loading branch information
madonuko authored Jun 7, 2024
2 parents 6cd150c + f868f80 commit 1a2db60
Show file tree
Hide file tree
Showing 47 changed files with 3,244 additions and 0 deletions.
63 changes: 63 additions & 0 deletions src/consts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ export const OPEN_GRAPH = {
export const KNOWN_LANGUAGES = {
English: "en",
Deutsch: "de",
正體中文: "zh_Hant",
} as const;
export const KNOWN_LANGUAGE_CODES = Object.values(KNOWN_LANGUAGES);

Expand Down Expand Up @@ -125,4 +126,66 @@ export const SIDEBAR: Sidebar = {
{ text: "Developing for Ultramarine", link: "de/release/errata" },
],
},
zh_Hant: {
介紹: [{ text: "歡迎", link: "zh_Hant/welcome" }],
社羣: [
{ text: "參與社羣", link: "zh_Hant/community/community" },
{ text: "行為準則", link: "zh_Hant/community/codeofconduct" },
],
安裝: [
{ text: "取得 Ultramarine", link: "zh_Hant/installation/getting" },
{ text: "安裝過程", link: "zh_Hant/installation/installation" },
// {
// text: "Installation with Readymade",
//link: "zh_Hant/installation/readymade",
//},
{
text: "Raspberry Pi 安裝過程",
link: "zh_Hant/installation/rpi",
},
{ text: "安裝之後…", link: "zh_Hant/installation/postinstall" },
{
text: "進階安裝後步驟",
link: "zh_Hant/installation/post-advanced",
},
],
貢獻: [
{ text: "貢獻指南", link: "zh_Hant/contributing/contributorguide" },
{ text: "原碼貢獻", link: "zh_Hant/contributing/hacking" },
],
硬件: [
{ text: "系統要求", link: "zh_Hant/hardware/requirements" },
{ text: "Ultramarine Anywhere", link: "zh_Hant/hardware/anywhere" },
{ text: "NVIDIA", link: "zh_Hant/hardware/nvidia" },
{ text: "Microsoft Surface", link: "zh_Hant/hardware/surface" },
{
text: "Broadcom and Realtek Networking",
link: "zh_Hant/hardware/broadcom-realtek",
},
{ text: "BIOS Keys", link: "zh_Hant/hardware/bioskeys" },
],
"關於 Linux": [
{ text: "何謂 Linux?", link: "zh_Hant/linux/overview" },
{ text: "檔案系統", link: "zh_Hant/linux/filesystem" },
{ text: "裝置檔案", link: "zh_Hant/linux/devicefiles" },
{ text: "權限", link: "zh_Hant/linux/permissions" },
{ text: "軟件及安裝包管理", link: "zh_Hant/linux/software" },
{ text: "The Shell", link: "zh_Hant/linux/shell" },
{ text: "安全及私隱", link: "zh_Hant/linux/securityprivacy" },
],

用途: [
{ text: "電子遊戲", link: "zh_Hant/usage/gaming" },
{ text: "本地化", link: "zh_Hant/usage/l10n" },
],

發佈版本通知: [{ text: "勘誤表", link: "zh_Hant/release/errata" }],

開發: [
{
text: "為 Ultramarine 開發",
link: "zh_Hant/development/developing-for-ultramarine",
},
],
},
};
17 changes: 17 additions & 0 deletions src/content/docs/zh_Hant/anywhere/android.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
title: "Android (Anywhere)"
description: "Android Devices 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>

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

We intend to use Halium for porting as it provides better hardware support.
17 changes: 17 additions & 0 deletions src/content/docs/zh_Hant/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)
132 changes: 132 additions & 0 deletions src/content/docs/zh_Hant/anywhere/chromebook.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
---
title: "Chromebook (Anywhere)"
description: "Chromebooks in the Ultramarine Anywhere Initiative"
---

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

<Alert type="info">
This device type is still in the **In Progress Phase**. All information on
this page is subject to change. Do not follow any instructions unless you know
what you're doing.
</Alert>

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 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.

### Default Partitions

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

We use [keyd](https://github.com/rvaiya/keyd) to map keys on Chromebooks.

## Feature Matrix

| Feature | Functionality | Notes |
| ----------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| Booting | Working | With [Submarine](https://developer.fyralabs.com/submarine) or [UEFI](https://docs.chrultrabook.com/docs/firmware/) |
| WiFi | Working | |
| Ethernet | Working | |
| Bluetooth | Working | |
| Display | Working | |
| Graphics | Working | |
| Storage | Working | |
| USB | Working | |
| SD | Working | |
| Ports | Working | |
| Power | Working | |
| Touch | Working | |
| Pen | Partial | USI and Wacom Pens work, others may not |
| Audio | Partial | May require [additional setup](https://github.com/WeirdTreeThing/chromebook-linux-audio). Some Chromebooks may not work due to controller issues |
| Keyboard | Working | Some models may have issues on older kernels |
| Touchpad | Working | |
| Webcam | Working | |
| Lid Switch | Partial | Some models may have issues |
| Tablet Mode | Partial | Same reason as lid switch |

## Unsupported Devices

| 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 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

Prebuilt images with userland tweaks will be available in the near future

## Manual Installation - NOT RECOMMENDED

<Alert type="warning">
This method is **NOT RECOMMENDED**. Only do this if you know what you're doing
and need to test. We are not responsible for brickage, thermonuclear war, the
death of a pet, etc.
</Alert>

This guide assumes you have [Developer Mode](https://chromium.googlesource.com/chromiumos/docs/+/main/developer_mode.md#dev-mode) and [USB Booting Enabled](https://chromium.googlesource.com/chromiumos/docs/+/main/developer_guide.md#boot-from-your-usb-disk)

1. Flash an [Ultramarine Raw Image](https://images.fyralabs.com/images/ultramarine/39/) to a USB Drive
2. Delete the first partition on the disk
3. Create a 16MB ext4 partition
4. Flash the submarine.kpart file to the partition
5. Set the partition flags with cgpt

```
cgpt add -i <partition number> -t kernel -P 15 -T 1 -S 1 /dev/sdX
```

6. Boot the image on the Chromebook

You're now inside a minimal Ultramarine system, from here you can install a desktop (also `NetworkManager-wifi`) and use Ultramarine from the external disk. If you'd like to install, you'll need to install and configure Anaconda. [Our Kickstarts can be found on Github.](https://github.com/Ultramarine-Linux/build-scripts/tree/main/kickstarts)

7. On the internal disk, create a 16MiB ext4 partition BEFORE the standard partitions
8. Install Ultramarine normally
9. After the installation is complete, flash the submarine.kpart file to the 16MiB partition you created
10. Set the partition flags with cgpt

```
cgpt add -i <partition number> -t kernel -P 15 -T 1 -S 1 /dev/sdX
```

11. Done!

## ARM

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/zh_Hant/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...
15 changes: 15 additions & 0 deletions src/content/docs/zh_Hant/anywhere/ott.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
title: "Smart TV Devices"
description: "Smart TV 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>

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/). 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/zh_Hant/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:[email protected]) if you'd like to support the Ultramarine RISC-V port.
70 changes: 70 additions & 0 deletions src/content/docs/zh_Hant/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/zh_Hant/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...
Loading

0 comments on commit 1a2db60

Please sign in to comment.