Outils pour utilisateurs

Outils du site


nslu2:augmenter_la_taille_memoire

Augmenter la taille mémoire


pourquoi faire?

Le NSLU2 de base contient 32Mo, ce qui est suffisant pour son utilisation initiale: serveur de fichier autonome avec le logiciel fourni par Linksys

La particularité de cette machine est que le firmware constructeur est basée sur un noyau linux. IL est possible de modifier ce noyau, voire même de le remplacer complètement par un Linux “standard”

Dans le cas ou vous voudriez en faire par exemple un serveur sous Debian, cette mémoire devient trop étroite, une mémoire plus grande éviterait à la machine de“swapper” et de perdre en performances

Attention : Il faut également que le bootloader subisse quelques modifications pour que la mémoire physiquement modifiée soit prise en compte


comment faire?

ATTENTION :

CETTE MANIPULATION EST TRES DELICATE, ELLE NE PEUT ETRE REALISEE QUE PAR DES PERSONNES AYANT L'EXPERIENCE ET LE MATERIEL NECESSAIRE DE SOUDAGE / DESSOUDAGE

L'AUTEUR NE POURRA ETRE TENU RESPONSABLE EN CAS DE DEGRADATION


étape 1 : trouver des chips

D'abord il faut trouver des mémoires compatibles avec la machine.

Dans ce cas précis il faut des mémoires en 16bits, type PC133 en boîtier TSOP 54 broches

Ces mémoires sont issues de barrettes pour PC, achetées par correspondance. Attention, afin d'être sur d'avoir des chips 16 bits, bien prendre des barrettes simple face avec seulement 4 puces.

Dans mon cas, je suis tombé sur une barrette de 256Mo PC133, d'ou j'ai extrait 4 chips 48LC32M16A2

Photo de la barette de 256Mo 4 chips
ASCII

étape 2: démonter la barrette pour récupérer les chips

le dessoudage s'effectue comme suit :

Dessoudage
ASCII

on dispose en dessous un tissus destiné à recueillir les chips sans tordre les pattes on commence par chauffer l'arrière de la barrette on peut la secouer doucement, ou bien tapoter avec un tournevis les chips tombent seuls sur le chiffon, on peut alors les récupérer facilement


étape 3: ouvrir le NSLU2

presser sur les 2 cotés de la face avant pour libérer les crans de chaque coté (en haut, milieu et en bas) puis tirer.

Ouverture du boitier
ASCII

extraire délicatement la carte

La carte extraite avant modifications
ASCII

étape 4: démonter les mémoires en place

d'abord, il faut faire un peu de place pour accéder: retirer le porte batterie

Démontage
ASCII

on retirera ensuite C29 et le buzzer qui gênent

et on procèdera au dessoudage

NOTA : J'AI PU CONSTATER l'EXTREME FRAGILITE DU CIRCUIT IMPRIME, JE RECOMMANDE DE COUPER UNE A UNE LES PATTES DES CI POUR FACILITER LE DESSOUDAGE

Carte sans les puces mémoire d'origine
ASCII

étape 5: souder les barrettes

là encore, on procédera délicatement pour ne pas abimer le circuit imprimé


étape 6: et voilà

voila le résultat !

cat /proc/meminfo

MemTotal:       127444 kB
MemFree:         11156 kB
Buffers:         12092 kB
Cached:          66512 kB
SwapCached:        120 kB
Active:          66196 kB
Inactive:        31316 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:       127444 kB
LowFree:         11156 kB
SwapTotal:      296952 kB
SwapFree:       296252 kB
Dirty:             132 kB
Writeback:           0 kB
AnonPages:       18808 kB
Mapped:          11872 kB
Slab:            14724 kB
PageTables:        860 kB
NFS_Unstable:        0 kB
Bounce:              0 kB
CommitLimit:    360672 kB
Committed_AS:    49316 kB
VmallocTotal:   892928 kB
VmallocUsed:     16984 kB
VmallocChunk:   868348 kB
capture d'écran de PHPSYSINFO sous GNOME
ecran.jpg

Et voici le boot obtenu (récupéré en ttyS0)

d'abord Redboot ensuite Apex 1.5.11 recompilé pour l'occasion ! (à noter que pour des raisons pratiques, apex a été compilé sur la machine elle même!) L'utilisation d'apex compilé avec les commandes :

sdram-init => effectue un test mémoire et configure le MMU correctement pour la mémoire détectée
memscan -u 0+256m => effectue un test de la mémoire disponible et reporte les données lors du boot de Linux

et ensuite le lancement de linux Debian

                                                                                
RedBoot(tm) bootstrap and debug environment [ROMRAM]                            
Red Hat certified release, version 1.92 - built 15:16:07, Feb  3 2004           
                                                                                
Platform: IXDP425 Development Platform (XScale)                                 
Copyright (C) 2000, 2001, 2002, Red Hat, Inc.                                   
                                                                                
RAM: 0x00000000-0x02000000, 0x000723a0-0x01ff3000 available                     
FLASH: 0x50000000 - 0x50800000, 64 blocks of 0x00020000 bytes each.             
== Executing boot script in 2.000 seconds - enter ^C to abort                   
RedBoot> boot;exec 0x01d00000                                                   
have eRcOmM                                                                     
copy kernel code from flash to RAM                                              
copy ramdisk file from flash to RAM                                             
run kernel                                                                      
Using base address 0x01d00000 and length 0x0000bc00                             
Ans                                                                             
                                                                                
APEX Boot Loader 1.5.11 -- Copyright (c) 2004,2005,2006,2007 Marc Singer        
  compiled for Debian NSLU2                                                     
                                                                                
    APEX comes with ABSOLUTELY NO WARRANTY.  It is free software and            
    you are welcome to redistribute it under certain circumstances.             
    For details, refer to the file COPYING in the program source.               
                                                                                
  apex => mem:0x00200000+0xbc00   (48128 bytes)                                 
  env  => nor:0x7c000+15k         (no-write)                                    
                                                                                
    Use the command 'help help' to get started.                                 
                                                                                
# sdram-init                                                                    
 1 bank of 2 512Mib chips                                                       
# memscan -u 0+256m                                                             
 0x0 0x08000000 (128 MiB)                                                       
# copy -s $kernelsrc $bootaddr                                                  
# copy -s fis://kernel 0x00008000                                               
1441760 bytes transferred                                                       
# copy -s $ramdisksrc $ramdiskaddr                                              
# copy -s fis://ramdisk 0x01000000                                              
6291440 bytes transferred                                                       
# wait 10 Type ^C key to cancel autoboot.                                       
Type ^C key to cancel autoboot.                                                 
# boot                                                                          
ATAG_HEADER                                                                     
ATAG_MEM: start 0x00000000  size 0x08000000                                     
ATAG_CMDLINE: (55 bytes) 'console=ttyS0,115200 rtc-x1205.probe=0,0x6f noirqdebu'
ATAG_INITRD2: start 0x01000000  size 0x00400000                                 
ATAG_END                                                                        
Booting kernel at 0x00008000...                                                 
Uncompressing Linux.............................................................
Linux version 2.6.18-5-ixp4xx (Debian 2.6.18.dfsg.1-13etch2) (dannf@debian.org)7
CPU: XScale-IXP42x Family [690541f1] revision 1 (ARMv5TE), cr=0000397f          
Machine: Linksys NSLU2                                                          
Memory policy: ECC disabled, Data cache writeback                               
CPU0: D VIVT undefined 5 cache                                                  
CPU0: I cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets            
CPU0: D cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets            
Built 1 zonelists.  Total pages: 32768                                          
Kernel command line: console=ttyS0,115200 rtc-x1205.probe=0,0x6f noirqdebug     
IRQ lockup detection disabled                                                   
PID hash table entries: 1024 (order: 10, 4096 bytes)                            
Console: colour dummy device 80x30                                              
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)                  
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)                    
Memory: 128MB = 128MB total                                                     
Memory: 123172KB available (1948K code, 496K data, 92K init)                    
Security Framework v1.0.0 initialized                                           
SELinux:  Disabled at boot.                                                     
Capability LSM initialized                                                      
Mount-cache hash table entries: 512                                             
CPU: Testing write buffer coherency: ok                                         
checking if image is initramfs... it is                                         
Freeing initrd memory: 4096K                                                    
NET: Registered protocol family 16                                              
IXP4xx: Using 16MiB expansion bus window size                                   
PCI: IXP4xx is host                                                             
PCI: IXP4xx Using direct access for memory space                                
PCI: bus0: Fast back to back transfers disabled                                 
dmabounce: registered device 0000:00:01.0 on pci bus                            
dmabounce: registered device 0000:00:01.1 on pci bus                            
dmabounce: registered device 0000:00:01.2 on pci bus                            
NET: Registered protocol family 2                                               
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)                  
TCP established hash table entries: 4096 (order: 2, 16384 bytes)                
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)                        
TCP: Hash tables configured (established 4096 bind 2048)                        
TCP reno registered                                                             
NetWinder Floating Point Emulator V0.97 (double precision)                      
audit: initializing netlink socket (disabled)                                   
audit(4.130:1): initialized                                                     
VFS: Disk quotas dquot_6.5.1                                                    
Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)                      
JFFS2 version 2.2. (NAND) (C) 2001-2006 Red Hat, Inc.                           
Initializing Cryptographic API                                                  
io scheduler noop registered                                                    
io scheduler anticipatory registered                                            
io scheduler deadline registered                                                
io scheduler cfq registered (default)                                           
IXP4xx Watchdog Timer: heartbeat 60 sec                                         
Serial: 8250/16550 driver $Revision: 1.90 $ 2 ports, IRQ sharing disabled       
serial8250.0: ttyS0 at MMIO 0xc8000000 (irq = 15) is a XScale                   
serial8250.0: ttyS1 at MMIO 0xc8001000 (irq = 13) is a XScale                   
RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize           
IXP4XX-Flash.0: Found 1 x16 devices at 0x0 in 16-bit bank                       
 Intel/Sharp Extended Query Table at 0x0031                                     
Using buffer write method                                                       
cfi_cmdset_0001: Erase suspend on write enabled                                 
Searching for RedBoot partition table in IXP4XX-Flash.0 at offset 0x7e0000      
6 RedBoot partitions found on MTD device IXP4XX-Flash.0                         
Creating 6 MTD partitions on "IXP4XX-Flash.0":                                  
0x00000000-0x00040000 : "RedBoot"                                               
NSLU2 MAC: 00:18:39:a2:20:2a                                                    
0x00040000-0x00060000 : "SysConf"                                               
0x00060000-0x00080000 : "Loader"                                                
0x00080000-0x001e0000 : "Kernel"                                                
0x001e0000-0x007e0000 : "Ramdisk"                                               
0x007e0000-0x00800000 : "FIS directory"                                         
mice: PS/2 mouse device common for all mice                                     
i2c /dev entries driver                                                         
x1205 0-006f: chip found, driver version 1.0.7                                  
x1205 0-006f: rtc core: registered x1205 as rtc0                                
Registered led device: ready                                                    
Registered led device: status                                                   
Registered led device: disk-1                                                   
Registered led device: disk-2                                                   
NET: Registered protocol family 26                                              
TCP bic registered                                                              
NET: Registered protocol family 1                                               
NET: Registered protocol family 17                                              
x1205 0-006f: setting the system clock to 2007-10-27 22:59:13 (1193525953)      
Time: OSTS clocksource has been installed.                                      
Freeing init memory: 92K                                                        
Loading, please wait...                                                         
Begin: Loading essential drivers... ...                                         
Done.                                                                           
Begin: Running /scripts/init-premount ...                                       
usbcore: registered new driver usbfs                                            
usbcore: registered new driver hub                                              
PCI: enabling device 0000:00:01.0 (0140 -> 0142)                                
ohci_hcd 0000:00:01.0: OHCI Host Controller                                     
ohci_hcd 0000:00:01.0: new USB bus registered, assigned bus number 1            
ohci_hcd 0000:00:01.0: irq 28, io mem 0x48000000                                
usb usb1: configuration #1 chosen from 1 choice                                 
hub 1-0:1.0: USB hub found                                                      
hub 1-0:1.0: 3 ports detected                                                   
PCI: enabling device 0000:00:01.1 (0140 -> 0142)                                
ohci_hcd 0000:00:01.1: OHCI Host Controller                                     
ohci_hcd 0000:00:01.1: new USB bus registered, assigned bus number 2            
ohci_hcd 0000:00:01.1: irq 27, io mem 0x48001000                                
usb usb2: configuration #1 chosen from 1 choice                                 
hub 2-0:1.0: USB hub found                                                      
hub 2-0:1.0: 2 ports detected                                                   
PCI: enabling device 0000:00:01.2 (0140 -> 0142)                                
ehci_hcd 0000:00:01.2: EHCI Host Controller                                     
ehci_hcd 0000:00:01.2: new USB bus registered, assigned bus number 3            
ehci_hcd 0000:00:01.2: irq 26, io mem 0x48002000                                
ehci_hcd 0000:00:01.2: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004           
usb usb3: configuration #1 chosen from 1 choice                                 
hub 3-0:1.0: USB hub found                                                      
hub 3-0:1.0: 5 ports detected                                                   
usb 1-1: new full speed USB device using ohci_hcd and address 2                 
Done.                                                                           
usb 3-1: new high speed USB device using ehci_hcd and address 2                 
Begin: Mounting root file system... ...                                         
Begin: Running /scripts/local-top ...                                           
Loading Intel IXP400 ethernet driver                                            
FATAL: Module ixp400_eth not found.                                             
Failed to load Intel IXP400 ethernet driver                                     
Done.                                                                           
Begin: Waiting for root file system... ...                                      
usb 3-1: configuration #1 chosen from 1 choice                                  
SCSI subsystem initialized                                                      
Initializing USB Mass Storage driver...                                         
scsi0 : SCSI emulation for USB Mass Storage devices                             
usbcore: registered new driver usb-storage                                      
USB Mass Storage support registered.                                            
  Vendor: Generic   Model: USB Disk          Rev: 9.02                          
  Type:   Direct-Access                      ANSI SCSI revision: 02             
SCSI device sda: 39070080 512-byte hdwr sectors (20004 MB)                      
sda: Write Protect is off                                                       
sda: assuming drive cache: write through                                        
SCSI device sda: 39070080 512-byte hdwr sectors (20004 MB)                      
sda: Write Protect is off                                                       
sda: assuming drive cache: write through                                        
 sda: sda1 sda2                                                                 
sd 0:0:0:0: Attached scsi disk sda                                              
Done.                                                                           
Begin: Running /scripts/local-premount ...                                      
Done.                                                                           
kjournald starting.  Commit interval 5 seconds                                  
EXT3-fs: mounted filesystem with ordered data mode.                             
Begin: Running /scripts/local-bottom ...                                        
Done.                                                                           
Done.                                                                           
Begin: Running /scripts/init-bottom ...                                         
Done.                                                                           
INIT: version 2.86 booting                                                      
Starting the hotplug events dispatcher: udevd.                                  
Synthesizing the initial hotplug events...done.                                 
Waiting for /dev to be fully populated...swapped image found                    
Image loaded to NPE-B Func:0, Rel: 2:1, Status: 82c00000                        
IXP4XX NPE driver Version 0.3.0 initialized                                     
IXP4XX Q Manager 0.2.1 initialized.                                             
input: ixp4xx beeper as /class/input/input0                                     
ixp4xx_mac driver 0.3.1: eth0 on NPE-B with PHY[1] initialized                  
done.                                                                           
Activating swap...Adding 296952k swap on /dev/sda2.  Priority:-1 extents:1 acrok
done.                                                                           
Checking root file system...fsck 1.40-WIP (14-Nov-2006)                         
/dev/sda1 has gone 2888 days without being checked, check forced.               
/dev/sda1: 38176/2408448 files (0.7% non-contiguous), 432878/4809468 blocks    
done.                                                                           
EXT3 FS on sda1, internal journal                                               
x1205 0-006f: rtc intf: dev (254:0)                                             
Setting the system clock..                                                      
Cleaning up ifupdown....                                                        
Loading kernel modules...done.                                                  
Loading device-mapper supportdevice-mapper: ioctl: 4.7.0-ioctl (2006-06-24) inim
.                                                                               
Checking file systems...fsck 1.40-WIP (14-Nov-2006)                             
done.                                                                           
Setting kernel variables...done.                                                
Mounting local filesystems...done.                                              
Activating swapfile swap...done.                                                
Setting up networking....                                                       
Configuring network interfaces...eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
NET: Registered protocol family 10                                              
lo: Disabled Privacy Extensions                                                 
IPv6 over IPv4 tunneling driver                                                 
done.                                                                           
Starting portmap daemon....                                                     
INIT: Entering runlevel: 2                                                      
Starting system log daemon: syslogd.                                            
Starting kernel log daemon: klogd.                                              
Starting portmap daemon...Already running..                                     
Starting Courier authentication services: authdaemond.                          
Starting Courier IMAP server: imapd.                                            
Starting Courier POP3 server: pop3d.                                            
Starting internet superserver: inetd.                                           
Starting Postfix Mail Transport Agent: postfix.                                 
Starting Samba daemons: nmbd smbd.                                              
Starting OpenBSD Secure Shell server: sshd.                                     
Starting file alteration monitor: FAM.                                          
Starting NFS common utilities: statd.                                           
Starting deferred execution scheduler: atd.                                     
Starting periodic command scheduler: crond.                                     
Starting web server (apache2)...[Sun Oct 28 01:01:53 2007] [warn] The Alias dir.
apache2: apr_sockaddr_info_get() failed for goessens                            
apache2: Could not reliably determine the server's fully qualified domain name,e
.                                                                               
                                                                                
Debian GNU/Linux 4.0 goessens ttyS0                                             
                                                                                
goessens login:

nslu2/augmenter_la_taille_memoire.txt · Dernière modification: 2016/01/10 16:03 (modification externe)