Asus X205TA Ubuntu2110

De Lea Linux
Aller à la navigation Aller à la recherche
Attention ! Cet article est en cours de rédaction. Il n'a donc encore été ni relu, ni corrigé, ni validé par un modérateur.
Léa vous encourage à éditer les articles pour les améliorer ou les corriger.

Installation d'un Linux Ubuntu 21.10 sur un Asus X205TA

De base, c'est une plaie :)

Il faut savoir que le CPU Intel gère le 64 bits, mais que pour le boot, cela n'accepte qu'un boot-loader 32 bits, il faut trop jouer des coudes pour arriver sans avoir à tout casser.

  • Télécharger l'ISO Ubuntu 21.10 Desktop 64 Bits :
       - Index: https://releases.ubuntu.com/21.10/ 
       - Lien direct: https://releases.ubuntu.com/21.10/ubuntu-21.10-desktop-amd64.iso
  • Burner l'image sur une clef usb:
       dd if=ubuntu-21.10-desktop-amd64.iso of=/dev/sdb  <= a changer si /dev/sdb n'est pas la clef USB
           ou (pour avoir un status de temps) : 
       pv ubuntu-21.10-desktop-amd64.iso | dd of=/dev/sdb <= a changer si /dev/sdb n'est pas la clef USB
  • Télécharger le boot 32bits (un des liens, par ordre de préférence) :
       - Lien 1 : https://github.com/jfwells/linux-asus-t100ta/raw/master/boot/bootia32.efi  <= testé
       - Lien 3 : https://github.com/savagezen/x205ta/blob/master/bootia32.efi   <= non testé
       - Lien 4 : https://github.com/hirotakaster/baytail-bootia32.efi           <= non testé
       - Lien 2 : http://www.thinktwisted.com/gradschool/Public/grubia32.efi     <= grubia32 non testé
  • Monter la partition EFI :
       mount /dev/sdb2 /media/usb/     <= a changer si /dev/sdb n'est pas la clef USB
  • Dans /EFI/boot (ou /efi/boot/), placer bootia32.efi :
       cp ~/chez/vous/bootia32.efi /media/usb/EFI/boot/bootia32.efi
  • Demonter la clef
       umount /media/usb
  • Démarrer l'ordinateur avec la clef USB dans le port USB (important, sinon le bios ne le détectera pas) et presser plusieurs fois F2 pour accéder au bios.
  • Dans le Bios :
      - Advanced > USB Configuration > USB Controller Select > *EHCI*
      - Security > Secure Boot Menu -> Secure Boot Control -> *Disabled*
      - Save & Exit > Save Changes (pas Save Changes & Exit)
      - Save & Exit > Boot Override > "USB"

Si tout se passe bien, vous aurez le prompt GRUB sans rien d'autre.

  • Dans Grub, taper :
       set root=(hd0,1)
       linux	/casper/vmlinuz file=/preseed/ubuntu.seed
       initrd	/casper/initrd
       boot
  • Attendre le boot du live-usb (si tout se passe bien :)
  • Procéder à l'installation normalement. A la fin, ne pas rebooter ! Ubuntu aura installé une version 64b du boot-loader et ne démarra jamais sur le disque dur
  • Ouvrir un terminal dans le live-usb et on va copier le boot-loader EFI de notre clef USB dans la partition EFI de l'ordinateur :
    sudo -s
    mkdir /mnt/sd
    mkdir /mnt/boot/
    mount /dev/sda1 /mnt/sd/
    mount /dev/mmcblk2p1 /mnt/boot/
    rm -rf /mnt/boot/EFI/ubuntu/
    rm -rf /mnt/boot/EFI/Boot/   (pas utile, c'est juste pour que cela soit propre)
    cp -a /mnt/sd/EFI/boot /mnt/boot/EFI/ubuntu
  • On va inscrire une entrée Linux avec le bootia32.efi :
    efibootmgr -c -g -d /dev/mmcblk2p1 -p 1 -L "Linux" -l "\EFI\ubuntu\bootia32.efi"
  • A ce point-ci, nous avons un grub qui va pouvoir démarrer via le Bios (F2 > Save & Exit > Override boot > Linux, pour l'instant pour les tests)
  • Pour le faire manuel en attendant [Work In Progress] :
    set root=(hd0,5)   <== c'est notre partition linux (changer le 5 par un autre nombre, un tab permet de voir les partoches)
    linux /boot/vmlinuz root=/dev/mmcblk2p5 intel_idle.max_cstate=1        <== "intel_idle.max_cstate=1" seulement si vous constatez des freezes étranges (pas observé avec les derniers kernels)
    initrd /boot/initrd.img
    boot 


  • Après un "suspend/resume", le touchpad ne marche plus, il faut reloader le module elan_i2c à chaque reprise :


 $ vi /etc/systemd/system/suspend-resume.service
 ----8<--------------------------------
 [Unit]
 Description=Local system resume actions
 After=suspend.target
 
 [Service]
 ExecStart=/usr/local/bin/suspend-resume.sh
 
 [Install]
 WantedBy=suspend.target
 ----8<-------------------------------
 
 $ vi /usr/local/bin/suspend-resume.sh
 ----8<-------------------------------
 #!/bin/sh
 rmmod elan_i2c
 modprobe elan_i2c
 ----8<-------------------------------
 $ chmod +x /usr/local/bin/suspend-resume.sh
 $ systemctl enable suspend-resume
 $ systemctl start suspend-resume

(basé sur https://github.com/savagezen/x205ta/blob/master/BUGS.md)


  • Voir avec le menu grub (mode manuel) :
 set boot=(hd0,5)
 set prefix=(hd0,5)/boot/grub
 insmod normal
 normal

Si vous voyez le menu grub, c'est que votre config est OK.

  • Réinstaller correctement GRUB/EFI (32bits):
 apt-get install grub-efi-ia32 grub-efi-ia32-bin
 grub-install --target=i386-efi --efi-directory=/boot/efi/


  • Si vous voulez virer des entrées EFI, utilisez efibootmgr



Annexe:

Pour compiler son propre bootia32.efi (source: lopaka, https://github.com/lopaka/instructions/blob/master/ubuntu-16.04-install-asus-x205ta.md)

PS: le bootia32.efi en sorti n'a pas été testé, nous gardons ce passage de la doc de lopaka en cas où cette documentation disparaissait ou bien si les bootia32.efi en lien dans l'article disparaissait.

Note importante: à compiler sur une ancienne version de GCC-6 ou GG-7 ou bien directement, sous une ubuntu 16.10 (docker toussa) - sinon gcc va gueuler des erreurs :

 apt -y install git bison libopts25 libselinux1-dev autogen 
       m4 autoconf help2man libopts25-dev flex libfont-freetype-perl \
       automake autotools-dev libfreetype6-dev texinfo python make libdevmapper-dev \
       build-essential
 git clone git://git.savannah.gnu.org/grub.git
 cd grub
 git checkout b4d709b6ee789cdaf3fa7a80fd90c721a16f48c2    <= A priori, c'est lié au fait que les nouvelles versions de grub ne supportent plus le type de matos asus
 ./autogen.sh
 ./configure --with-platform=efi --target=i386 --program-prefix=
 make
 cd grub-core
 ../grub-mkimage -d . -o bootia32.efi -O i386-efi -p /boot/grub \
        ntfs hfs appleldr boot cat efi_gop efi_uga elf fat hfsplus iso9660 linux keylayouts \
        memdisk minicmd part_apple ext2 extcmd xfs xnu part_bsd part_gpt search search_fs_file \
        chain btrfs loadbios loadenv lvm minix minix2 reiserfs memrw mmap msdospart scsi loopback \
        normal configfile gzio all_video efi_gop efi_uga gfxterm gettext echo boot chain eval
 cp ~/boot32/grub/grub-core/bootia32.efi /media/usb/EFI/boot/