2010年1月12日火曜日

Ubuntu9.10はスリープから復帰すると音が出ない

Ubuntu9.10は一旦スリープして、それを解除して使い始めると、音が出ない、と言うバグがあります。
いっつも思うんですが「今まで問題が生じなかった」のに、ヴァージョン上がって問題が出ると腹が立つものです。
僕の場合は、OS「自体」にさほど興味が無いんで、どっちかというとLTSが良けりゃあ、LTSを二年間くらい使いつづけたいタイプなんです。ホントUbuntuのLTSには「安定した」OSになって欲しいものですね。

Ubuntuの本家コミュニティでは、このバグに対して、次のような解決策を提示していました。


  1. sudo gedit /etc/init.d/alsa-utilsとしてalsaの設定ファイルを開く。



  2. f a card identifier is provided in $2 then regard it as an error
    # if that card is not present; otherwise don't regard it as an error.

    case "$1" in
    start)
    EXITSTATUS=0
    TARGET_CARD="$2"
    case "$TARGET_CARD" in
    ""|all) TARGET_CARD=all ; log_action_begin_msg "Setting up ALSA" ;;
    esac
    if ! card_OK "$TARGET_CARD"; then
    [ "$TARGET_CARD" = "all" ] && log_action_end_msg "$( [ ! "$2" ] ; echo $? ; )" "none loaded"
    exit $?
    fi
    preinit_levels "$TARGET_CARD" || EXITSTATUS=1
    if ! restore_levels "$TARGET_CARD" ; then
    sanify_levels "$TARGET_CARD" || EXITSTATUS=1
    restore_levels "$TARGET_CARD" >/dev/null 2>&1 || :
    fi
    [ "$TARGET_CARD" = "all" ] && log_action_end_msg_and_exit "$EXITSTATUS"
    exit $EXITSTATUS
    ;;
    stop)
    EXITSTATUS=0
    TARGET_CARD="$2"
    case "$TARGET_CARD" in
    ""|all) TARGET_CARD=all ; log_action_begin_msg "Shutting down ALSA" ;;
    *) log_action_begin_msg "Shutting down ALSA card ${TARGET_CARD}" ;;
    esac
    card_OK "$TARGET_CARD" || log_action_end_msg_and_exit "$( [ ! "$2" ] ; echo $? ; )" "none loaded"
    store_levels "$TARGET_CARD" || EXITSTATUS=1
    mute_and_zero_levels "$TARGET_CARD" || EXITSTATUS=1
    log_action_end_msg_and_exit "$EXITSTATUS"
    ;;
    restart|force-reload)
    EXITSTATUS=0
    $0 stop || EXITSTATUS=1
    $0 start || EXITSTATUS=1
    exit $EXITSTATUS
    ;;
    reset)
    TARGET_CARD="$2"
    case "$TARGET_CARD" in
    ""|all) TARGET_CARD=all ; log_action_begin_msg "Resetting ALSA" ;;
    *) log_action_begin_msg "Resetting ALSA card ${TARGET_CARD}" ;;
    esac
    card_OK "$TARGET_CARD" || log_action_end_msg_and_exit "$( [ ! "$2" ] ; echo $? ; )" "none loaded"
    preinit_levels "$TARGET_CARD"
    sanify_levels "$TARGET_CARD"
    log_action_end_msg_and_exit "$?"
    ;;
    *)
    echo "Usage: $MYNAME {start [CARD]|stop [CARD]|restart [CARD]|reset [CARD]}" >&2
    exit 3
    ;;
    esac

    の32行目の

    mute_and_zero_levels "$TARGET_CARD" || EXITSTATUS=1

    をコメントアウトして

    #mute_and_zero_levels "$TARGET_CARD" || EXITSTATUS=1

    とする。

  3. ファイルを保存する。


本家フォーラムではこれで問題が解決する、と言ってましたが・・・。
果たして!?

0 件のコメント:

コメントを投稿