<span class="latin" style="width:19px;height:19px;">G</span><span class="latin" style="width:19px;height:19px;">r</span><span class="latin" style="width:19px;height:19px;">o</span><span class="latin" style="width:19px;height:19px;">u</span><span class="latin" style="width:19px;height:19px;">p</span><span class="latin" style="width:19px;height:19px;">:</span><span class="latin" style="width:19px;height:19px;">H</span><span class="latin" style="width:19px;height:19px;">a</span><span class="latin" style="width:19px;height:19px;">r</span><span class="latin" style="width:19px;height:19px;">d</span><span class="latin" style="width:19px;height:19px;">w</span><span class="latin" style="width:19px;height:19px;">a</span><span class="latin" style="width:19px;height:19px;">r</span><span class="latin" style="width:19px;height:19px;">e</span><span class="latin" style="width:19px;height:19px;">/</span><span class="latin" style="width:19px;height:19px;">F</span><span class="latin" style="width:19px;height:19px;">S</span><span class="latin" style="width:19px;height:19px;">D</span><span class="latin" style="width:19px;height:19px;">G</span><span class="latin" style="display:block;width:19px;height:19px;"> </span><span class="latin" style="width:19px;height:19px;">d</span><span class="latin" style="width:19px;height:19px;">i</span><span class="latin" style="width:19px;height:19px;">s</span><span class="latin" style="width:19px;height:19px;">t</span><span class="latin" style="width:19px;height:19px;">r</span><span class="latin" style="width:19px;height:19px;">i</span><span class="latin" style="width:19px;height:19px;">b</span><span class="latin" style="width:19px;height:19px;">u</span><span class="latin" style="width:19px;height:19px;">t</span><span class="latin" style="width:19px;height:19px;">i</span><span class="latin" style="width:19px;height:19px;">o</span></span><span class="tktr-gyo" style="height:640px;margin:0 0 180px 22px;font-size:19px;_width:19px;/width:19px;"><span class="latin" style="width:19px;height:19px;">n</span><span class="latin" style="width:19px;height:19px;">s</span><span class="latin" style="width:19px;height:19px;">/</span><span class="latin" style="width:19px;height:19px;">T</span><span class="latin" style="width:19px;height:19px;">r</span><span class="latin" style="width:19px;height:19px;">i</span><span class="latin" style="width:19px;height:19px;">s</span><span class="latin" style="width:19px;height:19px;">q</span><span class="latin" style="width:19px;height:19px;">u</span><span class="latin" style="width:19px;height:19px;">e</span><span class="latin" style="width:19px;height:19px;">l</span><span class="latin" style="display:block;width:19px;height:19px;"> </span><span class="latin" style="width:19px;height:19px;">-</span><span class="latin" style="display:block;width:19px;height:19px;"> </span><span class="latin" style="width:19px;height:19px;">L</span><span class="latin" style="width:19px;height:19px;">i</span><span class="latin" style="width:19px;height:19px;">b</span><span class="latin" style="width:19px;height:19px;">r</span><span class="latin" style="width:19px;height:19px;">e</span><span class="latin" style="width:19px;height:19px;">P</span><span class="latin" style="width:19px;height:19px;">l</span><span class="latin" style="width:19px;height:19px;">a</span><span class="latin" style="width:19px;height:19px;">n</span><span class="latin" style="width:19px;height:19px;">e</span><span class="latin" style="width:19px;height:19px;">t</span>  

Navigation menu




LibrePlanet


About 
About LibrePlanet
Mission Statement
Founding documents
Support this Community
Code of Conduct
Anti-harassment policy
Teams 
Activists
Wiki Helpers
LibrePlanet Artists
FSF Community Team
Local & Student Teams
Conferences 
LibrePlanet Conference
Non-official
Get involved 
Participate
Discussion channels
Events
 


Login
 










Group: Hardware/FSDG distributions/Trisquel

 

From LibrePlanet

< Group:Hardware | FSDG distributions

Jump to: navigation, search  

Contents

  • 2 Installing
  • 3 Failed installation With Trisquel 10 (nabia)
  • 4 References
  • Trisquel versions

    Version Can be debootstrapped Based on Kernel version Comments
    Trisquel 11 (aramo) Yes Ubuntu 22.04 LTS (Jammy Jellyfish)
    • 5.15
    Trisquel 10 (nabia) Yes Ubuntu 20.04 LTS (Focal Fossa)
    • 5.4
    • 5.13 (though linux-image-generic-hwe-20.04)

    Installing

    How to install Trisquel 10 (etiona) on 32bit ARM SBCs

    This tutorial has been tested on Parabola x86_64, but it should work on Trisquel too as they both have similar qemu-user-static packages.

    Distribution Package Binary
    Parabola qemu-user-static /usr/bin/qemu-arm-static
    Trisquel 11.0 (aramo) qemu-user-static /usr/bin/qemu-arm-static

    For Guix it was tested on Guix system with qemu:static but '/debootstrap/debootstrap --second-stage' didn't work without having the Transparent Emulation with QEMU enabled. Once enabled it worked fine. As for running Guix on top of Parabola with systemd, you need to install qemu-user-static-binfmt and enable systemd-binfmt.service like explained in the Parabola ARM installation guide for it to work.

    You can then start installing Trisquel on an ARM computer (from an x86 computer with Guix, Parabola or Trisquel) with the following commands:

    # qemu-img create -f raw storage.img 2G
    # echo 'start=2048,type=83' | sfdisk storage.img # This creates 1 partition.
    # udisksctl loop-setup -f storage.img
    # mkdir rootfs
    # mkfs.ext4 -O ^metadata_csum -O ^64bit /dev/loop0p1
    # mount /dev/loop0p1 rootfs
    # mkdir -p rootfs/usr/bin
    # debootstrap --foreign --arch armhf etiona rootfs
    

    Then if you use Parabola or Trisquel, you need to run the following commands:

    # cp /usr/bin/qemu-arm-static rootfs/usr/bin
    # LANG=C.UTF-8 chroot rootfs /usr/bin/qemu-arm-static /bin/bash
    # export TERM=xterm-color
    # export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    # /debootstrap/debootstrap --second-stage
    

    If you use Guix instead (either as system distribution or on top of another distribution) you can use the following commands instead:

    # sed 's#/gnu/store/.*/bin/sh#/bin/sh#g' -i rootfs/debootstrap/debootstrap
    # sed 's#/gnu/store/.*/bin/dpkg#/usr/bin/dpkg#g' -i rootfs/debootstrap/debootstrap
    # LANG=C.UTF-8 chroot rootfs /bin/bash
    # export TERM=xterm-color
    # export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    # /debootstrap/debootstrap --second-stage
    

    You then need to create the extlinux.conf file in /boot/extlinux/extlinux.conf with the following content:

    menu title Welcome to U-Boot with Extlinux support!
    
    timeout 10
    
    label Trisquel GNU/Linux-libre, linux-libre kernel
            kernel /boot/vmlinuz
            append loglevel=8 root=/dev/mmcblk0p1 rw
            fdtdir /boot/dtb/
            initrd /boot/initrd.img
    

    Set the first partition to be bootable (needed to be able to boot):

    # sfdisk /dev/loop0 -A 1
    

    Then you need to install a kernel:

    # for d in proc dev dev/pts sys ; do mount -o bind /$d rootfs/$d ; done
    # LANG=C.UTF-8 chroot rootfs /usr/bin/qemu-arm-static /bin/bash
    # source /etc/environment
    # apt remove flash-kernel
    # apt install linux-image-generic
    

    You then need to write a script in /etc/kernel/postinst.d/zz-generate-dtb-link to generate a symlink from /lib/firmware/<<your-kernel-version>>/device-tree/ to /boot/dtb, so for instance from /lib/firmware/5.4.0-96-generic/device-tree/ to /boot/dtb. I've an incomplete script here:

    #!/bin/sh
    set -e
    
    version="$1"
    
    ln -sf /lib/firmware/${version}/device-tree/ /boot/dtb
    

    The caveat of this script is that it has not been tested with multiple kernel versions installed, so during apt upgrade, it may or may not make the /boot/dtb link point to the wrong kernel. So that needs to be tested.

    With only one kernel installed it should not be a problem.

    In addition to that you will also need to make the symlink yourself the first time, before booting the image, like that:

    # LANG=C.UTF-8 chroot rootfs /usr/bin/qemu-arm-static /bin/bash
    # source /etc/environment
    # ln -sf /lib/firmware/<your-kernel-version>/device-tree/ /boot/dtb
    

    You will need to replace the <your-kenrel-version> with your kenrel version, for instance:

    # LANG=C.UTF-8 chroot rootfs /usr/bin/qemu-arm-static /bin/bash
    # source /etc/environment
    # ln -sf /lib/firmware/5.4.0-96-generic/device-tree/ /boot/dtb
    

    You will then need to install a bootloader, here's an example for the lime 1 A20:

    # LANG=C.UTF-8 chroot rootfs /usr/bin/qemu-arm-static /bin/bash
    # source /etc/environment
    # apt update
    # apt install u-boot-sunxi
    # cat /usr/share/doc/u-boot-sunxi/README.Debian
    # dd conv=fsync,notrunc if=/usr/lib/u-boot/A20-OLinuXino-Lime/u of=/dev/loop0 bs=1024 seek=8
    

    You can then unmount and copy to a microSD:

    # umount rootfs/dev/pts rootfs/dev rootfs/proc rootfs/sys rootfs/
    # ddrescue /dev/loop0 /dev/sdZ # copy to a microSD
    

    Failed installation With Trisquel 10 (nabia)

    References

    Retrieved from "https://libreplanet.org/wiki?title=Group:Hardware/FSDG_distributions/Trisquel&oldid=69976" 

    Category: 
    Incomplete pages



















    FSF
    The Free Software Foundation (FSF) is a nonprofit with a worldwide mission to promote computer user freedom.

    We defend the rights of all software users. (Read more)
     



    Campaigns


    High Priority Free Software Projects

    Free JavaScript

    Secure Boot vs Restricted Boot

    GNU Operating System

    Defective by Design

    See all campaigns
     



    Get Involved



    Contact
     




    Send your feedback on our translations and new translations of pages to campaigns@fsf.org.

    Copyright © 20132023 Free Software Foundation, Inc.  Privacy Policy, JavaScript license information