Всем привет, меня зовут Иван. Хочу поделиться опытом, который может пригодиться тем, кто захочет сделать такую же странную вещь, как и я, — установить OpenSuse на планшет с Windows.
Наступила осень, на улице холодно и мокро, велосипед поставлен на зимовку. Хочется сидеть на диване и серфить в Интернете под расслабляющую музыку. А где проблема? А она в том, что планшет был пожертвован детям, а жена свой не даст. Значит, пришло время прикупить новый.
Муки выбора и «хитрый» план
Решение принято, но что брать? Наступает тот самый момент, когда гик должен выбрать новый девайс. Скажу честно: продукцией Apple не интересуюсь и даже не рассматривал в качестве варианта. Казалось бы, можно взять Android и радоваться, но не тут-то было. Хочется чего-то…
И тут в выдаче всплывает недорогой Irbis TW104 с Windows. Хм, да он еще и на Intel Atom. Получается это мини-ноутбук в формфакторе планшета. Беру! Поставлю на него свой любимый OpenSuSE, буду на диванчике в родном окружении чилить.
Итого: процессор Intel Atom x5-Z8350 (4 ядра), 1.44 ГГц, 4 Гбайта ОЗУ, разъем под microSD (смогу оставить Windows и сделать dual boot), встроенная в чехол клавиатура с мышью и вроде бы разъем USB, но, похоже, через кабель OTG. Докидываю в корзину OTG-кабель и какую-то microSD на 128 Гбайт из тех, что пошустрее.
Анбоксинг и первый запуск
Сутки мучительного ожидания позади — и вот новая игрушка у меня в руках. Первые впечатления: увесист, пухловат (современные Android‑планшеты, конечно, тоньше и легче), но на ощупь приятен, а с прицепленной клавиатурой превращается в ноутбучек. Мне нравится, желания вернуть не возникло.
Включаю, появляется логотип фирмы‑производителя, затем Windows радостно приветствует меня и не менее радостно предлагает разрешить передавать всякое в Microsoft. Дохожу до создания учетной записи, и тут он требует почту, чтобы сделать учетную запись Microsoft. Гуглю: надо было пропустить подключение к Wi‑Fi, тогда Windows дает завести локальную учетную запись.
Зажимаю кнопку питания, перезапускаю устройство, и, о чудо, — девайс предлагает завести локальную учетную запись. Вроде все работает, нести устройство в гарантию не надо, попробуем поставить Linux.
Попытка установки 1: неудача
Итак, приступаю к установке. Первым делом качаю OpenSuSE 15.5 Leap. Как оказалось, зря, дальше расскажу почему. Если захотите повторить мой путь, качайте сразу Offline Image.
Небольшое пояснение, у OpenSuSE есть два типа дистрибутивов:
Leap — версия OpenSuSE из пакетов SUSE Linux Enterprise, стабильный дистрибутив;
Tumbleweed — версия из пакетов, собранных на основе последних наработок сообщества, так называемый rolling release.
Я, естественно, выбираю тот, что постабильней.
Заливаю с Unetbootin дистрибутив на флешку. Собираю конструкцию из нее и OTG‑кабеля, захожу в UEFI, чтобы поменять порядок загрузки, и сталкиваюсь с первым приколом — экран повернут набок. Немного поразмышляв о сооружении системы зеркал, чтобы «выпрямить» картинку, решаю, что пока потерплю.
В меню загрузки менять ничего не пришлось: USB-устройства и так идут первыми. Запускаю инсталлятор, снова получаю повернутый экран и еще одну проблему: сетевых устройств не найдено, и по сети систему не поставить. Деваться некуда, качаю офлайн-инсталлер.
Попытка 2: опять мимо
Имидж скачан и залит на флешку, запускаю установку — и снова получаю повернутую картинку, а еще инвертированную мышь и неработающий тачпад.
Перемещаться по кнопкам можно с помощью Tab, выбирать кнопки и поля ввода — пробелом. Для подтверждения выбора — Enter.
Инсталлятор предлагает удалить раздел Windows и поставить систему на него, такой вариант не подходит. Отказываюсь от предложения системы и создаю разметку с / на microSD. После перезагрузки во время установки снова грузится Windows. В UEFI загрузчик OpenSuSE виден, но при попытке оверрайда запуска из UEFI все равно грузится Windows.
Может, из-за Secure Boot? Отключаю (кстати, тут мне повезло: отключенный Secure Boot, возможно, сэкономил мне кучу времени позже), но все равно грузится не то. Пробую рассуждать логически: вероятно, все дело в том, что у меня /boot на microSD, и надо попробовать перенести этот раздел «внутрь».
Попытка 3: удача (но с оговорками)
Заново запускаю инсталлятор, дохожу до раздела с разметкой и понимаю, почему инсталлятор предлагал удалить раздел с Windows полностью — раздел зашифрован Bitlocker, так просто ресайз ему не сделать. Ctrl-Alt-Del.
Загрузка в Windows, лезу в раздел «Настройки», нахожу там в подразделе «Обновление и безопасность» пункт Bitlocker и жму «Расшифровать». Полчаса на чаек и посмотреть в окно в ожидании. После расшифровки — снова загрузка инсталлятора OpenSuSE, разметка /boot-раздел на встроенной Flash, и / на microSD.
В целом догадка оказалась верной. После установки встречает повернутый набок GRUB.
Победа? Нет. Не монтируется /. Меня встречает печальная консоль Single User. Так, если инсталлятор видел microSD, а установленная система — нет, проблема понятна: ядро Linux при запуске монтирует специальный CPIO-архив c маленьким RAM-диском, в котором лежат драйвера устройств. Тот самый initrd. В этот маленький архив складывают специфичные драйвера SCSI- и RAID-контроллеров, чтобы была возможность разместить корневой раздел на RAID-массиве или SCSI-диске.
Похоже, набор модулей, подгружаемый инсталлятором, несколько побольше и включает модули, которые позволяют видеть microSD. Снова загружаю инсталлятор, перебирая комбинациями клавиш (Ctrl-Alt-F1, Ctrl-Alt-F2) терминалы, и нахожу тот, в котором можно понабирать команды.
Командой lsblk узнаю, что microSD определилась как mmcblk2. Дальше командой lsmod | grep mmc ищу модули, которые отвечают за mmc.
Дополнительно просто копаюсь в списке модулей и выбираю те, которые мне понравились (по ощущениям, их тоже нужно подгрузить, ну так, на всякий случай, чтобы второй раз не вставать), потом выверю список. Честно. :)
В итоге получается так:
sdhci
sdhci-acpi
mmc_core
mmc_block
dw_dmac_core
dw_dmac
i2c_designware_platform
i2c_designware_core
Теперь надо добавить эти модули в Init RAM Disk. В дистрибутивах RPM Based сейчас чаще всего используется утилитка dracut, в дистрибутивах на Debian, кажется, mkinitramfs.
Создаю в /mnt директорию sd:
mkdir /mnt/sd
Дальше монтирую в эту директорию / c sd-карточки:
mount /dev/mmcblk2p1 /mnt/sd
А потом монтирую /boot, который ранее разместил на встроенном flash:
mount /dev/mmcblk0p6 /mnt/sd/boot
Ну, и меняю корень на /mnt/sd:
chroot /mnt/sd
Теперь можно и dracut запустить, чтобы собрать Init RAM Disk с нужными модулями:
dracut -f --force-drivers "sdhci sdhci-acpi mmc_core mmc_block dw_dmac_core dw_dmac i2c_designware_platform i2c_designware_core"
Перезапускаю систему через Ctrl-Alt-Del. Победа! Система загружается. Теперь надо добавить на постоянку в конфигурацию dracut, чтобы после обновления ядра не отвалился снова корневой раздел.
Создаю файл /etc/dracut.conf.d/11-mmc.conf,
в него вписываю драйвера:
add_drivers+="sdhci sdhci-acpi mmc_core mmc_block dw_dmac_core dw_dmac i2c_designware_platform i2c_designware_core"
Готово.
Настройка оборудования: экран
Первым делом после перезагрузки надо решить проблему с повернутым экраном. Шея болит, сидеть с повернутой набок головой уже надоело.
Начну с простого: надо повернуть экран в графическом режиме. Кнопкой Win открываю меню запуска программ, затем консоль. Командой xrandr ищу, куда подключен экран — DSI-1.
Открываю файл /etc/X11/xorg.conf.d/50-monitor.conf.
Раскомментирую секцию настроек монитора и подставляю идентификатор монитора DSI-1. Ну, и добавляю настройку ротации экрана вправо.
Section "Monitor"
Identifier "DSI-1"
Option "Rotate" "right"
EndSection
Перезагрузка. Все, шею можно выпрямлять. Теперь надо бы и в неграфической консоли экран повернуть.
Открываю /etc/default/grub и в переменную GRUB_CMDLINE_LINUX добавляю fbcon=rotate:1
Дальше командой grub2-mkconfig -o /boot/grub2/grub.cfg пересобираю конфигурацию GRUB. Все, теперь шея не будет болеть и при работе в текстовой консоли.
Настройка оборудования: сеть
Теперь одна из главных задач — поднять сеть. Чтобы не возиться с поиском драйвера по айдишникам оборудования, загружаюсь в Windows и выясняю, что сетевой адаптер — это rtl8723ds. Драйвер, слава Интернету, есть. Сделан энтузиастами и его можно собрать из исходников: https://github.com/lwfinger/rtl8723ds.git
Копирую исходники на флешку и переношу на планшет. Дальше вроде бы все просто:
make
make install
Но ничего не собирается. Не хватает заголовочных файлов. Как-то так получилось, что у меня версия ядра выше, чем версия пакета с исходниками ядра и заголовочными файлами. Проверить можно так:
uname -a
sudo zypper info kernel-default-devel
Решение: подключаю телефон как USB-модем и скачиваю все нужные пакеты. Драйвер собрался, сеть заработала.
Помните, я выше писал, что с отключением Secure Boot мне повезло? Вот почему: после одной из перезагрузок я решил вернуть Secure Boot, но после его включения перестала работать сеть. Покурив форумы, нашел ветку с точно такой же проблемой работы драйвера в сочетании с Secure Boot. И решения пока не найдено.
Настройка оборудования: тачскрин
Теперь пришло время запустить тачскрин. Какой тачскрин установлен, можно тоже подсмотреть в Windows. Благо, энтузиасты и здесь не остались в стороне. Клонирую репозиторий: https://github.com/onitake/gslx680-acpi.git
make
make install
Перезагрузка, не работает. В dmesg — ошибка подгрузки firmware. Дело в том, что контроллер тачскрина универсальный, а в прошивке указываются параметры конкретного экрана и модели. Сами прошивки и утилиты по работе с ними есть в репозитории: https://github.com/onitake/gsl‑firmware.git
При попытке подсунуть firmware от другой модели тачскрин заработал, только координаты были сбиты напрочь. Придется делать свою прошивку. Монтирую раздел c Windows и в драйверах в директории windows ищу файл SileadTouch.sys. Дальше скармливаю файл драйвера утилите scanwindrv из репозитория gsl-firmware.
gsl-firmware/tools/scanwindrv ./SileadTouch.sys
На выходе получается файл firmware_00.fw из драйвера Windows. После чего другой утилитой gsl-firmware/tools/fwtool генерирую firmware для драйвера на Linux. Набор параметров экрана пришлось подыскивать методом тыка. Я делал это так: нажимал на экран в левом нижнем углу и в режиме выделения тянул рамку в правый верхний угол. Если рамка отставала от пальца, то корректировал размер в плюс, если обгоняла — в минус.
Копирую firmware:
cp silead_ts.fw /lib/firmware/
cp silead_ts.fw /lib/firmware/silead/silead_ts.fw
cp silead_ts.fw /lib/firmware/silead/mssl1680.fw
Тачксрин работает, можно уже установить виртуальную клавиатуру и посидеть в ютубчике? Не получится: звука нет, Bluetooth не работает.
Настройка оборудования: звук и Bluetooth
На самом деле запустить встроенный звук было проще всего. Ровно одна команда:
zypper install sof-firmware
Судя по описанию чипа сетевой карты, Bluetooth в нее встроен. Драйвер уже установлен, значит, надо копать, почему Bluetooth не запускается.
Команда dmesg | egrep "(Blue|blue|rtl)", чтобы посмотреть все ошибки, связанные с Bluetooth: снова не хватает Firmware, благо, на этот счет уже побеспокоились ребята из комьюнити дистрибутива Armbian.
Клонирую репозиторий https://github.com/armbian/firmware.git, копирую файлы:
cp firmware/rtl_bt/rtl8723_ds* /lib/firmware/rtl_bt/
При загрузке драйвер пытается подгрузить конфиг из файла rtl8723ds_config-OBDA8723.bin, делаю символьную ссылку.
ln -s rtl8723ds_config.bin rtl8723ds_config-OBDA8723.bin
Тут обратите внимание, что O в имени файла rtl8723ds_config-OBDA8723.bin — буква, а не ноль. Пока не понял, проковырялся где-то час, матерясь и не понимая, почему не подтягивается конфигурация. Перезагружаюсь, Bluetooth работает. Почти победа, только инверсированная мышь раздражает.
Настройка оборудования: мышь (не побеждено)
Пришло время разобраться с инвертированной мышью. Первым делом, по заветам Интернета, пробую решить проблему через настройку InputClass в X. Безрезультатно. Никакие Option "InvX " "true " и Option "InversionX" "true " не срабатывают. Промучавшись несколько часов, перехожу в итоге к гайдам с методами, выглядящими как-то «костыльно».
Есть утилитка xinput, которая позволяет управлять опциями устройств ввода. В том числе есть матрица трансформации координат мыши. Похоже, с помощью этой матрицы можно трансформировать координаты мыши не только под прямыми углами, используя дробные числа.
И вроде даже получилось заставить курсор двигаться правильно такой вот командой:
xinput set-prop 13 --type=float "Coordinate Transformation Matrix" -1 0 1 0 -1 1 0 0 1
Только, к сожалению, клики мыши остались инвертированными.
Попробую копать в сторону xinput. Оказывается, в X можно теперь создать несколько курсоров и «цеплять» их к разным устройствам. Это ли не мечта детства — погонять с товарищем в «Героев», да так, чтобы не передавать друг другу мышку и не ругаться о том, у кого ладони потные.
Пробую. Ничего себе — работает. На экране теперь два курсора, один стоит на месте, другой двигается в нужном направлении. Еще немного подкостылю, с помощью xdotool буду сдвигать курсор за пределы экрана.
Получается вот такой костыльный скриптик:
#!/bin/bash
xdotool mousemove 1000000 100000
xinput create-master mymouse
xinput reattach "SIGMACHIP USB Keyboard Mouse" "mymouse pointer"
xinput reattach "Silead GSLx680 Touchscreen" "mymouse pointer"
Добавляю этот скриптик в автозагрузку KDE. Вроде работает, но «такое»: в некоторых приложениях новый курсор ведет себя странно, а иногда старый внезапно выскакивает из зоны невидимости. В общем, костыль получился совсем кривой. Но исследовательский запал исчерпан, хочется уже полежать с планшетом на диване, а допилить все немного позже. Надеюсь, что-то из этой статьи будет кому-нибудь полезно.
Комментарии (27)
RKupkenov
26.10.2023 08:15+2Похожие танцы с бубном были когда ставил win10 вместо win11 на Chuwi MiniBook X - экран тоже был перевернут и тач не работал полноценно, автообновление драйверов проблему не решало, производитель сам что-то начудил с драйверами...
seasadm
26.10.2023 08:15+4Спасибо. До прочтения этой статьи мне казалось что человек не может быть настолько сэксуально неудовлетворён :)
V1tol
26.10.2023 08:15+1Тогда и я поделюсь опытом. Достался от брата планшет Chuwi Hi12 на Atom Z8300. Windows на нём пользоваться невозможно, а Android застрял на версии 5.1.1. Раньше пытался устанавливать Linux, но были проблемы то с ориентацией экрана, то с тачскрином - в итоге забросил в ящик пылиться. Но недавно на него установил свежевышедший Debian 12 и о чудо - в системе видится всё кроме камер (нет поддержки в ядре). У конкретно моего экземпляра не работает кардридер (аппаратный дефект этих процессоров) и микрофон (сломал бывший хозяин). Тачскрин, комплектная клавиатура с тачпадом, звук, Wi-Fi, BT, даже поворот экрана акселерометром - всё работает. И на удивление GNOME под Wayland работает почти как родной Android по плавности. Для нужд поглазеть кино-сериал в BT наушниках или почитать книжку - за глаза.
Скриншот
Johan_Palych
26.10.2023 08:15+2Если я правильно понял - OpenSuSE развернута на microSD. Windows на eMMC flash.
Какую fs использовали для microSD?
Для SDCard желательно - Minimizing disk access:
mkfs.ext4 -O "^has_journal" /dev/sdXX
For more performance add fstab opions: data=writeback,noatime,nodiratimeНеплохо использовать - mkfs.f2fs make file system for f2fs NAND flash drive special
https://www.real-world-systems.com/docs/mkfs.f2fs.1.html
zypper addrepo https://download.opensuse.org/repositories/filesystems/15.5/filesystems.repo
zypper refresh
zypper install f2fs-toolsIvanMimo Автор
26.10.2023 08:15+1Спаcибо за отличный совет! По умолчанию в OpenSuse используется btrfs. Ваш комментарий навел на мысль, что действительно надо отключить snapshotы! https://www.simplified.guide/suse/snapper-disable-snapshots
Я пока не буду переставлять систему, проведу эксперимент как долго sd карточка проживет, рекомендацию Вашу "прикопал".
NutsUnderline
26.10.2023 08:15С исходниками то оно хорошо, с исходниками - откомпилировать можно. А без исходников .. будет как у вчерашнего владельца планшета от Digma...
AlvinMerphy
26.10.2023 08:15+2Добавлю свои 5 копеек. Есть такой проект Suse Studio, где можно собрать свой, репозитарий, например, из пакетов драйверов. Если нужный драйвер есть в природе, то его можно собрать в свой репозитарий и установить. Сам давно думаю собрать свой кастомный планшет на Suse, благо там есть и мобильная и облегчённая версия Plasma. Plasma-nano и plasma - Mobile. Телефоны lumia с нужными процами на Алике стоят копейки
psydvl
26.10.2023 08:15Побуду занудой: openSUSE пишется по-другому
IvanMimo Автор
26.10.2023 08:15+4Вы абсолютно правы, но разрешите по оправдываться. Моя дружба с Linux началась с SuSE 9. тогда еще именно так писалось с маленькой u, никак не могу привыкнуть писать правильно. У меня даже кружочка с тех времен осталась:
Кстати, YaST по-прежнему пишется "канонично" ;).
maxmorev
26.10.2023 08:15Кайф, Ваня. Спасибо!
Умеешь ты развлекаться!
Хотел все Linux поставить на планш, ты напомнил. +1 к моим развлечениям )
GBR-613
26.10.2023 08:15Можно поинтересоваться, есть у Suse какие-то преимущества перед Ubuntu? Или это всё - вопрос привычки?
IvanMimo Автор
26.10.2023 08:15Тема довольно холиварная, поэтому выскажу личное мнение. Для десктопа вопрос привычки. Меня цепляет в openSUSE наличие удобной панели управления YaST, хотя я вполне жил на работе под CentOS 7 без нее; отличный software center https://software.opensuse.org/, в котором для многих программ есть One Click Installer под YaST.
lennylizowzskiy
26.10.2023 08:15есть у Suse какие-то преимущества перед Ubuntu
Отсутствие Snap, чистый GNOME без твиков, наличие довольно удобной панели управления системой YaST, лучший GUI-установщик дистрибутива из тех которые я видел (полагаю, что видел все существующие - их на самом деле не так чтобы много (Calamares, Jade и пара distribution-specific)), наличие software center с интерфейсом и отсутствие необходимости использовать другой фронтенд для нормального использования пакетного менеджера (я про Nala, который работает поверх Apt). Хотя Zypper тоже довольно медленный
RedHead
26.10.2023 08:15Интересно, а usb-live linux через otg бы запустился? Ну какой-то slax \ mxlinux ?
t38c3j
26.10.2023 08:15+1Дохожу до создания учетной записи, и тут он требует почту, чтобы сделать учетную запись Microsoft
На заметку, сейчас в 11 версии можно пропустить это введя левый емейл и пароль, оно выдаст что много попыток входа в этот аккаунт и предложит создание локального аккаунта, как минимум это сработало у меня на 11 про.
shumaher86
26.10.2023 08:15есть примерно такой же планшет, только от Digma.
не могу понять, что за прикол с перевернутым экраном, что все загруженное с флешки не той ориентации отображается. и почему по дефолту не сделано так, как он с пристегнутой клавиатурой расположен. как и на этом.причем, в биосе есть настройки, вроде 2 варианта, но если менять, еще неудобней становится.
VasiliyLiGHT
26.10.2023 08:15Если это планшет, то почему изначально не поставили его вертикально, как все планшеты по-умолчанию? ???? Это из серии "создаём себе трудности и героически с ними боремся"?
Или это всё-таки нетбук? Или что? ????
shumaher86
26.10.2023 08:15+1что значит "не поставили"? в том и проблема, что при загрузке ему пофигу, как стоит. а потом винда по датчику переворачивает правильно изображение. ВМЕСТО того, чтоб оно было сразу горизонтально. то есть, что зашита в нем неправильная ориентация, чтоб под клавиатуру.
VasiliyLiGHT
26.10.2023 08:15Сам планшет повернуть, чтобы не уродоваться...
Если у планшета там коннектор для клавы и она при этом всегда в комплекте поставки, то минус разработчикам, что не прописали для дисплея такой вариант загрузки. А если комплектация для небольшой партии или вовсе отдельно, то ничего удивительного, кмк. Обычные люди планшет переворачивают кинцо посмотреть/игры поиграть ????
shumaher86
26.10.2023 08:15Если у планшета там коннектор для клавы и она при этом всегда в комплекте поставки, то минус разработчикам, что не прописали для дисплея такой вариант загрузки
вот представляете. иначе бы зачем я это написал? именно специально купил планшет с клавиатурой. на винде все ок, но ничего другое юзать нормально нельзя. даже загрузочные флешки с WinPE и проч. так как если экран еще можно повернуть, мышь повернуть я не знаю как.
если бы отдельно, то конечно, какие претензии ко всему этому
savagebk
26.10.2023 08:15На планшет с примерно аналогичным железом ставил Федору, т.к. из знакомых мне дистрибутивов только она умеет грузиться с Secure boot, а в этом планшете изменение опции в биосе, видимо, не работало. Поставилась без особых танцев, но экран был только портретной ориентации, мышь - инвертирована и были очень жуткие тормоза. Предполагаю, что тормозило из-за emmc+btrfs.
MAXH0
Просто божественно...????
Остался один вопрос - как работает планшет с такой, в принципе,тяжелой системой как КДЕ?
и вообще как работоспособность девайса...
IvanMimo Автор
Отлично работает. По крайней мере при Web серфинге и просмотре Youtube в Firefox. Telegram тоже вполне удобно пользоваться, подвисаний не заметил. С KDE есть небольшое неудобство, что почему-то Touchscreen не воспронимается как Touchscreen и из-за этого при таскании объектов и скролле нет сглаживания действий, наблюдается треммор. Еще в KDE на X нет из коробки виртуальной клавиатуры, все советуют на Wayland переходить, но пока не хочется. Поставил несколько виртуальных клавиатур, пока не понял какая удобней.