BeagleBone Black Asteriskのソースを表示
←
BeagleBone Black Asterisk
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます: メール確認された利用者、
管理者
。
このページのソースの閲覧やコピーができます。
=BeagleBone Black= https://www.beagleboard.org/boards/beaglebone-black<br> '''注意:BeagleBone Blackを買いましょう。BeagleBone(白いやつ)は買ってはいけません。高いだけです!'''<br> Raspberry Piよりも、ちょっとだけ高性能。形状的にも収まりが良いので、Asteriskアプライアンスに良いかも。<br> Cortex-A8 1GHzでRAM 512MB、オンボードのフラッシュ(MMC) 2GBと割と豪華。<br> (Beagleboard,BeagleBoneはイマイチぱっとしなかったんだけどBlackはいい感じです)<br> =Arch Linux= デフォルトでインストールされているÅngströmは何かちょっとモサっとするので使わず、Arch Linuxを使うことにします。<br> http://archlinuxarm.org/platforms/armv7/ti/beaglebone-black<br> ここを参考に。繰り返しますけどBeagleBone Blackですよ。BeagleBoneじゃないです。<br> なお、マイクロSDカードの準備とArch Linuxの基本部分のインストール(マイクロSDへの展開)は別なLinuxマシン上で行います。<br> ==マイクロSDカードを準備する== ターゲット、つまりBeagleBone Black上でAsteriskをコンパイルしてしまおうと思うので、そこそこ容量のあるマイクロSDカードが使いたいです。16GBもあれば十分すぎますけども。<br> ===パーティション作成=== 適当なLinuxマシン上でマイクロSDのパーティションを切ります。ポイントとしては先頭(パーティション1)はFAT32で64MBを用意し、残りはext4で残り全部を割当ます。<br> こんな感じです。<br> Command (m for help): p Disk /dev/mmcblk0: 15.9 GB, 15931539456 bytes, 31116288 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0xd00da379 Device Boot Start End Blocks Id System /dev/mmcblk0p1 * 32 133119 66544 e W95 FAT16 (LBA) /dev/mmcblk0p2 133120 29018111 14442496 83 Linux /dev/mmcblk0p3 29018112 31115263 1048576 82 Linux swap / Solaris swapはお好みでという感じです。Asteriskをswapアリでコンパイルしてみてもswapは使わなかったので、たぶん要りません。<br> 上のリンクにも書いてありますが、まず自分のマイクロSDカードのデバイス名を見つけてください。ここでは/dev/sdbとします。間違えて他のデバイスを書き換えないように。<br> fdisk /dev/sdb を実行し、もしすでに何らかのパーティションがある(普通ある)場合には'''o'''コマンドで全部消します。<br> '''p'''コマンドでパーティションが無くなっていることを確認します。<br> '''n'''コマンドで新しいパーティションを作成し、'''p'''でプライマリ、'''1'''でパーティション番号1にします。<br> この時サイズ指定に'''+64M'''と指定し、64MBのパーティションを作成します。<br> 次に'''t'''コマンドでパーティションのIDを書き換えます。'''e'''を指定してWIN95 FAT16に指定します。<br> '''a'''コマンドで1番目のパーティション(今作ったやつ)をブート可能に設定します。<br> 次にまた'''n'''コマンドで残りの容量をパーティション2として割当てます。このパーティションもプライマリに指定します。もし、swapを作りたい場合にはswapに割り当てる容量を差し引いた容量で作成しますが、swapが必要なければマイクロSDの残り全部を割当ます。<br> ===ファイルシステムを作成する=== DOSパーティション(1)は mkfs.vfat -F 16 /dev/sdb1 Linuxパーティション(2)は mkfs.ext4 /dev/sdb2 のように指定して行います。これでマイクロSDの準備は完了。 ==Arch Linuxを入手・展開する== これも別なLinuxマシン上で実行します。基本的にアーカイブを入手してマイクロSDカード上に展開するだけです。ここでもマイクロSDカードは/dev/sdbとします。自分の環境にあわせて読み換えてください。<br> ===ブートローダ=== まずブートローダを入手、展開します。 wget http://archlinuxarm.org/os/omap/BeagleBone-bootloader.tar.gz mkdir boot mount /dev/sdb1 boot tar zxvf BeagleBone-bootloader.tar.gz -C boot umount boot エラー/ウォーニングは気にしなくて大丈夫です。FAT上でUIDが設定できないためです。 ===Arch Linux本体=== wget http://archlinuxarm.org/os/ArchLinuxARM-am33x-latest.tar.gz mkdir root mount /dev/sdb2 root tar zxvf ArchLinuxARM-am33x-latest.tar.gz -C root umount root 以上でマイクロSDカードの準備は完了です。念のためsyncしてからカードを抜いてください。 =BeagleBone BlackをArch Linuxで起動する= マイクロSDカードをBeagleBone Blackに挿入して起動します。この時、'''S2'''スイッチを押しながら電源を投入します。これはBeagleBone BlackにマイクロSDからブートするように指示するためです。<br> 無事に起動したらネットワークコネクタ側のLEDがパカパカしますので、ssh等でログインします。ユーザ/パスワードはroot/rootです。うまく起動しない場合にはシリアルコンソールで確認することができるのですが、別途FTDIブレイクアウトの3V品が必要になります。<br> ==Bootloaderを書き換える== このままでも使えることは使えるのですが、一旦、電源オフにして再起動するとオンボードのMMCから起動しようとして失敗するため、マイクロSDから起動するようにブートローダを書き換えてしまいます。これはArch Linuxのインストールと同じようにします。<br> BeagleBone Black上でまずはブートパーティションのバックアップを取ります。<br> cd / mount /dev/mmcblk1p1 /mnt cd mnt tar cvf ~/bootloader_bakup.tar * cd .. こんな感じで、内蔵MMC(mmcblk1)のパーティション1(p1)をコピーしておきましょう。<br> 次にArch Linuxのブートローダーを入手しこれをパーティション1に上書きします。<br> wget http://archlinuxarm.org/os/omap/BeagleBone-bootloader.tar.gz tar zxvf BeagleBone-bootloader.tar.gz -C mnt umount mnt これで電源を切ってもマイクロSDカードのArch Linuxからブートしてくるようになります。<br> (Asteriskで使うならÅngströmが起動しなくても問題ありません。内蔵MMC 2GBが勿体ない気もしますが、内蔵MMCは寿命が来てしまうと交換不能ですので温存しておくのがいいかもしれません。)<br> ==タイムゾーンの設定== デフォルトではCDTになっているので日本(JST)に修正します。一般的なLinuxマシンと同じでlocaltimeファイルのリンクを変更するだけです。 rm /etc/localtime ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime # date Tue Jul 9 17:04:40 JST 2013 =コンパイルのための準備= Arch Linuxをインストールしただけではコンパイルに必要な環境が足りていません。実は、Arch LinuxにはパッケージでAsteriskがあるのですが、日本語対応のためにコンパイルすることにします。最低限必要なものを入れます。<br> まずはシステムをアップデートします。<br> pacman -Syu wget,nslookupとかpatchが入っていないので<br> pacman -S wget pacman -S dnsutils pacman -S patch GCC/G++ pacman -S gcc GNU make pacman -S make Sqlite3を入れます pacman -S sqlite libxml2も入れます pacman -S libxml2 MP3のソースを落とすにはSubversionも必要なので入れます pacman -S subversion 以上でAsteriskのコンパイル環境が整いました。 =Asteriskのコンパイル= あとは普通にパッチ、configure、makeでコンパイルができます。ざっと測ってみたところBeagleBone Black上では約1時間でコンパイルが完了します。ARMアーキですが特に問題なくコンパイルできるようです。<br> コンパイル方法については[[Asterisk 11]]のページを参照してください。<br> BeagleBone Black上でコンパイル/インストールしてみた後のマイクロSDの状況はこんな感じです。<br> # df -H Filesystem Size Used Avail Use% Mounted on /dev/root 15G 1.4G 13G 10% / devtmpfs 260M 0 260M 0% /dev tmpfs 260M 0 260M 0% /dev/shm tmpfs 260M 279k 260M 1% /run tmpfs 260M 0 260M 0% /sys/fs/cgroup tmpfs 260M 0 260M 0% /tmp =グループ/ユーザの登録= いつもの感じで groupadd -g 5060 asterisk useradd -g asterisk -u 5060 asterisk ==各種パーミッションの変更== これもいつもの感じで chown -R asterisk:asterisk /var/lib/asterisk chown -R asterisk:asterisk /var/log/asterisk chown -R asterisk:asterisk /var/spool/asterisk chown -R asterisk:asterisk /etc/asterisk chmod -R u=rwX,g=rX,o= /var/lib/asterisk chmod -R u=rwX,g=rX,o= /var/log/asterisk chmod -R u=rwX,g=rX,o= /var/spool/asterisk chmod -R u=rwX,g=rX,o= /etc/asterisk =起動設定= Arch Linuxではinit.dではなくsystemdを使ってデーモン類の起動/停止を行っています。<br> まず'''/lib/systemd/system'''に'''asterisk.service'''という名前で以下の内容のファイルを作ります。 [Unit] Description=Asterisk Open Source PBX After=network.target [Service] Type=forking ExecStart=/usr/sbin/asterisk -U asterisk -G asterisk [Install] WantedBy=multi-user.target 注意:上記の引数はパーミッション変更した後用です。root起動する場合には-U,-Gを取ってください。<br> これをシンボリックリンクしておきます。 ln -s /usr/lib/systemd/system/asterisk.service /etc/systemd/system/multi-user.target.wants/asterisk.service 有効化します systemctl enable asterisk 起動します systemctl start asterisk 確認してみましょう # ps -ef|grep asterisk asterisk 1834 1 1 02:08 ? 00:00:04 /usr/sbin/asterisk -U asterisk -G asterisk # systemctl|grep asterisk asterisk.service loaded active running Asterisk Open Source PBX =最近の= BBBのDebainとAsterisk 13まで動かそうとすると色々要ります aptitude install ncurses-dev aptitude install libxml2 aptitude install libxml2-dev aptitude install libssl-dev aptitude install subversion aptitude install uuid-dev aptitude install libjansson libjansson-dev aptitude install libsqlite3 libsqlite3-dev Pj使う場合にはPj入れてください。割と普通にいけます(Debianだもの)。
BeagleBone Black Asterisk
に戻る。
ナビゲーション メニュー
個人用ツール
アカウント作成
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
ソースを閲覧
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
ヘルプ
広告
サイトコンテンツ
コミュニティ
Asterisk
Asterisk 18
Asterisk 20
Asterisk 22
IP電話機
購入情報
導入事例
回線接続
ベンダー
ひかり電話
セキュリティ
イベント情報
スペシャル
Asterisk pjsip
ABS
黒電話 ハック
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報