2011-11-01
Ubuntu11.10で録画用サーバ
Ubuntuを11.10にアップグレードしたのでその作業ログ。
必要なパッケージのインストール
sudo aptitude -y install ntp sudo aptitude -y install mercurial sudo aptitude -y install build-essential linux-headers-`uname -r` sudo aptitude -y install autoconf pkg-config sudo aptitude -y install php5 php5-mysql sudo aptitude -y install ffmpeg
後述するが、以下の操作はまだしなくて良い。
sudo aptitude -y install libccid pcsc-tools pcscd
時刻合わせ
/etc/ntp.conf の server をコメントアウトして、
server ntp.nict.jp server ntp.nict.jp server ntp.nict.jp
とかに。
sudo service ntp stop sudo ntpdate ntp.nict.jp sudo service ntp start
で即時調整。
ドライバのインストール
http://baalzephon.dyndns.org/tech/index.php?Linux%2Fテレビ関連%2FPT2
を参考に。
hg clone http://hg.honeyplanet.jp/pt1.oyama/ pt1_driver_oyama cd pt1_driver_oyama hg revert -r c44e16dbb0e2 --all hg revert -r tip --all
patchを適用。
cd driver patch < pt1_pci.c.patch make sudo make install
pt1_pci.c.patch
長い空白はTABだったりします。
--- a/driver/pt1_pci.c Sun Oct 24 21:50:50 2010 +0900
+++ b/driver/pt1_pci.c Tue Nov 01 21:47:13 2011 +0900
@@ -18,6 +18,13 @@
#include <linux/mutex.h>
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,23)
#include <linux/freezer.h>
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)
+#include <linux/spinlock.h>
+#else
+#include <linux/smp_lock.h>
+#endif
+#endif
#else
#define set_freezable()
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,11)
@@ -76,6 +83,7 @@
#define DMA_SIZE 4096 // DMAバッファサイズ
#define DMA_RING_SIZE 128 // RINGサイズ
#define DMA_RING_MAX 511 // 1RINGにいくつ詰めるか(1023はNGで511まで)
+#define MAX_READ_SIZE (1024 * 4)
#define CHANEL_DMA_SIZE (2*1024*1024) // 地デジ用(16Mbps)
#define BS_CHANEL_DMA_SIZE (4*1024*1024) // BS用(32Mbps)
@@ -144,6 +152,10 @@
#define PT1MAJOR 251
#define DRIVERNAME "pt1video"
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)
+static spinlock_t pt1_ioctl_spin_lock;
+#endif
+
static void reset_dma(PT1_DEVICE *dev_conf)
{
@@ -309,12 +321,12 @@
// 頻度を落す(4Kで起動させる)
for(lp = 0 ; lp < MAX_CHANNEL ; lp++){
channel = dev_conf->channel[real_channel[lp]] ;
- if((channel->size >= DMA_SIZE) && (channel->valid == TRUE)){
+ if((channel->size >= MAX_READ_SIZE) && (channel->valid == TRUE)){
wake_up(&channel->wait_q);
}
}
}
- schedule_timeout_interruptible(msecs_to_jiffies(1));
+ schedule_timeout_interruptible(msecs_to_jiffies(10));
}
return 0 ;
}
@@ -403,9 +415,9 @@
__u32 size ;
unsigned long dummy;
- // 4K単位で起こされるのを待つ(CPU負荷対策)
- if(channel->size < DMA_SIZE){
- wait_event_timeout(channel->wait_q, (channel->size >= DMA_SIZE),
+ // 128K単位で起こされるのを待つ(CPU負荷対策)
+ if(channel->size < MAX_READ_SIZE){
+ wait_event_timeout(channel->wait_q, (channel->size >= MAX_READ_SIZE),
msecs_to_jiffies(500));
}
mutex_lock(&channel->lock);
@@ -568,6 +580,25 @@
return -EINVAL;
}
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)
+static long pt1_unlocked_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
+{
+ long rc;
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)
+ spin_lock(&pt1_ioctl_spin_lock);
+#else
+ lock_kernel();
+#endif
+ rc = pt1_ioctl(file->f_path.dentry->d_inode, file, cmd, arg);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)
+ spin_unlock(&pt1_ioctl_spin_lock);
+#else
+ unlock_kernel();
+#endif
+ return rc;
+}
+#endif
/*
*/
static const struct file_operations pt1_fops = {
@@ -575,7 +606,11 @@
.open = pt1_open,
.release = pt1_release,
.read = pt1_read,
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)
+ .unlocked_ioctl = pt1_unlocked_ioctl,
+#else
.ioctl = pt1_ioctl,
+#endif
.llseek = no_llseek,
};
@@ -964,14 +999,17 @@
pt1video_class = class_create(THIS_MODULE, DRIVERNAME);
if (IS_ERR(pt1video_class))
return PTR_ERR(pt1video_class);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)
+ spin_lock_init(&pt1_ioctl_spin_lock);
+#endif
return pci_register_driver(&pt1_driver);
}
static void __exit pt1_pci_cleanup(void)
{
+ pci_unregister_driver(&pt1_driver);
class_destroy(pt1video_class);
- pci_unregister_driver(&pt1_driver);
}
module_init(pt1_pci_init);
録画用プログラムのインストール
これは必要ありません。
cd pt1_driver_oyama/arib25 make sudo make install cd ../recpt1 make sudo make install
modprobe
/etc/modprobe.d/blacklist.conf
の末尾に
blacklist earth-pt1
と追記。その後
sudo modprobe pt1_drv
録画テスト
recpt1 --b25 --strip 27 5 test.ts
これで
bcas->init failed Cannot start b25 decoder Fall back to encrypted recording
と表示されることがある。
Blogzine[ブログ人] とか Ubuntu 11.04 AMD64にPT2をインストールする。:覚え書きその他:So-netブログ を参考に、
/etc/apt/sources.list
の末尾に
deb http://ftp.jaist.ac.jp/pub/Linux/ubuntu maverick main universe deb-src http://ftp.jaist.ac.jp/pub/Linux/ubuntu maverick main universe deb http://security.ubuntu.com/ubuntu maverick-security main universe deb-src http://security.ubuntu.com/ubuntu maverick-security main universe
とか追記。
sudo aptitude update
sudo aptitude remove pcscd libpcsclite-dev libpcsclite1 libccid libpcsc-perl pcsc-tools
sudo aptitude install pcscd=1.5.5-3ubuntu2.1 libpcsclite1=1.5.5-3ubuntu2.1 libccid=1.3.11-1 libpcsc-perl=1.4.8-1 pcsc-tools=1.4.16-1
sudo cp /etc/libccid_Info.plist{.dpkg-dist,}
sudo aptitude hold pcscd libpcsclite-dev libpcsclite1 libccid libpcsc-perl pcsc-tools
epgrec新BSチャンネル対応版
ダウンロード - epgrec - SourceForge.JPからダウンロード。
recpt1
cd pt1-7662d0ecd74b/recpt1 sudo make -B install
epgdump
cd epgdumpr2 make -B sudo install -m 0755 epgdump /usr/local/bin
epgrec
cd epgrec cp config.php.sample config.php cp do-record.sh.pt1 do-record.sh
コメントを書く
トラックバック - http://d.hatena.ne.jp/hatecotton/20111101/1320151713
リンク元
- 2 http://ezsch.ezweb.ne.jp/search/?query=イース?T&?Uクロニクルズの攻略&start-index=16&adpage=4&ct=1301&sr=0103&t=20111102005003&filter=1
- 2 http://ezsch.ezweb.ne.jp/search/?query=イース+エレナ&start-index=16&adpage=4&ct=1101&sr=0000&t=20111102013630&filter=1
- 2 http://search.yahoo.co.jp/search?p=ウィッチテイル+攻略&ei=UTF-8&fr=top_ga1_sa&x=wrt&meta=vc=
- 2 http://www.bing.com/search?q=ff6+スペクター リン 出ない&go=&qs=n&sk=&form=QBLH&filt=all
- 2 http://www.google.co.jp/m/search?guid=on&client=ms-docomo_link-jp&hl=ja&ie=Shift_JIS&sa=2&q=ウィッチテイル+ネタバレ+二周目&site=universal
- 2 http://www.google.co.jp/m?q=偽りのロンド+攻略&btnG=Google検索&hl=ja&output=xhtml1_0&source=wax&ie=Shift_JIS&oe=Shift_JIS
- 2 http://www.google.co.jp/url?sa=t&rct=j&q=%E3%83%AD%E3%83%9E%E3%82%B5%E3%82%AC3+%E6%BB%9D%E3%81%AE%E6%B4%9E%E7%AA%9F%E3%80%80%E3%83%9E%E3%83%83%E3%83%97&source=web&cd=4&ved=0CDgQFjAD
- 1 http://d.hatena.ne.jp/search?word=&name=hatecotton&diary=日記
- 1 http://pipes.yahoo.com/pipes/pipe.info?_id=8dda7c5265619c2fb368495a3d11b784
- 1 http://search.yahoo.co.jp/search?fr=sb-kingbrw1&ei=UTF-8&p=ロマサガ2+攻略+ノーマッド(女)

