SlackwareThis Forum is for the discussion of Slackware Linux.
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
Here are some answers. And yes, your questions are important.
Forgive me for one thing ... Slackware by default uses LiLO as the boot loader. LILO is the most used Linux Loader for the x86 flavor of Linux. Therefore, my guide assumes LiLO as the bootloader, and my answers will, also. Since you choose to use GrUB, you will need to translate this information to GrUB. I never could get the hang of GrUB when I first started using Linux.
Q1: The System.map file is generated to document addresses of all kernel symbols. The default location for it is /boot, though if you don't copy it there, the kernel will find it anyway.
Q2: The .config file for the new kernel is still in the directory where you built it.
If you desire to copy it to /boot, that is fine. It's not necessary to have it there, just personal preference. Since I know where I build all my kernels (~/kernel/linux-version/), it has been my preference not to copy it to /boot. If you'd like it there, you may copy it there. On my workstation, I backup all my important files to ~/config-files/ and every night all our PC's home directories are backed up to our server via cron job. After building my kernel, I copy the .config file to that directory. At the moment I have two files in there:
mingdao@silas:~$ ls -1 config-files/188.8.131.52-config-*
If you want to put your new config file in /boot, from the kernel build directory issue:
tell LiLO where your kernel image, initrd image, and root filesystem are located.
Q4: This depends upon whether or not you need an initrd (initial ramdisk image).
In Slackware /boot/README.initrd will tell you about this. Basically, if you have support for your / (root) filesystem built into the kernel (not as a module), and support for the drive containing your kernel, you will not need an initrd. There are exceptions, such as my LUKS encrypted root partition.
On my workstation:
I am running JFS for my / (root) filesystem and the motherboard has a VIA VT6420 SATA RAID Controller where the SATA drive containing Slackware is attached. Therefore it needs JFS for the filesystem and SATA_VIA for my hard drive.
I have a choice to either (a) build JFS and SATA_VIA as modules and make an initrd image, or (b) build them into the kernel. Either one is acceptable, so long as the kernel in /boot as the support for them or you have an initrd to load them.
When you edit /etc/lilo.conf (the LiLO configuration file), the boot= directive in /etc/lilo.conf tells LiLO where it should place its primary boot loader. Either the MBR (master boot record) of a hard drive accessible by the BIOS, or the root partition of your Linux OS is acceptable (but not only).
When you boot your Slackware system, LiLO loads the kernel, then the kernel mounts the / (root) filesystem and runs /sbin/init. Therefore, you must have the drivers for your / (root) filesystem either in the kernel or in an initrd image.
Probably the black screen is due to not having console display driver support in the kernel. Do you have FRAMEBUFFER_CONSOLE=y in your new kernel? These are my choices:
# Console display driver support
# CONFIG_VGACON_SOFT_SCROLLBACK is not set
# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
# CONFIG_FONT_8x8 is not set
# CONFIG_FONT_6x11 is not set
# CONFIG_FONT_7x14 is not set
# CONFIG_FONT_PEARL_8x8 is not set
# CONFIG_FONT_ACORN_8x8 is not set
# CONFIG_FONT_MINI_4x6 is not set
# CONFIG_FONT_SUN8x16 is not set
# CONFIG_FONT_SUN12x22 is not set
# CONFIG_FONT_10x18 is not set
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
Your questions are important, and we're glad to answer them. If something is still not clear, post back.
After some tinkering with "Console display driver support" options i got my screen after boot.
But, i got kernel panic with "No kernel modules found" .
After some research i tried to run mkinitrd again with new kernel options.
Now i get :
Mount : mounting /dev/sda5 on /mnt failed.
Error: no /sbin/init found on rootdev (or not mounted)
To tell you the truth, i have no idea how to continue from here.
Maybe you have a clue?
If Bruce Hill's advice doesn't work, an obvious possibility is that your initrd was not created (or created incorrectly, or specified incorrectly in /etc/lilo.conf [well, actually, since you use GRUB, it would be incorrectly specified in /boot/grub/menu.lst]). I would recommend building the filesystem used for your root partition into the kernel instead of as a module, if you haven't already -- that way you don't need an initrd, even if other partitions use different filesystems that are compiled as modules (they'll load automatically after / is mounted).
First of all, big thanks for help and for "no give up"!
I will try to provide maximum info i can.
1. Option "hda=noprobe" changed nothing. I got the same
Some info: i use grub from arch linux. In the menu i have
options loading arch or slackware. In case something going wrong i boot to arch and try to fix what needed...
menu.lst # (0) Arch Linux
title Arch Linux
kernel /boot/vmlinuz26 root=/dev/sda3 ro
# (1) Arch Linux
title Arch Linux Fallback
kernel /boot/vmlinuz26 root=/dev/sda3 ro
About T3slider post:
When i recompiled the kernel i run initrd with new
kernel parameters: mkinitrd -c -k 184.108.40.206 -f ext3 -r /dev/sda5
+ add to grub line initrd /boot/initrd.gz
At least, with generic 12.0 kernel it worked.
so i guess i am Ok here.
About "recommend building the filesystem used for your root partition into the kernel instead of as a module".
I don't get 100% what it means. Can you explain how
i do it?
In config menu i have option
file systems -> Ext3 journalling file system support. Now it is on "M"
This option you recommend to change to "Y" ?
3. About partitions.
I have Sata disk 160GB
sda1 - swap
sda2 - partition to try new distros
sda3 - arch
sda4 - extended
sda5 - slackware
sda6 - free.
After some tinkering again and again (close to pull hair out ) i able to boot !!!!!
Not sure how i did it, but i changed some options.
Good news - it works!!! bad news i am not sure why...
If i need to compile again i still don't know how.
Problems now : usb mouse + sound complitely out of work.
Thanks a lot !!!! for help.
At the and it works! You know the feeling
Mouse is working now.
Sound: i have this option enabled with M
still, when i boot i get :
Sound server informational message:
Error while initializing the sound driver:
device: default can't be opened for playback (Function not implemented)
The sound server will continue, using the null output device.
2. How can i save this config i just made? can i use it in the future with
3. Is there any way to check if i enabled things i don't need and can remove in config?
A1: In a previous post your lsmod output shows snd_hda_intel. First issue "lsmod" and see if the same modules are loaded. If not, you could run "alsaconf" as root. If this loads it, then run "alsamixer" as root and unmute (with the M key) at least Master and PCM, then turn up the sliders with the up arrow key. Close the mixer with the Esc key, the run "alsactl store" to save your settings across reboot.
If this doesn't help, boot into your kernel with working sound and issue "lspci -v" which will show you which kernel modules are being used for your devices. Then you will know what you need to compile in your kernel.
A2: I posted before how I save my kernel .config files. Just save it somewhere outside of the directory where you build kernels, and give it an unique name that you will remember. Typically before I upgrade my kernel to new sources from kernel.org, I will read the Changelog there and see what has changed. Then I copy my old kernel .config to the new kernel source directory and run "make silentoldconfig", which will only ask questions about new options that were not in your old .config. Then if I want to make other changes with that new source, I'll run "make xconfig" again and modify it.
A3: To find out about your hardware, once you get it all working you can issue "lspci -v" which will also show you the modules your hardware is using. Output will look like this:
00:0c.0 Multimedia audio controller: Creative Labs SB Audigy (rev 03)
Subsystem: Creative Labs Unknown device 0052
Flags: bus master, medium devsel, latency 64, IRQ 18
I/O ports at b000 [size=32]
Capabilities: [dc] Power Management version 2
Kernel driver in use: EMU10K1_Audigy
Kernel modules: snd-emu10k1
The kernel has options for things other than hardware support, also. For instance, there is:
Loopback device support (BLK_DEV_LOOP)
Saying Y here will allow you to use a regular file as a block
device; you can then create a file system on that block device and
mount it just as you would mount other block devices such as hard
drive partitions, CD-ROM drives or floppy drives. The loop devices
are block special device files with major number 7 and typically
called /dev/loop0, /dev/loop1 etc.
This is useful if you want to check an ISO 9660 file system before
burning the CD, or if you want to use floppy images without first
writing them to floppy. Furthermore, some Linux distributions avoid
the need for a dedicated Linux partition by keeping their complete
root file system inside a DOS FAT file using this loop device
To use the loop device, you need the losetup utility, found in the
util-linux package, see
The loop device driver can also be used to "hide" a file system in
a disk partition, floppy, or regular file, either using encryption
(scrambling the data) or steganography (hiding the data in the low
bits of, say, a sound file). This is also safe if the file resides
on a remote file server.
There are several ways of encrypting disks. Some of these require
kernel patches. The vanilla kernel offers the cryptoloop option
and a Device Mapper target (which is superior, as it supports all
file systems). If you want to use the cryptoloop, say Y to both
LOOP and CRYPTOLOOP, and make sure you have a recent (version 2.12
or later) version of util-linux. Additionally, be aware that
the cryptoloop is not safe for storing journaled filesystems.
Note that this loop device has nothing to do with the loopback
device used for network connections from the machine to itself.
To compile this driver as a module, choose M here: the
module will be called loop.
Most users will answer N here.
I compile it as a module, so if I want to look at the contents of an iso image, for instance, I do this:
Another question here.
After kernel recompilation i have problem with ndiswrapper module.
I get "module ndiswrapper not found". If i run "ndiswrapper -l" - it's works.
But i can't modprobe it. I think i have to rebuild this module?
Anyone will give me a clue - how? And why it's happening?
Maybe i need to find ndiswrapper for my new kernel - 220.127.116.11
and reinstall it?