โฮมเพจ » ทำอย่างไร » วิธีการติดตั้งซอฟต์แวร์เพิ่มเติมบนเราเตอร์ที่บ้านของคุณ (DD-WRT)

    วิธีการติดตั้งซอฟต์แวร์เพิ่มเติมบนเราเตอร์ที่บ้านของคุณ (DD-WRT)

    คุณเคยต้องการที่จะมีฟังก์ชั่นเพิ่มเติมเช่นอีเมล, Bit-torrent หรือแม้แต่ MySQL โดยตรงบนเราเตอร์ของคุณหรือไม่? บางทีตอนนี้คุณสามารถทำได้ Geek วิธีการดำลงในวิธีการติดตั้งซอฟต์แวร์ Opkg บน DD-WRT.

    ภาพโดย Jean Spector และ Aviad Raviv

    หากคุณยังไม่ได้ตรวจสอบและตรวจสอบบทความก่อนหน้าในซีรีส์:

    • เปลี่ยนเราท์เตอร์ภายในบ้านของคุณให้เป็นเราเตอร์ที่ทรงพลังด้วย DD-WRT
    • วิธีลบโฆษณาด้วย Pixelserv บน DD-WRT

    สมมติว่าคุณคุ้นเคยกับหัวข้อเหล่านั้นอ่านต่อไป โปรดทราบว่าคู่มือนี้เป็นเทคนิคเล็กน้อยและผู้เริ่มต้นควรระวังเมื่อทำการปรับเปลี่ยนเราเตอร์.

    ความยากลำบาก

    ฉันเพิ่งซื้อ Buffalo WZR-HP-AG300H ใหม่ซึ่งมาพร้อมกับ DD-WRT รุ่นใหม่ เนื่องจากเราเตอร์นี้มีพอร์ต USB ฉันจึงเชื่อมต่อ HD ทันทีและพยายามใช้คำแนะนำ wiki“ Optware, The Right Way” น่าเสียดายที่ฉันพบว่าเราเตอร์ที่ฉันได้รับเป็นไปตาม Atheros และสคริปต์จากหน้า wiki นั้นไม่สนับสนุน ดังนั้นฉันจึงเริ่มขุด (เหมือนที่เคยทำ) และเจอหลายแนวทาง (1, 2, 3 และ 4) ที่มีวัตถุประสงค์เพื่ออธิบายวิธีการทำงานของ Opkg ด้วยตนเอง ในขณะที่การมีส่วนร่วมของพวกเขา (ท่ามกลางแหล่งข้อมูลอื่น ๆ บนเว็บ) ในคู่มือนี้มีค่าสูง แต่คำแนะนำบางอย่างคือ (IMHO) เพียงไม่ได้ส่งต่อตรงไปตรงมามากพอ ตัวอย่างเช่นให้ไฟล์ "lib" แก่คุณ แต่อย่าสอนวิธีตกปลาจากแหล่งที่มา ต้องใช้ประโยชน์จากฟอร์แมต Linux ในฟอร์แมต HD หรืออย่างน้อยหนึ่งพาร์ติชั่น (ซึ่งจริงๆแล้วไม่สามารถใช้กับเฟิร์มแวร์ที่ฉันทดสอบด้วย) นั่นคือเหตุผลที่ฉันรู้สึกว่าจำเป็นต้องสร้างขั้นตอนด้านล่างที่กระชับง่ายต่อการติดตามและทำซ้ำเพื่อให้ผู้จัดการแพ็คเกจ OpenWRT Opkg ทำงานกับเราเตอร์ดังกล่าว.

    อัปเดต: ความสามารถในการติดตั้งพาร์ติชั่นได้รับการแนะนำให้รู้จักกับเวอร์ชั่นใหม่ของแบรนด์ในรุ่น 17798 alpha build.

    Opkg คืออะไร?

    Opkg เป็นผู้จัดการบรรจุภัณฑ์เช่น apt / aptitude และ yum มันทำหน้าที่แทนตัวจัดการแพคเกจ Ipkg และสามารถใช้ในการติดตั้งซอฟต์แวร์เช่น: Transmission BitTorrent daemon, ผู้ส่งอีเมล ssmtp และ Knockd a daemon ที่ดำเนินการสคริปต์หลังจากพอร์ตที่ระบุเพื่อทริกเกอร์ชื่อไม่กี่ จากไซต์ OpenWRT:

    ยูทิลิตี opkg (ตัวแยก ipkg) เป็นตัวจัดการแพ็กเกจแบบเบาที่ใช้เพื่อดาวน์โหลดและติดตั้งแพ็กเกจ OpenWrt จากที่เก็บแพ็กเกจโลคัลหรือที่อยู่บนอินเทอร์เน็ต. opkg พยายามแก้ไขการขึ้นต่อกันกับแพ็กเกจในที่เก็บ - หากล้มเหลวมันจะรายงานข้อผิดพลาดและยกเลิกการติดตั้งแพ็กเกจนั้น.

    ดังนั้นการใช้ Opkg เราสามารถติดตั้งสิ่งต่าง ๆ เช่นที่เราเคยทำกับ Ipkg ในคู่มือ“ ปลดปล่อยพลังยิ่งขึ้นจากเราเตอร์ที่บ้านของคุณ” ความแตกต่างที่สำคัญคือ:

    1. เพื่อให้ตัวอย่างของ SSMTP และ Knockd ของคุณอย่างแท้จริงต้องเข้าใจการพึ่งพาตนเอง ขั้นตอนในการดำเนินการด้วยตนเองนั้นน่ารำคาญและไม่ตรงไปตรงมา Opkg ทำสิ่งนี้โดยอัตโนมัติ.
    2. คราวนี้เราจะเป็น เพิ่ม ซอฟต์แวร์ด้านบนของเฟิร์มแวร์ที่มีอยู่แล้วแทนที่จะเปลี่ยน ในขณะที่แทนที่มันเป็นแบบฝึกหัดที่ยอดเยี่ยมมันไม่ต้องสงสัยเลยว่า: อันตรายมีแนวโน้มที่จะเกิดปัญหากลับไม่ได้และแย่ที่สุดของเราเตอร์ทั้งหมดโดยเฉพาะ ไม่จำเป็นต้องพูดว่านี่เป็นวิธีที่ง่ายและปลอดภัยยิ่งขึ้น.

    ข้อกำหนดเบื้องต้น

    ในการที่จะทำคู่มือนี้ให้สมบูรณ์โปรดทราบสิ่งต่อไปนี้

    1. ตามที่ระบุไว้ข้างต้นคู่มือนี้ถูกสร้างและทดสอบใน Buffalo WZR-HP-AG300H พร้อมกับเฟิร์มแวร์“ Pro” ของ Buffalo รุ่น 17135 ควรทำงานกับเราเตอร์ที่ใช้ Atheros (ar71xx) กับ DD-WRT รุ่นใดก็ได้ที่มีการแก้ไขเดียวกันหรือสูงกว่า แต่ระยะทางของคุณอาจมาก.
    2. คุณจะต้องเปิดใช้งาน SSH บนเราเตอร์รวมถึงติดตั้งและใช้ WinSCP เพื่อเชื่อมต่อกับมัน สิ่งนี้ได้อธิบายไว้ในคู่มือ“ วิธีลบโฆษณาด้วย Pixelserv บน DD-WRT” ในความเป็นจริงมันจะสันนิษฐานว่าคุณสามารถทำทุกอย่างที่อธิบายไว้ในคู่มือนั้น.
    3. คุณต้องสามารถเชื่อมต่อกับเราเตอร์โดยใช้เทอร์มินัล (แนะนำให้ใช้ SSH) พอยน์เตอร์บางตัวเกี่ยวกับวิธีการทำเช่นนี้อยู่ในวิกิ DD-WRT.
    4. พื้นที่สำหรับ JFFS และพื้นที่จัดรูปแบบการโพสต์ประมาณ 4MB สำหรับการตั้งค่าฐาน พื้นที่ JFFS ไม่เพียง แต่เป็นข้อกำหนดเบื้องต้นเท่านั้น แต่ยังเป็น show stopper นี่เป็นเพราะหากเราเตอร์ของคุณไม่มีพื้นที่จัดรูปแบบโพสต์อย่างน้อย 4MB ที่กล่าวถึงข้างต้นคุณจะไม่ได้รับประโยชน์ใด ๆ จากคู่มือนี้และจะดีกว่าเมื่อใช้“ Unleash ยิ่งกว่าพลังจากเราเตอร์ที่บ้านของคุณ” คำแนะนำในการติดตั้งแพคเกจ Ipkg ลงในเฟิร์มแวร์โดยตรงหรือติดตั้งแพ็กเกจ Ipkg ด้วยตนเอง ทำตามคำแนะนำในคู่มือ“ วิธีลบโฆษณาด้วย Pixelserv บน DD-WRT” เพื่อเปิดใช้งาน JFFS และดูว่าคุณมีพื้นที่ว่างมากแค่ไหน หลังจาก มันถูกจัดรูปแบบ.

    บันทึก: เป็นไปได้ที่จะทำเช่นนี้ด้วยพื้นที่เพียง 2MB สำหรับการตั้งค่า แต่จากนั้นเราก็จะสูญเสียผลการอ่านและเขียนได้และจะต้องเรียกใช้ Opkg ในขณะที่ระบุไฟล์การตั้งค่าด้วยตนเองทุกครั้ง ง่อย ...  

    ช่วยให้ได้รับการแตกร้าว

    ณ จุดนี้คุณควรเปิดใช้งาน JFFS และสามารถ SSH / WinSCP เข้าสู่เราเตอร์.

    1. เปิดเทอร์มินัลเซสชันไปยังเราเตอร์.
    2. สร้างไดเรกทอรีชั่วคราวที่เราจะทำงานใน:

      mkdir / tmp / 1
      cd / tmp / 1

    ใช้ Ipkg เพื่อติดตั้ง Opkg
    ในขณะที่เรากำลังจะเปลี่ยน Ipkg เป็นผู้จัดการแพ็คเกจเราจะใช้มันเพื่อติดตั้งแพ็คเกจติดตั้ง Opkg ด้วยตนเอง.

    1. เมื่อต้องการทำสิ่งนี้ให้ดาวน์โหลดแพ็คเกจการติดตั้ง Opkg สำหรับสถาปัตยกรรม ar71xx จาก trunk ของโครงการ OpenWRT:

      wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/opkg_618-2_ar71xx.ipk

      หมายเหตุ 1: ในขณะที่เขียนนี้ 618 เป็นรุ่นล่าสุดซึ่งอาจมีการเปลี่ยนแปลงในอนาคตดังนั้นควรปรับเปลี่ยนให้เหมาะสม.
      โน้ต 2: อาจเป็นไปได้ที่ความแตกต่างเพียงอย่างเดียวในการทำให้คู่มือนี้ทำงานให้กับสถาปัตยกรรมอื่น ๆ คือการได้รับตัวติดตั้ง Opkg จากสถาปัตยกรรมที่ใช้งานได้สำหรับเราเตอร์ของคุณ ....

    2. เรียกใช้ Ipkg เพื่อติดตั้ง Opkg ด้วยตนเองโดยใช้:

      ipkg ติดตั้ง opkg_618-2_ar71xx.ipk

      บันทึก: คุณสามารถติดตั้งทุกแพ็คเกจในที่เก็บด้วยตนเองด้วยวิธีนี้หากคุณต้องการ อย่างไรก็ตามนี่จะหมายความว่าคุณจะต้องแก้ไขการพึ่งพาตัวเอง ... และสิ่งที่สนุกในนั้น?

    การรับไฟล์ไลบรารีแบบไดนามิก (“ lib”)
    ไฟล์“ lib” ที่จำเป็นสำหรับการทำงานของ Opkg เป็นส่วนหนึ่งของการกระจาย OpenWRT เพื่อให้ได้มาหนึ่งจะต้องแยกพวกเขาจาก "รูท FileSystem" ของการกระจายดังกล่าว.

    1. ในการทำสิ่งนี้ให้ดาวน์โหลด "Root FileSystem" พื้นฐานล่าสุดสำหรับการเผยแพร่ openWRT ซึ่งมี "lib" ที่ต้องการจากลำต้นของโครงการ OpenWRT:

      wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-rootfs.tar.gz

    2. แยกโดยใช้:

      tar xvzf openwrt-ar71xx-generic-rootfs.tar.gz

    3. คัดลอกไฟล์“ libs” จาก“ rootfs” ที่เราแยกไว้ด้านบนไปยังไดเรกทอรี“ libs” ใน JFFS ของเราในขณะที่รักษาคุณสมบัติและลิงก์สัญลักษณ์:

      cp -Pp / tmp / 1 / lib / * / jffs / usr / lib /

      บันทึก: คุณจะได้รับข้อความแจ้งว่ามีการละเว้นไดเรกทอรีย่อย เนื่องจากเราไม่ต้องการอะไรนอกจากไฟล์“ lib” นี่เป็นเรื่องปกติและคุณสามารถเพิกเฉยต่อข้อความเหล่านี้ได้อย่างปลอดภัย.

    แก้ไข LD_LIBRARY“ เส้นทาง”
    เราต้องบอกเราเตอร์ว่าจะค้นหาไลบรารี่ที่แชร์ได้อย่างไร (libs) ที่เราเพิ่ง“ ติดตั้ง” แล้วและมันต้องทำสิ่งนี้ ก่อน สิ่งที่มาพร้อมกับเฟิร์มแวร์.

    1. หากต้องการตั้งค่าตัวแปรสภาพแวดล้อม LD_LIBRARY ด้วยตนเอง (ตอนนี้) เพื่อกำหนดตำแหน่งที่เราคัดลอกไฟล์ lib ใหม่จะเป็นอันแรกใน“ PATH”:

      ส่งออก LD_LIBRARY_PATH = / jffs / usr / lib: $ LD_LIBRARY_PATH

    อ่านได้“ / ฯลฯ ”
    เรากำลังจะคัดลอก“ / etc” ไปยัง JFFS และจากนั้นทำจุดเชื่อมต่อ“ / etc” เป็นประจำชี้ไปที่มัน การทำเช่นนั้นจะเปิดโลกแห่งความเป็นไปได้เพราะ“ / ฯลฯ ” จะกลายเป็นอ่านเขียนได้ (ซึ่งโดยส่วนตัวแล้วฉันรอคอยหรือให้เวลา 7 ปีแล้ว) และเปิดใช้งานแพ็คเกจที่คาดว่าพฤติกรรมนี้ทำงานได้อย่างถูกต้อง.

    1. สร้างไดเรกทอรีที่จะเก็บ“ / ฯลฯ ”:

      mkdir -p / jffs / geek / etc

    2. คัดลอกทั้งหมดของ“ / etc” ซ้ำ ๆ ในขณะที่ยังคงรักษาไดเรกทอรีย่อยทั้งหมดแอตทริบิวต์ของไฟล์และลิงก์สัญลักษณ์.

      cp -a / etc / * / jffs / geek / etc /

    3. ด้วยตนเอง (ตอนนี้)“ ผูกติด” ไดเรกทอรี“ / ฯลฯ ” เพื่อ JFFS หนึ่ง:

      เมา -o ผูก / jffs / geek / etc / / etc /

    ตั้งค่าไดเรกทอรี Optware (“ / opt”)
    Opkg จาก OpenWRT คาดว่าจะใช้เมื่อสร้างเฟิร์มแวร์ของเราเตอร์ เมื่อถึงเวลาดังกล่าว FileSystem ยังไม่ได้อยู่บนเราเตอร์และยังคงมีการเปลี่ยนแปลงดังนั้นจึงไม่มีปัญหาในการติดตั้งไปยังตำแหน่งใด ๆ บน FileSystem นั่นคือสาเหตุที่ไฟล์กำหนดค่า Opkg ชี้แพคเกจเพื่อติดตั้งไปยัง“ root” (/) ของ FileSystem อย่างไรก็ตามเรากำลังใช้ Opkg หลังจาก เฟิร์มแวร์ถูกสร้างและติดตั้งบนเราเตอร์และเนื่องจากเราไม่สามารถเปลี่ยนรากของระบบไฟล์ที่สามารถอ่านได้เราจะชี้การติดตั้งทั้งหมดที่จะติดตั้งภายใต้“ / opt” อย่างไรก็ตามในปัจจุบัน“ / opt” ยังชี้ไปยังตำแหน่งอ่านอย่างเดียวบนเฟิร์มแวร์ของเราเตอร์ เพื่อเอาชนะสิ่งนี้เราจะทำให้“ / opt” ชี้ไปที่ JFFS ซึ่งอ่านได้.

    1. หากต้องการทำสิ่งนี้ให้สร้างไดเรกทอรีที่จะมีแพ็คเกจ Optware:

      mkdir -p / jffs / opt

    2. ด้วยตนเอง (ตอนนี้)“ ผูกติด” ไดเรกทอรี“ / opt” ไปยัง JFFS หนึ่ง:

      เมานต์ -o ผูก / jffs / opt / / opt /

      หมายเหตุ: แม้ว่าจะอยู่นอกเหนือขอบเขตของคู่มือนี้, ผู้ใช้ขั้นสูงอาจต้องการเปลี่ยนจุดเมานท์นี้เพื่อชี้ไปที่ HD.

    การปรับไฟล์กำหนดค่า Opkg
    เราต้องการให้ไฟล์กำหนดค่า Opkg เป็นที่ที่ Opkg ค้นหาโดยค่าเริ่มต้น (ซึ่งคือ“ / ฯลฯ ”) และปรับให้ติดตั้งเป็น“ / opt”.

    1. หากต้องการทำสิ่งนี้ให้ย้ายไฟล์กำหนดค่า opkg ที่ติดตั้งโดยแพ็คเกจ Opkg ไปยังตำแหน่ง“ / etc” ที่อ่านได้:

      mv /jffs/etc/opkg.conf / etc /

    2. เปลี่ยนปลายทางสำหรับการติดตั้ง Optware เป็น“ / opt” แทน“ root” (/).
      หากต้องการทำสิ่งนี้ด้วยเครื่องมือ“ vi” หรือ WinSCP นำทางไปยัง“ / etc /” และสร้างเนื้อหาของไฟล์“ opkg.conf”:

      vi /etc/opkg.conf

      ทำให้ดูเหมือน:

      src / gz snapshots http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages
      dest root / opt
      dest ram / tmp
      lists_dir ext / var / opkg-list
      ตัวเลือก overlay_root / ซ้อนทับ

      บันทึก: คุณสามารถเปลี่ยนคำสั่ง“ lists_dir” เพื่อชี้ไปยังตำแหน่งที่ไม่ได้อยู่ใน RAM แต่เปลี่ยนเป็น JFFS แม้ว่าสิ่งนี้จะช่วยให้คุณไม่สามารถอัปเดตรายการได้ก่อนที่คุณจะสามารถติดตั้งซอฟต์แวร์เพิ่มเติมได้ (หากเราเตอร์ของคุณถูกรีบูทจากครั้งล่าสุด) คุณจะสูญเสียพื้นที่ JFFS ที่หายากประมาณ 1.5MB และคุณจะทบต้น.

    สวัสดีที่รัก
    คุณควรเห็นว่า Opkg ใช้งานได้โดยออกคำสั่ง update และแสดงรายการคำสั่ง.

    1. หากทุกอย่างเป็นไปด้วยดีคุณจะเห็นว่ารายการ Opkg ได้รับการอัปเดตโดยไม่มีข้อผิดพลาดและคุณพร้อมที่จะใช้สคริปต์ในขั้นตอนถัดไป:

      อัพเดต opkg; รายการ opkg

    2. ใช้เวลาในการเริ่มสำรวจแพ็คเกจที่มีในที่เก็บ ... .

    สคริปต์เริ่มต้น
    ตอนนี้เราต้องทำให้เสร็จสิ้นดังนั้นการติดตั้งและเส้นทางที่จำเป็นทั้งหมดจะเกิดขึ้นโดยอัตโนมัติเมื่อเราเตอร์บู๊ต ด้วยเหตุนี้เราจึงสร้างสคริปต์ geek-init เริ่มต้นให้คุณ.

    1. ดาวน์โหลดจากนั้นแตกไฟล์และวางไว้ใต้“ / jffs / geek / etc /” (ลองทำสิ่งนี้กับ WinSCP).
    2. ทำสคริปต์ให้ทำงานได้โดยไปที่คุณสมบัติด้วย WinSCP หรือเรียกใช้งาน:

      chmod + x /jffs/geek/etc/geek-init.sh

    3. ทำให้สคริปต์ทำงานเมื่อเริ่มต้นเราเตอร์โดยใช้ WebGUI ภายใต้การดูแลระบบ -> คำสั่งในกล่องข้อความให้ใส่:

      /jffs/geek/etc/geek-init.sh web-gui

      และคลิก“ บันทึกการเริ่มต้น”.

    เตะยาง
    หากทุกอย่างเป็นไปด้วยดีตอนนี้คุณควรจะสามารถรีบูตเราเตอร์และยังคงใช้ตัวจัดการแพคเกจ Opkg นั่นคือการอัปเดตแสดงรายการและติดตั้งแอปพลิเคชัน.
    ให้ทดสอบว่าทุกอย่างทำงานได้โดยติดตั้งคำสั่ง "netstat" ซึ่งด้วยเหตุผลบางอย่างถูกละเว้นจากการสร้างของ DD-WRT เมื่อเร็ว ๆ นี้ ก่อนที่เราจะทำสิ่งนี้ให้รันคำสั่ง netstat ในเทอร์มินัลแล้วคุณจะเห็นว่าคุณมีข้อผิดพลาดจากเชลล์โดยพูดว่า“ -sh: netstat: not found”.

    1. ขั้นตอนแรกของคุณคือเพื่ออัปเดตรายการ Opkg เหมือนกับมีรายชื่อแพ็คเกจล่าสุดจากที่เก็บ:

      การปรับปรุง opkg

    2. หากคุณไม่ทราบว่าแพ็คเกจใดมีคำสั่ง“ netstat” คุณสามารถกรองผลลัพธ์โดยใช้.

      รายการ opkg | grep netstat

    3. และตอนนี้ติดตั้ง“ netstat” โดยใช้:

      opkg ติดตั้ง net-tools-netstat

      และตอนนี้เมื่อคุณรันคำสั่ง netstat อีกครั้งมันใช้งานได้…เรียบร้อยแล้ว? :)

    จนกว่าบทความในอนาคตที่เราจะติดตั้งและกำหนดค่าแพคเกจซอฟต์แวร์โดยใช้วิธีนี้คุณอาจมีความสนุกสนานมากมายที่จะสำรวจซอฟต์แวร์จำนวนมากที่ตอนนี้อยู่ที่ปลายนิ้วของคุณ.


    หากเครื่องดังกล่าวเป็นสิ่งที่เป็นไปไม่ได้เสมือนมันจะต้องมีเหตุผลที่ไม่น่าเป็นไปได้ จำกัด ดังนั้นสิ่งที่ฉันต้องทำเพื่อที่จะทำให้มันเป็นไปได้อย่างไม่น่าเชื่อว่ามันเป็นไปไม่ได้ที่จะกินอาหารนั้นเป็นเครื่องกำเนิดไฟฟ้าที่ไม่น่าจะเป็นไปได้ จำกัด ให้ชาร้อนๆร้อนๆและเปิดมัน………สิ่งหนึ่งที่พวกเขา ไม่ชอบจริงๆคือ“ Smart-Ass”.