Picproje Elektronik Sitesi

BİLGİSAYAR => Linux => Konuyu başlatan: esensoy - 09 Ağustos 2012, 09:45:52

Başlık: Embedded Linux; Çalışma alanından /dev/mtd0 a (u-boot) nasıl erişilir?
Gönderen: esensoy - 09 Ağustos 2012, 09:45:52
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?
Başlık: Ynt: Embedded Linux; Çalışma alanından /dev/mtd0 a (u-boot) nasıl erişilir?
Gönderen: fatihinanc - 09 Ağustos 2012, 10:41:02
Merhaba,

Komut çıktısını koyabilir misiniz ?
Başlık: Ynt: Embedded Linux; Çalışma alanından /dev/mtd0 a (u-boot) nasıl erişilir?
Gönderen: esensoy - 09 Ağustos 2012, 10:53:34
komut;
mtd -r if=/tmp/dene.bin of=/dev/mtd0
Çıktı;
Could not open mtd device: mtd0
Could not open mtd device: mtd0


Başlık: Ynt: Embedded Linux; Çalışma alanından /dev/mtd0 a (u-boot) nasıl erişilir?
Gönderen: fatihinanc - 09 Ağustos 2012, 11:14:35
Tamamdır.

cat /proc/mtd

Yazdığınızda ne geliyor peki ?
Başlık: Ynt: Embedded Linux; Çalışma alanından /dev/mtd0 a (u-boot) nasıl erişilir?
Gönderen: esensoy - 09 Ağustos 2012, 12:02:44

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.
Başlık: Ynt: Embedded Linux; Çalışma alanından /dev/mtd0 a (u-boot) nasıl erişilir?
Gönderen: fatihinanc - 09 Ağustos 2012, 12:45:17
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.
Başlık: Ynt: Embedded Linux; Çalışma alanından /dev/mtd0 a (u-boot) nasıl erişilir?
Gönderen: esensoy - 09 Ağustos 2012, 13:00:58
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,
Başlık: Ynt: Embedded Linux; Çalışma alanından /dev/mtd0 a (u-boot) nasıl erişilir?
Gönderen: fatihinanc - 09 Ağustos 2012, 13:23:10
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.
Başlık: Ynt: Embedded Linux; Çalışma alanından /dev/mtd0 a (u-boot) nasıl erişilir?
Gönderen: Soo - 09 Ağustos 2012, 14:11:33
echo 1 > /dev/mtd0
chmod 777 /dev/mtd0

Komutlarını ayrı ayrı deneyebilirsin deneyebilirsin?
Başlık: Ynt: Embedded Linux; Çalışma alanından /dev/mtd0 a (u-boot) nasıl erişilir?
Gönderen: esensoy - 09 Ağustos 2012, 21:38:41
~#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,
Başlık: Ynt: Embedded Linux; Çalışma alanından /dev/mtd0 a (u-boot) nasıl erişilir?
Gönderen: fatihinanc - 10 Ağustos 2012, 00:46:22
Hocam sorunu çözebildiğinize sevindim.

Kolay gelsin.

Ek : Bu arada dağıtım OpenWRT midir ?
Başlık: Ynt: Embedded Linux; Çalışma alanından /dev/mtd0 a (u-boot) nasıl erişilir?
Gönderen: esensoy - 10 Ağustos 2012, 12:18:21
Evet, tplink mr3420 üzerinde çalışıyorum