Coder Social home page Coder Social logo

d1-riscv-arch-image-builder's Introduction

Image Builder for Archlinux on an Allwinner D1 / Sipeed Lichee RV

These scripts compile, copy, bake, unpack and flash a ready to use RISC-V Archlinux.
With "ready to use" i mean that it boots, you still need to configure everything!

Special thanks to smaeul for all their work!

Find a precompiled image under the Actions artifacts. The image has no configuration or whatsoever!

Also have a look at the forks that have emerged over time or similar projects like a make file based approch.

Starfive Vision 2

There are multiple sources for an Archlinux image:

Components

How to build

  1. Install requirements: pacman -Sy riscv64-linux-gnu-gcc swig cpio python3 python-setuptools base-devel bc
    1. If you want to chroot into the RISC-V image, you also need arch-install-scripts qemu-user-static qemu-user-static-binfmt
  2. Edit consts.sh to your needs. For example, you may want to select a different DTB for a different board variant.
  3. Run 1_compile.sh which compiles everything into the output folder.
  4. Run 2_create_sd.sh /dev/<device> to flash everything on the SD card.
  5. Configure your Archlinux ๐Ÿš€

Using loop image file instead of a SD card

Simply loop it using sudo losetup -f -P <file> and then use /dev/loopX as the target device.

Notes

The second script requires arch-install-scripts, qemu-user-static-bin (AUR) and binfmt-qemu-static (AUR) for an architectural chroot. If you don't want to use/do this, change USE_CHROOT to 0 in consts.sh.
Keep in mind, that this is just a extracted rootfs with no configuration. You probably want to update the system, install an editor and take care of network access/ssh

Some commits are pinned, this means that in the future this script might stop working since often a git HEAD is checked out. This is intentional.

The second script uses sudo for root access. Like any random script from a random stranger from the internet, have a look at the code first and use at own risk!

Things are rebuild whenever the corresponding output/<file> is missing. For example, the kernel is rebuilt when there is no Image file.

Status

25.07.2023

  • forgot to keep this up to date...
  • mainline kernel fully supports the D1
  • kernel updated to 6.4 (mainline)
  • OpenSBI updated to 1.3

4.11.2022

  • WiFi is working again

3.11.2022

  • updated U-Boot and remove boot0 (handled by U-Boot)
  • updated kernel to 6.1.0-rc3
    • THIS BRAKES BUILT-IN WIFI

13.09.2022

  • kernel is back at 5.18-rc1 due to being more reliable

14.06.2022

  • kernel updated to 5.19-rc1
  • added initramfs support (untested)
  • added extlinux support

22.04.2022

  • kernel includes modules for USB LAN adapter
  • swap is enabled

09.04.2022

  • HDMI, tested with LXDE/LXDM

07.04.2022

  • WiFi \o/

06.04.2022

  • Kernel is based on 5.18-rc1
  • WiFi driver fails to build (linking error :feelsbadman:)
  • Both kernel and U-Boot are using nezha_defconfig since i found them more reliable
  • HDMI is not working (at least on the one screen i've tested it)

Problems

06.04.2022

  • no WiFi!
  • No HDMI (though, i'm unsure about the state of HDMI support in general)

d1-riscv-arch-image-builder's People

Contributors

sehraf avatar etzyio avatar a-v-s avatar felixonmars avatar boosterl avatar carlosrfs avatar chemingway avatar kassane avatar jookia avatar sergds avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.