Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 249958 - sys-apps/util-linux-2.14.1 seems to have problems with mmc/sd cards
Summary: sys-apps/util-linux-2.14.1 seems to have problems with mmc/sd cards
Status: RESOLVED NEEDINFO
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] baselayout (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: Gentoo's Team for Core System packages
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-12-05 18:41 UTC by Lars Langhans
Modified: 2008-12-08 18:09 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
compressed part of the first 100 sectors from my sd-card (foo_2.13.1.1.dat.bz2,1.06 KB, application/octet-stream)
2008-12-07 13:10 UTC, Lars Langhans
Details
4 straces of fdisk (straces_fdisk.tar.gz,15.25 KB, application/octet-stream)
2008-12-08 18:09 UTC, Lars Langhans
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Lars Langhans 2008-12-05 18:41:29 UTC
I have a Laptop (F11Y) with a build in SD Card Reader, which works very well with current kernels. At the moment I analyse 2.6.28_rc7. After last update of my portage tree the util-linux-2.14.1 was merged. But with this version I have no longer SD/MMC Card access. fdisk -l don't show the card any longer. First I thought it must be a bug in current kernel, but also 2.6.27.7 and 2.6.26.2 don't show the card. After backward to util-liunx 2.13.1.1 the sd/mmc card was shown with fdisk -l.
 

Reproducible: Always

Steps to Reproduce:
1. build a current kernel >=2.6.26 with mmc/sd/sdio card support
2. insert a sd card in your card reader
3. fdisk -l should show the card as something like /dev/mmxblk0

Actual Results:  
With new util-linux-2.14.1 mmc block device will not shown.


Portage 2.1.4.5 (default/linux/x86/2008.0/desktop, gcc-4.3.2, glibc-2.6.1-r0, 2.6.28-rc7 i686)
=================================================================
System uname: 2.6.28-rc7 i686 Genuine Intel(R) CPU U2500 @ 1.20GHz
Timestamp of tree: Fri, 05 Dec 2008 01:45:01 +0000
distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]
ccache version 2.4 [disabled]
app-shells/bash:     3.2_p33
dev-java/java-config: 1.3.7, 2.1.6
dev-lang/python:     2.4.4-r14, 2.5.2-r7
dev-python/pycrypto: 2.0.1-r6
dev-util/ccache:     2.4-r7
dev-util/cmake:      2.4.6-r1
sys-apps/baselayout: 1.12.11.1
sys-apps/sandbox:    1.2.18.1-r2
sys-devel/autoconf:  2.13, 2.61-r2
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1-r1
sys-devel/binutils:  2.18-r3
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool:   1.4.3-r4, 1.5.26
virtual/os-headers:  2.6.27-r2
ACCEPT_KEYWORDS="x86"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-march=prescott -O2 -fomit-frame-pointer -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /lib/rcscripts/addons /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d"
CXXFLAGS="-march=prescott -O2 -fomit-frame-pointer -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="distlocks metadata-transfer parallel-fetch sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://mirror.muntinternet.net/pub/gentoo/ http://adelie.polymtl.ca/distfiles/ "
LANG="de_DE.UTF-8"
LC_ALL="de_DE.UTF-8"
LDFLAGS="-Wl,-O1"
LINGUAS="de de_DE en"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/portage-overlay/local/layman/lla /usr/portage-lla"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="7zip X Xaw3d a52 aac aalib acl acpi alsa amarok amazon amd ao apache2 arts artswrappersuid asm async audacious audiofile automount bash-completion beagle berkdb bittorrent bluetooth branding bzip2 cairo cdaudio cdda cddb cdio cdparanoia cdr cdrom cli colordiff console cracklib crypt css ctype cups curl custom-cflags cvs d dbus dga directfb dri dts dv dvb dvd dvdr dvdread eap-tls eds emacs emboss encode esd evo exif expat extras fam fame fat fbcon fbsplash ffmpeg firefox flac font-server fontconfig fortran ftp gcj gd gdbm gif gimp glibc-compat20 glibc-omitfp glitz glut gnome gnutls gpg gphoto2 gpm gstreamer gtk hddtemp hfs iconv icq id3 id3tag idn ieee1394 image imagemagick ipod ipv6 ipw3945 isdnlog jabber jack java javascript joystick jpeg jpeg2k json kde ladspa lame lash latex lcms ldap libcaca libffi libnotify lm_sensors logrotate lua lzo lzw mad maildir matroska md5sum mhash midi mikmod mixer mjpeg mmap mmx mmxext mng modperl mono motif mozcalendar mozdom mozilla mozsvg mp2 mp3 mp4 mp4live mpeg mpeg2 mplayer mppe-mppc mudflap musepack music mysql nas ncurses net netbeans nfs nls nonfsv4 nptl nptlonly nsplugin ogg openal opengl openmp oss pam parse-clocks pcmcia pcre pda pdf perl php pmu png posix povray ppds pppd python qemu qt3 qt3support qt4 quicktime radio radius rar raw rdesktop readline reflection reiserfs resolvconf rle rt2500pci rtc samba sasl scanner sdl sdl-image sdl-sound sdlaudio seamonkey sensord server session shorten slang smp snmp soap socks5 sox speex spell spl sqlite srt sse sse2 sse3 ssl ssse3 startup-notification stream subversion svg sysfs syslog tcl tcpd tiff tk transcode truetype twolame ucs2 unicode urandom usb v4l2 vcd vdr vidix visualization vnc vncviewer vorbis web webdav webinterface webkit wifi win32codecs wma wmp x86 xanim xcb xcomposite xine xinetd xml xmlreader xmlrpc xmlwriter xorg xosd xpm xsl xv xvid xvmc yv12 zip zlib zvbi" ALSA_CARDS="hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" CAMERAS="canon sony" ELIBC="glibc" INPUT_DEVICES="mouse keyboard joystick evdev synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="de de_DE en" USERLAND="GNU" VIDEO_CARDS="intel"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 SpanKY gentoo-dev 2008-12-06 01:37:06 UTC
run like `dd if=/dev/mmxblk0 of=foo count=100` and then run `fdisk -l foo` ... if that still works with util-linux-2.13.1 but fails with 2.14.1, compress the file and post it as an attachment
Comment 2 Lars Langhans 2008-12-06 20:15:35 UTC
What I've done:
dd if=/mnt/mmcblk0 of=foo_2.13.1.1.dat count=100
with util-linux-2.13.1.1 then rebuild util-linux-2.14.1, reboot, why: may be /dev will change. Then:
dd if=/mnt/mmcblk0 of=foo_2.14.1.dat count=100
fdisk -l no longer shows the sd-card.
I checked the difference of foo_2.13... and foo_2.14... in emacs with hexl-mode and ediff-buffers. There are no difference.
I can mount the sd-card with util-linux-2.14.1:
mount /dev/mmcblk0p1 /mnt/mmc -t vfat

dmesg shows me the card.

[...]
mmc0: card 0001 removed
mmc0: new SD card at address 314b
mmcblk0: mmc0:314b SD01G 982 MiB
 mmcblk0: p1
mmc0: card 314b removed
mmc0: new SD card at address 314b
mmcblk0: mmc0:314b SD01G 982 MiB
 mmcblk0: p1
[...]

I started /etc/init.d/hald and in /var/log/messages I can see an reaction after insert a sd-card.

[...]
Dec  6 20:58:51 iapetus hald[8256]: 20:58:51.746 [I] hald_dbus.c:1342: volume.block_size -> 512
Dec  6 20:58:51 iapetus hald[8256]: 20:58:51.746 [I] hald_dbus.c:1350: volume.size -> 16027136
Dec  6 20:58:51 iapetus hald[8256]: 20:58:51.746 [I] hald_dbus.c:1334: volume.fsusage -> filesystem
Dec  6 20:58:51 iapetus hald[8256]: 20:58:51.746 [I] hald_dbus.c:1334: volume.fstype -> vfat
Dec  6 20:58:51 iapetus hald[8256]: 20:58:51.746 [I] hald_dbus.c:1334: volume.fsversion -> FAT12
Dec  6 20:58:51 iapetus hald[8256]: 20:58:51.746 [I] hald_dbus.c:1334: volume.uuid -> 032C-12BD
Dec  6 20:58:51 iapetus hald[8256]: 20:58:51.746 [I] hald_dbus.c:1334: volume.label -> CANON_DC
Dec  6 20:58:51 iapetus hald[8256]: 20:58:51.746 [I] hald_dbus.c:1334: info.product -> CANON_DC
Dec  6 20:58:51 iapetus hald[8256]: 20:58:51.746 [I] hald_dbus.c:1334: volume.partition.scheme -> mbr
Dec  6 20:58:51 iapetus hald[8256]: 20:58:51.747 [I] hald_dbus.c:1334: volume.partition.type -> 0x01
Dec  6 20:58:51 iapetus hald[8256]: 20:58:51.747 [I] hald_dbus.c:1334: volume.partition.label -> 
Dec  6 20:58:51 iapetus hald[8256]: 20:58:51.747 [I] hald_dbus.c:1334: volume.partition.uuid -> 
Dec  6 20:58:51 iapetus hald[8256]: 20:58:51.782 [I] blockdev.c:387: entering; exit_type=0, return_code=0
Dec  6 20:58:51 iapetus hald[8256]: 20:58:51.787 [I] blockdev.c:141: Add callouts completed udi=/org/freedesktop/Hal/devices/volume_uuid_032C_12BD
Dec  6 20:58:51 iapetus hald[8256]: 20:58:51.787 [D] device_store.c:516: adding 0x80dd020 to (linux.sysfs_path,/sys/devices/pci0000:00/0000:00:1e.0/0000:05:05.2/mmc_host/mmc0/mmc0:0001/block/mmcblk0/mmcblk0p1)
Dec  6 20:58:51 iapetus hald[8256]: 20:58:51.787 [I] hald.c:108: Added device to GDL; udi=/org/freedesktop/Hal/devices/volume_uuid_032C_12BD
[...]

Also in /proc/partitions or /proc/diskstats I can see the card as well. I know this has nothing to do with the util-linux but with the kernel. 

Therefore it seems only fdisk has problems to see the card. All other seems to works as expected.

Comment 3 SpanKY gentoo-dev 2008-12-07 07:51:38 UTC
but you missed the important part of my comment: run fdisk on the *file*, not the device, and then compress the file and post it as an attachment.
Comment 4 Lars Langhans 2008-12-07 13:10:35 UTC
Created attachment 174552 [details]
compressed part of the first 100 sectors from my sd-card
Comment 5 Lars Langhans 2008-12-07 13:24:40 UTC
util-linux-2.13.1.1 fdisk result
iapetus ~ # fdisk -l foo.dat
You must set cylinders.
You can do this from the extra functions menu.

Disk foo.dat: 0 MB, 0 bytes
2 heads, 32 sectors/track, 0 cylinders
Units = cylinders of 64 * 512 = 32768 bytes
Disk identifier: 0x00000000

  Device Boot      Start         End      Blocks   Id  System
foo.dat1               1         490       15651+   1  FAT12



util-linux-2.14.1 fdisk result
iapetus ~ # fdisk -l foo.dat
You must set cylinders.
You can do this from the extra functions menu.

Disk foo.dat: 0 MB, 0 bytes
2 heads, 32 sectors/track, 0 cylinders
Units = cylinders of 64 * 512 = 32768 bytes
Disk identifier: 0x00000000

  Device Boot      Start         End      Blocks   Id  System
foo.dat1               1         490       15651+   1  FAT12

As you can see, no difference, I attached the first 100 sectors of my SD-Card also.
Comment 6 SpanKY gentoo-dev 2008-12-07 17:56:16 UTC
post the full strace output as an attachment of `fdisk -l` on the real disk

strace -s 4096 -f -o log fdisk -l ......
Comment 7 Lars Langhans 2008-12-08 18:09:46 UTC
Created attachment 174659 [details]
4 straces of fdisk

The tar.gz files contains 4 different straces.
# fdisk of foo.dat
strace -s ... fdisk -l foo.dat with 2.13.1.1
strace -s ... fdisk -l foo.dat with 2.14.1

# fdisk -l
strace -s ... fdisk -l with 2.13.1.1
strace -s ... fdisk -l with 2.14.1

hope that helps.