A quanto pare il formato di squashfs-lzma adottato da broadcom NON è compatibile con quello distribuito normalmente con il kernel Linux o con squashfs-tools.

Ho estratto il codice che si occupa della gestione di questo filesystem dai sorgenti di vari firmware e l'ho adattato per poter essere compilato a partire dai sorgenti di un kernel vanilla.
Io consiglio di compilarvi il modulo a partire dai sorgenti “patchati”. Tuttavia chi fosse pigro può sempre tentare di utilizzare il modulo binario precompilato. In tal caso resto in attesa dei vostri feedback, per poter compilare una tabella delle compatibilità dei binari precompilati con le varie release del kernel.

Kernel 2.6.17.6

In questo caso il compito è stato piuttosto semplice. Il codice è praticamente al 99,9% quello incluso nei sorgenti Broadcom distribuiti con i sorgenti GPL di vari firmware.
Lo rendo disponibile in due formati, scegliete quello che preferite :)

  • bcm_squashfs-2.6.17.6.diff: File da utilizzarsi con patch su un kernel vanilla. Riconfigurare e ricompilare.
  • squashfs.ko: Modulo precompilato. Copiatelo in /lib/modules/<kernel-version>/kernel/fs/squashfs/

A occhio non sembra che i sorgenti abbiamo grosse dipendenze con il resto del kernel, quindi il binario dovrebbe funzionare senza problemi su un kernel 2.6.17.6 (e probabilmente funzionerà su un qualunque kernel della serie 2.6.17).

Kernel 2.6.19

Mi è stato segnalato che vi sono delle difficoltà a compilare la patch in oggetto sui kernel più recenti (serie 2.6.18 e 2.6.19).
Effettivamente (e sfortunatamente) nelle release di kernel citate sono stati effettuati alcuni cambiamenti in alcune porzioni del kernel che si occupano della gestione dei filesystem. Tali cambiamenti riguardano in buona parte la firma delle procedure e alcune strutture dati. Ho dovuto quindi patchare il file inode.c originale Broadcom per poterlo adattare alle nuove interfacce fornite dal kernel.
I cambiamenti effettuati sono stati testati moooooolto poco… quindi potrebbero esserci dei malfunzionamenti… Quindi, al solito, attendo i vostri riscontri in merito!!!
Anche qui potete scegliere la modalità che prediligete:

  • bcm_squashfs-2.6.19.diff: File da utilizzarsi con patch su un kernel vanilla. Riconfigurare e ricompilare.
  • squashfs.ko: Modulo precompilato. Copiatelo in /lib/modules/<kernel-version>/kernel/fs/squashfs/
 
modulo_squashfs.txt · Ultima modifica: 2008/04/14 13:21 (modifica esterna)
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki