「ubuntu」カテゴリーアーカイブ

Postfixのcorruptメールを削除

Postfixのスプールに溜まったcorruptメールをきれいに削除する方法。

メールの配送状況の確認はmailqコマンドを使用します。このコマンドを実行すると、どのメールが処理中で、どのメールが配信にエラーが起きて溜まっているかを確認できます。

普通はmailqを実行して配信エラーが無いか確認するだけで十分なのですが、あるとき気が付いたらMuninのPostfixの状況を示すグラフの値がいつもと違っていました。普段corruptキューの値は0なのですが、このcorruptが1になっていました。

実際にPostfixのcorruptディレクトリーを確認すると、確かにC961B3Fというファイルが作成されていました。この時mailqコマンドを実行してもC961B3Fというidは存在しませんでした。

Postfixのキューに溜まったエラーメールを削除するには、postsuperコマンドの-dオプションを使用します。そこで次のようにしてcorruptメールを削除しようとしました。

postsuper -d C961B3F

しかしmailqに表示されない、すなわちキューに登録されていないのでこのコマンドでは削除する事ができませんでした。

そこで最後の手段でスプール上のファイルを直接削除しました。

find /var/spool/postfix -name C961B3F -delete

rmコマンドで削除しても同じですが、Postfixは関連ファイルを他のディレクトリーにも作成しているのでfindコマンドで検索と削除を同時に実行しました。いきなり削除が怖い場合は、-deleteオプションの代りに-printオプションを使用して指定ファイルの検索のみを実行すると安心です。

LPC810のプログラムをUbuntuで開発する

  • LPC810の公式開発環境LPCXpressoは、Linux版が用意されている。無料版のLPCXpressoは開発できるプログラムの大きさに制限があるが、コンパイラの最適化に制限はない。
  • 公式の開発環境を使用しないでもプログラムを作成することができる。
  • LPC810にプログラムを書き込むにはlpc21ispを使用する。
  • Ubunt上に開発環境をセットアップして、実際にLEDをチカチカさせるプログラムで動作確認を行った。

2014-01-13_2

先日秋月のWebページを散歩していたら、Androidに使われているのと同じアーキテクチャのARMマイコンコーナーにたった8ピンしかないARMマイコンLPC810を見つけました。たった8ピンのDIPパッケージとはまるでPICマイコンかタイマーICの555みたいです。それにおもしろいことにLPC810には内蔵機能を使うための関数がROMとして初めから組み込まれています。これならフラッシュ領域以上の働きをするプログラムを作成できます。しかし、その時は「へー」で終わっていました。

ところが昨日本屋さんに寄ったら、その8ピンARMマイコンLPC810が付録になっているトランジスタ技術を見つけました。ちょうど年末から電子工作に目覚めてLEDをチカチカさせて遊んでいる所だったので、週末ちょっと遊ぶには良いかもとオマケのLPC810目当てにトランジスター技術を買って来ました。

今回はUbuntu(Linux)で開発環境を整えて、動作確認のためにLEDをチカチカさせるところまでやってみました。

LPCXpressoをインストール

Windows向けに無料の開発環境があるのは当たり前になっていますが、Ubuntu(Linux)環境でソフトを開発するにはコンパイラ等のツールを準備するのが大変かなと覚悟していました。しかし案ずるよりは産むが安し、Windowsと同じLPCXpressoがLinux向けに提供されていました。なので開発環境を準備するには、公式ページからLinux向けのインストーラをダウンロードしてインストールするだけでした。

tar zxf Installer_LPCXpresso_6.1.2_177_Linux-x86.tar.gz
./Installer_LPCXpresso_6.1.2_177_Linux-x86

LPCXpressoをインストールするには管理者権限が有無を言わせず要求されます。sudoを付けないで起動すると、ダイアログが表示されて管理者権限を取得するパスワードの入力を求められました。

無料版のLCPXpressoは、開発できるプログラムサイズに制限がありますが、コンパイラの最適化などに制限はないようです。インストール後にアクティベーションをするとプログラムサイズの上限が256KBに引き上げられます。もっともLPC810のプログラム領域は4KBなのでアクティベーションをしなくても困らないと思います。

GUIが不要ならば

もしどうしても公式のGUI開発環境を使いたくないということであれば、GNUツールを使っても開発は可能です。

開発に必要なGCCは次のようにインストールします。

sudo add-apt-repository ppa:terry.guo/gcc-arm-embedded
sudo apt-get update
sudo apt-get install gcc-arm-none-eabi

もしかするとLPCXpressoのコンパイラー(これもGCC)をコマンドラインから使えるかもしれません。

プログラムを書き込むツールをインストール

出来あがったバイナリー(hexファイル)は、lpc21ispというプログラムを使ってコマンドラインから書き込みます。このコマンドがシリアル回線を使ってプログラムをLPC810に書き込んでくれます。

lpc21ispのインストールは次のように行います。Ubuntu 13.10ならば既にレポジトリにlpc21ispが登録されているので直接installに進めます。

sudo add-apt-repository ppa:kamalmostafa/lpc21isp
sudo apt-get update

sudo apt-get install lcp21isp

Switch Matrixツール

今回のテストには不要ですが将来LPC810の各ピンに割り当てられている機能を変更する場合、設定にはWebベースのツールLPC Initializer and pinmuxが使えます。

動作確認にLチカ

LEDを点滅させるLチカ用プログラムは、ただの動作確認なのでGithubに公開されているLPC810 CodeBaseを使うのが便利です。

git clone https://github.com/microbuilder/LPC810_CodeBase.git

このプロジェクトをLPCXpressoにインポートしてビルドするか、srcディレクトリーに移ってmakeしてLチカプログラムのhexファイルを作成します。

回路の組立

LPC810 CodeBaseはPIO0_2(4番ピン)にLEDを接続する事を想定して書かれているので、それに合わせて次のような回路を組み立てます。

2014-01-13_1

LPC810のデータシートを確認するとPIO0_2とPIO0_3はIOHが最低20mAと他(4mA)に比べてドライブ能力が高いのでH出力でLEDが点灯するようにしても大丈夫です。LEDは何でもいいのですが、私はお手軽な抵抗内蔵LEDを使っています。

また電源電圧が最高3.6Vということにも注意が必要です。お手軽安定電源であるUSBの5Vをつなぐと壊れます。今回のテスト程度ならば、USB-シリアル変換モジュールの3.3V出力を使えるかもしれませんが、今後を考えると3.3Vの電源を確保しておくことが必要です。

Lチカを書き込む

作成したプログラムは、次の手順で書き込みます。

  1. ISPモードにするため、5番ピンをGNDに落とした状態でリセットします。
  2. 次のコマンドでプログラムを書き込みます。
    sudo lpc21isp blinky.hex -term /dev/ttyUSB0 115200 12000
    

    -termオプションでプログラム書き込み後にターミナルモードに移行し、LPC810で実行されるLチカプログラムの出力を待ちます。通信速度を変更しても書き込みに問題はありませんが、Lチカプログラムからの出力が文字化けします。

  3. ISPモードから抜けるために、5番ピンをオープンにしてリセットします。問題無ければプログラムが実行されてLEDが点滅して、ターミナルには「Hello, LPC810!」という文字列が次々に表示されます。
  4. ESCを押すとlcp21ispが終了します。

参照

USBメモリーからUbuntu Serverをインストール

サーバ向けUbuntuをUSBメモリーから新規インストールしようとしたら、途中でエラーが出てインストール出来なかった。原因は、ISOイメージをUSBメモリーに書き込むアプリ(Unetbootinなど)がサーバ向けUbuntuのISOイメージを正しく変換できないこと。サーバ向けUbuntuのISOイメージは、書き込みソフトを使わずにUSBメモリーにddコマンドなどでそのまま書き込むとインストールできる。

Ubuntu 12.10以降のデスクトップ版のISOイメージファイルのサイズがCDの最大容量を越えてしまい、イメージファイルはDVDに焼くかUSBメモリーに書き込んでインストールするようになりました。Ubuntuのサーバ版はまだCDに収まるサイズですが、デスクトップ版と同じくUSBメモリーに書き込んでインストールしてみました。

USBメモリーを使ったインストール方法

USBメモリーからのインストールは、CD-RにISOイメージを焼く代わりに変換ソフトを使ってUSBメモリーに書き込みます。その後は通常のインストール手順と全く同じです。

  1. 配布されているISOイメージファイルをダウンロードします。USBメモリーに書き込むソフトにダウンロード機能が付いている物もありますが、ネットワーク的に近いところからダウンロードしておいた方が時間の節約になります。
  2. ダウンロードしたISOイメージファイルをUnetbootinなどのソフトを使ってUSBメモリーから起動できるように変換してUSBメモリーに書き込みます。
  3. UbuntuをインストールしたいマシンにUSBメモリーを挿しこみ、このメモリーから起動させます。
  4. 指示に従ってUbuntuをインストールします。

サーバ版のUbuntuはUSBメモリーからインストールできない

デスクトップ版の場合はこれで問題なくインストールできるのですが、サーバ版のUbuntuをこの方法でインストールしようとすると最後のところで次のようなエラーが表示されてインストールに失敗してしまいました。

IMG_0280

ISOイメージが壊れているのかと思い何ヵ所かの違ったミラーサイトからダウンロードしてみましたが同じようにインストールに失敗しました。またOSのバージョンに問題があるのかと思いUbuntu 12.04 LTSではなく最新の13.04も試してみましたが、これも同じくインストールに失敗しました。

確認のためデスクトップ向けのUbuntuを試してみると、こちらはUbuntu 12.04 LTSと13.04の両方とも問題なくOSをインストールできました。

USBメモリーに書き込むソフトの問題かと思いUnetbootinからLinux Live USB Creatorに変えてみましたが、これも上と同じくデスクトップ向けのUbuntuはインストールできるがサーバ向けだとインストールに失敗しました。

これらの結果からサーバ版のUbuntuはISOイメージファイルをUSBメモリーに書き込むソフトが正しく変換できないためにインストールに失敗するのだと結論しました。

サーバ版のISOイメージはddコマンドでUSBメモリーに書き込む

ここでもう一度Googleで検索すると、まさにこの問題について書かれたページが見つかりました。そのページからUbuntuのバグ情報ページに進むと解決方法が書かれていました。

解決方法はシンプルで次のどちらかです。

  • USBメモリーを使わずCD(DVD)からインストールする。
  • ISOイメージファイルをべた書きツールを使ってUSBメモリーに書き込む。

そこでLinuxのべた書きコマンドddを使って次のようにサーバ向けのUbuntu 12.04 LTSをUSBメモリーに書き込んだところ、問題なくインストールに成功しました。

sudo dd if=ubuntu.iso of=/dev/sdb bs=4096

注意:ofに指定するデバイスファイル名は、環境・マシンにより異なります。この出力先ファイル名を間違えると悲惨な結果になります。

Windowsでddコマンド同じ働きをするアプリはDD for Windows(DDWin)で、これでも同じようにインストール出来る事を確かめています。

Windowsでの再利用にはUSBメモリーを完全フォーマットする

インストールに使用したUSBメモリーはISOファイルシステムになっています。そのため通常のUSBメモリーとしてWindowsで使用するには、クイックフォーマットではなく完全なフォーマットをしてWindowsのファイルシステムにする必要があります。

試した書き込みソフトとUbuntuのバージョン

ISOイメージファイルをUSBメモリーに書き込むには、次の3つを使用しました。

  • Windows版 unetbootin-585
  • Linux版 unetbootin
  • Windows版 Linux Live USB Creator(2.8.18)

ISOイメージファイルは、次の四種類を試しました。括弧内は、ISOイメージファイルを変換してUSBに書き込むソフトを使った場合のインストール結果です。

  • ubuntu-12.04.3-sever-amd64.iso(インストール失敗)
  • ubuntu-13.04-server-amd64.iso(インストール失敗)
  • ubuntu-13.10-server-amd64.iso(インストール失敗)
  • ubuntu-13.04-desktop-amd64.iso(インストール成功)

Ubuntu11.10でも自動ログインでGNOME Classicを使いたい

Ubuntu11.10(Oneiric Ocelot)でクラシック・デスクトップ環境(GNOME Classic)を使うには、gnome-session-fallbackをインストールする。ただし自動ログイン(オートログイン)にすると強制的にデスクトップ環境がUnityになってしまう。自動ログインでもクラシック環境を使うには、lightdm.confを修正する。

Ubuntuのユーザインタフェースは、11.04(Natty Narwhal)からGNOMEを使いながら独自のデスクトップ環境であるUnityが採用されました。しかし11.04では移行期間ということで、Unityだけでなく以前のデスクトップ環境(クラシック)も標準でインストールされていました。そのため新しいデスクトップ環境のUnityに馴染めないユーザは、ログイン画面でクラシック環境を選ぶだけで、これまでとほぼ同じクラシック環境を使うことができました。

しかしUbuntu11.10(Oneiric Ocelot)は、デスクトップ環境が全面的にUnityに移行ました。そのため標準でインストールされているデスクトップ環境がUnityのみとなり、クラシック環境はインストールされていません。

クラシック・デスクトップ環境をインストール

Ubuntu11.10でクラシック・デスクトップ環境を使用するには、そのためのパッケージ(gnome-session-fallback)をインストールする必要があります。

sudo apt-get install gnome-session-fallback

パッケージをインストールした後で一度ログアウトすると、歯車アイコンの選択できるデスクトップ環境にGNOME Classicが現れるようになります。これを選んでログインすると、これまでとほぼ同じクラシック・デスクトップ環境を使用できるようになります。

自動ログインにすると強制的にUnityになる

UbuntuなどLinuxは、複数のユーザが一台の機械を使用できるOSです。そのため使用する前には、自分が誰であるかをログインにより教えてあげる必要があります。さもないと一緒に使う他のユーザに悪意は無くてもファイルを変更されたり削除されてしまう可能性があります。

とは言ってもUbuntuのデスクトップ版は、そのマシンの所有者だけが使うことが多いと思います。そのため他の人に使われるリスクを受け入れれば、ログインを飛ばしてデスクトップが表示される自動ログインの機能があります(*1)。自動ログインを有効にするには、ユーザの設定で自動ログインボタンを「オン」にするだけです。

Ubuntu11.04までは、自動ログインにすると現在のデスクトップ環境が保存されていました。しかし11.10では、強制的にUnity環境になってしまいます。

*1 パソコン上のOSでは、パスワードはただのオマジナイです。ファイル自体を暗号化してお無い限り、CD-ROMなどから起動させてファイルの読み書きが自由にできてしまいます。

自動ログインでもクラシック環境を使うには

自動ログインでクラシック・デスクトップ環境を使用するには、設定ファイルの書き換えが必要となります。具体的にはlightdm.confファイルを修正します。

lightdm.confファイルを修正するには、2つの方法があります。一つ目は、単純にファイルをエディタで書き変える方法です。

sudo nano /etc/lightdm/lightdm.conf

user-session=ubuntuをuser-session=gnome-classicに書き変えます。

もう一つは、コマンドを使って書き変える方法です。

sudo /usr/lib/lightdm/lightdm-set-defaults -s gnome-classic

lightdm.confファイルを修正して再起動すると、自動ログインしてもクラシック・デスクトップ環境が現れます。

ちなみにuser-sessionの値をubuntu-2dにすると、Unityの2D版になります。

Unityを使うと決めた理由

Unityは使いにくいなと思っていたのでクラシック環境を使って来ました。しかし、これからはUnityにします。

クラシック環境からUnityに移行する主な理由は次の二点です。

クラシック・デスクトップ環境は、これまでのデスク環境とは言っても「ほぼ」で、全く同じではありません。特に違いで気になったの良は、画面下部の起動しているアプリケーションが表示されるバーです。これまでのバーには、自動的に隠す機能がありました。しかしUbuntu11.10のクラシック・デスクトップ環境では、バーが常に表示されたままです。そのためバーの分だけ画面が狭くなってしまいます。

Unityは、画面左にアプリケーションを起動させるボタンが表示されます。これは便利なのですが、既に起動しているアプリケーションのボタンをクリックしても複数は起動しません。この問題は、良く使うアプリケーションをキーボード・ショートカットに登録することで解決しました。これならば好きなだけ起動できる上に、いちいちボタンをクリックする手間も省けて一石二鳥です。

参考:How do I change the default session for LightDM when using auto-logins?

メールログは、mail.logへ

postfixのログをsyslogに書き込まないでmail.logだけに書き込む設定

postfixは、メールがどこから来てどこに送ったのかを細かくログファイルに記録します。しかし同じ記録をmail.logだけではなくsyslogにも書き込むのが難点です。これは、無駄というだけではなく、syslogの大事な記録がメールログに埋まってしまい見落としてしまいます。

メールログが二ヶ所に記録される理由

syslogとmail.logに書きたすのは、rsyslogプログラムです。postfixからmailという属性のログが送られてくるので、そのログの属性と優先順位に応じてrsyslogが適切なファイルに書き込んだりします。

Ubuntuを例にするとrsyslogの設定ファイルは次のようになっています(不要な部分を省略しています)。

# cat /etc/rsyslog.d/50-default.conf
*.*;auth,authpriv.none             -/var/log/syslog
mail.*                          -/var/log/mail.log

これは、次のような意味です。

  • 全てのログは、/var/log/syslogに記録する。ただしauthとauthpriv属性のは除く。
  • mail属性のログは、/var/log/mail.logに記録する。

このようにmail属性を記録するエントリーが二ヶ所にあるので、mail.logだけでなくsyslogにもログが記録されます。

rsyslogの設定を修正

メールログをsyslogに記録しないようにするには、authとauthpriv属性と同じくmail属性のログを除くようにすれば良いということです。

*.*;mail,auth,authpriv.none             -/var/log/syslog
mail.*                          -/var/log/mail.log

本来は、mail属性のログを除くという意味でmail.noneと書くのですが、まとめてmail,auth,authpriv.noneと書けます。

rsyslogの再起動

rsyslogの設定ファイルを修正しただけでは、現在起動しているrsyslogに設定が反映されません。そこで設定を反映させるためにserviceコマンドまたはrestartコマンドでrsyslogを再起動させます。

# service rsyslog restart
rsyslog start/running, process 16059

# restart rsyslog
rsyslog start/running, process 20358

rsyslogプログラムを再起動させるには、/etc/init.d/rsyslog restartでも良いのですが、次のように怒られてしまいます。

# /etc/init.d/rsyslog restart
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service rsyslog restart

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the stop(8) and then start(8) utilities,
e.g. stop rsyslog ; start rsyslog. The restart(8) utility is also available.
rsyslog stop/waiting
rsyslog start/running, process 17137

virbr0を削除する

KVMのdefaultネットワークが作るvirbr0を削除します。

UbuntuにKVMをインストールすると、漏れなくvirbr0が作成されます。このインタフェースを使えばKVMゲストは、DHCHサーバの機能でIPアドレスが自動で割り振られ、外部ともNATを通して通信できます。

しかし外部からゲストに接続するには、このインタフェースよりも新たにブリッジインタフェースを作成した方が簡単でパフォーマンスも良くなります。そこで使わないインタフェースを残しておいても無駄なので、virbr0を削除します。

ネットワークの状態を確認する

KVMが管理しているネットワークの情報は、次のコマンドで調べられます。

% virsh net-list
Name                 State      Autostart
-----------------------------------------
default              active     yes

defaultネットワークが有効になっていて、起動と同時に作成されるようになっています。

このdefaultネットワークがvirbr0を作っているか確認しておきます。

% virsh net-dumpxml default
<network>
  <name>default</name>
  <uuid>8ad90928-22a5-38f5-4927-1932584efb64</uuid>
  <forward mode='nat'/>
  <bridge name='virbr0' stp='on' delay='0' />
  <ip address='192.168.122.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.122.2' end='192.168.122.254' />
    </dhcp>
  </ip>
</network>

間違いなくdefaultネットワークがvirbr0インタフェースを作っています。

virbr0を削除する

virbr0を削除するにはdefaultネットワークを削除します。

% virsh net-destroy default
Network default destroyed

virbr0が再起動したときに作成されないようにする

virbr0は、再起動すると自動的に作成されるようになっています。そのため再起動しても自動的にdefaultネットワークが作られないように設定を変えておく必要があります。

% virsh net-autostart default --disable
Network default unmarked as autostarted

defaultネットワークの設定確認

ネットワークが削除されて、再起動しても作成されないようになっているか確認します。削除されたネットワークなので、状態を表示させるのに–allオプションが必要になります。

% virsh net-list --all
Name                 State      Autostart
-----------------------------------------
default              inactive   no

Ubuntu 11.04(Natty)とPT2で地デジ対策

これまでUbuntu 9.10なんていう1年半前の古いLinuxを使っていました。理由は、バージョンアップしてテレビが見られなくなると困るから。しかし、先日Ubuntu 11.04が公開されたことに触発されやっと最新版のUbuntuにバージョンアップしました。

バージョンアップ自体は簡単に終了したのですが、やっぱりテレビを見られなくなってしまいました。しかし既に多くの方がUbuntu 10.04LTSや最新版の11.04で地デジを見られるようにする方法を公開されています。これは、それらを参考にしてテレビを見られるようにした記録です。

スタート時のシステム

  • OS:Ubuntu Server(64bit)版 10.04LTS
  • テレビチューナー:PT2
  • スマートカードリーダー:SCR3310-NTTCom
  • これまでテレビを見られていたので、画像を復号化するb25など必要なライブラリーとパッケージはインストール済み。アップデートのあるものは、バージョンアップに合わせて自動でアップデートされている。

バージョンアップした後の症状

  • テレビを見ようとすると、
    Cannot tune to the specified channel

    というエラーが出る。

状態の確認

lspci|grep Multimedia
	03:00.0 Multimedia controller: Xilinx Corporation Device 222a (rev 01)
lsmod |grep pt1
	なし

チューナーが見つからないということらしい。

対策

  • 他のドライバーに取られないようにブラックリストに入れておく。

    具体的には/etc/modprobe.d/blacklist.confを編集して、「blacklist earth-pt1」という一行を加えておく。参照:PT2をUbuntu(10.04以降)で動かすには(ブックマクロ開発に)

  • PT2のドライバーとソフトを最新にする。b25ライブラリーは、既にインストールしてあるので、今回はオプションを指定するだけで良い。参照:64bit版Ubuntu10.04にPT2とFoltiaHDを入れてiPhoneでアニメを見ながら通勤する

    sudo apt-get install mercurial
    hg clone http://hg.honeyplanet.jp/pt1/ PT2
    cd PT2/driver
    make
    sudo make install
    cd ../recpt1
    ./autogen.sh
    ./configure --enable-b25
    make
    sudo make install

    新しくしたドライバーを組み込むには、

    sudo modprobe pt1_drv

    または再起動する。

動作確認

lsmod |grep pt1
	pt1_drv                31482  0
ls /dev/pt1*
	/dev/pt1video0  /dev/pt1video1  /dev/pt1video2  /dev/pt1video3

以上で完了。これでまたテレビを見られるようになりました。

Ubuntu 11.04の場合

さらに最新のUbuntu 11.04にバージョンアップして10.04LTSの時と同じくドライバーと試聴プログラムをインストールし直してもテレビを見ることができませんでした。

11.04にアップした後の症状

  • Ubuntu 10.04の時は、スマートカードリーダーのLEDは点滅していた。これが、Ubuntu 11.04にバージョンアップしたら点灯したままになった。

  • テレビを見ようとすると

    bcas->init failed
    Cannot start b25 decoder
    Fall back to encrypted recording

    というエラーメッセージが表示されてテレビを見られない。

対策

色々なブログを読んで回ったところ、最新のスマートカード関連プログラムに問題があるようです。解決方法は、スマートカード関連プログラムをダウングレードすること。参照:Ubuntu 11.04 AMD64にPT2をインストールする。(覚え書きその他)

  • まず使えない最新のスマートカード関連プログラムを削除する。

    apt-get remove pcscd libpcsclite-dev libpcsclite1 libccid

  • /etc/apt/sources.listを編集して

    deb http://jp.archive.ubuntu.com/ubuntu/ natty universe
    deb http://jp.archive.ubuntu.com/ubuntu/ natty-updates universe

    の2行を

    deb http://jp.archive.ubuntu.com/ubuntu/ maverick universe
    deb http://jp.archive.ubuntu.com/ubuntu/ maverick-updates universe

    に書き換える。

  • これで

    apt-get install pcscd libpcsclite1 libccid (libpcsclite-devは不要)

    とやってパッケージをインストールすれば基本的にOKなのですが、pcscdのバージョン(1.5.5-3ubuntu2.1)と合っていないためか、ここでインストールされるlibpcsclite1(1.7.0-2ubuntu2)ではダメでした。

  • より古いlibpcsclite1_1.5.5-3ubuntu2.1を探して来てインストールする。

    ミラーサイト一覧で適当なサイトを見つけて、ダウンロードとインストールする。

    wget http://ftp.jaist.ac.jp/pub/Linux/ubuntu//pool/main/p/pcsc-lite/libpcsclite1_1.5.5-3ubuntu2.1_amd64.deb
    dpkg -i libpcsclite1_1.5.5-3ubuntu2.1_amd64.deb

  • 最後に残りのパッケージをインストールする。この時「natty-updates」を上のように「maverick-updates」に書き変えておかないと、せっかくインストールしたlibpcsclite1_1.5.5-3ubuntu2.1がアップグレードされてしまいます。

    apt-get install pcscd libccid
  • 最後に書き変えたsources.listを元に戻しておきます。

これで地デジ対策完了。また「ペンギンズ」と「ヒツジのショーン」を見られるようになりました。

このままだと、次回アップデートするとスマートカード関連パッケージがアップデートされてしまいます。アップデートさせない方法もあるようですが、本当にアップデートしたい時にどうしたらいいのか分からなくなりそうです。そこでアップデートしてしまったら、またこれと同じ手順を繰り返せばいいやと思っています。

パッケージのバージョンを固定する方法は、PandaboardにUbuntu+地デジサーバを(地デジサーバソフト編)(Talk Like Singing)を参照して下さい。