[make-initrd] Загрузка с USB
Alexey Gladkov
legion at kernel.org
Mon Jul 28 16:45:23 MSK 2025
On Mon, Jul 28, 2025 at 02:38:17PM +0300, Anton Midyukov wrote:
> 28.07.2025 14:31, Vladimir Mokrozub пишет:
> > Здравствуйте,
> >
> > есть Альт Линукс, установленный на SATA SSD. Задача: настроить загрузку с этого диска через внешний бокс SATA -> USB.
> >
> > Я добавил фичи usb и usb-storage, пересобрал initrd, но при загрузке initrd падает в шелл. В dmesg вижу такие ошибки:
> >
> > uas: Unknown symbol usb_stor_sense_invalidCDB (err -2)
> > uas: Unknown symbol usb_stor_adjust_quirks (err -2)
> >
> > В Интернете ничего вразумительного по этим ошибкам не нашел.
> >
>
> Такого набора должно быть достаточно, чтобы загрузить с любого usb:
>
> MODULES_TRY_ADD += kernel/drivers/scsi/sd_mod.ko
> MODULES_TRY_ADD += kernel/drivers/usb/core
> MODULES_TRY_ADD += kernel/drivers/usb/dwc2
> MODULES_TRY_ADD += kernel/drivers/usb/dwc3
> MODULES_TRY_ADD += kernel/drivers/usb/host
> MODULES_TRY_ADD += kernel/drivers/usb/phy
> MODULES_TRY_ADD += kernel/drivers/usb/storage
Вообще, это интересно. Фича usb пробует добавить uas и usb-storage.
$ git grep --show-function -w usb_stor_adjust_quirks
drivers/usb/storage/uas-detect.h=55=static int uas_use_uas_driver(struct usb_interface *intf,
drivers/usb/storage/uas-detect.h:132: usb_stor_adjust_quirks(udev, &flags);
drivers/usb/storage/usb.c=522=static int associate_dev(struct us_data *us, struct usb_interface *intf)
drivers/usb/storage/usb.c:557:void usb_stor_adjust_quirks(struct usb_device *udev, u64 *fflags)
drivers/usb/storage/usb.c:667:EXPORT_SYMBOL_GPL(usb_stor_adjust_quirks);
drivers/usb/storage/usb.c=670=static int get_device_info(struct us_data *us, const struct usb_device_id *id,
drivers/usb/storage/usb.c:687: usb_stor_adjust_quirks(us->pusb_dev, &us->fflags);
drivers/usb/storage/usb.h=192=extern void usb_stor_disconnect(struct usb_interface *intf);
drivers/usb/storage/usb.h:194:extern void usb_stor_adjust_quirks(struct usb_device *dev,
$ git grep -w uas_use_uas_driver
drivers/usb/storage/uas-detect.h:55:static int uas_use_uas_driver(struct usb_interface *intf,
drivers/usb/storage/uas.c:1005: if (!uas_use_uas_driver(intf, id, &dev_flags))
drivers/usb/storage/usb.c:1204: if (uas_use_uas_driver(intf, id, NULL))
$ git grep -F usb.o drivers/usb/storage/Makefile
drivers/usb/storage/Makefile:16:usb-storage-y := scsiglue.o protocol.o transport.o usb.o
Ну то есть usb_stor_adjust_quirks() находится в usb-storage.
Думаю, что стоит спросить, а действительно ли попали ли эти модули
в образ.
--
Rgrds, legion
More information about the Make-initrd
mailing list