匿名

差分

BeagleBone Black Asterisk

6,973 バイト追加, 2015年3月27日 (金) 18:58
最近の
のように指定して行います。これでマイクロ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 -Syuwget,nslookupとかpatchが入っていないので<br> pacman -S wget pacman -S dnsutils pacman -S patchGCC/G++ pacman -S gccGNU make pacman -S makeSqlite3を入れます pacman -S sqlitelibxml2も入れます pacman -S libxml2MP3のソースを落とすには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-devPj使う場合にはPj入れてください。割と普通にいけます(Debianだもの)。