min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

RaspberryPi 初代 mplayer の Segmantation Fault エラーの原因を探る

ラズパイ(初代)で便利にラジオを聴いていたんだけど、突然再生できなくなった。ラジを再生スクリプトを叩くと、mplayer が Segmantation Fault エラーで落ちている。

スクリプトはこれ。

$ vim play_tachikawa.sh

f:id:min117:20170806162133p:plain

エラーはこう。

f:id:min117:20170806162236p:plain

sudo apt-get -y update してみたけど改善しない。「SDカードを初期化して raspbian を再インストールする」という手もあるけど、それだと分からないことに蓋をしただけになってしまう(もしこれがインフラの本番環境だったらそんなことは絶対できないわけで)。今回はSegmantation Fault を真面目に調べてみることにする。

このへんが参考になりそう。

sarface2012.hatenablog.com

きになる記述はこのへん。

f:id:min117:20170806163229p:plain

まずは、ulimit -a して、設定情報を見る。

$ ulimit -a

f:id:min117:20170806162551p:plain

core file size が 0 なので、制限(limit)が掛かっているのが分かる。/etc/profile を編集して制限を解除する必要あり。

編集前に、/etc/profile をバックアップしておく。

f:id:min117:20170806163107p:plain

$ sudo vim /etc/profile

f:id:min117:20170806163757p:plain

↑ 最終行に「 ulimit -c unlimited > /dev/null 2>&1 」を追加。Pi を reboot する

$ sudo reboot

再起動後、もう一度 ulimit の設定を確認する。

$ ulimit -a

f:id:min117:20170806164509p:plain

core file size が unlimited になっている。うまく設定されたようだ。この状態で、Segmantation Fault を起こすと、/tmp 以下にダンプファイルができる とあるのでやってみる。

f:id:min117:20170806165018p:plain

たしかに、「 core dumped 」という表示が出た。/tmp に cd して、core ファイルがあるか見てみる。

$ sudo -s && cd /tmp

$ ll

f:id:min117:20170806170055p:plain

なんと、coreファイルが無い…Piは仕様が違うのか?調べる。