{"id":18412255,"url":"https://github.com/bashrc2/libreserver-maker","last_synced_at":"2025-09-09T23:41:52.887Z","repository":{"id":109423857,"uuid":"364984716","full_name":"bashrc2/libreserver-maker","owner":"bashrc2","description":"Build system for libreserver","archived":false,"fork":false,"pushed_at":"2021-08-30T10:27:40.000Z","size":49306,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-12T23:45:46.740Z","etag":null,"topics":["build-system","self-hosted","single-board-computers"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bashrc2.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-05-06T17:16:35.000Z","updated_at":"2021-09-05T20:09:57.000Z","dependencies_parsed_at":"2023-03-23T03:47:12.937Z","dependency_job_id":null,"html_url":"https://github.com/bashrc2/libreserver-maker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bashrc2%2Flibreserver-maker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bashrc2%2Flibreserver-maker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bashrc2%2Flibreserver-maker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bashrc2%2Flibreserver-maker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bashrc2","download_url":"https://codeload.github.com/bashrc2/libreserver-maker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248647259,"owners_count":21139081,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["build-system","self-hosted","single-board-computers"],"created_at":"2024-11-06T03:40:34.682Z","updated_at":"2025-04-12T23:45:47.152Z","avatar_url":"https://github.com/bashrc2.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"https://gitlab.com/bashrc2/libreserver/-/raw/bullseye/img/logo.png?raw=true\" width=\"70%\"/\u003e\n\n# LibreServer-Maker: The image builder\n\nThese scripts build LibreServer images for various supported hardware\nthat can then be copied to SD card, USB stick or Hard Disk drive to\nboot into LibreServer.\n\nThese scripts are meant for developers of LibreServer to build images\nduring releases and for advanced users who intend to build their own\nimages. Regular users who wish to turn their devices into\nLibreServers should instead download the pre-built images.\n\nGet a pre-built image via https://libreserver.org/download/.  There\nare images available for all supported target devices.\n\nIf you wish to create your own LibreServer image, perhaps with some\ntweaks, see the *Build Images* section below.\n\n# Create Images\n\n## Supported Targets\n\nlibreserver-maker supports building for the following targets:\n\n\n- *a20-olinuxino-lime*: A20 OLinuXino Lime's SD card\n- *a20-olinuxino-lime2*: A20 OLinuXino Lime2's SD card\n- *a20-olinuxino-micro*: A20 OLinuXino MICRO's SD card\n- *amd64*: Disk image for any machine with amd64 architecture\n- *arm64*: Disk image for any machine with arm64/aarch64 architecture\n- *armhf*: Disk image for any machine with arm32 architecture\n- *banana-pro*: Banana Pro's SD card\n- *beaglebone*: BeagleBone Black's SD card\n- *cubieboard2*: Cubieboard2's SD card\n- *cubietruck*: Cubietruck's SD card\n- *i386*: Disk image for any machine with i386 architecture\n- *lamobo-r1*: Lamobo R1 aka BananaPi Router SD card\n- *pcduino3*: pcDuino3's SD card\n- *pine64-lts*: Pine64 LTS board's SD card\n- *pine64-plus*: Pine64+ board's SD card\n- *orange-pi-zero*: Orange Pi Zero's SD card\n- *qemu-amd64*: 64-bit image for the Qemu virtualization tool\n- *qemu-i386*: 32-bit image for the Qemu virtualization tool\n- *raspberry2*: RasbperryPi 2's SD card\n- *raspberry3*: RasbperryPi 3's SD card\n- *raspberry3-b-plus*: RasbperryPi 3 Model B+'s SD card\n- *test*: build virtualbox i386 image and run diagnostics tests on it\n- *virtualbox-amd64*: 64-bit image for the VirtualBox virtualization tool\n- *virtualbox-i386*: 32-bit image for the VirtualBox virtualization tool\n\n## Running Build\n\n1. Fetch the git source of libreserver-maker:\n    ```\n    $ git clone https://gitlab.com/bashrc2/libreserver-maker\n    ```\n\n2. Install the required dependencies:\n    ```shell\n    $ sudo apt install btrfs-progs debootstrap kpartx parted qemu-user-static qemu-utils sshpass\n    $ cd libreserver-maker\n    $ sudo apt build-dep .\n    ```\n\n3. Build images:\n\n    This command has to be started with root (sudo) permission because it needs\n    to run \"parted\".\n\n    ```\n    $ sudo python3 -m freedommaker amd64\n    ```\n    Take a break from your computer - this takes some time. :)\n    \n    To see the full list of options read the help-page:\n    ```\n    $ python3 -m freedommaker --help\n    ```\n\nThe image will show up in *build/*. Copy the image to the\ntarget disk following the instructions in the *Use Images* section.\n\n# Use Images\n\nYou'll need to copy the image to a memory card or USB stick. If you don't\nuse GNU/Linux or prefer a GUI we recommend [etcher](https://etcher.io/)\nfor this task. Otherwise follow the steps:\n\n1. Figure out which device your card actually is.\n\n    A. Unplug your card.\n\n    B. Run \"lsblk -p\" to show which storage devices are connected to your system.\n\n    C. Plug your card in and run \"lsblk -p\" again. Find the new device and note\n    the name.\n    \n        $ lsblk -p\n        NAME                                   MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT\n        /dev/sdg                                 8:0    1  14.9G  0 disk  \n        /dev/nvme0n1                           259:0    0   477G  0 disk  \n        ├─/dev/nvme0n1p1                       259:1    0   512M  0 part  /boot/efi\n        ├─/dev/nvme0n1p2                       259:2    0   244M  0 part  /boot\n        └─/dev/nvme0n1p3                       259:3    0 476.2G  0 part  \n          └─/dev/mapper/nvme0n1p3_crypt        253:0    0 476.2G  0 crypt \n            ├─/dev/mapper/mjw--t470--vg-root   253:1    0 468.4G  0 lvm   /\n            └─/dev/mapper/mjw--t470--vg-swap_1 253:2    0   7.8G  0 lvm   [SWAP]\n\n    D. In the above case, the disk that is newly inserted is available\n       as */dev/sdg*. You can also verify the size (16 GB in this example).\n       Carefully note this and use it in the copying step below.\n\n2. Copy the image to your card.  Double check and make sure you don't\n   write to your computer's main storage (such as /dev/sda).  Also\n   make sure that you don't run this step as root (sudo) to avoid potentially\n   overriding data on your hard drive due to a mistake. USB disks and SD\n   cards inserted into the system should typically be write accessible\n   to normal users. If you don't have permission to write to your SD\n   card as a user, you may need to run this command as root. In this\n   case triple check everything before you run the command. Another\n   safety precaution is to unplug all external disks except the SD\n   card before running the command.\n\n   For example, if your SD card is /dev/sdg use the following command:\n    ```\n    $ xzcat build/libreserver-bullseye-*-amd64.img.xz | sudo dd bs=4M of=/dev/sdg conv=fsync status=progress\n    ```\n\n   The above command is an example for the beaglebone image built on\n   2018-08-06. Your image file name will be different.\n\n   When picking a device, use the drive-letter destination, like\n   /dev/sdf, not a numbered destination, like /dev/sdf1.  The device\n   without a number refers to the entire device, while the device with\n   anumber refers to a specific partition.  We want to use the whole\n   device.  Downloaded images contain complete information about how\n   many partitions there should be, their sizes and types. You don't\n   have to format your SD card or create partitions. All the data on\n   the SD card will be wiped off during the write process.\n\n3. Use the image by inserting the SD card or USB disk into the target\n   device and booting from it.  Also see hardware specific\n   instructions on how to prepare your device at\n   https://libreserver.org\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbashrc2%2Flibreserver-maker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbashrc2%2Flibreserver-maker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbashrc2%2Flibreserver-maker/lists"}