คุณเคยต้องการมีฟังก์ชันเพิ่มเติมเช่น Email, Bit-torrent หรือแม้แต่ MySQL โดยตรงบนเราเตอร์ของคุณหรือไม่? ตอนนี้คุณสามารถทำได้ How-To Geek เจาะลึกวิธีการติดตั้งซอฟต์แวร์ Opkg บน DD-WRT
ภาพโดย Jean Spector และ Aviad Raviv
หากคุณยังไม่ได้อ่านโปรดอ่านบทความก่อนหน้านี้ในชุดนี้:
- เปลี่ยนเราเตอร์ในบ้านของคุณให้เป็นเราเตอร์ที่ขับเคลื่อนด้วยพลังพิเศษด้วย DD-WRT
- วิธีลบโฆษณาด้วย Pixelserv บน DD-WRT
สมมติว่าคุณคุ้นเคยกับหัวข้อเหล่านั้นแล้วให้อ่านต่อไป โปรดทราบว่าคู่มือนี้เป็นข้อมูลทางเทคนิคเล็กน้อยและผู้เริ่มต้นควรระมัดระวังในการดัดแปลงเราเตอร์
ความทุกข์ยาก
ฉันเพิ่งซื้อใหม่
บัฟฟาโล WZR-HP-AG300H
ซึ่งมาพร้อมกับเวอร์ชันรีแบรนด์ของ
DD-WRT
. เนื่องจากเราเตอร์นี้มีพอร์ต USB ฉันจึงเชื่อมต่อ HD ทันทีและพยายามใช้ "
Optware วิธีที่ถูกต้อง
” คู่มือวิกิ น่าเสียดายที่ฉันพบอย่างรวดเร็วว่าเราเตอร์ที่ฉันได้รับนั้นเป็นแบบ Atheros และสคริปต์จากหน้าวิกินั้นไม่รองรับ ดังนั้นฉันจึงเริ่มขุด (เหมือนที่เคยทำมาตลอด) และเจอคำแนะนำมากมาย (
1
,
2
,
3
และ
4
) ที่มีวัตถุประสงค์เพื่ออธิบายวิธีการทำให้ Opkg ทำงานด้วยตนเอง ในขณะที่การมีส่วนร่วมของพวกเขา (จากแหล่งอื่น ๆ บนเว็บ) ที่มีต่อคู่มือนี้เป็นสิ่งล้ำค่า แต่คำแนะนำบางส่วนนั้น (IMHO) ไม่ตรงไปตรงมา ตัวอย่างเช่นการให้ไฟล์ "lib" fish แก่คุณ แต่ไม่ได้สอนวิธีตกปลาจากแหล่งที่มา นอกจากนี้ยังต้องใช้ประโยชน์จาก HD ที่ฟอร์แมตด้วย Linux หรืออย่างน้อยพาร์ติชันหนึ่ง (
ซึ่งจริงๆแล้วใช้ไม่ได้กับเฟิร์มแวร์ที่ฉันเคยทดสอบด้วย
). นั่นคือเหตุผลที่ฉันรู้สึกว่าจำเป็นต้องสร้างขั้นตอนด้านล่างที่กระชับง่ายต่อการปฏิบัติตามและทำซ้ำได้เพื่อรับไฟล์
OpenWRT
ตัวจัดการแพ็คเกจ Opkg เพื่อทำงานกับเราเตอร์ดังกล่าว
อัปเดต: ความสามารถในการติดตั้งพาร์ติชันได้รับการแนะนำอีกครั้งในเวอร์ชันรีแบรนด์บนบิลด์ 17798 อัลฟ่า
Opkg คืออะไร?
Opkg เป็นผู้จัดการแพ็คเกจเช่นถนัด / ถนัดและยำ ทำหน้าที่แทนไฟล์ ตัวจัดการแพ็คเกจ Ipkg และสามารถใช้เพื่อติดตั้งซอฟต์แวร์เช่นไฟล์ การแพร่เชื้อ BitTorrent daemon ผู้ส่งอีเมล ssmtp และ เคาะ daemon ที่รันสคริปต์หลังจากพอร์ตที่ระบุลำดับทริกเกอร์เพื่อตั้งชื่อไม่กี่ จาก ไซต์ OpenWRT :
ยูทิลิตี้ opkg (ส้อม ipkg) เป็นตัวจัดการแพคเกจน้ำหนักเบาที่ใช้ในการดาวน์โหลดและติดตั้งแพ็กเกจ OpenWrt จากที่เก็บแพ็กเกจในเครื่องหรือที่อยู่บนอินเทอร์เน็ต
Opkgพยายามแก้ไขการอ้างอิงกับแพ็กเกจในที่เก็บ - หากล้มเหลวจะรายงานข้อผิดพลาดและยกเลิกการติดตั้งแพ็กเกจนั้น
ดังนั้นการใช้ Opkg เราสามารถติดตั้งสิ่งต่างๆเช่นเดียวกับที่ทำกับ Ipkg ได้ ปลดปล่อยพลังที่มากขึ้นจากเราเตอร์ที่บ้านของคุณ ” คำแนะนำ ความแตกต่างที่สำคัญคือ:
- เพื่อที่จะให้ตัวอย่างของ SSMTP และ Knockd คุณต้องคิดหาการอ้างอิงด้วยตนเอง ขั้นตอนในการดำเนินการนี้ด้วยตนเองนั้นน่ารำคาญและไม่ตรงไปตรงมามากนัก Opkg ทำสิ่งนี้โดยอัตโนมัติ
- ครั้งนี้เราจะเป็น เพิ่ม ซอฟต์แวร์ที่อยู่ด้านบนของเฟิร์มแวร์ที่มีอยู่แล้วแทนที่ ในขณะที่การแทนที่มันเป็นการออกกำลังกายที่ยอดเยี่ยม แต่ก็ไม่ต้องสงสัยเลยว่าอันตรายมีแนวโน้มที่จะเกิดปัญหากลับไม่ได้และแย่ที่สุดสำหรับเราเตอร์ทั้งหมดโดยเฉพาะ ไม่จำเป็นต้องบอกว่าวิธีนี้ง่ายและปลอดภัยกว่า
ข้อกำหนดเบื้องต้น
ในการดำเนินการคู่มือนี้ให้สมบูรณ์โปรดทราบสิ่งต่อไปนี้:
- ตามที่ระบุไว้ข้างต้นคู่มือนี้ถูกสร้างขึ้นและทดสอบบน บัฟฟาโล WZR-HP-AG300H ด้วยเฟิร์มแวร์“ Pro” ของ Buffalo เวอร์ชัน 17135 ควรใช้งานได้กับเราเตอร์ที่ใช้ Atheros (ar71xx) กับ DD-WRT เวอร์ชันใดก็ได้ที่มีการแก้ไขเดียวกันหรือสูงกว่า แต่ระยะทางของคุณอาจสูงมาก
- คุณจะต้องเปิดใช้งาน SSH บนเราเตอร์รวมถึงติดตั้งและใช้งาน WinSCP เพื่อเชื่อมต่อกับมัน สิ่งนี้ได้อธิบายไว้ใน“ วิธีลบโฆษณาด้วย Pixelserv บน DD-WRT ” คำแนะนำ ในความเป็นจริงจะถือว่าคุณสามารถทำทุกอย่างที่อธิบายไว้ในคู่มือนั้น
- คุณต้องสามารถเชื่อมต่อกับเราเตอร์โดยใช้เทอร์มินัลได้ (แนะนำให้ใช้ SSH) คำแนะนำบางประการเกี่ยวกับวิธีการทำสิ่งนี้อยู่ที่ไฟล์ DD-WRT wiki .
- พื้นที่สำหรับ JFFS และพื้นที่จัดรูปแบบโพสต์ประมาณ 4MB สำหรับการตั้งค่าพื้นฐาน พื้นที่ JFFS ไม่ได้เป็นเพียงข้อกำหนดเบื้องต้นเท่านั้น แต่ยังเป็นตัวหยุดการแสดง เนื่องจากหากเราเตอร์ของคุณไม่มีพื้นที่จัดรูปแบบโพสต์อย่างน้อย 4MB ที่กล่าวมาข้างต้นคุณจะไม่ได้รับประโยชน์ที่แท้จริงจากคู่มือนี้และจะดีกว่าเมื่อใช้ " ปลดปล่อยพลังที่มากขึ้นจากเราเตอร์ที่บ้านของคุณ ” คำแนะนำในการติดตั้งแพ็คเกจ Ipkg ลงในเฟิร์มแวร์โดยตรงหรือติดตั้งแพ็คเกจ Ipkg ด้วยตนเอง ปฏิบัติตามคำแนะนำในหัวข้อ“ วิธีลบโฆษณาด้วย Pixelserv บน DD-WRT ” คำแนะนำในการเปิดใช้งาน JFFS และดูว่าคุณมีพื้นที่ว่างเท่าใด หลังจาก มันถูกจัดรูปแบบ
บันทึก: เป็นไปได้ที่จะทำสิ่งนี้โดยมีพื้นที่เพียง 2MB สำหรับการตั้งค่า แต่จากนั้นเราจะสูญเสีย upshot ของ“ / etc” ที่อ่านเขียนได้และจะต้องเรียกใช้ Opkg ในขณะที่ระบุไฟล์กำหนดค่าด้วยตนเองทุกครั้ง…ซึ่งก็เหมือนกับ ง่อยเลย…
มาแคร็กกันเถอะ
ณ จุดนี้คุณควรเปิดใช้งาน JFFS และสามารถ SSH / WinSCP เข้ากับเราเตอร์ได้
- เปิดเซสชันเทอร์มินัลไปยังเราเตอร์
-
สร้างไดเร็กทอรีชั่วคราวที่เราจะใช้งาน:
mkdir / tmp / 1
cd / tmp / 1
ใช้ Ipkg เพื่อติดตั้ง Opkg
ในขณะที่เรากำลังจะเปลี่ยน Ipkg เป็นตัวจัดการแพ็คเกจเราจะใช้มันเพื่อติดตั้งแพ็คเกจการติดตั้ง Opkg ด้วยตนเอง
-
ในการดำเนินการนี้ให้ดาวน์โหลดแพ็คเกจการติดตั้ง Opkg สำหรับสถาปัตยกรรม ar71xx จากไฟล์
ลำตัวโครงการ OpenWRT
:
wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/opkg_618-2_ar71xx.ipk
หมายเหตุ 1: ในขณะที่เขียนนี้ 618 เป็นเวอร์ชันล่าสุดซึ่งอาจมีการเปลี่ยนแปลงในอนาคตดังนั้นโปรดปรับเปลี่ยนตามความเหมาะสม
การออกเสียง: อาจเป็นไปได้ว่าความแตกต่างเพียงอย่างเดียวในการรับคู่มือนี้เพื่อใช้งานกับสถาปัตยกรรมอื่น ๆ คือการติดตั้ง Opkg จากสถาปัตยกรรมที่เกี่ยวข้องสำหรับเราเตอร์ของคุณ ... อย่างไรก็ตามสิ่งนี้ยังไม่ผ่านการทดสอบโดยคุณอย่างแท้จริง -
เรียกใช้ Ipkg เพื่อติดตั้ง Opkg ด้วยตนเองโดยใช้:
ipkg ติดตั้ง opkg_618-2_ar71xx.ipk
บันทึก: หากต้องการเช่นกันให้ติดตั้งทุกแพ็คเกจในที่เก็บด้วยตนเองด้วยวิธีนี้ อย่างไรก็ตามนี่หมายความว่าคุณจะต้องแก้ไขการพึ่งพาด้วยตัวคุณเอง ... แล้วอะไรจะสนุกล่ะ?
การรับไฟล์ไลบรารีไดนามิก (“ lib” s)
ไฟล์“ lib” ที่จำเป็นเพื่อให้ Opkg ทำงานเป็นส่วนหนึ่งของการแจกจ่าย OpenWRT เพื่อให้ได้มานั้นเราต้องดึงข้อมูลจาก“ Root FileSystem” ของการแจกจ่ายดังกล่าว
-
ในการดำเนินการนี้ให้ดาวน์โหลด“ Root FileSystem” พื้นฐานล่าสุดสำหรับการแจกจ่าย openWRT ซึ่งมี“ libs ที่ต้องการจาก
ลำตัวโครงการ OpenWRT
:
wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-rootfs.tar.gz
-
แยกโดยใช้:
tar xvzf openwrt-ar71xx-generic-rootfs.tar.gz
-
คัดลอกไฟล์ "libs" จาก "rootfs" ที่เราได้แยกไว้ด้านบนไปยังไดเร็กทอรี "libs" บน JFFS ของเราในขณะที่ยังคงรักษาคุณลักษณะและลิงก์สัญลักษณ์ไว้:
cp -Pp / tmp / 1 / lib / * / jffs / usr / lib /
บันทึก: คุณจะได้รับข้อความแจ้งว่ามีการละเว้นไดเรกทอรีย่อย เนื่องจากเราไม่ต้องการอะไรนอกจากไฟล์ "lib" จึงเป็นเรื่องปกติและคุณสามารถเพิกเฉยต่อข้อความเหล่านี้ได้อย่างปลอดภัย
แก้ไข LD_LIBRARY_PATH”
เราต้องบอกเราเตอร์ว่าจะค้นหาไลบรารีที่ใช้ร่วมกัน (libs) ที่เราเพิ่ง "ติดตั้ง" ไว้ที่ไหนและจำเป็นต้องทำ
ก่อน
ที่มาพร้อมกับเฟิร์มแวร์
-
หากต้องการตั้งค่าตัวแปรสภาพแวดล้อม LD_LIBRARY ด้วยตนเอง (สำหรับตอนนี้) เพื่อให้ตำแหน่งที่เราคัดลอกไฟล์ lib ใหม่จะเป็นตำแหน่งแรกใน“ PATH”:
ส่งออก LD_LIBRARY_PATH = / jffs / usr / lib: $ LD_LIBRARY_PATH
อ่าน - เขียนได้“ / etc”
เราจะคัดลอก“ / etc” ไปยัง JFFS แล้วสร้างจุดต่อเชื่อม“ / etc” ปกติชี้ไปที่มัน การทำเช่นนั้นทั้งสองจะเปิดโลกแห่งความเป็นไปได้เพราะ“ / etc” จะอ่าน - เขียนได้ (ซึ่งโดยส่วนตัวแล้วฉันรอคอยให้หรือใช้เวลา 7 ปีแล้ว) และเปิดใช้งานแพ็กเกจที่คาดว่าพฤติกรรมนี้จะทำงานได้อย่างถูกต้อง
-
สร้างไดเร็กทอรีที่จะเก็บ“ / etc”:
mkdir -p / jffs / geek / ฯลฯ
-
คัดลอกซ้ำทั้งหมดของ“ / etc” ในขณะที่รักษาไดเร็กทอรีย่อยคุณลักษณะของไฟล์และลิงก์สัญลักษณ์ทั้งหมด
cp -a / etc / * / jffs / geek / etc /
-
ด้วยตนเอง (สำหรับตอนนี้) "ผูกเมาท์" ไดเร็กทอรี“ / etc” ไปยัง JFFS one
เมานต์ -o ผูก / jffs / geek / etc / / etc /
ตั้งค่าไดเรกทอรี Optware (“ / opt”)
Opkg จาก OpenWRT คาดว่าจะใช้เมื่อสร้างเฟิร์มแวร์ของเราเตอร์ ในขณะนั้น FileSystem ยังไม่ได้อยู่บนเราเตอร์ดังนั้นจึงยังคงมีการเปลี่ยนแปลงจึงไม่มีปัญหาในการติดตั้งไปยังตำแหน่งใด ๆ บน FileSystem นั่นคือเหตุผลที่ไฟล์คอนฟิกูเรชัน Opkg ชี้แพ็กเกจเพื่อติดตั้งไปยัง“ root” (/) ของ FileSystem อย่างไรก็ตามเรากำลังใช้ Opkg
หลังจาก
เฟิร์มแวร์ถูกสร้างและติดตั้งบนเราเตอร์และเนื่องจากเราไม่สามารถเปลี่ยนรูทของระบบไฟล์ให้เป็นแบบอ่าน - เขียนได้เราจะชี้การติดตั้งทั้งหมดที่จะติดตั้งภายใต้“ / opt” อย่างไรก็ตามในปัจจุบัน“ / opt” ยังชี้ไปที่ตำแหน่งแบบอ่านอย่างเดียวบนเฟิร์มแวร์ของเราเตอร์ เพื่อเอาชนะสิ่งนี้เราจะทำให้“ / opt” ชี้ไปที่ JFFS ซึ่งอ่าน - เขียนได้
-
ในการดำเนินการนี้ให้สร้างไดเร็กทอรีที่จะมีแพ็คเกจ Optware:
mkdir -p / jffs / opt
-
ด้วยตนเอง (สำหรับตอนนี้) "ผูกเมานต์" ไดเร็กทอรี“ / opt” ไปยัง JFFS one:
เมานต์ -o ผูก / jffs / opt / / opt /
หมายเหตุ: แม้ว่าจะอยู่นอกเหนือขอบเขตของคู่มือนี้ ผู้ใช้ขั้นสูงอาจต้องการเปลี่ยนจุดต่อเชื่อมนี้ให้ชี้ไปที่ HD
การปรับไฟล์การกำหนดค่า Opkg
เราต้องการให้ไฟล์การกำหนดค่า Opkg เป็นที่ที่ Opkg ค้นหาตามค่าเริ่มต้น (ซึ่งก็คือ“ / etc”) และปรับให้ติดตั้งเป็น“ / opt”
-
ในการดำเนินการนี้ให้ย้ายไฟล์คอนฟิกูเรชัน opkg ที่ติดตั้งโดยแพ็กเกจ Opkg ไปยังตำแหน่ง“ / etc” ที่อ่านได้:
mv /jffs/etc/opkg.conf / etc /
-
เปลี่ยนปลายทางสำหรับการติดตั้ง Optware เป็น“ / opt” แทน“ root” (/)
ในการดำเนินการนี้โดยใช้โปรแกรมแก้ไข“ vi” หรือ WinSCP ไปที่“ / etc /” และสร้างเนื้อหาของไฟล์“ opkg.conf”: