打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
高性价比 NAS+HTPC 折腾记 | Architecting Life
userphoto

2014.09.15

关注

高性价比 NAS+HTPC 折腾记

最近组装了一台 NAS+HTPC 合体的机器,自认为还有比较好的性价比,在折腾了两个星期之后,终于差不多搞定所有功能。这台 HTPC 使用 XBMC 作为媒体中心,使用 OpenMediaVault 作为 NAS 系统,这篇博客主要记录 OpenMediaVault 和 XBMC 的安装过程和问题。另外,因为折腾的时候有些地方来来回回搞了好多次,记录的顺序可能并不严谨。

通过 XBMC 可以直接索引所有电影,使用 themoviedb.org 来获取电影海报、介绍、演员等信息,使用 IMDb 来获取电影的评分。使用 OpenMediaVault 来管理存储,设置共享文件夹等。

在设置成功 VA-API 后,XBMC 就可以使用显卡的硬件加速了,在播放 1080P 时,CPU 占用基本在 20% 左右,还算比较不错了。

当然,在一开始我也可以选择使用 Windows 系统,XBMC 也有 Windows 版本,在 Windows 上基本也不用操心驱动程序的事情,而且 Windows 上设置 Samba 共享也是很方便的。

注意:本篇文章都是以 AMD E350 APU 来讲安装过程的,如果你用的主板并不是 E350,或者型号与我使用的不完全一致,可能安装过程会有不同。另外,因为 OpenMediaVault 是基于 Linux 的,所以这需要你懂一些 Linux 知识。

PS. 另外,本篇文章的操作都是直接使用 root 账户进行,如果你在安装的时候使用了非 root 账户,那么多数操作可能需要加 sudo 来运行。

硬件

  • 机箱:万由 N400 4盘位 NAS 机箱
  • 主板:梅捷 SY-E350-U3M
  • 内存:芝奇 G.Skill DDR3 1333 4G
  • 电源:肯亿 200W 小 1U 电源
  • 系统磁盘:SSK SFD201 USB3.0 16G U盘

因为都是在促销,或者优惠的时候购买的,不包邮费总价在 1400 元左右。

软件

  • 基础系统:Debian Squeeze
  • NAS 系统:OpenMediaVault
  • 媒体中心:XBMC 10.1 Dharma

安装系统

创建 OpenMediaVault 安装盘

因为是用的 NAS 机箱,上面是没有光驱位的,而且我也没有现成的光驱可以用,因为需要用 U 盘来引导安装系统。

首先需要准备一个 512M 以上的 U 盘,然后从 openmediavault.org 下载最新版本的 OpenMediaVault,再使用下面的命令将镜像恢复到 U 盘上:

sudo dd if=openmediavault_0.2.5_i386.iso of=/dev/disk1 bs=4096

注意:disk1 是在我的机器上 U 盘所在的位置,另外,在 dd 恢复镜像的时候,要使用 /dev/disk1,而不是 disk1s1,disk1s1 就会将镜像恢复到某个分区而不是整个 U 盘了。

启动盘注意事项

因为是用的 USB 3.0 的 U 盘,我在安装系统的时候,把 U 盘插在了 USB 3.0 的接口上,但是在系统安装程序启动之后,USB 3.0 的 U 盘没有自动识别出来,因此要将 USB 3.0 的 U 盘插在 USB 2.0 的口上。

在安装的过程中,可以将 Debian 源的地址修改为网易的源镜像,这样安装软件的速度更快一些,网易源的地址为:

http://mirrors.163.com/debian/

安装基本软件

先安装一些基本的软件,包括 X.org,Gnome,GDM3,Vim 和 less:

apt-get install xorg gnome-core gdm3 vim less

Gnome 和 GDM3 其实到后面都不会用到,但是在运行一些需要图形界面的工具时,例如 glxinfo、fglrxinfo,就需要有 X 支持了。

设置 debian-multimedia 源

为了让一些包默认使用 debian-multimedia 的源,先将 debian-multimedia 的源添加到 /etc/apt/sources.list

deb http://www.debian-multimedia.org squeeze main non-free 

并将所有其他源行首添加 # 注释掉,运行 apt-get update 更新源。

在更新完成之后,再将其他源行首的 # 删掉,再次运行 apt-get update 更新源。

echo "deb http://www.deb-multimedia.org squeeze main non-free" >> /etc/apt/sources.list

安装 debian-multimedia keyring

apt-get install debian-multimedia-keyring

设置 XBMC 用户

添加一个用户 xbmc 用户来运行 XBMC:

useradd -m -s /bin/bash xbmcpasswd xbmc

设置用户 openmediavault 密码

在后面的设置过程中,可能需要管理员权限,而这个时候是用的 openmediavault 这个用户,我不清楚这个用户的默认密码是什么,所以需要先设置这个用户的密码:

passwd openmediavault

启用 SSH

在安装完 OpenMediaVault 之后,就可以直接访问它的 Web 界面了,建议启用 SSH 以便直接在本机进行操作,省去使用键盘看着电视操作的麻烦。

OpenMediaVault 默认的管理员用户名为 admin,密码为 openmediavault

安装显卡驱动

Debian 源里的 ATI 闭源驱动 fglrx 貌似有点问题,因此建议从官方下载后再安装。

官方驱动安装说明:http://www2.ati.com/relnotes/Catalyst_11.6_Linux_Installer.pdf

删除默认驱动

apt-get remove --purge xserver-xorg-video-radeonapt-get remove fglrx-driver fglrx-control fglrx-glx fglrx-atieventsd fglrx-modules-dkms fglrx-glx-ia32

安装编译环境

官方驱动在安装过程中有一些东西需要编译,因此需要安装一下编译环境,以及相关的依赖包:

apt-get install build-essential ia32-libs linux-headers-$(uname -r)

下载并安装显卡驱动

注意,安装显卡驱动需要在 X 下面进行,因此可以在启动时,登入到 Gnome,用 Gnome 中的 Terminal 来安装。

另外,在登入时,建议选择 root 账号。

wget http://www2.ati.com/drivers/linux/ati-driver-installer-11-12-x86.x86_64.runchmod +x ati-driver-installer-11-12-x86.x86_64.run./ati-driver-installer-11-12-x86.x86_64.run

在安装时,选择自动模式即可,自定义模式似乎有些问题。

在安装完成后,使用 aticonfig 命令来生成默认的 X.org 配置文件:

aticonfig --initial

配置视频硬件加速

apt-get install libkms1wget http://www.splitted-desktop.com/static/libva/libva//pkgs/amd64/libva1_0.31.1-1+sds5_amd64.debwget http://www.splitted-desktop.com/static/libva/xvba-video/xvba-video_0.8.0-1_amd64.debdpkg -i libva1_0.31.1-1+sds5_amd64.debdpkg -i xvba-video_0.8.0-1_amd64.deb

设置一下 /etc/environment:

vi /etc/environmentLIBVA_DRIVER_NAME=xvbaLIBVA_DRIVERS_PATH=/usr/lib/va/drivers

安装完成后,进入到 X,在 Gnome Terminal 里检查是否安装成功:

xbmc@openmediavault:~$ vainfolibva: libva version 0.31.1-sds1Xlib:  extension "XFree86-DRI" missing on display ":0.0".libva: va_getDriverName() returns 0libva: Trying to open /usr/lib/va/drivers/fglrx_drv_video.soXlib:  extension "XFree86-DRI" missing on display ":0.0".libva: va_openDriver() returns 0vainfo: VA API version: 0.31vainfo: Driver version: Splitted-Desktop Systems XvBA backend for VA-API - 0.8.0vainfo: Supported profile and entrypoints      VAProfileH264High               : VAEntrypointVLD      VAProfileVC1Advanced            : VAEntrypointVLD

这表示视频硬件加速已经安装成功了。

配置声音以及 HDMI 音频

安装声音服务

apt-get install alsa-base alsamixergui

要添加 xbmc 用户到 audio 用户组:

usermod -a -G audio xbmc

设置 HDMI 音频

使用 aplay -l 命令,可以列出系统中的声卡,HDMI 音频即是 card 0: Generic [HD-Audio Generic], device 3: ATI HDMI [ATI HDMI]

root@openmediavault:~# aplay -l**** List of PLAYBACK Hardware Devices ****card 0: Generic [HD-Audio Generic], device 3: ATI HDMI [ATI HDMI]  Subdevices: 1/1  Subdevice #0: subdevice #0card 1: SB [HDA ATI SB], device 0: ALC887 Analog [ALC887 Analog]  Subdevices: 1/1  Subdevice #0: subdevice #0card 1: SB [HDA ATI SB], device 1: ALC887 Digital [ALC887 Digital]  Subdevices: 1/1  Subdevice #0: subdevice #0

记下 card 和 device 后面的数字,这个要写在 /etc/asound.conf 里面,用来配置默认音频:

root@openmediavault:~# vi /etc/asound.confpcm.!default {    type hw    card 0    device 3}

取消 HDMI 音频默认静音

使用 amixer scontrols 命令,可以找出 HDMI 音频的控制器,

root@openmediavault:~# amixer scontrolsSimple mixer control 'IEC958',0

使用 amixer sset IEC958 unmute 可以来设置音频取消静音:

root@openmediavault:~# amixer sset IEC958 unmute Simple mixer control 'IEC958',0  Capabilities: pswitch pswitch-joined penum  Playback channels: Mono  Mono: Playback [on]

amixer sset IEC958 unmute 添加到 /etc/rc.local 可以在系统启动时就取消 HDMI 音频的静音了。

安装 XBMC

使用 mplayer 测试 VA-API

可以先安装一下 mplayer 来测试 VA-API 是否安装成功:

apt-get install libavformat-dev libavutil-dev libpostproc-dev libswscale-dev libmpeg2-4-dev libass-dev libmpcdec-dev libflac-dev libwavpack-dev python-dev gawk gperf nasm libcwiid1-dev libbluetooth-dev zlib1g-dev libsmbclient-dev libiso9660-dev libssl-dev lsb-release libvdpau-dev libmicrohttpd-dev libmodplug-dev librtmp-dev libcrystalhd-dev curl python-dev libyajl-dev libxtst-dev libfaad-dev yasm subversion libva-devwget http://www.splitted-desktop.com/static/libva/mplayer-vaapi/mplayer-vaapi-latest-FULL.tar.bz2tar xpvf mplayer-vaapi-latest-FULL.tar.bz2cd mplayer-vaapi-20110127./checkout-patch-build.shcd mplayer-vaapimake install

使用 mplayer 测试 vaapi 是否可用:

mplayer -vo vaapi -va vaapi -lavdopts threads=N moviename.mkv

如果能正常播放,说明 VA-API 安装成功。

编译安装 XBMC 10.1 Dharma

安装依赖:

apt-get install debhelper python-support cmake autotools-dev autoconf automake unzip libboost-dev zip libtool libgl1-mesa-dev libglu-dev libglew-dev libmad0-dev libjpeg-dev libsamplerate-dev libogg-dev libvorbis-dev libfreetype6-dev libfontconfig-dev libbz2-dev libfribidi-dev libsqlite3-dev libasound2-dev libpng-dev libpcre3-dev liblzo2-dev libcdio-dev libsdl-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libenca-dev libjasper-dev libxt-dev libxmu-dev libxinerama-dev libcurl4-gnutls-dev libdbus-1-dev libhal-storage-dev libhal-dev libpulse-dev libavahi-common-dev libavahi-client-dev libxrandr-dev libavcodec-dev libavformat-dev libavutil-dev libpostproc-dev libswscale-dev libmpeg2-4-dev libass-dev libmpcdec-dev libflac-dev python-dev gawk gperf libcwiid1-dev libbluetooth-dev zlib1g-dev libsmbclient-dev libboost-thread-dev libiso9660-dev libssl-dev lsb-release libmicrohttpd-dev libmodplug-dev librtmp-dev libcrystalhd-dev curl python-dev libyajl-dev libplist-dev libusb-dev libudev-dev  autopoint libmms-dev libmysqlclient-dev

下载 XBMC 10.1 Dharma 代码:

wget --no-check-certificate https://nodeload.github.com/xbmc/xbmc/zipball/10.1-Dharma -O xbmc-10.1.zipunzip xbmc-10.1.zipcd xbmc-xbmc-9f3aec3

编译和安装:

./bootstrap./configure --prefix=/usr/local/xbmc --enable-vaapimake -j2sudo make install

如果需要蓝光导航支持的话,需要加上 libbluray,先编译安装 libbluray 库:

git clone git://git.videolan.org/libbluray.gitcd libbluray/./bootstrap./configure --prefix=/usrmakemake install

那么在前面 configure XBMC 的时候,就要添加 --enable-libbluray 参数:

./configure --prefix=/usr/local/xbmc --enable-vaapi --enable-libbluray

配置 XBMC

禁用 GDM3

因为要使用 XBMC 作为默认的 X 界面,所以需要禁用掉 GDM3:

apt-get install chkconfigchkconfig —level 2345 gdm3 off

设置 xbmc 用户自动登录

编辑 /usr/bin/autologin,填入以下内容:

#!/bin/bash/bin/login -f xbmc

并添加可执行权限:

chmod +x /usr/bin/autologin

编辑 /etc/inittab,找到 1:2345:respawn:/sbin/getty 38400 tty1,修改为:

1:2345:respawn:/sbin/getty -n -l /usr/bin/autologin 38400 tty1

设置 xbmc 用户自动启动 XBMC

编辑 /home/xbmc/.profile,在最后添加以下内容:

PATH=/usr/local/xbmc/bin:$PATHif [ -z “$DISPLAY" ] && [ $(tty) == /dev/tty1 ]; then    startxfi

修正 XBMC 里不能关机、重启、休眠

apt-get install policykit-1 upower acpi-supportvi /var/lib/polkit-1/localauthority/50-local.d/custom-actions.pkla## 填入以下内容:[Actions for xbmc user]Identity=unix-user:xbmcAction=org.freedesktop.upower.*;org.freedesktop.consolekit.system.*;org.freedesktop.udisks.*ResultAny=yesResultInactive=noResultActive=yes

设置 xbmc 用户的 X 初始化文件

编辑 /home/xbmc/.xinitrc,填入以下内容:

exec /usr/bin/ck-launch-session /usr/bin/dbus-launch --exit-with-session /usr/local/xbmc/bin/xbmc-standalone

并修改权限:

chown xbmc:xbmc /home/xbmc/.xinitrc

修正 XBMC 主题中文的问题

XBMC 中的多数主题自带的字体都不支持中文显示,因此需要使用一个带中文的字体来替换主题自带的字体,我使用的主题是 Rapier,使用 YaHei.Consolas.1.12.ttf 这个字体来替换主题自带的字体。

先将 YaHei.Consolas.1.12.ttf 复制到主题所在目录的 font 文件夹中:

cp YaHei.Consolas.1.12.ttf /home/xbmc/.xbmc/addons/skin.rapier/fonts

然后使用 bash 脚本来直接删除原来的字体,并用原来的文件名软连接到新的替换字体:

CN_FONT=YaHei.Consolas.1.12.ttffor f in `ls *.ttf`; do if [ "$f" != $CN_FONT ]; then rm $f; ln -s $CN_FONT $f; fi; done

设置视频硬件加速

进入“设置》视频》播放”,进行以下设置:

* 取消选中 Allow hardware acceleration (VDPAU)* 选中 Allow hardware acceleration (VAAPI)

进入“设置》系统》视频输出”,进行以下设置:

* 垂直空白同步:总是开启

设置声音输出

进入“设置》系统》音频输出”,进行以下设置:

* 音频输出设备:hdmi* 直通输出设备:hdmi

另外,由于我的电视不支持“AC3 数字音效”和“DTS 数字音效”,所以也要取消选中这两个选项。

安装 Web 界面

我使用 iPhone 来控制 XBMC,试用了几个 Web 界面之后,觉得 wTouch 这个界面用起来比较爽。

首先需要在程序扩展里,安装“Web 界面》wTouch”。

然后在“设置》系统》网络》服务”中进行以下设置:

* 选中“允许通过 HTTP 控制 XBMC”* 设置“Web 界面”为“wTouch”* 选中“允许异地程序控制 XBMC”

在 iPhone 中使用 Safari 打开 XBMC 的 IP + 设置中的端口,例如 192.168.2.100:8080,点击 Safari 底部中间的动作按钮,选择“添加至主屏幕”,这样以后就可以像使用一般应用程序一样来使用 wTouch 来控制 XBMC 了。

wTouch 主要使用触摸来操作,使用还是比较方便的,可以在 wTouch 界面中点击右上角的“Help”,来查看使用帮助。

XBMC 中文扩展库

中文扩展库项目地址: http://code.google.com/p/xbmc-addons-chinese/

cd /home/xbmcwget http://xbmc-addons-chinese.googlecode.com/files/repository.googlecode.xbmc-addons-chinese.zip

在扩展中,从 zip 安装

可以自行选择添加需要的扩展,已有扩展列表见 http://bbs.htpc1.com/thread-76915-1-1.html

其他设置

HDMI 输出不能全屏的问题

先添加一个脚本 /usr/bin/atiscan 来设置 HDMI 输出,脚本来源 http://www.edmondscommerce.co.uk/linux/ati-underscan-fix-for-linux-ubuntu-etc/

#!/bin/bash## Suggest you put this script into you home directory, eg # mkdir -p ~/bin# gedit ~/bin/atiscan# copy paste this in# chmod +x ~/bin/atiscan# CONFIG STUFF YOU WILL EDIT# You can let the script query you for this stuff, though once you have run it once, # suggest you edit the script and hard code the settingsDISPLAY_TYPE='dfp1'WIDTH=1920  HEIGHT=1080# SCRIPT STARTSif [ "" == "$WIDTH" ]then    echo "please enter your display width (eg 1280, 1920 etc)"    read WIDTHfiif [ "" == "$WIDTH" ] then    echo "empty widt, dying"    exit 1fiif [ "" == "$HEIGHT" ]then    echo "please enter your display width (eg 1280, 1920 etc)"    read HEIGHTfiif [ "" == "$HEIGHT" ] then    echo "empty height, dying"    exit 1fi# DISPLAY TYPEif [ "" == "$DISPLAY_TYPE" ] then    echo "First we need to check which type of display it is"    types="crt1 lvds tv cv tmds1 crt2 tmds2 tmds2i dfp1 dfp2 dfp3 dfp4 dfp5 dfp6"    for t in $types    do        aticonfig --query-dispattrib=$t,positionX      done    echo"    The one that didnt error is the right one    If you are running more than one monitor/display then take your pick!    "    echo "Please enter the one you want to set to $WIDTH x $HEIGHT"    read DISPLAY_TYPE   fiif [ "" == "$DISPLAY_TYPE" ] then    echo "empty display type, dying"    exit 1fi#POSITIONaticonfig --set-dispattrib=$DISPLAY_TYPE,positionX:0aticonfig --set-dispattrib=$DISPLAY_TYPE,positionY:0aticonfig --set-dispattrib=$DISPLAY_TYPE,sizeX:$WIDTHaticonfig --set-dispattrib=$DISPLAY_TYPE,sizeY:$HEIGHT

在添加完脚本后,可以让这个 atiscan 在启动 XBMC 之前运行,修改 /home/xbmc/.xinitrc,在 xbmc-standalone 前一行,添加一句 /usr/bin/atiscan,.xinitrc 的内容就会变成像下面这样:

/usr/bin/atiscanexec /usr/bin/ck-launch-session /usr/bin/dbus-launch --exit-with-session /usr/local/xbmc/bin/xbmc-standalone

格式化硬盘为 ext4 时的选项

如果硬盘只做为电影存储的盘,那么有必要将 block size 设置偏大一些,否则一块 2T 的硬盘,inode 所占的空间大概要在 100GB 左右。

参考:http://wiki.debian.org.hk/w/Format_disk_as_Ext2,_Ext3_or_Ext4

备份系统

因为系统是装在 U 盘上的,可以直接在另外的电脑上,或者 PE 系统,使用 GHOST 来备份,也可以使用 tar 命令来将系统分区备份成一个文件:

tar czpvf /backup$(date "+%Y-%m-%d").tar.gz --exclude=/proc --exclude=/media --exclude=/mnt --exclude=/dev --exclude=/sys --exclude=/tmp --exclude=/lost+found --exclude=/backup$(date "+%Y-%m-%d").tar.gz /

还原时同样使用 tar 命令:

tar -xvpzf /backup.tar.gz -C /mkdir /proc /lost+found /mnt /sys /media

截图欣赏

后记

其实,XBMC 在 Linux 上使用并不太完美,最不折腾的方案还是用 Windows + XBMC + 远程桌面 来管理,Windows 的共享也不是特别麻烦,特别是作为 HTPC,并不需要特别严格的权限管理。

不过,总算是折腾完了,目前运行也算良好。

希望此文对正在折腾 NAS+HTPC 的你有所帮助。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Ubuntu 升级python3为更高版本【已实测】
Linxu显卡驱动
玩客云安装Home Assistant 0.114.4(刷机安装汇总
FaceBook/infer-安装说明
ubuntu12.04搭建android编译环境
Linux Mint 13 的安装、配置及搭建Android源码编译环境
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服