สารบัญ:

NLDWRTG the ULTIMATE WRT54G Expansion Board: 8 ขั้นตอน (พร้อมรูปภาพ)
NLDWRTG the ULTIMATE WRT54G Expansion Board: 8 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: NLDWRTG the ULTIMATE WRT54G Expansion Board: 8 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: NLDWRTG the ULTIMATE WRT54G Expansion Board: 8 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: HHICC Tutorial - Setup WRT54G Router Part 1 2024, กรกฎาคม
Anonim
NLDWRTG บอร์ดขยาย ULTIMATE WRT54G
NLDWRTG บอร์ดขยาย ULTIMATE WRT54G
NLDWRTG บอร์ดขยาย ULTIMATE WRT54G
NLDWRTG บอร์ดขยาย ULTIMATE WRT54G

ฉันกำลังดัดแปลงเราเตอร์ WRT54G ตั้งแต่ปี 2549 แต่ไม่มีเวลาออกแบบบอร์ดเฉพาะสำหรับมันจนถึงปีที่แล้ว ฮาร์ดแวร์นี้ยังคงเป็นหนึ่งในเราเตอร์ไร้สายที่แฮ็กได้มากที่สุดในขณะที่เขียนและสมควรที่จะมีชีวิตอยู่

ขั้นตอนที่ 1: ภาพรวมโดยย่อของ Linksys WRT54G Series

ภาพรวมโดยย่อของ Linksys WRT54G Series
ภาพรวมโดยย่อของ Linksys WRT54G Series

th.wikipedia.org/wiki/Linksys_WRT54G_serie…

มีเวอร์ชันต่างๆ มากมายในท้องตลาด ลองมาดูกันว่าสามารถแก้ไขได้:

-WRT54G 2.0/2.1/2.2 -> แม้ว่า mods ทั้งหมดจะเป็นไปได้ที่เมนบอร์ดเก่าขนาดใหญ่จะใช้พื้นที่ทั้งหมดในกรณี หากคุณแก้ไขซีรีส์นี้ คุณต้องย้ายวงจรของคุณออกนอกกล่องหรือสร้างเคสใหม่ทั้งหมด (srsly ไม่คุ้มกับความพยายาม)

-WRT54G 4.0 เปลี่ยนเป็น SoC ใหม่ -> นี่เป็นบอร์ดแรกที่เปิดตัวมาเธอร์บอร์ดรูปตัว L นี่เป็นรุ่นแรกที่คุณสามารถใช้ประโยชน์จากโล่ของฉันและใส่เข้าไปในเคส

-WRT54GL 1.0/1.1 -> Linksys เปิดตัว WRT54GL (เราเตอร์ที่ขายดีที่สุดตลอดกาล) ในปี 2548 เพื่อรองรับเฟิร์มแวร์ของบริษัทอื่นบน Linux หลังจากที่สาย WRT54G เดิมเปลี่ยนจาก Linux เป็น VxWorks โดยเริ่มจากเวอร์ชัน 5 ในทางเทคนิคแล้ว WRT54GL เป็นรุ่น 4 WRT54G ที่ออกใหม่ โมเดลนี้เป็น KING ของ WRTGs มีเราเตอร์มือสองมากมายในท้องตลาด ดังนั้นหากคุณมีทางเลือกในการซื้อประเภทใด ให้ซื้อ WRT54GL เสมอ

-WRT54G 5.0 และสูงกว่า -> ใช้ VxWorks OS และลดหน่วยความจำแฟลช เข้ากันไม่ได้กับเฟิร์มแวร์ของบริษัทอื่นส่วนใหญ่ แม้ว่ายูทิลิตี้ "VxWorks killer" จะอนุญาตให้โหลดเฟิร์มแวร์โอเพนซอร์สของบริษัทอื่นบางรุ่นในเวอร์ชันนี้และเวอร์ชันต่อๆ ไป ลิงค์ซิสทำผลงานแย่ที่นี่และทำลายผลิตภัณฑ์ที่ดีโดยสิ้นเชิง แม้ว่าจะสามารถปรับเปลี่ยนสิ่งเหล่านี้ได้ แต่พื้นที่บนเราเตอร์มีขนาดเล็กมาก (2MB) จึงสามารถใส่ได้เฉพาะเฟิร์มแวร์ไมโคร DD-WRT ซึ่งแทบจะทำอะไรไม่ได้มากไปกว่าฟังก์ชันการกำหนดเส้นทางปกติ (ไม่มี VPN, ไม่มี smbfs/cifs, ไม่มี NFS, ไม่มี mmc, ไม่มี ext2) ฉันสามารถสร้างเมล็ดสำหรับซีรีย์นี้และบีบโมดูลที่ต้องการ 1-1 โดยเสียค่าใช้จ่ายในการนำส่วนอื่นออกไป มันไม่คุ้มเวลาและความพยายามของคุณ อย่าซื้อเราเตอร์เหล่านี้

ด้วยซีรีส์ WRT ที่ใหม่กว่า Linksys ได้เปลี่ยนไปใช้สถาปัตยกรรม ARM ตัวอย่างเช่น WRT1200 AC มีซีพียู ARM แบบดูอัลคอร์ 1.3 GHz อย่างไรก็ตาม ฉันมีประสบการณ์ที่ไม่ดีกับเราเตอร์เหล่านี้แม้ว่าจะลองใช้ OpenWRT (ปัจจุบันคือ LEDE) หลายเวอร์ชันแล้วก็ตาม เราเตอร์สามารถหยุดการทำงานแบบสุ่มได้ ฉันคาดหวังเวลาทำงานมากกว่า 300 วันจากอุปกรณ์ยูนิกซ์

ขั้นตอนที่ 2: ขยายฟังก์ชันการทำงาน

ขยายฟังก์ชันการทำงาน
ขยายฟังก์ชันการทำงาน

ตกลงคุณสามารถทำอะไรกับเราเตอร์นี้ได้บ้าง:

1 เพิ่มพอร์ตอนุกรม 2x -> ซึ่งอาจมีประโยชน์หากคุณมีเซิร์ฟเวอร์อื่นบนตำแหน่งระยะไกลและคุณต้องการเชื่อมต่อกับไบออสผ่านสายซีเรียลหรือเราเตอร์อื่น ๆ สวิตช์ที่อนุญาต

2 เพิ่มพอร์ต USB1.0 1 พอร์ต -> สามารถใช้เชื่อมต่อเครื่องพิมพ์ ฮาร์ดไดรฟ์ภายนอก ฯลฯ (ฉันไม่เคยทำ mod นี้ ดังนั้นมันจะไม่เป็นส่วนหนึ่งของการเขียน)

3 เพิ่มการ์ด SD ภายนอกสำหรับจัดเก็บข้อมูล ซึ่งสามารถขยายหน่วยความจำแฟลช 16MB ของเราเตอร์ของคุณเป็น 16/32/…+GB ฉันไม่มีปัญหากับการใช้การ์ด SD ขนาดเหล่านี้ และไม่มีปัญหากับการใช้การ์ด CLASS 10 ที่ทนทานใหม่ล่าสุด หากคุณได้ทดลองกับข้อจำกัดของการ์ดต่อโมเดล WRTG คืออะไร โปรดแสดงความคิดเห็นด้านล่าง

4, เพิ่ม Arduino เพื่อควบคุมบ้านของคุณ, รีเลย์, rcswitches

การเพิ่ม Arduino เป็นการเปิดทางเลือกที่ไม่ จำกัด จำนวน: การควบคุมหุ่นยนต์, การควบคุมอุปกรณ์อินฟราเรดในสายตา (ทีวี, VCR, ดีวีดี, โปรเจ็กเตอร์, เครื่องปรับอากาศ), การเชื่อมต่ออุปกรณ์จำนวนมากกับสวิตช์ไร้สาย 433Mhz ราคาถูก, สื่อสารกับ Arduinos อื่น ๆ, raspis, เพิ่ม Xbee เป็นต้น เป็นต้น

แม้ว่าทั้งหมดนี้สามารถทำได้ด้วย Raspberry PI + Arduino และส่วนขยาย แต่ฉันคิดว่าเราเตอร์ WRT54G มีความน่าเชื่อถือมากกว่า raspis ฉันมีเราเตอร์เหล่านี้ในการกำหนดค่าที่คล้ายกันโดยมีเวลาทำงานมากกว่า 1 ปี (!) ฉันไม่สามารถพูดแบบเดียวกันเกี่ยวกับ raspis ที่เวลาทำงานสูงสุดของฉันอยู่ที่ประมาณ 240 วันใน raspi 1 จากนั้น SDcard จะยอมแพ้ในระบบแม้ว่า C รหัสควบคุม Arduino ถูกโหลดลงในหน่วยความจำ ดังนั้นฉันจึงไม่ต้องรีบเปลี่ยนเนื่องจากโหนดควบคุมยังคงทำงานได้อย่างสมบูรณ์:))

ขั้นตอนที่ 3: รายการฮาร์ดแวร์

รายการฮาร์ดแวร์
รายการฮาร์ดแวร์

ฉันกำลังแนบเค้าโครงบอร์ดทั้งในรูปแบบ SVG และ EasyEda หากคุณต้องการสร้างโครงการ คุณจะต้องมีส่วนประกอบดังต่อไปนี้: 1x LM7805 Voltage regulator

2x หมวกสำหรับ vreg 1uF 10uF (10PCS ตัวเก็บประจุด้วยไฟฟ้า 25V 35V 50V 1uF ~ 1000uF ค่าต่างๆและแรงดันไฟฟ้า)

1x4 pin สายจาก SDcar to the board (10 ชิ้นสายจัมเปอร์ 2/3/4/5/6/7Pin หญิงหญิง Dupont 20 ซม. สำหรับ Arduino)

2x DIP051A7212D รีเลย์กก

1x RS232ชายซ็อกเก็ต(20ชิ้น9ขาD-Sub DB9ชายมุมขวาPCBเชื่อมต่อWT7n)

1x MAX 233 (10 ชิ้น Max233 Max233cpp Rs232 Rs-232 ไดร์เวอร์/เครื่องรับ Ic ใหม่ X)

1x10 พินสายเชื่อมต่อ (5 Pcs 2mm Pitch 2x5 Pin 10 Pin 10 ลวด IDC Flat Ribbon ความยาว 10 ซม.)

1x10 พินซ็อกเก็ต (20 Pcs 2.54 มม. 2x5 Pin 10 พินตรงชาย Shrouded PCB กล่องหัว IDC Connector)

1x ขั้วต่อหัวต่อ (10 ชิ้น 1 * 40 พินตัวเมียแถวเดียว 2.54 มม. หัวต่อที่แตกหักได้ fr Arduino 2017)

การ์ด SD 1x (อาจเป็น SD ขนาดใหญ่เก่าหรือ microsd ใหม่พร้อมตัวแปลง ขนาดต่ำกว่า 32GB ควรใช้งานได้ มากกว่านั้นฉันไม่ได้ทดสอบการ์ด)

1x 3v5v TTL converter (5x Logic Level Converter 3.3V ถึง 5V TTL Bi-Directional สำหรับ Arduino Raspberry pi)

ออปโตคัปเปลอร์ 1x 4n35

1x SD Card โมดูลช่องเสียบซ็อกเก็ต Reader สำหรับ Arduino ARM MCU อ่านและเขียน

1x Arduino Promicro (5 ชิ้น Leonardo Pro Micro ATmega32U4 16MHz 5V แทนที่ ATmega328 Arduino Pro Mini)

1x โมดูล RX และ TX ซื้อเป็นชุดคำสั่งผสม (5 ชิ้น 433 เมกะเฮิร์ตซ์เครื่องส่งสัญญาณ RF และตัวรับสัญญาณสำหรับ Arduino รีโมทคอนโทรลไร้สาย)

ขั้นตอนที่ 4: การออกแบบฮาร์ดแวร์

การออกแบบฮาร์ดแวร์
การออกแบบฮาร์ดแวร์
การออกแบบฮาร์ดแวร์
การออกแบบฮาร์ดแวร์
การออกแบบฮาร์ดแวร์
การออกแบบฮาร์ดแวร์

- ขันสกรูเข้ากับส่วนกระดานด้านล่างพลาสติกสีดำหลัก

-MAX233 ถูกเลือกเหนือ MAX232 ดังนั้นจึงไม่จำเป็นต้องใช้แคปเพิ่มเติมสำหรับตัวแปลงอนุกรม PC->WRTG -ส่วนประกอบทั้งหมดอยู่ในบรรทัดเดียว จึงสามารถตัดสี่เหลี่ยมผืนผ้าธรรมดาที่ด้านหน้าแทนการเจาะรูหลายรู หรือใช้แผ่นปิดที่สวยงาม (หรือเคส WRTG ใหม่ทั้งหมด) สามารถออกแบบด้วย makerbot

- ซ็อกเก็ต micro USB Arduino promicros หันหน้าไปทางแผงด้านหน้าสำหรับการเขียนโปรแกรมภายนอก

- ขึ้นอยู่กับ Arduino Promicro (arduino กำลังป้อนจากอินพุต 12V ของเราเตอร์ WRT54G (ผ่านตัวควบคุมแรงดันไฟฟ้า) แรงดันไฟฟ้าวงจรเปิดของอะแดปเตอร์ประมาณ 16V!)

- Promicro มี usb จริง ไม่ใช่ขยะที่ใช้ร่วมกัน ดังนั้น /dev/tts/1 ของ WRTG สามารถต่อสายไปยังฮาร์ดแวร์ UART ของ Promicro

- การสื่อสารแบบอนุกรมผ่าน /dev/tts/0 ระหว่าง PC WRTG

-RF 433Mhz ตัวรับ + ตัวส่ง (ตัวส่งสัญญาณสามารถใช้ 12V สำหรับช่วงที่สูงขึ้น)

-สามารถเพิ่มตัวส่งและตัวรับ IR ที่แผงด้านหน้าได้

- สามารถเพิ่มไฟ LED ที่แผงด้านหน้าได้ (ระบุ Rx/Tx สำหรับ RF, IR, ตัวบ่งชี้การสื่อสารของเราเตอร์/ardu)

ฉันสามารถออกแบบบอร์ดด้วยตัวแปลงบั๊กขนาดเล็กได้ แต่ใช้วิธีควบคุมแรงดันไฟฟ้าเชิงเส้นเนื่องจากฉันมีสิ่งนั้นอยู่ในมือ ฉันพบ 5V บางจุดของวงจร แต่เมื่อแตะที่มันทำให้เราเตอร์ใช้ไม่ได้ (อาจไม่สามารถให้จำนวนปัจจุบันที่บอร์ด Arduino จำเป็น) ดังนั้นฉันจึงใช้วิธี vreg เพิ่มเติม

ตัวแปลง TTL 3v5v มีไว้เพื่อให้การแปลงแรงดันไฟฟ้าที่เหมาะสม (ฉันใช้รุ่น 5V arduino promicro ซึ่งใช้ 5V บนพอร์ต UART ของฮาร์ดแวร์ ดังนั้นจึงจำเป็นต้องมีการแปลงระดับแรงดันไฟฟ้า) อย่างไรก็ตาม ก่อนหน้านี้ฉันได้ดัดแปลงเราเตอร์โดยเพิ่ม Arduino Nanos, Micros โดยไม่มีตัวแปลงและไม่มีปัญหาเนื่องจากพอร์ต TTY ของ WRTG นั้นทนได้ 5V แต่ไม่ได้หมายความว่าคุณควรใช้งานจากแรงดันไฟฟ้านี้

นอกจากนี้ 4n35 ยังได้รับการแนะนำเพื่อกำจัดเสียงรบกวนที่เกิดจากฝั่ง PC ภายนอก ฉันไม่ได้ใช้ส่วนประกอบนี้ในอดีต แต่อาจเป็นเพราะแล็ปท็อปที่ฉันใช้ในระหว่างการทดสอบมีข้อบกพร่อง

สายต่อ 10 พินจะดูแลการเชื่อมต่อส่วนใหญ่ แต่คุณต้องแน่ใจว่าคุณติดตั้งซ็อกเก็ตอย่างถูกต้อง

ดังแสดงในภาพที่พอร์ตอนุกรม

พิน 1: 3.3V + พิน 2: 3.3V <= พินขวาสุด 2 พิน (ใกล้กับไฟ LED) เป็นบวกที่เชื่อมต่อกับด้านขวาของตัวเชื่อมต่อบนแผงป้องกัน NLDWRTG (ใกล้กับตัวควบคุมแรงดันไฟฟ้า LM7805)

ขา 9: GND + ขา 10: GND <= ฝั่งตรงข้ามเป็นขั้วลบที่เชื่อมต่อกับด้านซ้ายของขั้วต่อบนแผงป้องกัน NLDWRTG

สำหรับการเชื่อมต่อสายไฟระหว่างเครื่องอ่าน SDCARD และ WRTG ให้ทำดังนี้:

www.jbprojects.net/articles/wrt54gl_mods/

หมุดที่เกี่ยวข้อง:

  • CS -> จุด 1
  • MOSI -> จุด 2
  • SCK -> จุด 5
  • มิโซะ -> จุด 7

ขั้นตอนที่ 5: ข้อจำกัด

ข้อจำกัด
ข้อจำกัด

CPU ของ WRT54GL ไม่แรงที่สุด (Broadcom BCM5352 @ 200 MHz) สามารถโอเวอร์คล็อกได้ถึง 250Mhz (ไม่แนะนำ:)) ดังนั้นอย่าคาดหวังที่จะเรียกใช้ SETI@HOME กับมัน เราเตอร์ - เท่านั้น- มีอินเทอร์เฟซ 100mbit/s และไม่เหมือนกับสิ่งที่คุณพบในหลายๆ ที่ที่ฮาร์ดแวร์นี้ *ไม่รองรับ 802.1q VLAN* เป็นเพียง VLAN ที่ใช้พอร์ตอย่างง่าย โปรดอย่าใส่ WRTG ในเครือข่ายที่ขนส่ง VLAN มันไม่สามารถทำได้

แอปพลิเคชั่นที่มีประโยชน์อย่างหนึ่งคือการใช้เราเตอร์เป็นไคลเอนต์ VPN เพื่อเชื่อมต่อกับตำแหน่งศูนย์กลาง แม้ว่ามันจะใช้งานได้อย่างสมบูรณ์แบบสำหรับเซิร์ฟเวอร์ VPN เช่นกัน แต่อย่าคาดหวังกับประสิทธิภาพมากนัก

นี่คือผลลัพธ์บางส่วนของฉันกับ WRT54GL v1.1 โดยใช้ OpenVPN เป็นไคลเอนต์

ทรูพุตอุโมงค์ข้อมูลสูงสุด: 500kbit/s ลดลง 50 kbit/s ขึ้นไป

ประสิทธิภาพการกำหนดเส้นทางสูงสุดโดยไม่มี VPN จาก WAN -> LAN 28 mbit/s

ประสิทธิภาพ NAT (Masquerade) สูงสุดโดยไม่มี VPN จาก WAN -> LAN 27 mbit/s

ยังมีสถานที่จำนวนมากที่มีแบนด์วิดท์โดยรวมต่ำกว่าเหล่านี้ (ISDNs, Adsls, เครือข่ายเคเบิล, ดาวเทียม ฯลฯ) ซึ่งเราเตอร์นี้สามารถตอบสนองได้อย่างสมบูรณ์แบบ

โดยปกติปัญหามาจากการวางไคลเอนต์ไร้สายบนเราเตอร์เหล่านี้มากเกินไป ตลอดหลายปีที่ผ่านมา ฉันเห็นการตั้งค่าต่างๆ ในร้านกาแฟ โรงแรม ร้านอาหารที่พวกเขาทิ้งเราเตอร์ไร้สายหนึ่งตัวไว้บนเคาน์เตอร์และเรียกมันว่าวันต่อวัน โดยคาดหวังว่าจะสามารถให้บริการเซิร์ฟเวอร์มากกว่า 10 คนได้ สิ่งที่พวกเขาได้รับคือประสบการณ์ wifi ที่ใช้งานไม่ได้อย่างสมบูรณ์ในตอนท้าย เนื่องจากแบนด์วิดท์ตามทฤษฎีโดยรวมสำหรับเราเตอร์ 802.11G นี้คือ 51 mbit/s และนั่นสำหรับทุกคน สมมติว่าของจริงอยู่ที่ประมาณ 30mbit/s สำหรับ 10 คนที่ 3mbit/s ต่อผู้ใช้ในกรณีที่ดีที่สุดซึ่งไม่เพียงพอสำหรับแบนด์วิดท์ในปัจจุบันที่หิวโหย (การสตรีมวิดีโอ/เสียง เว็บ 2.0 หน้าที่เต็มไปด้วยภาพขนาดใหญ่ ฯลฯ)

ดังที่ฉันได้กล่าวไว้ก่อนหน้านี้ ประเด็นของการแฮ็กนี้คือการควบคุมระยะไกล และจะไม่ใช้การรับส่งข้อมูลผ่าน VPN มากกว่าสอง kbit/s

ขั้นตอนที่ 6: ซอฟต์แวร์ WRTG

ซอฟต์แวร์ WRTG
ซอฟต์แวร์ WRTG

เฟิร์มแวร์สร้างขึ้นจากเวอร์ชันที่ดีที่สุด: DD-WRT v24-sp2 (08/12/10) std-nokaid (การแก้ไข SVN 14929) มีรูปภาพอื่น ๆ เช่น VPN ที่เสียสละโมดูล ext2 เพื่อประหยัดพื้นที่ในขณะที่ยังมี mmc โมดูลเคอร์เนล (LoL) Optware 2 เป็นแพ็คเกจยูทิลิตี้ที่ถูกยกเลิกแต่ยังคงมีประโยชน์ซึ่งขยายฟังก์ชัน DD-WRT พื้นฐาน:

- มันทำให้ distro linux พื้นฐานจากการติดตั้ง busybox ที่พิการ

- ให้ทุบตีและเชลล์อื่น ๆ

- ให้ goddies มากมายเช่น: htop, netcat, tcpdump, ngrep, mc

- ให้บริการเซิร์ฟเวอร์เช่น: samba, asterisk, vsftpd, jabber server

อย่างไรก็ตาม แพ็คเกจซอฟต์แวร์นั้นเก่า มีข้อบกพร่องและช่องโหว่มากมาย การเผยแพร่และรูปภาพที่นี่จะเหมือนกับการติดตั้ง Window$ 98 ดังนั้นฉันจะไม่เผยแพร่อะไรเลย แต่จะจดวิธีการติดตั้ง OptWare 2 SDCard ของคุณทีละขั้นตอน

ในอนาคต ฉันวางแผนที่จะสร้าง linux distro ใหม่ (SnowGlobe Linux) ด้วยแพ็คเกจใหม่สำหรับอุปกรณ์นี้และเผยแพร่สิ่งนั้น

1 ต้องเปิดใช้งาน JFFS2 ไม่สำคัญว่าจะไม่มีพื้นที่ว่าง:

/dev/mtdblock/4 128K 128K 0 100% /jffs

2, การแบ่ง SDCARD นี่คือเคล็ดลับที่ชาญฉลาด:

14GB หรืออะไรก็ได้ที่เราต้องการสำหรับพาร์ติชั่นข้อมูลแรกสำหรับ ddwrt 100-500mb พาร์ติชั่นที่สอง (EXT2) สำหรับการกู้คืน

ตัวอย่างเช่น:

ดิสก์ /dev/sde: 14.5 GiB, 15523119104 ไบต์, 30318592 เซกเตอร์

หน่วย: เซ็กเตอร์ 1 * 512 = 512 ไบต์ ขนาดเซกเตอร์ (ตรรกะ/กายภาพ): 512 ไบต์ / 512 ไบต์ ขนาด I/O (ขั้นต่ำ/เหมาะสม): 512 ไบต์ / 512 ไบต์ ประเภทดิสก์ป้ายกำกับ: dos ตัวระบุดิสก์: 0x6ad48986 สิ้นสุดการเริ่มต้นอุปกรณ์ กลุ่ม ขนาด รหัส ประเภท /dev/sde1 2048 29362175 29360128 14G 83 Linux /dev/sde2 29362176 30318591 956416 467M 83 Linux

สร้างระบบไฟล์:

mkfs.ext2 -L SnowGlobe-data /dev/sde1

mkfs.ext2 -L SnowGlobe-recovery /dev/sde2

ปรับแต่งระบบไฟล์:

tune2fs -c0 -i0 -m0 /dev/sde1

tune2fs -c0 -i0 -m0 /dev/sde2

เฉพาะพาร์ติชั่นแรกเท่านั้นที่จะติดตั้งอัตโนมัติโดยระบบเมื่อเริ่มต้น! แนวคิดเบื้องหลังพาร์ติชั่นการกู้คืนคือ WRT54G ไม่มีที่ว่างสำหรับเก็บ fdisk ไว้ที่อื่น ดังนั้นหากมีการปิดระบบที่ไม่สะอาดและมีระบบไฟล์ไม่สอดคล้องกัน วิธีเดียวที่จะซ่อมแซมได้ก็คือต้องมีสำเนาของ fdisk (และต้องใช้ libs เพื่อเริ่มต้น) ในพาร์ติชันที่สองซึ่งจะถูกเมาต์เป็นครั้งคราวเพื่ออ่านอย่างเดียวเพื่อรัน fsck ถ้า จำเป็น มิฉะนั้นจะต้องนำการ์ดออกและใส่เข้าไปในพีซีเพื่อซ่อมแซม…

3, การติดตั้ง

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

/dev/mmc/disc0/part1 13.8G 59.6M 13.7G 0% /mmc

Opt จะต้องผูกมัดทันที:

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

4, สคริปต์การติดตั้ง OWRT2

ก่อนที่คุณจะเริ่มตรวจสอบว่า defgw dns ดีทั้งหมดหรือไม่

wget https://www.3iii.dk/linux/optware/optware-install-… -O - | tr -d '\r' > /tmp/optware-install.sh

sh /tmp/optware-install.sh

หากไม่สามารถรับสคริปต์ได้ นั่นเป็นเพราะ busybox wget ล้มเหลว มันจะทำงานกับ wget ของ owrt แต่เดี๋ยวก่อน คุณต้องการติดตั้ง owrt…

ผลลัพธ์ควรมีลักษณะดังนี้:

กำลังตรวจสอบการกำหนดค่าระบบ …

ใช้ 192.168.1.1 เป็นเกตเวย์เริ่มต้น การใช้เนมเซิร์ฟเวอร์ต่อไปนี้: เนมเซิร์ฟเวอร์ 192.168.1.30 คำเตือน: เนมเซิร์ฟเวอร์ในเครื่องแตกต่างจากเกตเวย์! ตรวจสอบการกำหนดค่าหรือป้อน: sed -i s/192.168.*/192.168.1.1/ /tmp/resolv.conf เพื่อแก้ไขปัญหานี้ กำลังติดตั้งแพ็คเกจ uclibc-opt_0.9.28-13_mipsel.ipk … กำลังเชื่อมต่อกับ ipkg.nslu2-linux.org[140.211.166.82]:80 uclibc-opt_0.9.28-12 100% |************ ******************************************* | 832 KB 00:00:00 ETA กำลังอัปเดต /opt/etc/ld.so.cache /opt/sbin/ldconfig: can't create /opt/etc/ld.so.cache~ (ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว) การติดตั้งแพ็คเกจ ipkg-opt_0.99.163-9_mipsel.ipk … กำลังเชื่อมต่อกับ ipkg.nslu2-linux.org[140.211.166.82]:80 ipkg-opt_0.99.163-9_ 100% |**************** *************************************** | 75896 00:00:00 ETA กำลังดาวน์โหลด https://ipkg.nslu2-linux.org/feeds/optware/ddwrt/c… กำลังขยาย https://ipkg.nslu2-linux.org/feeds/optware/ddwrt/c… อัปเดต รายการแพ็คเกจที่พร้อมใช้งานใน /opt/lib/ipkg/lists/optware ถูกยกเลิกสำเร็จ กำลังติดตั้ง uclibc-opt (0.9.28-12) ถึง /opt/… กำลังดาวน์โหลด https://ipkg.nslu2-linux.org/feeds/optware/ddwrt/c… แพ็คเกจ uclibc-opt แนะนำให้ติดตั้ง ipkg-opt การกำหนดค่า uclibc-opt กำลังอัปเดต /opt/etc/ld.so.cache สิ้นสุดเรียบร้อยแล้ว กำลังติดตั้ง ipkg-opt (0.99.163-9) ไปยัง /opt/… กำลังดาวน์โหลด https://ipkg.nslu2-linux.org/feeds/optware/ddwrt/c… กำลังกำหนดค่า ipkg-opt สำเร็จแล้ว

5, ข้อผิดพลาดของเส้นทาง:

คุณต้องส่งออกเส้นทางด้วย:

ส่งออก PATH="/opt/bin:/opt/sbin:/opt/usr/bin:/opt/usr/sbin:/bin:/usr/bin:/sbin:/usr/sbin:/jffs/sbin:/ jffs/bin:/jffs/usr/sbin:/jffs/usr/bin:/mmc/sbin:/mmc/bin:/mmc/usr/sbin:/mmc/usr/bin"

มิฉะนั้น ipkg จะไม่ทำอะไรเลย!

6, ตรวจสอบ ipkg:

ipkg update

ควรส่งออก:

กำลังดาวน์โหลด

กำลังพอง https://ipkg.nslu2-linux.org/feeds/optware/ddwrt/c… อัปเดตรายการแพ็คเกจที่พร้อมใช้งานใน /opt/lib/ipkg/lists/optware ยุติสำเร็จแล้ว

7, ติดตั้งแพ็คเกจ:

ipkg ติดตั้ง bash htop mc openvpn tcpdump vim bzip2 bc e2fsprogs findutils เพ่งพิศ grep gzip น้อย ทำให้ ntfs-3g openssl perl php psmisc psutils

samba36 sed tar unrar เปิดเครื่องรูด vnstat vsftpd wget whois zip ncftp

8, รายการแพ็คเกจที่ติดตั้ง:

ipkg-opt list_installed

ไม่แนะนำให้สร้างแพ็คเกจบนเราเตอร์เนื่องจากไม่มีทรัพยากร ตั้งค่าสภาพแวดล้อมการคอมไพล์ข้าม mips แยกกันใน Vmware/Vbox/KVM เพื่อจุดประสงค์นี้

สิ่งที่จำเป็น:

-Debian 7 wheezy 64 บิตโฮสต์OS

-OpenWrt-SDK-Linux-x86_64-1.tar.bz2 ->

openwrt.org/docs/guide-developer/obtain.fi…

อย่าเสียเวลาพยายามคอมไพล์ SDK ด้วยตัวเอง เพราะไบนารี SDK ที่ให้มานั้นดีเพียงพอ

สร้างแอพ Helloworld อย่างง่าย

#include int main(เป็นโมฆะ) { printf("Hell! O' world, ทำไมโค้ดของฉันไม่คอมไพล์ล่ะ?\n\n"); กลับ 0; }

./staging_dir_mipsel/mipsel-linux-uclibc/bin/gcc -lpthread hello.c -o สวัสดี

หากทุกอย่างถูกต้องคุณควรมี mips ที่ปฏิบัติการได้ในขณะนี้:

สวัสดี: ไฟล์ปฏิบัติการ LSB แบบ 32 บิตของ ELF, MIPS, MIPS32 เวอร์ชัน 1 (SYSV) ลิงก์แบบไดนามิก (ใช้ libs ที่แชร์) ไม่ถูกถอดออก

ขั้นตอนที่ 7: ซอฟต์แวร์ Arduino

คุณสามารถดาวน์โหลดซอร์สโค้ดแบบเต็มด้านล่าง มันค่อนข้างง่าย มันสามารถควบคุมรีเลย์ 2 ตัวและปลั๊ก RC บางตัวผ่านวิทยุ 433 เมกะเฮิร์ตซ์ คุณสามารถขยายได้อย่างง่ายดาย เช่น เพิ่มสวิตช์ rc เพิ่มเติม

ขั้นตอนที่ 8: ปิดและรายการสิ่งที่ต้องทำ

รายการปิดและสิ่งที่ต้องทำ
รายการปิดและสิ่งที่ต้องทำ

WRT54G เป็นฮาร์ดแวร์ที่ยอดเยี่ยม ดังนั้นงานทั้งหมดที่ลงทุนในโครงการนี้คุ้มค่า นอกจาก NLD Wrtg shield อาจใช้ได้กับฮาร์ดแวร์เวอร์ชันในอนาคต

เนื่องจากการใช้พลังงานของ WRTG ต่ำกว่า Raspberry PI การใช้พลังงานแสงอาทิตย์ของเราเตอร์จึงเป็นการอัปเกรดที่ดี และด้วย Arduino เราจึงสามารถตรวจสอบทุกรายละเอียดของกระบวนการชาร์จพลังงานแสงอาทิตย์ได้ (แรงดันแบตเตอรี่ แรงดันแผง การบริโภค) ฉันจะทำซีรีย์ WRTG ต่อด้วย Solar Hacks ในภายหลัง

การหาวิธีการเขียนโปรแกรม Arduino โดยตรงจาก WRTG จะดีมาก (ซึ่งจะต้องมีวิธีการรีเซ็ต Arduino)

ผู้ที่มีทักษะด้าน 3D และ Makerbot ยินดีที่จะออกแบบแผ่นปิดแบบกำหนดเอง (มีตัวเชื่อมต่อของบอร์ดของฉัน) สำหรับด้านหน้าหรือออกแบบส่วนด้านหน้าที่เป็นพลาสติกทั้งหมดของเราเตอร์

UPDATE: เพื่อเฉลิมฉลองให้สถาปัตยกรรม MIPS กลายเป็นโอเพ่นซอร์ส ฉันได้อัปเดตบทช่วยสอนเกี่ยวกับวิธีสร้างโปรแกรม C แบบง่ายข้ามไปยัง WRTG

MIPS จงเจริญ!:)

ประเภทระบบ: Broadcom BCM5352 ตัวประมวลผลชิป 0 ตัวประมวลผล: 0 cpu รุ่น: BCM3302 V0.8 BogoMIPS: 199.47 คำสั่งรอ: ไม่มีตัวจับเวลาไมโครวินาที: ใช่ tlb_entries: 32 เวกเตอร์ขัดจังหวะพิเศษ: ไม่มีจุดตรวจสอบฮาร์ดแวร์: ไม่มีข้อยกเว้น VCED: ไม่มีข้อยกเว้น VCEI: ไม่พร้อมใช้งาน

แนะนำ: