Modify

Opened 6 years ago

Closed 6 years ago

Last modified 22 months ago

#6753 closed defect (fixed)

Not working kmod-nls-base dependency for kmod-usb-core (results in "usbcore: Unknown symbol utf16s_to_utf8s")

Reported by: Maddes <maddes_trac@…> Owned by: developers
Priority: high Milestone: Barrier Breaker 14.07
Component: kernel Version: Kamikaze trunk
Keywords: Cc:

Description

Trunk rev: [19875] (distcleaned before compilation)
No other feeds installed
Hardware: LinkSys WRT350N v2 (Orion CPU)
Kernel: 2.6.32.9

Installed kmod-usb2 on OpenWrt bleeding edge r19875, which relies on kmod-usb-core.
When inserting the usbcore module an error is reported:

root@router:/# insmod usbcore
usbore: Unknown symbol utf16s_to_utf8s

Reason is that kmod-usb-core also requires kmod-nls-base to be installed.
This dependency is defined in "package/kernel/modules/usb.mk" but is not working for 2.6.32.

I checked that the following config options are set:

CONFIG_LINUX_2_6=y
CONFIG_LINUX_2_6_32=y
CONFIG_USB=m
CONFIG_USB_SUPPORT=y

Can it be that the OR-logic is not working here in usb.mk?

DEPENDS:=@USB_SUPPORT +LINUX_2_6_31||LINUX_2_6_32:kmod-nls-base

Attached is a patch to use 2.6.32.9 for Orion CPU.

Attachments (1)

orion_kernel_2.6.32.patch (4.4 KB) - added by Maddes <maddes_trac@…> 6 years ago.
switch Orion CPU to 2.6.32.9, add to reproduce the exact same build

Download all attachments as: .zip

Change History (10)

Changed 6 years ago by Maddes <maddes_trac@…>

switch Orion CPU to 2.6.32.9, add to reproduce the exact same build

comment:1 Changed 6 years ago by Maddes <maddes_trac@…>

Here's the resulting Packages entry:

Package: kmod-usb-core
Version: 2.6.32.9-1
Depends: kernel (=2.6.32.9-1)
Provides: 
Source: package/kernel
Section: kernel
Priority: optional
Maintainer: OpenWrt Developers Team <openwrt-devel@openwrt.org>
Architecture: orion
Installed-Size: 156764
Filename: kmod-usb-core_2.6.32.9-1_orion.ipk
Size: 59606
MD5Sum: cdcc42e14f81f30db0398ae631752981
Description:  Kernel support for USB

comment:2 Changed 6 years ago by Maddes <maddes_trac@…>

The dependency works if the kernel versions are separated:

DEPENDS:=@USB_SUPPORT +LINUX_2_6_31:kmod-nls-base +LINUX_2_6_32:kmod-nls-base

Please fix in trunk.

comment:3 Changed 6 years ago by Maddes <maddes_trac@…>

As 2.6.33 is now stable, please also add +LINUX_2_6_33:kmod-nls-base

comment:4 Changed 6 years ago by florian

  • Resolution set to fixed
  • Status changed from new to closed

Fixed with r19918, thanks!

comment:5 Changed 6 years ago by Jan Klos <jan.klos@…>

The bug is NOT fixed in r19918! The 'kmod-nls-base' package is still selected only when using 2.6.31 kernel.

Autogenerated tmp/.config-package.in file:

menu "USB Support"
  config PACKAGE_kmod-usb-core
    tristate "kmod-usb-core............................................ Support for USB"
    default y if DEFAULT_kmod-usb-core
    default m if ALL
    depends USB_SUPPORT
    select PACKAGE_kmod-nls-base if LINUX_2_6_31
    help
    Kernel support for USB

The 'DEPENDS' line is still wrong, I guess.

(Oh, and LINUX_2_6_33 should be added as well.)

comment:6 Changed 6 years ago by Maddes <maddes_trac@…>

Jan is totally right.
My patch only fixed the dependency in the "Packages" file and not in the menu.

comment:7 Changed 6 years ago by Maddes <maddes_trac@…>

It seems that the generation program/script can not handle multiple selects correctly:

  DEPENDS:=@USB_SUPPORT @LINUX_2_6_33:kmod-nls-base +LINUX_2_6_32:kmod-nls-base +LINUX_2_6_31:kmod-nls-base

results in

	config PACKAGE_kmod-usb-core
		tristate "kmod-usb-core............................................ Support for USB"
		default y if DEFAULT_kmod-usb-core
		default m if ALL
		select PACKAGE_kmod-nls-base if LINUX_2_6_33
		depends USB_SUPPORT
		help
		 Kernel support for USB

So only the first select is recognized.

Should this problem put inside another ticket?

comment:8 Changed 6 years ago by Maddes <maddes_trac@…>

The menu selection is now fixed with r20085.

But still need to add LINUX_2_6_33 to usb.mk:

Index: package/kernel/modules/usb.mk
===================================================================
--- package/kernel/modules/usb.mk       (revision 20090)
+++ package/kernel/modules/usb.mk       (working copy)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2006-2008 OpenWrt.org
+# Copyright (C) 2006-2010 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -18,7 +18,10 @@
 define KernelPackage/usb-core
   SUBMENU:=$(USB_MENU)
   TITLE:=Support for USB
-  DEPENDS:=@USB_SUPPORT +LINUX_2_6_31:kmod-nls-base +LINUX_2_6_32:kmod-nls-base
+  DEPENDS:=@USB_SUPPORT \
+       +LINUX_2_6_33:kmod-nls-base \
+       +LINUX_2_6_32:kmod-nls-base \
+       +LINUX_2_6_31:kmod-nls-base
   KCONFIG:=CONFIG_USB
   AUTOLOAD:=$(call AutoLoad,20,usbcore,1)
 endef

comment:9 Changed 22 months ago by jow

  • Milestone changed from Attitude Adjustment 12.09 to Barrier Breaker 14.07

Milestone Attitude Adjustment 12.09 deleted

Add Comment

Modify Ticket

Action
as closed .
The resolution will be deleted. Next status will be 'reopened'.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.