הדפסה טבעית מול חלונות באמצעות CUPS/Samba
מתוך הויקי של ג'נטו.
| שיטות התקנה • תקליטורי LiveCD • קרנל וחומרה • Portage • ניהול מערכת |
| רשתות ושירותים • שרת X • תוכנות • משחקים • שונות |
תוכן העניינים |
[עריכה] הקדמה
חיבור מדפסת אל היציאה המקבילית או אל יציאת ה-USB, התקנת Samba ו-CUPS, מעט קסם קונפיגורציה, ותוכל להדפיס לפני שתספיק להגיד "ג'ק רובינזון,...
מדריך זה יעבור על כל השלבים הנדרשים כדי להגדיר את Samba, CUPS ואת חלונות.
המדריך מבוסס על עבודות שונות שנמצאו באינטרנט, הפורומים, ו-IRC. (המבנה של המדריך נלקח מהמדריך Samsung printer howto).
מדריך זה אמור לעבוד עבור כל המדפסות, אך אנו נשתמש ב-HP LaserJet 1000 כדוגמא. (אגב, קשה להגדיר אותה, כיוון שהיא דורשת העלאת עדכון קושחא).
[עריכה] מה יעשה מדריך זה
- יסביר כיצד לגדיר את המדפסת באופן מקומי
- יסביר כיצד להגדיר את הקרנל שלך לתמוך בהדפסה (USB ו -LPT). אנו משתמשים בקרנל מסדרת 2.6.
- יסביר כיצד להגדיר את Samba ו-CUPS להשתמש במדפסת במצב RAW.
- יסביר כיצד להגדיר לקוחות (clients) המריצים חלונות להשתמש במדפסת.
[עריכה] חבילות דרושות
[עריכה] סביבה
בתור התחלה, נצטרך לדעת באיזה סוג של מארח USB אנחנו משתמשים (דלג על חלק זה אם אתה משתמש ביציאה המקבילית, LPT). ישנם שני סוגים של מארחי USB, והם: OHCI ו-UHCI. אתה צריך רק אחד מהם. הרץ את הכלי lspci ובדוק איזה סוג של בקר USB יש לך:
| קוד: דוגמא לפלט של lspci |
# lspci 0000:00:00.0 Host bridge: VIA Technologies, Inc. VT82C693A/694x [Apollo PRO133x] (rev c4) 0000:00:01.0 PCI bridge: VIA Technologies, Inc. VT82C598/694x [Apollo MVP3/Pro133x AGP] 0000:00:04.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super South] (rev 40) 0000:00:04.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06) 0000:00:04.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 16) 0000:00:04.3 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 16) 0000:00:04.4 Host bridge: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] (rev 40) 0000:00:09.0 SCSI storage controller: Adaptec AHA-2940/2940W / AIC-7871 0000:00:0b.0 Ethernet controller: 3Com Corporation 3c900B-Combo Etherlink XL [Cyclone] (rev 04) 0000:00:0c.0 VGA compatible controller: S3 Inc. 86c325 [ViRGE] (rev 06) 0000:00:0d.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10) |
[עריכה] תצורת קרנל
בהמשך, תצטרך לוודא שתמיכה ב-USB (או LPT) מהודרת לתוך הקרנל שלך. אני מעדיף להדר את התמיכה ישירות לתוך הקרנל, בשונה מיצירת מודולים. הבחירה שלך...
| תצורת קרנל לינוקס: אפשרויות קרנל עבור USB |
Device Drivers
USB Support
<*> Support for Host-side USB
<*> EHCI HCD (USB 2.0) support
[ ] Full speed ISO transactions (EXPERIMENTAL)
[ ] Root Hub Transaction Translators (EXPERIMENTAL)
< > OHCI HCD support
<*> UHCI HCD (most Intel and VIA) support
<*> USB Printer support
|
| תצורת קרנל לינוקס: אפשרויות קרנל עבור LPT |
Device Drivers
Character devices
<*> Parallel printer support
[*] Support for console on line printer
|
אם ביצעת שינויים, עלייך להדר מחדש את הקרנל, ולהפעיל את המחשב מחדש כדי שהקרנל החדש ייטען. אחרת, אין צורך להדר מחדש. אם כבר הוגדרו הסעיפים הרלוונטיים כמודולים, תצטרך לטעון את המודולים המתאימים (דוגמאות יש במדריך ההתקנה). אם ההגדרות כבר היו קיימות כמהודרות בתוך הקרנל (סימון *) , אין צורך לטעון מודולים ואין צורך להפעיל את המחשב מחדש.
[עריכה] דגלי USE
אתה צריך שיהיו מוגדרים שלושה דגלי USE עבור מדריך זה:
- samba - הוספת תמיכה ב-samba ל-CUPS
- cups - הוספת תמיכה ב-CUPS ל-samba
- pam - גורם ל-CUPS להשתמש ב-PAM עבור הזדהות.
[עריכה] וידוי נוכחות מדפסת
אם יש לך מדפסת USB, והפעלת את המחשב מחדש מאז שיצרת את הקרנל החדש שלך (או שטענת מודולים), עלייך לוודא שהמדפסת זוהתה על ידי המערכת, באמצעות פקודת dmesg:
| קוד: הרצת פקודת dmesg |
# dmesg | grep usb usb 1-2: new full speed USB device using uhci_hcd and address 4 drivers/usb/class/usblp.c: usblp0: USB Bidirectional printer dev 4 if 0 alt 0 proto 2 vid 0x03F0 pid 0x0517 |
אם המדפסת שלך זוהתה, כמו בדוגמא לעיל, המשך עם מדריך זה. אחרת, תצטרך לנסות לפתור את הבעייה ברמת החומרה או התמיכה המתאימה בקרנל.
הערה: הנאמר לעיל פועל אך ורק עבור מדפסות USB. מדפסות בחיבור מקבילי (LPT) לא יופיעו ב-dmesg.
[עריכה] התקנת חבילות
זהו כנראה השלב הפשוט ביותר. מנהג טוב יהיה לבדוק תמיד "העמדת פנים" (pretend) / פלט מורחב לפני שמתקינים חבילה כלשהיא. כך תדע מה הולך להיות מותקן (בהתמקדות על תלויות, אם יש). קח לעצמך קצת דברים לעשות בזמן הפנוי, כיוון שכמחצית השעה תעבור עד שיותקנו חבילות אלה, תלוי בחומרה/הגדרות היעילות שב-/etc/make.conf. הפעולה תיקח יותר זמן אם ישנן גם תלויות אשר יש להתקין בשביל תוכנות אלה.
| קוד: התקנת hotplug, Samba ו-CUPS |
emerge sync emerge -av hotplug samba cups |
[עריכה] התקנת דרייברים מיוחדים
מדפסות מסוימות דורשות דרייברים ספציפיים או שהן מספקות אפשרויות נוספות שהן לא נגישות מן ההגדרה הרגילה. כדי למצוא את הדרייבר המתאים בשבילך בקר כאן. תוכל להוריד את הדרייבר (קובץ ppd) מהאתר, למקם אותו ב-/usr/share/cups/model ולאחר מכן להריץ /etc/init.d/cupsd restart כמשתמש root.
חלק מהמדפסות דורשות התקנת חבילת דרייבר. להלן הסבר על מספר חבילות.
[עריכה] דרייבר Gimp-Print
הדרייברים של gimp-print איכותיים מאוד, בעלי קוד פתוח והם עבור מדפסות שונות של Canon, Epson, HP, Lexmark, Sony, Olympus ומדפסות PCL תומכות CUPS, ghostscript, Gimp ויישומים אחרים.
כדי להתקין את דרייבר Gimp תצטרך לאפשר בשבילו מספר משתני USE ואז להתקין את הדרייבר:
| קוד: התקנת Gimp driver |
# echo "media-gfx/gimp-print cups ppds" >> /etc/portage/package.use # emerge gimp-print |
לאחר התקנה זו ניתן יהיה להשתמש בדרייבר דרך ממשק ה-CUPS.
[עריכה] דרייבר HPLIP
פרויקט HPLIP מכסה את דרייבר hplip וכולל בתוכו תמיכה בסורק וכלי שירות עבור כלים נוספים. עבור תמיכה בהדפסה, אתה חייב להשתמש בדגל השימוש ppds:
| קוד: התקנת דרייבר hplip |
# echo "net-print/hplip ppds" >> /etc/portage/package.use # emerge hplip # /etc/init.d/hplip start # /etc/init.d/cupsd restart # rc-update add hplip default |
לאחר ההתקנה הדרייברים יהיו אפשריים דרך ממשק CUPS.
[עריכה] דרייבר PNM2PPA
PPA היא טכנולוגיית HP שמתמקדת בשליחת תהליך רמה-נמוכה למערכת במקום להשתמש במדפסת וזה הופך את המדפסת לזולה אבל בעלת מקור גישה טוב.
אם אתר LinuxPrinting מורה לך שדרייבר pnm2ppa הוא הדרייבר שמתאים לך, תצטרך להתקין את מסנן pnm2ppa במערכת שלך:
| קוד: התקנת מסנן pnm2ppa |
# emerge pnm2ppa |
לאחר שזה יותקן, הורד את קובץ ה-PPD עבור המדפסת שלך מאתר LinuxPrinting ושים אותו בספריה /usr/share/cups/model. לאחר מכן, התקן את המדפסת כפי שיופיע בהמשך.
[עריכה] קביעת תצורת החבילות
[עריכה] תצורת CUPS
נתחיל עם עריכת /etc/cups/mime.convs ונוריד את סימון ההערה מהשורה הבאה בסוף הקובץ:
| קובץ: /etc/cups/mime.convs |
application/octet-stream application/vnd.cups-raw 0 - |
לאחר מכן נערוך את /etc/cups/mime.types ונוריד את סימון ההערה מהשורה הבאה בסוף הקובץ:
| קובץ: /etc/cups/mime.types |
application/octet-stream |
כעת אנחנו צריכים לערוך את הקובץ /etc/cups/printers.conf, למחוק את כל תוכנות, ולהוסיף את השורות הבאות, בשינויים המתאימים לצרכיך:
| קובץ: /etc/cups/printers.conf |
# ייתכן ותרצה לבקר ב http://localhost:631 במקום לערוך קובץ זה ישירות . <DefaultPrinter HPLaserJet1000> <-- שם המדפסת. Info HP LaserJet 1000 <-- תיאור המדפסת. Location Kitchen <-- מיקום פיזי של המדפסת. DeviceURI usb:/dev/usb/lp0 <-- במידה והמדפסת מחוברת בחיבור מקבילי /dev/lp0 יש להשתמש ב . State Idle Accepting Yes JobSheets none none QuotaPeriod 0 PageLimit 0 KLimit 0 </Printer> |
מה שנותר לנו לעשות כעת, זה לערוך את /etc/cups/cupsd.conf. את רוב האפשרויות ניתן לשנות כרצונך. השורות הבאות, חייבות להיות לפי הדוגמא:
| קובץ: /etc/cups/cupsd.conf |
User lp Group lp אם אתה רוצה להשתמש בממשק ניהול הווב מתוך רשת 192.168.1.x השתמש בדוגמא הבאה <Location /> Order Deny,Allow Deny From All Allow From 192.168.1.* </Location> <Location /admin> AuthType Basic AuthClass System Order Deny,Allow Deny From All Allow From 192.168.1.* </Location>
<Location /> Order Deny,Allow Deny From All Allow From 127.0.0.* </Location> <Location /admin> AuthType Basic AuthClass System Order Deny,Allow Deny From All Allow From 127.0.0.* </Location> |
[עריכה] תצורת Samba
קודם כל, תצטרך לעשות מספר דברים: צור את הספריה /etc/samba/drivers/W32X86. זהו המקום שבו דרייברים עבור תחנות חלונות 2000 ו-XP יושמו לצורך הורדתם בתחנות.
[עריכה] חלק השירות [global]
קובץ לעריכה: /etc/samba/smb.conf
netbios name מגדיר את שם ה-NetBIOS שבו שרת ה-Samba ידוע. זהו השם שתראה ב-network neighborhooid (או "שכנים ברשת"). workgroup מגדיר את קבוצת העבודה שבה השרת שלך יציג את עצמו כשהוא נשאר לכך על ידי לקוחות. server string מגדיר איזו מחרוזת תופיע בתיבת ההערה במנהל ההדפסה וליד חיבור ה-IPC ב-net view.
| קובץ: /etc/samba/smb.conf |
netbios name = שם_מחשב workgroup = קבוצה_עבודה server string = Samba Server |
hosts allow הוא סט של מחשבים, המופרד בפסיקים, רווחים, או סימני טאב, אשר מורשים לגשת לשירות. . security משפיע כיצד לקוחות מגיבים ל-Samba, והוא אחת מההגדרות החשובות ביותר בקובץ /etc/samba/smb.conf. encrypt passwords מגדיר האם תקשורת הסיסמאות מול הלקוח היא מוצפנת או לא. socket options מאפשר לך לקבוע אפשרויות socket שבהן יש להשתמש כש"מדברים" עם הלקוח. אפשרות זאת טובה לשיפור ביצועים. אם אתה מוצא עוד אפשרויות, או אפשרויות טובות יותר, הוסף אותן לדף השיחה של מאמר זה. האפשרות interfaces מאפשרת לך לעקוף את ממשקי הרשת אשר Samba תשתמש בהם בברירת המחדל עבור עיון, רישום שמות, ותעבורת NBT. האפשרות bind interfaces מאפשרת לאדמין של Samba להגביל את שירות בקשות ה-SMB לממשקים מסויימים.
| קובץ: /etc/samba/smb.conf |
hosts allow = 192.168.1.0/24 127.0.0.0/8 security = user encrypt passwords = yes socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 interfaces = lo eth0 bind interfaces only = yes |
null passwords מאפשרת או חוסמת גישת לקוחות שיש להם סיסמא ריקה. hide unreadable מונעת מלקוחות לראות קבצים שאין באפשרותם לקרוא. hide dot files קובעת האם קבצים ששמם מתחיל בנקודה (.) יוצגו כקבצים מוחבאים בחלונות.
| קובץ: /etc/samba/smb.conf |
null passwords = no hide unreadable = yes hide dot files = yes |
יש להגדיר גם את האפשרויות הבאות:
| קובץ: /etc/samba/smb.conf |
printcap name = cups printing = cups cups options = "raw" use client driver = no |
הערה: האפשרות האחרונה חשובה במיוחד; אם היא אינה מוגדרת, Samba וחלונות "ידברו" ביניהם הרבה מאוד זמן לגבי דרייבר המדפסת שבו יש להשתמש - מה שיגרום לביצועי הדפסה נחותים, ועשוי לתקוע כמעט לחלוטין את מערכת החלונות שלך.
[עריכה] חלק השירות [printers]
אם מופיע חלק [printers] בקובץ התצורה, משתמשים יוכלו להתחבר לכל מדפסת המוגדרת בקובץ printcap במחשב המקומי. כאן, התחביר החשוב הוא השורה האחרונה. בנוסף, path צריך להצביע על ה-spool של Samba. במקרה שלנו, המיקום הוא /var/spool/samba.
| קובץ: /etc/samba/smb.conf |
comment = All Printers path = /var/spool/samba browseable = no public = yes guest ok = yes writable = no printable = yes |
[עריכה] החלק [שםמדפסת]
כעת תצטרך להוסיף את המדפסת ל-Samba. דבר זה נעשה על ידי הוספת חלק עבור המדפסת, שנראה כך:
comment הינה ההערה עבור המדפסת.
printable צריך להיות מוגדר yes.
path הוא ספריית ה-spool. אם היא אינה קיימת, צור אותה..
public מוגדר ל-no, כך שרק משתמשים שידועים ל-samba יוכלו להשתמש במדפסת.
guest ok כמו הקודם, רק כדי לוודא.
printer admin מוגדר ל-root.
| קובץ: /etc/samba/smb.conf |
[HPLaserJet1000] comment = HP LaserJet 1000 printable = yes path = /var/spool/hplaserjet1000 public = no guest ok = no printer admin = root |
[עריכה] חלק השירות [print$]
חלק השירות [print$] מאפשר למעשה את זמינות המדפסת ברשת. המשמעות של חלק זה עבור מדפסות, היא כמו המשמעות של [share] עבור שיתופים. בנוסף, הנתיב צריך להפנות לדרייברים המותקנים של Samba. במקרה שלנו, הם נמצאים ב-/etc/samba/drivers. שים לב, שכיוון שאנחנו הולכים להשתמש בקובץ מסויים עבור הדרייבר שלנו, הנתיב הופך להיות מיותר, אך המשפט עדיין חובה.
| קובץ: /etc/samba/smb.conf |
comment = Printer Drivers path = /etc/samba/drivers browseable = yes guest ok = no read only = yes write list = root |
[עריכה] הוספת משתמשי Samba
אזהרה: אל תוסיף משתמשים אחרים חוץ מ-root לפני שהעלית את הדרייברים מתוך חלונות. אם תוסיף משתמש עם אותם שם המשתמש והסיסמא כמו משתמש החלונות שלך, לא תוכל להתחבר כמשתמש ה-root ולכן לא תוכל להוסיף את הדרייבר.
לא אכנס לפרטים של ניהול המשתמשים ב-Samba. וודא שהוספת את משתמש ב-root ל-Samba.
השלב הסופי בקביעת התצורה של Samba הוא להוסיף משתמשים.
| קוד: הוספת משתמשי Samba |
# smbpasswd -a username |
החלף את username עם שם הכניסה שבו משתמשים נכנסים למערכת החלונות שלהם. בנוסף, הסיסמא צריכה להיות זהה גם כן. משתמשים אלו אינם צריכים חשבונות UNIX אמיתיים במערכת ה-UNIX (או לינוקס, בעצם).
[עריכה] הוספת השירותים לרמות הריצה
כעת אנו צריכים להוסיף את השירותים cupsd ואת samba לרמת הריצה "ברירת המחדל":
| קוד: הכנסת השירותים לרמת הריצה "ברירת המחדל" והפעלתם |
rc-update add cupsd default rc-update add samba default rc-update add hotplug boot /etc/init.d/cupsd start /etc/init.d/samba start /etc/init.d/hotplug start |
או:
| קוד: הכנסת השירותים לרמת הריצה "ברירת המחדל" והפעלתם |
for x in cupsd samba hotplug ; do rc-update add $x default ; /etc/init.d/$x start ; done |
[עריכה] העלאת דרייבר המדפסת
- הורד את דרייבר המדפסת מאתר הבית של היצרן, ופתח אותו למקום כלשהוא במחשב שלך.
- היכנס לשרת ההדפסה ב-Network Neighborhood ("שכנים ברשת"), וכאשר אתה נשאל לגבי שם משתמש וסיסמא, השתמש במשתמש ה-root שיצרת ב-Samba בחלק הקודם.
- היכנס לתיקיית המדפסות
- לחץ מקש ימני על המדפסת, ולחץ על Properties ("מאפיינים")
- כשהוא שואל אותך האם אתה רוצה להעתיק את הדרייבר, לחץ לא.
- כעת לך ללשונית Advanced ("מתקדם"), ולחץ על New Driver (אם אפשרות זו אפורה, ייתכן שתהיה חייב להגדיר yes באפשרות "use client driver" בקובץ /etc/samba/smb.conf.
- עקוב אחר הההדרכה של מערכת ההפעלה.
כעת תוכל להוסיף משתמשים ל-Samba, ולהתאים את התצורה כך שתתאים לצרכיך.
[עריכה] העלאת עדכון קושחא למדפסת בזמן ההכנסה
אם המדפסת שלך דורשת העלאת עדכון קושחא אליה בכל פעם שאתה מחבר אותה, הדבר הבא עשוי לעזור לך. קודם כל, העתק את קובץ הקושחא (אשר בד"כ ממוקם בתוך קובץ הדרייבר שהורדת ופרסת מהאתר של יצרן המדפסת) אל /lib/firmware.
כעת, לך אל הספריה /etc/dev.d/default וצור תסריט (script) שנקרא hotplug.dev:
| קוד: hotplug.dev |
#!/bin/sh if [ "$DEVNAME" != "/dev/usb/lp0" ]; then exit; fi cat /lib/firmware/sihp1000.dl > /dev/usb/lp0 |
בדוגמא שלנו, קובץ הקושחא נקרא sihp1000.dl.
כעת תן לקובץ התסריט הרשאות ריצה:
| קוד: נתינת הרשאות ריצה ל-hotplug.dev |
|
chmod a+x /etc/dev.d/default/hotplug.dev |
זהו תסריט שנכתב באופן רע במיוחד, אבל הוא פועל... :)
[עריכה] משאבים
[עריכה] קריאה מומלצת
- מדריך ההדפסה הרשמי של ג'נטו
- דפי ה-Manual השונים עבור קבצי ההגדרות שאותם ערכנו
- המדריך הרשמי של Samba
- כל מה שניתן למצוא ב-Google :)
[עריכה] תמיכה
- הפורומים של ג'נטו
- צור קשר עם היוצר -- דרך הפורומים של ג'נטו (חובה להרשם בשביל פעולה זו)
- IRC: ערוץ gentoo# ברשת FreeNode (שרת IRC בכתובת irc.freenode.org, פורט 6667)
