slothpuck |
07-01-2006 10:36 AM |
Well, I'm now glad to say that after a lot of work, I've finally got this device to work under slackware 10.2 current. I don't claim I'm doing everything right, and hopefully I've noted down everything correctly here but this is what I did. Hopefully if anyone else is having problems this will give some sort of help :) . I've been working on this all morning!
Ok, this is what I did, right from starting installing slackware to using the device.
1) Install slackware current (10.2) . This can be found on the many slackware mirrors :) . I chose to download the two slackware current ISOs.
2) Update kernel using slackware current extras/testing. I used the 2.6.16.20 kernel.
3) Get "dvb-apps-a5de459c8fcb" from linuxtv.org . (The name may have changed by now).
4) Get "v4l-dvb-a3a095225de1" from linuxtv.org . (The name may have changed by now).
5) Get "dvb-usb-wt220u-01.fw" and "dvb-usb-wt220u-02.fw" from linuxtv.org . These are the firmware files.
6) Compile (3) with make & make install, but if errors occur on the compile comment out the line that mentions av7110_loadkeys in one of the makefiles. It's found in /util in the source for (3), adjust it to look like this:
Code:
# Makefile for linuxtv.org dvb-apps/util
.PHONY: all clean install
all clean install:
# $(MAKE) -C av7110_loadkeys $@
$(MAKE) -C zap $@
$(MAKE) -C dib3000-watch $@
$(MAKE) -C dst-utils $@
$(MAKE) -C dvbdate $@
$(MAKE) -C dvbnet $@
$(MAKE) -C dvbtraffic $@
$(MAKE) -C scan $@
$(MAKE) -C szap $@
$(MAKE) -C femon $@
$(MAKE) -C ttusb_dec_reset $@
Note the "#" to comment out the line above. Once it is compiled (with make), do a make install on it.
7) Compile (4) as root - with "make all", then "make install".
8) Copy the .fw (firmware) files you downloaded into /lib/firmware ( cp *.fw /lib/firmware ) .
9) Time to update udev! Udev seems to be partially set up in slackware 10.2 current, but we need to make one file and edit one more.
First of all, put this in /etc/udev/scripts;
Code:
#!/bin/sh
/bin/echo $1 | /bin/sed -e 's,dvb\([0-9]\)\.\([^0-9]*\)\([0-9]\),dvb/adapter\1/\2\3,'
and save it as "dvb.sh". You may need to change its permissions too.
10) Now "udev.rules" in /etc/udev/udev.d needs updating. Add this to that file;
Code:
# dvb devices
KERNEL="dvb*", PROGRAM="/etc/udev/scripts/dvb.sh %k", NAME="%c", GROUP="users", MODE="0666"
Here is my udev.rules file if anyone needs it;
Code:
# /etc/udev/udev.rules: device naming rules for udev
#
# There are a number of modifiers that are allowed to be used in some of the
# fields. See the udev man page for a full description of them.
# all block devices
SUBSYSTEM="block", GROUP="disk"
### cdrom symlinks and other good cdrom naming
##BUS="ide", KERNEL="hd[a-z]", PROGRAM="/etc/udev/scripts/cdsymlinks.sh %k", SYMLINK="%c{1} %c{2} %c{3} %c{4} %c{5} %c{6}"
##BUS="scsi", KERNEL="sr[0-9]*", PROGRAM="/etc/udev/scripts/cdsymlinks.sh %k", SYMLINK="%c{1} %c{2} %c{3} %c{4} %c{5} %c{6}"
##BUS="scsi", KERNEL="scd[a-z]", PROGRAM="/etc/udev/scripts/cdsymlinks.sh %k", SYMLINK="%c{1} %c{2} %c{3} %c{4} %c{5} %c{6}"
##
### devfs-names for ide-devices (uncomment only one)
### /dev/ide/.../{disc,cd} and /dev/{cdroms,discs}/* type names
##BUS="ide", KERNEL="hd*", PROGRAM="/etc/udev/scripts/ide-devfs.sh %k %b %n", NAME="%k", SYMLINK="%c{1} %c{2}", GROUP="%c{3}"
# permissions for IDE CD devices
BUS="ide", KERNEL="*[!0-9]", PROGRAM="/bin/cat /proc/ide/%k/media", RESULT="cdrom*", NAME="%k", GROUP="cdrom", MODE="0660"
# permissions for IDE floppy devices
BUS="ide", KERNEL="*[!0-9]", PROGRAM="/bin/cat /proc/ide/%k/media", RESULT="floppy*", NAME="%k", GROUP="floppy", MODE="0660"
# permissions for SCSI cd/sg/tape devices
BUS="scsi", KERNEL="s[grt][0-9]*", SYSFS{type}="5", NAME="%k", GROUP="cdrom", MODE="0660"
# disk devices
KERNEL="sd*", NAME="%k", GROUP="disk"
KERNEL="dasd*", NAME="%k", GROUP="disk"
KERNEL="ataraid*", NAME="%k", GROUP="disk"
# DRI devices
KERNEL="card*", NAME="dri/card%n", GROUP="video"
KERNEL="nvidia*", NAME="%k", GROUP="video"
KERNEL="3dfx*", NAME="%k", GROUP="video"
# ALSA devices
SUBSYSTEM="sound", GROUP="audio"
KERNEL="controlC[0-9]*", NAME="snd/%k", MODE="0666"
KERNEL="hw[CD0-9]*", NAME="snd/%k", MODE="0662"
KERNEL="pcm[CD0-9]*c", NAME="snd/%k", MODE="0662"
KERNEL="pcm[CD0-9]*p", NAME="snd/%k", MODE="0666"
KERNEL="midiC[D0-9]*", NAME="snd/%k", MODE="0666"
KERNEL="timer", NAME="snd/%k", MODE="0666"
KERNEL="seq", NAME="snd/%k", MODE="0666"
# capi devices
KERNEL="capi", NAME="capi20", SYMLINK="isdn/capi20"
KERNEL="capi*", NAME="capi/%n"
# cpu devices
KERNEL="cpu[0-9]*", NAME="cpu/%n/cpuid"
KERNEL="msr[0-9]*", NAME="cpu/%n/msr"
KERNEL="microcode", NAME="cpu/microcode"
# dm devices (ignore them)
KERNEL="dm-[0-9]*", NAME=""
# create a symlink named after the device map name
# note devmap_name comes with extras/multipath
#KERNEL="dm-[0-9]*", PROGRAM="/sbin/devmap_name %M %m", NAME="%k", SYMLINK="%c"
KERNEL="device-mapper", NAME="mapper/control"
# fb devices
KERNEL="fb[0-9]*", NAME="fb/%n", SYMLINK="%k", GROUP="video"
# floppy devices
KERNEL="fd[0-9]*", NAME="floppy/%n", SYMLINK="%k", GROUP="floppy", PROGRAM="/etc/udev/scripts/floppy-extra-devs.sh %k %b %n"
# i2c devices
KERNEL="i2c-[0-9]*", NAME="i2c/%n", SYMLINK="%k"
# input devices
KERNEL="mice", NAME="input/%k", MODE="0644"
KERNEL="mouse*", NAME="input/%k", MODE="0644"
KERNEL="event*", NAME="input/%k", MODE="0600"
KERNEL="js*", NAME="input/%k", MODE="664"
KERNEL="ts*", NAME="input/%k", MODE="0600"
# loop devices
KERNEL="loop[0-9]*", NAME="loop/%n", SYMLINK="%k", GROUP="disk"
# md block devices
KERNEL="md[0-9]*", NAME="md/%n", SYMLINK="%k", GROUP="disk"
# aoe char devices,
SUBSYSTEM="aoe", KERNEL="discover", NAME="etherd/%k", GROUP="disk", MODE="0220"
SUBSYSTEM="aoe", KERNEL="err", NAME="etherd/%k", GROUP="disk", MODE="0440"
SUBSYSTEM="aoe", KERNEL="interfaces", NAME="etherd/%k", GROUP="disk", MODE="0220"
# misc devices
KERNEL="agpgart", NAME="misc/%k", SYMLINK="%k"
KERNEL="psaux", NAME="misc/%k", SYMLINK="%k"
KERNEL="rtc", NAME="misc/%k", SYMLINK="%k", MODE="0664"
KERNEL="uinput", NAME="misc/%k", SYMLINK="%k"
KERNEL="inotify", NAME="misc/%k", SYMLINK="%k", MODE="0666"
# netlink devices
KERNEL="route", NAME="netlink/%k"
KERNEL="skip", NAME="netlink/%k"
KERNEL="usersock", NAME="netlink/%k"
KERNEL="fwmonitor", NAME="netlink/%k"
KERNEL="tcpdiag", NAME="netlink/%k"
KERNEL="nflog", NAME="netlink/%k"
KERNEL="xfrm", NAME="netlink/%k"
KERNEL="arpd", NAME="netlink/%k"
KERNEL="route6", NAME="netlink/%k"
KERNEL="ip6_fw", NAME="netlink/%k"
KERNEL="dnrtmsg", NAME="netlink/%k"
KERNEL="tap*", NAME="netlink/%k"
# network devices
KERNEL="tun", NAME="net/%k"
# ramdisk devices
KERNEL="ram[0-9]*", NAME="rd/%n", SYMLINK="%k"
# raw devices
KERNEL="raw[0-9]*", NAME="raw/%k", GROUP="disk"
KERNEL="ram*", NAME="%k", GROUP="disk"
# sound devices
KERNEL="adsp", NAME="sound/%k", SYMLINK="%k", GROUP="audio", MODE="0662"
KERNEL="adsp[0-9]*", NAME="sound/%k", SYMLINK="%k", GROUP="audio", MODE="0662"
KERNEL="audio", NAME="sound/%k", SYMLINK="%k", GROUP="audio", MODE="0662"
KERNEL="audio[0-9]*", NAME="sound/%k", SYMLINK="%k", GROUP="audio", MODE="0662"
KERNEL="dsp", NAME="sound/%k", SYMLINK="%k", GROUP="audio", MODE="0662"
KERNEL="dsp[0-9]*", NAME="sound/%k", SYMLINK="%k", GROUP="audio", MODE="0662"
KERNEL="mixer", NAME="sound/%k", SYMLINK="%k", GROUP="audio", MODE="0662"
KERNEL="mixer[0-9]*", NAME="sound/%k", SYMLINK="%k", GROUP="audio", MODE="0662"
KERNEL="sequencer", NAME="sound/%k", SYMLINK="%k", GROUP="audio", MODE="0662"
KERNEL="sequencer[0-9]*", NAME="sound/%k", SYMLINK="%k", GROUP="audio", MODE="0662"
# tty devices
KERNEL="console", NAME="%k", GROUP="tty", MODE="0600"
KERNEL="tty", NAME="%k", GROUP="tty", MODE="0666"
KERNEL="tty[0-9]*", NAME="vc/%n", SYMLINK="%k", GROUP="tty"
KERNEL="ttyS[0-9]*", NAME="tts/%n", SYMLINK="%k", GROUP="tty"
KERNEL="ttyUSB[0-9]*", NAME="tts/USB%n", GROUP="tty", MODE="0660"
KERNEL="ippp0", NAME="%k", GROUP="tty"
KERNEL="isdn*", NAME="%k", GROUP="tty"
KERNEL="dcbri*", NAME="%k", GROUP="tty"
KERNEL="ircomm*", NAME="%k", GROUP="tty"
# pty devices
KERNEL="ptmx", NAME="%k", GROUP="tty", MODE="0666"
KERNEL="pty[p-za-e][0-9a-f]*", NAME="pty/m%n", SYMLINK="%k", GROUP="tty"
KERNEL="tty[p-za-e][0-9a-f]*", NAME="pty/s%n", SYMLINK="%k", GROUP="tty"
# vc devices
KERNEL="vcs", NAME="vcc/0", SYMLINK="%k", GROUP="tty"
KERNEL="vcs[0-9]*", NAME="vcc/%n", SYMLINK="%k", GROUP="tty"
KERNEL="vcsa", NAME="vcc/a0", SYMLINK="%k", GROUP="tty"
KERNEL="vcsa[0-9]*", NAME="vcc/a%n", SYMLINK="%k", GROUP="tty"
# memory devices
KERNEL="random", NAME="%k", MODE="0664"
KERNEL="urandom", NAME="%k", MODE="0664"
KERNEL="mem", NAME="%k", GROUP="kmem", MODE="0640"
KERNEL="kmem", NAME="%k", GROUP="kmem", MODE="0640"
KERNEL="port", NAME="%k", GROUP="kmem", MODE="0640"
KERNEL="full", NAME="%k", MODE="0666"
KERNEL="null", NAME="%k", MODE="0666"
KERNEL="zero", NAME="%k", MODE="0666"
# usb devices
KERNEL="hiddev*", NAME="usb/%k"
KERNEL="auer*", NAME="usb/%k"
KERNEL="legousbtower*", NAME="usb/%k"
KERNEL="dabusb*", NAME="usb/%k"
BUS="usb", KERNEL="lp[0-9]*", NAME="usb/%k", GROUP="lp"
# v4l devices
KERNEL="video[0-9]*", NAME="v4l/video%n", SYMLINK="video%n", GROUP="video"
KERNEL="radio[0-9]*", NAME="v4l/radio%n", GROUP="video"
KERNEL="vbi[0-9]*", NAME="v4l/vbi%n", SYMLINK="vbi%n", GROUP="video"
KERNEL="vtx[0-9]*", NAME="v4l/vtx%n", GROUP="video"
# dvb devices
KERNEL="dvb*", PROGRAM="/etc/udev/scripts/dvb.sh %k", NAME="%c",
GROUP="users", MODE="0666"
# Asterix Zaptel devices
KERNEL="zapctl", NAME="zap/ctl"
KERNEL="zaptimer", NAME="zap/timer"
KERNEL="zapchannel", NAME="zap/channel"
KERNEL="zappseudo", NAME="zap/pseudo"
KERNEL="zap[0-9]*", NAME="zap/%n"
# pilot/palm devices
KERNEL="pilot", NAME="%k", GROUP="uucp"
# jaz devices
KERNEL="jaz*", NAME="%k", GROUP="disk"
# zip devices
KERNEL="pocketzip*", NAME="%k", GROUP="disk"
KERNEL="zip*", NAME="%k", GROUP="disk"
# ls120 devices
KERNEL="ls120", NAME="%k", GROUP="disk"
# lp devices
KERNEL="lp*", NAME="%k", GROUP="lp"
KERNEL="irlpt", NAME="%k", GROUP="lp"
KERNEL="usblp", NAME="%k", GROUP="lp"
KERNEL="lp*", NAME="%k", GROUP="lp"
# tape devices
KERNEL="ht*", NAME="%k"
KERNEL="nht*", NAME="%k"
KERNEL="pt*", NAME="%k"
KERNEL="npt*", NAME="%k"
KERNEL="st*", NAME="%k"
KERNEL="nst*", NAME="%k"
KERNEL="osst*", NAME="%k"
KERNEL="nosst*", NAME="%k"
# diskonkey devices
KERNEL="diskonkey*", NAME="%k", GROUP="disk"
# rem_ide devices
KERNEL="microdrive*", NAME="%k", GROUP="disk"
# kbd devices
KERNEL="kbd", NAME="%k", MODE="0664"
# Sony Vaio Jogdial sonypi device
KERNEL="sonypi", NAME="%k", MODE="0666"
# packet devices
KERNEL="pktcdvd", NAME="pktcdvd/control", GROUP="cdrom", MODE="0660"
KERNEL="pktcdvd[0-9]*", NAME="pktcdvd/pktcdvd%n", GROUP="cdrom", MODE="0660"
# infiniband devices
KERNEL="umad*", NAME="infiniband/%k"
KERNEL="issm*", NAME="infiniband/%k"
# Be backward compatible for a while with the /etc/dev.d and /etc/hotplug.d/.
# systems run /etc/hotplug.d/ stuff only if we came from a hotplug event,
# not for udevstart:
ENV{UDEVD_EVENT}=="1", RUN+="/sbin/udev_run_hotplugd"
# always run /etc/dev.d/ stuff for now
RUN+="/sbin/udev_run_devd"
11) If you haven't already, install xine and its libraries. They are found on the 1st slackware current cd iso (or on slackware's servers).
12) A program called "udevd" needs to be started, so type "udevd &" (I think as root) at a command line prompt. The freecom USB device will need to be removed and then plugged back in for udev itself to take notice of it. The light on the freecom USB should be light up, and be yellow.
13) Look in /dev for the following entries, if all is well so far these should be in /dev:
Code:
/dev/dvb/adapter0
/dev/dvb/adapter0/demux0
/dev/dvb/adapter0/dvr0
/dev/dvb/adapter0/frontend0
/dev/dvb/adapter0/net0
14) It's now time to scan for the channels. Go back to the dvb-utils (3) and cd into the directory "util", then the directory "scan", then finally "dvb-t".
15) You'll need to choose one of the files in /util/scan/dvb-t. These channels list the transmitters. I am in the UK, and in the south so I chose the file called "uk-Rowridge". Type the following to do this (you'll need to use a file that is relevent for your area);
Code:
scan uk-Rowridge > /root/channels.conf
Replace "root/channels.conf" to somewhere on your system.
16) If all went well, (and there were no segfaults!) you should now have a working "channels.conf".
17) Go to your home directory, find your .xine directory and copy "channels.conf" into it with;
Code:
cp channels.conf .xine
18) Now try from a command line - running xine. Type
Code:
xine "dvb://BBC ONE"
It should now hopefully(!) all work. One last thing -- if you find your playback is very jerky it might be because your X server is using the VESA driver. If it is, run "xorgconf" as root to change it.
Some final notes (not sure about these)
- modprobe uhci-hcd might prove that you really *do* have a USB 2 port on your system. The freecom DVB stick *needs* USB 2. If you get an error either something went wrong, or you don't have USB 2 (and none of this will work properly).
- Just doing "scan -c" by itself will not work.
- If you leave the freecom device plugged in, and its light is not on at all, it will get hot quite quickly. Best to unplug it.
:)
SP
|