Michael Schuh Posted June 24, 2017 Posted June 24, 2017 I have my ODROID XU4 configured so that the SD /boot files boot the machine on a SSD formatted to ext4. This works fine with 4.9.30, but fails with the 4.9.33 kernel I installed today. The only useful message I see is that it can't find my SSD's uuid. The uuid is correct so I suspect that the kernel does not have or is not loading a USB driver. Does anyone have a suggestion on how to boot using the 4.9.33 kernel? Thanks, Michael
debianxfce Posted June 25, 2017 Posted June 25, 2017 See: http://dominicm.com/fix-unable-to-find-root-device-error-in-arch-linux/
Michael Schuh Posted June 25, 2017 Author Posted June 25, 2017 (edited) Thanks for the link debianxfce. I figured out that a change we had made to the /etc/modprobe.d/blacklist-odroid.conf file had caused the initrd file to exclude the uas package. Once I reverted that change and rebuilt the initrd file, the system booted fine. If anyone is interested, here are a few more details. After upgrading from the 4.9.30 kernel to the 4.9.33 kernel, the machine would not boot. It was looking for the SSD drive (USB connected) but could not find it. I suspected that the USB module was not loaded. I recovered from this by restoring the 4.9.30 /boot partition to the boot partition on the microSD card. This made it so that the machine would boot again but it was clear that things were not exactly right because the fan stayed on at an annoyingly high speed. A friend helped me downgrade to the 4.9.30 kernel by going to the 5.31 version of the linux-dtb-next-odroidxu4, linux-headers-next-odroidxu4, and linux-image-next-odroidxu4 packages. That did not boot either. This suggested that the problem was not the 4.9.33 upgrade, but something else that was different. We unpacked the initrd files using "zcat /boot/initrd.img-4.9.30-odroidxu4 | cpio -idmv" in /tmp for the version of 4.9.30 that booted and the one that did not boot and found that the /etc/modprobe.d/blacklist-odroid.conf file had "blacklist uas" in it from where we had been trying to fix a problem with the USB bus randomly rebooting a few days earlier. The "blacklist uas" entry was causing the system to try and boot without the USB UAS driver and this was preventing the booting process from finding the USB hard disk. Once we commented out the "blacklist uas" line and rebuilt the initrd file with "update-initramfs -u", the system booted fine on 4.9.30. This fixed the fan noise too. We installed the 4.9.33 kernel and the ODROID XU4 booted fine. Edited June 27, 2017 by Michael Schuh Had "SD" where I should have had "SSD". Thanks tkaiser for pointing this out.
tkaiser Posted June 26, 2017 Posted June 26, 2017 13 hours ago, Michael Schuh said: It was looking for the SD drive but could not find it. Please take care about your wording. You mean SSD (USB connected) and not SD (SD card, SDIO). If this thread should serve someone else replacing SSD with 'USB drive' makes more sense (same adjusting the thread title since you ran not in a general boot problem but only one with rootfs on USB storage and a wrong attempt to workaround UAS problems on this platform). Wrt UAS and XU4: ODROID community unfortunately doesn't get it (wrong testing methodology leading to the painfully wrong conclusion 'UAS is broken on Linux in general'). You should read https://github.com/hardkernel/linux/commit/c18781b1ef56a800572e8342488504e4e818013a#commitcomment-21996557 and this whole thread: https://forum.odroid.com/viewtopic.php?f=146&t=26016 Something strange happened since yesterday I checked the last page of the UAS thread and there was a post by user moon.linux containing this archive usbphy.tar.gz containing patches for USB issues. This post disappeared in the meantime for whatever reasons (I hope that Hardkernel doesn't start censoring their forum). Seems I have to adjust my forum monitoring infrastructure ([web pages -->] RSS --> scripts --> email --> me checking through inbox at breakfast) since I don't get notified about post deletions
Recommended Posts