MeltIT
22Jan/102

Dell Latitude 2100: AHCI en Windows XP 32bit/64bit (ICH7M/ICH8/ICH9/ICH10 y otros chipsets)

Mi Dell Latitude 2100, vino Windows XP Home Edition SP3 con el AHCI funcionando.

Luego de una reinstalación del sistema, queria instalarle los drivers AHCI nuevamente. El tema es que, oficialmente, se necesita Windows Vista/7 para el AHCI. Esto es una limitación del instalador unicamente. En la pagina de drivers de Dell de la Latitude 2100, entre otros drivers, esta el de Intel Matrix Storage desde Dell, este es para 32bits, el .exe es un auto-extraible y se extrae a un directorio. Para XP64, antiguamente descargando desde Intel, el instalador desde linea de comandos con el modificador "-a", permitia extraer los archivos. Como testee actualmente, esto ya no es posible. Tengo guardado de hace mucho tiempo el viejo instalador donde si se podia, y extraje los drivers de 64bit y los subi.

1) Luego de haber instalado el sistema sin AHCI, descargar los drivers correspondientes de arriba y extraerlos en un directorio a gusto.
2) COPIAR el archivo iaStor.sys desde el directorio de donde se extrajo a "C:\Windows\System32\drivers\"
3) Esto no se si es necesario, pero yo le di boton derecho -> instalar, a los dos .inf. Creo que no es necesario.
4) Abrir el bloc de notas y crear un documento nuevo con el siguiente contenido (para la Latitude 2100, más abajo explico para otros chipsets):

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_8086&dev_27c5&cc_0106]
"Service"="iaStor"
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor]
"Type"=dword:00000001
"Start"=dword:00000000
"Group"="SCSI miniport"
"ErrorControl"=dword:00000001
"ImagePath"="system32\\drivers\\iaStor.sys"
"tag"=dword:00000019
"DisplayName"="Intel AHCI Controller"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Parameters]
"queuePriorityEnable"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Enum]
"0"="PCI\\VEN_8086&DEV_27c5&SUBSYS_B0051458&REV_02\\3&13c0b0c5&0&FA"
"Count"=dword:00000001
"NextInstance"=dword:00000001

5) Guardarlo con el nombre que desees, pero de extensión utilizar .reg, ej, ahci.reg (TIP: Hay que poner guardar como "Todos los archivos", sino se guardara como .reg.txt).
6) Doble click al archivo guardado y pedira confirmación para insertar claves en el registro, poner que si.
7) Reiniciar y configurar en SETUP del BIOS el modo AHCI (Consultar manual del mother o investigar). Salvar cambios e iniciar Windows.
8 ) Si el sistema inicia correctamente (sin BSOD, pantalla azul), va a pedir instalar nuevo driver, poner "Seleccionar ubicación manualmente" e indicar el directorio donde se extrayeron previamente los archivos.

Esto funciona efectivamente para la Latitude 2100 como probe. Para otros chipsets tambien funciona, solamente hay que reemplazar "DEV_27c5" del archivo .reg (aparece 2 veces), por lo siguiente:

ICH6R - DEV_2652
ICH6M - DEV_2653
ICH7R - DEV_27C1
ICH7DH - DEV_27C1
ICH7M - DEV_27C5
ICH10D/DO - DEV_3A02
ICH10R - DEV_3A22
ICH9M-E/M - DEV_2929
ICH9R/DO/DH - DEV_2922
ICH8M-E/M - DEV_2829
ICH8R/DH/DO - DEV_2821
ESB2 - DEV_2681

Personalmente, en un Gigabyte EP35-DS3L (ICH9), funciono con "DEV_2923". Aunque hay que agregarle una pequeña modificación al .inf, que es reemplazar la cadena "2821" por "2923" en todas sus apariciones en el IAACHI.inf. Esto unicamente para el gigabyte (u otros ICH9?) porque el .inf no trae información "del 2923", y asumo que no se va a poder hacer el paso de instalar los drivers una vez que funciona.

En caso de que no funcione alguno de los codigos, investigar en internet o probar otro de chipsets similares. Creo que el ICHxR, es para RAID unicamente.

Si obtiene BSOD (pantalla azul), es porque el .reg no es el correcto para el driver.

Más info útil en un thread. Tanto el primer post, como el #15 tienen información util para complementar.

14Jan/102

BadRAM, solución para Windows, omitir/bloquear direcciones de memoria defectuosos.

En Linux, existe una herramienta, BadRAM, que su función es aprovechar una memoria defectuosa. Esta basicamente, bloquea direcciones de memoria defectuosas, asi estas no son utilizadas, y el resto de la memoria RAM se puede aprovechar.

Hace un tiempo, necesite algo similar, pero en Windows. Tenia dos memorias de 1GB cada una. Luego de repetidas BSOD y problemas varios en distintos programas, me puse a chequearlas (con MemTest86+). Descubri que una de las dos fallaba:

MemTest86+ mostrando erroresComo se muestra en la imagen, los MB 88 y 89, estaban funcionando mal. Eran menos de 2MB de 1GB.

Procedi a poner ambas memorias en simultaneo, y probando (cambiandolas de slot), y desactivando el dual channel, los MB defectuosos quedaron en "la posición" 1869MB y 1871MB:

Errores al final de la memoria.

Luego, en el boot.ini de Windows (C:\boot.ini) ó editandolo por msconfig, hay que agregar a la linea del sistema: /MAXMEM=1820 por ejemplo en mi caso:

msconfig maxmem

Y por ultimo, hay que ir al editor del registro (Inicio > Ejecutar > regedit) y buscar en:
"\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management"
La clave "DisablePagingExecutive" y asignarle el valor 1. (La clave es del tipo DWORD, igual deberia ya existir).

Luego de reiniciar, el sistema deberia estar con menos memoria y si se limito correctamente, no deberia fallar. En mi caso, logre aprovechar 800MB, perdiendo unicamente 200MB, un 20% de la memoria, y ganando un 80% más respecto a utilizar 1GB solo.

NOTA: Esto se aplica unicamente al sistema operativo donde se agrego la linea, claramente en el MemTest86+ no tiene efecto, asique no podes utilizar este para probar la memoria. En Windows utilize el BurnItTest, que no tiro ningun error.

5Dec/093

HOW-TO PENDRIVE booteable con GRUB – NTFS + ext2

El proposito de esta guia es explicar el proceso para la creacion de un pendrive booteable.

indice
A. Introduccion
B. Creando particiones con fdisk
C. Dando formato a la particion ext2
D. Instalando GRUB
E. Creando menu.lst para GRUB
F. Instalando MemTest86+
G. Dando formato a la particion NTFS

A)
Test case: SuperTalent PICO C 16GB
Explicacion: Teniendo un pendrive de tal magnitud, el sistema de archivos FAT32 tendia a corromperse. El objetivo era crear un pendrive booteable (que era con SYSLINUX @ FAT32) con NTFS.
Problemas encontrados:
-SYSLINUX no corre en NTFS.
-Windows "lee" una sola particion en unidades USB (no permite unidades particionadas).

Solucion pensada: Particionar para tener un sistema NTFS y la vez tener otra particion booteable.

Datos extras encontrados:
-Windows solo "monta" LA PRIMERA particion de un pendrive.

Requerimientos:
-Pendrive
-Linux (Livecd/virtualpc/nativo) con GRUB
-GParted para linux, aunque se puede hacer sin este, que solo lo vamos a usar para dar formato a la particion.

El pendrive perdera toda la informacion, hacer backup antes.

TODO:
-Agregar instalacion de Ubuntu
-Agregar GParted
-Agregar imagenes

B) Creando particiones con fdisk:
Guia:
1) Conectar pendrive al sistema Linux. (En mi caso use Debian).Conectando pendrive a linux
2) Al conectar en la consola (tty1), aparece algo como lo siguiente:
En mi caso el pendrive es [sdb]. (Nota, se puede encontrar el mismo mensaje usando "dmesg | tail")
3) Ingresamos "fdisk /dev/sdb", donde sdb es el disco que les aparecio. (Tambien lo pueden encontrar en el GParted):Proceso del fdisk
3.1) Ponemos "o" para borrar la tabla de particiones.
3.2) Ponemos "n" para una nueva particion:
3.2.1) "p" para PRIMARIA (primary partition).
3.2.2) "1" para especificar el numero de particion 1. (Esta va a ser la particion NTFS)
3.2.3) First cylinder: (default 1): Le damos enter. (Significa desde el comienzo del disco/ultima particion)
3.2.4) Last cylinder: Aca podemos especificar el numero de cilindro o la cantidad de MB o KB. En mi caso voy a usar cerca de 13GB, pongo: "+13000M"

!!!! Para calcular el tamaño, podemos ir a "fdisk > p" y ahi nos dice: Units = xxxxxx bytes. En mi caso las unidades son de 1MB cada uno. Lo que puedo hacer es, crear primero la particion 2, empezando de TOTAL - 1500 (1.5GB~) y luego la particion 1 con el espacio restante !!!!
!!!! O podemos utilizar el sistema que se utilizo aca, que seria crear la primera particion y usar el resto !!!!

3.3) Repetimos "n" para nueva particion:
3.3.1) "p" para primaria
3.3.2) "2" para el numero de particion 2. (Esta va a ser la particion donde pondremos el boot, en este ejemplo va a ser ext2)
3.3.3) First cylinder: (default xxxx [primer cilindro disponible]): Le damos enter. (Significa desde el comienzo de la ultima particion)
3.3.4) Last cylinder: (default xxxx [ultimo cilindro]): Le damos enter en default asi termina en el fin del disco.

### Hasta ahora creamos una nueva tabla de particiones y creamos las 2 particiones ###

3.4) Procedemos a cambiar los tipos de particiones:[imgR]10[/imgR]
3.4.1) "t" para cambiar el tipo de particion:
3.4.1.1) "1" para cambiar el tipo de particion de la particion 1
3.4.1.2) (con L podemos ver una lista de todos los tipos) en este caso vamos a ponerle el tipo NTFS (HPFS/NTFS), que es el codigo HEX "7"

## La particion 2 no requiere cambio de tipo, ya que por default es 83 (Linux). ##

3.5) Por ultimo, vamos a cambiar el flag de particion de boot:
3.5.1) "a" para cambiar el flag
3.5.1.1) "2" para el numero de particion.

3.6) Verificamos que todo este correcto:
3.6.1) "p" para imprimir tabla de particiones, en mi caso:

3.7) Finalmente, "w" para escribir cambios y salir.

C) ### Dando formato a la particion ext2 ###:
"mkfs.ext2 -v /dev/sdb2"
- Mi unidad era sdb, entonces es sdb2 porque es la particion 2.

D) Instalando GRUB:
[Ahora a montar la particion]:
[Creamos un directorio] mkdir /mnt/usbdisk
[Montamos] mount /dev/sdb2 /mnt/usbdisk

### Copiando archivos "stage" requeridos para grub ###
!! Informacion: Los archivos STAGE estan en el directorio /boot/grub en Debian/Ubuntu, porque estos instalan GRUB, descarga mas abajo !!
[Cambiamos de directorio] cd /boot/grub
[Creamos directorio destino] mkdir /mnt/usbdisk/boot
[Creamos directorio destino] mkdir /mnt/usbdisk/boot/grub
[Copiamos los archivos stage] cp *stage* /mnt/usbdisk/boot/grub

### Instalando grub ###
[Iniciamos el prorgama] grub
@ Definimos la raiz (root): En mi caso era sdb2, en grub la numeracion es (hd0,0),(hd0,1),(hd1,0) [seria hdX,Y; siendo X el numero de disco, Y la particion]: en mi caso: (hd1,1) @
[ Definir raiz: ] root (hd1,1)
@ Obtendremos un mensaje: Filesystem type is ext2fs, partition type 0x83 @
[ Instalamos ] setup (hd1)
@ Va a buscar los archivos stage y dsp va a poner Done @
[ Salimos ] quit

E + F)
### Creando menu.lst ###
!! En este ejemplo vamos a crear un menu.lst con el memtest86+, lo pueden descargar y extraer manualmente clickeando el link abajo !!

[Cambiamos directorio] cd /mnt/usbdisk/boot
[Creamos directorio images para organizar: ] mkdir images
[Cambio direcotrio] cd images/
[Descargando memtest86+ ] wget http://www.memtest.org/download/4.00/memtest86+-4.00.bin.gz
[Extrayendo .gz ] gunzip -d memtest86+-4.00.bin.gz
[Renombramos (opcional) ] mv memtest86+-4.00.bin.gz memtest86
[Vamos al directorio de grub] cd ..
[ ... ] cd grub
[ Creamos un archivo menu.lst ] touch menu.lst
[Procedemos a editar el archivo, en mi caso voy a usar nano] nano menu.lst

-- Contenido del archivo menu.lst --

default 0
timeout 30
color cyan/blue white/blue

#Memtest86
title Memtest86+
root (hd0,1)
kernel /boot/images/memtest86
#/Memtest86

-- Explicacion del archivo:

default: Numero de opcion por defecto
timeout: Tiempo limite para auto-bootear
color: Colores

title: Titulo de la opcion
root: raiz
kernel: imagen a bootear

[Para agregar nuevos, copiar las ultimas 3 lineas]

Ctrl + O = Guardar
Ctrl + X = Salir

### Terminando: ###
[Cambiamos directorio ] cd /
[Desmontamos particion] umount /dev/sdb2
[Expulsamos disco] eject /dev/sdb

G)
### Dando el formato a la particion NTFS ###
En windows:
- Boton derecho a mi pc -> "Administrar"
- Sobre el menu izquierdo: Administrador de discos
- Buscamos la unidad removible, que va a estar particionada en 2:
- Boton derecho a la particion 1 -> Formatear: Ahi seleccionan NTFS, Formato Rapido, Tamaño de asignacion predeterminado -> Formatear.

El pendrive esta listo.
Si falta info, o necesitan algun paso mas detallado, avisen que se agrega. Las imagenes las termino de armar y las agrego.

5Dec/091

Guia como cambiar skins de Windows con UXPatcher

Ventajas de UXPatcher vs otros:
*UXPatcher no agrega nada al sistema, por lo tanto el uso de recursos no cambia.
*El UXPatcher lo unico que hace es reemplazar el .dll de windows de los temas, para que este admita temas que no esten firmados por Microsoft.

Archivos necesarios / Links:
*UXPatcher
*Skins: DeviantART WinStyles
*Skins: DeviantART Visual Styles

Contenido de UXPatcher.rar1) Descargamos y extraemos el archivo UXPatcher (esto se puede realizar con WinRAR).

Ventana del UXPatcher

2) Al abrir el UXPatcher, nos encontramos con la siguiente ventana y presionamos "Patch".

3) Nos aparecera el siguiente mensaje.Windows File Protection mensaje de espera.

NO HAY QUE PRESIONAR "OK" AUN
Debemos esperar a que nos aparezca un cartel de windows que nos que insertemos el CD de Windows, al que le damos cancelar. Puede aparecer denuevo o pedir una confirmacion, confirmamos que no deseamos insertarlo. Luego de esto ya podemos presionar "Ok". Luego reiniciamos el sistema (Obligatorio sino no funcionara).

Instalacion de Themes/Skins.Instalando Skins:
Ya terminamos de instalar el UXPatcher, y luego de reiniciar podremos instalar las skins que deseemos.
4) El directorio de instalacion de skins es "C:\Windows\Resources\Themes\" y aqui debemos crear una carpeta con el nombre del skin y poner los archivos ahi (Que son por lo general un archivo .msstyles y una carpeta Shell). La imagen muestra hacia donde copiamos.
Directorio ejemplo de Instalacion de Skins.Descarga Skin BSRoyal

Ejemplo de .msstyles y aplicado.

5) Ultimo paso, abrimos el .msstyles y nos aparece una ventana. Tenemos un menu desplegable en algunos casos bajo la opcion "Color", que ofrecen otras convinaciones de colores. Luego presionamos "Ok", esperamos unos segundos y ya tenemos nuestra skin nueva.