Git Product home page Git Product logo

guefi's People

Contributors

gapan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

astrinux

guefi's Issues

GUEFI won't launch

I zipped up the make & make installed program in case it helps. Error first, then console output from me trying to install, installing missing tools, then finally installing it, realizing it was basically installed but not in the app menu, and reinstalling it without custom path.

$ sudo ./guefi
Traceback (most recent call last):
  File "/home/joshua/software/guefi/usr/sbin/./guefi", line 702, in <module>
    app = GUEFI()
          ^^^^^^^
  File "/home/joshua/software/guefi/usr/sbin/./guefi", line 653, in __init__
    self.update_list()
  File "/home/joshua/software/guefi/usr/sbin/./guefi", line 596, in update_list
    self.uefi.update()
  File "/home/joshua/software/guefi/usr/sbin/./guefi", line 125, in update
    self.efi_mountpoint = self.get_efi_mountpoint()
                          ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/joshua/software/guefi/usr/sbin/./guefi", line 63, in get_efi_mountpoint
    p = subprocess.Popen(['findmnt', self.efi_partition],
                                     ^^^^^^^^^^^^^^^^^^
AttributeError: 'UEFI' object has no attribute 'efi_partition'. Did you mean: 'get_efi_partition'?
joshua@mx-Linux-KP9USMC:~/software/guefi/usr/sbin
$ gksu ./guefi
Starting ./guefi

(guefi:23864): Gtk-CRITICAL **: 02:12:34.020: _gtk_css_lookup_resolve: assertion '(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) ((provider)); GType __t = ((_gtk_style_provider_private_get_type ())); gboolean __r; if (!__inst) __r = (0); else if (__inst->g_class && __inst->g_class->g_type == __t) __r = (!(0)); else __r = g_type_check_instance_is_a (__inst, __t); __r; }))))' failed
/home/joshua/software/guefi/usr/sbin/guefi:643: Warning: g_object_set_data_full: assertion 'G_IS_OBJECT (object)' failed
  builder.add_from_file('/usr/share/guefi/guefi.ui')

(guefi:23864): Gtk-ERROR **: 02:12:34.021: Can't create a GtkStyleContext without a display connection
/usr/bin/mx-pkexec: line 73: 23864 Trace/breakpoint trap   pkexec /usr/bin/mx-pkexec "${@}"
joshua@mx-Linux-KP9USMC:~/software/guefi/usr/sbin
$ 
@@@@@@@@@@@@%*+--:------=+*%@@@@@@@@@@@@   ----------------------- 
@@@@@@@@@#=. .-+#%@@@@@%#*+--=#@@@@@@@@@   OS: MX x86_64 
@@@@@@@+. .=%@@@@@@@@@@@@@@@@*-:+@@@@@@@   Host: MS-7972 2.0 
@@@@@*.  *@@@@@@@@@@@@@@@@@@@@@%-.*@@@@@   Kernel: 6.6.11-amd64 
@@@@-  -@@@@@@@@@@@@@@@@@@@@@@@#:  -@@@@   Uptime: 44 mins 
@@@:  -@@@@@@@=.*@@@@@@@@@@@@%-   = :@@@   Packages: 3622 (dpkg), 24 (flatpak) 
@@=  .@@@@@@@@%- :%@@@@@@@@@+   -%@# =@@   Shell: bash 5.2.15 
@%   +@@@@@@@@@@#. =@@@@@@*.  .*@@@@. %@   Resolution: 1920x1080 
@+   *@@@@@@*..*@@+  *@@%-   =@@@@@@- +@   DE: Xfce 4.18 
@=   *@@@@%-    -%@@- :=   -%@@@@@@@: +@   WM: Xfwm4 
@+   :@@@=        +@@=   .#@@@@@@@@%  *@   WM Theme: Matcha-dark-azul 
@%    +*.          .:     *@@#: +@@:  @@   Theme: Matcha-dark-azul [GTK2/3] 
@@+                   :%@- :-    ::  +@@   Icons: Papirus-mxblue-darkpanes [GTK2], Papirus-Dark [GT 
@@@-                  .=@@=         -@@@   Terminal: xfce4-terminal 
@@+.                     .           +@@   Terminal Font: Liberation Mono 11 
%=..:.................::...........:..-%   CPU: Intel i7-7700K (8) @ 4.800GHz 
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   GPU: AMD ATI Radeon RX 6700/6700 XT/6750 XT / 6800M/6850 
                                           Memory: 4041MiB / 15961MiB 

                                                                   
                                                                   


joshua@mx-Linux-KP9USMC:/media/Data/Users/jr2/Downloads/Linux/software/guefi-0.2.2
$ make
for i in `ls po/*.po`; do \
	msgfmt $i -o `echo $i | sed "s/\.po//"`.mo; \
done
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
/bin/sh: 2: msgfmt: not found
make: *** [Makefile:10: mo] Error 127
joshua@mx-Linux-KP9USMC:/media/Data/Users/jr2/Downloads/Linux/software/guefi-0.2.2
$ make
for i in `ls po/*.po`; do \
	msgfmt $i -o `echo $i | sed "s/\.po//"`.mo; \
done
intltool-merge po/ -d -u \
	guefi.desktop.in guefi.desktop
make: intltool-merge: No such file or directory
make: *** [Makefile:16: desktop] Error 127
joshua@mx-Linux-KP9USMC:/media/Data/Users/jr2/Downloads/Linux/software/guefi-0.2.2
$ intltool-merge
Command 'intltool-merge' not found, but can be installed with:
sudo apt install intltool
joshua@mx-Linux-KP9USMC:/media/Data/Users/jr2/Downloads/Linux/software/guefi-0.2.2
$ make
for i in `ls po/*.po`; do \
	msgfmt $i -o `echo $i | sed "s/\.po//"`.mo; \
done
intltool-merge po/ -d -u \
	guefi.desktop.in guefi.desktop
Merging translations into guefi.desktop.
intltool-merge po/ -d -u \
	guefi-kde.desktop.in guefi-kde.desktop
Merging translations into guefi-kde.desktop.
joshua@mx-Linux-KP9USMC:/media/Data/Users/jr2/Downloads/Linux/software/guefi-0.2.2
$ make
make: getcwd: No such file or directory
make: *** No targets specified and no makefile found.  Stop.
joshua@mx-Linux-KP9USMC:/media/Data/Users/jr2/Downloads/Linux/software/guefi-0.2.2
$ cd ..
joshua@mx-Linux-KP9USMC:/media/Data/Users/jr2/Downloads/Linux/software
$ cd guefi-0.2.2
joshua@mx-Linux-KP9USMC:/media/Data/Users/jr2/Downloads/Linux/software/guefi-0.2.2
$ make
for i in `ls po/*.po`; do \
	msgfmt $i -o `echo $i | sed "s/\.po//"`.mo; \
done
intltool-merge po/ -d -u \
	guefi.desktop.in guefi.desktop
Merging translations into guefi.desktop.
intltool-merge po/ -d -u \
	guefi-kde.desktop.in guefi-kde.desktop
Merging translations into guefi-kde.desktop.
joshua@mx-Linux-KP9USMC:/media/Data/Users/jr2/Downloads/Linux/software/guefi-0.2.2
$ sudo make install DESTDIR=~/software/guefi
[sudo] password for joshua:          
install -d -m 755 /home/joshua/software/guefi/usr/share/icons/hicolor/scalable/apps/
install -m 644 icons/guefi.svg \
	/home/joshua/software/guefi/usr/share/icons/hicolor/scalable/apps/
for i in 48 32 24 22 16; do \
	install -d -m 755 \
	/home/joshua/software/guefi/usr/share/icons/hicolor/${i}x${i}/apps/ \
	2> /dev/null; \
	install -m 644 icons/guefi-$i.png \
	/home/joshua/software/guefi/usr/share/icons/hicolor/${i}x${i}/apps/guefi.png; \
done
for i in `ls po/*.po|sed "s/po\/\(.*\)\.po/\1/"`; do \
	install -d -m 755 /home/joshua/software/guefi/usr/share/locale/$i/LC_MESSAGES; \
	install -m 644 po/$i.mo /home/joshua/software/guefi/usr/share/locale/$i/LC_MESSAGES/guefi.mo; \
done
install -d -m 755 /home/joshua/software/guefi/usr/sbin
install -d -m 755 /home/joshua/software/guefi/usr/share/applications
install -d -m 755 /home/joshua/software/guefi/usr/share/guefi
install -d -m 755 /home/joshua/software/guefi/etc
install -m 755 src/guefi /home/joshua/software/guefi/usr/sbin/
install -m 644 src/guefi.ui /home/joshua/software/guefi/usr/share/guefi/
install -m 644 guefi.desktop /home/joshua/software/guefi/usr/share/applications/
install -m 644 guefi-kde.desktop /home/joshua/software/guefi/usr/share/applications/
joshua@mx-Linux-KP9USMC:/media/Data/Users/jr2/Downloads/Linux/software/guefi-0.2.2
$ sudo make install
install -d -m 755 //usr/share/icons/hicolor/scalable/apps/
install -m 644 icons/guefi.svg \
	//usr/share/icons/hicolor/scalable/apps/
for i in 48 32 24 22 16; do \
	install -d -m 755 \
	//usr/share/icons/hicolor/${i}x${i}/apps/ \
	2> /dev/null; \
	install -m 644 icons/guefi-$i.png \
	//usr/share/icons/hicolor/${i}x${i}/apps/guefi.png; \
done
for i in `ls po/*.po|sed "s/po\/\(.*\)\.po/\1/"`; do \
	install -d -m 755 //usr/share/locale/$i/LC_MESSAGES; \
	install -m 644 po/$i.mo //usr/share/locale/$i/LC_MESSAGES/guefi.mo; \
done
install -d -m 755 //usr/sbin
install -d -m 755 //usr/share/applications
install -d -m 755 //usr/share/guefi
install -d -m 755 //etc
install -m 755 src/guefi //usr/sbin/
install -m 644 src/guefi.ui //usr/share/guefi/
install -m 644 guefi.desktop //usr/share/applications/
install -m 644 guefi-kde.desktop //usr/share/applications/
joshua@mx-Linux-KP9USMC:/media/Data/Users/jr2/Downloads/Linux/software/guefi-0.2.2
$ 

guefi.zip

screenshot?

Could the main README show one screenshot?

renaming an entriy causes wrong entries with multible HDs and EFIpartitions

if you have more than one HD and each has a efi sector, guefi needs to care about which hd and partition the entries are defined

for example this setup,
where the Ubuntu entry is on sda1 and the Slackware entry on sdb1

.....# skip tons of entries

Boot0018* Ubuntu        HD(1,800,100000,d05fb60d-411c-4efe-9b02-236308280025)File(\EFI\ubuntu\shimx64.efi)/
Boot001B* Slackware     HD(1,800,100000,2b6665be-f5e2-48f5-a374-fef13c6341b4)File(\EFI\Slackware\elilo.efi)

on that hard disks

blkid
/dev/sda1: UUID="DD4E-A4C8" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="d05fb60d-411c-4efe-9b02-236308280025"
/dev/sda2: UUID="9d1758a7-4b51-4d37-a8fd-5c26b12e2b39" TYPE="ext4" PARTUUID="e2043d11-89e1-47c9-9041-b1513c802602"
/dev/sda3: UUID="2baf1f3d-d55d-4276-9361-2f0fc923e5c0" TYPE="swap" PARTUUID="d6abd353-2872-4c35-a750-d2177d7dc2de"
/dev/sdb1: UUID="AC03-AD0D" TYPE="vfat" PARTUUID="2b6665be-f5e2-48f5-a374-fef13c6341b4"
/dev/sdb2: UUID="0a19e78f-1274-4159-adec-ffba1f455643" TYPE="ext4" PARTUUID="f158ceca-7d9f-4a0c-b0db-c96153ea73c7"

using guefi from Slackware to rename the Ubuntu entry to Ubuntu1604 will place the changed entry and let it point to the Slackware HD

this means that the Ubuntu1604 boot entry will exist but not working since it points to a wrong disk/partition, what is a somehow negative user experience.

creating the boot entry must be called with the right HD and the correct partition, in the given example /dev/sda and partition 1.

efibootmgr -c -w -l \\EFI\\ubuntu\\shimx64.efi -L "Ubuntu1604" -p 1 -d /dev/sda

I think what you need to do is

  • using blkid to get the disk partition ids ans spare them
  • using efibootmgr -v to pars the output, match the diskid and remember on which disk/partition the entry lives
  • update the entry with the new name and pass disk/partition you figured out

or simply disable the edit/rename function for entries if there are more than one hd
or find some other solution

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.