Manjaro for the Lenovo ThinkPad X13s Gen1

Hello,

I want to know if the Manjaro-Arm-Team works on an USB-Stick-Image (iso-image) for the ThinkPad X13s?

Mine ThinkPad X13s Gen1 have the “Qualcom Snapdragon 8cx Gen3 SC8280XP” SoC and have 8 Cortex-A76 cores. The SoC is very complex but different forks with the kernel 6.3.0-rc4 supports it.

Best Regards
Andreas

Currently there is no such plan.

If there is support for this device in upstream kernel then it will work with efi-generic image.

We don’t have this hardware to test so I cannot confirm if it will work or not.

I’ve got myself a ThinkPad X13s w/ 5G module and touchscreen. Was able to successfully install & run Ubuntu Concept ISO (https://people.canonical.com/~xnox/ubuntu-concept/full/daily-live/current/) and have some experience in creating AUR packages. Also I’ve tried to install & run Archlinux with ironrobin’s kernel (https://github.com/ironrobin/archiso-x13s/) but with no luck yet. Can I help somehow with creating a test Manjaro-ARM ISO with Ubuntu’s kernel or try to create it by myself? Is there any tool like buildiso for x86/x64, but for ARM? Or at least some instructions maybe? It would be really helpful. Thanks in advance)

1 Like

Not an ISO but image.

https://forum.manjaro.org/t/wiki-how-to-contribute-to-manjaro-arm/35461

1 Like

I was able to successfully install & run Manjaro on X13s!

Prerequisites

  1. Ubuntu Concept or any other Linux with Grub installed on X13s (to flash partition on NVMe and initially load Manjaro afterwards)
  2. Downloaded and placed in one directory packages from Release packages · ironrobin/x13s-alarm · GitHub. Here’s the packages you need (there is no reason to follow me and download exactly this versions, feel free to download latest ones; you might need also Mutter-related packages if you want to install Gnome edition):
    $ ls manjaro-arm-packages/

    alsa-ucm-conf-git-x13s-1.2.9.638.42a4d4b.95302e6eb836bb2b070eea046d70406d-0-any.pkg.tar.xz
    libva-mesa-driver-23.2.1-0-aarch64.pkg.tar.xz
    linux-x13s-6.6.6-0-aarch64.pkg.tar.xz
    linux-x13s-headers-6.6.6-0-aarch64.pkg.tar.xz
    mesa-23.2.1-0-aarch64.pkg.tar.xz
    mesa-vdpau-23.2.1-0-aarch64.pkg.tar.xz
    opencl-mesa-23.2.1-0-aarch64.pkg.tar.xz
    vulkan-freedreno-23.2.1-0-aarch64.pkg.tar.xz
    vulkan-mesa-layers-23.2.1-0-aarch64.pkg.tar.xz
    x13s-firmware-20231211-0-any.pkg.tar.xz
    x13s-touchscreen-udev-1.0.2-1-any.pkg.tar.xz
    x13s-tweaks-0.1-0-any.pkg.tar.xz
  3. Installed manjaro-arm-tools on other PC/laptop (let’s name it “device 2”)
  4. Prepared device profile on the device 2:
    sudo tee /usr/share/manjaro-arm-tools/profiles/arm-profiles/devices/x13s-gen1 <<EOF
    # Lenovo X13s Gen1

    # Kernel and bootloader stuff
    plymouth
    plymouth-theme-manjaro

    # Video driver

    # Other device specific packages
    generic-post-install
    EOF
  5. Some free space on X13s’ NVMe

The process

  1. Build the image (use your preferred edition, here’s just my example):
    sudo buildarmimg -d x13s-gen1 -i manjaro-arm-packages -e kde-plasma -n
  2. Copy the resulted image to your X13s booted into Ubuntu Concept or other Linux distro and unzip it
  3. Mount unzipped image as a loop device
  4. Create a partition in which Manjaro will be installed
  5. dd the second partition of the loop device to the partition you’ve created
  6. Grow up the fs to the partition’ size with resize2fs (parted or GParted can do this for you too)
  7. Mount resulted partition and the first partition of the loop device into temporary folders
  8. Copy everything from the first loop partition to /boot folder of the resized recently partition
  9. Change etc/fstab in the resized partition like this (please note that there is no UUIDs, for some strange reason I had issues with them, and /boot should be changed to /boot/efi):
    # Static information about the filesystems.
    # See fstab(5) for details.

    # <file system> <dir> <type> <options> <dump> <pass>
    /dev/nvme0n1p1 /boot/efi vfat defaults,noexec,nodev,showexec 0 0
    /dev/nvme0n1p6 / ext4 defaults 0 1
  10. Change your booted OS’ Grub config to allow Manjaro load initially. Here’s the example of added entry (please note the UUID here, it should be replaced with the UUID of the resized recently partition) in /boot/grub/grub.cfg:
    menuentry ‘Manjaro ARM’ --class manjaro --class gnu-linux --class gnu --class os $menuentry_id_option ‘gnulinux-simple-07ad358b-be25-4e29-abe2-35553112f9a7’ {
    recordfail
    load_video
    gfxmode $linux_gfx_mode
    insmod gzio
    if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
    insmod part_gpt
    insmod ext2
    search --no-floppy --fs-uuid --set=root 07ad358b-be25-4e29-abe2-35553112f9a7
    linux /boot/vmlinuz-linux root=UUID=07ad358b-be25-4e29-abe2-35553112f9a7 ro loglevel=3 efi=noruntime pd_ignore_unused clk_ignore_unused
    initrd /boot/initramfs-linux.img
    devicetree /boot/sc8280xp-lenovo-thinkpad-x13s.dtb
    }
  11. Restart and boot into Manjaro, follow the instructions, boot into Manjaro once more
  12. Install additional packages you will need: efibootmgr, pd-mapper, qmic*, qrtr and rmtfs (*qmic is an AUR package (qmic-git) so you will need to build it, possibly using tools like pamac or yay; the last one is the simpliest: yay -S pd-mapper qmic qrtr rmtfs). Ignore that qmic-git has no aarch64 support specified in the PKGBUILD, it will build and work perfectly anyway
  13. Enable pd-mapper service
  14. Install Grub
  15. Edit /etc/default/grub and specify
    GRUB_CMDLINE_LINUX_DEFAULT=“loglevel=3 efi=noruntime pd_ignore_unused clk_ignore_unused”
  16. Run grub-install (should automatically pick EFI aarch64 platform, but you may want to specify bootloader id for system EFI loader)
  17. Generate Grub config
  18. Reboot and press F12 while there is Lenovo logo screen, you should see the second Grub installed with the ID you specified on grub-install (or the standard one if not), select it and boot into Manjaro
  19. Add ironrobin-x13s repo to /etc/pacman.conf:
    [ironrobin-x13s]
    Server = https://github.com/ironrobin/x13s-alarm/releases/download/packages
  20. Trust ironrobin’s key:
    sudo pacman-key --recv-keys 6ED02751500A833A --keyserver pgp.mit.edu
    sudo pacman-key --lsign-key 6ED02751500A833A
    If there is no ability to do that (I constantly get “servers unavailable” or smthn like that) than you can mark signatures optional to prevent getting errors. Please note that it’s pretty dangerous and is not recommended! Anyway, to do that, just place next line below [ironrobin-x13s] in /etc/pacman.conf:
    SigLevel = Optional TrustAll
  21. On this stage you should have fully working Manjaro installation with audio and battery. Enjoy)

Hope I haven’t missed anything.

Screenshots


зображення

5 Likes
2 Likes