Problem Booting Librem Mini v2 from SSD Attached to USB C Port

I am trying to install and boot Debian 11 from a Kingston NVMe SSD that is mounted inside a Sabrent enclosure for M.2 PCIe with a USB TYPE-C interface plugged into the back usb-c port on my LMv2.

I start by setting up a bootable Debian 11 Net install image on a USB drive that is plugged into the front usb3 port, and I can boot to the installer USB no problem (power on + esc key, select 2 to boot from the usb stick).

I go through the installer and I am partitioning the SSD as follows:

  • 40Gb root filesystem (/) as ext4, primary, bootable.
  • 16Gb swap
  • 440Gb ext4 logical /home

Install GRUB boot loader to my primary partition on the SSD.

I remove the install usb from the usb3 port, and the install finishes.

However, then it’s time to boot from the SSD attached to usb type-c port, the drive does not show up on the SeaBIOS boot menu.

[I am going to post this anyway, but I just had a thought - maybe 40Gb is too big for the primary partition?]

If I recall correctly, I had this working using a older 500Gb USB external drive - connected to usb 3 port - boots no problem, shows up on the boot menu, etc.

Is it the fact that it’s an NVMe PCIe SSD?
Is it perhaps the Sabrent SSD case?

Any assistance appreciated.

EDIT/UPDATE:
This is not the issue (see my next post - boot from usb 3 works):

NOT THE PROBLEM: Is it possible that either LMv2 SeaBIOS does not support booting from the USB3 port?

Just verified that I can boot the LMv2 from the usb type-c port on the back of the case.

I have an external HDD for which I found a usb3 micro b male to usb type-c male cable the debian 11 I put on there boots OK. (Writing this post from this config now).

Of course, the whole idea of the NVMe PCIe + enclosure + usb type-c was for the speed, and the HDD via USB3 is noticeably slower.

SeaBIOS is just very picky about USB detection, sometimes it will detect things on a warm boot but not cold, or vice-versa. It’s hard to diagnose without a debug build/log output from a failed detection

1 Like

One other fact on this issue:
It seems that I am not able to place the primary partition at the start of the address space.
When I look at it with gparted, it is showing 8Mb of free space before the primary partition.

I am going to try setting up the partitions again, and put details here when done.

that doesn’t matter. SeaBIOS boots from the MBR (first ~440 bytes of drive) which contains the partition layout and location of the PBR (eg, grub) so those 8MB are inconsequential

1 Like

Short of building SeaBIOS from source, is there any type of log that might give insight as to why the drive is not available as a boot option?

PS: I am getting a different enclosure for my SSD, as I had a similar problem with the brand I have, and the problem was not present with a certain other brand - which I have just ordered up.

the SeaBIOS log, which is appended to the coreboot console log (cbmem) would provide some insight, but not at the default logging level. You’d need to recompile it with a higher logging level (5 recommended)

1 Like

Is there a package I can install via apt that will provide me the coreboot utils or do I have to clone the repo and build them? Otherwise, not sure how to at least start looking at the coreboot console log.

PS: I found the “known issues” section you were likely referring to earlier.

Thanks for your help so far…I think I am going to switch strategies for now to setting up a VM using my NVMe M.2 drive for now.

PS/BTW: Using the Disks utility’s benchmark function it seems that the NVMe SSD enclosure if way faster view it’s USB-C to USB 3.1 port rather than the USB-C to USB-C port on the back of the LMv2. I must be missing some detail of the hardware to not already know that.

sounds like it’s not running at USB3 speeds when connected to the USB-C port, but best bet to work with support to diagnose since that’s an OS-side issue (at least initially)

1 Like

This is for the purpose of doing some development work on non-free software projects, so I decided to use a VM where I mounted the SSD and configured a storage pool on there for my VM disk.
This seems it might be a better setup, as since I can’t get 2 monitors running under the VM (I really tried, but it seems to be quite difficult to achieve with any stability) I am keeping 1 of my monitors running on the host PureOS while the other is full-screen for my guest OS.

Thanks very much @MrChromebox - I definitely learned a few things / expanded my knowledge of my LMv2 and PureOS.

UPDATE: I especially learned very much about installing Debian 11 and disk partitioning and a few different tools for partitioning, as well as QEMU/KVM virtual machine configuration.

UPDATE 2: I am now doing some training where the online training company does not seem to support the Gnome Web browser app. SO what now? I ended up creating another tiny VM in which I installed debian 11, removed all the unnecessary s/w and added Chromium browser - just so I could get to the training site.

I am now considering getting another SSD - this time a 2.5" SATA interface drive to mount inside the LM2 case - so that I can either boot into PureOS for my personal stuff or boot into the internal SATA drive - where I will install Debian and install other non-free stuffs.

This way, I should have Chromium and dual monitors and the whole bluetooth thing should work much more smoothly (rather than through the VM).