Проект базируется на ядре, модулях из другой инструкции. Для начала советую поставить arch по ней, чтобы проверить, что все работает. Для тех кому не интересно собрать что-то свое можно сразу качать образ и переходить сюда.
sudo apt update
sudo apt install -y debootstrap qemu-user-static binfmt-support android-tools-fastboot android-tools-fsutils p7zip-full gdownsudo pacman -Syu --needed debootstrap qemu-user-static qemu-binfmt android-tools p7zip
yay -Sy gdownДля работы с chroot окружением arm64 нам потребуется онлайн трансляция байткода в нашу материнскую архитектуру (и наверное это amd64). Поэтому нам потребуется binfmt.
cat /proc/sys/fs/binfmt_misc/qemu-aarch64Вывод должен быть примерно таким:
enabled
interpreter /usr/bin/qemu-aarch64-static
flags: ...
Список всех зарегистрированных интерпретаторов можно посмотреть так:
ls /proc/sys/fs/binfmt_misc/Главное чтобы там было qemu-aarch64
Скачать и распаковать модули
gdown 11vbhryMM5gqvH5VtXBEU2jdGErm7kEwd #https://drive.google.com/file/d/11vbhryMM5gqvH5VtXBEU2jdGErm7kEwd/view
7z e arch-v0.2.7z && rm arch-v0.2.7z
gdown 1EBjFueV5KI_8MHIzE0qkxejkCGMQpkMG #https://drive.google.com/file/d/1EBjFueV5KI_8MHIzE0qkxejkCGMQpkMG/view?usp=drive_link
unzip arch_modules_v3_0_0.zip -d arch_modules_v3_0_0 && rm arch_modules_v3_0_0.zipДолжны скачаться и распаковаться файлы:
./
├── arch_modules_v3_0_0
├── arch_rootfs_fastboot_v02.img
└──boot_arch_domin746826.img
Будем собирать Ubuntu 24.04 (noble)
sudo debootstrap \
--arch=arm64 \
--foreign \
--variant=minbase \
--components=main,universe \
--include=systemd-sysv,dbus,ca-certificates,locales,netbase,iproute2,iputils-ping,wget,curl,man-db,sudo,passwd,login \
noble \
ubuntu-aarch64-noble \
http://ports.ubuntu.com/ubuntu-ports
sudo cp /usr/bin/qemu-aarch64-static ubuntu-aarch64-noble/usr/bin/
sudo chroot ubuntu-aarch64-noble /debootstrap/debootstrap --second-stageДалее нужно:
- Добавить
sbinвPATH - Создать пользователя
- Установить дополнительные пакеты
ubuntu-desktoplocalesdialogapt-utilsvimlessnet-toolsiproute2systemd-sysvnanosshpulseaudio
- Сконфигурировать локали
- Задать хостнейм и добавить его в
/etc/hosts
sudo chroot ubuntu-aarch64-noble #заходим в окружение
export PATH="$PATH:/sbin:/usr/sbin:usr/local/sbin"
adduser pipa
usermod -aG sudo pipa
apt update
apt install -y ubuntu-desktop
apt install -y locales dialog apt-utils vim less net-tools iproute2 systemd-sysv nano ssh pulseaudio
dpkg-reconfigure locales
hostname pipa
echo "pipa" > /etc/hostname
echo "127.0.0.1 pipa" >> /etc/hosts Pipewire на планшете работает некорректно - звук очень тихий, поэтому заменяем на pulseaudio.
sudo chroot ubuntu-aarch64-noble #не забываем заходить в окружение
apt install -y pulseaudio pulseaudio-utils pavucontrol
systemctl --user mask pipewire-pulse.service pipewire-pulse.socket wireplumber.service
systemctl --user unmask pulseaudio.service pulseaudio.socket
systemctl --user enable --now pulseaudio.service pulseaudio.socketНужно отключить глобально pipewire, wireplumber, pipewire-pulse
sudo chroot ubuntu-aarch64-noble #не забываем заходить в окружение
sudo systemctl --global mask pipewire.service pipewire.socket wireplumber.service pipewire-pulse.service pipewire-pulse.socket
systemctl --global unmask pulseaudio.service pulseaudio.socket
systemctl --global enable pulseaudio.service pulseaudio.socketТакже нужно пропатчить ucm конфиги, в стандартных MultiMedia2 и PlaybackPCM "hw:${CardId},1"
sudo chroot ubuntu-aarch64-noble #не забываем заходить в окружение
tee /usr/share/alsa/ucm2/Qualcomm/sm8250/HiFi2.conf > /dev/null <<'EOF'
Syntax 3
SectionVerb {
EnableSequence [
cset "name='TERT_TDM_RX_0 Audio Mixer MultiMedia1' 1"
]
DisableSequence [
cset "name='TERT_TDM_RX_0 Audio Mixer MultiMedia1' 0"
]
Value {
TQ "HiFi"
}
}
SectionDevice."Speaker" {
Comment "Speaker playback"
Value {
PlaybackPriority 200
PlaybackPCM "hw:${CardId},0"
}
}
EOF
tee /usr/share/alsa/ucm2/conf.d/sm8250/Xiaomi\ Pad\ 6.conf > /dev/null <<'EOF'
Syntax 3
SectionUseCase."HiFi" {
File "/Qualcomm/sm8250/HiFi2.conf"
Comment "HiFi quality Music."
}
SectionUseCase."HDMI" {
File "/Qualcomm/sm8250/HDMI.conf"
Comment "HDMI output."
}
EOFПо дефолту и на экране блокировки и на рабочем столе монитор будет повернут на бок, это нужно исправлять.
sudo chroot ubuntu-aarch64-noble #не забываем заходить в окружение
tee /var/lib/gdm3/.config/monitors.xml > /dev/null <<'EOF'
<monitors version="2">
<configuration>
<logicalmonitor>
<x>0</x>
<y>0</y>
<scale>2</scale>
<primary>yes</primary>
<transform>
<rotation>right</rotation>
<flipped>no</flipped>
</transform>
<monitor>
<monitorspec>
<connector>DSI-1</connector>
<vendor>unknown</vendor>
<product>unknown</product>
<serial>unknown</serial>
</monitorspec>
<mode>
<width>1800</width>
<height>2880</height>
<rate>120.000</rate>
</mode>
</monitor>
</logicalmonitor>
</configuration>
</monitors>
EOF
mkdir -p /home/pipa/.config
cp /var/lib/gdm3/.config/monitors.xml /home/pipa/.config/monitors.xml
chown -R pipa /home/pipaВ прошлых шагах мы скачали образы системы и модули ядра. Теперь нужно перенести /lib/firmware и /lib/modules в наше chroot окружение.
firmware:
mkdir arch_img
simg2img arch_rootfs_fastboot_v02.img arch_img.img
sudo mount ./arch_img.img ./arch_img
sudo cp -r ./arch_img/lib/firmware/* ./ubuntu-aarch64-noble/lib/firmware/
sudo umount ./arch_imgKernel modules:
sudo rm -rf ./ubuntu-aarch64-noble/lib/modules/*
sudo cp -r ./arch_modules_v3_0_0/lib/modules/* ./ubuntu-aarch64-noble/lib/modules/Для загрузки fastboot образ должен быть формата sparse image. Наше ядро от arch ищет метку arch_rootfs, по которой и монтирует rootfs.
mkdir mnt
dd if=/dev/zero of=userdata.ext4 bs=1M count=5500
mkfs.ext4 -F -L arch_rootfs -O ^metadata_csum,^64bit userdata.ext4
sudo mount userdata.ext4 mnt
sudo cp -a ubuntu-aarch64-noble/* mnt/
sudo umount mnt
img2simg userdata.ext4 pipa-ubuntu-noble.imgЗаметка, для пересборки после изменений в окружении:
sudo mount userdata.ext4 mnt
sudo cp -a ubuntu-aarch64-noble/* mnt/
sudo umount mnt
img2simg userdata.ext4 pipa-ubuntu-noble.imgЕсли вы еще не прошивали boot от инструкции с arch.
gdwon 1E7-n2ziHckgW60yp4GjVcoTpSGJgsPXt #https://drive.google.com/file/d/1E7-n2ziHckgW60yp4GjVcoTpSGJgsPXt/view
# перевести планшет в fastboot, подключить к компу и грузить
fastboot flash boot_a arch_boot_v3_0_0.img
fastboot flash boot_b arch_boot_v3_0_0.imgГотово! Теперь можно подключать планшет к компу в режиме fastboot и грузить.
fastboot flash userdata pipa-ubuntu-noble.img
fastboot rebootПосле установки нужно обязательно поставить правильную дату и все обновить (apt upgrade), там пофиксили многие проблемы (например многие пункты меню нельзя было нажать с тачскрина). После апдейта может отрыгнуть звук и тогда советую повторить пункт Фикс звука, но уже на самом планшете.