How to use Canon TS9020 on freebsd.
Printing
You can use the Linux driver on FreeBSD.
Copy the files into proper places. cups' filters and backends should be copied into /usr/local/. Executables and libraries should be copied into /compat/linux.
Scanning
Scangearmp2 includes 3 binary blobs: libcncpnet30.so, libcncpnet20.so and libcncpmslld2.so.
First 2 seems to be communication frameworks, while the third one contains scanner commands. I guess the scanner commands are the same as ones in sane's pixma backends. The only problem is the communication layer. It is no longer BJNP.
It seems like that the libcncpnet30.so corresponds to the new communication layer which is used by TS9020.
Initial results
Something like endpoints appear in that so. I tried and it seems to be endpoints.
> curl -v http://192.168.1.127/canon/ij/command1/port1
* Trying 192.168.1.127...
* TCP_NODELAY set
* Connected to 192.168.1.127 (192.168.1.127) port 80 (#0)
> GET /canon/ij/command1/port1 HTTP/1.1
> Host: 192.168.1.127
> User-Agent: curl/7.57.0
> Accept: */*
>
< HTTP/1.1 406 Not Acceptable
< MIME-Version: 1.0
< Server: KS_HTTP/1.0
< Connection: Keep-Alive
< X-CHMP-Version: 1.0.0
The new protocol may be called CHMP, version 1.0.0.
Available endpoints: command1: port1-2 command2: port1-3
command1/port1 seems to return Conflict for POST cmds.