สวัสดีครับ ในบทความนี้ผมจะมาแนะนําวิธีการ ติดตั้ง printer ใน raspberry pi หรือ computer ที่มี os เป็น linux ในการจัดการ printer บน linux จะต้องใช้โปรแกรม CUPS เข้ามาช่วย
CUPS ย่อมาจาก Unix Printing System เป็นโปรแกรมที่ทําหน้าที่ จัดการ และ share printer รวมถึงจัดการคิวในการพิมพ์ ซึ่งเป็นโปรแกรมที่รันบน os linux
วิธีการติดตั้ง CUPS ให้ใช้คําสั่งนี้
sudo apt-get install cups
เมื่อติดตั้งเสร็จ เราจะต้องเพิ่ม กลุ่ม “lpadmin”(เป็นกลุ่มที่สร้างจาก CUPS) เข้าไปใน user ที่เราต้องการจะเข้าถึง เครื่องพิมพ์ / คิวพิมพ์ ในตัวอย่างนี้จะใช้ user default ของ raspberry pi(“pi”)
sudo usermod -a -G lpadmin pi
config ค่าเบื้องต้นโดยเปิดไฟล์ /etc/cups/cupsd.conf ด้วยคําสั่ง
sudo nano /etc/cups/cupsd.conf
เพิ่ม “port 631” ต่อจากบรรทัด ”# Listen localhost:631”เพื่อเปิดใช้งาน CUPS ใน port 631
# Only listen for connections from the local machine
# Listen localhost:631
Port 631
ดูในหัวข้อ “location” เพิ่ม “Allow @LOCAL” เข้าไป ตามตัวอย่าง เพื่อกําหนดสิทธิ์ในการเข้าถึงได้ภายใน local network เท่านั้น
<Location />
# Allow shared printing and remote administration...
Order allow,deny
Allow @LOCAL
</Location>
<Location /admin>
# Allow remote administration...
Order allow,deny
Allow @LOCAL
</Location>
<Location /admin/conf>
AuthType Default
Require user @SYSTEM
# Allow remote access to the configuration files...
Order allow,deny
Allow @LOCAL
</Location>
restart the CUPS server ด้วยคําสั่ง
sudo /etc/init.d/cups restart
เสร็จสิ้นการ ติดตั้ง และ config ต่อไปเป็นการ เพิ่ม printer device และการ share printer
เปิด browser แล้วเข้า “http://[the Pi’s IP or hostname]:631” จะเจอหน้าจอแบบนี้

มาเพิ่ม printer กันก่อนครับ โดยเข้าที่เมนู “Add Printer”

จะมีหน้าจอให้ใส่ User และ Password ให้ใส่ user ที่เรา แอดเข้ากลุ่ม “lpadmin” ไปในตอนแรก

เลือกเครื่องปริ้นที่เราเชื่อมต่ออยุ่ แล้วกด Continue

ระบุรายละเอียดของเครื่องปริ้นแล้วเลือก Share This Printer กด Continue

หน้านี้จะให้เราระบุ PPD File (คล้ายๆ driver ของ microsoft windows) สามารถระบุได้สองแบบ คือ กรณีไม่มีไฟล์ PPD สามารถเลือกจากเมนูที่มีให้ โดยเลือก ยี่ห้อ แล้วกด Continue จะมีรุ่นของเครื่องปริ้นมาให้เลือกอีกครั้ง แต่ถ้าเลือกตามยี่ห้อแล้วไม่มีรุ่นตามที่เราต้องการ เราสามารถจะโหลดไฟล์ PPD จาก openprinting.org/printers แล้วกด Choose File เพื่อ upload file ดังรูป เมื่อเรียบร้อยแล้วก็กด Add Printer ได้เลย

Set default options ตามต้องการ ปกติแล้วไม่ต้องแก้อะไร กด Set Default Option ได้เลยครับ

เสร็จสิ้นการ add printer แล้วครับ
URI สําหรับ connect จากเครื่องอื่นๆ เพื่อใช้งาน printer มี format คือ
http://server-name-or-ip:631/printers/printername CNAME Record (Canonical Name) เป็น Config ที่อยู่ใน DNS Management เพื่อบอกว่า Subdomain นี้ ให้ชี้ไปยัง Hostname ไหน เช่นกําหนด CANME ให้ mail.aaa.com ชี้ไปที่ webmail.bbb.com เมื่อเข้าเว็บด้วย mail.aaa.com มันก็จะวิ่งไปที่ webmail.bbb.com แล้วแสดงหน้าเว็บนั้นขึ้นมาทันทีกําหนด CANME ให้ www.aaa.com ชี้ไปที่ aaa.com เมื่อเข้าเว็บด้วย www.aaa.com มันก็จะวิ่งไปที่ aaa.com แล้วแสดงหน้าเว็บนั้นขึ้นมาทันทีกําหนด CANME ให้ api.aaa.com ชี้ไปที่ ccc.com เมื่อเข้าเว็บด้วย api.aaa.com มันก็จะวิ่งไปที่ ccc.com แล้วแสดงหน้าเว็บนั้นขึ้นมาทันทีจากตัวอย่างด้านบน ทําให้เราสามารถกําหนด CNAME เพื่อชี้ไปยัง Hostname ปลายทางใดๆก็ได้ ซึ่งจะมีประโยชน์มากในกรณีที่เรามีการเปลี่ยนเปลี่ยนแปลง Hostname เราก็แค่เปลี่ยน Config CNAME ให้ชี้ไปยัง Hostname ใหม่เท่านั้น User ก็จะยังเข้าใช้งานผ่าน Subdomain เดิมได้
อาร์เรย์เป็นชนิดข้อมูลประเภทหนึ่งที่นําชนิดข้อมูลแบบพื้นฐานเช่น int, char มาประยุกต์ ให้สามารถเก็บข้อมูลได้มากกว่า 1 ชุด ซึ่งจะต่างจากชนิดข้อมูลทั่วไปคือ ชนิดข้อมูลทั่วไปเมื่อประกาศมาแล้วจะเก็บค่าได้เพียง 1 ค่าต่อตัวแปร 1 ตัวเท่านั้น แต่เมื่อประกาศตัวแปรเป็นชนิดข้อมูลแบบอาร์เรย์ จะสามารถกําหนดขนาดของข้อมูลที่จะเก็บได้
โดยปกติแล้วเราจะไม่สามารถเรียกใช้งาน docker-compose ได้ตรงๆใน crontab แต่ถ้าต้องการใช้ ให้ใช้วิธีนี้ครับ