FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Debian > Debian Kernel

 
 
LinkBack Thread Tools
 
Old 11-19-2011, 02:54 PM
Dmitri Gribenko
 
Default Bug#649288: initramfs-tools: missing new ELF interpreter /lib/arm-linux-gnueabihf/ld-linux.so.3 in initramfs on armhf

Package: initramfs-tools

Version: 0.99
Severity: important

Dear Maintainer,

Seems like armhf ELF interpreter path was changed from
/lib/ld-linux.so.3 to /lib/arm-linux-gnueabihf/ld-linux.so.3

For example, coreutils was compiled a while ago and it uses old
interpreter path:

$ readelf -l /bin/ls | grep interpreter
[Requesting program interpreter: /lib/ld-linux.so.3]

While udev was recently updated to 175-2 and it uses new interpreter
path:

$ readelf -l /sbin/udevadm | grep interpreter
[Requesting program interpreter: /lib/arm-linux-gnueabihf/ld-linux.so.3]

See also:
http://www.mail-archive.com/cross-distro@lists.linaro.org/msg00103.html

The problem is that copy_exec() in
/usr/share/initramfs-tools/hook-functions copies the interpreter only to
the old path. It basically does the following:

$ cat copy_exec_udevadm.sh
#!/bin/sh -e

src=/sbin/udevadm

for x in $(ldd ${src} 2>/dev/null | sed -e '
///!d;
/linux-gate/d;
/=>/ {s/.*=>[[:blank:]]*([^[:blank:]]*).*/1/};
s/[[:blank:]]*([^[:blank:]]*) (.*)/1/' 2>/dev/null); do

# copy ${x}
echo ${x}

done

$ ./copy_exec_udevadm.sh
/lib/arm-linux-gnueabihf/libselinux.so.1
/lib/arm-linux-gnueabihf/librt.so.1
/lib/arm-linux-gnueabihf/libgcc_s.so.1
/lib/arm-linux-gnueabihf/libc.so.6
/lib/ld-linux.so.3
/lib/arm-linux-gnueabihf/libdl.so.2
/lib/arm-linux-gnueabihf/libpthread.so.0

Here's some additional info:

$ ldd /bin/ls
libselinux.so.1 => /lib/arm-linux-gnueabihf/libselinux.so.1 (0x4009d000)
librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0x400d0000)
libacl.so.1 => /lib/arm-linux-gnueabihf/libacl.so.1 (0x4005a000)
libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0x400b9000)
libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0x400de000)
libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0x4008b000)
/lib/ld-linux.so.3 (0x4002e000)
libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0x401bd000)
libattr.so.1 => /lib/arm-linux-gnueabihf/libattr.so.1 (0x4004d000)
$ ldd /sbin/udevadm
libselinux.so.1 => /lib/arm-linux-gnueabihf/libselinux.so.1 (0x401cd000)
librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0x40075000)
libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0x400e8000)
libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0x401e9000)
/lib/arm-linux-gnueabihf/ld-linux.so.3 => /lib/ld-linux.so.3 (0x40056000)
libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0x400b3000)
libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0x402c8000)

I don't know how to fix this properly (apart from treating ELF
interpreter as a special case).

Currently this bug breaks only udev inside initramfs, but in future will
break all newly compiled binaries that need to be in initramfs.

Tell me if you need any additional information.

Best regards,
Dmitri Gribenko

-- Package-specific info:
-- initramfs sizes
-rw-r--r-- 1 root root 1.7M Aug 13 05:02 /boot/initrd.img-2.6.38-ac1-ac100
-rw-r--r-- 1 root root 1.8M Nov 19 16:54 /boot/initrd.img-2.6.38-ac2-ac100
-- /proc/cmdline
root=/dev/mmcblk1p1 rootflags=noatime mem=448M@0M nvmem=64M@448M vmalloc=320M video=tegrafb console=tty0 usbcore.old_scheme_first=1 tegraboot=sdmmc tegrapart=recovery:700:a00:800,boot:1100:1000:800, mbr:2100:200:800,system:2300:25800:800,cache:27b00 :32000:800,misc:59b00:400:800,userdata:5a000:9a600 :800

-- /proc/filesystems
ext4
fuseblk

-- lsmod
Module Size Used by
aes_generic 26768 3
arc4 1076 2
rt2800usb 11495 0
rt2800lib 39791 1 rt2800usb
crc_ccitt 1133 1 rt2800lib
rt2x00usb 8203 1 rt2800usb
snd_soc_tegra_i2s 3936 1
snd_soc_tegra_paz00 3149 0
rt2x00lib 30452 3 rt2800usb,rt2800lib,rt2x00usb
snd_soc_alc5632 18328 1
snd_soc_tegra_das 2524 1 snd_soc_tegra_i2s
snd_soc_tegra_pcm 3228 1
mac80211 195632 3 rt2800lib,rt2x00usb,rt2x00lib
snd_soc_core 75287 5 snd_soc_tegra_i2s,snd_soc_tegra_paz00,snd_soc_tegr a_das,snd_soc_alc5632,snd_soc_tegra_pcm
psmouse 46862 0
snd_pcm 59970 2 snd_soc_tegra_pcm,snd_soc_core
cfg80211 145261 2 rt2x00lib,mac80211
uvcvideo 54470 0
libps2 3665 1 psmouse
snd_timer 16667 1 snd_pcm
snd_soc_tegra_utils 1649 1 snd_soc_tegra_paz00
videodev 56188 1 uvcvideo
rfkill 15008 1 cfg80211
snd 40444 3 snd_soc_core,snd_pcm,snd_timer
soundcore 5107 1 snd
snd_page_alloc 3528 1 snd_pcm
evdev 7237 0
ipv6 275379 18
cpufreq_conservative 5231 0
cpufreq_userspace 1918 0
cpufreq_ondemand 6011 2
cpufreq_powersave 748 0
fuse 60328 1
ext4 324828 1
mbcache 5056 1 ext4
jbd2 77306 1 ext4
crc16 1121 1 ext4

-- /etc/initramfs-tools/modules

-- /etc/initramfs-tools/initramfs.conf
MODULES=dep
BUSYBOX=y
KEYMAP=n
COMPRESS=gzip
BOOT=local
DEVICE=
NFSROOT=auto

-- /etc/initramfs-tools/update-initramfs.conf
update_initramfs=yes
backup_initramfs=no

-- /sys/block
mmcblk0
mmcblk1

-- mkinitramfs hooks
/etc/initramfs-tools/hooks/:

/usr/share/initramfs-tools/hooks:
busybox
flash_kernel_set_root
fuse
keymap
klibc
ntfs_3g
thermal
udev


-- System Information:
Debian Release: wheezy/sid
Architecture: armhf (armv7l)

Kernel: Linux 2.6.38-ac2-ac100 (SMP w/2 CPU cores)
Locale: LANG=ru_UA.UTF-8, LC_CTYPE=ru_UA.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages initramfs-tools depends on:
ii cpio 2.11-7
ii findutils 4.4.2-1
ii klibc-utils 1.5.25-1
ii module-init-tools 3.16-1
ii udev 175-2

Versions of packages initramfs-tools recommends:
ii busybox 1:1.19.3-1

Versions of packages initramfs-tools suggests:
ii bash-completion 1:1.3-3

-- Configuration Files:
/etc/initramfs-tools/initramfs.conf changed:
MODULES=dep
BUSYBOX=y
KEYMAP=n
COMPRESS=gzip
BOOT=local
DEVICE=
NFSROOT=auto


-- no debconf information



--
To UNSUBSCRIBE, email to debian-kernel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: 20111119155458.4141.42802.reportbug@delta">http://lists.debian.org/20111119155458.4141.42802.reportbug@delta
 
Old 11-19-2011, 03:03 PM
Dmitri Gribenko
 
Default Bug#649288: initramfs-tools: missing new ELF interpreter /lib/arm-linux-gnueabihf/ld-linux.so.3 in initramfs on armhf

Package: initramfs-tools
Followup-For: Bug #649288

Version: 0.99

Dear Maintainer,

Here is a workaround:

# cat > /etc/initramfs-tools/hooks/elf_interp
#!/bin/sh

set -e

PREREQ=""

prereqs () {
echo "${PREREQ}"
}

case "${1}" in
prereqs)
prereqs
exit 0
;;
esac

.. /usr/share/initramfs-tools/hook-functions

copy_exec /lib/arm-linux-gnueabihf/ld-linux.so.3 /lib/arm-linux-gnueabihf

exit 0

^D
# dpkg-reconfigure initramfs-tools

Dmitri Gribenko

-- Package-specific info:
-- initramfs sizes
-rw-r--r-- 1 root root 1.7M Aug 13 05:02 /boot/initrd.img-2.6.38-ac1-ac100
-rw-r--r-- 1 root root 1.9M Nov 19 17:58 /boot/initrd.img-2.6.38-ac2-ac100
-- /proc/cmdline
root=/dev/mmcblk1p1 rootflags=noatime mem=448M@0M nvmem=64M@448M vmalloc=320M video=tegrafb console=tty0 usbcore.old_scheme_first=1 tegraboot=sdmmc tegrapart=recovery:700:a00:800,boot:1100:1000:800, mbr:2100:200:800,system:2300:25800:800,cache:27b00 :32000:800,misc:59b00:400:800,userdata:5a000:9a600 :800

-- /proc/filesystems
ext4
fuseblk

-- lsmod
Module Size Used by
aes_generic 26768 2
ipv6 275379 16
cpufreq_conservative 5231 0
cpufreq_userspace 1918 0
cpufreq_ondemand 6011 2
cpufreq_powersave 748 0
fuse 60328 1
arc4 1076 2
rt2800usb 11495 0
rt2800lib 39791 1 rt2800usb
crc_ccitt 1133 1 rt2800lib
rt2x00usb 8203 1 rt2800usb
rt2x00lib 30452 3 rt2800usb,rt2800lib,rt2x00usb
snd_soc_alc5632 18328 1
snd_soc_tegra_i2s 3936 1
snd_soc_tegra_das 2524 1 snd_soc_tegra_i2s
mac80211 195632 3 rt2800lib,rt2x00usb,rt2x00lib
snd_soc_tegra_paz00 3149 0
snd_soc_tegra_pcm 3228 1
snd_soc_core 75287 5 snd_soc_tegra_i2s,snd_soc_alc5632,snd_soc_tegra_da s,snd_soc_tegra_paz00,snd_soc_tegra_pcm
uvcvideo 54470 0
cfg80211 145261 2 rt2x00lib,mac80211
psmouse 46862 0
snd_pcm 59970 2 snd_soc_tegra_pcm,snd_soc_core
libps2 3665 1 psmouse
snd_soc_tegra_utils 1649 1 snd_soc_tegra_paz00
videodev 56188 1 uvcvideo
snd_timer 16667 1 snd_pcm
rfkill 15008 1 cfg80211
snd 40444 3 snd_soc_core,snd_pcm,snd_timer
soundcore 5107 1 snd
snd_page_alloc 3528 1 snd_pcm
evdev 7237 0
ext4 324828 1
mbcache 5056 1 ext4
jbd2 77306 1 ext4
crc16 1121 1 ext4

-- /etc/initramfs-tools/modules

-- /etc/initramfs-tools/initramfs.conf
MODULES=dep
BUSYBOX=y
KEYMAP=n
COMPRESS=gzip
BOOT=local
DEVICE=
NFSROOT=auto

-- /etc/initramfs-tools/update-initramfs.conf
update_initramfs=yes
backup_initramfs=no

-- /sys/block
mmcblk0
mmcblk1

-- mkinitramfs hooks
/etc/initramfs-tools/hooks/:
elf_interp

/usr/share/initramfs-tools/hooks:
busybox
flash_kernel_set_root
fuse
keymap
klibc
ntfs_3g
thermal
udev


-- System Information:
Debian Release: wheezy/sid
Architecture: armhf (armv7l)

Kernel: Linux 2.6.38-ac2-ac100 (SMP w/2 CPU cores)
Locale: LANG=ru_UA.UTF-8, LC_CTYPE=ru_UA.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages initramfs-tools depends on:
ii cpio 2.11-7
ii findutils 4.4.2-1
ii klibc-utils 1.5.25-1
ii module-init-tools 3.16-1
ii udev 175-2

Versions of packages initramfs-tools recommends:
ii busybox 1:1.19.3-1

Versions of packages initramfs-tools suggests:
ii bash-completion 1:1.3-3

-- Configuration Files:
/etc/initramfs-tools/initramfs.conf changed [not included]

-- no debconf information



--
To UNSUBSCRIBE, email to debian-kernel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: 20111119160355.1205.83260.reportbug@delta">http://lists.debian.org/20111119160355.1205.83260.reportbug@delta
 
Old 12-04-2011, 11:01 AM
Sebastian Reichel
 
Default Bug#649288: initramfs-tools: missing new ELF interpreter /lib/arm-linux-gnueabihf/ld-linux.so.3 in initramfs on armhf

Hi,

Busybox now also uses the new multiarch path for ld-linux.so, thus
/bin/sh in the initramfs is no longer working. As a result /init
fails, so the generated initramfs is completly broken on armhf.

Dmitri Gribenko: thanks for the hook

-- Sebastian
 

Thread Tools




All times are GMT. The time now is 07:41 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org