nachos3.4 problemas de instalación encontró

win10 precedencia Vagrant + VirtualBox construido medio ambiente, debido a que el uso de espejo de desarrollo integrado nachos, problemas de instalación, así que básicamente externas encontradas.

Había tratado de uso WSL (ubuntu-64 bits), VMware (ubuntu-32 bits), hemos experimentado problemas considerables, y pasó mucho tiempo no se obtienen los resultados tomaron menos de 1/10 de tiempo para llegar versión vagabundo (la gran mayoría se utilizan también en la descarga), por lo que recomiendo encarecidamente versión vagabundo.

 

A, versión Vagrant (video tutorial: ligeras diferencias //www.bilibili.com/video/av2929294/ pasos descritos en este documento: https)

1. Descargar el código fuente y modificar el desarrollo de una buena nachos Espejo: http: //pan.baidu.com/s/1jGpO1me (contraseña: 8oz1)

2. Instalar vagrant1.7.3, versión entre virtualbox4.3, virtualbox vagabundo y se corresponden entre sí, no liberan cualquiera de ellos montado excesivamente alta o baja.

La mejor virtualbox4.3.12 instalación, si está instalado a la versión 4.3.40, puede causar problemas de compatibilidad vagabundo hasta el fracaso:

==> defecto: Arranque VM ...
Se produjo un error durante la ejecución de `VBoxManage`, una CLI utilizado por Vagrant para el control de VirtualBox. El comando y stderr se muestra a continuación.
Comando: [ "startvm", "********", "--type", "sin cabeza"]
Stderr: VBoxManage.exe: Error: La máquina virtual 'devdir_default_1584360377659_12426' ha terminado de forma inesperada durante el arranque con código de salida 1 (0x1). Más detalles pueden estar disponibles en '... \ VBoxHardening.log'

Virtualbox intentó abrir palabras directas mostrará:

La máquina virtual 'Maestro' ha terminado de forma inesperada durante el arranque con código de salida 1 (0x1). Más detalles pueden estar disponibles en 'C: \ Users \ *** \ VirtualBox VM \ devdir_default_1584360377659_12426 \ Logs \ VBoxHardening.log'.
    返回代码: E_FAIL (0x80004005)
    组件: MachineWrap
    界面: IMachine {f30138d4-e5ea-4b3a-8858- a059de4c93fd}

3. Instalar Git, conservador instalar Git-2.5.2.2-64 bits.

Una vez instalado, la interfaz de "Ajuste del entorno PATH" la parte inferior de un cheque:

Uso Git y herramientas opcionales Unix desde la línea de comandos de Windows

La razón por la que el video no comprobó primero, segundo, porque era la primera opción, después de la segunda, sólo si se agrega la variable de entorno $ PATH "C: \ Archivos de programa \ Git \ usr \ bin", encontrar ssh vagabundo sigue sin funcionar correctamente, me impulsa para instalar Git, pero incluso los "ls" este comando no se puede utilizar (lo tanto se sentía un profundo ordenadores personales de malicioso). De hecho, esto es equivalente a más de agregar una "C: \ Archivos de programa \ Git \ mingw64 \ bin".

4. Modificar /QLWH/devdir/.vagrant/machines/default/virtualbox/creator_uid, 0501 se cambió de 501 MAC predeterminada, 0 es las ventanas por defecto.

5. Se ha ejecutado en devdir comando de directorio vagabundo y errante ssh, después de entrado con éxito en el entorno Linux, y muestra el número de versión y otra información relevante.

6. La implementación exitosa de estas instrucciones (que también puede que tenga que instalar gcc, g ++, make)

  1. cd /vagrant/nachos/nachos-3.4/code
  2. hacer
  3. hilos cd
  4. ./nachos

 

 

------------------------ línea divisoria ------------------------

El siguiente es el contenido no estructurado, lleno de pozos, a mitad de camino de choque varias veces:

Instalación gcc-3.4 (i386) La falta de dependencia: binutils (> = 2.16.1-2ubuntu3)

binutils bajas versión de instalación, tales como: binutils_2.18-0ubuntu3_i386.deb, error: libc6-dev: amd64 (2.23-0ubuntu11) rompe binutils (<< 2.20.1-1) y está instalado.

A binutils superiores versión de instalación, tales como: binutils_2.25.1-6ubuntu2_i386.deb, error: binutils: i386 depende de zlib1g (> = 1: 1.2.0)

zlib1g instalación: i386

libz.so.1 carga dinámica aparecen ELFCLASS32 Issue # 64 sistemas de 32 bits no pueden usar la biblioteca

programa de ejecución de la consulta con el comando ldd

zlib1g de eliminación

La falta de una librería dinámica libz.so.1

Solución de red 1: usar apt-get comando # dpkg En este momento, sin embargo, y son comando apt-get, etc. El incumplimiento

Red Solución 2: Instalar la biblioteca compartida

(1) / lib o bajo / ruta de directorio usr / lib añadido en /etc/ld.so.conf

(2) No / lib o directorio / usr / lib, exportar un LD_LIBRARY_PATH variable global

 

zlib-1.2.3 está en beta ninguna biblioteca libz.so.1

Ver biblioteca de vínculos dinámicos, librerías dinámicas son generalmente aquí

ls / usr / lib

ls / usr / local / lib locales

 

Los resultados no sirven a la derecha propósito? ? ? resultados de Baidu son fieles a la basura, Google libz.so.1 un poco, es las primeras soluciones positivas:

1. Acceso packages.ubuntu.com (este sitio Haoshi más de una pared de espejos)

2. Buscar el contenido del paquete (contenidos): libz.so.1

3. Descargar zlib1g_1.2.8.dfsg-1ubuntu3.deb

4. No se puede usar dpkg o apt-get install, extracto de archivos deb directamente por el software de terceros (tales como una buena presión), obtener data.tar.xz, siguen descomprimir

5. Copia libz.so.1.2.11 comando cp por el usr / lib /usr/local/lib(libz.so.1 o bibliotecas de enlace dinámico, libz.so.1.2.11 es una biblioteca / dinámica)

6. $ ls / usr / local / lib pueda ver el libz.so.1.2.11 verde, seguido por $ sudo ldconfig, a continuación, $ ls / usr / local / lib local, se puede ver el libz.so. cian recién generado 1. En este punto se hace?

 

WTM, zlib1g: amd64 para binutils: i386 no funciona, no puede instalar las binutils: i386, gcc-3.4 no se instalará, zlib1g: i386 problema, informó ELFCLASS32

 

2011 artículo CSDN, el sistema operativo de 32 bits predeterminada, los sistemas operativos de 64 bits no pueden instalar gcc-3.4: i386

 

emm, cuando la última versión del interruptor también se encontró con un pequeño problema, que viene con gcc-5.6 Modificación de error de ruta de prioridad, a continuación, sólo ajustar la prioridad gcc-3.6 100

 

nb, finalmente se rindió, instalado VMware, especialmente recogió una versión de bajo de 32 bits de Ubuntu (12.04), los resultados de esta edición debido a un problema en la espalda y con este fin han tratado

Instalación de Ubuntu instalado una noche no está instalado, entonces puede saltarse a conocer el paquete de idioma

ubuntu12.04 viene con la versión 4.6 es gcc, Vale ha experimentado previamente una tasa de 3.4 instalado, no está fuera de cualquier problema

Trate de hacer un poco, un puñado de tal archivo o directorio aparece, por ejemplo:

bits / types.h: No existe el fichero o directorio

bits / stdio_lim.h: No existe el fichero o directorio

bits / sys_errlist.h: No existe el fichero o directorio

GNU / stubs.h: No existe el fichero o directorio

GNU / talones-32.h: No existe el fichero o directorio

Confirmar las estadísticas, dijo que la necesidad de apt-get install gcc-multilib instalar la biblioteca compartida de 32 bits

Pero el problema está por encima de comando instalará una gran cantidad de paquete de 64 bits, que dudé, sistema de 32 bits también se puede instalar un paquete de 64 bits?

Y la búsqueda, parece necesitar ser instalado directamente paquete de 32 bits

Véase el artículo: https: //blog.csdn.net/yanbixing123/article/details/52300900

ia32-libs, o lib32z1, lib32ncurses5, lib32bz2-1.0, pero cuatro puntas Aunque los paquetes se citan, pero se ha abandonado

https://www.cnblogs.com/jikexianfeng/articles/5654571.html dos métodos mencionados en este artículo,

Una de ellas es instalar g ++ - multilib, el segundo es añadir la opción Agregar Fuente sudo - APT - repositorio ppa : Ubuntu - la dirección X - SWAT / los ejes X - las actualizaciones , yo lo probé segundo método parece fallar o estar vinculados a trepar por la pared

Cuando se trata de fuentes, también un pozo, instalación de diversos paquetes antes de velocidad no se siente halagado por ser forzado a diversas fuentes domésticas, y no UESTC 163, y finalmente optó por Ali nube.

Modificar las operaciones son (requiere privilegios de root):

gedit /etc/apt/sources.list

A continuación, todo el contenido reemplazados con una fuente de Ali nube.

Los resultados no consiguen simplemente siguieron adelante, algunos dicen que desea instalar libc6-dev, pero la instalación todavía no resuelve el problema hasta que pueda ver el artículo en Inglés:

http://www.it1352.com/783760.html

Cuestión se encontró con el mismo problema conmigo, que era Ubuntu11.04 nachos de instalación, se reunió GNU / stubs.h: No existe el fichero o directorio

mirada superficial, el En Ubuntu Se llama libc6-dev-i386 - do sudo apt-get install libc6-dev-i386 Consulte a continuación las instrucciones adicionales para Ubuntu 12.04..

La última parte del principio y no me importaba, dpkg -l libc6-dev descubrimiento ha sido instalado, pero yo era el comando es libc6-dev apt-get install libc6-dev, en lugar de apt-get install libc6-dev : i386. Me hace no puede dejar de juego en particular, si y gcc-multilib instalar la misma versión en AMD64, pero luego pensé, ahora es el sistema de 32 bits no se puede ejecutar el paquete de 64 bits se instala automáticamente Como siempre darse en problemas ahora.

El problema no se resuelve alrededor de un largo tiempo, pero esta vez para ver otra pregunta interesante: https://stackoverflow.com/questions/12591629/gcc-cannot-find-bits-predefs-h-on-i686

Este es también el nombre del interlocutor conocido bits / tipos: No existe el archivo o directorio, que pasaron de 64 bits con el medio ambiente ubuntu12.04 de 32 bits, después de una revisión encontró que todavía tienen que instalar gcc multilib, ya que los sistemas Debian usan biblioteca independiente mutiarch, pero no podía entender por qué él está utilizando i686 (32 bits), pero hay que instalar las bibliotecas de 64 bits.

Los siguientes encuestados sugirieron que todavía instalar gcc multilib, porque pensaba instalar el sistema de 32 bits no va a cambiar la arquitectura de la computadora, la computadora del usuario siempre será un equipo de 64 bits. Instalar la versión de 64 bits de Ubuntu sólo debe proporcionar un mejor rendimiento multinúcleo. Dado que el equipo sigue siendo equipo de 64 bits, es posible que tenga un compilador de C, el compilador se compilará en equipos de 64 bits.

(Ah, eso es bueno, entonces la máquina virtual y esto es en gran medida el mismo derecho? ...... tengo la intención de tomar un momento para resumir el futuro)

Los siguientes comentarios son muy interesantes:

Los principales cambios de 32 bits a 64 bits del sistema es la cantidad de memoria se puede utilizar en lugar de multi-procesamiento. 32 El sistema soporta hasta 2 GB de memoria, y sistemas de 64 bits puede soportar hasta 16 exabytes (aunque técnicamente, ordenadores Intel y AMD de 64 bits solamente direccionamiento 48, máximo 256 TB, que es todavía suficiente. En la actualidad) . --Dan Albert

@DanAlbert: sistema de 32 bits VM soportes PAGE_OFFSET valores del modelo de macro definidos en el núcleo se basa en (el núcleo puede ser configurado solamente cuando construido (típicamente por CONFIG_VM_SPLIT)). Linux por defecto típico de configuración en sistemas de 32 bits es "3: 1" split máquina virtual, lo que significa modo de usuario 3 GB de memoria virtual y 1 GB modo de núcleo VM. Puede ser 2: 2, puede ser de 1: 3. --Kaiwan

También se mencionó 32,64bit Esto no es un problema.

Temporalmente para su posterior discusión, en cualquier caso, trato de instalar el gcc-g ++ multilib y - después de multilib, que realmente resuelve la mitad del problema .......

Sólo un tipo de tal archivo o directorio, una en GNU / talones-32.h.

Otro artículo (https://blog.csdn.net/meilinghu/article/details/52855046) me ha inspirado: ya sugirió que el archivo falta, entonces por qué no mirar en el directorio?

Efectivamente, no he encontrado talones-32.h en / usr / include / GNU, pero no encontró los talones-32.h en / usr / include / i386-linux-gnu / GNU

Me di bruto antes de que se conviertan a barrer el artículo de Inglés, señalando ubuntu12.04 requieren operaciones adicionales:

exportación LIBRARY_PATH = / usr / lib / $ (gcc--print Multiarch)

C_INCLUDE_PATH exportación = / usr / include / $ (gcc--print Multiarch)

CPLUS_INCLUDE_PATH exportación = / usr / include / $ (gcc--print Multiarch)

No entiendo aquí gcc--print Multiarch lo que significa, de acuerdo con la respuesta se describe en "un problema conocido que poner archivos en una ubicación no estándar", básicamente decidieron que mi problema - No coloque el archivo en la norma ubicación.

El enlace anterior es los mensajes de reimpresión, esta frase parece tener un contenido hipervínculo había sido reemplazado, sino también ineficaz. A continuación, se tomaron el tiempo para encontrar el "problema conocido": https://gcc.gnu.org/ml/gcc/2012-02/msg00314.html

El funcionamiento real debe ser:

exportación LIBRARY_PATH = / usr / lib / i386-linux-gnu /

C_INCLUDE_PATH exportación = / usr / include / i386-linux-gnu

CPLUS_INCLUDE_PATH exportación = / usr / include / i386-linux-gnu

ok, problema resuelto, el siguiente stdarg.h procesamiento, facilidad

A continuación, repita sysdep.cc funciones y problemas de conversión forzada, comentarios, toda la función definida contradicciones, y añadir cabeceras, lo que sugiere void exit (int exitCode) no se ha declarado, y en 2011 este artículo no es lo mismo.

Ah, los dos métodos para saltar temporalmente este problema, ① # include <unistd.h> Hay _exit función void (int), modifique el EXIT () pide a la salida (int) es _exit (int); ② complemento declarado void exit (int exitCode). No entendía el artículo Para comentar void exit (int exitCode) está lleno, ya que no tenía ninguna función.

No sé si un uso particular de ① bien, llegar al final encontró el sistema Ubuntu, recuerda el resultado de Baidu es "lo más pronto posible la recarga," Oh

Hay dos moldes de error, ReadFromSocket y SendToSocket, otros son algunos de aviso, recuerdo un formato '% x' espera tipo 'unsigned int', pero el argumento 2 tiene tipo 'int *', es demasiado, Baidu sino que también está luchando para una determinación.

Entonces switch.s, esto me impulsa #endif XXXX está mal, debemos usar #endif, no sé especie de versión de gcc, a continuación, modificar HOST_i386 bloque _Threadroot y _SWITCH a Threadroot y el interruptor

Esto, pensé que finalmente ha terminado, los resultados cerró la actualización de advertencia y error, todo el asunto no se ve ......

Me hizo algunas personas dicen que debe ser gcc versión del problema, buena

Desde entonces han intentado 14.04, repita los pasos anteriores, sin gcc3.4 instalación, con la versión predeterminada, después de hacer switch.s tengo algunos consejos .o error de archivo, el error es Threadroot y el interruptor indefinidos, círculo totalmente ignorante, debido a que estos no queden resueltas en switch.s en ella? El bien no ha resuelto por completo, me Renzai

Dui, VMware Hay algunos problemas menores, además de algunos quieren cambiar la fuente, y apt-get remove vim-common, apt-get install vim.

Para utilizar las carpetas compartidas y copiar y pegar conveniente, también es necesario instalar las herramientas de VMware, obviamente, hay varios instalación, pero todavía no se puede copiar y pegar entre el anfitrión y las máquinas virtuales después de las herramientas de VMware exitosas, y gigantes lentos herramientas de VMware se carga de CD, de alguna manera !

El método de montaje de paquete interdependientes: sudo dpkg -i a.deb b.deb c.deb

Supongo que te gusta

Origin www.cnblogs.com/victorique-de-blois/p/12405656.html
Recomendado
Clasificación