Mini Howto Subject: การต่อ Network Interface Card (LAN CARD) มากกว่าหนึ่งอัน By: Pruet Boonma pruet@ds90.intanon.nectec.or.th> Date: Apr 5, 1998 Update from: - License: สงวนลิขสิทธิ์เอกสารนี้ โดย พฤษภ์ บุญมา การเผยแพร่เอกสารนี้จะต้องอยู่ภายไต้ เงื่อนไขของ GNU General Public License เวอร์ชั่น 2.0 ที่ออกโดย Free Sofware Foundation กรุฒาอ่านรายละเอียดของ GPL ที่ Introduction: ในกรณีที่จะต่อ NIC หรือว่า LAN Card มากกว่าหนึ่งอันบน Linux นั้น สำหรับกรณีที่เป็น LAN Card ชนิดเดียวกัน จำเป็นต้องบอก Linux ว่า มี LAN Card มากกว่าหนึ่งอัน และมีค่า IRQ และ IO port เท่าไหร่บ้าง ส่วนในกรณีที่เป็น LAN Card ต่างชนิดกัน ก็ต้องเลือกให้ LAN Card อันใดอันหนึ่ง ใช้เป็น Module หรือว่าทั้งสองตัว เป็น Module เพราะว่า Linux kernel จะสามารถ Detect LAN Card ได้แค่ชนิดเดียวเท่านั้น Prerequirement: LAN Card มากกว่าหนึ่งอัน ในกรณีที่เป็น ISA Card ก็ต้อง disable คุณสมบัติของ Plug-n-Play ออกก่อน (ในความเป็นจริง สามารถใช้อุปกรณ์ที่เป็น Plug-n-Play กับ Linux ได้ แต่จะไม่กล่าวไว้ในเอกสารฉบับนี้) และได้ set ค่า IRQ และ IO port ไว้ให้ไม่ตรงกันแล้ว กรณีที่เป็น LAN Card ชนิดเดียวกัน ในกรณีที่เป็น LAN Card ชนิดเดียวกััน สามารถแบ่งได้เป็น สองกรณีคือ 1. ได้ include driver ของ LAN Card นั้นเข้าไปแล้วตอน make kernel (เลือก X ตอน make config) ในกรณีนี้ จะต้องไปแก้ไข file /etc/lilo.conf เพื่อบอก Linux ว่ามี LAN Card มากกว่าหนึ่งอัน โดยจะต้องใช้ directive append และใช้ option ว่า append = "ether=IRQ>,IO-ADDR>,PARAM1>,PARAM2>,NAME>, ..." ซึ่ง ether ก็หมายถึง Ethernet Card หรือว่า LAN Card นั่นเอง เช่น append = "ether=10,0x300,eth0 ether=9,0x340,eth1" ก็หมายถึงมี LAN Card สองอัน อันแรกที่เป็น eth0 คือ Card ที่มี Interrupt เป็น 10 ส่วนอันที่สองจะมี Interrupt เป็น 9 โดยการใส่บรรทัดนี้เข้าไปใน file /etc/lilo.conf จะต้องใส่ไปในบรรทัดแรก ๆ ของ file และต้องเรียก lilo(linux loader) เพื่อทำการแก้ไขค่าใหม่ ดังตัวอย่าง # lilo Added linux * # นอกจากนั้นยังสามารถกำหนดค่าเข้าไปได้ในขณะที่กำลังจะ boot Linux โดยเมื่อขึ้น prompt LILO ก็ให้เรียก keyword ที่จะเรียกเข้า partition Linux แล้วตามด้วย ข้อความ ether=... เช่น LILO boot: linux ether=10,0x300,eth0 ether=9,0x340,eth1 เป็นต้น 2. ในกรณีที่ driver ของ LAN Card นั้นเป็น module ก็สามารถทำได้ในขณะที่กำลัง insert module เข้าไป แต่ก็ขึ้นอยู่กับ driver ของ LAN Card เพราะว่า แต่ละชนิดก็จะทำไม่เหมือนกัน ข้อให้อ้างอิงเอกสารดังต่อไปนี้ถึง option ที่ต้องใช้ในการ insert module /usr/src/linux/Documentation/networking/net-modules.txt ในที่นี้จะยกตัวอย่าง การ insert module ของ LAN Card NE2000 ซึ่งมี IO port เป็น 0x300 และ 0x340 โดยจะใช้คำสั่งดังนี้ # insmod ne io=0x300,0x340 # ในกรณีนี้จะได้ว่า LAN Card ที่มี IO port เป็น 0x300 จะเป็น eth0 และ 0x340 เป็น eth1 ตามลำดับ กรณีที่เป็น LAN Card คนละชนิดกัน ในกรณีที่เป็น LAN Card คนละชนิดกัน สำหรับ Linux แล้ว ในขณะที่ Boot เครื่อง จะ detect LAN Card แค่ชนิดเดียว และจะเจอ LAN Card อันแรกที่ detect เจอ ดังนั้น จึงอาจทำได้สองวิธีคือ include LAN Card driver ที่ต้องการทั้งหมด ลงไปตอน make kernel แล้วในขณะที่ boot ก็บอก Linux ว่ามี LAN Card มากกว่าหนึ่งอัน โดยทำเช่นเดียวกับกรณีที่เป็น LAN Card ชนิดเดียวกัน ส่วนวิธีที่ง่ายกว่านั้น คือ include driver ลงไปใน kernel เพียงชนิดเดียว ส่วน driver อันอื่น ก็ทำเป็น module และใช้วิธี insert module เข้าไปแทน