|
|
(One intermediate revision by one other user not shown) |
Line 1: |
Line 1: |
− | {{ARM/breadcrumb}}
| + | #REDIRECT [[NixOS_on_ARM/OLIMEX_Teres-A64]] |
− | <div class="infobox">
| |
− | {|class="table"
| |
− | !colspan="2" class="title"|Teres I
| |
− | |-
| |
− | !Manufacturer
| |
− | |OLIMEX
| |
− | |-
| |
− | !Architecture
| |
− | |AArch64
| |
− | |-
| |
− | !Bootloader
| |
− | |U-Boot
| |
− | |-
| |
− | !Boot order
| |
− | |To be confirmed
| |
− | |-
| |
− | !Maintainer
| |
− | |[[User:Thra11|Thra11]]
| |
− | |}
| |
− | </div>
| |
− | | |
− | The Teres I is a DIY laptop kit based on the Allwinner A64 SoC.
| |
− | | |
− | It can boot from SD or from the internal eMMC.
| |
− | | |
− | == Status ==
| |
− | | |
− | Most functionality works in a generic aarch64 image using a recent kernel (tested 5.11 and 5.12).
| |
− | | |
− | == Board-specific installation notes ==
| |
− | | |
− | {{expansion}}
| |
− | | |
− | == Serial console==
| |
− | | |
− | Details about the pinout for the headphone jack are available [https://github.com/d3v1c3nv11/teres1-debug]. {{expansion}}
| |
− | | |
− | == Bluetooth ==
| |
− | | |
− | Bluetooth support for the Teres I is not yet included in linux. However, it can be made to work with a few modifications:
| |
− | | |
− | 1. Enable support for Realtek bluetooth controllers in your chosen kernel:
| |
− | <syntaxhighlight lang="nix">
| |
− | nixpkgs.config.packageOverrides = pkgs: {
| |
− | linux_5_11 = pkgs.linux_5_11.override {
| |
− | extraConfig = ''
| |
− | BT_HCIUART_RTL y
| |
− | '';
| |
− | kernelPatches = [ {
| |
− | name = "arm64-dts-allwinner-a64-Enable-Bluetooth-on-Teres-I";
| |
− | patch = ./0001-arm64-dts-allwinner-a64-Enable-Bluetooth-on-Teres-I.patch;
| |
− | }
| |
− | ];
| |
− | };
| |
− | };
| |
− | </syntaxhighlight>
| |
− | 2. Add a section to the teres devicetree, <code>arch/arm64/boot/dts/allwinner/sun50i-a64-teres-i.dts</code>, to indicate that it has a realtek rtl8723bs bluetooth chip attached to uart1. This can be done either by patching the kernel sources, or as a device tree overlay:
| |
− | <syntaxhighlight lang=dts>
| |
− | &uart1 {
| |
− | pinctrl-names = "default";
| |
− | pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
| |
− | uart-has-rtscts;
| |
− | status = "okay";
| |
− | | |
− | bluetooth {
| |
− | compatible = "realtek,rtl8723bs-bt";
| |
− | device-wake-gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */
| |
− | host-wake-gpios = <&r_pio 0 5 GPIO_ACTIVE_HIGH>; /* PL5 */
| |
− | enable-gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */
| |
− | };
| |
− | };
| |
− | </syntaxhighlight>
| |
− | | |
− | 3. The package <code>firmware-linux-nonfree</code>contains a blob which is suitable, <code>rtl8723bs_config-OBDA8723.bin</code> but it is suffixed with the ACPI ID. Since we are using a devicetree instead, linux expects it to be available as <code>rtl8723bs_config.bin</code>. We can achieve this by creating a simple package containing a symlink to the firmware file, and adding it to <code>hardware.firmware</code> in our NixOS configuration:
| |
− | {{file|teres-rtl8723bs-firmware/default.nix|nix|<nowiki>
| |
− | { runCommandNoCC, firmwareLinuxNonfree }:
| |
− | | |
− | runCommandNoCC "teres-rtl8723bs-firmware-${firmwareLinuxNonfree.version}" {} ''
| |
− | mkdir -p $out/lib/firmware/rtl_bt
| |
− | ln -s ${firmwareLinuxNonfree}/lib/firmware/rtl_bt/rtl8723bs_config-OBDA8723.bin \
| |
− | $out/lib/firmware/rtl_bt/rtl8723bs_config.bin
| |
− | ''
| |
− | </nowiki>}}
| |
− | | |
− | == Known issues ==
| |
− | | |
− | {{expansion}}
| |
− | | |
− | == Resources ==
| |
− | | |
− | * [https://www.olimex.com/Products/DIY-Laptop/ Official product page]
| |
− | * [https://www.olimex.com/forum/index.php?board=39.0 Manufacturer's forum]
| |