`roric` (Acer Chromebook Plus 514 CB514-6HT) Touchpad fix

Hello,

out of the box on Arch Linux the touchpad does not work. I made this libinput quirk file as a fix:

```

[jan@cr2 ~]$ cat /etc/libinput/local-overrides.quirks 
[Touchpad pressure override]
MatchUdevType=touchpad
MatchName=PNP0C50:00 093A:3307 Touchpad
MatchDMIModalias=dmi:bvncoreboot:bvrMrChromebox-2509.1:bd10/13/2025:br0.0:efr0.0:svnGoogle:pnRoric:pvrrev2:rvnGoogle:rnRoric:rvrrev2:cvnGoogle:ct9:cvr:skusku4259864:
AttrPressureRange=20:10

Hope this helps someone else. Probably other people here are familiar with getting this quirk into libinput by default.

1 Like

just match against Google Roric, the rest is too restrictive and will break when you update firmware

Matching against svn and pn now.
```

[jan@cr2 ~]$ cat /etc/libinput/local-overrides.quirks 
[Touchpad pressure override]
MatchUdevType=touchpad
MatchName=PNP0C50:00 093A:3307 Touchpad
MatchDMIModalias=dmi:*svnGoogle:pnRoric*
AttrPressureRange=20:10

Looks like I should file a bug with libinput, but I’m not on freedesktop at the moment. Gotta check how the new account creation works right now. They have a banner up about spam…

Here’s the libinput issue on freedesktop gitlab: Making sure you're not a bot!

1 Like

mine is not working the touch pad i have also same device i install the driver from coolstar website but still unable to work can you guide me what to do

You can see the exact contents of the quirk file in my previous post on this thread. Just copy those contents to `/etc/libinput/local-overrides.quirks`.

Oh wait, are you on Windows? In that case I can’t help you. Sorry.

Also, looking at your previous topics it appears you have craasneto. This topic is about roric.

Thanks! This worked brilliantly to fix my CB514-6HT, with one small change. The quirk wasn’t being applied at first, and then I checked /sys/class/dmi/id/modalias and saw that even though my board is definitely RORIC, my modalias matches dmi:*svnGoogle:pnRull*instead (so “Rull” instead of “Roric”).

Hope this helps someone else. Can we get this version of the fix upstreamed into libinput?

Interesting. What are the specs of your CB514-6HT? Mine are Intel N355, 8GB LPDDR5, 128GB nvme.

I can make a merge request to get that version of the fix into libinput. Do you want me to add you as the author of the commit? In that case I need a git identity (name + email). Or you can also create the MR yourself. Your choice.

As another point of comparison here is the output of dmidecode for me:

$ sudo dmidecode
# dmidecode 3.6
Getting SMBIOS data from sysfs.
SMBIOS 3.0.0 present.
Table at 0x76978000.

Handle 0x0000, DMI type 0, 26 bytes
BIOS Information
	Vendor: coreboot
	Version: MrChromebox-2509.1
	Release Date: 10/13/2025
	ROM Size: 16 MB
	Characteristics:
		PCI is supported
		PC Card (PCMCIA) is supported
		BIOS is upgradeable
		Selectable boot is supported
		ACPI is supported
		Targeted content distribution is supported
	BIOS Revision: 0.0
	Firmware Revision: 0.0

Handle 0x0001, DMI type 1, 27 bytes
System Information
	Manufacturer: Google
	Product Name: Roric
	Version: rev2
	Serial Number: NXJFGEH001528009732N00
	UUID: Not Settable
	Wake-up Type: Reserved
	SKU Number: sku4259864
	Family: Google_Nissa

Handle 0x0002, DMI type 2, 14 bytes
Base Board Information
	Manufacturer: Google
	Product Name: Roric
	Version: rev2
	Serial Number: NBJFC11001525000892N49
	Asset Tag: Not Specified
	Features: None
	Location In Chassis: Not Specified
	Chassis Handle: 0x0003
	Type: Motherboard

Handle 0x0003, DMI type 3, 22 bytes
Chassis Information
	Manufacturer: Google
	Type: Laptop
	Lock: Not Present
	Version: Not Specified
	Serial Number: Not Specified
	Asset Tag: Not Specified
	Boot-up State: Safe
	Power Supply State: Safe
	Thermal State: Safe
	Security Status: None
	OEM Information: 0x00000000
	Height: Unspecified
	Number Of Power Cords: 1
	Contained Elements: 0
	SKU Number: Not Specified

Handle 0x0004, DMI type 4, 48 bytes
Processor Information
	Socket Designation: CPU0
	Type: Central Processor
	Family: Pentium Pro
	Manufacturer: GenuineIntel
	ID: E0 06 0B 00 FF FB EB BF
	Signature: Type 0, Family 6, Model 190, Stepping 0
	Flags:
		FPU (Floating-point unit on-chip)
		VME (Virtual mode extension)
		DE (Debugging extension)
		PSE (Page size extension)
		TSC (Time stamp counter)
		MSR (Model specific registers)
		PAE (Physical address extension)
		MCE (Machine check exception)
		CX8 (CMPXCHG8 instruction supported)
		APIC (On-chip APIC hardware supported)
		SEP (Fast system call)
		MTRR (Memory type range registers)
		PGE (Page global enable)
		MCA (Machine check architecture)
		CMOV (Conditional move instruction supported)
		PAT (Page attribute table)
		PSE-36 (36-bit page size extension)
		CLFSH (CLFLUSH instruction supported)
		DS (Debug store)
		ACPI (ACPI supported)
		MMX (MMX technology supported)
		FXSR (FXSAVE and FXSTOR instructions supported)
		SSE (Streaming SIMD extensions)
		SSE2 (Streaming SIMD extensions 2)
		SS (Self-snoop)
		HTT (Multi-threading)
		TM (Thermal monitor supported)
		PBE (Pending break enabled)
	Version: Intel(R) Core(TM) 3 N355
	Voltage: 1.0 V
	External Clock: 100 MHz
	Max Speed: 3900 MHz
	Current Speed: 1900 MHz
	Status: Populated, Enabled
	Upgrade: Unknown
	L1 Cache Handle: 0x0006
	L2 Cache Handle: 0x0007
	L3 Cache Handle: 0x0008
	Serial Number: Not Specified
	Asset Tag: Not Specified
	Part Number: Not Specified
	Core Count: 8
	Core Enabled: 8
	Thread Count: 8
	Characteristics:
		64-bit capable
		Multi-Core
		Hardware Thread
		Execute Protection
		Enhanced Virtualization
		Power/Performance Control

Handle 0x0005, DMI type 7, 27 bytes
Cache Information
	Socket Designation: CACHE1
	Configuration: Enabled, Not Socketed, Level 1
	Operational Mode: Unknown
	Location: Internal
	Installed Size: 128 kB
	Maximum Size: 128 kB
	Supported SRAM Types:
		Unknown
	Installed SRAM Type: Unknown
	Speed: Unknown
	Error Correction Type: Unknown
	System Type: Data
	Associativity: 8-way Set-associative

Handle 0x0006, DMI type 7, 27 bytes
Cache Information
	Socket Designation: CACHE1
	Configuration: Enabled, Not Socketed, Level 1
	Operational Mode: Unknown
	Location: Internal
	Installed Size: 256 kB
	Maximum Size: 256 kB
	Supported SRAM Types:
		Unknown
	Installed SRAM Type: Unknown
	Speed: Unknown
	Error Correction Type: Unknown
	System Type: Instruction
	Associativity: 8-way Set-associative

Handle 0x0007, DMI type 7, 27 bytes
Cache Information
	Socket Designation: CACHE2
	Configuration: Enabled, Not Socketed, Level 2
	Operational Mode: Unknown
	Location: Internal
	Installed Size: 2 MB
	Maximum Size: 2 MB
	Supported SRAM Types:
		Unknown
	Installed SRAM Type: Unknown
	Speed: Unknown
	Error Correction Type: Unknown
	System Type: Unified
	Associativity: 16-way Set-associative

Handle 0x0008, DMI type 7, 27 bytes
Cache Information
	Socket Designation: CACHE3
	Configuration: Enabled, Not Socketed, Level 3
	Operational Mode: Unknown
	Location: Internal
	Installed Size: 6 MB
	Maximum Size: 6 MB
	Supported SRAM Types:
		Unknown
	Installed SRAM Type: Unknown
	Speed: Unknown
	Error Correction Type: Unknown
	System Type: Unified
	Associativity: 12-way Set-associative

Handle 0x0009, DMI type 11, 5 bytes
OEM Strings
	String 1: WIFI-WIFI_CNVI_WIFI6E
	String 2: THERMAL-THERMAL_15W
	String 3: STORAGE-STORAGE_NVME

Handle 0x000A, DMI type 16, 23 bytes
Physical Memory Array
	Location: System Board Or Motherboard
	Use: System Memory
	Error Correction Type: None
	Maximum Capacity: 64 GB
	Error Information Handle: Not Provided
	Number Of Devices: 1

Handle 0x000B, DMI type 17, 40 bytes
Memory Device
	Array Handle: 0x000A
	Error Information Handle: Not Provided
	Total Width: 16 bits
	Data Width: 16 bits
	Size: 2 GB
	Form Factor: Row Of Chips
	Set: None
	Locator: Channel-0-DIMM-0
	Bank Locator: BANK 0
	Type: LPDDR5
	Type Detail: Unknown Synchronous
	Speed: 7400 MT/s
	Manufacturer: Samsung
	Serial Number: 00000000
	Asset Tag: Channel-0-DIMM-0-AssetTag
	Part Number: None
	Rank: 1
	Configured Memory Speed: 4800 MT/s
	Minimum Voltage: 0.5 V
	Maximum Voltage: 0.5 V
	Configured Voltage: 0.5 V

Handle 0x000C, DMI type 17, 40 bytes
Memory Device
	Array Handle: 0x000A
	Error Information Handle: Not Provided
	Total Width: 16 bits
	Data Width: 16 bits
	Size: 2 GB
	Form Factor: Row Of Chips
	Set: None
	Locator: Channel-1-DIMM-0
	Bank Locator: BANK 0
	Type: LPDDR5
	Type Detail: Unknown Synchronous
	Speed: 7400 MT/s
	Manufacturer: Samsung
	Serial Number: 00000000
	Asset Tag: Channel-1-DIMM-0-AssetTag
	Part Number: None
	Rank: 1
	Configured Memory Speed: 4800 MT/s
	Minimum Voltage: 0.5 V
	Maximum Voltage: 0.5 V
	Configured Voltage: 0.5 V

Handle 0x000D, DMI type 17, 40 bytes
Memory Device
	Array Handle: 0x000A
	Error Information Handle: Not Provided
	Total Width: 16 bits
	Data Width: 16 bits
	Size: 2 GB
	Form Factor: Row Of Chips
	Set: None
	Locator: Channel-2-DIMM-0
	Bank Locator: BANK 0
	Type: LPDDR5
	Type Detail: Unknown Synchronous
	Speed: 7400 MT/s
	Manufacturer: Samsung
	Serial Number: 00000000
	Asset Tag: Channel-2-DIMM-0-AssetTag
	Part Number: None
	Rank: 1
	Configured Memory Speed: 4800 MT/s
	Minimum Voltage: 0.5 V
	Maximum Voltage: 0.5 V
	Configured Voltage: 0.5 V

Handle 0x000E, DMI type 17, 40 bytes
Memory Device
	Array Handle: 0x000A
	Error Information Handle: Not Provided
	Total Width: 16 bits
	Data Width: 16 bits
	Size: 2 GB
	Form Factor: Row Of Chips
	Set: None
	Locator: Channel-3-DIMM-0
	Bank Locator: BANK 0
	Type: LPDDR5
	Type Detail: Unknown Synchronous
	Speed: 7400 MT/s
	Manufacturer: Samsung
	Serial Number: 00000000
	Asset Tag: Channel-3-DIMM-0-AssetTag
	Part Number: None
	Rank: 1
	Configured Memory Speed: 4800 MT/s
	Minimum Voltage: 0.5 V
	Maximum Voltage: 0.5 V
	Configured Voltage: 0.5 V

Handle 0x000F, DMI type 19, 31 bytes
Memory Array Mapped Address
	Starting Address: 0x00000000000
	Ending Address: 0x001FFFFFFFF
	Range Size: 8 GB
	Physical Array Handle: 0x000A
	Partition Width: 4

Handle 0x0010, DMI type 20, 35 bytes
Memory Device Mapped Address
	Starting Address: 0x00000000000
	Ending Address: 0x0007FFFFFFF
	Range Size: 2 GB
	Physical Device Handle: 0x000B
	Memory Array Mapped Address Handle: 0x000F
	Partition Row Position: Unknown
	Interleave Position: Unknown
	Interleaved Data Depth: Unknown

Handle 0x0011, DMI type 20, 35 bytes
Memory Device Mapped Address
	Starting Address: 0x00080000000
	Ending Address: 0x000FFFFFFFF
	Range Size: 2 GB
	Physical Device Handle: 0x000B
	Memory Array Mapped Address Handle: 0x000F
	Partition Row Position: Unknown
	Interleave Position: Unknown
	Interleaved Data Depth: Unknown

Handle 0x0012, DMI type 20, 35 bytes
Memory Device Mapped Address
	Starting Address: 0x00100000000
	Ending Address: 0x0017FFFFFFF
	Range Size: 2 GB
	Physical Device Handle: 0x000B
	Memory Array Mapped Address Handle: 0x000F
	Partition Row Position: Unknown
	Interleave Position: Unknown
	Interleaved Data Depth: Unknown

Handle 0x0013, DMI type 20, 35 bytes
Memory Device Mapped Address
	Starting Address: 0x00180000000
	Ending Address: 0x001FFFFFFFF
	Range Size: 2 GB
	Physical Device Handle: 0x000B
	Memory Array Mapped Address Handle: 0x000F
	Partition Row Position: Unknown
	Interleave Position: Unknown
	Interleaved Data Depth: Unknown

Handle 0x0014, DMI type 32, 11 bytes
System Boot Information
	Status: No errors detected

Handle 0x0015, DMI type 41, 11 bytes
Onboard Device
	Reference Designation: VGA compatible controller
	Type: Video
	Status: Enabled
	Type Instance: 0
	Bus Address: 0000:00:02.0

Handle 0x0016, DMI type 41, 11 bytes
Onboard Device
	Reference Designation: Multimedia audio controller
	Type: Sound
	Status: Enabled
	Type Instance: 0
	Bus Address: 0000:00:1f.3

Handle 0x0017, DMI type 133, 5 bytes
OEM-specific Type
	Header and Data:
		85 05 17 00 01
	Strings:
		KHOIHGIUCCHHII

Handle 0xFEFF, DMI type 127, 4 bytes
End Of Table

@MrChromebox How are rull and roric related? The config shows that it’s the same board:

CONFIG_VENDOR_GOOGLE=y
CONFIG_CBFS_SIZE=0x400000
CONFIG_INTEL_GMA_VBT_FILE="3rdparty/blobs/mainboard/google/brya/nissa/roric/vbt.bin"
CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="Roric"
CONFIG_IFD_BIN_PATH="3rdparty/blobs/mainboard/google/brya/nissa/roric/flashdescriptor.bin"
CONFIG_ME_BIN_PATH="3rdparty/blobs/mainboard/google/brya/nissa/roric/me.bin"
CONFIG_BOARD_GOOGLE_RULL=y
CONFIG_HAVE_IFD_BIN=y
CONFIG_HAVE_ME_BIN=y
CONFIG_DO_NOT_TOUCH_DESCRIPTOR_REGION=y
CONFIG_RUN_FSP_GOP=y

It’s clearly using all the stuff from src/mainboard/google/brya/variants/rull/
Are only the blobs different? Also, how does this relate to nissa and brya?

If you look at the current state of my repo, you’ll see that there isn’t a config for RORIC anymore as I’ve consolidated firmware that use the same image. RORIC is mapped to using the RULL firmware image in the scripts repo, in device-db.sh

Same cpu and ram, 512GB nvme.

Nah, please just go ahead.

I’m glad to know about this libinput quirks stuff now. Previously I had gotten as far as decoding the raw events from /dev/input/eventN, but I didn’t know where to go from there, except that I knew libinput needed to have some sort of support added. Then I searched for 093A:3307 and found this thread. I take it you must have used the libinput measure tool to determine the correct pressure range?

Correct.

I upgraded to MrChromebox-2509.2 and now my dmi modalias changed a bit. I now get these values:

svnGoogle:pnRORIC:pvrrev2:rvnGoogle:rnRull:rvrrev2:cvnGoogle

product name is now all upper case. I get Rull as rn not as pn like you.

@MrChromebox was this change to all upper case product name intentional? It might break other libinput quirks as well.

FFS, why is that kind of string check case sensitive?

I can easily switch it back to first letter only capitalized. it’s just using the HWID, which is all caps

Ideally it shouldn’t be… Where exactly does this dmi matching stuff come from exactly, udev?

I guess switching it back to only the first letter capitalized is better. Otherwise it’s not possible to make libinput quirks / udev rules that work across different firmware versions.

I’ll push an update with the SMBIOS Product Name only capitalizing the first letter

@ivanm Here is the merge request on libinput: Making sure you're not a bot!

fwiw i believe that would also break coolstar’s windows drivers

2509.3 is pushed with SMBIOS fixed