ieri sera ho scaricato la toolchain Sourcery_G++_lite (la consiglia anche cyano qualora si volesse solo compilare il kernel) ed ho giocato un po' col bluetooth... sinceramente non capisco perchè non vada, sul pc con gli stessi moduli la chiavetta viene inizializzata... qui sul pad ci son dei problemi con l'hci (ho abilitato hci_usb) che non comunica bene infatti non si vede manco il mac address della scheda e se si prova un hciconfig hci0 up si reboota il sistema...
per risollevare il morale ho compilato i moduli per ext4, in modo da poter usare /system /data e /cache in ext4 senza journal (il cui autore ritiene sia più performante rispetto ad ext2)... è andato bene, adesso avrei bisogno di un cuoco che provi una cosa per me però... qui un estratto di quello da me fatto:
codice:
# insmod jbd2.ko
# insmod ext4.ko
# cat /proc/filesystems
nodev sysfs
nodev rootfs
nodev bdev
nodev proc
nodev cgroup
nodev tmpfs
nodev devtmpfs
nodev sockfs
nodev pipefs
nodev anon_inodefs
nodev inotifyfs
nodev devpts
ext3
cramfs
nodev ramfs
vfat
nodev fuse
fuseblk
nodev fusectl
yaffs
yaffs2
ext4
# busybox umount /dev/block/mtdblock5
# mke2fs -t ext4 -O ^has_journal,^huge_file -m 0 /dev/block/mtdblock5
mke2fs 1.41.14 (22-Dec-2010)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
29760 inodes, 118784 blocks
0 blocks (0.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008
15 block groups
8192 blocks per group, 8192 fragments per group
1984 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 28 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
# tune2fs -c0 -i0 /dev/block/mtdblock5
tune2fs 1.40.8 (13-Mar-2008)
Setting maximal mount count to -1
Setting interval between checks to 0 seconds
# mount -t ext4 -o nosuid,nodev,noatime,nodiratime /dev/block/mtdblock5 /cache
# mount
[...]
/dev/block/mtdblock5 /cache ext4 rw,nosuid,nodev,noatime,nodiratime,barrier=1,data=writeback 0 0
mi serve l'aiuto di un cuoco (non riesco ad aprire boot.img per modificarla!)... praticamente dovremmo:
- copiare nella root (dove c'è un altro modulo, rk29xxnand_ko.ko) i due moduli jbd2.ko e ext4.ko
- modificare init.rc, e qui bisogna studiarsi un modo per far formattare al primo avvio le due partizioni in ext4, io pensavo che si potesse creare un file dentro system chiamato ".firstboot", lo script controlla se esiste questo file, formatta le partizioni e lo elimina (così verrebbe avviato solo la prima volta)... ma l'init di android supporta un "if" tipo bash? if [ -e /system/.firstboot] ecc ecc? o bisogna creare un servizio che faccia quei controlli e formatti (ma io non conosco il c) tipo questo: Enea Android Blog: The init process and init.rc?
edit: io proverei una cosa del genere:
modificare questa parte di init.rc
codice:
on fs
insmod /rk29xxnand_ko.ko
insmod /jbd2.ko
insmod /ext4.ko
mount ext4 mtd@system /system ro noatime nodiratime
/bin/system/format.sh
mount ext4 mtd@userdata /data nosuid nodev noatime nodiratime
mount ext4 mtd@cache /cache nosuid nodev noatime nodiratime
inserire in system il file format.sh (con permessi di esecuzione, quindi 755)
codice:
#!/system/bin/busybox sh
if [ -e /system/.firstboot]
/system/bin/mke2fs -t ext4 -O ^has_journal,^huge_file -m 0 -q /dev/block/mtdblock5
/system/bin/mke2fs -t ext4 -O ^has_journal,^huge_file -m 0 -q /dev/block/mtdblock6
/system/bin/tune2fs -c0 -i0 /dev/block/mtdblock5
/system/bin/tune2fs -c0 -i0 /dev/block/mtdblock6
/system/bin/busybox rm /system/.firstboot
fi
IMHO dovrebbe funzionare
Qui trovate i due moduli necessari... spero qualcuno dei cuochi possa provarlo, ci sarebbe un boost prestazionale ed anche un minor sfruttamento della flash