This will be simpler than the brother printer as we won’t be configuring anything on the network. The Epson ES-400 doesn’t have a wireless option so it must be plugged in via usb.
https://www.amazon.ca/dp/B08P3YVH3X (349.99 @ Jan 19 2023)
Once the scanner is plugged in via usb, we just need to install the Epson driver and away we go! These instructions are for CentOS 7.4 specifically.
Get the driver:
This will download a tarred file which I wasn’t able to get it to install via rpm. Instead you can untar the file and run the install script directly.
tar xvf epsonscan2-bundle-220.127.116.11.x86_64.rpm.tar.gz cd epsonscan2-bundle-18.104.22.168.x86_64.rpm ./install.sh
This will install the Epson driver.
Now we can run
[root@localhost ~]# scanimage -L device `epsonscan2:123:123:ES0231:425' is a EPSON ES-400II:001:005 flatbed scanner
Now we can load a page and give it a shot:
scanimage --format tiff -d "epsonscan2:123:123:ES0231:425" > image.tiff
With that we are done! We can now use a Epson scanner connected via usb to a Linux machine.
You can get device specific options by:
scanimage --help -d 'epsonscan2:ES-400II:123:123:ES0231:385'
... Options specific to device `epsonscan2:ES-400II:001:005:esci2:usb:ES0231:385': General: --mode Color|Grayscale|Monochrome [Color] Selects the scan mode (e.g., lineart, monochrome, or color). --source ADF [ADF] Selects the scan source (such as a document-feeder). --duplex[=(yes|no)] [no] Selects the ADF mode (yes:duplex/no:simplex) --resolution 50..1200dpi (in steps of 1)  Sets the resolution of the scanned image. --x-resolution 50..1200dpi (in steps of 1) [inactive] Sets the horizontal resolution of the scanned image. --y-resolution 50..1200dpi (in steps of 1) [inactive] Sets the vertical resolution of the scanned image. --scan-area Auto Detect|Auto Detect(long paper)|Letter|Legal|A4|A5|A5 (Landscape)|A6|A6 (Landscape)|A8|A8 (Landscape)|B5 [JIS]|Postcard|Postcard (Landscape)|PlasticCard|Maximum|Manual [Manual] Select an area to scan based on well-known media sizes. Geometry: -l 0..215.9mm  Top-left x position of scan area. -t 0..393.7mm  Top-left y position of scan area. -x 0..215.9mm [215.9] Width of scan-area. -y 0..393.7mm [393.7] Height of scan-area. Enhancement: --deskew[=(yes|no)] [no] Rotate image so it appears upright. --dropout None|Red|Blue|Green [None] Selects the dropout. --text-enhance None|Normal|High [None] Text Enhance --rotate 0 degrees|90 degrees|180 degrees|270 degrees|Auto [0 degrees] Rotate --skip-blankpages 0..100 (in steps of 1)  Skip Blank Pages Settings. --brightness -100..100 (in steps of 1)  Controls the brightness of the acquired image. --contrast -100..100 (in steps of 1)  Controls the contrast of the acquired image. --threshold 0..255  Select minimum-brightness to get a white point Other: --double-feed-detection None|Thin [None] Detection Double Feed --gamma-correction 0.5..3 (in steps of 0.0999908) [2.2] Selects the gamma correction value from a list of pre-defined devices or the user defined table, which can be downloaded to the scanner --image-count 1..999 (in steps of 1)  Image Count --long-paper-mode[=(yes|no)] [no] Select this mode if you want to scan documents longer than what the ADF would normally support. Please note that it only supports automatic detection of the document height. --transfer-format[=(yes|no)] [inactive] Selecting a compressed format such as JPEG(=yes) normally results in faster device side processing. --remove-background None|Standard|High [None] Remove Background --background-color Black|White [inactive] Background Color