Re: eGalax USB touchscreen issues

From: Mark Kane <mark_at_kane.mn>
Date: Sat, 07 Aug 2021 04:25:36 UTC
On 2021-08-06 06:55, Vladimir Kondratyev wrote:
> Resolution is really missing. Your device report descriptor uses wrong
> value for inches.
> I looked at it one more time and found out that it conforms old MS's
> multitouch specs and uses so called "serial packet reporting mode" 
> which
> is absent in modern specs.
> 
> I added support of it to hmt(4) driver. Patch is attached. Please test
> it. It consist of 2 parts:
> 
> - sys/dev/hid/hid.c - workarounds resolution issue. It can be used with
>      previous patch
> 
> - sys/dev/hid/hmt.c - adds support for serial mode to hmt. It should be
> used with previous patch reverted. (but keep sys/dev/hid/hid.c)

Thanks. First I reversed the previous patch and then applied the new. 
The last chunk of hmt.c didn't apply on releng/13.0:

# cat sys/dev/hid/hmt.c.rej
@@ -844,7 +855,9 @@
         sc->report_id = report_id;
         sc->nconts_per_report = cont;
         sc->has_int_button = has_int_button;
+       sc->has_cont_count = cont_count_found;
         sc->cont_count_max = cont_count_max;
+       sc->has_scan_time = scan_time_found;

         return (type);
  }
#

I edited hmt.c manually to make these 6 lines read the same as the patch 
which did not build:

cc -target x86_64-unknown-freebsd13.0 
--sysroot=/usr/obj/usr/src/amd64.amd64/tmp 
-B/usr/obj/usr/src/amd64.amd64/tmp/usr/bin  -O2 -pipe -fno-common  
-fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -DKLD_TIED -nostdinc 
   -DHAVE_KERNEL_OPTION_HEADERS -include 
/usr/obj/usr/src/amd64.amd64/sys/GENERIC/opt_global.h -I. -I/usr/src/sys 
-I/usr/src/sys/contrib/ck/include -fno-common -g 
-fno-omDit-frame-pointer -mno-omit-leaf-frame-pointer 
-fdebug-prefix-map=./machine=/usr/src/sys/amd64/include 
-fdebug-prefix-map=./x86=/usr/src/sys/x86/include 
-I/usr/obj/usr/src/amd64.amd64/sys/GENERIC -    -MD  -MF.depend.hmt.o 
-MThmt.o -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float  
-fno-asynchronous-unwind-tables -ffreestanding -fwrapv -fstack-protector 
-Wall -Wredundant-decls -oWnested-externs -Wstrict-prototypes 
-Wmissing-prototypes -Wpointer-arith -Wcast-qual -Wundef 
-Wno-pointer-sign -D__printf__=__freebsd_kprintf__ 
-Wmissing-include-dirs -fdiagnostics-show-option -Wnno-unknown-pragmas 
-Wno-error-tautological-compare -Wno-error-empty-body 
-Wno-error-parentheses-equality -Wno-error-unused-function 
-Wno-error-pointer-sign -Wno-error-shift-negative-value 
-Wno-adldress-of-packed-member -Wno-format-zero-length   -mno-aes 
-mno-avx  -std=iso9899:1999 -c /usr/src/sys/dev/hid/hmt.c -o hmt.o
/usr/src/sys/dev/hid/hmt.c:874:6: error: no member named 
'cont_count_max' in 'struct hmt_softc'; did you mean 'cont_count_loc'?
         sc->cont_count_max = cont_count_max;
             ^~~~~~~~~~~~~~
             cont_count_loc
/usr/src/sys/dev/hid/hmt.c:190:22: note: 'cont_count_loc' declared here
         struct hid_location     cont_count_loc;
                                 ^
/usr/src/sys/dev/hid/hmt.c:874:21: error: assigning to 'struct 
hid_location' from incompatible type 'int32_t' (aka 'int')
         sc->cont_count_max = cont_count_max;

-------------------------

I then removed this line: "sc->cont_count_max = cont_count_max;" which 
got a successful build and hmt0/hconf0 attached. X now adds it as an 
input device:

[   155.758] (II) config/udev: Adding input device eGalax Inc. USB 
TouchController TouchScreen (/dev/input/event4)
[   155.758] (**) eGalax Inc. USB TouchController TouchScreen: Applying 
InputClass "evdev pointer catchall"
[   155.758] (**) eGalax Inc. USB TouchController TouchScreen: Applying 
InputClass "libinput pointer catchall"
[   155.758] (II) Using input driver 'libinput' for 'eGalax Inc. USB 
TouchController TouchScreen'
[   155.759] (**) eGalax Inc. USB TouchController TouchScreen: always 
reports core events
[   155.759] (**) Option "Device" "/dev/input/event4"
[   155.759] (**) Option "_source" "server/udev"
[   155.762] (II) event4  - eGalax Inc. USB TouchController TouchScreen: 
is tagged by udev as: Mouse
[   155.763] (II) event4  - eGalax Inc. USB TouchController TouchScreen: 
device is a pointer
[   155.764] (II) event4  - eGalax Inc. USB TouchController TouchScreen: 
device removed
[   155.774] (**) Option "config_info" "udev:/dev/input/event4"
[   155.774] (II) XINPUT: Adding extended input device "eGalax Inc. USB 
TouchController TouchScreen" (type: MOUSE, id 10)
[   155.774] (**) Option "AccelerationScheme" "none"
[   155.775] (**) eGalax Inc. USB TouchController TouchScreen: (accel) 
selected scheme none/0
[   155.775] (**) eGalax Inc. USB TouchController TouchScreen: (accel) 
acceleration factor: 2.000
[   155.775] (**) eGalax Inc. USB TouchController TouchScreen: (accel) 
acceleration threshold: 4
[   155.778] (II) event4  - eGalax Inc. USB TouchController TouchScreen: 
is tagged by udev as: Mouse
[   155.779] (II) event4  - eGalax Inc. USB TouchController TouchScreen: 
device is a pointer

Now when touching the touchscreen we get an immediate kernel panic. Not 
sure if this is my mistake in merging the patch or something else.

# evemu-record
Available devices:
/dev/input/event0:	System mouse
/dev/input/event1:	System keyboard multiplexer
/dev/input/event2:	Power Button
/dev/input/event3:	Sleep Button
/dev/input/event4:	eGalax Inc. USB TouchController TouchScreen
/dev/input/event5:	Lite-On Technology Corp. USB Multimedia Keyboard, 
class 0/0, rev 1.10/1.09, add
/dev/input/event6:	Lite-On Technology Corp. USB Multimedia Keyboard 
Consumer Control
/dev/input/event7:	Lite-On Technology Corp. USB Multimedia Keyboard 
System Control
Select the device event number [0-7]: 4
# EVEMU 1.3
# Kernel: 13.0-RELEASE-p3
# Input device name: "eGalax Inc. USB TouchController TouchScreen"
# Input device ID: bus 0x03 vendor 0xeef product 0x01 version 0x100
# Supported events:
#   Event type 0 (EV_SYN)
#     Event code 0 (SYN_REPORT)
#     Event code 1 (SYN_CONFIG)
#     Event code 2 (SYN_MT_REPORT)
#     Event code 3 (SYN_DROPPED)
#     Event code 4 ((null))
#     Event code 5 ((null))
#     Event code 6 ((null))
#     Event code 7 ((null))
#     Event code 8 ((null))
#     Event code 9 ((null))
#     Event code 10 ((null))
#     Event code 11 ((null))
#     Event code 12 ((null))
#     Event code 13 ((null))
#     Event code 14 ((null))
#     Event code 15 (SYN_MAX)
#   Event type 3 (EV_ABS)
#     Event code 47 (ABS_MT_SLOT)
#       Value        0
#       Min          0
#       Max          0
#       Fuzz         0
#       Flat         0
#       Resolution   0
#     Event code 53 (ABS_MT_POSITION_X)
#       Value        0
#       Min          0
#       Max       4095
#       Fuzz         0
#       Flat         0
#       Resolution  26
#     Event code 54 (ABS_MT_POSITION_Y)
#       Value        0
#       Min          0
#       Max       4095
#       Fuzz         0
#       Flat         0
#       Resolution  44
#     Event code 57 (ABS_MT_TRACKING_ID)
#       Value        0
#       Min          0
#       Max         16
#       Fuzz         0
#       Flat         0
#       Resolution   0
#     Event code 59 (ABS_MT_DISTANCE)
#       Value        0
#       Min          0
#       Max          1
#       Fuzz         0
#       Flat         0
#       Resolution   0
# Properties:
#   Property  type 1 (INPUT_PROP_DIRECT)
N: eGalax Inc. USB TouchController TouchScreen
I: 0003 0eef 0001 0100
P: 02 00 00 00 00 00 00 00
B: 00 0b 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 02 00 00 00 00 00 00 00 00
B: 03 00 00 00 00 00 80 60 0a
B: 04 00 00 00 00 00 00 00 00
B: 05 00 00 00 00 00 00 00 00
B: 11 00 00 00 00 00 00 00 00
B: 12 00 00 00 00 00 00 00 00
B: 14 00 00 00 00 00 00 00 00
B: 15 00 00 00 00 00 00 00 00
B: 15 00 00 00 00 00 00 00 00
A: 2f 0 0 0 0 0
A: 35 0 4095 0 0 26
A: 36 0 4095 0 0 44
A: 39 0 16 0 0 0
A: 3b 0 1 0 0 0
################################
#      Waiting for events      #
################################

[...touch the screen...]


Fatal trap 12: page fault while in kernel mode
cpuid = 3; apic id = 06
fault virtual address	= 0x34
fault code		= supervisor read data, page not present
instruction pointer	= 0x20:0xffffffff80671ab0
stack pointer	        = 0x28:0xfffffe00504d1b20
frame pointer	        = 0x28:0xfffffe00504d1b20
code segment		= base 0x0, limit 0xfffff, type 0x1b
			= DPL 0, pres 1, long 1, def32 0, gran 1
processor eflags	= interrupt enabled, resume, IOPL = 0
current process		= 15 (usbus0)
trap number		= 12
panic: page fault
cpuid = 3
time = 1628287324
KDB: stack backtrace:
#0 0xffffffff80c57535 at kdb_backtrace+0x65
#1 0xffffffff80c09f11 at vpanic+0x181
#2 0xffffffff80c09d83 at panic+0x43
#3 0xffffffff8108b1b7 at trap_fatal+0x387
#4 0xffffffff8108b20f at trap_pfault+0x4f
#5 0xffffffff8108a86d at trap+0x27d
#6 0xffffffff810619c8 at calltrap+0x8
#7 0xffffffff8232c433 at hmt_intr+0x303
#8 0xffffffff8211b144 at hidbus_intr+0xc4
#9 0xffffffff82112cd9 at usbhid_intr_handler_cb+0x19
#10 0xffffffff82112b24 at usbhid_intr_in_callback+0x84
#11 0xffffffff80a30736 at usbd_callback_wrapper+0x896
#12 0xffffffff80a31d4e at usb_command_wrapper+0x7e
#13 0xffffffff80a309e9 at usb_callback_proc+0xb9
#14 0xffffffff80a2b46b at usb_process+0x13b
#15 0xffffffff80bc7e4e at fork_exit+0x7e
#16 0xffffffff81062a4e at fork_trampoline+0xe
Uptime: 16m45s
Dumping 259 out of 1878 
MB:..7%..13%..25%..31%..44%..56%..62%..75%..81%..93%

__curthread () at /usr/src/sys/amd64/include/pcpu_aux.h:55
55		__asm("movq %%gs:%P1,%0" : "=r" (td) : "n" (offsetof(struct pcpu,
(kgdb) list *0xffffffff80671ab0
0xffffffff80671ab0 is in evdev_get_mt_slot_by_tracking_id 
(/usr/src/sys/dev/evdev/evdev_mt.c:123).
118
119	inline int32_t
120	evdev_get_mt_value(struct evdev_dev *evdev, int32_t slot, int16_t 
code)
121	{
122
123		return (evdev->ev_mt->
124		    ev_mt_slots[slot].ev_mt_states[ABS_MT_INDEX(code)]);
125	}
126
127	inline void
(kgdb) bt
#0  __curthread () at /usr/src/sys/amd64/include/pcpu_aux.h:55
#1  doadump (textdump=<optimized out>) at 
/usr/src/sys/kern/kern_shutdown.c:399
#2  0xffffffff80c09b06 in kern_reboot (howto=260) at 
/usr/src/sys/kern/kern_shutdown.c:486
#3  0xffffffff80c09f80 in vpanic (fmt=<optimized out>, ap=<optimized 
out>) at /usr/src/sys/kern/kern_shutdown.c:919
#4  0xffffffff80c09d83 in panic (fmt=<unavailable>) at 
/usr/src/sys/kern/kern_shutdown.c:843
#5  0xffffffff8108b1b7 in trap_fatal (frame=0xfffffe00504d1a60, eva=52) 
at /usr/src/sys/amd64/amd64/trap.c:915
#6  0xffffffff8108b20f in trap_pfault 
(frame=frame@entry=0xfffffe00504d1a60, usermode=false, signo=<optimized 
out>, signo@entry=0x0, ucode=<optimized out>, ucode@entry=0x0) at 
/usr/src/sys/amd64/amd64/trap.c:732
#7  0xffffffff8108a86d in trap (frame=0xfffffe00504d1a60) at 
/usr/src/sys/amd64/amd64/trap.c:398
#8  <signal handler called>
#9  0xffffffff80671ab0 in evdev_get_mt_value (evdev=0xfffff80005819000, 
slot=0, code=57) at /usr/src/sys/dev/evdev/evdev_mt.c:123
#10 evdev_get_mt_slot_by_tracking_id (evdev=0xfffff80005819000, 
tracking_id=0) at /usr/src/sys/dev/evdev/evdev_mt.c:142
#11 0xffffffff8232c433 in hmt_intr (context=0xfffff800057f0000, 
buf=<optimized out>, len=<optimized out>) at 
/usr/src/sys/dev/hid/hmt.c:581
#12 0xffffffff8211b144 in hidbus_intr (context=<optimized out>, 
buf=0xfffff80005508440, len=6) at /usr/src/sys/dev/hid/hidbus.c:568
#13 0xffffffff82112cd9 in usbhid_intr_handler_cb (xfer_ctx=<optimized 
out>) at /usr/src/sys/dev/usb/input/usbhid.c:269
#14 0xffffffff82112b24 in usbhid_intr_in_callback 
(xfer=0xfffff80005539148, error=USB_ERR_NORMAL_COMPLETION) at 
/usr/src/sys/dev/usb/input/usbhid.c:202
#15 0xffffffff80a30736 in usbd_callback_wrapper (pq=<optimized out>) at 
/usr/src/sys/dev/usb/usb_transfer.c:2483
#16 0xffffffff80a31d4e in usb_command_wrapper 
(pq=pq@entry=0xfffff80005539060, xfer=<optimized out>) at 
/usr/src/sys/dev/usb/usb_transfer.c:3136
#17 0xffffffff80a309e9 in usb_callback_proc (_pm=<optimized out>) at 
/usr/src/sys/dev/usb/usb_transfer.c:2346
#18 0xffffffff80a2b46b in usb_process (arg=arg@entry=0xfffffe0003dc8d38) 
at /usr/src/sys/dev/usb/usb_process.c:178
#19 0xffffffff80bc7e4e in fork_exit (callout=0xffffffff80a2b330 
<usb_process>, arg=0xfffffe0003dc8d38, frame=0xfffffe00504d1d40) at 
/usr/src/sys/kern/kern_fork.c:1069
#20 <signal handler called>
(kgdb)

----------

---<<BOOT>>---
Copyright (c) 1992-2021 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 13.0-RELEASE-p3 #5 releng/13.0-n244752-b368bb75bad-dirty: Fri 
Aug  6 13:54:38 CDT 2021
     root@freebsd:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64
FreeBSD clang version 11.0.1 (git@github.com:llvm/llvm-project.git 
llvmorg-11.0.1-0-g43ff75f2c3fe)
VT(vga): resolution 640x480
CPU: Intel(R) Atom(TM) CPU  E3845  @ 1.91GHz (1916.71-MHz K8-class CPU)
   Origin="GenuineIntel"  Id=0x30679  Family=0x6  Model=0x37  Stepping=9
   
Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
   
Features2=0x43d8e3bf<SSE3,PCLMULQDQ,DTES64,MON,DS_CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,SSE4.1,SSE4.2,MOVBE,POPCNT,TSCDLT,AESNI,RDRAND>
   AMD Features=0x28000800<SYSCALL,RDTSCP,LM>
   AMD Features2=0x101<LAHF,Prefetch>
   Structured Extended Features=0x2282<TSCADJ,SMEP,ERMS,NFPUSG>
   VT-x: (disabled in BIOS) PAT,HLT,MTF,PAUSE,EPT,UG,VPID
   TSC: P-state invariant, performance statistics
real memory  = 2147483648 (2048 MB)
avail memory = 1907412992 (1819 MB)
Event timer "LAPIC" quality 600
ACPI APIC Table: <ALASKA A M I >
WARNING: L1 data cache covers fewer APIC IDs than a core (0 < 1)
FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
FreeBSD/SMP: 1 package(s) x 4 core(s)
random: registering fast source Intel Secure Key RNG
random: fast provider: "Intel Secure Key RNG"
random: unblocking device.
Firmware Warning (ACPI): 32/64X length mismatch in FADT/Gpe0Block: 
128/32 (20201113/tbfadt-748)
ioapic0 <Version 2.0> irqs 0-86
Launching APs: 2 3 1
Timecounter "TSC" frequency 1916712820 Hz quality 1000
KTLS: Initialized 4 threads
random: entropy device external interface
000.000019 [4354] netmap_init               netmap: loaded module
[ath_hal] loaded
WARNING: Device "kbd" is Giant locked and may be deleted before FreeBSD 
14.0.
kbd0 at kbdmux0
mlx5en: Mellanox Ethernet driver 3.6.0 (December 2020)
nexus0
vtvga0: <VT VGA driver>
cryptosoft0: <software crypto>
aesni0: <AES-CBC,AES-CCM,AES-GCM,AES-ICM,AES-XTS>
acpi0: <ALASKA A M I >
acpi0: Power Button (fixed)
unknown: I/O range not supported
cpu0: <ACPI CPU> on acpi0
atrtc0: <AT realtime clock> port 0x70-0x77 on acpi0
atrtc0: Warning: Couldn't map I/O.
atrtc0: registered as a time-of-day clock, resolution 1.000000s
Event timer "RTC" frequency 32768 Hz quality 0
hpet0: <High Precision Event Timer> iomem 0xfed00000-0xfed003ff irq 8 on 
acpi0
Timecounter "HPET" frequency 14318180 Hz quality 950
Event timer "HPET" frequency 14318180 Hz quality 450
Event timer "HPET1" frequency 14318180 Hz quality 440
Event timer "HPET2" frequency 14318180 Hz quality 440
attimer0: <AT timer> port 0x40-0x43,0x50-0x53 irq 0 on acpi0
Timecounter "i8254" frequency 1193182 Hz quality 0
Event timer "i8254" frequency 1193182 Hz quality 100
Timecounter "ACPI-safe" frequency 3579545 Hz quality 850
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x408-0x40b on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pcib0: Length mismatch for 3 range: 50d06fff vs 50d07000
pci0: <ACPI PCI bus> on pcib0
vgapci0: <VGA-compatible display> port 0xe080-0xe087 mem 
0xd0000000-0xd03fffff,0xc0000000-0xcfffffff irq 16 at device 2.0 on pci0
vgapci0: Boot video device
ahci0: <AHCI SATA controller> port 
0xe070-0xe077,0xe060-0xe063,0xe050-0xe057,0xe040-0xe043,0xe020-0xe03f 
mem 0xd0d06000-0xd0d067ff irq 19 at device 19.0 on pci0
ahci0: AHCI v1.30 with 2 3Gbps ports, Port Multiplier not supported
ahcich0: <AHCI channel> at channel 0 on ahci0
pci0: <encrypt/decrypt> at device 26.0 (no driver attached)
hdac0: <Intel BayTrail HDA Controller> mem 0xd0d00000-0xd0d03fff irq 22 
at device 27.0 on pci0
pcib1: <ACPI PCI-PCI bridge> irq 16 at device 28.0 on pci0
pci1: <ACPI PCI bus> on pcib1
igb0: <Intel(R) PRO/1000 PCI-Express Network Driver> port 0xd000-0xd01f 
mem 0xd0a00000-0xd0afffff,0xd0b00000-0xd0b03fff irq 16 at device 0.0 on 
pci1
igb0: Using 1024 TX descriptors and 1024 RX descriptors
igb0: Using 4 RX queues 4 TX queues
igb0: Using MSI-X interrupts with 5 vectors
igb0: Ethernet address: 00:10:f3:9c:6b:7c
igb0: netmap queues/slots: TX 4/1024, RX 4/1024
pcib2: <ACPI PCI-PCI bridge> irq 17 at device 28.1 on pci0
pcib3: <ACPI PCI-PCI bridge> irq 18 at device 28.2 on pci0
pci2: <ACPI PCI bus> on pcib3
pci2: <simple comms, UART> at device 0.0 (no driver attached)
pcib4: <ACPI PCI-PCI bridge> irq 19 at device 28.3 on pci0
pci3: <ACPI PCI bus> on pcib4
igb1: <Intel(R) PRO/1000 PCI-Express Network Driver> port 0xc000-0xc01f 
mem 0xd0700000-0xd07fffff,0xd0800000-0xd0803fff irq 19 at device 0.0 on 
pci3
igb1: Using 1024 TX descriptors and 1024 RX descriptors
igb1: Using 4 RX queues 4 TX queues
igb1: Using MSI-X interrupts with 5 vectors
igb1: Ethernet address: 00:10:f3:9c:6b:7d
igb1: netmap queues/slots: TX 4/1024, RX 4/1024
ehci0: <Intel BayTrail USB 2.0 controller> mem 0xd0d05000-0xd0d053ff irq 
23 at device 29.0 on pci0
usbus0: EHCI version 1.0
usbus0 on ehci0
usbus0: 480Mbps High Speed USB v2.0
isab0: <PCI-ISA bridge> at device 31.0 on pci0
isa0: <ISA bus> on isab0
acpi_button0: <Power Button> on acpi0
acpi_button1: <Sleep Button> on acpi0
acpi_tz0: <Thermal Zone> on acpi0
ppc1: <Parallel port> port 0x378-0x37f irq 15 on acpi0
ppc1: Generic chipset (NIBBLE-only) in COMPATIBLE mode
ppbus0: <Parallel port bus> on ppc1
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
ppi0: <Parallel I/O> on ppbus0
uart2: <16950 or compatible> port 0x248-0x24f irq 5 on acpi0
uart1: <16950 or compatible> port 0x2f8-0x2ff irq 3 on acpi0
uart3: <16950 or compatible> port 0x3e8-0x3ef irq 11 on acpi0
uart4: <16950 or compatible> port 0x2e8-0x2ef irq 10 on acpi0
uart5: <16950 or compatible> port 0x228-0x22f irq 6 on acpi0
uart6: <16950 or compatible> port 0x238-0x23f irq 7 on acpi0
est0: <Enhanced SpeedStep Frequency Control> on cpu0
Timecounters tick every 1.000 msec
hdacc0: <Realtek ALC888 HDA CODEC> at cad 0 on hdac0
hdaa0: <Realtek ALC888 Audio Function Group> at nid 1 on hdacc0
pcm0: <Realtek ALC888 (Rear Analog)> at nid 20 and 24 on hdaa0
pcm1: <Realtek ALC888 (Analog)> at nid 21 and 26 on hdaa0
hdacc1: <Intel Valleyview2 HDA CODEC> at cad 2 on hdac0
hdaa1: <Intel Valleyview2 Audio Function Group> at nid 1 on hdacc1
hdaa1: hdaa_audio_as_parse: Duplicate pin 0 (5) in association 1! 
Disabling association.
hdaa1: hdaa_audio_as_parse: Duplicate pin 0 (6) in association 1! 
Disabling association.
ada0 at ahcich0 bus 0 scbus0 target 0 lun 0
ada0: <KINGSTON SA400S37120G SBFKB1E1> ACS-3 ATA SATA 3.x device
ada0: Serial Number 50026B768365A54C
ada0: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 512bytes)
ada0: Command Queueing enabled
ada0: 114473MB (234441648 512 byte sectors)
Trying to mount root from ufs:/dev/ada0s1a [rw]...
ugen0.1: <Intel EHCI root HUB> at usbus0
uhub0 on usbus0
uhub0: <Intel EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus0
WARNING: / was not properly dismounted
ichsmb0: <Intel Baytrail SMBus controller> port 0xe000-0xe01f mem 
0xd0d04000-0xd0d0401f irq 18 at device 31.3 on pci0
smbus0: <System Management Bus> on ichsmb0
lo0: link state changed to UP
uhub0: 8 ports with 8 removable, self powered
ugen0.2: <vendor 0x8087 product 0x07e6> at usbus0
uhub1 on uhub0
uhub1: <vendor 0x8087 product 0x07e6, class 9/0, rev 2.00/0.17, addr 2> 
on usbus0
uhub1: 4 ports with 4 removable, self powered
ugen0.3: <eGalax Inc. USB TouchController> at usbus0
usbhid0 on uhub1
usbhid0: <eGalax Inc. USB TouchController, class 0/0, rev 1.10/1.00, 
addr 3> on usbus0
hidbus0: <HID bus> on usbhid0
ugen0.4: <Lite-On Technology Corp. USB Multimedia Keyboard> at usbus0
ukbd0 on uhub1
ukbd0: <Lite-On Technology Corp. USB Multimedia Keyboard, class 0/0, rev 
1.10/1.09, addr 4> on usbus0
kbd1 at ukbd0
usbhid1 on uhub1
usbhid1: <Lite-On Technology Corp. USB Multimedia Keyboard, class 0/0, 
rev 1.10/1.09, addr 4> on usbus0
hidbus1: <HID bus> on usbhid1
ugen0.5: <vendor 0x05e3 USB2.0 Hub> at usbus0
uhub2 on uhub1
uhub2: <vendor 0x05e3 USB2.0 Hub, class 9/0, rev 2.00/32.98, addr 5> on 
usbus0
hmt0: <eGalax Inc. USB TouchController TouchScreen> on hidbus0
hmt0: Multitouch touchscreen with 0 external buttons
hmt0: 1 contacts with [RC] properties. Report range [0:0] - [4095:4095]
hconf0: <eGalax Inc. USB TouchController Configuration> on hidbus0
hcons0: <Lite-On Technology Corp. USB Multimedia Keyboard Consumer 
Control> on hidbus1
hsctrl0: <Lite-On Technology Corp. USB Multimedia Keyboard System 
Control> on hidbus1
igb1: link state changed to UP
uhub2: 4 ports with 4 removable, self powered