LinuxQuestions.org
Share your knowledge at the LQ Wiki.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 08-15-2014, 11:28 AM   #1
Xsane
Member
 
Registered: Jan 2014
Posts: 186

Rep: Reputation: 134Reputation: 134
Slackware's 14.1 kernel config broken


Actually, it is not so much Slackware's .config being broken as it is the 3.10.17 kernel configuration commands being broken.

With a stock 14.1 generic kernel running, and config-generic-3.10.17.x64 as .config, calling 'make oldconfig' simply makes .config and .config.old a copy.

However, if you run 'make localyesconfig', (with the same setup) it displays the following new kernel configuration options:

Code:
User namespace (USER_NS) [N/y/?] (NEW)
Require conversions between uid/gids and their internal representation (UIDGID_STRICT_TYPE_CHECKS) [N/y/?] (NEW)
Semtech SX150x I2C GPIO expander (GPIO_SX150X) [N/y/?] (NEW)
BT8XX GPIO abuser (GPIO_BT8XX) [N/m/y/?] (NEW)
AMS AS3711 (MFD_AS3711) [N/y/?] (NEW)
Analog Devices ADP5520/01 MFD PMIC Core Support (PMIC_ADP5520) [N/y/?] (NEW)
AnalogicTech AAT2870 (MFD_AAT2870_CORE) [N/y/?] (NEW)
Dialog Semiconductor DA9030/DA9034 PMIC Support (PMIC_DA903X) [N/y/?] (NEW)
Dialog Semiconductor DA9052/53 PMIC variants with I2C (MFD_DA9052_I2C) [N/y/?] (NEW)
Dialog Semiconductor DA9055 PMIC Support (MFD_DA9055) [N/y/?] (NEW)
HTC I2C PLD chip support (HTC_I2CPLD) [N/y/?] (NEW)
Marvell 88PM800 (MFD_88PM800) [N/m/y/?] (NEW)
Marvell 88PM805 (MFD_88PM805) [N/m/y/?] (NEW) 
Marvell 88PM8606/88PM8607 (MFD_88PM860X) [N/y/?] (NEW) 
Maxim Semiconductor MAX77686 PMIC Support (MFD_MAX77686) [N/y/?] (NEW) 
Maxim Semiconductor MAX77693 PMIC Support (MFD_MAX77693) [N/y/?] (NEW) 
Maxim Semiconductor MAX8907 PMIC Support (MFD_MAX8907) [N/m/y/?] (NEW) 
Maxim Semiconductor MAX8925 PMIC Support (MFD_MAX8925) [N/y/?] (NEW) 
Maxim Semiconductor MAX8997/8966 PMIC Support (MFD_MAX8997) [N/y/?] (NEW) 
Maxim Semiconductor MAX8998/National LP3974 PMIC Support (MFD_MAX8998) [N/y/?] (NEW) 
Ricoh RC5T583 Power Management system device (MFD_RC5T583) [N/y/?] (NEW)
SAMSUNG Electronics PMIC Series Support (MFD_SEC_CORE) [N/y/?] (NEW)
SMSC ECE1099 series chips (MFD_SMSC) [N/y/?] (NEW)
STMicroelectronics STMPE (MFD_STMPE) [N/y/?] (NEW)
TI LP8788 Power Management Unit Driver (MFD_LP8788) [N/y/?] (NEW)
TI Palmas series chips (MFD_PALMAS) [N/y/?] (NEW)
TI TPS65090 Power Management chips (MFD_TPS65090) [N/y/?] (NEW)
TI TPS6586x Power Management chips (MFD_TPS6586X) [N/y/?] (NEW) 
TI TPS65910 Power Management chip (MFD_TPS65910) [N/y/?] (NEW) 
TI TPS65912 Power Management chip with I2C (MFD_TPS65912_I2C) [N/y/?] (NEW)
TI TPS80031/TPS80032 Power Management chips (MFD_TPS80031) [N/y/?] (NEW) 
TI TWL4030/TWL5030/TWL6030/TPS659x0 Support (TWL4030_CORE) [N/y/?] (NEW) 
TI TWL6040 audio codec (TWL6040_CORE) [N/y/?] (NEW) 
Toshiba TC35892 and variants (MFD_TC3589X) [N/y/?] (NEW) 
Wolfson Microelectronics WM8400 (MFD_WM8400) [N/y/?] (NEW) 
Wolfson Microelectronics WM831x/2x PMICs with I2C (MFD_WM831X_I2C) [N/y/?] (NEW)
Wolfson Microelectronics WM8350 with I2C (MFD_WM8350_I2C) [N/y/?] (NEW)
Wolfson Microelectronics WM8994 (MFD_WM8994) [N/y/?] (NEW)
TI/National Semiconductor LP8720/LP8725 voltage regulators (REGULATOR_LP872X) [N/y/?] (NEW)
Battery level reporting for HID devices (HID_BATTERY_STRENGTH) [N/y/?] (NEW)
Use ext4 for ext2/ext3 file systems (EXT4_USE_FOR_EXT23) [Y/n/?] (NEW)
EVM support (EVM) [N/y/?] (NEW)
All of this new hardware support and new kernel functionality is missing from 14.1, I'm assuming because Pat ran oldconfig and it did not catch any of it.

make oldconfig uses:
/usr/src/linux-3.10.17/scripts/kconfig/conf.c

make localyesconfig uses:
/usr/src/linux-3.10.17/scripts/kconfig/streamline_config.pl

Looking at the latest kernel source, there has been significant work on linux/scripts/kconfig/* in the area of (NEW) configuration options detection.

I do not know if this problem has been fixed, or whether it is effecting the kernel used in 'current'.

I do not have time to pursue this further at the moment. I just wanted to make Pat, The Team, and fellow Slacker's aware of the issue.

Last edited by Xsane; 08-16-2014 at 10:27 AM. Reason: Changed 'symbols' to 'configuration options' for Slugman.
 
Old 08-15-2014, 11:56 AM   #2
slugman
Member
 
Registered: Jun 2010
Location: AZ
Distribution: Slackware
Posts: 106

Rep: Reputation: 1
I thought the following was true (as mentioned in this tutorial):

localmodconfig - Update current config disabling modules not loaded
localyesconfig - Update current config converting local mods to core

I am no kernel developer (although I am an aspiring one), however I was under the impression symbol detection was an arena mainly geared towards rootkit detection, and to help deter such exploits that modify the kernel symbol table.

Are you sure these new options aren't simply the modules required for your hardware, which have now been conveniently added to your config? Generic is a slimmed compared to huge. If you can look at the list and asert that yes, these are absolutely not in my system, then maybe I can see your case. You can verify this by simply running:

lspci -vvv

and inspecting the output (via pipe to less, grep, awk, spell of your choice).

Quote:
In order to replace kernel syscalls with their own code, LKM rootkits modify the table which holds the addresses of these syscalls, to point to the module's replacement function instead of the original kernel function. Now, whenever a kernel is compiled, a map of kernel symbols and their respective addresses in the kernel is generated. This map is called System.map (sometimes with the kernel version appended), and usually install in the same location as the kernel (e.g. /boot). Thus, a straightforward way to detect hijacked kernel syscalls is to compare this map against the actual addresses of all syscalls, which will show all syscalls whose address is different from the original address listed in the map.
- http://www.la-samhna.de/library/rootkits/detect.html

Last edited by slugman; 08-15-2014 at 12:01 PM.
 
Old 08-15-2014, 02:11 PM   #3
Didier Spaier
LQ Addict
 
Registered: Nov 2008
Location: Paris, France
Distribution: Slint64-15.0
Posts: 11,057

Rep: Reputation: Disabled
What is broken? Should Slackware ship built-in drivers for every hardware on earth? To get that, just run "make allyesconfig"

But maybe I'm missing something?
 
Old 08-16-2014, 10:39 AM   #4
Xsane
Member
 
Registered: Jan 2014
Posts: 186

Original Poster
Rep: Reputation: 134Reputation: 134
Quote:
Originally Posted by slugman View Post
I thought the following was true (as mentioned in this tutorial):

localmodconfig - Update current config disabling modules not loaded
localyesconfig - Update current config converting local mods to core
That is true. I don't understand the relevance to this conversation.

Quote:
Originally Posted by slugman View Post
I was under the impression symbol detection was an arena mainly geared towards rootkit detection ...
The word symbol has different meanings depending on context. You are confusing function symbols with configuration symbols. I suppose it may be more technically correct to call them make symbols, but the configuration tools simply call them symbols. I edited the first post, hopefully it will be less confusing now.

Quote:
Originally Posted by slugman View Post
If you can look at the list and asert that yes, these are absolutely not in my system, then maybe I can see your case.
Did you look at the list? If you can find a commodity machine that uses all of those IC's I'll eat my hat. This is not relevant to the issue at any rate.
 
Old 08-16-2014, 11:03 AM   #5
Xsane
Member
 
Registered: Jan 2014
Posts: 186

Original Poster
Rep: Reputation: 134Reputation: 134
Quote:
Originally Posted by Didier Spaier View Post
What is broken?
I thought that would be self-evident, but I was wrong.

So, when you fetch new kernel source code, as is implied, it will contain new stuff. Sometimes that new stuff includes new configuration options. When a builder runs a configuration tool it is supposed to show them these new options so they can make a decision about how to use them,. All of 3.10.17's configuration tools that use conf.c are not doing this. localyesconfig is a perl script and still works properly. I used its output merely as an example of what should be seen when oldconfig is executed.

Quote:
Originally Posted by Didier Spaier View Post
Should Slackware ship built-in drivers for every hardware on earth?
The new drivers should at least be available as modules.

But other new functionality is also missing that someone may find useful and should at least show up in .conf, even if it is unset:

Code:
User namespace (USER_NS) [N/y/?] (NEW)
Require conversions between uid/gids and their internal representation (UIDGID_STRICT_TYPE_CHECKS) [N/y/?] (NEW)
Battery level reporting for HID devices (HID_BATTERY_STRENGTH) [N/y/?] (NEW)
Use ext4 for ext2/ext3 file systems (EXT4_USE_FOR_EXT23) [Y/n/?] (NEW)
EVM support (EVM) [N/y/?] (NEW)
Quote:
Originally Posted by Didier Spaier View Post
To get that, just run "make allyesconfig"
Actually, that uses conf.c and will likely fail to include the new configurations as well.
 
Old 08-16-2014, 11:49 AM   #6
allend
LQ 5k Club
 
Registered: Oct 2003
Location: Melbourne
Distribution: Slackware64-15.0
Posts: 6,371

Rep: Reputation: 2750Reputation: 2750Reputation: 2750Reputation: 2750Reputation: 2750Reputation: 2750Reputation: 2750Reputation: 2750Reputation: 2750Reputation: 2750Reputation: 2750
Comments:
1. The 3.10.17 kernel was shipped in Slackware 14.1 released 4 November 2013. This is done and dusted.
2. Many of the new kernel configurations in post #1 seem to require that CONFIG_I2C is set to yes rather than the Slackware default of module. These are kernel module programming issues.
3. In the case of HID_BATTERY_STRENGTH in post #5, a suitable kernel patch has only recently been proposed. http://www.spinics.net/lists/linux-input/msg31982.html
 
Old 08-16-2014, 12:09 PM   #7
slugman
Member
 
Registered: Jun 2010
Location: AZ
Distribution: Slackware
Posts: 106

Rep: Reputation: 1
Quote:
So, when you fetch new kernel source code, as is implied, it will contain new stuff. Sometimes that new stuff includes new configuration options. When a builder runs a configuration tool it is supposed to show them these new options so they can make a decision about how to use them,. All of 3.10.17's configuration tools that use conf.c are not doing this. localyesconfig is a perl script and still works properly. I used its output merely as an example of what should be seen when oldconfig is executed.
Ohh.. ok I get it now. Thank you for the clarification.
 
Old 08-17-2014, 02:14 AM   #8
ponce
LQ Guru
 
Registered: Aug 2004
Location: Pisa, Italy
Distribution: Slackware
Posts: 7,097

Rep: Reputation: 4174Reputation: 4174Reputation: 4174Reputation: 4174Reputation: 4174Reputation: 4174Reputation: 4174Reputation: 4174Reputation: 4174Reputation: 4174Reputation: 4174
Quote:
Originally Posted by Xsane View Post
Code:
User namespace (USER_NS) [N/y/?] (NEW)
Require conversions between uid/gids and their internal representation (UIDGID_STRICT_TYPE_CHECKS) [N/y/?] (NEW)
IMHO, these two are better off on 3.10.17.
 
Old 08-17-2014, 05:14 AM   #9
GazL
LQ Veteran
 
Registered: May 2008
Posts: 6,897

Rep: Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019Reputation: 5019
Well, from a quick test using make menuconfig against 3.10.53 sources(only ones I have to hand), it looks like you can't have USER_NS and CONFIG_XFS_FS at the same time. My guess would be that oldconfig is not showing the choice to enable USER_NS for the same reason (i.e. XFS is already enabled in the old config).

Whether this is a real incompatibility or an error in the config inter-dependencies I guess you'll have to take up with the kernel devs. It's way over my head.


P.S. though localyesconfig will present the USER_NS option, selecting it will result in a config file without XFS support, just as with menuconfig.

Last edited by GazL; 08-17-2014 at 05:22 AM.
 
Old 08-17-2014, 05:31 AM   #10
notKlaatu
Senior Member
 
Registered: Sep 2010
Location: Lawrence, New Zealand
Distribution: Slackware
Posts: 1,077

Rep: Reputation: 732Reputation: 732Reputation: 732Reputation: 732Reputation: 732Reputation: 732Reputation: 732
Just downloaded latest stable from kernel.org (3.16.1)

Untar'd the source to /usr/src

Copied currently existing .config to new sources

Did a 'make oldconfig'

Got the usual options to configure new features.

Is this different from what you are doing? Or am I misunderstanding the issue?

Last edited by notKlaatu; 08-17-2014 at 06:00 AM. Reason: clearer about the steps i took
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
which file is the default kernel config for the slackware install cd Old_Fogie Slackware 3 12-19-2009 04:49 PM
Slackware Broken after kernel miscompiles raven.sorrow Linux - General 3 01-09-2005 07:53 PM
Slackware 9.1 / Sony DSC-P8 / Kernel Config Astro Linux - General 1 02-23-2004 06:40 PM
Sony DSC-P8 /Slackware Kernel Config Astro Slackware 0 02-20-2004 07:23 PM
Slackware kernel config MarleyGPN Slackware 15 06-16-2003 08:11 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 04:36 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration