Cara Pasang Perisian Tambahan Di Penghala Rumah Anda (DD-WRT)
Pernahkah anda ingin mempunyai fungsi tambahan seperti E-mel, Bit-torrent atau bahkan MySQL secara langsung pada penghala anda? Mungkin sekarang anda boleh. Bagaimana-Untuk Geek menyelam ke bagaimana hendak memasang perisian Opkg pada DD-WRT.
Imej oleh Jean Spector dan Aviad Raviv
Jika anda belum lagi, pastikan dan semak artikel sebelumnya dalam siri ini:
- Hidupkan Penghala Rumah Anda Ke Router Super-Powered dengan DD-WRT
- Cara Hapus Iklan dengan Pixelserv di DD-WRT
Dengan mengandaikan anda sudah biasa dengan topik tersebut, teruskan membaca. Perlu diingat bahawa panduan ini sedikit lebih teknikal, dan pemula harus berhati-hati semasa memodifikasi penghala mereka.
Kesibukan
Baru-baru ini saya membeli Buffalo WZR-HP-AG300H baru yang dilengkapi dengan versi semula jenama DD-WRT. Oleh kerana router ini mempunyai port USB, saya segera menyambungkan HD dan cuba menggunakan panduan wiki "Optware, The Right Way". Sayangnya saya dengan cepat mendapati bahawa penghala yang saya dapat, adalah berdasarkan Atheros dan skrip dari halaman wiki itu, tidak menyokongnya. Oleh itu, saya telah mula menggali (seperti yang saya lakukan) dan menemui beberapa panduan (1, 2, 3 dan 4) yang bertujuan untuk menjelaskan cara mendapatkan Opkg secara manual. Walaupun sumbangan mereka (antara sumber lain di web) kepada panduan ini tidak ternilai, beberapa arahan adalah (IMHO) tidak cukup lurus ke hadapan. Contohnya, memberikan anda fail "lib" ikan, tetapi jangan mengajar anda cara memancingnya dari sumbernya. Juga perlu menggunakan HD diformat HD atau sekurang-kurangnya partisi satu (yang sebenarnya tidak berfungsi pada firmwares yang saya telah diuji dengan). Itulah sebabnya, saya merasakan keperluan untuk mewujudkan kaedah ringkas, mudah untuk diikuti dan dibentuk semula untuk mendapatkan pengurus pakej OpenWRT Opkg untuk mengendalikan router tersebut..
Kemas kini: Keupayaan partition pemasangan telah diperkenalkan semula ke versi semula jenama pada 17798 alpha build.
Apa itu Opkg?
Opkg adalah pengurus pakej seperti apt / aptitude dan yum. Ia berfungsi sebagai pengganti pengurus pakej Ipkg, dan boleh digunakan untuk memasang perisian seperti: daemon Transmisi BitTorrent, pengirim email ssmtp dan Knockd daemon yang melaksanakan skrip selepas port tertentu yang mencetuskan urutan, untuk menamakan beberapa. Dari laman OpenWRT:
Util opkg (garpu ipkg) adalah pengurus pakej ringan yang digunakan untuk memuat turun dan memasang pakej OpenWrt dari repositori pakej tempatan atau yang terletak di Internet.
Opkg
cuba menyelesaikan dependensi dengan pakej di repositori - jika ini gagal, ia akan melaporkan ralat, dan membatalkan pemasangan pakej itu.
Jadi dengan menggunakan Opkg kita boleh memasang perkara seperti yang kita lakukan dengan Ipkg pada panduan "Unleash Even More More from Your Home Router". Perbezaan utama adalah:
- Untuk memberikan contoh-contoh SSMTP dan Knockd, anda benar-benar perlu memikirkan ketergantungan secara manual. Prosedur untuk melakukan ini secara manual adalah mengganggu dan tidak terlalu lurus ke hadapan. Opkg melakukan ini secara automatik.
- Kali ini kita akan menjadi menambah perisian di atas firmware yang ada di tempatnya, bukan menggantikannya. Walaupun menggantikannya adalah latihan geek yang sangat baik, ia tidak ragu-ragu: berbahaya, rentan terhadap masalah, tidak dapat dipulihkan dan terburuk dari semua penghala yang tertentu. Tidak perlu dikatakan bahawa ini adalah cara yang lebih mudah dan selamat.
Prasyarat
Untuk menyelesaikan panduan ini ambil perhatian perkara berikut:
- Seperti yang dinyatakan di atas, panduan ini dibuat dan diuji pada Buffalo WZR-HP-AG300H dengan versi firmware Buffalo "Pro" 17135. Ia harus berfungsi pada mana-mana router berasaskan Atheros (ar71xx) dengan mana-mana versi DD-WRT dari semakan yang sama atau di atas , tetapi perbatuan anda mungkin sangat.
- Anda perlu mengaktifkan SSH pada penghala, serta memasang dan menggunakan WinSCP untuk menyambung kepadanya. Ini dijelaskan dalam panduan "Cara Hapus Iklan dengan Pixelserv di DD-WRT". Sebenarnya, anda akan dapat melakukan semua yang dijelaskan dalam panduan itu.
- Anda perlu menyambung ke penghala menggunakan terminal (SSH disyorkan). Beberapa penunjuk cara untuk melakukannya, ada di wiki DD-WRT.
- Ruang untuk JFFS dan kira-kira 4MB ruang diformat untuk persediaan asas. Ruang JFFS bukan sahaja merupakan prasyarat, ia adalah penyumbat persembahan. Ini kerana, jika penghala anda tidak mempunyai sekurang-kurangnya 4MB jawatan yang diformat selepas diformat, anda tidak akan mendapatkan apa-apa faedah sebenar dari panduan ini, dan akan lebih baik menggunakan "Letakkan Lebih Banyak Kuasa dari Penghala Utama Anda" panduan untuk memasang pakej Ipkg terus ke firmware atau pasang pakej Ipkg secara manual. Ikuti arahan pada panduan "Bagaimana untuk Buang Iklan dengan Pixelserv pada DD-WRT" untuk membolehkan JFFS, dan lihat berapa banyak ruang kosong yang anda ada selepas ia diformat.
Catatan: Ia mungkin untuk melakukan ini dengan hanya 2MB ruang untuk persediaan, tetapi kemudian kita akan kehilangan kesilapan "/ etc" menjadi read-writable dan perlu menggunakan Opkg, sambil menentukan fail konfigurasi secara manual setiap kali ... yang seperti sooo lame ...
Mari dapatkan retak
Pada ketika ini anda seharusnya telah membolehkan JFFS dan dapat SSH / WinSCP ke dalam penghala.
- Buka sesi terminal kepada penghala.
- Buat direktori sementara yang akan kami jalankan:
mkdir / tmp / 1
cd / tmp / 1
Gunakan Ipkg untuk memasang Opkg
Walaupun kami akan menggantikan Ipkg sebagai pengurus pakej, kami akan menggunakannya untuk memasang pakej pemasangan Opkg secara manual.
- Untuk melakukan ini, muat turun pakej pemasangan Opkg untuk seni bina ar71xx dari batang projek OpenWRT:
wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/opkg_618-2_ar71xx.ipk
Nota1: Pada masa penulisan ini, 618 adalah versi terbaharu, ini mungkin berubah pada masa akan datang, jadi menyesuaikan dengan sewajarnya.
Nota2: Mungkin satu-satunya perbezaan dalam mendapatkan panduan ini berfungsi untuk seni bina lain adalah untuk mendapatkan pemasang opkg dari arsitektur yang sesuai untuk penghala anda ... namun ini belum diuji oleh anda yang benar-benar. - Minta Ipkg untuk menginstal Opkg secara manual menggunakan:
ipkg pasang opkg_618-2_ar71xx.ipk
Catatan: Anda boleh, jika anda juga mahu, pasangkan setiap pakej dalam repositori secara manual dengan cara ini. Walau bagaimanapun ini bermakna anda perlu menyelesaikan kebergantungan anda sendiri ... dan apa yang akan menjadi keseronokan dalamnya?
Mendapatkan fail perpustakaan dinamik ("lib" s)
Fail "lib" yang diperlukan untuk membuat kerja Opkg, adalah sebahagian daripada pengedaran OpenWRT. Untuk mendapatkannya, seseorang perlu mengeluarkannya daripada "Sistem Fail Root" pengedaran tersebut.
- Untuk melakukan ini, muat turun asas "Sistem Fail Root" terkini untuk pembukaan openWRT yang mengandungi "lib" yang diperlukan dari batang projek OpenWRT:
wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-rootfs.tar.gz
- Ekstrak menggunakan:
tar xvzf openwrt-ar71xx-generic-rootfs.tar.gz
- Salin fail "libs" dari "rootfs" kami telah diekstrak ke direktori "libs" pada JFFS kami, sambil mengekalkan atribut dan pautan simbolik mereka:
cp -Pp / tmp / 1 / lib / * / jffs / usr / lib /
Catatan: Anda akan mendapat mesej yang mengatakan bahawa sub-direktori telah ditinggalkan. Memandangkan kami tidak memerlukan apa-apa tetapi fail "lib", ini baik-baik saja dan anda boleh mengabaikan mesej ini dengan selamat.
Memperbaiki LD_LIBRARY "PATH"
Kita perlu memberitahu router, di mana hendak mencari perpustakaan yang dikongsi (libs) yang baru kita "pasang" dan perlu melakukan ini sebelum ini yang datang dengan firmware.
- Untuk melakukan ini, tetapkan pembolehubah persekitaran LD_LIBRARY secara manual (untuk sekarang), untuk menjadikannya lokasi di mana kita menyalin fail lib baharu akan menjadi yang pertama dalam "PATH":
eksport LD_LIBRARY_PATH = / jffs / usr / lib: $ LD_LIBRARY_PATH
Baca-boleh tulis "/ etc"
Kami akan menyalin "/ etc" kepada JFFS dan kemudian membuat titik "/ etc" tetap, titik kepadanya. Melakukannya, kedua-duanya akan membuka dunia kemungkinan, kerana "/ etc" akan menjadi terbaca-baca (yang saya sendiri telah menunggu untuk memberikan atau mengambil 7 tahun sekarang) dan membolehkan pakej yang mengharapkan kelakuan ini, untuk berfungsi dengan betul.
- Buat direktori yang akan memegang "/ etc":
mkdir -p / jffs / geek / etc
- Secara salinak menyalin keseluruhan "/ etc" sambil memelihara semua subdirektori, atribut fail dan pautan simbolik.
cp -a / etc / * / jffs / geek / etc /
- Secara manual (untuk sekarang) "mengikat gunung" direktori "/ etc" kepada JFFS yang satu:
mount -o bind / jffs / geek / etc / / etc /
Tetapkan direktori Optware ("/ opt")
Opkg dari OpenWRT, dijangka akan digunakan apabila firmware router dibina. Pada masa itu, FileSystem tidak berada di penghala lagi, dan oleh itu masih tertakluk kepada perubahan, tidak ada masalah memasang ke mana-mana lokasi pada FileSystem. Itulah sebabnya fail konfigurasi Opkg menunjukkan pakej untuk dipasang ke "root" (/) dari FileSystem. Walau bagaimanapun, kami menggunakan Opkg selepas firmware itu dibina dan dipasang pada penghala, dan kerana kita tidak dapat mengubah akar sistem fail untuk dibaca, kita akan menunjukkan semua pemasangan yang akan dipasang di bawah "/ opt". Bagaimanapun Pada masa ini "/ opt" juga menunjuk kepada lokasi baca-hanya pada firmware penghala. Untuk mengatasinya, kami akan membuat titik "/ opt" kepada JFFS, yang boleh dibaca semula.
- Untuk melakukan ini, Buat direktori yang akan mengandungi pakej Optware:
mkdir -p / jffs / opt
- Secara manual (untuk sekarang) "mengikat gunung" direktori "/ opt" kepada JFFS yang satu:
mount -o bind / jffs / opt / / opt /
Nota: Walaupun diluar skop panduan ini, pengguna yang lebih maju mungkin mahu menukar titik gunung ini, untuk menunjuk ke HD.
Melaraskan fail konfigurasi Opkg
Kami mahu fail konfigurasi Opkg berada di tempat Opkg mencarinya secara lalai (iaitu "/ etc") dan disesuaikan untuk dipasang kepada "/ opt".
- Untuk melakukan ini, pindahkan fail konfigurasi opkg yang dipasang oleh pakej Opkg ke lokasi "/ etc" yang boleh ditulis-baca:
mv /jffs/etc/opkg.conf / etc /
- Tukar destinasi untuk pemasangan Optware menjadi "/ opt" bukan "root" (/).
Untuk melakukan ini, dengan editor "vi" atau WinSCP menavigasi ke "/ etc /" dan membuat kandungan fail "opkg.conf":vi /etc/opkg.conf
Jadikan ia seperti:
src / gz snapshots http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages
dest root / opt
dest ram / tmp
lists_dir ext / var / opkg-lists
overlay_root / overlay pilihanCatatan: Anda boleh menukar arahan "senarai_dir" untuk menunjukkan kepada lokasi yang tidak berada di RAM, melainkan pada JFFS. Walaupun ini akan menghilangkan anda daripada mengemas kini senarai, sebelum anda boleh memasang perisian tambahan (jika penghala anda reboot dari kali terakhir), anda akan kehilangan kira-kira 1.5MB dari ruang JFFS yang terhad dan anda akan mereproduksi hakisannya.
Hai sayang
Anda harus dapat melihat bahawa Opkg berfungsi dengan mengeluarkan kemas kini dan menyenaraikan arahan.
- Jika semua berjalan lancar, anda harus melihat bahawa senarai Opkg telah dikemas kini tanpa ralat dan anda sudah bersedia untuk melaksanakan skrip pada langkah seterusnya:
opkg update; senarai opkg
- Luangkan masa untuk memulakan meneroka pakej yang terdapat di repositori ... .
Skrip StartUp
Sekarang kita perlu membuatnya supaya semua pemasangan yang diperlukan dan laluan akan berlaku secara automatik apabila but. Untuk tujuan itu, kami telah mencipta untuk anda, skrip geek-init permulaan ini.
- Muat turun, kemudian ekstrak dan letakkan di bawah "/ jffs / geek / etc /". (Pertimbangkan untuk melakukan ini dengan WinSCP).
- Buat skrip yang boleh dieksekusi dengan pergi ke sifatnya dengan WinSCP atau melaksanakan:
chmod + x /jffs/geek/etc/geek-init.sh
- Buat skrip jalankan pada permulaan router, menggunakan WebGUI. Di bawah Pentadbiran -> Perintah, dalam kotak teks, letakkan:
/jffs/geek/etc/geek-init.sh web-gui
Dan Klik "Simpan Permulaan".
Menendang tayar
Sekiranya semuanya berjalan lancar, kini anda kini boleh reboot router dan masih menggunakan pengurus pakej Opkg. Iaitu untuk mengemaskini, menyenaraikan dan memasang aplikasi.
Mari menguji bahawa segala-galanya berfungsi dengan memasang perintah "netstat", yang atas sebab tertentu telah diabaikan dari DD-WRT yang dibina akhir-akhir ini. Sebelum kita melakukan ini, jalankan perintah netstat di terminal dan anda akan melihat bahawa anda diparut oleh ralat dari shell, dengan mengatakan "-sh: netstat: tidak dijumpai".
- Langkah pertama anda akan sentiasa, untuk mengemas kini senarai Opkg, sebagai mempunyai pakej terkini yang tersenarai dari repositori:
opkg update
- Sekiranya anda tidak tahu pakej yang mengandungi arahan "netstat", anda boleh menapis hasilnya.
senarai opkg | grep netstat
- Dan kini pasang "netstat" dengan menggunakan:
opkg memasang net-tools-netstat
Dan sekarang, apabila anda melaksanakan perintah netstat sekali lagi ia berfungsi ... rapi ha? :)
Sehingga artikel masa depan di mana kami akan memasang dan menatarajah pakej perisian menggunakan kaedah ini, semoga anda mempunyai banyak keseronokan geek meneroka sejumlah besar perisian yang sekarang berada di hujung jari anda.
Jika mesin sedemikian adalah kemustahilan maya, ia mesti secara logiknya menjadi kebolehkiraan yang terbatas. Jadi apa yang perlu saya lakukan untuk membuatnya adalah untuk mengetahui betapa betul-betul mustahil itu, sediakan figur itu ke dalam penjana kebolehbaikkan yang terhingga, berikan cawan segar teh yang sangat panas dan pasangkannya ... ... ... Satu perkara yang mereka benar-benar tidak suka, adalah "Smart-Ass".