メール、ビットトレント、さらにはMySQLなどの追加機能をルーターに直接搭載したいと思ったことはありませんか?たぶん今あなたはできるでしょう。 How-To Geekは、DD-WRTにOpkgソフトウェアをインストールする方法について詳しく説明しています。
による画像 ジャンスペクター そして Aviad Raviv
まだ読んでいない場合は、シリーズの以前の記事を確認してください。
あなたがそれらのトピックに精通していると仮定して、読み続けてください。このガイドはもう少し技術的であり、初心者はルーターを改造するときに注意する必要があることに注意してください。
苦難
最近新しいものを購入しました
バッファローWZR-HP-AG300H
のブランド変更されたバージョンが付属しています
DD-WRT
。このルーターにはUSBポートがあるため、すぐにHDを接続して、「
Optware、正しい方法
」ウィキガイド。残念ながら、入手したルーターはAtherosベースであり、そのwikiページのスクリプトはそれをサポートしていないことがすぐにわかりました。だから私は(いつものように)掘り始めて、いくつかのガイドに出くわしました(
1
、
2
、
3
そして
4
)Opkgを手動で動作させる方法を説明することを目的としています。このガイドへの(Web上の他のソースの中でも)彼らの貢献は非常に貴重でしたが、いくつかの指示は(IMHO)単純に十分に単純ではありません。たとえば、「lib」ファイルを与えると魚になりますが、ソースから魚を釣る方法は教えないでください。また、Linux形式のHDまたは少なくとも1つのパーティションを使用する必要があります(
これは、私がテストしたファームウェアでは実際には機能しません。
)。そのため、以下の簡潔でわかりやすく、再現性のある手順を作成する必要があると感じました。
OpenWRT
そのようなルーターで動作するOpkgパッケージマネージャー。
更新:マウントパーティション機能は、17798アルファビルドの再ブランド化されたバージョンに再導入されました。
Opkgとは何ですか?
Opkgは、apt / aptitudeやyumのようなパッケージマネージャーです。それはの代わりとして機能します Ipkgパッケージマネージャー 、および次のようなソフトウェアのインストールに使用できます。 伝染;感染 BitTorrentデーモン、ssmtpメール送信者および ノックド いくつか例を挙げると、指定されたポートトリガーシーケンスの後にスクリプトを実行するデーモン。から OpenWRTサイト :
opkgユーティリティ(ipkgフォーク)は、ローカルパッケージリポジトリまたはインターネット上にあるものからOpenWrtパッケージをダウンロードしてインストールするために使用される軽量のパッケージマネージャーです。
Opkgリポジトリ内のパッケージとの依存関係を解決しようとします–これが失敗した場合、エラーが報告され、そのパッケージのインストールが中止されます。
したがって、Opkgを使用すると、Ipkgで行ったようなものを「 ホームルーターからさらに多くの電力を解放 」ガイド。主な違いは次のとおりです。
- SSMTPとKnockdの例を示すために、あなたは本当に、依存関係を手動で把握する必要がありました。これを手動で行う手順は面倒で、それほど簡単ではありません。 Opkgはこれを自動的に行います。
- 今回は 追加 ファームウェアを置き換えるのではなく、配置されているファームウェアの上にソフトウェアを配置します。それを置き換えることは優れたオタクの練習でしたが、それは間違いなく危険であり、問題が発生しやすく、不可逆的であり、ルーター固有のものの中で最悪でした。言うまでもなく、これははるかに簡単で安全です。
前提条件
このガイドを完了するには、次の点に注意してください。
- 上記のように、このガイドはで作成およびテストされました バッファローWZR-HP-AG300H バッファローの「Pro」ファームウェアバージョン17135を使用。同じリビジョン以上のDD-WRTの任意のバージョンを備えたAtheros(ar71xx)ベースのルーターで動作するはずですが、走行距離は非常に長くなる可能性があります。
- ルーターでSSHを有効にし、インストールして使用する必要があります WinSCP それに接続します。これは「 DD-WRTでPixelservを使用して広告を削除する方法 」ガイド。実際、そのガイドで説明されているすべてのことを実行できると想定されます。
- 端末を使用してルーターに接続できる必要があります(SSHを推奨)。これを行う方法に関するいくつかの指針は、 DD-WRT wiki 。
- JFFS用のスペースと基本セットアップ用の約4MBのポストフォーマットされたスペース。 JFFSスペースは前提条件であるだけでなく、ショーストッパーでもあります。これは、ルーターに少なくとも上記の4 MBのポストフォーマットされたスペースがない場合、このガイドから実際のメリットを得ることができないため、「 ホームルーターからさらに多くの電力を解放 Ipkgパッケージをファームウェアに直接インストールするか、Ipkgパッケージを手動でインストールするためのガイド。 「」の指示に従ってください DD-WRTでPixelservを使用して広告を削除する方法 」JFFSを有効にするためのガイド、および実際にどれだけの空き領域があるかを確認する 後 フォーマットされています。
注意: セットアップ用にわずか2MBのスペースでこれを行うことは可能ですが、「/ etc」が読み取り/書き込み可能になるという結果が失われ、毎回手動で構成ファイルを指定しながらOpkgを呼び出す必要があります...すっごくラメ…
ひびが入りましょう
この時点で、JFFSを有効にして、ルーターにSSH / WinSCPできるようになっているはずです。
- ルータへのターミナルセッションを開きます。
-
作業する一時ディレクトリを作成します。
mkdir / tmp / 1
cd / tmp / 1
Ipkgを使用してOpkgをインストールします
パッケージマネージャーとしてIpkgを置き換えますが、これを使用してOpkgインストールパッケージを手動でインストールします。
-
これを行うには、ar71xxアーキテクチャのOpkgインストールパッケージをからダウンロードします。
OpenWRTプロジェクトトランク
:
wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/opkg_618-2_ar71xx.ipk
注1: この記事の執筆時点では、618が最新バージョンであり、将来変更される可能性があるため、それに応じて調整してください。
発音: このガイドを他のアーキテクチャで機能させることの唯一の違いは、ルーターに適用可能なアーキテクチャからOpkgインストーラーを取得することである可能性があります。ただし、これは実際にはテストされていません。 -
Ipkgを呼び出して、以下を使用してOpkgを手動でインストールします。
ipkg install opkg_618-2_ar71xx.ipk
注意: 必要に応じて、この方法でリポジトリ内のすべてのパッケージを手動でインストールできます。ただし、これは、依存関係を自分で解決する必要があることを意味します…そして、その中で何が楽しいでしょうか?
ダイナミックライブラリファイル(「lib」)の取得
Opkgを機能させるために必要な「lib」ファイルは、OpenWRTディストリビューションの一部です。それらを取得するには、上記のディストリビューションの「ルートファイルシステム」からそれらを抽出する必要があります。
-
これを行うには、必要な「ライブラリ」を含むopenWRTディストリビューションの最新の基本的な「ルートファイルシステム」をダウンロードします。
OpenWRTプロジェクトトランク
:
wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-rootfs.tar.gz
-
以下を使用して抽出します。
tar xvzf openwrt-ar71xx-generic-rootfs.tar.gz
-
上記で抽出した「rootfs」から「libs」ファイルをJFFSの「libs」ディレクトリにコピーし、それらの属性とシンボリックリンクを保持します。
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
-
すべてのサブディレクトリ、ファイル属性、およびシンボリックリンクを保持しながら、「/ etc」全体を再帰的にコピーします。
cp -a / etc / * / jffs / geek / etc /
-
手動で(今のところ)「/ etc」ディレクトリをJFFSディレクトリに「バインドマウント」します。
mount -o bind / jffs / geek / etc / / etc /
Optwareディレクトリを設定します(「/ opt」)
OpenWRTのOpkgは、ルーターのファームウェアが構築されるときに使用されることを想定しています。そのような時点では、ファイルシステムはまだルーター上にないため、変更される可能性があります。ファイルシステム上のどの場所にも問題なくインストールできます。これが、Opkg構成ファイルがファイルシステムの「ルート」(/)にインストールするパッケージを指している理由です。ただし、Opkgを使用しています
後
ファームウェアが構築され、ルーターにインストールされました。ファイルシステムのルートを読み取り/書き込み可能に変更できないため、すべてのインストールを「/ opt」の下にインストールするように指示します。ただし、現在「/ opt」は、ルーターのファームウェア上の読み取り専用の場所も指します。これを克服するために、「/ opt」が読み取り/書き込み可能なJFFSを指すようにします。
-
これを行うには、Optwareパッケージを含むディレクトリを作成します。
mkdir -p / jffs / opt
-
手動で(今のところ)「/ opt」ディレクトリをJFFSディレクトリに「バインドマウント」します。
mount -o bind / jffs / opt / / opt /
注:このガイドの範囲を超えていますが、 上級ユーザーは、このマウントポイントを変更してHDを指すようにすることができます。
Opkg構成ファイルの調整
Opkg構成ファイルは、Opkgがデフォルトで検索する場所(「/ etc」)に配置し、「/ opt」にインストールするように調整する必要があります。
-
これを行うには、Opkgパッケージによってインストールされたopkg構成ファイルを読み取り/書き込み可能な「/ etc」の場所に移動します。
mv /jffs/etc/opkg.conf / etc /
-
Optwareのインストール先を「root」(/)ではなく「/ opt」に変更します。
これを行うには、「vi」エディターまたはWinSCPを使用して、「/ etc /」に移動し、「opkg.conf」ファイルのコンテンツを作成します。