Opened 4 years ago

Closed 3 years ago

#10550 closed defect (fixed)

XO-1.75 os1 panic on missing rootfs if external SD card present

Reported by: Quozl Owned by: buytenh
Priority: normal Milestone: 1.75-software
Component: kernel Version: not specified
Keywords: Cc:
Blocked By: Blocking:
Deployments affected: Action Needed: no action
Verified: no

Description (last modified by Quozl)

With os1 on internal SD, and the external SD containing os1.zd, a kernel panic occurs.

Workaround: remove the external SD card and reset CPU.

Attachments (1)

bah.log (19.2 KB) - added by Quozl 3 years ago.
dmesg showing kernel panic with external SD card

Download all attachments as: .zip

Change History (10)

comment:1 Changed 4 years ago by Quozl

  • Description modified (diff)

comment:2 Changed 4 years ago by Quozl

Reproduced on os2.

comment:3 follow-up: Changed 4 years ago by buytenh

I assume that the kernel panic is due to it trying to mount the wrong (i.e. internal) SD?

If yes, then the real issue is that /dev/* nodes are not stable device identifiers, and booting with root=/dev/foo0 is inherently ambiguous if there are two of foo. Possible solutions are specifying the root device by label/uuid, or maybe to reorder initialisation of the two SD interfaces (although that doesn't 100% guarantee stable device identifiers either).

If no, please attach the panic message.

comment:4 in reply to: ↑ 3 Changed 4 years ago by pgf

Replying to buytenh:

If yes, then the real issue is that /dev/* nodes are not stable device identifiers, and booting with root=/dev/foo0 is inherently ambiguous if there are two of foo. Possible solutions are specifying the root device by label/uuid, or maybe to reorder initialisation of the two SD interfaces (although that doesn't 100% guarantee stable device identifiers either).

the names should be attached to the slot, not the device. 1.5 does this with udev:

# udev rules to assign persistent names to OLPC XO-1.5 SD cards and their
# partitions, based on the MMC bus where they reside
#
# mmcblkXpY names cannot be used to reliably identify internal vs external
# cards, because the "X" component is generated incrementally, regardless of
# backing MMC bus number.

SUBSYSTEM=="block", KERNEL=="mmcblk?", KERNELS=="mmc0", SYMLINK+="disk/mmc/mmc0"
SUBSYSTEM=="block", KERNEL=="mmcblk?p?", KERNELS=="mmc0", SYMLINK+="disk/mmc/mmc0p%n"

SUBSYSTEM=="block", KERNEL=="mmcblk?", KERNELS=="mmc1", SYMLINK+="disk/mmc/mmc1"
SUBSYSTEM=="block", KERNEL=="mmcblk?p?", KERNELS=="mmc1", SYMLINK+="disk/mmc/mmc1p%n"

SUBSYSTEM=="block", KERNEL=="mmcblk?", KERNELS=="mmc2", SYMLINK+="disk/mmc/mmc2"
SUBSYSTEM=="block", KERNEL=="mmcblk?p?", KERNELS=="mmc2", SYMLINK+="disk/mmc/mmc2p%n"

comment:5 Changed 4 years ago by Quozl

Duplicate #10610 closed.

comment:6 Changed 4 years ago by Quozl

Reproduced on os6.

comment:7 Changed 4 years ago by Quozl

Reproduced on os9.

comment:8 Changed 3 years ago by Quozl

Reproduced on os36 on XO-1.75 B1. devalias was used to fs-update to the external card.

Changed 3 years ago by Quozl

dmesg showing kernel panic with external SD card

comment:9 Changed 3 years ago by Quozl

  • Action Needed changed from diagnose to no action
  • Resolution set to fixed
  • Status changed from new to closed

Fixed in os40.

Note: See TracTickets for help on using tickets.