Navodila v anglescini:
Nexus-S DVB card with a 2.6.x kernel. As I am going through the steps, I will try to point out some of the differences between using a 2.4.x kernel
and a 2.6.x kernel. But, this document is mainly going to focus on the latter. The distro that I am currently using is Debian Sid, but any mainstream linux distro should work (as long as you are able to build a kernel on it from the source). Also, I would like to mention that for this tutorial we are always going to be using the vanilla kernel source from
www.kernel.org (not the distros hacked up version). Lets get started...
1) Get the Linuxtv dvb drivers and put them in the correct location:
cd /usr/src
wget
http://www.linuxtv.org/download/dvb/lin ... .1.tar.bz2
2) Extract the drivers and create a softlink:
tar -jxf linuxtv-dvb-1.1.1.tar.bz2
ln -s linuxtv-dvb-1.1.1 DVB
Note: you should now have a directory called /usr/src/DVB and this is linked to /usr/src/linuxtv-dvb-1.1.1
3) Change to the /usr/src/DVB directory and run MAKEDEV-DVB.sh (this creates your /dev/dvb directories).
cd /usr/src/DVB
./MAKEDEV-DVB.sh
Note: the MAKEDEV-DVB.sh script only needs to run one time during the initial setup.
4) Run the "makelinks" script so the current 2.6.x kernel is now linked to the linuxtv drivers (instead of its
original drivers)
./makelinks /usr/src/linux
Note: This step requires that you already have a directory on your system called /usr/src/linux and it is
pointing to a 2.6.x kernel source directory.
5) We are now going to apply a few patches to the linuxtv drivers before we go and build the actual kernel.
Patch #1 (for fixing the Nexus-S/vdr recording problem):
diff -urN dvb-kernel.org/linux/drivers/media/dvb/ttpci/av7110.c dvb-kernel/linux/drivers/media/dvb/ttpci/av7110.c
--- dvb-kernel.org/linux/drivers/media/dvb/ttpci/av7110.c 2004-01-02 19:15:45.000000000 +0100
+++ dvb-kernel/linux/drivers/media/dvb/ttpci/av7110.c 2004-01-04 22:55:12.000000000 +0100
@@ -104,9 +104,9 @@
static int av7110_debug = 0;
static int vidmode=CVBS_RGB_OUT;
-static int pids_off;
+static int pids_off=0;
static int adac=DVB_ADAC_TI;
-static int hw_sections = 1;
+static int hw_sections = 0;
static int rgb_on = 0;
int av7110_num = 0;
Patch #2 (so the frontend driver does not go to sleep):
edit the file: /usr/src/DVB/linux/drivers/media/dvb/dvb-core/dvb_frontend.c
look for the line that says:
static int dvb_shutdown_timeout = 5;
change it to:
static int dvb_shutdown_timeout = 0;
6) Now we are going to build the tool that builds the firmware for the Nexus-S.
cd /usr/src/DVB/scripts
gcc -Wall ttpci-firmware.c -o ttpci-firmware
7) Build the patched root firmware with the ttpci-firmware program.
cd /usr/src/DVB/scripts
wget
http://207.44.152.197/Root-patched-031110.gz
gunzip Root-patched-031110.gz
./ttpci-firmware Dpram Root-patched-031110 01
Note: If you are wondering where to get the "Dpram" file, it can be found in the
file:
http://linuxtv.org/download/dvb/linuxtv ... 0.1.tar.gz
Download the linuxtv-dvb-1.0.1 file and copy the Dpram file out of it into /usr/src/DVB/scripts before
you run the command to build the patched root firmware file.
After you run the command above, you should have built a file called "dvb-ttpci-01.fw".
Copy dvb-ttpci-01.fw to /usr/lib/hotplug/firmware/dvb-ttpci-01.fw (this is the default location the
2.6.x kernel looks for it during the kernel compilation).
You are now ready to build your 2.6.x kernel with the appropriate linuxtv drivers. When you build the kernel, build all the dvb related drivers into the kernel (*), not as modules (M). This will be alot easier in the long run
because now we will not have to worry about editing the modprobe.conf and passing all the necessary parameters.
The DVB drivers also require I2C-DEV, Bit-Banging, EVDEV, and DVB-DEV to be built in the kernel for support.
za kernel pa:
│ │ [*] Select only drivers expected to compile cleanly │ │
│ │ [ ] Select only drivers that don't need compile-time external firmware
--- snip ---
--- Mouse interface │ │
│ │ [*] Provide legacy /dev/psaux device │ │
│ │ (1024) Horizontal screen resolution │ │
│ │ (768) Vertical screen resolution │ │
│ │ < > Joystick interface │ │
│ │ < > Touchscreen interface │ │
│ │ <*> Event interface │ │
│ │ < > Event debugging
--- snip ---
--- I2C support │ │
│ │ <*> I2C device interface │ │
│ │ I2C Algorithms ---> │ │
│ │ I2C Hardware Bus support ---> │ │
│ │ Hardware Sensors Chip support ---> │ │
│ │ Other I2C Chip support ---> │ │
│ │ [ ] I2C Core debugging messages │ │
│ │ [ ] I2C Algorithm debugging messages │ │
│ │ [ ] I2C Bus debugging messages │ │
│ │ [ ] I2C Chip debugging messages
--- snip ---
<*> I2C bit-banging interfaces │ │
│ │ < > I2C PCF 8584 interfaces
--- snip ---
[*] DVB For Linux │ │
│ │ <*> DVB Core Support │ │
│ │ --- Misc. Frontend Modules │ │
│ │ --- DVB-S (satellite) frontends │ │
│ │ <*> ST STV0299 based │ │
│ │ < > Connexant CX24110 based │ │
│ │ < > Grundig 29504-491 based │ │
│ │ < > Zarlink MT312 based │ │
│ │ < > VLSI VES1893 or VES1993 based
--- snip ---
--- Supported SAA7146 based PCI Adapters │ │
│ │ <*> AV7110 cards │ │
│ │ [*] Compile AV7110 firmware into the driver │ │
│ │ (/usr/lib/hotplug/firmware/dvb-ttpci-01.fw) Full pathname of av7110 firmware file │ │
│ │ [*] AV7110 OSD support │ │
│ │ < > Budget cards │ │
│ │ < > Budget cards with onboard CI connector │ │
│ │ < > Budget cards with analog video inputs
--- snip ---
[*] /proc file system support │ │
│ │ [ ] /dev file system support (OBSOLETE) │ │
│ │ [ ] /dev/pts Extended Attributes
PS. ce pa komu, ne bo jasno, naj pa vprasa, za zacetek pa bo.