YANO's digital garage

Copyright ©YANO All rights reserved. https://www.bravotouring.com/~yano/

Last-modified: 2024-04-08 (月)


[一語一絵/IT系]

TrustyとPT2 / 2014-06-03 (火)

Ubuntu 14.04(Trusty Tahr)を入れたML110G7へのサーバ移行作業。

earthsoft PT2
アースソフト PT2

F-PLUG[External]Bluetoothペアリングが解除される問題が残っているものの、それ以外は特に問題無い事が確認出来たので全面的にML110G7へ移そうかと思ったのだが、ML110G7には[External]PCIスロットが全く無いのでPT2が浮いてしまう事に気付いた。

改めて整理するとGT110b自体は昨年2月にB75マザー[External]GIGABYTE GA-B75M-D3Hへ喚装済み。という事はハード的にはUSB3.0やSATA3.0もReadyで、問題の根幹はOSであるUbuntu 10.04が古い事に尽きる。

とは言えアップデートに手間取ってGT110bを長時間止めるわけにもいかないのでML110G7へ移行すべしと相成ったわけだが、クリティカルなサービスはML110G7に移行してしまったので、改めてGT110bをアップデートしてみる事にする。

まずはML110G7の時と同じ手順で、ターミナルから

yano@GT110b:~$ sudo apt-get install update-manager-core
yano@GT110b:~$ sudo do-release-upgrade -d
を投入する手順でトライしてみたが、どうもCPAN/Perl絡みで残骸由来の不整合が残っている(俗に言う「腐った」状態)らしくエラー終了してしまった。

10.04からだと12.04、14.04と2段階上げなければならない事も考慮してオンラインアップグレードを諦め、CD-ROMからクリーンインストールを実施。欲張ったのが災いした区画設定のミスなどでやり直す羽目にも陥ったが、3度目の正直で無事導入完了。

なお、B75マザー[External]GIGABYTE GA-B75M-D3Hでもbiosdevnameの問題が発生。/etc/default/grubGRUB_CMDLINE_LINUX_DEFAULT

# GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX_DEFAULT="nosplash biosdevname=0"
GRUB_CMDLINE_LINUX=""
と追記して、
$ sudo update-grub2
とする必要があった。

さてカードリーダーSCR3310-NTTComのインストールは

yano@GT110b:~$ sudo apt-get install libccid pcsc-tools libpcsclite-dev pcscd
yano@GT110b:~$ sudo pcsc_scan
でOK。pt3_drvML110G7に展開したhttps://github.com/m-tsudo/pt3.gitのソースツリーをコピー&インストールして、
blacklist earth-pt1
と書いた/etc/modprobe.d/blacklist-earth-pt1.confを用意するだけでOKかと思いきや、
yano@GT110b:~$ sudo modprobe pt3_drv
とやっても/dev/pt3video?ができない問題に直面。

いろいろと調べてみてもよくわからなかったのだが、一晩置いてよく考えたらGT110bに実装しているのはPT3ではなくPT2なので、pt3_drvではなくpt1_drvが正解。いくらpt3_drvをロードしたところで/dev/pt3video?ができないのは当たり前というオチだった。

しかし、手元のpt1_drvをrebuildすると
yano@GT110b:~/software/tv/pt1_drv$ make
make -C /lib/modules/`uname -r`/build M=`pwd` V=0 modules
make[1]: Entering directory `/usr/src/linux-headers-3.13.0-27-generic'
  CC [M]  /home/yano/software/tv/pt1_drv/pt1_pci.o
/home/yano/software/tv/pt1_drv/pt1_pci.c:48:23: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__devinitdata’
static char version[] __devinitdata =
                       ^
/home/yano/software/tv/pt1_drv/pt1_pci.c:697:22: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘pt1_pci_init_one’
static int __devinit pt1_pci_init_one (struct pci_dev *pdev,
                      ^
/home/yano/software/tv/pt1_drv/pt1_pci.c:923:23: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘pt1_pci_remove_one’
static void __devexit pt1_pci_remove_one(struct pci_dev *pdev)
                       ^
/home/yano/software/tv/pt1_drv/pt1_pci.c:989:12: error: ‘pt1_pci_init_one’ undeclared here (not in a function)
  .probe  = pt1_pci_init_one,
            ^
/home/yano/software/tv/pt1_drv/pt1_pci.c:990:2: error: implicit declaration of function ‘__devexit_p’ [-Werror=implicit-function-declaration]
  .remove  = __devexit_p(pt1_pci_remove_one),
  ^
/home/yano/software/tv/pt1_drv/pt1_pci.c:990:25: error:: ‘pt1_pci_remove_one’ undeclared here (not in a function)
  .remove  = __devexit_p(pt1_pci_remove_one),
                         ^
/home/yano/software/tv/pt1_drv/pt1_pci.c: In function ‘pt1_pci_init’:
/home/yano/software/tv/pt1_drv/pt1_pci.c:1002:25: error: ‘version’ undeclared (first use in this function)
  printk(KERN_INFO "%s", version);
                         ^
/home/yano/software/tv/pt1_drv/pt1_pci.c:1002:25: note: each undeclared identifier is reported only once for each function it appears in
/home/yano/software/tv/pt1_drv/pt1_pci.c: At top level:
/home/yano/software/tv/pt1_drv/pt1_pci.c:182:13: warning: ‘pt1_thread’ defined but not used [-Wunused-function]
static int  pt1_thread(void *data)
             ^
cc1: some warnings being treated as errors
make[2]: *** [/home/yano/software/tv/pt1_drv/pt1_pci.o] Error 1
make[1]: *** [_module_/home/yano/software/tv/pt1_drv] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-3.13.0-27-generic'
make: *** [pt1_drv.ko] Error 2
yano@GT110b:~/software/tv/pt1_drv$
という残念な結果になった。どうやら「__devinitdata」というキーワードが見つからないようだ。

エラーの内容を頼りに辿り着いた[External]Linux/テレビ関連/PT2 - PukiWiki Plus!あたりを読むと、上記エラーは「kernel3.8でビルドに失敗する」という既知の問題であり、pt1_drvの最新(TS split内蔵)版であるhttp://hg.honeyplanet.jp/pt1.oyama/でも対処されているハズだ…という事だったので、

yano@GT110b:~$ cd ~/software/tv
yano@GT110b:~/software/tv$ sudo apt-get install mercurial pkg-config libupnp-dev libdlna-dev yasm zlib1g-dev libfaac-dev libx264-dev
yano@GT110b:~/software/tv$ hg clone http://hg.honeyplanet.jp/pt1.oyama/ pt1_driver_oyama
requesting all changes
adding changesets
adding manifests
adding file changes
added 186 changesets with 1018 changes to 674 files
updating to branch default
73 files updated, 0 files merged, 0 files removed, 0 files unresolved
yano@GT110b:~/software/tv$ cd ~/software/tv/pt1_driver_oyama
yano@GT110b:~/software/tv/pt1_driver_oyama$ cd pt1_driver_oyama
yano@GT110b:~/software/tv/pt1_driver_oyama$ ./configure
No pt3 checkout, press enter to download one with git or CTRL+C to abort

Cloning into 'pt3'...
remote: Reusing existing pack: 577, done.
remote: Total 577 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (577/577), 141.36 KiB | 122.00 KiB/s, done.
Resolving deltas: 100% (406/406), done.
Checking connectivity... done.
Checking for compiler available...
Checking for locales ...
Checking for ifaddrs ...
~~~~ 中略 ~~~~
Creating config.mak ...
Creating config.h ...
yano@GT110b:~/software/tv/pt1_driver_oyama$ make
~~~~ 中略 ~~~~
make[2]: Leaving directory `/usr/src/linux-headers-3.13.0-27-generic'
make[1]: Leaving directory `/home/yano/software/tv/pt1_driver_oyama/pt3'
yano@GT110b:~/software/tv/pt1_driver_oyama$ sudo make install
~~~~ 中略 ~~~~
install -d /lib/modules/`uname -r`/kernel/drivers/video
install -m 644 pt3_drv.ko /lib/modules/`uname -r`/kernel/drivers/video
depmod -a `uname -r`
make[1]: Leaving directory `/home/yano/software/tv/pt1_driver_oyama/pt3'
yano@GT110b:~/software/tv/pt1_driver_oyama$
という手順で導入。再起動後、/dev/pt1video?ができてたのでOK。Cloning into 'pt3'...という出力から、どうやらpt3_drvもセットになっているようだ。

続いてLinuxとPTnに倣ってrecpt1epgdumpr2epgrecを導入。番組表が取得できたのにキーワードによる自動録画予約ができなかった場合は、/etc/at.denyからwww-dataを除外するのも忘れずに。

【参照】
●Ubuntu Wiki https://wiki.ubuntu.com/
Releases
LucidLynx 10.04
TrustyTahr 14.04
●PukiWiki Plus! http://baalzephon.no-ip.org/
Linux/テレビ関連/PT2
●録画予約システムepgrec http://www.mda.or.jp/epgrec/
epgrec/epgrec.git/summary
●アースソフト http://earthsoft.jp/
PT1/PT2 共通目次
●pt1.oyama http://hg.honeyplanet.jp/pt1.oyama/
●Wikipedia http://ja.wikipedia.org/wiki/
Bluetooth
Peripheral Component Interconnect