SSブログ
前の10件 | -

Raspberry Pi (raspbian) + Planex GW-450D [Raspberry Pi]

 Raspberry Pi のNICだけが逝ってしまったのでその代替として11acの無線LAN子機「GW-450D」を導入した。ドライバ導入はメーカ(プラネックス)記事、
 ・「Raspberry Piで11ac無線LAN子機『GW-450D』を使うための設定方法」
を参考にしたが、当然、カーネルバージョンが上がっているので少し手順追加・変更が必要であった。
 まずインストール済みRaspbianのカーネルバージョンは、
$ uname -r
3.18.7+
だったが、この場合先人によればGCCのバージョンアップが必要とのことなので、その方の記事を参考にここではGCCバージョンアップのみを実施。
 ・GW-450DやWN-AC433UKをRaspberry Piで使う
 ちなみに手元の環境のGCCバージョンは
$ gcc -v
・・・・・・
gcc version 4.8.3 (Raspbian 4.8.3-13)
へ上がっていた。
 次にファームウェアを最新版へアップデート。これはGW-450Dドライバのビルド環境を作成する際に取得するカーネルソースバージョンも最新版となるので、これらを同一にするのが目的。
$ sudo apt-get update
$ sudo apt-get dist-upgrade
$ sudo apt-get install make bc ncurses-dev
$ sudo rpi-update
$ sudo reboot
ちなみに手元の環境で確認すると、
$ uname -r
3.18.8+
がこの時点の最新カーネルバージョンだった。
次にこれに対応した最新版カーネルソースを取得しGW-450Dドライバのビルド環境を作成。
$ sudo su
# cd /usr/src
# wget https://github.com/raspberrypi/linux/archive/rpi-3.18.y.tar.gz
# tar xvfz rpi-3.18.y.tar.gz
# head -5 linux-rpi-3.18.y/Makefile
VERSION = 3
PATCHLEVEL = 18
SUBLEVEL = 8
EXTRAVERSION =
NAME = Diseased Newt
# ln -s /usr/src/linux-rpi-3.18.y/ /lib/modules/`uname -r`/build
# cd /lib/modules/`uname -r`/build
# make mrproper
# zcat /proc/config.gz > .config
# make modules_prepare
# wget https://github.com/raspberrypi/firmware/raw/master/extra/Module.symvers
<3/9追記>
Raspberry Pi 2の場合は上記最終行が以下になる
# wget https://github.com/raspberrypi/firmware/raw/master/extra/Module7.symvers -O Module.symvers
 いよいよ「GW-450D」ドライバのコンパイルであるが、このままでは途中エラーが発生してコンパイルできなかった。いろいろとググってみて、
https://bitbucket.org/sanrath/mediatek_mt7610u_sta_driver_linux-64bit/commits/a989fcd6e073205690434e99ac1dc2b0f837350b
の修正をあてることで、何とかコンパイルすることができた。以下はこれにVendorID、ProductIDなどの変更を追加したパッチファイルになる。
$ cat mediatek_mt7610u_sta_driver_for_3.18.8.patch
diff -urN a/RT2870STA.dat b/RT2870STA.dat
--- a/RT2870STA.dat	2013-09-16 23:03:08.000000000 +0900
+++ b/RT2870STA.dat	2015-03-07 15:15:54.696136992 +0900
@@ -6,7 +6,7 @@
 ChannelGeography=1
 SSID=11n-AP
 NetworkType=Infra
-WirelessMode=5
+WirelessMode=8
 EfuseBufferMode=0
 Channel=0
 BeaconPeriod=100
@@ -17,7 +17,7 @@
 FragThreshold=2346
 TxBurst=1
 PktAggregate=0
-WmmCapable=1
+WmmCapable=0
 AckPolicy=0;0;0;0
 AuthMode=OPEN
 EncrypType=NONE
diff -urN a/chips/mt76x0.c b/chips/mt76x0.c
--- a/chips/mt76x0.c	2013-09-16 23:03:08.000000000 +0900
+++ b/chips/mt76x0.c	2015-03-07 15:15:54.706136902 +0900
@@ -1573,7 +1573,7 @@
 		E2: B0.R21<0>: xo_cxo<0>, B0.R22<7:0>: xo_cxo<8:1> 
 	*/
 	RFValue = (UCHAR)(pAd->RfFreqOffset & 0xFF);
-	RFValue = min(RFValue, 0xBF); /* Max of 9-bit built-in crystal oscillator C1 code */
+	RFValue = min(RFValue, (UCHAR)0xBF); /* Max of 9-bit built-in crystal oscillator C1 code */
 	rlt_rf_write(pAd, RF_BANK0, RF_R22, RFValue);
 	
 	rlt_rf_read(pAd, RF_BANK0, RF_R22, &RFValue);
diff -urN a/common/cmm_info.c b/common/cmm_info.c
--- a/common/cmm_info.c	2013-09-16 23:03:08.000000000 +0900
+++ b/common/cmm_info.c	2015-03-07 15:15:54.716136813 +0900
@@ -44,7 +44,7 @@
 
 #ifdef CONFIG_STA_SUPPORT
 	IF_DEV_CONFIG_OPMODE_ON_STA(pAd)
-		DBGPRINT(RT_DEBUG_TRACE, ("Driver version-%s %s %s\n", STA_DRIVER_VERSION, __DATE__, __TIME__));
+		DBGPRINT(RT_DEBUG_TRACE, ("Driver version-%s %s\n", STA_DRIVER_VERSION, STA_DRIVER_BUILD));
 #endif /* CONFIG_STA_SUPPORT */
 
     return TRUE;
diff -urN a/common/cmm_mac_usb.c b/common/cmm_mac_usb.c
--- a/common/cmm_mac_usb.c	2013-09-16 23:03:08.000000000 +0900
+++ b/common/cmm_mac_usb.c	2015-03-07 15:15:54.726136723 +0900
@@ -27,6 +27,8 @@
 
 #ifdef RTMP_MAC_USB
 
+#define usb_buffer_alloc(a, b, c, d) usb_alloc_coherent(a, b, c, d)
+#define usb_buffer_free(a, b, c, d) usb_free_coherent(a, b, c, d)
 
 #include	"rt_config.h"
 
diff -urN a/common/cmm_wpa.c b/common/cmm_wpa.c
--- a/common/cmm_wpa.c	2013-09-16 23:03:08.000000000 +0900
+++ b/common/cmm_wpa.c	2015-03-07 15:15:54.736136634 +0900
@@ -1802,17 +1802,17 @@
 	Return Value:
 
 	Note:
-		Output * KDF-Length (K, label, Context) where
+		Output \A1\F6 KDF-Length (K, label, Context) where
 		Input:    K, a 256-bit key derivation key
 				  label, a string identifying the purpose of the keys derived using this KDF
 				  Context, a bit string that provides context to identify the derived key
 				  Length, the length of the derived key in bits
 		Output: a Length-bit derived key
 
-		result * ""
-		iterations * (Length+255)/256 
+		result \A1\F6 ""
+		iterations \A1\F6 (Length+255)/256 
 		do i = 1 to iterations
-			result * result || HMAC-SHA256(K, i || label || Context || Length)
+			result \A1\F6 result || HMAC-SHA256(K, i || label || Context || Length)
 		od
 		return first Length bits of result, and securely delete all unused bits
 
@@ -2480,7 +2480,7 @@
 	UCHAR		PrimaryRsnie;			
 	BOOLEAN		bMixCipher = FALSE;	/* indicate the pairwise and group cipher are different*/
 	UCHAR		p_offset;		
-	WPA_MIX_PAIR_CIPHER		FlexibleCipher = MIX_CIPHER_NOTUSE;	/* it provide the more flexible cipher combination in WPA-WPA2 and TKIPAES mode*/
+	WPA_MIX_PAIR_CIPHER FlexibleCipher = WPA_TKIPAES_WPA2_TKIPAES;	/* it provide the more flexible cipher combination in WPA-WPA2 and TKIPAES mode*/
 		
 	rsnielen_cur_p = NULL;
 	rsnielen_ex_cur_p = NULL;
diff -urN a/common/mlme.c b/common/mlme.c
--- a/common/mlme.c	2013-09-16 23:03:08.000000000 +0900
+++ b/common/mlme.c	2015-03-07 15:15:54.746136544 +0900
@@ -535,8 +535,8 @@
 #endif /* RALINK_ATE */
 		/* for performace enchanement */
 		NdisZeroMemory(&pAd->RalinkCounters,
-						(UINT32)&pAd->RalinkCounters.OneSecEnd -
-						(UINT32)&pAd->RalinkCounters.OneSecStart);
+						(ULONG)&pAd->RalinkCounters.OneSecEnd -
+						(ULONG)&pAd->RalinkCounters.OneSecStart);
 
 	return;
 }
diff -urN a/common/rtusb_dev_id.c b/common/rtusb_dev_id.c
--- a/common/rtusb_dev_id.c	2013-09-16 23:03:08.000000000 +0900
+++ b/common/rtusb_dev_id.c	2015-03-07 15:15:54.746136544 +0900
@@ -36,8 +36,9 @@
 /* module table */
 USB_DEVICE_ID rtusb_dev_id[] = {
 #ifdef MT76x0
+	{USB_DEVICE(0x2019,0xAB31)}, /* GW-450D */
 	{USB_DEVICE(0x148F,0x7610)}, /* MT7610U */
-	{USB_DEVICE(0x0E8D,0x7610)}, /* MT7610U */
+	{USB_DEVICE(0x13B1,0x003E)}, /* MT7610U */
 	{USB_DEVICE_AND_INTERFACE_INFO(0x0E8D, 0x7630, 0xff, 0x2, 0xff)}, /* MT7630U */
 	{USB_DEVICE_AND_INTERFACE_INFO(0x0E8D, 0x7650, 0xff, 0x2, 0xff)}, /* MT7650U */
 #endif
diff -urN a/conf/RT2870STA.dat b/conf/RT2870STA.dat
--- a/conf/RT2870STA.dat	2013-09-16 23:03:08.000000000 +0900
+++ b/conf/RT2870STA.dat	2015-03-07 15:15:54.756136455 +0900
@@ -4,9 +4,9 @@
 CountryRegionABand=7
 CountryCode=
 ChannelGeography=1
-SSID=11n-AP
+SSID=
 NetworkType=Infra
-WirelessMode=5
+WirelessMode=8
 EfuseBufferMode=0
 Channel=0
 BeaconPeriod=100
@@ -17,10 +17,10 @@
 FragThreshold=2346
 TxBurst=1
 PktAggregate=0
-WmmCapable=1
+WmmCapable=0
 AckPolicy=0;0;0;0
-AuthMode=OPEN
-EncrypType=NONE
+AuthMode=WPA2PSK
+EncrypType=AES
 WPAPSK=
 DefaultKeyID=1
 Key1Type=0
diff -urN a/contributors.txt b/contributors.txt
--- a/contributors.txt	1970-01-01 09:00:00.000000000 +0900
+++ b/contributors.txt	2015-03-07 15:15:54.756136455 +0900
@@ -0,0 +1 @@
+Sanjit Rath
diff -urN a/include/mcu/mt7650_firmware.h b/include/mcu/mt7650_firmware.h
--- a/include/mcu/mt7650_firmware.h	2013-09-16 23:24:08.000000000 +0900
+++ b/include/mcu/mt7650_firmware.h	2015-03-07 15:25:46.590039797 +0900
@@ -1,28 +1,5 @@
-/*
- *************************************************************************
- * Ralink Tech Inc.
- * 5F., No.36, Taiyuan St., Jhubei City,
- * Hsinchu County 302,
- * Taiwan, R.O.C.
- *
- * (c) Copyright 2002-2010, Ralink Technology, Inc.
- *
- * This program is free software; you can redistribute it and/or modify  *
- * it under the terms of the GNU General Public License as published by  *
- * the Free Software Foundation; either version 2 of the License, or     *
- * (at your option) any later version.                                   *
- *                                                                       *
- * This program is distributed in the hope that it will be useful,       *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of        *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
- * GNU General Public License for more details.                          *
- *                                                                       *
- * You should have received a copy of the GNU General Public License     *
- * along with this program; if not, write to the                         *
- * Free Software Foundation, Inc.,                                       *
- * 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
- *                                                                       *
- *************************************************************************/
+/* AUTO GEN PLEASE DO NOT MODIFY IT */ 
+/* AUTO GEN PLEASE DO NOT MODIFY IT */ 
 
 
 UCHAR MT7650_FirmwareImage[] = {
diff -urN a/include/os/rt_linux.h b/include/os/rt_linux.h
--- a/include/os/rt_linux.h	2013-09-16 23:03:08.000000000 +0900
+++ b/include/os/rt_linux.h	2015-03-07 15:15:54.776136276 +0900
@@ -277,8 +277,8 @@
 
 typedef struct _OS_FS_INFO_
 {
-	int				fsuid;
-	int				fsgid;
+	kuid_t				fsuid;
+	kgid_t				fsgid;
 	mm_segment_t	fs;
 } OS_FS_INFO;
 
@@ -880,11 +880,20 @@
 #define SET_OS_PKT_LEN(_pkt, _len)	\
 		(RTPKT_TO_OSPKT(_pkt)->len) = (_len)
 		
+
+#ifdef NET_SKBUFF_DATA_USES_OFFSET
+#define GET_OS_PKT_DATATAIL(_pkt) \
+        (RTPKT_TO_OSPKT(_pkt)->head + (ULONG)RTPKT_TO_OSPKT(_pkt)->tail)
+#define SET_OS_PKT_DATATAIL(_pkt, _start, _len) \
+        ((RTPKT_TO_OSPKT(_pkt))->tail) = (ULONG)_start - (ULONG)(RTPKT_TO_OSPKT(_pkt)->head) + (_len)
+#else
 #define GET_OS_PKT_DATATAIL(_pkt) \
 		(RTPKT_TO_OSPKT(_pkt)->tail)
 #define SET_OS_PKT_DATATAIL(_pkt, _start, _len)	\
-		((RTPKT_TO_OSPKT(_pkt))->tail) = (PUCHAR)((_start) + (_len))
-		
+		((RTPKT_TO_OSPKT(_pkt))->tail) = (ULONG)((_start) + (_len))
+#endif 
+
+
 #define GET_OS_PKT_HEAD(_pkt) \
 		(RTPKT_TO_OSPKT(_pkt)->head)
 
diff -urN a/os/linux/config.mk b/os/linux/config.mk
--- a/os/linux/config.mk	2013-09-16 23:03:08.000000000 +0900
+++ b/os/linux/config.mk	2015-03-07 15:15:54.776136276 +0900
@@ -23,12 +23,12 @@
 
 # Support Wpa_Supplicant
 # i.e. wpa_supplicant -Dralink
-HAS_WPA_SUPPLICANT=n
+HAS_WPA_SUPPLICANT=y
 
 
 # Support Native WpaSupplicant for Network Maganger
 # i.e. wpa_supplicant -Dwext
-HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=n
+HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y
 
 #Support Net interface block while Tx-Sw queue full
 HAS_BLOCK_NET_IF=n
@@ -207,12 +207,20 @@
 
 HAS_WIFI_P2P_CONCURRENT_FAST_SCAN=n
 
+STA_DRIVER_BUILD := 20141022-1327
+
 #################################################
 
 CC := $(CROSS_COMPILE)gcc
 LD := $(CROSS_COMPILE)ld
 
-WFLAGS := -g -DAGGREGATION_SUPPORT -DPIGGYBACK_SUPPORT -DWMM_SUPPORT  -DLINUX -Wall -Wstrict-prototypes -Wno-trigraphs
+ifndef $(WFLAGS)
+WFLAGS := -DSTA_DRIVER_BUILD="\"${STA_DRIVER_BUILD}\""
+else
+WFLAGS += -DSTA_DRIVER_BUILD="\"${STA_DRIVER_BUILD}\""
+endif
+
+WFLAGS += -g -DAGGREGATION_SUPPORT -DPIGGYBACK_SUPPORT -DWMM_SUPPORT  -DLINUX -Wall -Wstrict-prototypes -Wno-trigraphs
 WFLAGS += -DSYSTEM_LOG_SUPPORT -DRT28xx_MODE=$(RT28xx_MODE) -DCHIPSET=$(MODULE) -DRESOURCE_PRE_ALLOC -DENHANCED_STAT_DISPLAY
 #WFLAGS += -DFPGA_MODE
 WFLAGS += -I$(RT28xx_DIR)/include
@@ -660,7 +668,7 @@
 WFLAGS += -DCONFIG_CSO_SUPPORT -DCONFIG_TSO_SUPPORT
 endif
 
-CHIPSET_DAT = 2860
+CHIPSET_DAT = 2870
 endif
 
 ifneq ($(or $(findstring mt7662e,$(CHIPSET)),$(findstring mt7612e,$(CHIPSET))),)
diff -urN a/os/linux/rt_linux.c b/os/linux/rt_linux.c
--- a/os/linux/rt_linux.c	2013-09-16 23:03:08.000000000 +0900
+++ b/os/linux/rt_linux.c	2015-03-07 15:15:54.786136186 +0900
@@ -497,9 +497,9 @@
 		MEM_DBG_PKT_ALLOC_INC(skb);
 
 		skb_reserve(skb, 2);
-		NdisMoveMemory(skb->tail, pHeader802_3, HdrLen);
+		NdisMoveMemory(GET_OS_PKT_DATATAIL(skb), pHeader802_3, HdrLen);
 		skb_put(skb, HdrLen);
-		NdisMoveMemory(skb->tail, pData, DataSize);
+		NdisMoveMemory(GET_OS_PKT_DATATAIL(skb), pData, DataSize);
 		skb_put(skb, DataSize);
 		skb->dev = pNetDev;	/*get_netdev_from_bssid(pAd, FromWhichBSSID); */
 		pPacket = OSPKT_TO_RTPKT(skb);
@@ -650,7 +650,7 @@
 		pClonedPkt->dev = pRxPkt->dev;
 		pClonedPkt->data = pData;
 		pClonedPkt->len = DataSize;
-		pClonedPkt->tail = pClonedPkt->data + pClonedPkt->len;
+                SET_OS_PKT_DATATAIL(pClonedPkt, pClonedPkt->data, pClonedPkt->len);
 		ASSERT(DataSize < 1530);
 	}
 	return pClonedPkt;
@@ -695,7 +695,7 @@
 	pOSPkt->dev = pNetDev;
 	pOSPkt->data = pData;
 	pOSPkt->len = DataSize;
-	pOSPkt->tail = pOSPkt->data + pOSPkt->len;
+	SET_OS_PKT_DATATAIL(pOSPkt, pOSPkt->data, pOSPkt->len);
 
 	/* copy 802.3 header */
 
@@ -1105,9 +1105,10 @@
 		pOSFSInfo->fsuid = current->fsuid;
 		pOSFSInfo->fsgid = current->fsgid;
 		current->fsuid = current->fsgid = 0;
+
 #else
 		pOSFSInfo->fsuid = current_fsuid();
-		pOSFSInfo->fsgid = current_fsgid();
+		pOSFSInfo->fsgid = current_fsgid(); 
 #endif
 		pOSFSInfo->fs = get_fs();
 		set_fs(KERNEL_DS);
diff -urN a/os/linux/usb_main_dev.c b/os/linux/usb_main_dev.c
--- a/os/linux/usb_main_dev.c	2013-09-16 23:03:08.000000000 +0900
+++ b/os/linux/usb_main_dev.c	2015-03-07 15:15:54.786136186 +0900
@@ -39,7 +39,7 @@
 MODULE_LICENSE("GPL");
 MODULE_AUTHOR("Paul Lin ");
 MODULE_DESCRIPTION("RT2870 Wireless Lan Linux Driver");
-
+MODULE_LICENSE("GPL");
 #ifdef CONFIG_STA_SUPPORT
 #ifdef MODULE_VERSION
 MODULE_VERSION(STA_DRIVER_VERSION);
diff -urN a/sta/sta_cfg.c b/sta/sta_cfg.c
--- a/sta/sta_cfg.c	2013-09-16 23:03:08.000000000 +0900
+++ b/sta/sta_cfg.c	2015-03-07 15:15:54.796136097 +0900
@@ -5398,7 +5398,7 @@
             wrq->u.data.length = strlen(extra) + 1; /* 1: size of '\0' */
             break;
         case SHOW_DRVIER_VERION:
-            snprintf(extra, size, "Driver version-%s, %s %s\n", STA_DRIVER_VERSION, __DATE__, __TIME__ );
+            snprintf(extra, size, "Driver version-%s, %s\n", STA_DRIVER_VERSION, STA_DRIVER_BUILD );
             wrq->u.data.length = strlen(extra) + 1; /* 1: size of '\0' */
             break;
 #ifdef DOT11_N_SUPPORT
あとはこのパッチを当てればコンパイル・インストールできる筈である。
$ tar xvjf mt7610u_wifi_sta_v3002_dpo_20130916.tar.bz2
$ cd mt7610u_wifi_sta_v3002_dpo_20130916/
$ patch -p1 < ../mediatek_mt7610u_sta_driver_for_3.18.8.patch
$ make
$ sudo make install
なお、文字コードの関係で一部リジェクトされ、手修正が必要になる場合がある。
 最後に冒頭のメーカ(プラネックス)記事を参考にネットワーク設定すれば良い。
nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

Raspberry Pi 2 (raspbian) Kodi+iptvsimpleでメディアセンター [Raspberry Pi]

 注文した「Raspberry Pi 2」が手元に届いたので早速raspbianを導入、更にKodi+iptvsimpleをインストールしメディアセンターとして使用してみた。
 最初にkodiのインストール、
$ sudo vi /etc/apt/sources.list.d/mene.list
deb http://archive.mene.za.net/raspbian wheezy contrib
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key 5243CDED
$ sudo apt-get update
$ sudo apt-get install kodi
この時ユーザー「kodi」も新規追加される。次は電源ONでKodiが自動起動するよう設定、
$ sudo vi /etc/default/kodi
# Set this to 1 to enable startup
ENABLED=1

# The user to run Kodi as
USER=kodi
・・・・・・・・・・・・
これでOS再起動でKodiが立ち上がってくるが、このままではキーボード等の入力を受け付けてくれなかったので、以下を設定した。
$ sudo vi /etc/group
・・・・・・・・・・・・
netdev:x:105:pi
input:x:999:pi,kodi
messagebus:x:106:
・・・・・・・・・・・・
$ sudo reboot
立ち上がってきたKodiの日本語化は以前のこの記事を参考に。次にiptvsimpleをインストール、
$ sudo apt-get install kodi-pvr-iptvsimple
iptvsimpleの設定の方も以前のこの記事を参考に。
 ちなみにOSMC(Raspbmcの後継)、OpenELEC(ver.5.0.3)とiptvsimpleでライブ視聴を試してみたがこちらの方では動作させることができなかった。
 このままではホーム画面の電源ボタンでは「終了」メニューしか表示されないので、必要であれば以下で「シャットダウン」メニューなどを追加すると良いだろう。
$ sudo su
# vi /var/lib/polkit-1/localauthority/50-local.d/kodi.pkla
[Actions for xbmc user]
Identity=unix-user:kodi
Action=org.freedesktop.upower.*;org.freedesktop.consolekit.system.*
ResultAny=yes
ResultInactive=yes
ResultActive=yes
【2015.3.21追記】これで上手く行かない場合は、最終行を「no」にして試してみる。
nice!(0) 
共通テーマ:パソコン・インターネット

Archlinux 固定IPの設定 [Hummingboard]

 他のPCからのリモート(ssh)操作にはDHCPだと何かと不便なので固定IPにした。Archlinuxのネットワーク設定方法にはsystemd、netctl、systemd-networkdなど幾つかあるようで、ここではsystemd-netwokdで行った。最初にネットワークのデフォルト状態である。
# ip a
・・・・・・・・・・・・・・・・・・・
2: eth0: mtu 1500 qdisc pfifo_fast state UP g0
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
inet 192.168.1.181/24 brd 192.168.1.255 scope global dynamic eth0
・・・・・・・・・・・・・・・・・・・
# cat /etc/systemd/network/eth0.network
[Match]
Name=eth0

[Network]
DHCP=both
# systemctl is-enabled systemd-networkd
enabled
ipコマンドで確認できたデバイス名(eth0)のNICに対して「eth0.network」の中で「DHCP=both(DHCPv4とv6の両方)」に設定されおり、結果としてDHCPサーバから「192.168.1.181」が割り振られている。これを固定IPに設定するには「eth0.network」を以下のように変更してやれば良い。
# vi /etc/systemd/network/eth0.network
[Match]
Name=eth0

[Network]
DHCP=false
Address=192.168.1.41/24
Gateway=192.168.1.1
DNS=192.168.1.1
# ip addr flush dev eth0
# ip a
・・・・・・・・・・・・・・・・・・・
2: eth0: mtu 1500 qdisc pfifo_fast state UP gr0
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
・・・・・・・・・・・・・・・・・・・
# systemctl restart systemd-network
# ip a
・・・・・・・・・・・・・・・・・・・
2: eth0: mtu 1500 qdisc pfifo_fast state UP g0
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
inet 92.168.1.41/24 brd 192.168.1.255 scope global dynamic eth0
・・・・・・・・・・・・・・・・・・・
# systemctl reboot
固定IPアドレス(ここでは192.168.1.41)で立ち上がっているはずである。
nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

Archlinux+xbmcの導入 [Hummingboard]

 HummingBoard-i2eXへ何とかArchlinuxをインストールできたので次にxbmcを導入してみた。手順は「Archlinuxarm official + xbmc (imx6)」を参考にした。
# pacman -Syu
# pacman -S polkit
# pacman -S xbmc-imx-git libfslvpuwrap libcec-imx6 gpu-viv-bin-mx6q-fb firmware-imx imx-vpu
# systemctl start xbmc
# systemctl enable xbmc
# systemctl reboot
これでお馴染みのxbmcの画面が立ち上がって来る筈。ここでxbmcより先に「polkit」をインストールしているが、後ではxbmc終了メニューで「システム終了、電源を切る」などが表示されなかった。あと、この「xbmc」はユーザ名「xbmc」、ホームディレクトリは「/var/lib/xbmc/」で立ち上がってくるので、
# cat /usr/lib/systemd/system/xbmc.service
[Unit]
Description = Starts an instance of XBMC
After = remote-fs.target
[Service]
User = xbmc
Group = xbmc
Type = simple
ExecStart = /usr/bin/runxbmc
Restart = on-failure
[Install]
WantedBy = multi-user.target
# grep xbmc /etc/passwd
xbmc:x:1000:1000::/var/lib/xbmc:/bin/bash
設定ファイル類は「/var/lib/xbmc/.xbmc/」配下になるので、例えば日本語フォントを入替えたければ
# mkdir /var/lib/xbmc/.xbmc/media/Fonts
# cp migmix-1p-regular.ttf /var/lib/xbmc/.xbmc/media/Fonts/arial.ttf
# chown xbmc.xbmc -R /var/lib/xbmc/.xbmc/media/Fonts
のようにすれば良い。
nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

Archlinuxのインストール [Hummingboard]

 HummingBoard-i2eXが届いた。早速、Archlinuxをインストール、他にXBian、OpenELEC、Ubuntu14.04等も試したが、結果としてArchlinuxを選択した。ただArchlinux、U-boot自体、初めてなのでインストールから苦戦を強いられ、使いこなすには相当時間がかかりそう。やっとインストールできたので、取り敢えずその手順を。
(1)取り敢えずの手順
 インストールは「CuBox-i | Arch Linux ARM」や「ArchLinux - CuBox-i Wiki Pages」を参考にした。後者は前者の手順をスクリプトにより自動化したもので基本は同じ、いづれでもOSまで起動出来なかった(9/20追記:2014-09-12版ArchLinuxARM-imx6-cubox-latest.tar.gzで前者手順で正常OS起動できたので、以下記事中のSPL、u-boot.img入替え不要)。やったのは後者の「make-sdcard」スクリプトによる手順。(作業はUbuntu 14.04 PC上で)
$ wget http://archlinuxarm.org/os/ArchLinuxARM-imx6-cubox-latest.tar.gz
$ wget https://www.dropbox.com/s/e0my9z0tq644wam/make-sdcard
$ chmod +x make-sdcard
$ sudo fdisk -l # 作成するSDカードのドライブを確認
$ sudo ./make-sdcard /dev/sdX ArchLinuxARM-imx6-cubox-latest.tar.gz
本来であればこのmicroSDで正常に立ち上がる筈だが、結果として作成された一部フィアルを差替える必要があった。具体的には、このmicroSD内のBoot配下の
$ ls -l /media/hoge/Boot
合計 6771
-rw-r--r-- 1 hoge hoge 31744 8月 11 20:08 SPL
-rw-r--r-- 1 hoge hoge 43332 8月 11 21:36 imx6dl-cubox-i.dtb
-rw-r--r-- 1 hoge hoge 42379 8月 11 21:36 imx6dl-hummingboard.dtb
-rw-r--r-- 1 hoge hoge 43789 8月 11 21:36 imx6q-cubox-i.dtb
-rw-r--r-- 1 hoge hoge 227204 8月 11 20:08 u-boot.img
-rw-r--r-- 1 hoge hoge 6543872 8月 11 21:36 zImage
「SPL」、「u-boot.img」の2ファイルを以下で作成した古いものへ置き換えた。
 まずクロスコンパイル環境のインストールと環境変数の設定。(「Building the kernel and u-boot for the CuBox-i and the HummingBoard - CuBox-i Wiki Pages」を参考にした。)
$ sudo apt-get install gcc-arm-linux-gnueabi
$ export ARCH=arm
$ export CROSS_COMPILE=/usr/bin/arm-linux-gnueabi-
次に「u-boot」のソース(gitリポ)取り込みとコンパイル。
$ git clone https://github.com/SolidRun/u-boot-imx6.git
$ cd u-boot-imx6
$ git checkout b203583
$ make mx6_cubox-i_config
$ make
$ ls -l SPL u-boot.img
-rw-rw-r-- 1 hoge hoge 39936 8月 16 23:51 SPL
-rw-rw-r-- 1 hoge hoge 298420 8月 16 23:51 u-boot.img
「git checkout b203583」で2014年3月4日コミットされたソースに戻している。あとは、
$ sudo cp SPL u-boot.img /media/hoge/Boot/
でmicroSDへ上書きコピー。このSDをHummingboard-i2eXへ装着、やっとArchlinuxのログインプロンプトを表示させることが。
Arch Linux 3.10.30-27-ARCH

alarm login: root
Password: (root)
[root@alarm ~]# uname -r
3.10.30-27-ARCH
このあと、コンパイル済みのものが以下のところにあることが判明、
$ wget https://www.dropbox.com/sh/gn17qpuislhpnvo/AAAj-gyaLMginDIlqDY4CDn6a/busybox.tar.xz
$ mkdir tmp/
$ tar xvfJ busybox.tar.xz -C temp/
$ ls -l temp/u-boot/
合計 356
-rw-r--r-- 1 hoge hoge 39936 3月 4 13:46 SPL
-rw-r--r-- 1 hoge hoge 79 2月 24 09:34 serialcon.txt
-rw-r--r-- 1 hoge hoge 297652 3月 4 13:46 u-boot.img
.............................................................................
たまたま見つけたとはいえ、こちらの方が断然お手軽。

(2)もう一つの手順。多分、こちらの方が正解に近いかも..(追記)
 「SPL」、「u-boot.img」の2ファイルは古いものへ差替えずにそのまま。代りに「boot.scr」を新規作成、以下がその作成手順。
$ sudo apt-get install u-boot-tools
$ cd /media/hoge/Boot/
$ sudo vi boot.txt
setenv bootargs 'root=/dev/mmcblk0p2 console=ttymxc0,115200
video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24,bpp=32'
load mmc 0:1 0x18000000 imx6q-cubox-i.dtb
fatload mmc 0:1 0x10800000 zImage
bootz 0x10800000 - 0x18000000
$ sudo mkimage -A arm -O linux -T script -C none -n "U-Boot commands" -d boot.txt boot.scr
これでもArchlinuxのログインプロンプトを表示させることができた。
 
 現状、Archlinux+XBMC(+iptvsimple)+S880で"Media Center"として使用中だがCPU、GPUパワーを実感している。余り期待していなかったが動作も思っていたより安定している、安定性の方はRaspbmcほどではないと思うが。
 それにしても試行錯誤、しばらくはこの繰り返しですね。
nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

「MyGica S880」(USB ISDB-T)+「recdvb」でリアル視聴 [録画・再生]

S880.png 久々の更新、ほぼ一年間の空白...。

 南米向けUSB地デジチュナー「MyGica S880」(写真左)が少し安くなっていたのでつい買ってしまった。同じUSBの「MyGica S870」に比べると格段に小さいので、RaspberryPi用ということで。
 早速、「Raspbmc+iptvsimple」(過去記事参照)へ導入してみた。


・アンテナコネクタ
 同梱されてきたのは「PALメス-MCXオス」(写真中)、南米向けなので当然と言えば当然なのだが、日本標準はF型になるので「Fメス-MCXオス」(製品名:F7-MCX【COMON製】)(写真右)を別に購入した。ちなみに地デジチュナー側は「MCXメス」になっている。

・「Raspbmc+iptvsimple」でリアル視聴
 Raspbmc(この時点の最新版)へ「S880」を挿入すれば何もせずとも認識。
$ uname -r
3.12.21
$ lsusb
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
Bus 001 Device 005: ID 2019:ed17 PLANEX GW-USValue-EZ 802.11n Wireless Adapter [Realtek RTL8188CUS]
Bus 001 Device 006: ID 187f:0600 Siano Mobile Silicon
$ ls /dev/dvb/
adapter0
$ dmesg
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
usb 1-1.2: New USB device found, idVendor=187f, idProduct=0600
usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 1-1.2: Product: MDTV Receiver
usb 1-1.2: Manufacturer: MDTV Receiver
smscore_load_firmware_from_file: line: 1168: failed to open firmware file "isdbt_rio.inp"
DVB: registering new adapter (Siano Rio Digital Receiver)
usb 1-1.2: DVB: registering adapter 0 frontend 0 (Siano Mobile Digital MDTV Receiver)...
ファームウェアが無いと言われるので付属CDから以下手順でインストール。一旦ドライバをWindowsへインストールし、出来上がった「isdbt-rio.inp」をRaspbmcへコピー。
$ sudo cp isdbt_rio.inp /lib/firmware/
一旦Windowsへインストールするのが面倒な方は以下の方法でも可能。
$ wget http://plex-net.co.jp/plex/px-s1ud/PX-S1UD_driver_Ver.1.0.1.zip
$ unzip PX-S1UD_driver_Ver.1.0.1.zip
$ sudo cp PX-S1UD_driver_Ver.1.0.1/x86/i386/isdbt_rio.inp /lib/firmware/
前者とファイルサイズは異なっていたが自身の環境では問題なく動作している。気になる方は前者の方法が無難。
 視聴ツールはカーネル標準デバイス(DVB版)対応の「recpt1」とも言うべき「recdvb」(「recdvb (PX-S1UD用recpt1)の公開・インストール」 『Sat's space』)を導入した。個人的に久しく待望していたもの、横道になるが録画ソフト「epgrec(UNA)」で若干の設定ファイル変更だけでそのまま使えるようになるのでは。
 話を戻してコンパイルは以下手順で。ただし「libarib25」や「pcsclite-dev」などは導入済が前提になるが、ここを参考にすると良いかもしれない)
$ sudo apt-get install build-essential automake libtool
$ wget http://www13.plala.or.jp/sat/recdvb/recdvb-1.2.0.tgz
$ tar xvfz recdvb-1.2.0.tgz
$ cd recdvb-1.2.0/
$ ./autogen.sh
$ ./configure --enable-b25
$ make
$ sudo make install
これで試しに
$ recdvb --b25 --sid hd --strip 30 27 test.ts
として出来たtest.tsが再生できればOK、ちなみに自身は他マシン(ubuntu)で再生して確認した。
$ scp test.ts user_name@xxx.xxx.xxx.xxx: # raspbmc側
$ cvlc test.ts # ubuntu側
正常動作が確認できたら、httpデーモンで起動しておけばraspbmcの「ライブTV」でリアル視聴が可能となる。(Raspbmc「ライブTV」の設定は過去記事を参照)
$ recdvb --b25 --sid hd --strip --http 8800
$ cat iptv.m3u (playlistの例)
#EXTM3U
#EXTINF:-1 tvg-id="GR_1024" tvg-logo="GR_1024.png" group-title="地上デジタル",NHK総合
http://localhost:8800/27
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
これでRaspberry PiがStandaloneな環境で「ライブTV」が一様、可能となるが、このままでは電流不足でセルフパワーUSBハブが別に必要だったりする。この辺も先人達の成果を参考にさせてもらったので、後日紹介したい。(新型の「Raspberry Pi B+」では電源周りが強化されたようでこの辺の課題は解消されているのかも知れないが、既に「Humming Board」を注文してしまったので、これはこれとして暫くは使い続けることに..)

nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

XBMC(Raspbmc)でRadikoを聴く [録画・再生]

 前記事でXBMC(Raspbmc)「ライブTV」メニューからTVのリアル視聴ができるようになったので、次はラジオをもということで、Radikoアドオンをインストールしてみたが、起動してみると以下のエラーで動作せず。
  ・エラー「スクリプトが失敗:plugin.audio.radiko
少してこずりながらも、ログから色々調べてみると、Raspbmcでは「Python Imaging Library」を明示的にインストールしてやる必要があった。
 自身はインストールを少しハショッてアドオンzipファイルを直接ダウンロード・インストールしたが、Radiko本家「XBMCを使ってみよう:Radiko」を参考に日本語アドオンリポジトリを追加、そこからインストールする方がバージョンアップされる際を考えると良いだろう。

1.アドオン「plugin.audio.radiko」の取得 【取得先URL修正:2014.01.03】
$ ssh pi@192.168.xx.xx #他PCからリモートでRaspbmcへ
pi@192.168.xx.xx's password: (raspberry)←パスワードを入力
$ sudo apt-get install python-imaging # 「Python Imaging Library」をインストール
$ wget https://github.com/xbmc-now/japanese-xbmc-addons/blob/master/repo/plugin.audio.radiko/plugin.audio.radiko-0.0.12.zip?raw=true -O plugin.audio.radiko-0.0.12.zip
2.アドオン「plugin.audio.radiko」のインストール
・インストール
  「システム」→「設定」→「アドオン」→「zipファイルからインストール」→「ホームフォルダ」
  →「plugin.audio.radiko-0.0.12.zip」を選択
・ファンアート機能の無効化【追記:2014.01.03】
  「システム」→「設定」→「アドオン」→「有効なアドオン」→「ミュージックアドオン」→「Radiko」
  →「設定」→「ファンアート機能(http://www...)」のチェックを外す→「OK」
・Radikoを起動
  「ミュージック」→「アドオン」→「Radiko」

これで局名が表示されるので聴きたい局を選択すれば、RaspbmcでRadikoが聴けるようになる筈だ。

Radiko1.png

nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

XBMC(Raspbmc)「ライブTV」でリアル視聴 [録画・再生]

IPTV01.png
 XBMC(Raspbmc)の「ライブTV」機能とサーバ側PT2(又はKTV-FSUSB2)でリアル視聴の環境を作成してみた。Raspberry Pi(Raspbmc)と録画サーバ(Ubuntu server 12.04、epgrec+PT2x2)のそれぞれへの設定は以下の手順で行った。

1.アドオン「xbmc-addon-iptvsimple」の作成(Raspbmc)
$ ssh pi@192.168.xx.xx #他PCからリモートでRaspbmcへ
pi@192.168.xx.xx's password: (raspberry)←パスワードを入力
$ sudo apt-get install build-essential automake git libtool ca-certificates
$ git clone https://github.com/afedchin/xbmc-addon-iptvsimple
$ cd xbmc-addon-iptvsimple
$ git checkout frodo
$ sh ./autogen.sh
$ ./configure
$ make dist-zip
$ ls *.zip
pvr.iptvsimple.1.6.1.zip
pvr.iptvsimple.1.9.3.zip
2.番組情報(EPG)の取得(録画サーバ)
 TSデータから「epgdump」(こちらのSTZ版を使用)により作成した。「epgdump」にはバリエーションがあるが、それにより「channel id="XX"」のフォーマットが異なっているのでプレイリスト作成時は要注意。
#!/bin/sh
#
epg_xml="xmltv.xml"
channel_gr="27 26 25 24 22 23 21 16"
#channel_bs="101"
#channel_cs1="CS8"
#channel_cs2="CS24"
rec_sec=60
#rec_sec_bs=180
#rec_sec_cs=120
outdir="/home/hoge/gr_EPG/"
EPGDUMP="/usr/local/bin/epgdump"
RECODER="/usr/local/bin/recpt1 --b25 --strip --sid epg"
#RECODER="/usr/local/bin/recfsusb2n --b25 --sid epg"
#
# EPG (GR)
for channel_no in ${channel_gr}
do
   $RECODER ${channel_no} $rec_sec ${outdir}epgtemp${channel_no}.ts
   if [ ${channel_no} = "27" ] ; then
     $EPGDUMP ${channel_no} ${outdir}epgtemp${channel_no}.ts - | \
     sed -e '$d' > ${outdir}${epg_xml}
     continue
   fi
   $EPGDUMP ${channel_no} ${outdir}epgtemp${channel_no}.ts - | \
   sed -e '1,4d' -e '$d' >> ${outdir}${epg_xml}
done
#
# EPG(BS)
#$RECODER ${channel_bs} $rec_sec_bs ${outdir}epgtemp${channel_bs}.ts
#$EPGDUMP /BS ${outdir}epgtemp${channel_bs}.ts - | \
#sed -e '1,4d' -e '$d' >> ${outdir}${epg_xml}
#
# EPG(CS)
#$RECODER ${channel_cs1} $rec_sec_cs ${outdir}epgtemp${channel_cs1}.ts
#$EPGDUMP /CS ${outdir}epgtemp${channel_cs1}.ts - | \
#sed -e '1,4d' -e '$d' >> ${outdir}${epg_xml}

#$RECODER ${channel_cs2} $rec_sec_cs ${outdir}epgtemp${channel_cs2}.ts
#$EPGDUMP /CS ${outdir}epgtemp${channel_cs2}.ts - | \
#sed -e '1,4d' -e '$d' >> ${outdir}${epg_xml}
#
echo '</tv>' >> ${outdir}${epg_xml}
 確認は地上デジタルのみ他は未確認です。

3.プレイリスト(M3U)の作成(録画サーバ)
 取得したEPG(xmltv.xml)から各局「channel id」の値を以下「tvg-id」へ設定する。M3Uフォーマットの詳細は「IPTV Simple Home」を参照。
$ vi iptv.m3u
#EXTM3U
#EXTINF:-1 tvg-id="GR_1024" group-title="地上デジタル",NHK総合
http://(録画サーバIP):8800/27
#EXTINF:-1 tvg-id="GR_1032" group-title="地上デジタル",NHKEテレビ
http://(録画サーバIP):8800/26
...
...
#EXTINF:-1 tvg-id="GR_23609" group-title="地上デジタル",東京MX
http://(録画サーバIP):8800/16
4.番組情報、プレイリストをRaspbmcへコピー(録画サーバ)
 とりあえずホームフォルダへコピー。
$ scp iptv.m3u gr_EPG/xmltv.xml pi@192.168.xx.xx:
5.「recpt1」httpデーモン起動(録画サーバ)
 httpデーモンは、呼ばれたホストの名前解決に失敗するとその旨メッセージを出し終了してしまう仕様なので、予めRaspbmcをhostsファイルに登録しておく。固定IPの方が何かと便利。
$ recpt1 --b25 --sid hd --strip --http 8800
(又は$ recfsusb2n --b25 --sid hd --http 8800)
$ vi /etc/hosts
127.0.0.1     localhost
・・・・・
192.168.xx.xx     raspi #ホスト名はお好きなように
6.アドオン「xbmc-addon-iptvsimple」のインストール、設定(Raspbmc)
・インストール
  「システム」→「設定」→「アドオン」→「zipファイルからインストール」→「ホームフォルダ」
  →「xbmc-addon-iptvsimple」フォルダから「pvr.iptvsimple.1.6.1.zip」を選択
    →「PVR IPTV Simple Client アドオンが有効になりました」でインストール完了
・設定(プレイリスト、EPGファイルの指定)
 同様に「アドオン」から「有効なアドオン」→「PVRクライアント」→「IPTV Simple Client」→「設定」
 「General」タブ → 「File Location」 → 「Local Path(include Local Network)」
         「M3U Play List Path」 → 「/home/pi/iptv.m3u」
 「EPG Settings」タブ → 「File Location」 → 「Local Path(include Local Network)」
             「XMLTV Path」 → 「/home/pi/xmltv.xml」

7.「ライブTV」の設定、PVR・EPGの初期設定(Raspbmc)
 「システム」→「設定」→「ライブTV」→「一般」→「LCD有効」をオン
 これでプレイリスト、EPGファイルからそれぞれのデータベースが読み込まれ、トップメニューに「ライブTV」メニューが追加され、これでライブ視聴が可能となる。
 なお修正したプレイリスト、EPGデータを即反映するにはデータベースを一旦リセットしてやれば自動更新される。
 「システム」→「設定」→「ライブTV」
  ・「一般」→「PVRデータベースのリセット」
  ・「電子番組ガイド」→「EPGデータベースのリセット」

操作の方は専らAndroid端末(Yatse, the XBMC Remote)から行なっているが、MediaCenterとして便利に使えている。
nice!(1)  コメント(0) 
共通テーマ:パソコン・インターネット

「vlc-arib」+「MyGica S870」(USB ISDB-T)でリアル視聴 [録画・再生]

 南米向けのUSB地デジチュナー「MyGica S870」(ISDB-T)を入手したので早速使ってみた。
環境は以下の通り。
・Ubuntu 13.04(64bit)、GPU(Sandy Bridge内蔵)
・ARIB25復号化環境は導入済み
カーネル標準サポートなので挿入さえすればDVBデバイスとして即認識される。
$ ls /dev/dvb/
adapter0
 DVBデバイスのリアル視聴にはいくつかの方法があるが、ARIB規格対応「HOME vlc-arib」 (Wiki)を使用してみた。(ついでに「vlc音声切替パッチ」も適用)
$ sudo apt-get build-dep vlc
$ git clone https://github.com/hiranotaka/vlc-arib
$ (git checkout 3bab107) # 最新ソースがコンパイルできない場合はこのソースへ戻す
$ wget http://www3.wazoku.net/2sen/dtvup/source/up0822.zip
$ unzip up0822.zip
$ cd vlc-arib
$ patch -p1 < ../vlc_patches_0.2/asx.diff
$ patch -p1 < ../vlc_patches_0.2/vlc120.diff
パッチのリジェクトは一箇所のみ、適当に手修正したあと上記Wikiの手順でコンパイル。
$ ./bootstrap
$ ./configure --enable-arib --enable-faad --enable-dvbpsi
$ make -j4
あとはWikiを参考にプレイリストを作成し,vlcを起動してやれば
$ vi ~/playlists/tideji.m3u
#EXTM3U
#EXTINF:0,NHK
isdb-t://adapter=0:frequency=557142857
#EXTINF:0,ETV
isdb-t://adapter=0:frequency=55114285
#EXTINF:0,NTV
isdb-t://adapter=0:frequency=545142857
・・・・・・・・・
#EXTINF:0,TOKYO-MX
isdb-t://adapter=0:frequency=491142857
$ ./vlc ~/playlists/tideji.m3u
キーボードからのチャネル変更も問題なく、快適にリアル視聴ができた。ちなみにベースとしているVLCバージョンは2.1.0-pre1のようだ。

 以前から使用しているPT2、KTV-FSUSB2のリアル視聴には「recpt1、recfsusb2nそれぞれのhttp版+VLC」を便利につかわさせて貰ってるが、「vlc-arib」のお陰でDVB版でもVLCから便利に扱えるのは非常にありがたい。これで南米向け製品であってもLinux対応でさえあれば国内でも容易にリアル視聴出来るのでは..。

 あと「fuse_b25」(0.4.8)+ubuntu標準「vlc」でも試してみた。結果、上記プレイリストで視聴可能だったが、チャネル変更で時々失敗することがあり、自身の環境では安定性に少し難があった。
タグ:vlc S870 PT2 S880
nice!(0)  コメント(2) 
共通テーマ:パソコン・インターネット

VLCをAndroid端末(Remote for VLC)から操作する [録画・再生]

 最近、PCでのTV(PT2/3、KTV-FSUSB2)のリアル視聴には「VLC」を使っている。PC操作しながらのナガラ視聴には小窓で、横になって少し離れた所から視るにはフル画面で...など々便利に使わせて貰っているが、離れた所からのVLC操作は家のWifi経由で「Remote for VLC」をインストールしたAndroid端末(スマホ、Tablet)から行なっている。
 設定はVLC、「Remote for VLC」双方に必要であるが、まずPC側VLCについては起動してからメニューバー「ツール(T)」から「設定(P)」を選択し、設定ウィンドウを表示し
(1) 左最下行「設定の表示」で「すべて」をチェック
(2) メインインターフェース>拡張インターフェースモジュールの「Web」をチェック
(3) 制御インターフェース>制御インターフェースの「HTTPリモートコントロールインターフェース」をチェック
(4) 最下行「保存(S)」で終了
ここでVLCを一旦終了させ、自宅ネットワーク内からのアクセスを許可するためVLCのHTTPアクセスリストを変更する。
$ sudo vi /etc/vlc/lua/http/.hosts
・・・・・・・・・・・・・・・・・・・
#192.168.0.0/16
192.168.1.0/16 #コメントを外す
#169.254.0.0/16
・・・・・・・・・・・・・・・・・・・
自身のネットワーク(192.168.1.0/24)の例なので実環境に合わせて変更が必要である。

「Remote for VLC」の方はGooglePlayから導入することができる。設定は起動した後メニューから「Setting」を選択すると自動的にWifi越しにスキャンを始めるので、PC側のVLCを予め起動しておけば自動検出される。手動で設定するには同様に「Setting」から「Add VLC server」で、ホスト名(又はIPアドレス)及びポート番号(デフォルト8080)を入力すれば良い。

Screenshot_2013-05-06-10-50-57.pngScreenshot_2013-05-06-10-50-19.png

 スクリーンショット(Remote for VLC)はPC側のVLCでリアル視聴している時のものですが、これを見てもチャンネル選択、ボリューム調整、フル画面切替などの操作が手元で可能になっていることがわかると思います。この他にも再生ファイルの選択等、色々操作が可能である。
  VLCによるリアル視聴は前記事「VLC 音声切り替わりパッチの適用」を参照
nice!(0) 
共通テーマ:パソコン・インターネット
前の10件 | -

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。