Nexus One'ım için çekirdek hata ayıklaması yapmaya çalışıyorum ve http://bootloader.wikidot.com/android:kgdb'dan itibaren talimatları takip ediyorum. Birinin gerçekten bunu işe koyup koymadığını merak ediyordum? Ve herhangi biri, çekirdeğin hatalarını ayıklamak için KGDB'yi kullanmak için daha güncel bir çözüm geliştirdi mi?Android: Kernel Debugging ile KGDB
cevap
Ben zaten Android Çekirdek Dev listesine bir soru soruldu ve hiçbir cevap var, ancak kgdb ve hata ayıklama ?: Özellikle http://groups.google.com/group/android-kernel/search?group=android-kernel&q=kgdb&qt_g=Search+this+group
hakkında mesajlar arşivler arama vermedi böylece bilirim, olabilir Bu yayına bakmak istiyorum:
- http://www.cs.gmu.edu/~astavrou/courses/ISA_673/Android_Debugging/Android_GDB.pdf : Burada
- http://source.android.com/porting/debugging_gdb.html
http://groups.google.com/group/android-kernel/browse_thread/thread/5233e03391867c98/320beef11e737a62 faydalı olabilecek birkaç başka rastgele bağlantıları var
Android'de KGDB hakkında bilgi ararken bu mesajı buldum, bu yüzden birkaç yaşında olmasına rağmen, Nexus 6'da bunu çalıştırmak için çalıştığım bazı çalışmalara bir bağlantı göndermeye değdiğini düşündüm .
http://www.contextis.com/resources/blog/kgdb-android-debugging-kernel-boss/
Bunun benzeri yanıt arayan başkasının yardımcı olur. geribildirim (teşekkürler tümü) aşağıdaki
Düzenlendi
:Ben this Accuvant blog dayalı bir UART ayıklama kablo yapmak zorunda Bu çalışma almak için. Bu, FTDI 3.3v temel koparma (Yazma sırasında SparkFun'dan temin edilebilir) ve 4 direnç (2 x 1K Ohm, 1 x 1.2K Ohm ve 1 x 100Ohm) içeren basit bir devre ve bir 4 elementli İpucu Halka-Halka-Kollu (TRRS) kulaklık jakı. Dirençler temelde 3.3v'yi telefonunuz için biraz daha güvenli bir şeye indirgemek için bir voltaj bölücü sağlıyor. Ses jakını devre kartınıza bağlı diğer ucunu takarak, ses altsistemi pinlerden birinin üzerindeki voltajı (~ 2.8V) algılar ve bu kablo üzerinden bir UART arabirimi sağlamayı bilir. FTDI koparma, USB üzerinden PC'nize takılır ve buradan minicom gibi bir terminal emülatörü üzerinden konsol mesajlarına erişebilirsiniz. Ancak, şimdi aynı mekanizma üzerinden bir seri arabiriminiz var ve bir KGDB bağlantısı için kullanabileceğimiz bu. Bu noktada, Nexus 6'nın seri sürücüsü (msm_serial_hs_lite.c) için KGDB'yi (özellikle atomik karakter G/Ç işlemlerini gerçekleştirme yeteneği) desteklemek için bazı nispeten küçük değişiklikler yapılması gerekir. Linux Kernel ana hat kodundan these changes portunu yükledim. Stephen Boyd adında MSM (Qualcomm) seri sürücüsü msm_serial.c'ye sıkı bir çalışma yapmıştı. Onun değişiklikleri burada bulunabilir veya Google'da "msm_serial: poll_ için destek ekle" yi arayın. Bağlantı noktası zor değildi ve kodum found on github olabilir.
Bundan başka, N6'nız için özel bir çekirdek oluşturabilmeniz gerekir: google provides lots of information on.Daha sonra github repo'daki KGDB modifikasyonlarını içeren bir önyükleme görüntüsü oluşturmanız gerekir. Stok çekirdeğini https://developers.google.com/android/nexus/images'dan aldım, ayıkladım (abootimg -x kullanarak) ve daha sonra KGDB'nin yüklenmesini ve dizinime yönlendirilmesini sağlamak için özel çekirdim (zImage-dtb) ve ek komut satırı paramları ile yeniden yüklemek için aşağıdaki komutu kullandım liman şöyle: Ben, komut fastboot önyükleme boot.img kullanarak içine önyükleme bir adb kabuk açıp sonra komutunu kullanarak Android çekirdeğinde kesme noktası tetikleyebilecek oluşturulan benim boot.img ile
abootimg -u boot.img -k zImage-dtb -c 'cmdline=console=ttyHSL0,115200,n8 kgdboc=ttyHSL0,115200 kgdbretry=4'
:
echo -n g > /proc/sysrq-trigger
/proc/sysrq-tetikleyicisine erişmek için süper kullanıcı ayrıcalıklarına gereksinim duyduğunuz bütünlükten bahsetmeye değer. Kök var.
Telefon durdu ve hata ayıklama kablonuz bağlıyken, ana bilgisayarınızdaki ARM için bir GDB sürümünü, sıkıştırılmamış çekirdeğiniz argüman olarak (örn. Arm-eabi-gdb ./vmlinux) başlatın. Not: Ubuntu 14.04 çalıştırıyorum ve AOSP kaynak kodumdaki 'prebuilts' dizininden arm-eabi-gdb kullanıyorum. Son olarak, aşağıdaki komutları girin:
set remoteflow off
set remotebaud 115200
target remote /dev/ttyUSB0
Tüm derhal (sizin yazma/proc/sysrq-tetik üretilen bu) kgdb kesme içine ayrılmalıyız da bu varlık ve hata ayıklama başlayabilirsiniz.
Bu, sorunun cevabını sağlamaz. Bir yazarın eleştirisini veya açıklamasını istemek için, gönderilerinizin altında bir yorum bırakın. Her zaman kendi gönderilerinize yorum yazabilirsiniz ve yeterli sayıda [ününüzü] aldıktan sonra (http://stackoverflow.com/help/whats-reputation) [herhangi bir yayına yorum yapabilir] (http://stackoverflow.com/help/privileges/comment). – Sufian
Merhaba Sufian. Geri bildiriminiz için teşekkürler. OP iki soru sordu: 'Bu çalışmayı yapan var mı?' ve 'kernel hata ayıklamak için KGDB kullanmak için daha güncel bir çözüm var mı?' Bunu USB üzerinden çalıştıramadım (OP'nin bağlantısında atıfta bulunularak), ancak mevcut bir Android cihazında bir hata ayıklama kablosu kullanarak çalıştım ve bu yüzden ikinci sorudan memnun kaldım. Eğer katılmıyorsanız bilmek ister misiniz? –
Bu adil bir nokta. Daha fazla bilgi sağlamak için yayını düzenledim. Bu benim ilk uygun yazı bu yüzden bilgi eksikliği için özür dilerim (aslında bugün benzer bir soruya cevap verdim ve şimdi ikisini de sabitledim). –
- 1. jenkins debugging with eclipse
- 2. CUDA kernel
- 3. Linux Kernel
- 4. mprotect() Linux kernel
- 5. kernel sanal adres çevirisi
- 6. Derleme programı eski kernel
- 7. Linux Kernel Modülünün Konumu
- 8. Got hatası: linux Kernel
- 9. linux kernel development
- 10. Android stüdyoda HAX kernel modülü yüklü değil hatası nasıl temizlenir?
- 11. Android'de Dokunmatik ekran sürücüsünü değiştirme Kernel
- 12. Linux Kernel: copy_from_user - işaretçilerle yapı
- 13. Linux kernel görüntüsünden yapılandırma alma
- 14. Kernel sayfaları değiştirilmeye mi başlıyor?
- 15. 2^N Integers ile Kombinanslar (Kernel), nasıl üretilir?
- 16. Linux kernel işlevini bir modülle değiştirebilir miyim?
- 17. Visual Studio'da "Dur Debugging" ve "Tümünü Sonlandır" arasındaki fark nedir?
- 18. 'Start Debugging', VisualStudio 2005'te sonsuza kadar sürüyor
- 19. Neden Flex Debugging, Firefox 6'da bir süre sonra mola noktaları ile çalışmayı durdurur?
- 20. Kernel modülü olarak Ext4 kodlama ve derleme
- 21. ipython/jupyter defterinde kernel kaydetme - kernel.json
- 22. Kernel tarafında Nested Loop nasıl yazılır OpenCL
- 23. Her işlem için Kernel yığını var mı?
- 24. Yerel veriyi linux kernel modülüne çevirin
- 25. Linux Kernel Modülünde Yeni İşlemlerin Dinlenmesi
- 26. Kernel libcrc32c (veya aynı işlevler) userpace programlarında nasıl kullanılır?
- 27. Kernel panik - Kendi AMI'sini oluşturma (Amazon Makine Resmi)
- 28. Android ile ProGuard'ı Kullanma
- 29. Android düğümleri ile grafik
- 30. Android Vergi SQLiteCantOpenDatabaseException ile
Araçları çalışırken güzel ve bu işe yararsa harika olurdu, verilen bir çakışma sorununu çözme şansınız daha hızlı olabilir ve projeninizle –
dikkatli kullanımından yararlanmaya devam edebilirsiniz. İlgili soru: [Android Kernel Debugging] (http : //stackoverflow.com/q/6697754/816008) –