Project

General

Profile

Packaging request #1965

Depthcharge bootable kernel for Librebooted Asus Chromebook C201

Added by CBotulinum 5 months ago. Updated 7 days ago.

Status:
fixed
Priority:
feature
Assignee:
% Done:

100%


Description

None of the kernel images offered by Parabola are bootable by the Depthcharge bootloader, which is used by the Libreboot project to boot kernels.
That means anyone using the C201 cannot run an up-to-date kernel unless they compile it and package it - some of us don't have the means to do that.
The other option is using the kernel that is packaged by ArchLinux ARM - which carries serious freedom issues with it.

So, is it possible to offer a Depthcharge-bootable kernel?

History

#1 Updated by bill-auger 5 months ago

  • Priority changed from bug to wish
  • Assignee set to Megver83

#2 Updated by Megver83 5 months ago

  • Subject changed from Depthcharge bootable kernel for Librebooted ARM devices to Depthcharge bootable kernel for Librebooted Asus Chromebook C201

You should have written to our mailing list first asking is its possible to boot Parabola on a C201. Now, if you know how and have the solution, then that's a reason for creating a bug report. I say this, because in the past there've been many attempts to get Parabola working on this machine with a libre kernel. However, no one has achieved nothing up to now ...

https://lists.parabola.nu/pipermail/dev/2016-April/003939.html
https://lists.parabola.nu/pipermail/dev/2016-April/003940.html
https://libreboot.org/docs/hardware/c201.html#parabola-gnulinux

The device needs a kernel with specific drives for its hardware,
that
are not integrated into Linus Torvald's version of Linux, the upstream
Linux
kernel.

Instead, CrOS systems use a downstream version of Linux, with changes for
hardware support. The source code for it is available as part of the
ChromiumOS
project and it can be rebuilt from source. Until the upstream kernel is
ready,
this downstream kernel is the best candidate to get a working free system
on the
device.

I've the skills and time to research and probably create a compatible linux-libre kernel with the C201, but pitifully I do not have a C201.

What you could do meanwhile, is to get that kernel source, deblob it with the deblobbing scripts, and see if it works.

#3 Updated by Megver83 5 months ago

  • Priority changed from wish to discussion

#4 Updated by CBotulinum 4 months ago

So, I've managed to successfully boot Linux-Libre.
Here are the instructions I followed to generate an image that Depthcharge can boot, I hope this can be used to make a specific Depthcharge-bootable kernel package:
https://notabug.org/nuclearkev/dragora-c201#creating-a-bootable-kernel
All software dependencies of this methods are already present in Parabola (vboot-utils and uboot-tools), and all the other needed files are present on the linked repository.

#5 Updated by CBotulinum about 1 month ago

Any news or progress?
I've been following the process I described above quite successfully for a while now, and the kernel boots without further modification.

#6 Updated by Megver83 about 1 month ago

Sorry for not answering. These are really exciting news. I'll work on linux-libre-chromebook soon.

#7 Updated by Megver83 about 1 month ago

Btw, did you use arch-kernel.its or kernel.its? (from the repo you built the kernel)

According to what I see, arch-kernel.its is the same as https://raw.githubusercontent.com/archlinuxarm/PKGBUILDs/master/core/linux-armv7/kernel.its, which needs to be built from kernel source, while kernel.its can be built with the linux-libre image installed in /boot, however there are some other differences (I'm not an expert in ARM and device trees) which idk if they are important.

I've uploaded chromebook-kernel to [libre-testing]
https://git.parabola.nu/abslibre.git/commit/?id=22d17f153183fa86b44816581c1677ca57cc1a79
which uses kernel.its from dragora-c201.git, I'll later upload linux-libre-chromebook which is the same but using arch-kernel.its (so it will be in the linux-libre 4.19.6 PKGBUILD at [libre-testing] soon). After I upload that one, I'd like you to try both and tell me which one works, and if both works, chromebook-kernel will go to [libre] as linux-libre-chromebook.

#8 Updated by CBotulinum about 1 month ago

I use kernel.its.
I'm gonna test the package now, will update soon.

#9 Updated by Megver83 about 1 month ago

I've uploaded linux-libre-chromebook to [libre-testing]. The only difference with chromebook-kernel is that it uses arch-kernel.its (the same one from ALARM).

Btw, this sign has to be updated every time linux-libre is updated, right?

#10 Updated by CBotulinum about 1 month ago

Yes, it has to be updated every time, IIRC.
Sorry that I didn't reply, I just didn't manage to install it, I forgot if it is possible to install a package from [libre-testing] without pulling all the other packages from there instead of [libre], and anyhow I hadn't had much time today, I'll hop on the IRC tomorrow (around the same time as now-ish) and check all this out/update the issue as needed.

#11 Updated by Megver83 about 1 month ago

CBotulinum wrote:

Yes, it has to be updated every time, IIRC.
Sorry that I didn't reply, I just didn't manage to install it, I forgot if it is possible to install a package from [libre-testing] without pulling all the other packages from there instead of [libre], and anyhow I hadn't had much time today, I'll hop on the IRC tomorrow (around the same time as now-ish) and check all this out/update the issue as needed.

You can use pacman -U <package-url> if you don't want to enable [libre-testing]

Remember to try both, chromebook-kernel and linux-libre-chromebook. If you are asked to remove your-freedom, do it (until I get the working kernel in [libre])

#12 Updated by CBotulinum about 1 month ago

Okay, thanks for the info, in about 10-ish hours I'll test both packages and report back - got a bit of a busy day today...

#13 Updated by CBotulinum about 1 month ago

So, I've hit an unrelated snag.
I tried to update the system beforehand (to minimize variables), but I forgot to run the needed scripts to make the kernel bootable, effectively burning away whatever amount of free time I would have had to test those kernels.
I'll try again tomorrow (IF I have the time), if not, it'll have to wait to Thursday/the weekend.
Really sorry, I think I shouldn't try to mess around with stuff like this after a long and tiring day...

#14 Updated by CBotulinum about 1 month ago

Okay, so chromebook-kernel doesn't work, even though I had successfully managed to boot linux-libre 4.19.6 while manually running the scripts to generate the image and flash it.
So, I'll restore from a backup and try the other kernel, in around two hours-ish I should have an update about linux-libre-chromebook.

#15 Updated by CBotulinum about 1 month ago

UPDATE:
Just installed linux-libre-chromebook, and it works!
Thanks a lot for the effort!

#16 Updated by Megver83 about 1 month ago

CBotulinum wrote:

UPDATE:
Just installed linux-libre-chromebook, and it works!
Thanks a lot for the effort!

I suspected chromebook-kernel wasn't going to work. I'll move linux-libre-chromebook to [libre] and make an announce in the news, since this is the first time someone reports to successfully boot Parabola in a C201 with linux-libre kernel

#17 Updated by CBotulinum about 1 month ago

I suspected chromebook-kernel wasn't going to work. I'll move linux-libre-chromebook to [libre] and make an announce in the news, since this is the first time someone reports to successfully boot Parabola in a C201 with linux-libre kernel

Again, thanks a lot for the effort, this is going to help a lot of people trying to run Parabola on fully free (yet still somewhat modern) systems.

#18 Updated by Megver83 about 1 month ago

  • % Done changed from 0 to 90
  • Priority changed from discussion to feature
  • Status changed from open to in progress

#19 Updated by Megver83 about 1 month ago

  • % Done changed from 90 to 100
  • Status changed from in progress to fixed

The package is now in [libre], updated to linux-libre 4.19.8

#20 Updated by 3p7kp4xn 24 days ago

linux-libre-chromebook seems does not work for me, or maybe not works on some of C201. (I'm using 2GB RAM version)

At first I tried to use this kernel to boot void-musl-arm, got white screen.
then I tried to install parabola, successfully boot parabola with cros kernel, but always got white screen with linux-libre-chromebook.

currently only two kernel works for me:
1. built followed by this https://wiki.gentoo.org/wiki/Asus_Chromebook_C201#4.13.2B_kernel_configuration (at least it can boot voidlinux), but can't recognize partitions on internal storage and rockchip audio device etc.
2. extracted from devuan-arm, change cmdline and repack with vbutil_kernel, but freeze at random time

I was also tried to change kernel cmdline to add debug or change loglevel to linux-libre-chromebook kernel, but no luck, always got white screen.

does linux-libre-firmware recognize internal storage (those partitions show in lsblk) and rockchip audio device ROCKCHIP-I2C well?

BTW the way I install linux-libre-firmware is just download the package and extract it, dd vmlinux.kpart to /dev/sda1 (sda1 is the first partition on my USB stick, sda2 is the root partition)

edit: sorry for the typo. s/linux-libre-firmware/linux-libre-chromebook/

#21 Updated by Megver83 19 days ago

3p7kp4xn wrote:

linux-libre-chromebook seems does not work for me, or maybe not works on some of C201. (I'm using 2GB RAM version)

At first I tried to use this kernel to boot void-musl-arm, got white screen.
then I tried to install parabola, successfully boot parabola with cros kernel, but always got white screen with linux-libre-chromebook.

currently only two kernel works for me:
1. built followed by this https://wiki.gentoo.org/wiki/Asus_Chromebook_C201#4.13.2B_kernel_configuration (at least it can boot voidlinux), but can't recognize partitions on internal storage and rockchip audio device etc.
2. extracted from devuan-arm, change cmdline and repack with vbutil_kernel, but freeze at random time

I was also tried to change kernel cmdline to add debug or change loglevel to linux-libre-chromebook kernel, but no luck, always got white screen.

does linux-libre-firmware recognize internal storage (those partitions show in lsblk) and rockchip audio device ROCKCHIP-I2C well?

BTW the way I install linux-libre-firmware is just download the package and extract it, dd vmlinux.kpart to /dev/sda1 (sda1 is the first partition on my USB stick, sda2 is the root partition)

Did you try installing ALARM and then migrating to Parabola? IMO that's the easiest way to install Parabola in ARM devices

does linux-libre-firmware recognize internal storage (those partitions show in lsblk) and rockchip audio device ROCKCHIP-I2C well?

Why should it? It's just firmware for non-critical stuff, like some atheros wifi cards and things like that, but all the rest (like audio and filesystem drivers) are in-kernel.

#22 Updated by bill-auger 19 days ago

isn't the ARM tarball the easiest way to install? - it was intended to be

#23 Updated by Megver83 15 days ago

bill-auger wrote:

isn't the ARM tarball the easiest way to install? - it was intended to be

I know, but to be honest, I think that it was unnecessary. Having ALARM tarballs and the migration guide (which is easy) makes our tarballs pointless. Plus, our tarball is generic, while ALARM creates tarballs for specific devices and SoCs.

Different to x86, an install ISO lets you test the system before installing it, while on ARM you must directly install the OS (at least in most ARM devices), so in that case there's no reason to bother on creating our own rootfs tarballs if they can easily migrate to Parabola.

With this I'm not saying that we should delete them, but think it twice if it's a good idea before going ahead implementing new stuff. This is my conclusion, at least, based on my experience with ARM.

#24 Updated by bill-auger 15 days ago

that does sound reasonable, but is there any non-free software on the basic ALARM system? - if there is, then we can not actually recommend it

#25 Updated by Megver83 15 days ago

bill-auger wrote:

that does sound reasonable, but is there any non-free software on the basic ALARM system? - if there is, then we can not actually recommend it

Of course there is (it's a base system anyways), afaik only linux kernel and linux-firmware. But it wouldn't be such a terrible thing if we give the advice of installing your-freedom (and by migrating you completely clean your system from non-free crap).

#26 Updated by bill-auger 14 days ago

the kernel for sure, i was mainly wondering how much work it would be to explode each of the ALARM tarballs, replace the kernels and whatever else, set the mirrors to parabola, and re-pack them; or would that be more trouble than re-building them in a VM

#27 Updated by 3p7kp4xn 14 days ago

Megver83 wrote:

Did you try installing ALARM and then migrating to Parabola? IMO that's the easiest way to install Parabola in ARM devices

no I didn't try that before, but I just tried.

does linux-libre-firmware recognize internal storage (those partitions show in lsblk) and rockchip audio device ROCKCHIP-I2C well?

Why should it? It's just firmware for non-critical stuff, like some atheros wifi cards and things like that, but all the rest (like audio and filesystem drivers) are in-kernel.

sorry for my typo! what I really want to ask is, does linux-libre-chromebook the kernel can recognize partitions of internal storage? cuz I never build a mainline kernel can recognize partitions of internal storage.

after migrated to parabola from archlinux and installed linux-libre-chromebook then reboot. (I was about give up and just leave the white screen there and write this) after several minutes, it shows text of systemd-service start up info and finally booted into tty! I checked output of lsblk, it does not recognize partitions of internal storage.
then I rebooted it, it cost 9 min on white screen and 2 min waiting for systemd service or something then boot to tty.

but I can't boot this kernel on voidlinux, still white screen after wait for 20 min.

BTW it's the output of dmesg (the second time I boot this kernel on parabola on c201).

#28 Updated by Megver83 13 days ago

3p7kp4xn wrote:

Megver83 wrote:

Did you try installing ALARM and then migrating to Parabola? IMO that's the easiest way to install Parabola in ARM devices

no I didn't try that before, but I just tried.

does linux-libre-firmware recognize internal storage (those partitions show in lsblk) and rockchip audio device ROCKCHIP-I2C well?

Why should it? It's just firmware for non-critical stuff, like some atheros wifi cards and things like that, but all the rest (like audio and filesystem drivers) are in-kernel.

sorry for my typo! what I really want to ask is, does linux-libre-chromebook the kernel can recognize partitions of internal storage? cuz I never build a mainline kernel can recognize partitions of internal storage.

Are you booting from SD Card or USB? did you tried different storage devices?

after migrated to parabola from archlinux and installed linux-libre-chromebook then reboot. (I was about give up and just leave the white screen there and write this) after several minutes, it shows text of systemd-service start up info and finally booted into tty! I checked output of lsblk, it does not recognize partitions of internal storage.
then I rebooted it, it cost 9 min on white screen and 2 min waiting for systemd service or something then boot to tty.

but I can't boot this kernel on voidlinux, still white screen after wait for 20 min.

Of course you cannot boot it, you must install linux-libre (the kernel) and then linux-libre-chromebook (the kernel sign, which dd's to the kernel partition)

BTW it's the output of dmesg (the second time I boot this kernel on parabola on c201).

Please send us more info, like lsblk and fdisk outputs. Also, how was the performance with ALARM? did it have the same issues of Parabola?

Also, after reading the dmesg log, I searched a bit and found this (check it, as it may be the solution)

P.S.: I see that the NanoPi K2 had the same issue and it was solved by modifying the dts file. However it would be strange for the C201 since @CBotulinum could boot Parabola correctly without having to patch the kernel.

#29 Updated by CBotulinum 11 days ago

If you want I can try to test stuff here, what does the issue seem to be? Or in other words what would you want me to test?

#30 Updated by Megver83 11 days ago

CBotulinum wrote:

If you want I can try to test stuff here, what does the issue seem to be? Or in other words what would you want me to test?

If everything works for you, we don't need you to test anything for now. However, it would be nice if you (or we) could make a wiki page explaining step-by-step how to install Parabola in a Librebooted C201.

Btw, I didn't ask you, did you migrated from ALARM or directly installed Parabola in an SD Card/USB? (this is one of the things I'd write in this future wiki page)

#31 Updated by CBotulinum 10 days ago

I did actually migrate, was much simpler to do so (plus, I had used ALARM on different devices a few times before, so...)

#32 Updated by Megver83 10 days ago

CBotulinum wrote:

I did actually migrate, was much simpler to do so (plus, I had used ALARM on different devices a few times before, so...)

OK, so you basically installed ALARM as explained here and then migrated as explained in our Wiki, right?

#33 Updated by 3p7kp4xn 10 days ago

Megver83 wrote:

Are you booting from SD Card or USB? did you tried different storage devices?

from a Kingston USB stick, I always remove the microSD before boot from USB. no I didn't and may won't try to install parabola to my microSD, I don't have an extra microSD to install it to.

Of course you cannot boot it, you must install linux-libre (the kernel) and then linux-libre-chromebook (the kernel sign, which dd's to the kernel partition)

since the kernel I built by following gentoo wiki can boot my voidlinux without kernel modules, I thought this kernel could also boot without installing kernel modules. but seems I was wrong.
I just tried to extract kernel modules from linux-libre and write vmlinux.kpart to the boot partition.
voidlinux (microSD): cost about 617 seconds to boot to tty, touchpad does not works (tried on i3wm), does not report error while fdisk -l
parabola installed from tarball (USB): 715s to boot to tty, kernel report errors while fdisk -l
parabola migrated from alarm (USB): 970s to boot to tty, kernel report errors while fdisk -l

Please send us more info, like lsblk and fdisk outputs. Also, how was the performance with ALARM? did it have the same issues of Parabola?

Don't have any performance issues with alarm nor parabola, but only tried console. didn't try X.
I think these I/O error was because this kernel can't recognize mmcblk2 (the internal storage) well, not a hardware issue.
the old mainline kernel (4.13.0-rc1) built by follow the [[gentoo wiki]](https://wiki.gentoo.org/wiki/Asus_Chromebook_C201#4.13.2B_kernel_configuration) works for me (it just can't recognize any partitions of internal storage, or can't boot sometimes but don't know why it could most most of times nowadays).
BTW CrOS kernel from alarm or devuan-arm can make it freeze at random time (at least on voidlinux and devuan-arm, or just the touchpad and keyboard suddently unusable? IDK but I can only solve that by hard reboot).
I don't want to build kernel for c201 recently, it's too painful (got white screen or can't boot for so many times before!).

maybe it's because of different version of c201?
mine is C201PA-DS01 made in 2015-06 (2GB RAM + 16GB ROM).

@CBotulinum can you provide this info? change mmcblk0 to other if it's not your internal storage. here is mine. and the size of RAM and internal storage?

$ cat /sys/class/block/mmcblk0/device/uevent
DRIVER=mmcblk
MMC_TYPE=MMC
MMC_NAME=HAG2e
MODALIAS=mmc:block
$ cat /sys/class/block/mmcblk0/device/date
04/2015

OK, so you basically installed ALARM as explained here and then migrated as explained in our Wiki, right?

BTW I did.

#34 Updated by libreantho 10 days ago

Hi I have manage to install on parabola on sd card, works great! But I'm am not able to transfer it to emmc.
when i fdisk I get:
The primary GPT table is corrupt, but the backup appears OK, so that will be used.

I've tried dd the sd card to the emmc but it boot into recovery.
When I dd, it give "error Buffer I/O error on dev mmcblk2, logical block 0", lost async page write on 9 block
and 4: print_req_error: I/O error, dev mmcblk2, sector XXXX

Anyone manage to put it on emmc?

#35 Updated by Megver83 10 days ago

libreantho wrote:

Hi I have manage to install on parabola on sd card, works great! But I'm am not able to transfer it to emmc.
when i fdisk I get:
The primary GPT table is corrupt, but the backup appears OK, so that will be used.

I've tried dd the sd card to the emmc but it boot into recovery.
When I dd, it give "error Buffer I/O error on dev mmcblk2, logical block 0", lost async page write on 9 block
and 4: print_req_error: I/O error, dev mmcblk2, sector XXXX

Anyone manage to put it on emmc?

This may help

https://unix.stackexchange.com/questions/423923/installing-archlinuxarm-in-internal-storage-on-asus-chromebook-c201?noredirect=1#comment763885_423923

https://wiki.debian.org/InstallingDebianOn/Asus/C201#Installing_to_internal_memory_from_SD_card
^here at "reconfigure the kernel" skip the vboot_util part since the vmlinuz.signed file is provided in linux-libre-chromebook as /boot/vmlinuz.kpart

#36 Updated by libreantho 9 days ago

link is dead
https://unix.stackexchange.com/questions/423923/installing-archlinuxarm-in-internal-storage-on-asus-chromebook-c201?noredirect=1#comment763885_423923
so I found information here (urjaman comment was the one that worked best for me):
https://github.com/altreact/archbk/issues/3

  1. unmount all partitions on mmcblk2*, if your system automounts things.
  2. shrink & move ROOT-B (mmcblk0p5)
    cgpt add -i 5 -b 282624 -s 32 /dev/mmcblk2
  3. shrink & move STATE (mmcblk0p1)
    cgpt add -i 1 -b 282656 -s 32 /dev/mmcblk2
  4. move & enlarge ROOT-A (mmcblk2p3)
    cgpt add -i 3 -b 282688 -s 30470080 /dev/mmcblk2
  5. make a new filesystem on ROOT-A
    partx -a /dev/mmcblk2
    mkfs -t ext4 /dev/mmcblk2p3
  6. make mountpoints
    mkdir /tmp/{old,new}root
  7. mounts for a clean copy
    mount --bind / /tmp/oldroot
    mount /dev/mmcblk2p3 /tmp/newroot
  8. copy system and unmount target
    cd /tmp/oldroot
    cp -a * ../newroot
    umount /tmp/newroot
  9. install kernel to KERN-A (mmcblk2p2)
    dd if=/boot/vmlinux.kpart of=/dev/mmcblk2p2
  10. set mmcblk0p2 to the high priority and successful
    cgpt add -i 2 -P 10 -S 1 /dev/mmcblk2
  11. set mmcblk0p4 to low priority so it is not used
    cgpt add -i 4 -P 0 -S 0 /dev/mmcblk2

unfortunately I get white screen with both parabola and archlinux-arm-chromebook (mainline kernel). I tried with the latest veyron image which did half-boot(system-md hang, it does exactly the same on sd card)

Maybe because of the issue mentioned in the link below? I haven't got an older image to test with downgraded system-md:
https://archlinuxarm.org/forum/viewtopic.php?f=15&t=13249&p=59997&hilit=emmc+c201+emmc+c100p#p59997

So I haven't managed to get this to work on emmc... My latest guess would have been to try from an old veyron image(with the 3.14 kernel and unupgraded systemd) install it on emmc and upgrade to parabola afterward. But I haven't managed to get an old image to test.

Maybe I'm doing something wrong and somebody can help.

#37 Updated by CBotulinum 8 days ago

Megver83 wrote:

CBotulinum wrote:

I did actually migrate, was much simpler to do so (plus, I had used ALARM on different devices a few times before, so...)

OK, so you basically installed ALARM as explained here and then migrated as explained in our Wiki, right?

Yes, that is exactly what I did.

As for the touchpad, I can also say that on my device it doesn't work too, I mean it does get recognized by lsusb, but I have no idea why I can't get it to work (not that I've put much effort or really care about that at the moment).

#38 Updated by libreantho 8 days ago

CBotulinum wrote:

As for the touchpad, I can also say that on my device it doesn't work too, I mean it does get recognized by lsusb, but I have no idea why I can't get it to work (not that I've put much effort or really care about that at the moment).

does this works for the touchpad:
pacman -S xf86-input-synaptics

source: [[https://calvin.me/arch-linux-samsung-arm-chromebook/]]

#39 Updated by libreantho 8 days ago

CBotulinum wrote:

Megver83 wrote:

CBotulinum wrote:

I did actually migrate, was much simpler to do so (plus, I had used ALARM on different devices a few times before, so...)

OK, so you basically installed ALARM as explained here and then migrated as explained in our Wiki, right?

Yes, that is exactly what I did.

As for the touchpad, I can also say that on my device it doesn't work too, I mean it does get recognized by lsusb, but I have no idea why I can't get it to work (not that I've put much effort or really care about that at the moment).

I followed those instruction to the letter I was able to boot with the ArchLinuxARM-armv7-chromebook-latest.tar.gz but not with ArchLinuxARM-veyron-latest.tar.gz. Migrating from ArchLinuxARM-armv7-chromebook-latest to parabola was straightforward and worked. What I could not do was to get a booting image of ALARM on the EMMC then migrating to parabola. I could also not install parabola to the EMMC from parabola by copying the root and the kernel on the right partition of the EMMC. I managed to get ArchLinuxARM-veyron-latest on the EMMC, But System-md hang and I cannot get to the command prompt. Does anyone managed to install parabola on the EMMC? If so was it with the Veyron image? Was it an old image?

Thanks

#40 Updated by CBotulinum 7 days ago

IIRC, the touchpad situation wasn't remedied by installing xf86-input-synaptics, anyhow, I might try to get to the bottom of this tomorrow - if I have enough time, since my server has been facing some odd failures in different subsystems, which would probably take a while to debug.

#41 Updated by libreantho 7 days ago

CBotulinum wrote:

IIRC, the touchpad situation wasn't remedied by installing xf86-input-synaptics, anyhow, I might try to get to the bottom of this tomorrow - if I have enough time, since my server has been facing some odd failures in different subsystems, which would probably take a while to debug.

have you modified xorg and changed the mouse preference as in the tutorial link.

Then set-up the config file at /etc/X11/xorg.conf.d/70-synaptics.conf

Section "InputClass" 
        Identifier "touchpad" 
        Driver "synaptics" 
        MatchIsTouchpad "on" 
        Option "FingerHigh" "5" 
        Option "FingerLow" "5" 
        Option "TapButton1" "1" 
        Option "TapButton2" "3" 
        Option "TapButton3" "2" 
        Option "HorizTwoFingerScroll" "on" 
        Option "VertTwoFingerScroll" "on" 
EndSection

if it does not work, maybe try this with xf86-input-libinput?:
https://unix.stackexchange.com/questions/324627/touchpad-not-working-properly-after-upgrade-arch-on-chromebook

Also available in: Atom PDF