Page 1 of 4 123 ... LastLast
Results 1 to 10 of 38

Thread: ASUS X205TA hardware support for any other OS

  1. #1
    Join Date
    Apr 2007

    ASUS X205TA hardware support for any other OS

    This is a fork of the original thread Asus X205TA hardware support in Ubuntu. The forum moderators requested we not discuss other distros not based on Ubuntu and suggested we create a thread here.

    Quote Originally Posted by jmills81
    This thread is the best resource available for getting Linux to work properly on the X205TA. The hard work of several people spanning 3 years and 180+ pages has resulted in a device that is capable of running Ubuntu and other distros.

    @harryharryharry, et al;
    Wanted to say thanks so much for the hard work. I started off as a complete Linux noob and thanks to your hard work, I'm now running Ubuntu on my X205TA and have learned a ton along the way. Couldn't have done it without you guys!
    With @harryharryharry's updated script attached here, that's all there is to it!

    On Arch based distros, use my meta PKGBUILD or install the dependencies in the depends() array:

    pkgdesc="Meta package for"
    depends=('grub' 'syslinux' 'cdrtools' 'dosfstools' 'rsync' 'coreutils' 'xorriso')
    package() {
    	return 0
    Then run:
    sudo ./ myiso.iso

    The x205ta ArchWiki page is another good resource.

    If anyone would like me to add anything else to this post, PM me.
    Last edited by Yochanan; September 14th, 2020 at 09:35 PM.

  2. #2
    Join Date
    Oct 2009

    Re: ASUS X205TA hardware support for any other OS

    Distro-agnostic installation guide:

    I thought I might use the occasion of this shiny new thread to try and shed some light on the installation-quirks of the X205TA and how to address them in this general distro-agnostic installation guide.
    (If you want a more straight-forward approach to installing ubuntu; check the last link posted above by Yochanan.)

    Quick summary of the issues:
    The main issue with installing linux on the X205TA stems from the fact that the laptop has a 32bit uefi-system in combination with a 64bit CPU.

    This results in 2 problems:
    - 64bit isos won't boot from a usbstick because they mostly carry a 64bit bootloader (while 32bit isos generally only do legacy boot, not uefi).
    - If you do manage to boot a usbstick and install linux to the ssd, the distro’s installer will most likely try - and fail - to install a 64bit uefi bootloader, which will end in a pristine but unbootable linux installation (or for some distros it will crash the installer, which is harder to recover from. If the installer crashes you are probably better off reinstalling the OS and if possible disabling installing grub completely)

    Next to these boot problems are a couple of hardware quirks (enabling audio, wifi & bluetooth, stop random freezes) that need to be addressed to get the best linux experience. Some hardware functionalities as of yet do not (and might never) work:
    - microphone
    - headphone jack detection
    (Asking for these functionalities means you didn’t read this guide)

    The boot issues are addressed by step 1 & 5
    The hardware quirks by step 2,3 & 4

    How to address these issues:
    1. How to boot a usbstick:
    So the iso needs to boot in 32bit efi mode. This can be done by placing a file called bootia32.efi in a specific location on the usbstick. Because files can’t be added if you use tools like dd & imagewriters (they create read-only usbsticks), you’ll have to extract the iso to a fat32 formatted usbstick instead:
    # The next 3 commands will destroy all data on a device. Be extremely careful when you change y to your usbstick’s device letter.
    # If you are not comfortable with the command line, I suggest you format the usb stick to FAT32 using a GUI tool like gparted or the format option in windows.
    sudo parted -s /dev/sdy mklabel msdos #create new mbr partition table
    sudo parted -s /dev/sdy mkpart primary 1M 100% #create 1 partition that takes up 100% of the usbstick
    sudo mkfs.vfat -n X205TA /dev/sdy1 #format that partition FAT32 and label it X205TA
    # mount the usbstick somewhere and extract the iso to it
    sudo mount /dev/sdy1 /path/to/usbmountpoint
    sudo 7z x linux.iso -o/path/to/usbmountpoint/ #notice: no space after the -o flag, x in this command means extract.
    sudo mkdir -p /path/to/usbmountpoint/EFI/BOOT #if missing, this command creates a directory and its parent directories
    sudo wget -O /path/to/usbmountpoint/EFI/BOOT/bootia32.efi
    sync; sudo umount /path/to/usbmountpoint #writes any data buffered in memory out to disk and unmounts usbstick
    Now the usbstick will show up when pressing ESC during the X205TA boot process, and the bootia32.efi file will try to load /path/to/usbmountpoint/boot/grub/grub.cfg
    If this file/directory does not exist, a grub rescue prompt will appear. If this happens you will need to create it (/path/to/usbmountpoint/boot/grub/grub.cfg) yourself and add to the file something like this:
    menuentry 'Pretty LinuxOSname' {
    linux /isolinux/vmlinuz intel_idle.max_cstate=1 button.lid_init_state=open
    initrd /isolinux/initrd.img
    The linux line should point to the kernel (usually called vmlinuz or something similar in nature)
    The initrd line should point to the initramfs (usually called initrd.img or something similar in nature)
    The extracted iso will contain config files that reveal which boot parameters are required, it’s a bit of a trial-and-error detective game . Pressing ‘e’ in the grub menu lets you edit boot commands on-the-fly and try them out.
    In the example above I’ve added 2 parameters already because it makes sense to add them when using the X205TA (so if a grub.cfg already exists you benefit from adding these parameters):
    intel_idle.max_cstate=1 prevents freezing
    button.lid_init_state=open prevents suspend/resume loop when closing the lid

    Once booted into the live environment, my advice would be to install linux straight away.
    Skip to step 5 for an explanation on how to install the grub bootloader to the ssd after finishing the installation (because as said, the linux installer will fail to do so properly).
    Otherwise, you can perform the following steps to get more functionality for the duration of the live boot; however they will need to be repeated after (re)booting (into either live usb or the installed linux).

    2. How to gain internet connectivity
    The internal wireless card’s module (brcmfmac) needs a file called /lib/firmware/brcm/brcmfmac43340-sdio.txt to get the card up and running, but it’s missing (well it’s not in the right location). You can copy it by running the following commands:
    # probably not necessary, but to be sure the EFI variables are properly exposed to userspace
    sudo modprobe efivarfs
    sudo mount -t efivarfs efivarfs /sys/firmware/efi/efivars
    # then copy the file that starts with nvram to /lib/firmware/brcm
    sudo cp -a /sys/firmware/efi/efivars/nvram* /lib/firmware/brcm/brcmfmac43340-sdio.txt
    # and reload the brcmfmac module
    sudo rmmod brcmfmac
    sudo modprobe brcmfmac
    You can also opt to use a slightly different version I host on github:
    which has the added benefit of supporting 5GHz networks (pretty weird the version in the EFI variables doesn’t...)

    3. How to gain bluetooth connectivity
    The internal bluetooth chip needs a file called /lib/firmware/brcm/BCM43341B0.hcd and a running bluetooth service and a running btattach command (for which you can also create a service).
    # Download the firmware file to the right location
    sudo wget -O /lib/firmware/brcm/BCM43341B0.hcd
    Create a file called /etc/systemd/system/btattach.service with the following contents:

    ExecStart=/usr/bin/btattach --bredr /dev/ttyS1 -P bcm
    ExecStop=/usr/bin/killall btattach

    And then:
    # (re)start the services with
    sudo systemctl restart btattach
    sudo systemctl restart bluetooth
    # check the services
    sudo systemctl status btattach
    sudo systemctl restart bluetooth
    # (if the btattach service failed, check if the binary 'btattach' is installed)
    # (if the service btattach failed but btattach is installed, try changing /dev/ttyS1 to /dev/ttyS4 and reload and restart the service)
    # when you’re booted into linux on the ssd you can repeat step 3. and enable the services at boot with:
    sudo systemctl enable btattach
    sudo systemctl enable bluetooth

    The tweaks in step 4. will only take effect during boot so they cannot be applied during a running live session.

    4. Further tweaks
    To add headphone support (>=4.13 kernels only) and blacklist 2 modules that will cause problems, add the following contents to a file called /etc/modprobe.d/50-x205ta.conf
    # this quirk is needed to get headphones support in kernels >=4.13
    options snd_soc_rt5645 quirk=0x31

    # module snd_hdmi_lpe_audio breaks sound
    blacklist snd_hdmi_lpe_audio

    # module btsdio breaks wifi on suspend/resume
    blacklist btsdio
    Download a UCM-file from Pierre Bossart’s github, required for audio to work
    sudo wget -O /usr/share/alsa/ucm/chtrt5645/HiFi.conf
    # (this file is prone to be overwritten during distro updates of alsa-libs, check your package manager on how to prevent this from happening or backup the file so you can easily restore it.)
    # original file source: (which doesn't support headphones, and has headphones output as default instead of speakers)

    And last but not least...

    5. Properly install grub bootloader (make linux on the ssd bootable)
    I began by telling linux will try to install a 64bit uefi bootloader. This last step will explain how to chroot in to the linux installation from a liveusb stick and do what the installer failed to do.

    I’ve found this step to be a very handy tool for all future linux rescue situations. If you’re ever in a situation where linux won’t boot at all, this is a very rudimentary tool to help fix that. From within chroot you can remove/install/reconfigure/backup packages to your heart’s content just as if you were regularly booted into the distro. (This step also exemplifies why encrypting your rootfs is important, since all the passwords in the world won’t protect you if someone can simply be a root user by chrooting into your OS from a live usb.)

    In this case we will be reconfiguring grub (and in some cases installing extra grub packages).

    The most important part for this step to work is to find the right block device where the rootfs of your linux installation is located. Tools like blkid and lsblk will help you find the right block device. (hint; it’s probably ext4, taking up 95% of your ssd, and called root)

    # mount the rootfs partition (change X and Y) on /mnt
    sudo mount /dev/mmcblkXpY /mnt
    cd /mnt #(or, sweet bonus trick:   cd $_  )
    sudo mount --bind /proc proc
    sudo mount --bind /sys sys
    sudo mount --bind /dev dev
    sudo mount --bind /dev/pts dev/pts
    sudo mount --bind /run run
    sudo chroot .
    # you are now chrooted into the linux installation that is on the ssd, ready to perform miracles
    mount -a #firstly, attempt to mount all filesystems listed in /etc/fstab, because the efi partition should be mounted
    # probably not necessary, but to be sure the EFI variables are properly exposed to userspace run:
    modprobe efivarfs
    mount -t efivarfs efivarfs /sys/firmware/efi/efivars
    # this is the main command: it installs 32bit efi grub to the efi partition
    grub-install --target=i386-efi --bootloader-id=Linux --efi-directory=/boot/efi --recheck
    # (this command will fail if the necessary grub libraries are not installed, they should be in /usr/lib/grub/i386-efi/)
    # (some distros use grub2-install instead of grub-install)
    # now it's a good idea to add the intel_idle.max_cstate=1 button.lid_init_state=open parameters (explained in step 1) to /etc/default/grub (between the quotes after GRUB_CMDLINE_LINUX_DEFAULT) before generating grub.cfg
    # and then generate grub.cfg
    grub-mkconfig -o /boot/grub/grub.cfg
    # (some distros use grub2-mkconfig)
    # (likewise, on some distros you should install grub.cfg to /boot/grub2/ instead of /boot/grub/ – check which directory already exists)
    # exit the chroot environment
    # reboot the laptop
    sudo reboot
    # and cross your fingers
    sudo cross-fingers
    Please note that mainline kernels need intel_idle.max_cstate=1 as a boot parameter to stop random freezes. However this parameter prevents the laptop from going to deeper sleep states, which will make the device less power-efficient. If you want to prevent freezes, but still have the laptop be as power-efficient as possible, please refer to my patched kernel compilation guide or install one of my prebuilt patched kernels (if you are successful in booting a patched kernel, remember to remove the intel_idle.max_cstate=1 parameter from /etc/default/grub and update grub.cfg).

    Valuable sources:
    bugtracker sound issue X205TA:
    bugtracker freezing issue baytrail:
    Last edited by harryharryharry; November 27th, 2018 at 09:10 PM.
    Script to create bootable usb-stick for the X205TA. Guide to compile a kernel for the X205TA. Guides to install linux to X205TA: general or ubuntu

  3. #3
    Join Date
    Sep 2014

    Re: ASUS X205TA hardware support for any other OS

    Hi Harry,
    I understood I should post here instead of the other thread in order not to mess up the other one.
    Would you mind sharing the patch you used to get the mic working in the rev27 kernel, is something like the following one?
    Or is it a modified version of that one?
    Thanks again

  4. #4
    Join Date
    Oct 2009

    Re: ASUS X205TA hardware support for any other OS

    The patch I used on my kernel was submitted to the upstream kernel recently (by Hans de Goede - I guess the github page you linked to is Hans' github account):

    Besides this patch (which will not be needed for very long as it will be in mainline kernel sources soon), you wil need to replace /usr/share/alsa/ucm/chtrt5645/HiFi.conf with a modified one I shared on my github:

    It is a copy of HiFi.conf Pierre Bossart had on his github (he modified something 2 months ago that breaks audio on the X205TA - which is already reported back to him by plennaerts). My modifications are to set speakers output as default (instead of headphones) and changing the RECMIX channels for the Analog Microphone to BST2 instead of BST1.
    Script to create bootable usb-stick for the X205TA. Guide to compile a kernel for the X205TA. Guides to install linux to X205TA: general or ubuntu

  5. #5
    Join Date
    Jan 2017

    Re: ASUS X205TA hardware support for any other OS

    Hi guys,
    first of all thanks a lot for all your work getting Linux to a usable state on the X205!
    I have successfully installed Debian 9 (dual booting with Windows 10) on my machine just yesterday using Harry's last prebuilt image, everything seemes to work OK but I'm facing a strange issue: I can't modify the screen brightness anymore on Windows (FN+F5 and FN+F6 don't do anything; FN+F7 correctly shuts the screen off though).
    Has anyone faced a similar issue before? Any idea on how to test the brightness key on Debian with Xfce to rule out a possible hardware problem? Thanks!

  6. #6
    Join Date
    Oct 2009

    Re: ASUS X205TA hardware support for any other OS

    Which kernel (version) are you using? Brightness keys didn't get support until (I think) around march 2017. If you are running the stock kernel debian ships with, the kernel might be rather old and not yet have brightness fn keys support.

  7. #7
    Join Date
    Jan 2017

    Re: ASUS X205TA hardware support for any other OS

    Ignore this post... I've found out that the root of the problem had nothing to do with me installing Debian, it was a generic PnP-Monitor driver installed by TeamViewer disabling all the brightness functions.
    Sorry for the confusion and thanks a lot!
    Thanks for the quick response I was using the stock kernel, now I've updated it with your version (revision 27) and can confirm the fn keys work while using Debian; the problem still persists with Windows though, I've even tried resetting the installation and reinstalling the ATK package drivers but it didn't fix the issue.
    I'm starting to think the problem isn't with the keys though, since I can't turn on "Night light" either nor change the brightness level from "Power Options" -> "Edit Plan Settings" (there's no brightness bar at all); can someone with a dual-boot setup confirm these functions should work?
    Last edited by datgrey; January 23rd, 2018 at 03:44 PM.

  8. #8
    Join Date
    Oct 2009

    Re: ASUS X205TA hardware support for any other OS

    Hehe, good you found out the cause and posted it here anyway. Some other people that are dual booting might be able to help address the brightness issue under windows. If you haven't found it already, there seems to be a thread for this issue on the teamviewer forum (not really a big help since apparently the issue has been around for some time, and there doesn't seem to be much progress):
    Script to create bootable usb-stick for the X205TA. Guide to compile a kernel for the X205TA. Guides to install linux to X205TA: general or ubuntu

  9. #9
    Join Date
    Nov 2016

    Re: ASUS X205TA hardware support for any other OS


    After several time (years?) I have been using the harry^3 and kemyland custom kernels and patches for my x205ta with Arch. Currently, I am using the custom kernel for x205ta from the AUR.

    But since the bluetooth is working, I've experienced a strange behaviour: when it's working, the Wifi speed connection suddenly drop down (i.e. from 1-2MB/s to 10-100KB/s).
    Anyone else have this issue?

    Thank you all of you again!

  10. #10
    Join Date
    Apr 2007

    Re: ASUS X205TA hardware support for any other OS

    Whoops, nevermind.
    Last edited by Yochanan; April 1st, 2018 at 03:24 PM.
    ASUS Eee Book X205TA | OS: Manjaro Linux Xfce | Kernel: 5.8.X-X-MANJARO

Page 1 of 4 123 ... LastLast


Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts