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
I was able to successfully install & run Manjaro on X13s!
Prerequisites
- Ubuntu Concept or any other Linux with Grub installed on X13s (to flash partition on NVMe and initially load Manjaro afterwards)
- 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
- Installed
manjaro-arm-tools
on other PC/laptop (let’s name it “device 2”)
- 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
- Some free space on X13s’ NVMe
The process
- 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
- Copy the resulted image to your X13s booted into Ubuntu Concept or other Linux distro and unzip it
- Mount unzipped image as a loop device
- Create a partition in which Manjaro will be installed
dd
the second partition of the loop device to the partition you’ve created
- Grow up the fs to the partition’ size with
resize2fs
(parted
or GParted
can do this for you too)
- Mount resulted partition and the first partition of the loop device into temporary folders
- Copy everything from the first loop partition to
/boot
folder of the resized recently partition
- 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
- 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
}
- Restart and boot into Manjaro, follow the instructions, boot into Manjaro once more
- 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
- Enable
pd-mapper
service
- Install Grub
- Edit
/etc/default/grub
and specify GRUB_CMDLINE_LINUX_DEFAULT=“loglevel=3 efi=noruntime pd_ignore_unused clk_ignore_unused”
- Run
grub-install
(should automatically pick EFI aarch64 platform, but you may want to specify bootloader id for system EFI loader)
- Generate Grub config
- 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
- Add
ironrobin-x13s
repo to /etc/pacman.conf
:[ironrobin-x13s]
Server = https://github.com/ironrobin/x13s-alarm/releases/download/packages
- 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
- On this stage you should have fully working Manjaro installation with audio and battery. Enjoy)
Hope I haven’t missed anything.
Screenshots
5 Likes