Need help finding/building RTS5229 driver

My HP DV7 has a Realtek mm/sd card reader

HPDV7T-Linux:/home/carl/Downloads/rts5229-1.07-4.1.src # lspci |grep 5229
08:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5229 PCI Express Card Reader (rev 01)

I checked for a driver on openSUSE_Package_Search but find only drivers for kernel 3.4.6, I am running

# uname -a
Linux HPDV7T-Linux.capenet 3.4.11-2.16-desktop #1 SMP PREEMPT Wed Sep 26 17:05:00 UTC 2012 (259fc87) x86_64 x86_64 x86_64 GNU/Linux


I also found source files, but they appear to be obs projects and am not sure how to build.

Has anyone solved this?
Thanks

I never meet having to install drivers for devices like this one. Please show output of

lspci -nnk

Thanks for responding.

FYI, your comment “I never meet…” does not translate well for me.

Anyhow, here is (I highlighted the problem interface, near end of list)

# lspci -nnk
00:00.0 Host bridge [0600]: Intel Corporation 3rd Gen Core processor DRAM Controller [8086:0154] (rev 09)
        Subsystem: Hewlett-Packard Company Device [103c:1818]
        Kernel driver in use: agpgart-intel
00:01.0 PCI bridge [0604]: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port [8086:0151] (rev 09)
        Kernel driver in use: pcieport
00:02.0 VGA compatible controller [0300]: Intel Corporation 3rd Gen Core processor Graphics Controller [8086:0166] (rev 09)
        Subsystem: Hewlett-Packard Company Device [103c:181d]
        Kernel driver in use: i915
00:14.0 USB controller [0c03]: Intel Corporation 7 Series/C210 Series Chipset Family USB xHCI Host Controller [8086:1e31] (rev 04)
        Subsystem: Hewlett-Packard Company Device [103c:1818]
        Kernel driver in use: xhci_hcd
00:16.0 Communication controller [0780]: Intel Corporation 7 Series/C210 Series Chipset Family MEI Controller #1 [8086:1e3a] (rev 04)
        Subsystem: Hewlett-Packard Company Device [103c:1818]
        Kernel driver in use: mei
00:1a.0 USB controller [0c03]: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 [8086:1e2d] (rev 04)
        Subsystem: Hewlett-Packard Company Device [103c:1818]
        Kernel driver in use: ehci_hcd
00:1b.0 Audio device [0403]: Intel Corporation 7 Series/C210 Series Chipset Family High Definition Audio Controller [8086:1e20] (rev 04)
        Subsystem: Hewlett-Packard Company Device [103c:1818]
        Kernel driver in use: snd_hda_intel
00:1c.0 PCI bridge [0604]: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 1 [8086:1e10] (rev c4)
        Kernel driver in use: pcieport
00:1c.1 PCI bridge [0604]: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 2 [8086:1e12] (rev c4)
        Kernel driver in use: pcieport
00:1c.3 PCI bridge [0604]: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 4 [8086:1e16] (rev c4)
        Kernel driver in use: pcieport
00:1c.5 PCI bridge [0604]: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 6 [8086:1e1a] (rev c4)
        Kernel driver in use: pcieport
00:1d.0 USB controller [0c03]: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 [8086:1e26] (rev 04)
        Subsystem: Hewlett-Packard Company Device [103c:1818]
        Kernel driver in use: ehci_hcd
00:1f.0 ISA bridge [0601]: Intel Corporation HM77 Express Chipset LPC Controller [8086:1e57] (rev 04)
        Subsystem: Hewlett-Packard Company Device [103c:1818]
00:1f.2 RAID bus controller [0104]: Intel Corporation 82801 Mobile SATA Controller [RAID mode] [8086:282a] (rev 04)
        Subsystem: Hewlett-Packard Company Device [103c:1818]
        Kernel driver in use: ahci
00:1f.3 SMBus [0c05]: Intel Corporation 7 Series/C210 Series Chipset Family SMBus Controller [8086:1e22] (rev 04)
        Subsystem: Hewlett-Packard Company Device [103c:1818]
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GeForce GT 630M [10de:0de9] (rev ff)
08:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5229 PCI Express Card Reader [10ec:5229] (rev 01)
        Subsystem: Realtek Semiconductor Co., Ltd. RTS5229 PCI Express Card Reader [10ec:5229]
0a:00.0 Network controller [0280]: Intel Corporation Centrino Wireless-N 2230 [8086:0887] (rev c4)
        Subsystem: Intel Corporation Centrino Wireless-N 2230 BGN [8086:4062]
        Kernel driver in use: iwlwifi
0b:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller [10ec:8168] (rev 07)
        Subsystem: Hewlett-Packard Company Device [103c:1818]
        Kernel driver in use: r8169


Having searched a bit, it seems this is not uncommon.
This is a laptop, most desktops have USB(not PCI) connected card readers.
Also, this may be a new device. Malcom Lewis built the 3.4.6 driver that is available.
From looking at his osc source, it appears he had to tweak the makefile that Realtek provides.

Then wait for a moment, he may take some of his well earned rest :wink:

On Sat 16 Feb 2013 07:16:01 PM CST, cmcgrath5035 wrote:

My HP DV7 has a Realtek mm/sd card reader

Code:

HPDV7T-Linux:/home/carl/Downloads/rts5229-1.07-4.1.src # lspci
|grep 5229 08:00.0 Unassigned class [ff00]: Realtek Semiconductor Co.,
Ltd. RTS5229 PCI Express Card Reader (rev 01)

I checked for a driver on ‘openSUSE_Package_Search’
(http://software.opensuse.org/package/rts5229-kmp-desktop) but find only
drivers for kernel 3.4.6, I am running
Code:

uname -a

Linux HPDV7T-Linux.capenet 3.4.11-2.16-desktop #1 SMP PREEMPT Wed Sep
26 17:05:00 UTC 2012 (259fc87) x86_64 x86_64 x86_64 GNU/Linux


I also found source files, but they appear to be obs projects and am
not sure how to build.

Has anyone solved this?
Thanks

Hi
I have those drivers on OBS…
http://software.opensuse.org/package/rts5229


Cheers Malcolm °¿° (Linux Counter #276890)
openSUSE 12.2 (x86_64) Kernel 3.4.28-2.20-desktop
up 0:17, 3 users, load average: 0.03, 0.07, 0.05
CPU Intel® i5 CPU M520@2.40GHz | GPU Intel® Ironlake Mobile

Has anyone solved this?
Thanks

Hi
I have those drivers on OBS…
http://software.opensuse.org/package/rts5229

[/QUOTE]
Ahh your kernel is not standard, grab the src rpm then and run;


rpmbuild --rebuild rts5229-1.07-2.3.src.rpm

You need the kernel source etc installed, but in the output you will
see the resulting rpm for your running kernel.


Cheers Malcolm °¿° (Linux Counter #276890)
openSUSE 12.2 (x86_64) Kernel 3.4.28-2.20-desktop
up 0:21, 3 users, load average: 0.21, 0.18, 0.11
CPU Intel® i5 CPU M520@2.40GHz | GPU Intel® Ironlake Mobile

Thanks, Malcom.
This is the kernel that installed from DVD (I think).
On another system, I has an UGLY experience updating to 3.4.28 (I believe, the recent update), so have held off.

Anyway, tried but failed

# rpmbuild --rebuild rts5229-1.07-2.3.src.rpm
Installing rts5229-1.07-2.3.src.rpm
warning: InstallSourcePackage at: psm.c:238: Header V3 DSA/SHA1 Signature, key ID d83ee527: NOKEY
cat: /usr/src/packages/SOURCES/preamble: No such file or directory
cat: /usr/src/packages/SOURCES/preamble: No such file or directory
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.8deJ2y
+ umask 022
+ cd /usr/src/packages/BUILD
+ cd /usr/src/packages/BUILD
+ rm -rf Realtek_RTS5229_Linux_Driver_v1.07
+ /usr/bin/unzip -qq /usr/src/packages/SOURCES/Realtek_RTS5229_Linux_Driver_v1.07.zip
+ STATUS=0
+ '' 0 -ne 0 ']'
+ cd Realtek_RTS5229_Linux_Driver_v1.07
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ tar xf rts5229.tar.bz2
+ echo 'Patch #0 (rts5229-fix-makefile.patch):'
Patch #0 (rts5229-fix-makefile.patch):
+ /usr/bin/cat /usr/src/packages/SOURCES/rts5229-fix-makefile.patch
+ /usr/bin/patch -s -p1 --fuzz=0
+ cp -f rts5229/define.release rts5229/define.h
+++ stat --format %Y /usr/src/packages/SOURCES/rts5229.changes
stat: cannot stat '/usr/src/packages/SOURCES/rts5229.changes': No such file or directory
++ date --date @ '+%B %Y %H:%M'
date: invalid date '@'
+ set_date_time=
error: Bad exit status from /var/tmp/rpm-tmp.8deJ2y (%prep)


RPM build errors:
    InstallSourcePackage at: psm.c:238: Header V3 DSA/SHA1 Signature, key ID d83ee527: NOKEY
    Bad exit status from /var/tmp/rpm-tmp.8deJ2y (%prep)

Anything obvious here?
NOKEY an issue ?

On Sat 16 Feb 2013 09:56:02 PM CST, cmcgrath5035 wrote:

Thanks, Malcom.
This is the kernel that installed from DVD (I think).
On another system, I has an UGLY experience updating to 3.4.28 (I
believe, the recent update), so have held off.

Anyway, tried but failed

Code:

rpmbuild --rebuild rts5229-1.07-2.3.src.rpm

Installing rts5229-1.07-2.3.src.rpm
warning: InstallSourcePackage at: psm.c:238: Header V3 DSA/SHA1
Signature, key ID d83ee527: NOKEY
cat: /usr/src/packages/SOURCES/preamble: No such file or directory
cat: /usr/src/packages/SOURCES/preamble: No such file or directory
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.8deJ2y

  • umask 022
  • cd /usr/src/packages/BUILD
  • cd /usr/src/packages/BUILD
  • rm -rf Realtek_RTS5229_Linux_Driver_v1.07
  • /usr/bin/unzip
    -qq /usr/src/packages/SOURCES/Realtek_RTS5229_Linux_Driver_v1.07.zip
  • STATUS=0
  • ‘’ 0 -ne 0 ‘]’
  • cd Realtek_RTS5229_Linux_Driver_v1.07
  • /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
  • tar xf rts5229.tar.bz2
  • echo ‘Patch #0 (rts5229-fix-makefile.patch):’
    Patch #0 (rts5229-fix-makefile.patch):
  • /usr/bin/cat /usr/src/packages/SOURCES/rts5229-fix-makefile.patch
  • /usr/bin/patch -s -p1 --fuzz=0
  • cp -f rts5229/define.release rts5229/define.h
    +++ stat --format %Y /usr/src/packages/SOURCES/rts5229.changes
    stat: cannot stat ‘/usr/src/packages/SOURCES/rts5229.changes’: No
    such file or directory ++ date --date @ ‘+%B %Y %H:%M’
    date: invalid date ‘@’
  • set_date_time=
    error: Bad exit status from /var/tmp/rpm-tmp.8deJ2y (%prep)

RPM build errors:
InstallSourcePackage at: psm.c:238: Header V3 DSA/SHA1 Signature, key
ID d83ee527: NOKEY Bad exit status from /var/tmp/rpm-tmp.8deJ2y (%prep)


Anything obvious here?
NOKEY an issue ?

Hi
Run;


touch /usr/src/packages/SOURCES/rts5229.changes
rpmbuild --rebuild rts5229-1.07-2.3.src.rpm

Note, you don’t need to be root user to rebuild an rpm…only to
install. This has probably modified the permissions on all the folders
now…


Cheers Malcolm °¿° (Linux Counter #276890)
openSUSE 12.2 (x86_64) Kernel 3.4.28-2.20-desktop
up 0:59, 3 users, load average: 0.08, 0.04, 0.05
CPU Intel® i5 CPU M520@2.40GHz | GPU Intel® Ironlake Mobile

Thanks. This time the update ran to conclusion.

I navigated to it, installed the rpm, then

# modprobe rts5229
# depmod

Then plugged in my SD card and Device Notifier popped up!

All is good for now.

Am I correct in assuming that I will need to repeat this with each kernel update in the future until this device magically gets included in a future kernel?
That would seem to be a good assumption.

On 02/16/2013 04:46 PM, cmcgrath5035 wrote:

> Then plugged in my SD card and Device Notifier popped up!
>
> All is good for now.
>
> Am I correct in assuming that I will need to repeat this with each
> kernel update in the future until this device magically gets included in
> a future kernel?
> That would seem to be a good assumption.

The driver for your device (0bda:5529) was added to the kernel on 2012-11-09.
That means it will not be a standard driver until kernel 3.8, and the first
release of openSUSE that his it built in will be 13.1.

I’m sure you are aware, but new drivers do not appear “magically”. Someone did a
lot of work to write that vendor driver, and then it had to be converted to meet
the Linux kernel coding standards. I have no idea how much work is involved in
the conversion, but the wifi drivers take anywhere from 2 to 4 weeks.

On Sat 16 Feb 2013 10:46:01 PM CST, cmcgrath5035 wrote:

malcolmlewis;2527834 Wrote:
> Hi
> Run;
> >
Code:

> >
> touch /usr/src/packages/SOURCES/rts5229.changes
> rpmbuild --rebuild rts5229-1.07-2.3.src.rpm
>

> >
>
Thanks. This time the update ran to conclusion.

I navigated to it, installed the rpm, then

Code:

modprobe rts5229

depmod


Then plugged in my SD card and Device Notifier popped up!

All is good for now.

Am I correct in assuming that I will need to repeat this with each
kernel update in the future until this device magically gets included in
a future kernel?
That would seem to be a good assumption.

Hi
Yes you will, however, until you do it should automatically keep
working as it should get pushed into the weak-update directory after a
kernel upgrade. Note it will build against the standard updates in my
repo so you can always use that when they match…


Cheers Malcolm °¿° (Linux Counter #276890)
openSUSE 12.2 (x86_64) Kernel 3.4.28-2.20-desktop
up 7:12, 3 users, load average: 0.07, 0.09, 0.06
CPU Intel® i5 CPU M520@2.40GHz | GPU Intel® Ironlake Mobile

I am always appreciative and usually amazed at how much gets done and how well the process works.
This time I have learned a bit about maintaining and rebuilding RPMs.
Any pointers to how I could (could have) dig up the information in the above quote myself would be appreciated.
I usually start here in the Forum, if PackageSearch does not work for me, and 99% of the time the global support team points me in the right direction.
Thanks!

On 02/17/2013 05:56 AM, cmcgrath5035 wrote:
> I am always appreciative and usually amazed at how much gets done and
> how well the process works.
> This time I have learned a bit about maintaining and rebuilding RPMs.
> Any pointers to how I could (could have) dig up the information in the
> above quote myself would be appreciated.
> I usually start here in the Forum, if PackageSearch does not work for
> me, and 99% of the time the global support team points me in the right
> direction.

My source of that information is the source (pun intended). In my work on
wireless drivers, I maintain two separate kernel source trees that are updated
using the git utility. One is the tree maintained by Linus and usually referred
to as “mainline”. The other is the working tree maintained by John Linville and
called “wireless-testing”. To find if a given PCI or USB ID is included in the
source, I use grep on the drivers subtree. To learn when the driver was added, I
used the “git blame” command. That utility shows the commit ID, the author, and
date for every line in the file requested. Once I had that info for the RTS5229
driver, it was clear that the driver was added to kernel 3.8. As openSUSE 12.3
was frozen with kernel 3.7, the next version (13.1) will be the first to ship
with a 3.8+ kernel. As there are usually 3 kernel releases per oS version, I
would expect 13.1 to use kernel 3.10.

Hi,
i have similar problem as described in this thread.
My laptop is Compaq CQ58, using SUSE 12.3.

My kernel version is

3.7.10-1.16-desktop

I had problems with

rpmbuild --rebuild rts5229-1.07-2.7.src.rpm

so I did

touch /usr/src/packages/SOURCES/rts5229.changes
rpmbuild --rebuild rts5229-1.07-2.7.src.rpm

and then the build was ok.

After that I tried to load module rts5229, but there’s no such module:

modprobe -l |grep 'rts'
kernel/drivers/staging/rts_pstor/rts_pstor.ko
kernel/drivers/staging/rts5139/rts5139.ko

Does anyone have any idea what can be wrong?
Or maybe simplier is to use newer kernel (as lwfinger mentioned)?

regards,
Michal

Did you install the resulting RPM before trying modprobe?

rpm -i /usr/src/packages/RPMS/x86_64/rts5229-1.07-2.7.x86_64.rpm

(you may have to adapt the path/filename of course)

But since you ARE using the standard kernel, you don’t HAVE to rebuild the src.rpm.
Just install the package from here: (take the version for openSUSE 12.3 Update)
software.opensuse.org: Install package home:malcolmlewis:realtek_drivers / rts5229

Hi
There is an already built rpm for your kernel;
Index of /repositories/home:/malcolmlewis:/realtek_drivers/openSUSE_12.3_Update

Thanks wolfi323 and malcolmlewis,
it works.

Hi again,
from some reasons I had to reinstall my openSUSE. So there was also need to install drivers for my card reader again. And again I have some problems.

  1. I tried to install by link posted by wolfi323 (software.opensuse.org: Install package home:malcolmlewis:realtek_drivers / rts5229), but without success:
  • one click yast method:
Software installation
Installation was only partially successful.
The following packages could not be installed
• rts5229
  • manual installation in console.

zypper addrepo http://download.opensuse.org/repositories/home:malcolmlewis:realtek_drivers/openSUSE_12.3_Update/home:malcolmlewis:realtek_drivers.repo
Adding repository 'Card Reader Controller Drivers (openSUSE_12.3_Update)' [done]
Repository 'Card Reader Controller Drivers (openSUSE_12.3_Update)' successfully added
Enabled: Yes
Autorefresh: No
GPG check: Yes
URI: http://download.opensuse.org/repositories/home:/malcolmlewis:/realtek_drivers/openSUSE_12.3_Update/

zypper refresh
Repository 'openSUSE BuildService - GNOME:Apps' is up to date.
Repository 'home:malcolmlewis:realtek_drivers' is up to date.
Retrieving repository 'Card Reader Controller Drivers (openSUSE_12.3_Updat[done]
Building repository 'Card Reader Controller Drivers (openSUSE_12.3_Update)[done]
Repository 'openSUSE-12.3-1.7' is up to date.
Repository 'openSUSE-12.3-Non-Oss' is up to date.
Repository 'openSUSE-12.3-Update' is up to date.
Repository 'openSUSE-12.3-Update-Non-Oss' is up to date.
All repositories have been refreshed.

zypper install rts5229
Loading repository data...
Reading installed packages...
'rts5229' not found in package names. Trying capabilities.
No provider of 'rts5229' found.
Resolving package dependencies...

Nothing to do.

  1. I tried also package posted by malcolmlewis (Index of /repositories/home:/malcolmlewis:/realtek_drivers/openSUSE_12.3_Update). The installation was successfull:
Installation Successfully Finished
Packages
• Updated Packages: 1
rts_pstor-kmp-default
Statistics
• Elapsed Time: 00:03
• Total Installed Size: 4.97 MB
Details
• Installation log

but it doesn’t work:

03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5229 PCI Express Card Reader (rev 01)
ls -l /dev/sd*
brw-rw---- 1 root disk 8, 0 Aug 30 20:31 /dev/sda
brw-rw---- 1 root disk 8, 1 Aug 30 20:31 /dev/sda1
brw-rw---- 1 root disk 8, 2 Aug 30 20:31 /dev/sda2
brw-rw---- 1 root disk 8, 3 Aug 30 20:31 /dev/sda3
brw-rw---- 1 root disk 8, 4 Aug 30 20:31 /dev/sda4
brw-rw---- 1 root disk 8, 5 Aug 30 20:31 /dev/sda5

previously SD card was marked as /dev/sdb

  1. Building *.src.rpm file also doesn’t work:
rpmbuild --rebuild rts5229-1.07-2.7.src.rpm
Installing rts5229-1.07-2.7.src.rpm
error: line 28: Dependency tokens must begin with alpha-numeric, '_' or '/': BuildRequires:    %kernel_module_package_buildreqs

Do you have any ideas?

BR,
Michal

On Fri 30 Aug 2013 07:06:04 PM CDT, michalwolny wrote:

Hi again,
from some reasons I had to reinstall my openSUSE. So there was also need
to install drivers for my card reader again. And again I have some
problems.

Hi
You need to install the kmp rpm that matches your kernel. The rts5229
rpm is the src rpm…

So it will either be rts5229-kmp -desktop or -default I would guess? The
following command will tell you.


uname -r


Cheers Malcolm °¿° SUSE Knowledge Partner (Linux Counter #276890)
openSUSE 12.3 (x86_64) GNOME 3.8.3 Kernel 3.7.10-1.16-desktop
If you find this post helpful and are logged into the web interface,
show your appreciation and click on the star below…

Hi,
I have kernel

3.7.10-1.16-desktop

and installed package

rts5229-kmp-desktop-1.07_k3.7.10_1.16-2.1.x86_64.rpm 

Still doesn’t work.