Slackware This Forum is for the discussion of Slackware Linux.
|
Notices |
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.
Are you new to LinuxQuestions.org? Visit the following links:
Site Howto |
Site FAQ |
Sitemap |
Register Now
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
|
|
10-05-2013, 05:28 PM
|
#1
|
LQ Addict
Registered: Nov 2008
Location: Paris, France
Distribution: Slint64-15.0
Posts: 11,154
Rep:
|
trouble booting -current from an USB hard disk (kernel 3.10.14)
I installed Slackware-current dated Thu Oct 3 02:07:13 UTC 2013 on an external USB hard disk.
But it fails to boot. / being an ext4 partition I made an initrd with modules ext4 and usb-storage included, and edited /boot/initrd-tree/wait-for-boot to include 30 instead if 1. When booting it waits 30 seconds but still can't mount / (designated by LABEL=slack in lilo.conf and fstab). After the message from init: "ERROR: No /sbin/init found on rootdev (or not mounted). [...]", cat /proc/partitions doesn't show USB hard disk's partitions, only those on /dev/sda (laptop's internal hard disk).
I built another kernel with ext4 and usb-storage built-in to avoid using an initrd, with "rootedelay=20" in lilo.conf. The kernel says it will wait 20 seconds but after this delay I get a kernel panic. During that time I can unplug and plug in again the USB HDD and I'm sure that it had enough time to settle though.
Any clue appreciated.
Last edited by Didier Spaier; 10-05-2013 at 05:31 PM.
|
|
|
10-06-2013, 01:16 AM
|
#2
|
Member
Registered: Jan 2011
Posts: 308
|
Quote:
Originally Posted by Didier Spaier
I installed Slackware-current dated Thu Oct 3 02:07:13 UTC 2013 on an external USB hard disk.
But it fails to boot. / being an ext4 partition I made an initrd with modules ext4 and usb-storage included, (...)
I built another kernel with ext4 and usb-storage built-in to avoid using an initrd (...)
|
Maybe this is a stupid suggestion, but did you include the ehci_hcd (or uhci_hcd or ohci_hcd or xhci_hcd, according to your PC USB ports) usb drivers either in your initrd or built-in in your kernel?
Last edited by philanc; 10-06-2013 at 01:28 AM.
|
|
1 members found this post helpful.
|
10-06-2013, 04:04 AM
|
#3
|
LQ Addict
Registered: Nov 2008
Location: Paris, France
Distribution: Slint64-15.0
Posts: 11,154
Original Poster
Rep:
|
Quote:
Originally Posted by philanc
Maybe this is a stupid suggestion, but did you include the ehci_hcd (or uhci_hcd or ohci_hcd or xhci_hcd, according to your PC USB ports) usb drivers either in your initrd or built-in in your kernel?
|
Thanks for the suggestion, Philanc. I added ehci_hcd module to the initrd (seems to be the good one), but to no avail, so I'm still in the dark.
|
|
1 members found this post helpful.
|
10-06-2013, 06:06 AM
|
#4
|
Senior Member
Registered: May 2008
Location: Romania
Distribution: DARKSTAR Linux 2008.1
Posts: 2,727
|
I have an 500GB USB Harddisk, which I use as Universal Boot From Every Lame Computer Linux, who in reality, is an standard Slackware (today) current, who use a standard generic smp kernel and an initrd generated with:
Code:
KVERSION=3.10.14-smp
KMODULES="usb-storage:xhci-hcd:ehci-hcd:ehci-pci:ohci-hcd:usbhid:mbcache:jbd2:ext4"
ROOTDEV="UUID=2d059afe-0181-46c3-9470-52aef7e3d3f5"
ROOTFS="ext4"
mkinitrd -c -k ${KVERSION} -r $ROOTDEV -f $ROOTFS -m $KMODULES -u -M -w 5 -o /boot/initrd-${KVERSION}.gz
Like you see, I use the UUID variant.
BUT, the interesting thing is there: the real USB driver now, on the current kernels, is not ehci-hcd but the ehci-pci.
PS. No, I do not have to use the i486 kernel in no computer. And yes, I consider the i486 kernel as historical remnant, like any human have an tail remnant.
Last edited by Darth Vader; 10-06-2013 at 06:11 AM.
|
|
2 members found this post helpful.
|
10-06-2013, 08:28 AM
|
#5
|
Member
Registered: Jan 2008
Posts: 426
|
Didier Spaier,
try to add ums_realtek and usb_storage to KMODULES.
Last edited by bormant; 10-06-2013 at 08:42 AM.
|
|
2 members found this post helpful.
|
10-06-2013, 12:54 PM
|
#6
|
Member
Registered: Jan 2011
Posts: 308
|
Quote:
Originally Posted by Darth Vader
BUT, the interesting thing is there: the real USB driver now, on the current kernels, is not ehci-hcd but the ehci-pci
|
Yes, it looks like ehci_hcd, which used to have no dependencies (at least until 3.2.x) now depends not only on ehci_pci but also on ehci_platform (you may check with modules.dep in your kernel modules directory).
Yes, full steam ahead towards more complexity...
|
|
2 members found this post helpful.
|
10-06-2013, 02:52 PM
|
#7
|
LQ Addict
Registered: Nov 2008
Location: Paris, France
Distribution: Slint64-15.0
Posts: 11,154
Original Poster
Rep:
|
Success
Long story short:
Code:
su
mount -L slack /mnt #slack is the label of /dev/sdb2
mount --bind /proc /mnt/proc
chroot /mnt
cd /boot # probably not necessary
mkinitrd -c -k 3.10.14 -m usb-storage:ehci-pci:ehci-platform:ext4 -u -w 30 -f ext4 -r LABEL=slack
lilo -t -v
lilo
Some tweaking is still needed, but it works (I'm posting from it :-)
Thanks to philanc, bormant and Darth Vader.
Hope this helps some in a similar situation.
Last edited by Didier Spaier; 10-06-2013 at 02:57 PM.
|
|
2 members found this post helpful.
|
12-12-2013, 02:44 PM
|
#8
|
Member
Registered: Nov 2003
Location: Bristol, Britain
Distribution: Slackware
Posts: 906
Rep:
|
Didier
Certainly helped me in Slackware 14.1!
On Slackware 13.1, 13.37 and probably a few before that I just added rootdelay=10 to the kernel. This allowed me to boot a external USB hard drive.
I missed out on 14.0 and jumped straight into 14.1 and the rootdelay trick failed to work even though it was still working for 13.37. I then realized that perhaps now I needed an initrd. I played around with building an initrd with modules ehci-hcd, ohci-hcd, uhci-hcd and usb-storage and got all sorts of bizarre problems whilst booting.
Then I fell upon this thread with your solution, worked a treat for me.
So thanks again and to philanc, bormant and Darth Vader.
Alex
|
|
1 members found this post helpful.
|
04-05-2014, 09:21 AM
|
#9
|
Member
Registered: May 2009
Location: Montreal, Quebec, Canada
Distribution: Slackware 14.1 64 bits
Posts: 238
Rep:
|
any info about a filename I can edit manually?
Quote:
Originally Posted by Darth Vader
I have an 500GB USB Harddisk, which I use as Universal Boot From Every Lame Computer Linux, who in reality, is an standard Slackware (today) current, who use a standard generic smp kernel and an initrd generated with:
Code:
KVERSION=3.10.14-smp
KMODULES="usb-storage:xhci-hcd:ehci-hcd:ehci-pci:ohci-hcd:usbhid:mbcache:jbd2:ext4"
ROOTDEV="UUID=2d059afe-0181-46c3-9470-52aef7e3d3f5"
ROOTFS="ext4"
mkinitrd -c -k ${KVERSION} -r $ROOTDEV -f $ROOTFS -m $KMODULES -u -M -w 5 -o /boot/initrd-${KVERSION}.gz
Like you see, I use the UUID variant.
BUT, the interesting thing is there: the real USB driver now, on the current kernels, is not ehci-hcd but the ehci-pci.
PS. No, I do not have to use the i486 kernel in no computer. And yes, I consider the i486 kernel as historical remnant, like any human have an tail remnant.
|
Just a little question. Is there a way I can add ehci-pci or at least see what I actually have without ehci-pci and then add it? In other words, is the following line in a particular file that someone can point me to? :
KMODULES="usb-storage:xhci-hcd:ehci-hcd: ehci-pcihci-hcd:usbhid:mbcache:jbd2:ext4"
??
Thanks for the help everyone, it helps me as well, gave you points for the info as a vote...
Cheers,
Dumdadum
|
|
|
04-05-2014, 12:01 PM
|
#10
|
LQ Addict
Registered: Nov 2008
Location: Paris, France
Distribution: Slint64-15.0
Posts: 11,154
Original Poster
Rep:
|
If you ran mkinitrd then the modules you included are by default in /boot/initrd-tree/lib/modules.
The line
Code:
KMODULES="usb-storage:xhci-hcd:ehci-hcd:ehci-pci:ohci-hcd:usbhid:mbcache:jbd2:ext4"
is not included in a file, it was just typed in a shell as the others you quoted. To know more type Oh, and I don't need points, thanks.
Last edited by Didier Spaier; 04-05-2014 at 12:05 PM.
|
|
1 members found this post helpful.
|
04-05-2014, 06:21 PM
|
#11
|
Member
Registered: May 2009
Location: Montreal, Quebec, Canada
Distribution: Slackware 14.1 64 bits
Posts: 238
Rep:
|
Quote:
Originally Posted by Didier Spaier
If you ran mkinitrd then the modules you included are by default in /boot/initrd-tree/lib/modules.
The line
Code:
KMODULES="usb-storage:xhci-hcd:ehci-hcd:ehci-pci:ohci-hcd:usbhid:mbcache:jbd2:ext4"
is not included in a file, it was just typed in a shell as the others you quoted. To know more type Oh, and I don't need points, thanks.
|
Thanks Mr. Didier, I appreciate your reply. (=
Cheers,
Dumdadum
|
|
|
10-22-2014, 04:55 AM
|
#12
|
Member
Registered: Mar 2009
Distribution: Slackware
Posts: 121
Rep:
|
Quote:
Originally Posted by Didier Spaier
Long story short:
Code:
su
mount -L slack /mnt #slack is the label of /dev/sdb2
mount --bind /proc /mnt/proc
chroot /mnt
cd /boot # probably not necessary
mkinitrd -c -k 3.10.14 -m usb-storage:ehci-pci:ehci-platform:ext4 -u -w 30 -f ext4 -r LABEL=slack
lilo -t -v
lilo
Some tweaking is still needed, but it works (I'm posting from it :-)
Thanks to philanc, bormant and Darth Vader.
Hope this helps some in a similar situation.
|
Thanks. Creating an initrd solved it. Strange though, as I remember in previous versions the huge.s kernel didn't need one.
|
|
|
10-22-2014, 10:59 AM
|
#13
|
Member
Registered: May 2008
Location: Republic of Texas
Posts: 393
Rep:
|
Re initrd - I believe we have been through this many times and it still crops up.
1) If you boot an external/usb-disk using label= or uuid=, you _do need_ an initrd
2) When you first have an initrd, you can easily use the generic kernel. The huge kernel will still work fine, but it will come up with some error messages (about module allready loaded) which may be disconcerting to some
3) If you know beforehand which device your external/usb-disk will be, you should not need an initrd - however, unless you boot from the same machine with exactly the same hardware each time, this will probably not be the case (especially these days when parallel-running scripts are getting more popular)
So, _my_ preference (and I stress the word _my_ - other people may have other experiences) would be:
a) Make an initrd and boot using label= or uuid=
b) Edit /etc/fstab to also use label= or uuid=
Just my 2c-worth
Last edited by perbh; 10-22-2014 at 11:01 AM.
|
|
|
All times are GMT -5. The time now is 12:17 AM.
|
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.
|
Latest Threads
LQ News
|
|