• davel [he/him]@lemmy.ml
    link
    fedilink
    English
    arrow-up
    4
    ·
    5 months ago

    How to install Libreboot in 2024?

    That’s an oddly specific question. When else but now? Did you arrive by time machine?

    • libreman@lemy.lolOP
      link
      fedilink
      English
      arrow-up
      8
      ·
      5 months ago

      That’s an oddly specific question. When else but now? Did you arrive by time machine?

      Yes, I was looking for you and I want to take you to my planet called GnuBoot, will you come with me? ))

    • libreman@lemy.lolOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      5 months ago

      I’m not sure what you mean by “checking the ROM”…

      Hello . I mean, how do I know that there are blob objects embedded in the ROM, without which my laptop won’t turn on, I mean mrc.bin

      Previously I could check this using the command:

      ./cbfstool grub_t440pmrc_12mb_libgfxinit_corebootfb_usqwerty.rom print

      • TheyCallMeHacked@discuss.tchncs.de
        link
        fedilink
        arrow-up
        2
        ·
        5 months ago

        Oh you can still do that. The path changed to elf/cbfstool/[TREE]/cbfstool (replace [TREE] with the tree concerened). Note that since the switch to the libre RAM init code, mrc.bin is not included anymore

        • libreman@lemy.lolOP
          link
          fedilink
          English
          arrow-up
          2
          ·
          edit-2
          5 months ago

          I installed the updated version 20240612 everything worked as you said. Checking nothing as in the previous instructions does not give anything, as you wrote: after switching to the libre RAM initialization code mrc.bin no longer turns on.

          Now i need to edit grub.cfg because I get an error with searching for the achi1 disk

        • libreman@lemy.lolOP
          link
          fedilink
          English
          arrow-up
          1
          ·
          edit-2
          5 months ago

          $ ./build roms t440plibremrc_12mb

          Thanks for your answer and help. I understand you correctly that after I executed the command

          $ ./build roms t440plibremrc_12mb

          Then I can update my ROM (for example, I now have 2023.06.25) by running the commands:

          1. Boot with kernel parameter iomem=relaxed
          2. Download and install ** flashprog** since flashrom will not work (for me it shows the chip size as 8Mb instead of 12Mb)
          $ git clone  https://github.com/SourceArcade/flashprog.git
          $ cd flashprog
          $ make 
          $ sudo make install
          
          1. Check for errors with the command: $ sudo flashprog -p internal

          4 Flash $ sudo flashprog -p internal -w seabios_withgrub_t440plibremrc_12mb_libgfxinit_corebootfb_ukqwerty_grubfirst.rom

          And can I be sure that after turning on my computer I will see Grub Libreboot?

          • TheyCallMeHacked@discuss.tchncs.de
            link
            fedilink
            arrow-up
            1
            ·
            5 months ago

            Yeah, that’s basically right. I believe flashprog is also included in libreboot, have a look in the elf/ directory. After that, it should work as expected

            • libreman@lemy.lolOP
              link
              fedilink
              English
              arrow-up
              1
              ·
              5 months ago

              Yeah, that’s basically right. I believe flashprog is also included in libreboot, have a look in the elf/ directory. After that, it should work as expected

              Thank you, kind person)) I installed it, but after installation my screen is too bright and this happens every time, so for now I will use the latest test version, it works well.

              I have another question, please tell me how, in your opinion, I can edit grub.cgf correctly so as not to get an error with searching for disk "ahci1"

              I inserted these lines:

              ...........
              
              	echo # Insert newline
              
              }
              
              menuentry 'Load  GNU/Linux-Libre (LTS)' {
              
              	cryptomount -a
              
              	set root='lvm/matrix-rootvol'
              
              	linux /boot/vmlinuz-linux-libre-lts root=/dev/mapper/matrix-rootvol cryptdevice=/dev/sda1:lvm
              
              	initrd /boot/initramfs-linux-libre-lts.img
              
              }
              
              menuentry 'Load Operating System (incl. fully encrypted disks)  [o]' --hotkey='o' {
              

              and deleted these ones since I don’t use raid:

              menuentry 'Load Operating System (incl. fully encrypted disks)  [o]' --hotkey='o' {
              
                      if [ "${grub_scan_disk}" != "ata" ]; then
              
              		search_grub ahci
              
              	fi
              
              	if [ "${grub_scan_disk}" != "ahci" ]; then
              
              		search_grub ata
              
              	fi
              
                      # grub device enumeration is very slow, so checks are hardcoded
              
                      # TODO: add more strings, based on what distros set up when
              
              	# the user select auto-partitioning on those installers
              
              	lvmvol="lvm/matrix-bootvol lvm/matrix-rootvol"
              
                      raidvol="md/0 md/1 md/2 md/3 md/4 md/5 md/6 md/7 md/8 md/9"
              
                      # in practise, doing multiple redundant checks is perfectly fast and
              
              	# TODO: optimize grub itself, and use */? here for everything
              
                      for vol in ${lvmvol} ${raidvol} ; do
              
              		try_user_config "${vol}"
              
              	done
              
                      unset ahcidev
              
              	unset atadev
              
              	for i in 11 10 9 8 7 6 5 4 3 2 1 0; do
              
              		for part in 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1; do
              
              			if [ "${grub_scan_disk}" != "ata" ]; then
              
              				ahcidev="(ahci${i},${part}) ${ahcidev}"
              
              			fi
              
              			if [ "${grub_scan_disk}" != "ahci" ]; then
              
              				atadev="(ata${i},${part}) ${atadev}"
              
              			fi
              
              		done
              
              	done
              
                      set pager=0
              
              	echo -n "Attempting to unlock encrypted volumes"
              
              	for dev in ${ahcidev} ${atadev} ${lvmvol} ${raidvol}; do
              
              		if cryptomount "${dev}" ; then break ; fi
              
              	done
              
              	set pager=1
              
              	echo
              
                      # after cryptomount, lvm volumes might be available
              
              	for vol in ${lvmvol}; do
              
              		try_user_config "${vol}"
              
              	done
              
                      search_grub crypto
              
                      if [ "${grub_scan_disk}" != "ata" ]; then
              
              		# Last resort, if all else fails
              
              		set root=ahci0,1
              
              		for p in / /boot/; do
              
              			if [ -f "${p}vmlinuz" ]; then
              
              				linux ${p}vmlinuz root=/dev/sda1 rw
              
              				if [ -f "${p}initrd.img" ]; then
              
              					initrd ${p}initrd.img
              
              				fi
              
              			fi
              
              		done
              
              	fi
              
                      if [ "${grub_scan_disk}" != "ahci" ]; then
              
              		# Last resort (for setups that use IDE instead of SATA)
              
              		set root=ata0,1
              
              		for p in / /boot/; do
              
              			if [ -f "${p}vmlinuz" ]; then
              
              				linux ${p}vmlinuz root=/dev/sda1 rw
              
              				if [ -f "${p}initrd.img" ]; then
              
              					initrd ${p}initrd.img
              
              				fi
              
              			fi
              
              		done
              
              	fi
              
                      true # Prevent pager requiring to accept each line instead of whole screen