DVB Support for the Videolan Client (VLC) on Fedora Core 5

The version of the Videolan Client (VLC) for Fedora Core 5 from freshrpms does not include DVB support.

[foo@localhost ~]$ vlc --program 4704 dvb:12207000:0:3:27500000
VLC media player 0.8.5 Janus
status change: ( new input: dvb:12207000:0:3:27500000 )
status change: ( audio volume: 256 )
status change: ( play state: 1 )
[00000295] main input error: no suitable access module for `dvb:12207000:0:3:27500000'
status change: ( stop state: 0 )
[00000285] main playlist: nothing to play

A quick search through the VLC Documentation shows it must be rebuilt with the ‘experimental’ --enable-dvb option.

I took the source RPM from Freshrpms, added the --enable-dvb option on the ./configure line and attempted to rebuild.

Assuming you have an up to date Fedora Core 5 installation, working DVB hardware with the necessary drivers. To do this you will need (at least) the following packages installed:

gnutls-devel libdvdread-devel libdvdnav-devel libebml-devel libmatroska-devel libmodplug-devel libmad-devel libid3tag-devel lame-devel faac-devel faad2-devel a52dec-devel flac-devel mpeg2dec-devel speex-devel libtheora-devel x264-devel SDL_image-devel fribidi-devel aalib-devel libcaca-devel wxGTK-devel xosd-devel lirc-devel libcdio-devel vcdimager-devel avahi-devel libopendaap-devel libmpcdec-devel libcddb-devel libdca-devel

These are available from the core & extras Fedora repositories, some are located in the ATrpms & Freshrpms repositories.

Build the new RPM with the following:

[root@localhost ~]# rpmbuild –ba /usr/src/redhat/SPECS/videolan-client.spec

To install the new RPM I had to --force –nodeps the RPM transaction:

[root@localhost ~]# rpm -U --force --nodeps videolan-client-0.8.5-1.fc5.i386.rpm videolan-client-devel-0.8.5-1.fc5.i386.rpm

This time when I retry launching VLC I got the following:

[foo@localhost ~]$ vlc --program 4704 dvb:12207000:0:3:27500000
VLC media player 0.8.5 Janus
[00000544] skins2 interface error: Cannot open display
[00000544] skins2 interface error: cannot initialize OSFactory
Remote control interface initialized. Type `help' for help.
[00000548] dvb access error: the DVB input old syntax is deprecated, use vlc -p dvb to see an explanation of the new syntax

It turns out that the VLC documentation is rather outdated. After poking around in the VLC user interface I extracted the necessary command-line arguments to make it work.

The following command line execution of VLC will tune to the frequency 12.207Ghz, vertical polarisation, symbol rate 27.5Mhz with an ‘automatic’ FEC and select program 4704 (Sky News).

[foo@localhost ~]$ vlc --program=4704 dvb:// :dvb-adapter=0 :dvb-frequency=12207000 :dvb-srate=27500000 :dvb-caching=300 :dvb-inversion=2 :dvb-probe :dvb-voltage=13 :no-dvb-high-voltage :dvb-tone=-1 :dvb-fec=9 :dvb-code-rate-hp=9

And this variation will stream it over UDP to localhost port 1234.

[foo@localhost ~]$ vlc --program=4704 dvb:// :dvb-adapter=0 :dvb-frequency=12207000 :dvb-srate=27500000 :dvb-caching=300 :dvb-inversion=2 :dvb-probe :dvb-voltage=13 :no-dvb-high-voltage :dvb-tone=-1 :dvb-fec=9 :dvb-code-rate-hp=9 :sout=\#duplicate\{dst=std\{access=udp,mux=ts,dst=127.0.0.1:1234\}\}

And without further a do, the pre-built RPMS and modified source RPM I created.

Binary RPM:

videolan-client-0.8.5-1.fc5.i386.rpm
videolan-client-devel-0.8.5-1.fc5.i386.rpm
videolan-client-debuginfo-0.8.5-1.fc5.i386.rpm

Source RPM:

videolan-client-0.8.5-1.fc5.src.rpm

Lastly, you can select multiple programs from the same transponder and stream them to separate destination addresses, see the example in Chapter 9 of the VLC documentation.

Feedback & Questions welcomed!

What not to do when you’ve installed sshdfilter

sshdfilter is a great tool which monitors system logs for repetitive failed login attempts and actively updates iptables to block offending ip addresses. However, there is a slight shortfall it its design as there are no exceptions to its blocking rules as I found this morning:

Subject: sshdfilter event for 127.0.0.1, Too many password guesses, blocking
Date: Fri, 3 Mar 2006 11:04:02 +0000 (GMT)
From: root@lobstertechnology.com (root)

IP 127.0.0.1 was blocked, Too many password guesses, blocking.
Will remove block at Fri Mar 3 12:04:02 2006.

I almost cried, this one is worthy of being framed and put on the wall.

Firewalling against 127.0.0.1 is very very bad news on a unix system where there is a lot of loopback activity to run core services such as databases, x servers etc. I had a root shell open at the time and could flush the iptable rules to get back to some kind of normality.

Thankfully, Gerry has produced a patch allowing you to configure ‘trusted’ addresses which will never be blocked in this way. Hopefully it will make it to the core sshdfilter code in the near future.

Fedora Core 5 yum.conf

Just a quick snippet of my /etc/yum.conf file which includes the ATrpms and FreshRpms repositories.

[main]
cachedir=/var/cache/yum
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
pkgpolicy=newest
distroverpkg=redhat-release
tolerant=1
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
metadata_expire=1800

[atrpms]
name=Fedora Core $releasever – $basearch – ATrpms
baseurl=http://dl.atrpms.net/fc$releasever-$basearch/atrpms/stable

[freshrpms]
name=Fedora Linux $releasever – $basearch – freshrpms
baseurl=http://ayo.freshrpms.net/fedora/linux/$releasever/$basearch/freshrpms

Trac – Emptying a Wiki database

A quick bit of shell magic to empty a Trac wiki database in a freshly installed Trac environment. In this example /var/www/html/trac is assumed to be the Trac environment you created with trac-admin.

$ for page in `trac-admin /var/www/html/trac wiki list | cut -d' ' -f1 | grep "^[A-Z]" | grep -v "Title"`; do trac-admin /var/www/html/trac wiki remove $page; done;

;)

Fedora Core 5 on VMWare 5.5

Fedora Core 5 was released yesterday, I attempted to upgrade my existing Fedora Core 4 installation in VMWare Workstation 5.5.0 and encountered a problem.

Fedora isn’t automatically detecting the VMWare SCSI device, it presents a warning that there were no hard drives were detected. I found you can resolve this by manually adding the BusLogic device during setup.

See the following sequence of screenshots.

1. Default Boot Screen
Installation Boot Screen

2. Warning Message “No hard drives have been found.”
Warning

3. List of Automatically Detected Devices
Detected Drivers

4. Manually Selecting the “BusLogic MultiMaster SCSI” Driver
Add Device

5. List of Detected Devices now including the BusLogic Driver
Drivers List

After doing this everything installed normally, Good Luck!!

Update: TI 7×21 FlashMedia/SD Host Controller (104C:8033 & 104C:8034)

Bit of an update, my previous post is now getting a significant amount of traffic; in fact it’s my hottest post yet!

Progress over at http://tifmxx.berlios.de/ – I downloaded the latest revision of this driver and it appears to be going through re-structuring, still not-functional I am afraid.

However, a month since contacting TI I received a response to my telephone-based support request by email.

From: support@ti.com

Hello Michael,

I am sorry TI doesn’t support software drivers for cardbus devices,
please see below for more details on this:

TI PC Card, Flash Media, IEEE 1394 and Smart Card Controller
Devices:

Texas Instruments (TI) I does not develop software drivers for
these multi-function controllers. Our devices are used in Personal
Computers and add-in cards from many manufacturers. These
manufacturers include drivers from Microsoft and, for certain
platforms, from the Linux community that enable the PC Card and 1394
functions in these TI devices. Texas Instruments does not provide
drivers for Windows, Linux or any other operating system.

If you are encountering difficulties with your PC or add-in card,
please contact the manufacturer for support. Texas Instruments does
not provide any support for these end products.

If you require drivers for Flash Media or Smart Card you need to
contact the PC manufacturer. TI does not provide drivers for atypical
system applications.

Additional information

To find the manufacturer of the card, use the FCC’s web page
http://www.fcc.gov/oet/fccid/ to search for the FCC ID number printed
on the bottom of the card. If it came preinstalled, please contact
the store where you purchased the computer.

Third-party vendors have developed Card &Socket Services driver
support for other operating systems. These vendors include Phoenix
Technologies/Award Software, and SystemSoft:

Microsoft
www.microsoft.com 800-426-9400

Award Software/Phoenix Technologies www.phoenix.com
800-677-7305

Systemsoft Corp.
www.systemsoft.com 800-796-0088

Softex, Inc.
www.softexinc.com 512-452-8836

Best Regards,
Sandeep.

TI assumes no liability for applications assistance or customer
product design. Customer is fully responsible for all design
decisions and engineering with regard to its products, including
decisions relating to application of TI products. By providing
technical information, TI does not intend to offer or provide
engineering services or advice concerning Customer’s design. If
Customer desires engineering services, the Customer should rely on
its retained employees and consultants and/or procure engineering
services from a licensed professional engineer (LPE).

***Please do not delete the below Thread ID when replying to this
email, doing so will delay our response to your inquiry***

[SR THREAD ID:1-3RGCWY]

Dear Michael Cutler

Thank you for choosing Texas Instruments Technical Support. Your
case 1-227511394 has been resolved. See the description below for
details.

Would like Linux driver for this card. I told him we didn’t supply
them and to contact PCMCIA, but he said that he knew somebody who had
managed to get these from TI

Regards,

X0045551

Texas Instruments

Semiconductor Technical Support

http://www-k.ext.ti.com/sc/technical_support/pic/americas.htm

If you have further questions please reply to this email.

TI assumes no liability for applications assistance or customer
product design. Customer is fully responsible for all design
decisions and engineering with regard to its products, including
decisions relating to application of TI products. By providing
technical information, TI does not intend to offer or provide
engineering services or advice concerning Customer’s design. If
Customer desires engineering services, the Customer should rely on
its retained employees and consultants and/or procure engineering
services from a licensed professional engineer (LPE).
***Please do not delete the below Thread ID when replying to this
email, doing so will delay our response to your inquiry***
[SR THREAD ID:1-3RGCWY]

And my response.

Dear Sandeep,

Thank you for taking the time to respond to my query. I appreciate that Texas Instruments (TI) does not tend to support end-users of your devices, especially with driver problems and believe me if it were that simple I would not be taking up your time today.

The reason I am contacting you is simple, I am trying to use my TI 7×20/7×21 Flash Media controller (PCI ID 104c:8033) within Linux. After a lot of research on the subject I discovered this page on the Everest Consultants Inc website. It suggests the Texas Instruments hired Everest to produce Linux Device Drivers for this particular chip; judging by the write up they have produced a well designed and much needed driver solution. I contacted Everest about obtaining this driver and they referred me to you.

http://www.everestinc.com/fml.htm

In the meantime I continued researching this on the internet and discovered an open source and “free” (as in freedom) effort to produce a driver for this device. Unfortunately it isn’t progressing particularly quickly because technical documentation on this chip is scarce.

http://tifmxx.berlios.de/

I also discovered another person who had managed to obtain a binary version of what are presumably the Everest-made drivers. It is also interesting to note that the ‘modinfo’ for the driver states it is under GPL (Gnu Public License) and as such, the source code should be available on demand.

http://www.webcon.ca/~imorgan/tifm21/

I have been recording my progress on my personal website. In the past seven days I have had 243 unique visitors who have searched for this device in relation to Linux and discovered my website and the record of my progress, a handful have contacted me directly about it.

There is a great demand for Linux support for this device, I would like to see either the Everest-made GPL driver source code made available or, extensive technical documentation – sufficient to allow open source developers to produce a driver – made available to the Open Source Community.

Yours Sincerely,


Michael Cutler . o O ( http://blog.lobstertechnology.com/ )
PGP: 0xC3ABA735

I will follow up by calling them again during mainstream office hours and see where I can get myself transferred to this time. :)

Using sshdfilter to secure an SSH server

Since moving my OpenSSH server down to its standard port number I have been hit daily by service scanning software and brute force password attacks. Gerry pointed out that sshdfilter can help.

sshdfilter blocks the frequent brute force attacks on ssh daemons, it does this by directly reading the sshd logging output and generating iptables rules, the process can be quick enough to block an attack before they get a chance to enter any password at all.

It’s quick and simple to setup, I enabled email alerts to see what it gets upto and can report it is all working fine on my servers (Red Hat 9 customised).

It will block when triggered by:

  • An attempt to login as a user which doesn’t exist
  • After N failed attempts to login to an existing user account
  • If the incoming connection fails to provide an SSH version banner which is part of the SSH protocol, it’s most likely a port scanner or dumb client
  • The length of time the block remains in place is all configurable.

    Brute force password attacks on Linux over SSH

    This is one of the main reasons I hate running SSH on the standard port numbers, every day I get log-alerts like these. As per usual I notify the originating ISP, at least I have an email template for it.

    Failed logins from these:
    invalid user abdul (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user abort (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user abs (password) from 203.98.XXX.XXX: 1 Time(s)
    invalid user adam (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user admin (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user admin (password) from 203.98.XXX.XXX: 14 Time(s)
    invalid user advertise (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user alan (password) from 203.98.XXX.XXX: 4 Time(s)
    invalid user alcatel (password) from 203.98.XXX.XXX: 4 Time(s)
    invalid user alex (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user alex (password) from 203.98.XXX.XXX: 6 Time(s)
    invalid user allan (password) from 203.98.XXX.XXX: 1 Time(s)
    invalid user aloha (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user alpha (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user alter (password) from 203.98.XXX.XXX: 1 Time(s)
    invalid user ameno (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user amman (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user andy (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user angel (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user antidot (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user apache (password) from 125.240.XXX.XXX: 30 Time(s)
    invalid user apache (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user ariane (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user aron (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user art (password) from 203.98.XXX.XXX: 1 Time(s)
    invalid user artificial (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user asahi (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user aspect (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user aspidistra (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user atempt (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user atilla (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user atom (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user aurel (password) from 203.98.XXX.XXX: 4 Time(s)
    invalid user avsadmin (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user azazel (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user backup (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user base (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user bash (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user beast (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user berg (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user beta (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user binary (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user black (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user bobo (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user bogdan (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user book (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user bourn (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user brett (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user brian (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user buche (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user cable (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user cache (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user cain (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user cambera (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user camelia (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user cesna (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user chat (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user chris (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user church (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user clark (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user client (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user coffee (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user common (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user costel (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user costi (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user crack (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user cristina (password) from 203.98.XXX.XXX: 4 Time(s)
    invalid user cyclon (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user dalton (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user danny (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user darling (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user dasilva (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user data (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user dave (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user david (password) from 125.240.XXX.XXX: 26 Time(s)
    invalid user david (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user davod (password) from 125.240.XXX.XXX: 2 Time(s)
    invalid user deserve (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user desire (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user dns (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user domain (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user donna (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user dool (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user down (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user dragon (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user dudu (password) from 203.98.XXX.XXX: 1 Time(s)
    invalid user earth (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user elixir (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user elvis (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user epsilon (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user eric (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user example (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user fadeh (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user fatih (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user fax (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user felix (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user fiat (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user filter (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user finale (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user fire (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user foon (password) from 203.98.XXX.XXX: 1 Time(s)
    invalid user ford (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user found (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user frank (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user freddy (password) from 125.240.XXX.XXX: 14 Time(s)
    invalid user ftpuser (password) from 125.240.XXX.XXX: 30 Time(s)
    invalid user gamma (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user ganja (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user gaspar (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user george (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user gerhard (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user ghost (password) from 203.98.XXX.XXX: 4 Time(s)
    invalid user gone (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user grand (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user granicus (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user gregory (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user grims (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user guest (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user guest (password) from 203.98.XXX.XXX: 4 Time(s)
    invalid user gushi (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user hang (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user hassan (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user health (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user helen (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user hell (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user helmut (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user heracle (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user honour (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user host (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user http (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user httpd (password) from 203.98.XXX.XXX: 4 Time(s)
    invalid user iarin (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user ident (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user include (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user info (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user info (password) from 203.98.XXX.XXX: 4 Time(s)
    invalid user iolanda (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user ion (password) from 203.98.XXX.XXX: 1 Time(s)
    invalid user ionut (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user irina (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user jack (password) from 125.240.XXX.XXX: 26 Time(s)
    invalid user jamal (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user james (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user jasmina (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user jason (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user java (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user jeffrey (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user jelem (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user jenny (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user jerry (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user jessica (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user jessie (password) from 125.240.XXX.XXX: 14 Time(s)
    invalid user jhony (password) from 203.98.XXX.XXX: 1 Time(s)
    invalid user jiang (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user jihad (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user jim (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user joe (password) from 125.240.XXX.XXX: 26 Time(s)
    invalid user john (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user john (password) from 203.98.XXX.XXX: 4 Time(s)
    invalid user jupiter (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user just (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user justice (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user justin (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user kadir (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user kain (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user kaleb (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user kelly (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user kevin (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user kevin (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user kline (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user koln (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user kondor (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user lampard (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user larry (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user laura (password) from 125.240.XXX.XXX: 16 Time(s)
    invalid user laura (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user law (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user lawyer (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user leroi (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user leslie (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user lex (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user library (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user library (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user light (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user lincoln (password) from 203.98.XXX.XXX: 1 Time(s)
    invalid user linda (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user linux (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user lisa (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user locco (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user lost (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user louis (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user louise (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user lucky (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user mailtest (password) from 125.240.XXX.XXX: 24 Time(s)
    invalid user malaga (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user mano (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user maria (password) from 203.98.XXX.XXX: 6 Time(s)
    invalid user mariana (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user mark (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user mark (password) from 203.98.XXX.XXX: 1 Time(s)
    invalid user marte (password) from 203.98.XXX.XXX: 4 Time(s)
    invalid user marty (password) from 125.240.XXX.XXX: 14 Time(s)
    invalid user mary (password) from 125.240.XXX.XXX: 14 Time(s)
    invalid user master (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user matt (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user media (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user mercur (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user mercury (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user michael (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user mike (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user mike (password) from 203.98.XXX.XXX: 4 Time(s)
    invalid user mind (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user minerva (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user mister (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user mistero (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user mobifon (password) from 203.98.XXX.XXX: 1 Time(s)
    invalid user mohamed (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user mona (password) from 203.98.XXX.XXX: 4 Time(s)
    invalid user monaco (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user monica (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user mooka (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user moon (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user mount (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user mrdev (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user mumu (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user munis (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user mysql (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user mysql (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user nancy (password) from 125.240.XXX.XXX: 14 Time(s)
    invalid user neptun (password) from 203.98.XXX.XXX: 3 Time(s)
    invalid user nino (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user noise (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user nokia (password) from 203.98.XXX.XXX: 4 Time(s)
    invalid user office (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user okubo (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user omega (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user oracle (password) from 125.240.XXX.XXX: 26 Time(s)
    invalid user oracle (password) from 203.98.XXX.XXX: 10 Time(s)
    invalid user oracle1 (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user osama (password) from 203.98.XXX.XXX: 1 Time(s)
    invalid user osiris (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user osman (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user palm (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user panama (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user pascal (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user patricia (password) from 125.240.XXX.XXX: 12 Time(s)
    invalid user patrick (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user paul (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user paul (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user peter (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user pgsql (password) from 203.98.XXX.XXX: 4 Time(s)
    invalid user port (password) from 203.98.XXX.XXX: 1 Time(s)
    invalid user portal (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user postfix (password) from 125.240.XXX.XXX: 26 Time(s)
    invalid user postgres (password) from 125.240.XXX.XXX: 26 Time(s)
    invalid user public (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user quarter (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user rajev (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user read (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user rehash (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user relay (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user remove (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user rename (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user repection (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user request (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user resin (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user restore (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user richard (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user richard (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user road (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user robert (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user robin (password) from 125.240.XXX.XXX: 14 Time(s)
    invalid user roger (password) from 125.240.XXX.XXX: 18 Time(s)
    invalid user sales (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user sales (password) from 203.98.XXX.XXX: 4 Time(s)
    invalid user sam (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user samba (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user same (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user sandy (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user sarah (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user saturn (password) from 203.98.XXX.XXX: 4 Time(s)
    invalid user scott (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user script (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user search (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user send (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user serafim (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user server (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user service (password) from 125.240.XXX.XXX: 26 Time(s)
    invalid user shadow (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user shake (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user sharon (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user sharon (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user shell (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user shoot (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user shop (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user shrike (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user sigmund (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user siliciu (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user silla (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user silva (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user silvia (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user sirg (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user smash (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user smell (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user smuf (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user snake (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user sole (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user sombrero (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user sorina (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user sound (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user space (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user sparc (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user spool (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user sport (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user squad (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user staff (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user stanley (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user start (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user stealth (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user steel (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user stepfen (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user stephen (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user steve (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user steven (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user stick (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user storm (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user stream (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user student (password) from 125.240.XXX.XXX: 26 Time(s)
    invalid user student (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user sun (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user support (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user support (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user susan (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user susan (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user system (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user target (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user tay (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user temp (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user temp (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user tener (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user test (password) from 125.240.XXX.XXX: 26 Time(s)
    invalid user test (password) from 203.98.XXX.XXX: 14 Time(s)
    invalid user testuser (password) from 125.240.XXX.XXX: 26 Time(s)
    invalid user tetra (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user thanatos (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user thoor (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user tony (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user tony (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user torpe (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user track (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user travel (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user tristan (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user truth (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user unix (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user user (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user user (password) from 203.98.XXX.XXX: 16 Time(s)
    invalid user username (password) from 203.98.XXX.XXX: 4 Time(s)
    invalid user venus (password) from 203.98.XXX.XXX: 4 Time(s)
    invalid user verset (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user video (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user vincent (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user virtual (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user vision (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user visual (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user warez (password) from 203.98.XXX.XXX: 1 Time(s)
    invalid user web (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user webadmin (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user webadmin (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user webmaster (password) from 125.240.XXX.XXX: 28 Time(s)
    invalid user webmaster (password) from 203.98.XXX.XXX: 4 Time(s)
    invalid user while (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user white (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user william (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user willy (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user wish (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user write (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user www (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user www-data (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user wwwrun (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user yarrow (password) from 203.98.XXX.XXX: 2 Time(s)
    invalid user zed (password) from 203.98.XXX.XXX: 4 Time(s)
    invalid user zoom (password) from 203.98.XXX.XXX: 2 Time(s)
    root/password from 125.240.XXX.XXX: 30 Time(s)
    root/password from 203.98.XXX.XXX: 36 Time(s)

    Locked account login attempts:
    apache : 32 Time(s)
    mysql : 30 Time(s)
    postfix : 26 Time(s)

    However, my favourite ones are still the bots that try talking HTTP to my SMTP server:

    unknown[61.128.XXX.XXX] sent non-SMTP command: POST / HTTP/1.1 : 1 Time(s)

    Sitecom CN-502 USB Bluetooth Dongle works on Linux

    To my absolute surprise, the Sitecom CN-502 USB Bluetooth Dongle works perfectly with out-of-the-box Fedora Core 4 x86_64. The lsusb output shows it’s a Cambridge Silicon Radio chip (0a12:0001) which is very widely used and well supported.

    I bought this thing some time ago because of its protruding aerial; my original intention was to dismantle it and add a huge-gain antenna – Car Whisperer-esque – but I just haven’t got around to doing it.

    The lsusb output:

    Bus 003 Device 002: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)

    For completeness, here is the rest of my config:

    $ uname -a
    Linux localhost 2.6.14-1.1656_FC4 #1 Thu Jan 5 22:13:55 EST 2006 x86_64 x86_64 x86_64 GNU/Linux
    $ rpm -q -a | grep -i bluez
    bluez-hcidump-1.18-1
    bluez-utils-2.15-7
    bluez-pin-0.24-2
    bluez-libs-2.15-1

    And it working:

    $ /etc/init.d/bluetooth start
    Starting Bluetooth services: [ OK ]
    $ hcitool scan
    Scanning ...
    00:XX:XX:XX:XX:XX XXXXXXXX

    Not bad since I found it in a bargain bucket!

    Related Links:

    Sitecom CN-502 Product Support

    TI 7×21 FlashMedia/SD Host Controller (104C:8033 & 104C:8034)

    Update: TI 7x21 FlashMedia/SD Host Controller (104C:8033 & 104C:8034)

    The Compaq R4100 series of laptops feature a 6-in-1 memory card reader based on the widely used Texas Instruments 7x21 chips. Although TI provides Windows drivers there is very little information available to assist in development of a free Linux device driver for it.

    It appears that TI actually contracted another company (Everest) to write a Linux device driver, although the write-up on their work shows great potential there is no sign of the driver or its source code. There is however a binary version of the driver built for the 2.6.11 kernel available here - unfortunately it's useless for me since I am running a 64-bit kernel.

    I found a few promising leads while Googling where reverse engineering the Windows driver was helping development of a native kernel driver for it.

    http://tifmxx.berlios.de/
    http://www.webcon.ca/~imorgan/tifm21/

    Unfortunately there is no fully working driver as yet, however the Subversion repository at tifmxx.berlios.de is very active, I checked out the latest revision of the code to test it out

    make
    insmod tifmxx.ko

    returned:

    tifmxx: Unknown symbol scsi_remove_host
    tifmxx: Unknown symbol pci_intx
    tifmxx: Unknown symbol tifmxx_mmcsd_wait_for_ae
    tifmxx: Unknown symbol scsi_host_put
    tifmxx: Unknown symbol tifmxx_mmcsd_wait_for_brs
    tifmxx: Unknown symbol tifmxx_mmcsd_wait_for_card
    tifmxx: Unknown symbol scsi_add_host
    tifmxx: Unknown symbol tifmxx_mmcsd_wait_for_af
    tifmxx: Unknown symbol scsi_host_alloc
    tifmxx: Unknown symbol __scsi_add_device
    tifmxx: Unknown symbol scsi_remove_host
    tifmxx: Unknown symbol pci_intx
    tifmxx: Unknown symbol tifmxx_mmcsd_wait_for_ae
    tifmxx: Unknown symbol scsi_host_put
    tifmxx: Unknown symbol tifmxx_mmcsd_wait_for_brs
    tifmxx: Unknown symbol tifmxx_mmcsd_wait_for_card
    tifmxx: Unknown symbol scsi_add_host
    tifmxx: Unknown symbol tifmxx_mmcsd_wait_for_af
    tifmxx: Unknown symbol scsi_host_alloc
    tifmxx: Unknown symbol __scsi_add_device

    Trawling mailing-lists I found that "pci_intx" wasn't implemented by the kernel in version 2.6.11-1.1369 but it is in later releases like 2.6.14-1.1656 which I also tested with. To workaround this in 2.6.11-1.1369 the recommendation was to add the following code to the top of tifmxx_hw.c.

    C++:
    1. static void pci_intx(struct pci_dev *pdev, int enable)
    2. {
    3.  u16 pci_command, new;
    4.  
    5.  pci_read_config_word(pdev, PCI_COMMAND, &pci_command);
    6.  
    7.  if (enable)
    8.    new = pci_command & ~PCI_COMMAND_INTX_DISABLE;
    9.  else
    10.    new = pci_command | PCI_COMMAND_INTX_DISABLE;
    11.  
    12.  if (new != pci_command)
    13.    pci_write_config_word(pdev, PCI_COMMAND, pci_command);
    14. }

    Although this avoided the pci_intx problem the others remained, *probably* down to SCSI not being enabled in the Fedora Core 4 standard kernel; the missing tifmxx_ symbols simply aren't implemented yet. Rebuilding it without the pci_intx hack on my 2.6.14-1.1659 kernel appeared to be a lot better, looks promising.

    tifmxx: Unknown symbol scsi_remove_host
    tifmxx: Unknown symbol scsi_add_device
    tifmxx: Unknown symbol tifmxx_mmcsd_wait_for_ae
    tifmxx: Unknown symbol scsi_host_put
    tifmxx: Unknown symbol tifmxx_mmcsd_wait_for_brs
    tifmxx: Unknown symbol tifmxx_mmcsd_wait_for_card
    tifmxx: Unknown symbol scsi_add_host
    tifmxx: Unknown symbol tifmxx_mmcsd_wait_for_af
    tifmxx: Unknown symbol scsi_host_alloc

    After my recent success with ndiswrapper I decided to give it a bash using some Windows x64 drivers I found while trawling the net. It appears to be an official release for Windows x64 labelled "TI 7x21 FlashMedia/SD Host controller driver -Win64", "version 2.0.0.0", "build id FBCRX02W" - but I found no mention of it on their website - download it here.

    ndiswrapper -i tifm21.inf
    modprobe ndiswrapper

    returned:

    ndiswrapper (import:239): unknown symbol: ntoskrnl.exe:'ExReleaseFastMutex'
    ndiswrapper (import:239): unknown symbol: ntoskrnl.exe:'ExAcquireFastMutex'
    ndiswrapper (import:239): unknown symbol: ntoskrnl.exe:'IoUnregisterPlugPlayNotification'
    ndiswrapper (import:239): unknown symbol: ntoskrnl.exe:'IoGetDmaAdapter'
    ndiswrapper (import:239): unknown symbol: ntoskrnl.exe:'KeLeaveCriticalRegion'
    ndiswrapper (import:239): unknown symbol: ntoskrnl.exe:'KeEnterCriticalRegion'
    ndiswrapper (import:239): unknown symbol: ntoskrnl.exe:'IoGetDeviceObjectPointer'
    ndiswrapper (import:239): unknown symbol: ntoskrnl.exe:'IoRegisterPlugPlayNotification'
    ndiswrapper (load_sys_files:218): couldn't prepare driver 'tifm21'
    ndiswrapper (load_wrap_driver:112): loadndiswrapper failed (65280); check system log for messages from 'loadndisdriver'

    Game Over... It was a long shot anyway...

    I have emailed Everest and will try calling them tomorrow, failing that I might try give TI a call, the binary kernel module is labelled as GPL so the source must be available in some form. Other than that I will be keeping an eye on the progress over at tifmxx.berlios.de

    One day... maybe it will all just work... Ah yes, just for completeness... Here is a lspci dump:

    03:04.0 CardBus bridge: Texas Instruments PCIxx21/x515 Cardbus Controller
    Subsystem: Hewlett-Packard Company: Unknown device 3085
    Flags: bus master, medium devsel, latency 168, IRQ 185
    Memory at b0209000 (32-bit, non-prefetchable) [size=4K]
    Bus: primary=03, secondary=04, subordinate=07, sec-latency=176
    Memory window 0: 30000000-31fff000 (prefetchable)
    Memory window 1: 32000000-33fff000
    I/O window 0: 0000a400-0000a4ff
    I/O window 1: 0000a800-0000a8ff
    16-bit legacy interface ports at 0001

    03:04.3 Mass storage controller: Texas Instruments PCIxx21 Integrated FlashMedia Controller
    Subsystem: Hewlett-Packard Company: Unknown device 3085
    Flags: bus master, medium devsel, latency 64, IRQ 10
    Memory at b0206000 (32-bit, non-prefetchable) [size=8K]
    Capabilities: [44] Power Management version 2

    03:04.4 Class 0805: Texas Instruments PCI6411, PCI6421, PCI6611, PCI6621, PCI7411, PCI7421, PCI7611, PCI7621 Secure Digital (SD) Controller
    Subsystem: Hewlett-Packard Company: Unknown device 3085
    Flags: bus master, medium devsel, latency 64, IRQ 10
    Memory at b020a000 (32-bit, non-prefetchable) [size=256]
    Memory at b0208c00 (32-bit, non-prefetchable) [size=256]
    Memory at b0208800 (32-bit, non-prefetchable) [size=256]
    Capabilities: [80] Power Management version 2

    UPDATE: I just got a response from Everest

    This is a custom project done for Texas instruments and not open source. Any queries regarding this driver should be addressed to TI.