Skip to content

Building FullPageOS variant for 64bit #646

Closed

Description

@alectrocute

I'm using a Raspberry Pi 5 with 8GB of memory. Everything runs better in 64bit but I noticed FullPageOS is 32-only. How can I build with the 64bit version of Raspian?

Activity

  1. alectrocute commented on Apr 15, 2025

    @alectrocute
    Author

    On my fork, I'm trying to use a 64-bit GitHub runner with a 64-bit Raspian image URL and I'm getting the following build error:

    qemu-arm-static: /usr/bin/bash: Invalid ELF image for this architecture

    https://github.com/alectrocute/FullPageOS/actions/runs/14478532329/job/40609993848

  2. topa-LE commented on May 4, 2025

    @topa-LE

    It is currently completely impossible to build a new FullpageOS with current Debian/Ubuntu distributions.

    Unless the developer changes something in the code, the end is unfortunately in sight for FullpageOS ;-(

  3. guysoft commented on May 5, 2025

    @guysoft
    Owner

    Hey, sorry not to reply sooner. I am pretty busy these days.

    Its more than possible to build arm64 builds. I went to length creating CustomPiOS v2 to facilitate that.
    See base board section in building:
    https://github.com/guysoft/CustomPiOS/wiki/Building#base-board-selection

    I am using here both Ubuntu 24.10 and debian bullseye to build. @topa-LE If you have a particular distribution that is causing you issues please provide more details. The docker build method should let you build on any linux machine that can run docker.

    If you are using hte docker method, you need to set the base board to raspberrypiarm64

    sudo docker exec -it fullpageos-build build -b raspberrypiarm64 -d
  4. paspiz85 commented on Oct 22, 2025

    @paspiz85

    I tried to run:

    git clone https://github.com/guysoft/FullPageOS.git
    cd FullPageOS/src/image
    wget -c --trust-server-names 'https://downloads.raspberrypi.org/raspios_lite_arm64_latest'
    cd ..
    sudo docker run --rm -v `pwd`:/distro --device /dev/loop-control ghcr.io/guysoft/custompios:devel build
    

    but I found a strange error:

    +++ detach_all_loopback 2025-10-01-raspios-trixie-arm64-lite.img
    +++ image_name=2025-10-01-raspios-trixie-arm64-lite.img
    ++++ losetup
    ++++ grep 2025-10-01-raspios-trixie-arm64-lite.img
    ++++ awk '{ print $1 }'
    +++ test_for_image 2025-10-01-raspios-trixie-arm64-lite.img
    +++ '[' '!' -f 2025-10-01-raspios-trixie-arm64-lite.img ']'
    ++++ losetup -f --show -o 545259520 2025-10-01-raspios-trixie-arm64-lite.img
    losetup: 2025-10-01-raspios-trixie-arm64-lite.img: failed to set up loop device: No such file or directory
    +++ LODEV=
    + exit 1
    

    I checked in my workspace directory and found these:

    $ ls -l workspace/
    total 4907020
    -rw-r--r-- 1 root root 5024776192 Oct 22 21:02 2025-10-01-raspios-trixie-arm64-lite.img
    -rw------- 1 root root         25 Oct 22 20:59 extra_board_config
    drwxr-xr-x 2 root root       4096 Oct 22 20:59 mount
    

    Can anyone help me?

  5. guysoft commented on Oct 23, 2025

    @guysoft
    Owner

    @paspiz85
    Duplicate of guysoft/CustomPiOS#55 (comment)

    Try running again, its a docker bug.

    Also, trixie is not working yet guysoft/CustomPiOS#260

  6. guysoft commented on Oct 23, 2025

    @guysoft
    Owner

    Try this @paspiz85 :

    #!/bin/bash
    # Fix Docker loop device exhaustion
    # Common issue when building disk images in Docker
    
    echo "Cleaning up loop devices in container..."
    docker exec fullpageos-build bash -c "
        # Detach all loop devices
        losetup -D
        
        # Clean up any leftover mounts
        umount -l /distro/workspace/mount/boot/firmware 2>/dev/null
        umount -l /distro/workspace/mount 2>/dev/null
        
        # Remove old image files
        cd /distro/workspace && rm -f *.img
    "
    
    echo "Done! Loop devices cleaned up."
    
  7. paspiz85 commented on Nov 4, 2025

    @paspiz85

    I see guysoft/CustomPiOS#259 is closed but also guysoft/CustomPiOS#260 is fixed?

    However, I'm retrying building FullPageOS for RaspiOS lite x64 with following commands:

    #!/bin/bash
    git clone https://github.com/guysoft/FullPageOS.git
    cd FullPageOS/src/image
    wget -c --trust-server-names 'https://downloads.raspberrypi.org/raspios_lite_arm64_latest'
    cd ..
    tee docker-compose.yml >/dev/null <<EOF
    services:
      custompios:
        image: ghcr.io/guysoft/custompios:devel
        container_name: fullpageos-build
        tty: true
        restart: always
        privileged: true
        volumes:
          - ./:/distro
        devices:
          - /dev/loop-control
    EOF
    sudo docker compose up -d
    sudo docker exec fullpageos-build bash -c "
        # Detach all loop devices
        losetup -D
        
        # Clean up any leftover mounts
        umount -l /distro/workspace/mount/boot/firmware 2>/dev/null
        umount -l /distro/workspace/mount 2>/dev/null
        
        # Remove old image files
        cd /distro/workspace && rm -f *.img
    "
    echo "Done! Loop devices cleaned up."
    sudo docker exec -it fullpageos-build build
    sudo docker compose down
    

    but I haven't workspace directory and my log are:

    pi@berry:~/FullPageOS/src $ sudo docker exec -it fullpageos-build build
    + WORKSPACE_POSTFIX=
    + '[' default '!=' default ']'
    + '[' '' == yes ']'
    + '[' '!' -z '' ']'
    + '[' '' == '' ']'
    + echo 'No BASE_BOARD defined, defaulting to raspberrypiarmhf'
    No BASE_BOARD defined, defaulting to raspberrypiarmhf
    + export BASE_BOARD=raspberrypiarmhf
    + BASE_BOARD=raspberrypiarmhf
    ++ lsof /distro/workspace/mount
    ++ awk '{print $2}'
    + for i in `lsof "${DIST_PATH}/workspace${WORKSPACE_POSTFIX}/mount" | awk '{print $2}'`
    + kill -9 PID
    /usr/bin/build: line 42: kill: PID: arguments must be process or job IDs
    + for i in `lsof "${DIST_PATH}/workspace${WORKSPACE_POSTFIX}/mount" | awk '{print $2}'`
    + kill -9 1
    + for i in `lsof "${DIST_PATH}/workspace${WORKSPACE_POSTFIX}/mount" | awk '{print $2}'`
    + kill -9 1
    + for i in `lsof "${DIST_PATH}/workspace${WORKSPACE_POSTFIX}/mount" | awk '{print $2}'`
    + kill -9 1
    + for i in `lsof "${DIST_PATH}/workspace${WORKSPACE_POSTFIX}/mount" | awk '{print $2}'`
    + kill -9 1
    + for i in `lsof "${DIST_PATH}/workspace${WORKSPACE_POSTFIX}/mount" | awk '{print $2}'`
    + kill -9 1
    + for i in `lsof "${DIST_PATH}/workspace${WORKSPACE_POSTFIX}/mount" | awk '{print $2}'`
    + kill -9 1
    + for i in `lsof "${DIST_PATH}/workspace${WORKSPACE_POSTFIX}/mount" | awk '{print $2}'`
    + kill -9 16
    pi@berry:~/FullPageOS/src $ ls
    build_dist  config  docker-compose.yml  image  modules  vagrant  variants
    

    @guysoft have you any suggestion?

  8. guysoft commented on Nov 4, 2025

    @guysoft
    Owner

    One is closed because it was on a specific topic in trixie, the other is for all the rest.

    You can just do the build command with the download option:

    sudo docker exec -it fullpageos-build build -d
    
  9. guysoft commented on Nov 4, 2025

    @guysoft
    Owner

    Also converting this to a discussion. Its not an issue, because its about an issue.

  10. Repository owner locked and limited conversation to collaborators on Nov 4, 2025
  11. converted this issue into a discussion #680 on Nov 4, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions