Construir controlador Linux para un programa

Iniciado por Hason, 4 Marzo 2016, 20:06 PM

0 Miembros y 1 Visitante están viendo este tema.

Hason

Hola, estoy intentando instalar un programa en linux,  pero me dice que entre otras muchas cosas, que tengo que construir un controlador para linux de la siguiente forma:

    o  #> cd source/drivers/linux
    o   #> make

El resultado del primero:

k@y:~$ cd source/drivers/linux
bash: cd: source/drivers/linux: No such file or directory

¿Me falta algo, datos, estoy haciendolo mal??

El make ya no lo hago por que no funciona.


Luego hay que cargar el driver:

o    #> cd source/drivers/linux
o    #> sudo bash run.sh

Pero me estoy mirando dos manuales, difieren un poco, en otro manual me viene con más comandos para hacer esto, supongo que abrá diversas formas de hacerlo , no lo se.
Ha lo de cargar el driver, y finalmente iniciar el programa, no lo he hecho por que no puedo construir el controlador, pero hasta ese punto lo he hecho todo según el manual.
Por favor ayuda.
Si es menester, puedo poner el manual.
Un saludo.


Verse constantemente expuesto al peligro puede generar desprecio hacia él.
El que resiste, gana
Aníbal sabía como conseguir la victoria, pero no cómo utilizarla

https://amaltea.wordpress.com/2008/03/06/proverbios-y-refranes-grecolatinos/

sodark

Has mirado que directorios tienes dentro de source? Si encuentras un archivo makefile ahi, quiza tengas que hacer el make en la ruta que te indica.

Obviamente si pides ayuda es necesario que des toda la informacion posible porque sin saber que programa es, sin saber que tutoriales estas siguiendo , no sabemos nada, mas que hay una carpeta llamada sources que deberia contener una llamada drivers y dentro de esta una llamada linux y que luego tnedrias que hacer el make y no te funciona.

MinusFour

El error es bastante simple, dice que no existe esa carpeta. ¿Si te has bajado este controlador y descomprimido dicho archivo verdad? Te recomiendo que lo descomprimas en una carpeta que no sea el home (pero si lo quieres hacer adelante). Los comandos no te construyen nada así del aire, necesitas el código fuente.

Hason

Hola gracias por responder.
Estoy intentando instalar el programa chipsec en linux, he clonado el repositorio del programa por terminal de la página github.

Mira estoy haciendo lo que  pone en el manual del programa para instalarlo en linux, que me parece más fácil que en windows ( que también estoy mirandolo)
El manual está aquí:
https://github.com/chipsec/chipsec/blob/master/chipsec-manual.pdf

Y luego también lo miraba aquí:
https://translate.googleusercontent.com/translate_c?depth=1&hl=es&prev=search&rurl=translate.google.es&sl=en&u=https://github.com/chipsec/chipsec/wiki/Installing-CHIPSEC-in-Linux&usg=ALkJrhhnBkTQXhdUjHMZl11ctefg_uwlOQ

Pero lo tengo echo todo según el manual para linux hasta que pide clonar el repositorio de github del programa chipset, se me copia en la terminal y el siguiente paso es construir el controlador y lo siguiente que viene.

Si no es mucha molestia y no es muy complicado, podriais aclararme exactamente como hacerlo y poder correr este programa en linux??en principio, según parece, solo me queda construir el controlador, cargarlo e iniciar el programa, creo estoy cerca, luego lo que venga.

El otro enlace va más encaminado a crear un usb live con una distribución linux con el programa chipsec, no me importa hacerlo con lo que sea, pero bueno, ahora estoy  intentando instalarlo en una distribución linux, el caine 64 bits.

Un saludo.

Verse constantemente expuesto al peligro puede generar desprecio hacia él.
El que resiste, gana
Aníbal sabía como conseguir la victoria, pero no cómo utilizarla

https://amaltea.wordpress.com/2008/03/06/proverbios-y-refranes-grecolatinos/

MinusFour

Tuviste que haberte cambiado al repositorio:

Código (bash) [Seleccionar]

cd chipsec


El comando ahí funciona.

Tambien puedes moverte directamente a chipsec/source/drivers/linux.

Hason

Ole , muchas gracias MinusFour, he conseguido hacerlo, pero ahora da error cuando hago make creo, al final, dice algo de no se ha podido cargar el módulo, y luego no me inicia el programa con los comandos del manual, mira:

k@y:~$ cd chipsec
k@y:~/chipsec$ cd source/drivers/linux
k@y:~/chipsec/source/drivers/linux$ make
rm -f *.o *.ko *.mod.c Module.symvers Module.markers modules.order \.*.o.cmd \.*.ko.cmd \.*.o.d
rm -rf \.tmp_versions
rm -rf amd64/cpu.o i386/cpu.o
cd ../../tool/chipsec/helper/linux; make clean
make[1]: Entering directory `/home/k/chipsec/source/tool/chipsec/helper/linux'
rm -f *.o *.so
make[1]: Leaving directory `/home/k/chipsec/source/tool/chipsec/helper/linux'
echo

echo chipsec.o
chipsec.o
echo chipsec_km.o amd64/cpu.o
chipsec_km.o amd64/cpu.o
nasm -f elf64 -o amd64/cpu.o amd64/cpu.asm;
make -C /lib/modules/`uname -r`/build  SUBDIRS=`pwd` modules
make[1]: Entering directory `/usr/src/linux-headers-3.13.0-36-generic'
  CC [M]  /home/k/chipsec/source/drivers/linux/chipsec_km.o
  LD [M]  /home/k/chipsec/source/drivers/linux/chipsec.o
  Building modules, stage 2.
  MODPOST 1 modules
WARNING: could not find /home/k/chipsec/source/drivers/linux/amd64/.cpu.o.cmd for /home/k/chipsec/source/drivers/linux/amd64/cpu.o
  CC      /home/k/chipsec/source/drivers/linux/chipsec.mod.o
  LD [M]  /home/k/chipsec/source/drivers/linux/chipsec.ko
make[1]: Leaving directory `/usr/src/linux-headers-3.13.0-36-generic'
cd ../../tool/chipsec/helper/linux; make
make[1]: Entering directory `/home/k/chipsec/source/tool/chipsec/helper/linux'
cc -I/usr/include/python2.7 -c -fPIC cores.c -o cores.o
cc cores.o -shared -o cores.so
make[1]: Leaving directory `/home/k/chipsec/source/tool/chipsec/helper/linux'
k@y:~/chipsec/source/drivers/linux$ chmod 755 run.sh
k@y:~/chipsec/source/drivers/linux$ sudo ./run.sh
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Chipsec should only be used on test systems!
It should not be installed/deployed on production end-user systems.

There are multiple reasons for that:

1. Chipsec kernel drivers provide direct access to hardware resources to
user-mode applications (for example, access to physical memory). When installed on
production systems this could allow malware to access privileged hardware resources.

2. The driver is distributed as source code. In order to load it on Operating System
which requires kernel drivers to be signed (for example, 64 bit versions of
Microsoft Windows 7 and higher), it is necessary to enable TestSigning (or equivalent)
mode and sign the driver executable with test signature. Enabling TestSigning
(or equivalent) mode turns off an important OS kernel protection and should not be done
on production systems.

3. Due to the nature of access to hardware, if any chipsec module issues incorrect access
to hardware resources, Operating System can hang or panic.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Module: insmod chipsec.ko a1=0xffffffff8106e0b0 a2=0xffffffff81605ad0 a3=0xffffffff81605b40 : OK
Device: /dev/chipsec
k@y:~/chipsec/source/drivers/linux$ sudo make install
./run.sh
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Chipsec should only be used on test systems!
It should not be installed/deployed on production end-user systems.

There are multiple reasons for that:

1. Chipsec kernel drivers provide direct access to hardware resources to
user-mode applications (for example, access to physical memory). When installed on
production systems this could allow malware to access privileged hardware resources.

2. The driver is distributed as source code. In order to load it on Operating System
which requires kernel drivers to be signed (for example, 64 bit versions of
Microsoft Windows 7 and higher), it is necessary to enable TestSigning (or equivalent)
mode and sign the driver executable with test signature. Enabling TestSigning
(or equivalent) mode turns off an important OS kernel protection and should not be done
on production systems.

3. Due to the nature of access to hardware, if any chipsec module issues incorrect access
to hardware resources, Operating System can hang or panic.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Module: insmod chipsec.ko a1=0xffffffff8106e0b0 a2=0xffffffff81605ad0 a3=0xffffffff81605b40 : insmod: ERROR: could not insert module chipsec.ko: File exists
make: *** [install] Error 1




Y bueno, luego al intentar iniciar el programa , no va claro, dice:

k@y:~/chipsec/source/drivers/linux$ cd source/tool sudo python chipsec_main.py
bash: cd: source/tool: No such file or directory
k@y:~/chipsec/source/drivers/linux$ sudo python chipsec_util.py
python: can't open file 'chipsec_util.py': [Errno 2] No such file or directory




Bueno, no se si he hecho algo mal o que pasa, creo que he seguido todo el manual, ojala sea alguna tonteria, volveré a repetir desde 0 otra vez otro día.

A todo esto lo he intentado con sudo make pero tampoco dice:
k@y:~/chipsec/source/drivers/linux$ sudo make
rm -f *.o *.ko *.mod.c Module.symvers Module.markers modules.order \.*.o.cmd \.*.ko.cmd \.*.o.d
rm -rf \.tmp_versions
rm -rf amd64/cpu.o i386/cpu.o
cd ../../tool/chipsec/helper/linux; make clean
make[1]: Entering directory `/home/k/chipsec/source/tool/chipsec/helper/linux'
rm -f *.o *.so
make[1]: Leaving directory `/home/k/chipsec/source/tool/chipsec/helper/linux'
echo

echo chipsec.o
chipsec.o
echo chipsec_km.o amd64/cpu.o
chipsec_km.o amd64/cpu.o
nasm -f elf64 -o amd64/cpu.o amd64/cpu.asm;
make -C /lib/modules/`uname -r`/build  SUBDIRS=`pwd` modules
make[1]: Entering directory `/usr/src/linux-headers-3.13.0-36-generic'
  CC [M]  /home/k/chipsec/source/drivers/linux/chipsec_km.o
  LD [M]  /home/k/chipsec/source/drivers/linux/chipsec.o
  Building modules, stage 2.
  MODPOST 1 modules
WARNING: could not find /home/k/chipsec/source/drivers/linux/amd64/.cpu.o.cmd for /home/k/chipsec/source/drivers/linux/amd64/cpu.o
  CC      /home/k/chipsec/source/drivers/linux/chipsec.mod.o
  LD [M]  /home/k/chipsec/source/drivers/linux/chipsec.ko
make[1]: Leaving directory `/usr/src/linux-headers-3.13.0-36-generic'
cd ../../tool/chipsec/helper/linux; make
make[1]: Entering directory `/home/k/chipsec/source/tool/chipsec/helper/linux'
cc -I/usr/include/python2.7 -c -fPIC cores.c -o cores.o
cc cores.o -shared -o cores.so
make[1]: Leaving directory `/home/k/chipsec/source/tool/chipsec/helper/linux'
k@y:~/chipsec/source/drivers/linux$ cd source/tool sudo python chipsec_main.py
bash: cd: source/tool: No such file or directory
k@y:~/chipsec/source/drivers/linux$



Muchas gracias, un saludo.
Verse constantemente expuesto al peligro puede generar desprecio hacia él.
El que resiste, gana
Aníbal sabía como conseguir la victoria, pero no cómo utilizarla

https://amaltea.wordpress.com/2008/03/06/proverbios-y-refranes-grecolatinos/

MinusFour

A mi parecer el run.sh hace lo mismo que el make install. Posiblemente make install corra el run.sh, no estoy seguro. Al termino de el run.sh, se inyecta el modulo así que ya lo tienes corriendo ahí.

Fija bien lo que has hecho:


k@y:~/chipsec/source/drivers/linux$ cd source/tool sudo python chipsec_main.py


Si te das cuenta, esto tiene 0 sentido. Es más que obvio que te tienes que mover a ~/chipsec/source/tool y de ahí correr el script de python.

Porfavor reflexiona los comandos que estás poniendo en tu consola, estos comandos son de lo más básico... (cambios de directorios y correr comandos con sudo).

Hason

Muchas gracias por la ayuda.
Desconozco muchas cosas básicas, lo siento.

He empezado con cambiarme a cd ~/chipsec/source/tool   he vuelto a cargar el módulo con sudo bash run.sh y luego me he dispuesto a iniciar el programa, que creo que ahora está bien, pero mira que dice:

k@y:~$ cd ~/chipsec/source/tool
k@y:~/chipsec/source/tool$ sudo python chipsec_main.py

****** Chipsec Linux Kernel module is licensed under GPL 2.0

################################################################
##                                                            ##
##  CHIPSEC: Platform Hardware Security Assessment Framework  ##
##                                                            ##
################################################################
[CHIPSEC] Version 1.2.2
[CHIPSEC] Arguments:

****** Chipsec Linux Kernel module is licensed under GPL 2.0

ERROR: Unsupported Platform: VID = 0x1022, DID = 0x1566
ERROR: Platform is not supported (Unsupported Platform: VID = 0x1022, DID = 0x1566).
ERROR: To run anyways please use -i command-line option





Haber si no me equivoco, creo que no funciona por utilizar una distribución linux no compatible o por que?
Si es lo anterior , entiendo que tendré que hacerlo desde una distribución soportada , según el manual, tiene que ser linux 32 bits, o Fedora 64 bits , y ahora mismo estoy con caine 6.0, que es un ubuntu 64 bits y alomejor es por eso que no funciona.

Voy a intentar a hacerlo con un usb bootable y un linux ubuntu 32bits, y si no instalare en el disco duro un ubuntu 32 bits o el fedora 64 bits.

Bueno, aparentemente, creo que el programa arrancaba.

Dice :To run anyways please use -i command-line option ; no entiendo como usar este -i command.

Muchas gracias, he avanzado mucho con esto gracias a ti MinusFour, haber si lo consigo del todo, y bueno después ir entendiendo algo el programa poco a poco.

Un saludo.
Verse constantemente expuesto al peligro puede generar desprecio hacia él.
El que resiste, gana
Aníbal sabía como conseguir la victoria, pero no cómo utilizarla

https://amaltea.wordpress.com/2008/03/06/proverbios-y-refranes-grecolatinos/

MinusFour

Si lees los problemas que tiene el proyecto:

https://github.com/chipsec/chipsec/issues/15

Dice que la lista de dispositivos no está actualizada. La ID de tu dispositivo no figura en su lista (Creo que VID es Vendor ID y DID es Device ID).

No tienen soporte para tu dispositivo básicamente. Dice ahí que lo puedes correr con -i, pero si no lo soporta quien sabe que hará:

Código (bash) [Seleccionar]

sudo python chipsec_main.py -i

Hason

Bueno, entonces no puedo iniciarlo, sale todo de errores en rojo.
Puedo probar con otro sistema operativo, o con otro pc, o con un usb live.
No se si modificando el archivo de configuración podría iniciarse.

Estoy tratando de instalar fedora y hacerlo, y bueno supongo que con ubuntu 32 bits última versión también funcionaria o ni idea, ya lo sabré.
¿Alguna sugerencia?
Muchas gracias.
Un saludo.



El código error al correr el programa:


k@y:~/chipsec/source/tool$     sudo python chipsec_main.py -i
[*] Ignoring unsupported platform warning and continue execution

****** Chipsec Linux Kernel module is licensed under GPL 2.0

ERROR: Unable to open chipsec device. Did you run as root/sudo and load the driver?
[Errno 2] No such file or directory: '/dev/chipsec' chipsec.helper.linux.helper
[-] Traceback (most recent call last):
  File "/home/k/chipsec/source/tool/chipsec/helper/oshelper.py", line 136, in importModule
    result = getattr( mHelper, 'get_helper' )(  )
  File "/home/k/chipsec/source/tool/chipsec/helper/linux/helper.py", line 765, in get_helper
    return LinuxHelper()
  File "/home/k/chipsec/source/tool/chipsec/helper/linux/helper.py", line 86, in __init__
    self.init()
  File "/home/k/chipsec/source/tool/chipsec/helper/linux/helper.py", line 129, in init
    raise OsHelperError("Unable to open chipsec device. Did you run as root/sudo and load the driver?\n %s"%str(e),e.errno)
OsHelperError: Unable to open chipsec device. Did you run as root/sudo and load the driver?
[Errno 2] No such file or directory: '/dev/chipsec'

ERROR: Could not load helper for 'Linux' environment (unsupported environment?)
Verse constantemente expuesto al peligro puede generar desprecio hacia él.
El que resiste, gana
Aníbal sabía como conseguir la victoria, pero no cómo utilizarla

https://amaltea.wordpress.com/2008/03/06/proverbios-y-refranes-grecolatinos/