You are not logged in.

#1 2014-08-03 08:20:17

stri
Member
Registered: 2014-06-09
Posts: 72

[SOLVED] upgrading to linux-lts-3.14.15-1: WARNING: errors

Hi,

I just did tried to upgrade linux-lts and there are warnings. What could be the reason for that?

Thanks!

(3/5) upgrading linux-lts                                                 [#########################################] 100%
>>> Updating module dependencies. Please wait ...
>>> Generating initial ramdisk, using mkinitcpio.  Please wait...
==> Building image from preset: /etc/mkinitcpio.d/linux-lts.preset: 'default'
  -> -k /boot/vmlinuz-linux-lts -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-lts.img
==> Starting build: 3.14.15-1-lts
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [autodetect]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
  -> Running build hook: [filesystems]
  -> Running build hook: [keyboard]
  -> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip-compressed initcpio image: /boot/initramfs-linux-lts.img
==> WARNING: errors were encountered during the build. The image may not be complete.
==> Building image from preset: /etc/mkinitcpio.d/linux-lts.preset: 'fallback'
  -> -k /boot/vmlinuz-linux-lts -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-lts-fallback.img -S autodetect
==> Starting build: 3.14.15-1-lts
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
==> WARNING: Possibly missing firmware for module: aic94xx
==> WARNING: Possibly missing firmware for module: smsmdtv
  -> Running build hook: [filesystems]
  -> Running build hook: [keyboard]
  -> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip-compressed initcpio image: /boot/initramfs-linux-lts-fallback.img
==> WARNING: errors were encountered during the build. The image may not be complete.

Last edited by stri (2014-08-04 10:51:34)

Offline

#2 2014-08-03 08:28:19

jasonwryan
Anarchist
From: .nz
Registered: 2009-05-09
Posts: 30,424
Website

Re: [SOLVED] upgrading to linux-lts-3.14.15-1: WARNING: errors

Try regenerating your initrd and see if they are repeated.


Arch + dwm   •   Mercurial repos  •   Surfraw

Registered Linux User #482438

Offline

#3 2014-08-03 22:18:30

karol
Archivist
Registered: 2009-05-06
Posts: 25,440

Re: [SOLVED] upgrading to linux-lts-3.14.15-1: WARNING: errors

Offline

#4 2014-08-04 00:42:23

rebootl
Member
Registered: 2012-01-10
Posts: 431
Website

Re: [SOLVED] upgrading to linux-lts-3.14.15-1: WARNING: errors

Weird, I'm getting the same build warnings on linux now, hadn't noticed before.
Though everything still works. I have lzo 2.08-3.

# mkinitcpio -p linux
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'default'
  -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux.img
==> Starting build: 3.15.8-1-ARCH
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [autodetect]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
  -> Running build hook: [resume]
  -> Running build hook: [filesystems]
  -> Running build hook: [keyboard]
  -> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip-compressed initcpio image: /boot/initramfs-linux.img
==> WARNING: errors were encountered during the build. The image may not be complete.
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'fallback'
  -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-fallback.img -S autodetect
==> Starting build: 3.15.8-1-ARCH
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
==> WARNING: Possibly missing firmware for module: aic94xx
==> WARNING: Possibly missing firmware for module: smsmdtv
  -> Running build hook: [resume]
  -> Running build hook: [filesystems]
  -> Running build hook: [keyboard]
  -> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip-compressed initcpio image: /boot/initramfs-linux-fallback.img
==> WARNING: errors were encountered during the build. The image may not be complete.

Downgrading mkinitcpio to 17-1 solves this and the "faulty" commit here is: https://projects.archlinux.org/mkinitcp … cd099bee29

Hehe, I also had a file /etc/modprobe.d/radeof.conf_DONTUSE, moving it out solves the issue... so something is wrong with this globbing but I don't get what the [ $f = $filter ] in above commit

[[ $f = $filter ]] && add_symlink "$f" "$(readlink "$f")"

is really doing... tired...

Edit: @stri Any chance you have files in /etc/modprobe.d ? If yes, what's their names ?

Last edited by rebootl (2014-08-04 01:04:22)


Personal website: reboot.li
GitHub: github.com/rebootl

Offline

#5 2014-08-04 10:50:13

stri
Member
Registered: 2014-06-09
Posts: 72

Re: [SOLVED] upgrading to linux-lts-3.14.15-1: WARNING: errors

Tried regenerating, warnings identical.

Removing a file /etc/modprobe.d/modprobe.conf~ and regenerating again yielded no warnings!

So I think the problem is solved for me. Thanks for your help!

Offline

#6 2014-08-04 11:54:26

Neitsab
Wiki Maintainer
Registered: 2013-12-05
Posts: 25

Re: [SOLVED] upgrading to linux-lts-3.14.15-1: WARNING: errors

Hi, I reported the same issue here in Pacman & Package Upgrade Issues, and removing the hidden backup file I had in /etc/modprobe.d/ also solved the error messages. Thanks!

Offline

#7 2014-08-04 16:44:55

rebootl
Member
Registered: 2012-01-10
Posts: 431
Website

Re: [SOLVED] upgrading to linux-lts-3.14.15-1: WARNING: errors

Aaah, I wasn't able to reproduce this on my desktop, above was on my laptop... but now I found something: The build warning is only triggered when the file not matching "*.conf" is the alphabetically last one! big_smile

And still I think it's because of the above

[[ $f = $filter ]] && add_symlink "$f" "$(readlink "$f")"

I believe the problem is because when testing something like this and the test is false the return code you get is false too, e.g.:

# [[ /etc/modprobe.d/nobeep.conf = *.conf ]] && true
# echo $?
0
# [[ /etc/modprobe.d/nobeep.conf = *.conf ]] && false
# echo $?
1

but:

# [[ /etc/modprobe.d/nobeep.conf_FOO = *.conf ]] && true
# echo $?
1

And if thats the last return code, this is what get's trapped by

# set functrace and trap to catch errors in add_* functions
declare -i _builderrors=0
set -o functrace
trap '(( $? )) && [[ $FUNCNAME = add_* ]] && (( ++_builderrors ))' RETURN

in mkinitcpio.

So, anyways, I think this is no good cause the return codes in the for loop should be collected and not only the last one should be triggered. But because of this "special" trapping I'm not sure how this could be done, I think I'll bugreport this, referencing back to this thread.

If someone has an idea, please tell, also just out of interest.
Though it would be nice if we could fix this, I think adding in a filter to (un)match files that then triggers a build warning doesn't really make sense...

Edit: Ok, I think I've got a fix for this but because trap doesn't seem to get the return code from an explicit return statement, it's a bit crappy:

diff --git a/functions b/functions
index 20bbffe..fc455c9 100644
--- a/functions
+++ b/functions
@@ -421,16 +421,31 @@ add_full_dir() {
     if [[ -n $1 && -d $1 ]]; then
         add_dir "$1"
 
+        local ret=0
         for f in "$1"/*; do
             if [[ -L $f ]]; then
-                [[ $f = $filter ]] && add_symlink "$f" "$(readlink "$f")"
+                if [[ $f = $filter ]]; then
+                    add_symlink "$f" "$(readlink "$f")"
+                    let ret=$ret+$?
+                fi
             elif [[ -d $f ]]; then
                 add_full_dir "$f"
             elif [[ -f $f ]]; then
-                [[ $f = $filter ]] && add_file "$f"
+                if [[ $f = $filter ]]; then
+                    add_file "$f"
+                    let ret=$ret+$?
+                fi
             fi
         done
     fi
+
+    # since the trap doesn't get the return code from an explicit return statement,
+    # +simply setting a return code by this
+    if [ $ret -gt 0 ]; then
+        false
+    else
+        true
+    fi
 }

Edit: Reported: https://bugs.archlinux.org/task/41468

Edit: Apparently it's enough to replace the [[ .. ]] commands by if/then blocks, see the report.

Last edited by rebootl (2014-08-04 21:35:15)


Personal website: reboot.li
GitHub: github.com/rebootl

Offline

Board footer

Powered by FluxBB