Автор Тема: Установка Workstation K 9.1 на ультрабук Acer Swift 3 (SF313-52G-57TG)  (Прочитано 8978 раз)

Оффлайн kiav

  • Завсегдатай
  • *
  • Сообщений: 527
  • Стич-спасатель
    • Email
BIOS InsydeH20 версии 1.03 (сами менюшки версии 5).

На нем только EFI Shell. На разделе с EFI единственный файл fs0:\EFI\UEFISHELL\BOOTx64.EFI
Загружается при включении именно EFI Shell. Скрипта startup.nsh не существует.

Загрузиться с флешки можно (вариант загрузки Linpus Lite). Диск PCIe NVMe заставить появиться в Linux удалось (сменил с помощью бубна режим на AHCI).

Я бы уже начал установку, если бы не начитался всякого и не испугался за переменные NVRAM. Их там я насчитал 276 штук.

Также нет в EFI Shell широко описанной команды bcfg (чтобы убрать EFI Shell из загрузки).
Спойлер
Shell> help
?             - Displays the EFI Shell command list or verbose command help
alias         - Displays, creates, or deletes EFI Shell aliases
attrib        - Displays or changes the attributes of files or directories
cd            - Displays or changes the current directory
cls           - Clears standard output and optionally changes background color
comp          - Compares the contents of two files
connect       - Connects one or more EFI drivers to a device
cp            - Copies one or more files or directories to another location
date          - Displays or changes the current system date
dblk          - Displays one or more blocks from a block device
devices       - Displays the list of devices managed by EFI drivers
devtree       - Displays the EFI Driver Model compliant device tree
dh            - Displays EFI handle information
disconnect    - Disconnects one or more EFI drivers from a device
dmem          - Displays the contents of memory
dmpstore      - Displays all EFI NVRAM variables
drivers       - Displays the EFI driver list
drvcfg        - Invokes the Driver Configuration Protocol
drvdiag       - Invokes the Driver Diagnostics Protocol
echo          - Controls batch file command echoing or displays a message
edit          - Full screen editor for ASCII or UNICODE files
eficompress   - Compress a file
efidecompress - Decompress a file
err           - Displays or changes the error level
exit          - Exits the EFI Shell environment
for           - Executes commands for each item in a set of items
goto          - Forces batch file execution to jump to specified location
guid          - Displays all registered EFI GUIDs
help          - Displays the EFI Shell command list or verbose command help
hexedit       - Full screen hex editor
if            - Executes commands in specified conditions
ifconfig      - Modify the default IP address of UEFI network stack
ipconfig      - Displays or modifies the current IP configuration
load          - Loads and optionally connects one or more EFI drivers
loadpcirom    - Loads a PCI Option ROM
ls            - Displays a list of files and subdirectories in a directory
map           - Displays or defines mappings
mem           - Displays the contents of memory
memmap        - Displays the memory map
mkdir         - Creates one or more directories
mm            - Displays or modifies MEM/MMIO/IO/PCI/PCIE address space
mode          - Displays or changes the console output device mode
mount         - Mounts a file system on a block device
mv            - Moves one or more files or directories to another location
openinfo      - Displays the protocols and agents associated with a handle
pause         - Prints a message and waits for keyboard input
pci           - Displays PCI device list or PCI function configuration space
ping          - Ping a target machine with UEFI network stack
reconnect     - Reconnects one or more EFI drivers to a device
reset         - Resets the system
rm            - Deletes one or more files or directories
sermode       - Sets serial port attributes
set           - Displays or modifies EFI Shell environment variables
shift         - Shifts batch file input parameter positions
smbiosview    - Displays SMBIOS information
stall         - Stalls the processor for the specified number of microseconds
telnetmgmt    - Change terminal type
time          - Displays or changes the current system time
timezone      - Displays or sets time zone information
touch         - Updates filename timestamp with current system date and time
type          - Displays file contents
unload        - Unloads a EFI driver
ver           - Displays EFI Firmware version information
vol           - Displays or changes a file system volume label

Как я понял, единственный файл BOOTx64.EFI - это и есть EFI Shell. И, раз он не в стандартном месте EFI/boot/BOOTx64.EFI, то путь прописан в NVRAM.

Вопросы на данный момент:
  • Не "замочит" ли инсталлятор ОС переменные NVRAM? Опасаюсь, что ноут станет кирпичом.
  • Куда/как ставить загрузчик?

По второму вопросу, вероятно, мне предстоит накарябать свой скрипт startup.nsh для запуска \EFI\altlinux\grubx64.efi. Тогда EFI Shell остается, но что сделает efibootmgr при инсталляции? Либо подсунуть grub2 в загрузчик по-умолчанию, и надеяться, что BIOS подхватит именно его, а не Shell.

Оффлайн kiav

  • Завсегдатай
  • *
  • Сообщений: 527
  • Стич-спасатель
    • Email
Статью про efibootmgr я прочел старую (4 года прошло). С тех пор софтина научилась менять записи о загрузке.

Вот что я вижу в LiveCD:$ efibootmgr -v
BootCurrent: 0001
Timeout: 0 seconds
BootOrder: 0001,0000,2001,2002,2003
Boot0000* UEFI_SHELL HD(1,GPT,e8b9305d-67d1-4d85-8251-8946115bed7c,0x800,0x200000)/File(\EFI\UEFISHELL\bootx64.efi)RC
Boot0001* Linpus lite HD(1,MBR,0x122613dc,0x11dc,0x1b440)/File(\EFI\Boot\grubx64.efi)RC
Boot2001* EFI USB Device RC
Boot2002* EFI DVD/CDROM RC
Boot2003* EFI Network RC

Так что да, загрузка EFI Shell прописана в NVRAM.
Спойлер
Variable RT+BS 'Efi:BootCurrent' DataSize = 2
  00000000: 00 00                                            *..*

Variable NV+RT+BS 'Efi:Timeout' DataSize = 2
  00000000: 00 00                                            *..*
 
Variable NV+RT+BS 'Efi:BootOrder' DataSize = 8
  00000000: 00 00 01 20 02 20 03 20-                         *... . . *
 
Variable NV+RT+BS 'Efi:Boot0000' DataSize = 86
  00000000: 01 00 00 00 68 00 55 00-45 00 46 00 49 00 5F 00  *....h.U.E.F.I._.*
  00000010: 53 00 48 00 45 00 4C 00-4C 00 00 00 04 01 2A 00  *S.H.E.L.L.....*.*
  00000020: 01 00 00 00 00 08 00 00-00 00 00 00 00 00 20 00  *.............. .*
  00000030: 00 00 00 00 5D 30 B9 E8-D1 67 85 4D 82 51 89 46  *....]0...g.M.Q.F*
  00000040: 11 5B ED 7C 02 02 04 04-3A 00 5C 00 45 00 46 00  *.[......:.\.E.F.*
  00000050: 49 00 5C 00 55 00 45 00-46 00 49 00 53 00 48 00  *I.\.U.E.F.I.S.H.*
  00000060: 45 00 4C 00 4C 00 5C 00-62 00 6F 00 6F 00 74 00  *E.L.L.\.b.o.o.t.*
  00000070: 78 00 36 00 34 00 2E 00-65 00 66 00 69 00 00 00  *x.6.4...e.f.i...*
  00000080: 7F FF 04 00 52 43                                *....RC*
 
Variable NV+RT+BS 'Efi:Boot2001' DataSize = 2A
  00000000: 01 00 00 00 04 00 45 00-46 00 49 00 20 00 55 00  *......E.F.I. .U.*
  00000010: 53 00 42 00 20 00 44 00-65 00 76 00 69 00 63 00  *S.B. .D.e.v.i.c.*
  00000020: 65 00 00 00 7F FF 04 00-52 43                    *e.......RC*
 
Variable NV+RT+BS 'Efi:Boot2002' DataSize = 28
  00000000: 01 00 00 00 04 00 45 00-46 00 49 00 20 00 44 00  *......E.F.I. .D.*
  00000010: 56 00 44 00 2F 00 43 00-44 00 52 00 4F 00 4D 00  *V.D./.C.D.R.O.M.*
  00000020: 00 00 7F FF 04 00 52 43-                         *......RC*

Variable NV+RT+BS 'Efi:Boot2003' DataSize = 24
  00000000: 01 00 00 00 04 00 45 00-46 00 49 00 20 00 4E 00  *......E.F.I. .N.*
  00000010: 65 00 74 00 77 00 6F 00-72 00 6B 00 00 00 7F FF  *e.t.w.o.r.k.....*
  00000020: 04 00 52 43
« Последнее редактирование: 21.09.2020 12:15:44 от kiav »

Оффлайн kiav

  • Завсегдатай
  • *
  • Сообщений: 527
  • Стич-спасатель
    • Email
Пошел по пути опытов в VirtualBox. Они сильно изменился со времен написания статьи.

По крайней мере, мои изменения в NVRAM сохранились.

Вместе с VirtualBox уже идет встроенная UEFI Interactive Shell v2.2. В ней есть пресловутая bcfg. И загружается эта оболочка, если больше нечего загрузить (ничего не установлено или нет подмонтированного загрузочного ISO). Кстати, в настройки BIOS можно попасть из оболочки просто по команде exit (быстрые нажатия на F8 или F12 у меня не получились).

Я в Live CD создал EFI раздел. Кинул на него \EFI\UEFISHELL\BOOTx64.EFI взятый с ноута.
После поставил в нулевую позицию загрузку именно этого файла:

bcfg boot add 0 \EFI\UEFISHELL\BOOTx64.EFI "Acer Swift 3 EFI Shell"

Записал видео опытов.

Оффлайн kiav

  • Завсегдатай
  • *
  • Сообщений: 527
  • Стич-спасатель
    • Email
Опыты с VirtualBox можно считать законченными.

С запуском инсталлятора из EFI Shell ничего не выходит. Инсталлятор при таком запуске не предлагает поставить установщик в EFI. Это касается оболочки от ноутбука и стандартной из VM.

А вот если позволить инсталляшке загрузиться штатно (как будто выбрал его из меню загрузки BIOS) - то установка EFI проходит.

Я намеренно выбрал вариант "EFI (запретить запись в NVRAM)". Это создает файлы в разделе EFI, но не меняет очередность загрузки и не добавляет новых пунктов в нее (т.е. не применяются команды, аналогичные bcfg boot add).

Вариант "EFI (сначала очистить NVRAM)" мне не понятен, не знаю что там будет и не пробовал.

Вариант "EFI (для съемных устройств)" интересен, но не по этому (ноутбук) поводу. Так можно делать двойную загрузку, видимо, скрывая от непосвященных наличие Linux на борту. Аналогичное я делал лет 20 назад на lilo (тогда еще дискеты были).

Уже установленную систему и загрузчик можно запустить из EFI Shell. Как вручную, так и автоматически.

В общем-то все мои сомнения выглядят, наверняка странно. Просто, до создания этой темы (ну, до покупки ноута) я знал о EFI, что оно есть, что требует отдельного раздела со специальными флагами и что нужно пользоваться при установке вариантом "EFI (рекомендуемый)" и все будет хорошо.

Оффлайн kiav

  • Завсегдатай
  • *
  • Сообщений: 527
  • Стич-спасатель
    • Email
Поставил на реальное железо alt-kworkstation-9.1-beta20200911-install-x86_64.iso
Мои опыты с startup.nsh пригодились, т.к. вариант "EFI (рекомендуемый)" не привел к загрузке Альта по-умолчанию. В список доверенных /EFI/altlinux/grubx64.efi добавить пришлось. Иначе он не запускался (типа, не программа вовсе).

swap сделал, но в сомнения не зря ли.

Поставил шифрование раздела. В первый раз (LUKS). Пароль от раздела запрашивается дважды. Сначала при запуске grub, а потом при загрузке ядра уже из grub. Не исключаю, что именно шифрование не дало запуститься Альту без startup.nsh.

До этого, пока еще был жив TrueCrypt, шифровал Windows (на случай кражи ПК). Там уже не помню ничего. Но, вроде бы, пароль спрашивали один раз. Да и MBR там еще был.

Сама железяка расстроила по звуку.
Спойлер
System:    Kernel: 5.7.19-un-def-alt1 x86_64 bits: 64 compiler: gcc v: 8.4.1 Console: N/A Distro: ALT 9.1 
Machine:   Type: Laptop System: Acer product: Swift SF313-52G v: V1.03 serial: <filter>
           Mobo: IL model: Skol_IL v: V1.03 serial: <filter> UEFI: Insyde v: 1.03 date: 02/12/2020
Battery:   ID-1: BAT0 charge: 20.3 Wh condition: 55.5/56.0 Wh (99%) model: SMP KT00407008 AP18C7M status: Discharging
CPU:       Topology: Quad Core model: Intel Core i5-1035G1 bits: 64 type: MT MCP arch: Ice Lake rev: 5 L2 cache: 6144 KiB
           flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 19046
           Speed: 545 MHz min/max: 400/3600 MHz Core speeds (MHz): 1: 659 2: 664 3: 808 4: 1011 5: 583 6: 666 7: 904 8: 1030
Graphics:  Device-1: Intel Iris Plus Graphics G1 vendor: Acer Incorporated ALI driver: i915 v: kernel bus ID: 00:02.0
           Device-2: NVIDIA GP107M [GeForce MX350] vendor: Acer Incorporated ALI driver: nvidia v: 450.57 bus ID: 2b:00.0
           Device-3: Chicony HD WebCam type: USB driver: uvcvideo bus ID: 3-6:4
           Display: server: X.Org 1.20.8 driver: modesetting,nvidia unloaded: fbdev,vesa resolution: 2256x1504~60Hz
           Message: Unable to show advanced data. Required tool glxinfo missing.
Audio:     Device-1: Intel Smart Sound Audio vendor: Acer Incorporated ALI driver: sof-audio-pci bus ID: 00:1f.3
           Sound Server: ALSA v: k5.7.19-un-def-alt1
Network:   Device-1: Intel Killer Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter driver: iwlwifi v: kernel port: 4000
           bus ID: 00:14.3
           IF: wlan0 state: up mac: <filter>
Drives:    Local Storage: total: 505.85 GiB used: 14.20 GiB (2.8%)
           ID-1: /dev/nvme0n1 vendor: Kingston model: RBUSNS8154P3512GJ1 size: 476.94 GiB
           ID-2: /dev/sda type: USB vendor: A-Data model: USB Flash Drive size: 28.91 GiB
           Message: No Optical or Floppy data was found.
Partition: ID-1: / size: 454.99 GiB used: 8.00 GiB (1.8%) fs: ext4 dev: /dev/dm-0
Swap:      ID-1: swap-1 type: partition size: 8.00 GiB used: 0 KiB (0.0%) dev: /dev/nvme0n1p2
Sensors:   System Temperatures: cpu: 39.0 C mobo: N/A
           Fan Speeds (RPM): N/A
Info:      Processes: 246 Uptime: 9m Memory: 7.46 GiB used: 1.07 GiB (14.3%) Init: systemd runlevel: 5 Compilers: gcc: N/A
           Shell: bash v: 4.4.23 inxi: 3.1.00

Встроенные динамики тиховаты. Более-менее на 150%.
А вот с встроенным микрофоном беда. Перейдя на ядро 5.7 я в принципе его увидел в pavucontrol. Но насчет стерео-микрофона написано, что он не подключен (это встроенный то!), а многоканальный дуплекс по микрофону ничего не решает. Впрочем, это точно не аппаратная проблема, т.к. записать с этого микрофона звук удалось через ALSA в kwave. Придется иметь дело с USB микрофоном.

Не порадовал и сам дистрибутив. После установки новых программ они сами не добавляются в меню. Чтобы они там появились, нужно самому зайти в kmenueditor и обновить меню из системного.

Добавлено:

По LUKS я, скорее всего, виноват сам. Есть похожий случай. Но там пострадавший вообще не смог загрузиться. А я могу, только пароль спрашивается дважды. Видимо, раздел /boot надо выносить из контейнера LUKS.

По встроенному микрофону зарегистрировал ошибку 38979 "В PulseAudio недоступен встроенный микрофон на ноутбуке Acer Swift 3 SF313-52G-57TG"

По меню - Ошибка 38980 "После установки новых пакетов не обновляется меню приложений"
« Последнее редактирование: 22.09.2020 13:06:47 от kiav »