Embedded Linux; Çalışma alanından /dev/mtd0 a (u-boot) nasıl erişilir?

Başlatan esensoy, 09 Ağustos 2012, 09:45:52

esensoy

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?
En tehlikeli an "zafer" anıdır.

fatihinanc

Kainat dediğimiz kitap, yazıldığı dil ve harfler öğrenilmedikçe anlaşılamaz.  (Galileo Galilei)

esensoy

komut;
mtd -r if=/tmp/dene.bin of=/dev/mtd0

Çıktı;
Could not open mtd device: mtd0
Could not open mtd device: mtd0


En tehlikeli an "zafer" anıdır.

fatihinanc

Kainat dediğimiz kitap, yazıldığı dil ve harfler öğrenilmedikçe anlaşılamaz.  (Galileo Galilei)

esensoy

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.
En tehlikeli an "zafer" anıdır.

fatihinanc

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://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.
Kainat dediğimiz kitap, yazıldığı dil ve harfler öğrenilmedikçe anlaşılamaz.  (Galileo Galilei)

esensoy

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,
En tehlikeli an "zafer" anıdır.

fatihinanc

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.
Kainat dediğimiz kitap, yazıldığı dil ve harfler öğrenilmedikçe anlaşılamaz.  (Galileo Galilei)

Soo

echo 1 > /dev/mtd0
chmod 777 /dev/mtd0

Komutlarını ayrı ayrı deneyebilirsin deneyebilirsin?

esensoy

~#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,
En tehlikeli an "zafer" anıdır.

fatihinanc

Hocam sorunu çözebildiğinize sevindim.

Kolay gelsin.

Ek : Bu arada dağıtım OpenWRT midir ?
Kainat dediğimiz kitap, yazıldığı dil ve harfler öğrenilmedikçe anlaşılamaz.  (Galileo Galilei)

esensoy

En tehlikeli an "zafer" anıdır.