{"id":21942366,"url":"https://github.com/riscv/meta-riscv","last_synced_at":"2026-01-30T03:15:24.996Z","repository":{"id":30570114,"uuid":"125159799","full_name":"riscv/meta-riscv","owner":"riscv","description":"OpenEmbedded/Yocto layer for RISC-V Architecture","archived":false,"fork":false,"pushed_at":"2026-01-24T17:25:48.000Z","size":8541,"stargazers_count":420,"open_issues_count":25,"forks_count":166,"subscribers_count":37,"default_branch":"master","last_synced_at":"2026-01-25T06:35:13.244Z","etag":null,"topics":["openembedded","openembedded-layer","risc-v","riscv","yocto","yocto-layer","yocto-meta"],"latest_commit_sha":null,"homepage":"https://riscv.org/","language":"BitBake","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/riscv.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-03-14T05:27:58.000Z","updated_at":"2026-01-24T17:25:53.000Z","dependencies_parsed_at":"2023-09-30T15:38:41.432Z","dependency_job_id":"c5ef09cf-a0d3-498f-843e-bb067f210c44","html_url":"https://github.com/riscv/meta-riscv","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/riscv/meta-riscv","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/riscv%2Fmeta-riscv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/riscv%2Fmeta-riscv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/riscv%2Fmeta-riscv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/riscv%2Fmeta-riscv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/riscv","download_url":"https://codeload.github.com/riscv/meta-riscv/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/riscv%2Fmeta-riscv/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28897997,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-29T21:06:44.224Z","status":"online","status_checked_at":"2026-01-30T02:00:06.810Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["openembedded","openembedded-layer","risc-v","riscv","yocto","yocto-layer","yocto-meta"],"created_at":"2024-11-29T03:19:02.500Z","updated_at":"2026-01-30T03:15:24.990Z","avatar_url":"https://github.com/riscv.png","language":"BitBake","funding_links":[],"categories":[],"sub_categories":[],"readme":"# meta-riscv\nRISC-V Architecture Layer for OpenEmbedded/Yocto\n\n[![license](https://img.shields.io/github/license/mashape/apistatus.svg)](https://github.com/riscv/meta-riscv/blob/kraj/master/COPYRIGHT)\n[![Build Status](https://travis-ci.org/riscv/meta-riscv.svg?branch=master)](https://travis-ci.org/riscv/meta-riscv)\n\n## Description\n\nThis is the general hardware-specific BSP overlay for the RISC-V based devices.\n\nMore information can be found at: \u003chttps://riscv.org/\u003e (Official Site)\n\nThe core BSP part of meta-riscv should work with different\nOpenEmbedded/Yocto distributions and layer stacks, such as:\n\n* Distro-less (only with OE-Core).\n* Yoe Distro.\n* Yocto/Poky.\n\n## Dependencies\n\nThis layer depends on:\n\n* URI: https://github.com/openembedded/openembedded-core\n  * branch: master\n  * revision: HEAD\n* URI: https://github.com/openembedded/bitbake\n  * branch: master\n  * revision: HEAD\n\n## Quick Start\n\n**Note: You only need this if you do not have an existing Yocto Project build environment.**\n\nMake sure to [install the `repo` command by Google](https://source.android.com/setup/downloading#installing-repo) first.\n\n### Create workspace\n```text\nmkdir riscv-yocto \u0026\u0026 cd riscv-yocto\nrepo init -u https://github.com/riscv/meta-riscv -b master -m tools/manifests/riscv-yocto.xml\nrepo sync\nrepo start work --all\n```\n### Update existing workspace\n\nIn order to bring all the layers up to date with upstream\n\n```text\ncd riscv-yocto\nrepo sync\nrepo rebase\n```\n\n### Setup Build Environment\n```text\n. layers/meta-riscv/tools/envsetup.sh\n```\n\nOptionally override the build directory:\n\n```text\nBUILD_DIR=\u003cbuild-riscv\u003e . ./layers/meta-riscv/tools/envsetup.sh\n```\n\n### Kas Support\n\nKas build is supported, you can run the following commands:\n\n```text\ngit clone https://github.com/riscv/meta-riscv.git -b master\ncd meta-riscv\n```\n\n* For basic `qemuriscv64` build run:\n\n```text\nkas build kas/base-riscv.yml\n```\n\n**base-riscv.yml** will build `core-image-minimal`, you can then boot it with:\n\n```text\nrunqemu core-image-minimal nographic\n```\n\n**NOTE** `nographic` is needed for this image, because it has no graphical support for graphical Qemu run.\n\n* For `nezha` build:\n\n```text\nkas build kas/nezha.yml\n```\n\n* For `beaglev` build:\n\n```text\nkas build kas/beaglev.yml\n```\n\n* For more machines check `kas` folder.\n\n\n## Custom Project\n\nIf you have your own layer that depends on this layer, you can create a kas `yml` file in your layer with the following content (`nezha` build as an example):\n\n```yml\nheader:\n  version: 20\n  includes:\n    - repo: meta-riscv\n      file: kas/nezha.yml\n\nrepos:\n  meta-riscv:\n    url: https://github.com/riscv/meta-riscv.git\n    path: layers/meta-riscv\n    branch: scarthgap\n\ntarget: custom-image # Or nezha default image: riscv-nezha-image\n```\n\nFor more details on `nezha`, `beaglev` and other boards steps check `doc` folder.\n\n## Available Machines\n\nThe different machines you can build for are:\n\n* freedom-u540: The SiFive HiFive Unleashed board\n* beaglev-starlight-jh7100: BeagleV - Based on Starlight JH7100 SOC\n* mangopi-mq-pro: MangoPi MQ Pro - Based on Allwinner D1 SOC\n\nNote that this layer also provides improvements and features for the\nupstream qemuriscv32 and qemuriscv64 machines.\n\nAdditional beagleV notes on bringup are [here](https://github.com/riscv/meta-riscv/blob/master/docs/BeagleV.md)\n## Build Images\n\nA console-only image for the 64-bit QEMU machine\n```text\nMACHINE=qemuriscv64 bitbake core-image-full-cmdline\nMACHINE=beaglev-starlight-jh7100 bitbake core-image-full-cmdline\n```\n\nTo build an image to run on the HiFive Unleashed using Wayland run the following\n\n```text\nMACHINE=freedom-u540 bitbake core-image-weston\n```\n\nTo build an image to run on the BeagleV using Wayland run the following\n```text\nMACHINE=beaglev-starlight-jh7100 bitbake core-image-weston\n```\n\nTo build an image to run on the MangoPi MQ Pro (console only has been tested so far) run the following:\n```text\nMACHINE=mangopi-mq-pro bitbake core-image-base\n```\n\nTo build a full GUI equipped image running Plasma Mobile see the in-tree documentation [here](https://github.com/riscv/meta-riscv/blob/master/docs/Plasma-Mobile-on-Unleashed.md).\n\n## Running in QEMU\n\nRun the 64-bit machine in QEMU using the following command:\n\n```text\nMACHINE=qemuriscv64 runqemu nographic\n```\n\nRun the 32-bit machine in QEMU using the following command:\n\n```text\nMACHINE=qemuriscv32 runqemu nographic\n```\n\n## Running on hardware\n\n### Setting up a TFTP server\n\nIf you would like to boot the images from a TFTP server (optional) you should set your TFTP server address in your local.conf with the following line. Change ```127.0.0.1``` to the IP address of your TFTP server and copy the uImage to the server.\n\n```text\nTFTP_SERVER_IP = \"127.0.0.1\"\n```\n\n### Running with the Microsemi Expansion board\n\nTo use the Microsemi expansion board with your HiFive Unleased add the following line to your local.conf. This tells the Unleashed to use a device tree with the PCIe device described:\n\n```text\nRISCV_SBI_FDT:freedom-u540 = \"hifive-unleashed-a00-microsemi.dtb\"\n```\n\n### Sparse Image Creation\n\nThe output of the build can also be written to an SD card using bmaptool, the steps to do this are below:\n\n```text\n$ MACHINE=freedom-u540 wic create freedom-u540-opensbi -e core-image-minimal\n$ bmaptool create ./freedom-u540-opensbi-201812181337-mmcblk.direct \u003e image.bmap\n$ sudo bmaptool copy --bmap image.bmap ./freedom-u540-opensbi-201812181337-mmcblk.direct /dev/sdX\n```\n\n### dding wic.gz\n\nThe output of a ```freedom-u540```, ```beaglev-starlight-jh7100``` or ```mangopi-mq-pro```  build will be a ```\u003cimage\u003e.wic.gz``` file. You can write this file to an sd card using:\n\n```text\n$ zcat \u003cimage\u003e-\u003cmachine\u003e.wic.gz | sudo dd of=/dev/sdX bs=4M iflag=fullblock oflag=direct conv=fsync status=progress\n```\n\n### Using bmaptoop to write the image\n\nInstead of dding wic.gz image ```bmaptool``` (available in most Linux distributions and/or pip) can be used for more reliable and faster flashing. You can write this file to an sd card using:\n```text\n$ sudo bmaptool copy \u003cimage\u003e-\u003cmachine\u003e.wic.gz /dev/sdX\n```\n\n## Contributing\n\nSubmit patches via GitHub pull requests, Use GitHub issues to report problems or to send comments.\n\n## Maintainer(s)\n\n* Khem Raj `\u003craj.khem@gmail.com\u003e`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Friscv%2Fmeta-riscv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Friscv%2Fmeta-riscv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Friscv%2Fmeta-riscv/lists"}