Arkadaşlar, normal bir şekilde açılmış,
Login olunmuş bir linux üzerinden u-boot alanında ki 1 byte ı değiştirmem gerekiyor,
u-boot alanını bir dosyaya çekiyorum,
gerekli byte ı değiştiriyorum,
fakat geri yüklerken /dev/mtd0 locked hatası veriyor,
mtd unlock /dev/mtd0
ile kilidi açmıyor, nasıl yapmak lazım?
Merhaba,
Komut çıktısını koyabilir misiniz ?
komut;
mtd -r if=/tmp/dene.bin of=/dev/mtd0
Çıktı;
Could not open mtd device: mtd0
Could not open mtd device: mtd0
Tamamdır.
cat /proc/mtd
Yazdığınızda ne geliyor peki ?
dev size erasesize
mtd0: 00020000 00010000 "u-boot"
mtd1: 00140000 00010000 "kernel"
mtd2: 00690000 00010000 "rootfs"
mtd3: 00530000 00010000 "rootfs_data"
mtd4: 00010000 00010000 "firmware"
mtd0 boyleydi, diğerlerini yanlış hatırlıyor olabilirim, spi eprom 4 mb kapasitelidir.
Ben flash kullandığınızı düşünmüştüm.
SKonu ile ilgili biraz araştırma yaptım. Bazılları sorunun kernel kaynaklı olduğunu belirtmiş.
MTD_WRITABLE bayrağının kernel derlemeden önce 1 yapılması gerektiğini söylemişler. Kaynaklar aşağıda;
http://forums.freescale.com/t5/Other-Microcontrollers/Can-t-write-new-uboot-to-mtd0-in-linux-on-MPC8313E-RDB/td-p/34727 (http://forums.freescale.com/t5/Other-Microcontrollers/Can-t-write-new-uboot-to-mtd0-in-linux-on-MPC8313E-RDB/td-p/34727)
http://www.avrfreaks.net/index.php?name=PNphpBB2&file=printview&t=44144&start=20 (http://www.avrfreaks.net/index.php?name=PNphpBB2&file=printview&t=44144&start=20)
Kullandığınız kartın modelini ve işletim sisteminizi yazabilirseniz belki daha fazla arkadaş yardımcı olabilir.
hocam sorun yok aslında,
sistem normal çalışıyor,
ben sadece ilgili alanda bir byte değiştirmek istiyorum,
dediğiniz yerleri ben de okudum, pek net bir cevap yok,
okumayla zaman kaybetmemeye karar verdim, dün üşenmiştim yapmadım ama bu akşam spi eprom u söküp,
içeriği dışarı çekip, ilgili byet ı değiştirip tekrar programlayıp takacağım, büyük ihtimal olacak.
ilginize teşekkürler,
Rica ederim.
Aslında ben şu referansa yönelik olarak yazmıştım;
Alıntı Yap...I can read from the flash but I cannot write or erase.
Aynı arkadaş sorunu şu şekilde çözmüş;
Alıntı YapThe problem was MTD_WRITEABLE flag that was set.
Everything is working now, I can erase/progam from linux all the partitions.
Thanks to everyboby for the help.
echo 1 > /dev/mtd0
chmod 777 /dev/mtd0
Komutlarını ayrı ayrı deneyebilirsin deneyebilirsin?
~#echo 1 > /dev/mtd0
can't create /dev/mtd0: Permission denied
~#chmod 777 /dev/mtd0
komutundan sonra herhangi bir çıktı vermedi, yani 777 olarak ayarladı gibi ama
peşinden
~#mtd -r write dene.bin u-boot
Could not open mtd device : u-boot
Can't open device for writing!
diyor
mesaj birleştirme:: 09 Ağustos 2012, 23:21:08
fatih hocam dediğin yoldan çözdüm,
sdk/trunk/build_dir/linux-ar71xx_generic/linux-3.3.8/drivers/mtd/tplinkpart.c
içinde ki
parts[0].mask_flags = MTD_WRITEABLE;
satırını silip imaj derleyince mtd0 ı yazabilir hale getirdi,
Hocam sorunu çözebildiğinize sevindim.
Kolay gelsin.
Ek : Bu arada dağıtım OpenWRT midir ?
Evet, tplink mr3420 üzerinde çalışıyorum