Drive-Trust-Alliance / sedutil

DTA sedutil Self encrypting drive software
611 stars 236 forks source link

Release V1.15 July 18,2017 #160

Open davidepic91 opened 7 years ago

davidepic91 commented 7 years ago

@r0m30 I tried to build the last version but the building process (buildpbaroot) stops with the following:

--2017-07-19 12:26:25-- http://www.foosoftware.org/download/sedutil-1.15.tar.gz Risoluzione di www.foosoftware.org (www.foosoftware.org)... non riuscito: Nome o servizio sconosciuto. wget: impossibile risolvere l'indirizzo dell'host "www.foosoftware.org" --2017-07-19 12:26:25-- http://sources.buildroot.net/sedutil-1.15.tar.gz Risoluzione di sources.buildroot.net (sources.buildroot.net)... 176.9.16.109 Connessione a sources.buildroot.net (sources.buildroot.net)|176.9.16.109|:80... connesso. Richiesta HTTP inviata, in attesa di risposta... 404 Not Found 2017-07-19 12:26:25 ERRORE 404: Not Found.

(Sorry for the Italian language) In practice it obtains an HTTP 404 when it tries to downlaod "sedutil-1.15.tar.gz" from "www.foosoftware.org".

r0m30 commented 7 years ago

Can you look a little earlier in the build, what happened when it tried to do these commands?

cd ../../..  
autoreconf  
./configure  
make dist  
mkdir images/scratch/buildroot/dl/  
cp sedutil-*.tar.gz images/scratch/buidroot/dl/  
make `distclean

This should create a distribution from the current source tree and place it in the buildroot/dl directory to prevent buildroot from even trying to go to that nonexistent site to get the code.
Do you have autotools installed?

Don't worry about the Italian, I'm sure you speak better English than I speak Italian.

davidepic91 commented 7 years ago

It seems I have not "autoconf" installed. Is it required for the building process ?

r0m30 commented 7 years ago

Honestly, I'm not an autotools wizard but I don't think it is required. I was just in the habit of running those three commands as I built the configure.ac and Makefile.am. I'd try taking it out.

r0m30 commented 7 years ago

Did you get this to work?

davidepic91 commented 7 years ago

@r0m30 I have not tried yet because I have another problem with sedutil-cli. I worked on a Lubuntu and I could write the PBA,enable locking and so on. Today I formatted my disk and I installed Ubuntu. Therefore, I performed this: ./sedutil-cli --revertnoerase pass /dev/sda Then: sudo ./sedutil-cli --initialsetup pass /dev/sda Now, if I try to execute: sudo ./sedutil-cli --loadPBAimage pass UEFI64_Release-downloaded.img /dev/sda It returns: INFO: Writing PBA to /dev/sda ERR : Command failed on send 255 ERR : Command failed on exec 255 How can I fix this ?

davidepic91 commented 7 years ago

I think there is a problem with the actual version (1.15) of sedutil-cli (that is on the wiki page) and the correspondig UEFI64 image. Is it possible to have in the WIki page also the older version of them ?

r0m30 commented 7 years ago

@davidepic91 if you did the revertnoerase and didn't follow it with a reverttper then you didn't completely remove OPAL locking, see Remove OPAL in the wiki. The initialsetup should have failed with the same messages you are getting for the loadpbaimage.

You can get prior executables from the exec repo. You change the Branch/Tag pull-down to the tag of the release you want and then download the blob you want in raw mode.

In case that was unclear here is a direct link to the 1.12 exec tarball for linux. https://github.com/Drive-Trust-Alliance/exec/blob/1.12/sedutil_LINUX.tgz?raw=true

davidepic91 commented 7 years ago

Thank you ! I had a problem with the "reverttper" then I solved by performing an hardware reset of the hdd. Instead, for the problem mentioned in the first post, what do you mean when you say "cd ../../.. " ?

r0m30 commented 7 years ago

cd is the shell command " change directory. You are moving three levels up the directory tree.

davidepic91 commented 7 years ago

Ok but which is the path from which I should execute these commands ? From "sedutil/images/" ?

r0m30 commented 7 years ago

Those commands are in the script. You don't execute them yourself. I just wanted to know what if they failed because they are the commands that create the distribution so buildroot doesn't try and download one.

r0m30 commented 7 years ago

I've run the build scripts again as I built the 1.15.1 release and didn't have this issue. I can't recreate this.

davidepic91 commented 7 years ago

Today I tried to download again the project. I executed inside /images ./getresource ./buildpbaroot With the last one I obtain the same error I reported in the first post. To be more crear, I attached the textual file "build_output.txt" that is the log of the compilation process for the 64 bit version.

build_output.txt

I hope this can be usefull.

r0m30 commented 7 years ago

Are you running this from a tarball instead of cloning it?
Is there any sedutil tarball in /home/davide/Downloads/sedutil-master/images/scratch/buildroot/dl ?

davidepic91 commented 7 years ago

I simply download the ZIP file from the main page of the repository. In "/home/davide/Downloads/sedutil-master/images/scratch/buildroot/dl" there are the following:

schermata 2017-08-29 alle 23 42 26
r0m30 commented 7 years ago

This appears to be a tarball build issue. Can you clone the repo a see if that works?

davidepic91 commented 7 years ago

I tried but it did not work. My host system is Ubuntu 16.10 (I hope this can be an useful information).

r0m30 commented 7 years ago

I'll try a clean build this weekend and see if I can figure out what's going on.

davidepic91 commented 7 years ago

News ? @r0m30

maenpaa24 commented 6 years ago

Hello!

I suffer from the same issue as you do @davidepic91. I have the exact same output after running:

sudo ./getresource sudo ./buildpbaroot

inside the images folder.

Did you find a solution?

Thanks.

r0m30 commented 6 years ago

The buildpbaroot script uses the local source to create a distribution file and places it in the proper place for buildroot.

Issue these commands and let me know what you get. start in the images directory

cd ../../.. 
autoreconf 
./configure
make dist

These should create a .tgz file in the base directory that the script will then copy to the buildroot/dl/ folder.

maenpaa24 commented 6 years ago

Ok so here are the results.

First I have only executed: cd .. rather than cd ../../.. otherwise I got out of the sedutil directory because I am at \~/sedutil/images. Then I have executed: autoreconf it returned few errors that are solved by executing: automake --add-missing Then I executed: ./configure make dist

and this is the output:

make dist-gzip am__post_remove_distdir='@:' make[1]: Entering directory '~/sedutil' ./linux/GitVersion.sh > linux/Version.h ++ which git

  • GIT=/usr/bin/git
  • '[' x/usr/bin/git == x ']' ++ git describe --dirty
  • GITVER=1.15.1
  • echo '#define GIT_VERSION ' '"1.15.1"' if test -d "sedutil-1.15.1"; then find "sedutil-1.15.1" -type d ! -perm -200 -exec chmod u+w {} ';' && rm -rf "sedutil-1.15.1" || { sleep 5 && rm -rf "sedutil-1.15.1"; }; else :; fi test -d "sedutil-1.15.1" || mkdir "sedutil-1.15.1" test -n "" \ || find "sedutil-1.15.1" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec /bin/sh ~/sedutil/install-sh -c -m a+r {} {} \; \ || chmod -R a+r "sedutil-1.15.1" tardir=sedutil-1.15.1 && ${TAR-tar} chof - "$tardir" | eval GZIP= gzip --best -c >sedutil-1.15.1.tar.gz rm linux/Version.h make[1]: Leaving directory '~/sedutil' if test -d "sedutil-1.15.1"; then find "sedutil-1.15.1" -type d ! -perm -200 -exec chmod u+w {} ';' && rm -rf "sedutil-1.15.1" || { sleep 5 && rm -rf "sedutil-1.15.1"; }; else :; fi

If I do just: make I managed to build sedutil-cli. However, by executing ./getresources and ./buildpbaroot inside the images folder my purpuse is to end up building a modified PBA to solve the 4k sector issue.

Other than that I think that the error that davidepic91 and I get is related to where the script tries to download the sedutil source code as shown in the build_output.txt file. It says the following:

-

-2017-08-25 14:12:17-- http://sources.buildroot.net/sedutil-1.15.1.tar.gz Resolving sources.buildroot.net (sources.buildroot.net)... 176.9.16.109 Connecting to sources.buildroot.net (sources.buildroot.net)|176.9.16.109|:80... connected. HTTP request sent, awaiting response... 404 Not Found 2017-08-25 14:12:18 ERROR 404: Not Found.

package/pkg-generic.mk:139: recipe for target '/home/davide/Downloads/sedutil-master/images/scratch/buildroot/64bit/build/sedutil-1.15.1/.stamp_downloaded' failed make[1]: [/home/davide/Downloads/sedutil-master/images/scratch/buildroot/64bit/build/sedutil-1.15.1/.stamp_downloaded] Error 1 Makefile:79: recipe for target '_all' failed make: [_all] Error 2

the script is unable of downloading the source code then it fails.

I have got over this (at least a little) by modifying these two variables in file sedutil/images/buildroot/packages/sedutil/sedutil.mk


SEDUTIL_SOURCE = sedutil-$(SEDUTIL_VERSION).tar.gz
SEDUTIL_SITE = http://www.foosoftware.org/download

by


SEDUTIL_SOURCE = $(SEDUTIL_VERSION).tar.gz
SEDUTIL_SITE = https://github.com/Drive-Trust-Alliance/sedutil/archive

but there is still an error:

sedutil 1.15.1 Extracting gzip -d -c ~/sedutil/images/scratch/buildroot/dl/1.15.1.tar.gz | tar --strip-components=1 -C ~/sedutil/images/scratch/buildroot/32bit/build/sedutil-1.15.1 -xf - sed -i '/^CLEANFILES/d' ~/sedutil/images/scratch/buildroot/32bit/build/sedutil-1.15.1/Makefile.am sed -i '/^BUILT_SOURCES/d' ~/sedutil/images/scratch/buildroot/32bit/build/sedutil-1.15.1/Makefile.am sed -i '/^linux\/Version/,3 d' ~/sedutil/images/scratch/buildroot/32bit/build/sedutil-1.15.1/Makefile.am sed -i '/^BUILT_SOURCES/d' ~/sedutil/images/scratch/buildroot/32bit/build/sedutil-1.15.1/Makefile.in sed: can't read ~/sedutil/images/scratch/buildroot/32bit/build/sedutil-1.15.1/Makefile.in: No such file or directory make[1]: [package/pkg-generic.mk:166: ~/sedutil/images/scratch/buildroot/32bit/build/sedutil-1.15.1/.stamp_extracted] Error 2 make: [Makefile:79: _all] Error 2

  • cd ../..
  • exit 0

I think it is because some of the autotools commands have not been performed, particularly the one that builds the Makefile.in which I think it is automake.

If I perform: aclocal automake --add-missing autoreconf

Then an error related to the lack of a file named Version.h appears. This is the exact log just in case:

sedutil 1.15.1 Building PATH="~/sedutil/images/scratch/buildroot/64bit/host/bin:~/sedutil/images/scratch/buildroot/64bit/host/sbin:~/sedutil/images/scratch/buildroot/64bit/host/usr/bin:~/sedutil/images/scratch/buildroot/64bit/host/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl" /usr/bin/make -j5 -C ~/sedutil/images/scratch/buildroot/64bit/build/sedutil-1.15.1/ /usr/bin/make all-am ~/sedutil/images/scratch/buildroot/64bit/host/usr/bin/x86_64-buildroot-linux-gnu-g++ -DHAVE_CONFIG_H -I. -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -Werror -std=c++11 -I./Common -I./Common/pbkdf2 -I./linux -I./LinuxPBA -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -c -o Common/DtaOptions.o Common/DtaOptions.cpp ~/sedutil/images/scratch/buildroot/64bit/host/usr/bin/x86_64-buildroot-linux-gnu-g++ -DHAVE_CONFIG_H -I. -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -Werror -std=c++11 -I./Common -I./Common/pbkdf2 -I./linux -I./LinuxPBA -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -c -o Common/DtaDiskType.o Common/DtaDiskType.cpp ~/sedutil/images/scratch/buildroot/64bit/host/usr/bin/x86_64-buildroot-linux-gnu-g++ -DHAVE_CONFIG_H -I. -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -Werror -std=c++11 -I./Common -I./Common/pbkdf2 -I./linux -I./LinuxPBA -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -c -o Common/DtaHashPwd.o Common/DtaHashPwd.cpp ~/sedutil/images/scratch/buildroot/64bit/host/usr/bin/x86_64-buildroot-linux-gnu-g++ -DHAVE_CONFIG_H -I. -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -Werror -std=c++11 -I./Common -I./Common/pbkdf2 -I./linux -I./LinuxPBA -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -c -o Common/DtaHexDump.o Common/DtaHexDump.cpp ~/sedutil/images/scratch/buildroot/64bit/host/usr/bin/x86_64-buildroot-linux-gnu-g++ -DHAVE_CONFIG_H -I. -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -Werror -std=c++11 -I./Common -I./Common/pbkdf2 -I./linux -I./LinuxPBA -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -c -o Common/DtaResponse.o Common/DtaResponse.cpp Common/DtaOptions.cpp:23:21: fatal error: Version.h: No such file or directory

include "Version.h"

^ compilation terminated. make[3]: [Makefile:621: Common/DtaOptions.o] Error 1 make[3]: Waiting for unfinished jobs.... make[2]: [Makefile:383: all] Error 2 make[1]: [package/pkg-generic.mk:230: ~/sedutil/images/scratch/buildroot/64bit/build/sedutil-1.15.1/.stamp_built] Error 2 make: *** [Makefile:79: _all] Error 2

And that's the furthest I've got for now.

r0m30 commented 6 years ago

I know that the error manifests when you are trying to download, that's the symptom. This is the root cause........

Edit the buildpbaroot script and change the line that says autoreconf to autoreconf -i Then try using the build scripts again. This should build the package properly. I guess I did my clean build to early.

maenpaa24 commented 6 years ago

Owesome, now it works!! Thank you very much for your support!

r0m30 commented 6 years ago

Marking as a bug, will leave open until a new release incorporates the change

jianzhenqin123 commented 8 months ago

hi every teachers, I encountered a problem running ./buildpbaroot on the ARM platform. Now I don’t know where to start to solve it. I ask for your help. dc62631216a289ef5989d56a483ad7d

flowing is buildpbaroot script image

thank you so much