From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1V1fOg-0008AX-0u for mharc-grub-devel@gnu.org; Tue, 23 Jul 2013 12:25:10 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42280) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V1fOZ-0007wP-EX for grub-devel@gnu.org; Tue, 23 Jul 2013 12:25:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1V1fOV-0007Wp-PT for grub-devel@gnu.org; Tue, 23 Jul 2013 12:25:03 -0400 Received: from moutng.kundenserver.de ([212.227.17.10]:60473) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V1fOV-0007TC-Gn for grub-devel@gnu.org; Tue, 23 Jul 2013 12:24:59 -0400 Received: from [10.0.0.100] (p508CDC7B.dip0.t-ipconnect.de [80.140.220.123]) by mrelayeu.kundenserver.de (node=mrbap4) with ESMTP (Nemesis) id 0LheLp-1UOBui252n-00nH84; Tue, 23 Jul 2013 18:24:57 +0200 Message-ID: <51EEAE57.8070700@hgsys.de> Date: Tue, 23 Jul 2013 18:24:55 +0200 From: Holger Goetz User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:23.0) Gecko/20100101 Thunderbird/23.0 MIME-Version: 1.0 To: The development of GNU GRUB Subject: Re: Obtaining the UUID of the system for a PXE boot References: <51E67DC2.1090609@hgsys.de> <51E7C5F0.5000308@hgsys.de> <20130718193501.629d9c69@opensuse.site> <51E94C37.4030300@hgsys.de> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V02:K0:+SbXpQHQAerXUnmYJy+PIaZIzDhjMsIp7KceIpsknQl yWk6sm8ynjro2B838aVqM1wz9jnTkDeGP2/n3uRQgk8RxOFTuO oZxiTw5BNjHE7sE7VAsQVbwmI8xZPs3eTzUiBket9cuDwfmjEK aBy+Bc2XsA4PnnlCv9WPMv5eGyAiWBD9nDrNR9vm9hJzXszUga 1YZncfFzNg4NMMXAPSeWPXBQpqOn/yH6SzAB1WkscOghZLAbXH CRcSqpdOkAKO3Qc6Y4F1UThLAA4W0GfX9bNX0LTj2enR6nzQhr WwK7Hoc3dijc3DAB7r7CSvL2gmJKwK7M9RjPPBoTAaBJvBj0g= = X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic] X-Received-From: 212.227.17.10 Cc: Andrey Borzenkov , David Michael X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: The development of GNU GRUB List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Jul 2013 16:25:08 -0000 Hi, looks i could need some help here. I've moved the smbios module from commands/i386 to commands and added some casts to make the compiler happy. As I need a x86_64-efi grub. What i see now is that the "_SM_" signature is not found: "Failed to locate entry point structure" some added grub_dprintf's show all zeros in the memory area. Actually when i use the "dump" command to display the memory in the area that gets swiped (0xf0000..0x10000) it (also) only displays "00"s. Is there some memory mapping required in x86_64 mode to access the memory area properly? I did cross check w/ the Linux kernel efi code and syslinux all basically do the same searching. Thanks, Holger On 19.07.2013 18:31, David Michael wrote: > Hi, > > On Fri, Jul 19, 2013 at 10:24 AM, Holger Goetz wrote: >> Yes it's towards the right direction. But it is 32bit only if i understand >> correctly, and it basically is a memory access to fixed/hardcoded MEMORY >> address (0x80000001). to pick the veondor id and machine info. > It's true that I've mostly been using the module on 32-bit virtual > machines, so it hasn't really been tested elsewhere. However, I'm not > sure I understand what you mean by the hard-coded memory address. The > first function grub_smbios_locate_eps searches for the SMBIOS entry > point structure as described in the spec. The table entries are then > read at the table address found in the EPS, not a hard-coded location. > >> I have only 64bit - UEFI here - therefore the approach w/ first searching >> the SMBIOS infoblock in memory is probably required. And then properly walk >> through the info-tables/blocks to get to the UUID entry. It doesn'T need to >> be a fixed info to be retrieved from the SMBIOS memory - maybe a generic >> function to query/search a specific entry and return that to be assigned to >> a variable would be more flexible. > The module's command-line interface does use a (dumb) query/search > method. You can specify the desired entry's type and/or handle and > the data to retrieve from it. For example the following command > prints the machine name (i.e. the string at offset 5 in an entry with > type 1). > > smbios -t 1 -s 5 > > I think you may have found the first patch I sent in that old thread, > which was for different functionality. The SMBIOS module can be > downloaded from the list archive[1]. > > Unfortunately it doesn't have any convenient functions to output a > usable UUID. It shouldn't take much to add one: the variable "entry" > in the "main" function is a pointer to the matched entry, so entry[8] > through entry[23] is the UUID in a call "smbios -t 1 ...". I've > verified these bytes correspond to dmidecode output on my physical > hardware with the following. > > for i in 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 > do smbios -t 1 -b $i > done > > If the module isn't salvageable on UEFI, maybe I can send out an > updated version whenever I upgrade to such a system. > > Thanks. > > David > > [1] https://lists.gnu.org/archive/html/grub-devel/2013-04/binx8am8MvVSh.bin > > _______________________________________________ > Grub-devel mailing list > Grub-devel@gnu.org > https://lists.gnu.org/mailman/listinfo/grub-devel > >