[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Possibly erroneous "device not present" message during boot



On Wed 19 Apr 2017 at 21:10:36 -0500, David Wright wrote:

> On Sat 15 Apr 2017 at 23:21:33 (+0100), Brian wrote:
> > 
> > Nobody in this thread, apart from the OP, has a Lenovo and an SD card.
> > He is in the best position to test and report on this suggestion. Less
> > than twenty minutes work.
> 
> Frustratingly, I can't test this hypothesis, but I'm getting the
> impression that whether a PC can boot¹ directly from an SD card in
> the PC's SD slot depends² on how the card eventually appears on
> the bus.

I'll do the testing for you. :)

I have an oldish laptop (Turion based) with a full-sized SD slot. An SD
adapter with a micro SD card in it does not appear as

> $ ls -l /dev/disk/by-id/ [edited]
> usb-General_Combo_CardMMC_SD_000012345678-0:0 -> ../../sdb
> usb-General_Combo_CardMMC_SD_000012345678-0:0-part1 -> ../../sdb1
> usb-General_Combo_CardMMC_SD_000012345678-0:0-part2 -> ../../sdb2
> $ cat /sys/bus/usb/devices/1-4:1.0/uevent
> DEVTYPE=usb_interface
> DRIVER=usb-storage
> PRODUCT=1025/5d/16b
> TYPE=0/0/0
> INTERFACE=8/6/80
> MODALIAS=usb:v1025p005Dd016Bdc00dsc00dp00ic08isc06ip50in00
> $ 

but does appear as

> $ ls -l /dev/disk/by-id/
> mmc-SE32G_0x0109e2ec -> ../../mmcblk0
> mmc-SE32G_0x0109e2ec-part1 -> ../../mmcblk0p1
> $ cat /sys/bus/mmc/devices/mmc0\:aaaa/uevent
> DRIVER=mmcblk
> MMC_TYPE=SD
> MMC_NAME=SE32G
> MODALIAS=mmc:block
> $ 
> 
> My guess from this is that the former SD card is connected to the
> USB bus whereas the latter is connected to a different bus. The
> likely candidate from what I've read is the PCIe bus.

Good guess.

 brian@laptop:~$ lspci | grep CardBus
 00:10.0 CardBus bridge: Texas Instruments PCIxx21/x515 Cardbus Controller

Also (without the card inserted):

 brian@laptop:~$ lsmod | grep mmc
 mmc_core               91803  3 sdhci,tifm_sd,sdhci_pci

With the card inserted:

 brian@laptop:~$ lsmod | grep mmc
 mmc_block              30466  2 
 mmc_core               91803  4 mmc_block,sdhci,tifm_sd,sdhci_pci

tifm_sd is the Texas Instruments FlashMedia SD driver.
 
> My next guess is that the USB bus (sorry about the tautology) can
> be run by the OS-less PC (obviously), whereas the other bus can't.
> The trade-off is that a PCIe bus would give a much greater speed.

This laptop only offers booting from CD and HD. GRUB's nativedisk module
will get it booting from USB but, because of the bus the SD controller
is on and GRUB having no modules for mmc, it will not boot from the SD
card.

There are quite a few complaints from users about machines not booting
from SD cards in internal readers. My guess is that, when it is possible,
the reader is always on the USB bus. 

My second guess is that aren't any machines which boot from a reader on
the PCI bus. Maybe it is too complex to implement; maybe it will come in
time. It took a fair amount of time after the introduction of USB for it
to become a common, reliable booting process.

-- 
Brian.


Reply to: