BeagleBone için Kernel ve defconfig

Başlatan Tagli, 28 Nisan 2012, 19:19:11

Tagli

Büyük bir heyecanla almış olduğum BeagleBone üzerine sıfırdan sistem kurmaya çalışıyorum.

Cihaz ile birlikte bir SD kart içinde hazır bir sistem geliyor ve orada kullanıma hazır bir kernel var. Ancak ben kendim kaynak kodundan derleyebilmek istiyorum. BeagleBone için kernel henüz kernel.org'da yok. BeagleBone için bir kernel arayışı içindeyim.

BeagleBone kendi sitesinde kernel için burayı göstermiş. Buradaki kernel'i derleyebilmek için bile baya uğraştım. omap2plus_defconfig üzerinden giderek derleme sırasında hata veren bazı özellikleri kapattım.

Sonuç: boot sırasında hata alıyorum. Aldığım hataların internette araştırdım, kimisi normal olduğunu söylemiş. Ancak sonrasında benim sistem kilitleniyor. Galiba normal olduğunu söyleyenlerin sistemi hataya rağmen boot'a devam edip açılıyor. Hatalar kernel panic değil. Kernel panic görsem sessizliğe bir anlam vermek mümkün olacak...

rootfs, host makine üzerindeki nfs'te. Ama fabrikadan gelen uImage (kernel) ile bu nfs'e bağlanabiliyorum sorunsuzca. BusyBox kurup kabuğa düşebiliyorum.

BeagleBone için bana önerebileceğiniz kernel kaynak kodu ve defconfig dosyası var mı?

Bu arada, forumda "Gömülü Linux" adında bir alt kategori açılsa iyi olur bence.
Gökçe Tağlıoğlu

elektronikhobi

Eğer daha önceden çekirdekten Linux derleyerek kullanmamışsanız bu iş biraz zorlayıcı olabilir. Ben 7-8 sene sadece Gentoo kullanmıştım. O da çekirdekten derlenerek kuruluyor. Daha doğrusu tüm yazılımlar kaynak kodundan derlenerek oluşturuluyor.

https://github.com/beagleboard/linux/blob/master/README

Burada kurulum adımları açıklanmış. Ama gördüğüm kadarıyla bir kere kaynak koduna yama yapıldıktan sonra kuruluma devam ediliyor.

Hata mesajının tam olarak ne olduğunu bilmeden yorum yapmak mümkün değil. Ancak "kernel panic" hatası almamışsanız çekirdek kaynak kodu derlenmiştir. Ama şunlar olabilir. Çekirdeğin kendisinin ("bzImage") nerede olduğunu bulamıyor olabilir. Genelde /etc/fstab ayarlarından bu ayarlanıyor. Ya da açılış yöneticisi LILO ya da GRUB ayarlarında bir problem olabilir. Buraya sabitdiskin (ya da kart üzerinde sabit disk görevi gören elemanın) bölümlendirme ayarları yazılıyor.

Tagli

İlgin için teşekkürler elektronikhobi. Bağlantısını vermiş olduğun kernel, mainline gibi gözüküyor yanılmıyorsam.

Daha önceden kaynak kodundan kernel derleyip sistem çalıştırmışlığım var. Özellikle mini2440'ı baya kurcalamış ve rootfs'i yine NFS üstünden bağlayarak kabuğa düşmüştüm.

BeagleBone, ARM işlemcili bir kart, işlemcisi TI AM3358 (ARM Cortex-A8). Daha önce uğraşmış olduğum mini2440 ve BeagleBoard xM için kernel.org ana ağacında defconfig dosyaları mevcuttu. Ama BeagleBone için bu dosyayı bulamadım.

Kart üzerinde bootloader olarak uboot var. Bu sebeple bzImage değil, uImage diye bir dosya kullanıyor. Bu dosyayı da host makineki NFS'ten çekip sorunsuz olarak çalıştırıyorum. rootfs'in hazır ve çalışır durumda olduğunu da biliyorum çünkü cihazla beraber gelen SD kart içindeki uImage ile sorunsuz olarak kullanabiliyorum.

Boot sırasında gördüklerim bunlar:
Welcome to minicom 2.5

OPTIONS: I18n 
Compiled on May  2 2011, 00:39:27.
Port /dev/ttyUSB1

Press CTRL-A Z for help on special keys                      
                                                             
######################################################       
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         ###############################################################
done
Bytes transferred = 2649336 (286cf8 hex)
## Booting kernel from Legacy Image at 82000000 ...
   Image Name:   Linux-3.3.0-rc3-tagli-bone--g72f
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2649272 Bytes = 2.5 MiB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
[    0.000000] Booting Linux on physical CPU 0
[    0.000000] Linux version 3.3.0-rc3-tagli-bone--g72f88d3 (tagli@tagli-N4050-linux) (gcc versi2
[    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] Machine: am335xevm
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024
[    0.000000] Kernel command line: console=ttyO0,115200n8 ip=160.75.59.44:160.75.59.46:160.75.5t
[    0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] Memory: 256MB = 256MB total
[    0.000000] Memory: 249544k/249544k available, 12600k reserved, 0K highmem
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
[    0.000000]     vmalloc : 0xd0800000 - 0xff000000   ( 744 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xd0000000   ( 256 MB)
[    0.000000]     modules : 0xbf000000 - 0xc0000000   (  16 MB)
[    0.000000]       .text : 0xc0008000 - 0xc046e2f4   (4505 kB)
[    0.000000]       .init : 0xc046f000 - 0xc049d000   ( 184 kB)
[    0.000000]       .data : 0xc049e000 - 0xc04edf40   ( 320 kB)
[    0.000000]        .bss : 0xc04edf64 - 0xc0a0f684   (5254 kB)
[    0.000000] NR_IRQS:376
[    0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
[    0.000000] Total of 128 interrupts on 1 active controller
[    0.000000] OMAP clockevent source: GPTIMER1 at 24000000 Hz
[    0.000000] Could not lookup counter_32k hwmod
[    0.000000] OMAP clocksource: GPTIMER2 at 24000000 Hz
[    0.000000] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956ms
[    0.000000] Console: colour dummy device 80x30
[    0.000000] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
[    0.000000] ... MAX_LOCKDEP_SUBCLASSES:  8
[    0.000000] ... MAX_LOCK_DEPTH:          48
[    0.000000] ... MAX_LOCKDEP_KEYS:        8191
[    0.000000] ... CLASSHASH_SIZE:          4096
[    0.000000] ... MAX_LOCKDEP_ENTRIES:     16384
[    0.000000] ... MAX_LOCKDEP_CHAINS:      32768
[    0.000000] ... CHAINHASH_SIZE:          16384
[    0.000000]  memory used by lock dependency info: 3695 kB
[    0.000000]  per task-struct memory footprint: 1152 bytes
[    0.000921] Calibrating delay loop... 331.40 BogoMIPS (lpj=1296384)
[    0.115201] pid_max: default: 32768 minimum: 301
[    0.115608] Security Framework initialized
[    0.115761] Mount-cache hash table entries: 512
[    0.119860] CPU: Testing write buffer coherency: ok
[    0.120826] Setting up static identity map for 0x80378950 - 0x803789a8
[    0.147231] omap_hwmod: gfx: failed to hardreset
[    0.163860] omap_hwmod: pruss: failed to hardreset
[    0.163901] omap_device: cannot add global notifier for dev PM QoS
[    0.171271] print_constraints: dummy: 
[    0.173168] NET: Registered protocol family 16
[    0.174325] GPMC revision 6.0
[    0.182494] gpiochip_add: registered GPIOs 0 to 31 on device: gpio
[    0.183068] OMAP GPIO hardware version 0.1
[    0.183997] gpiochip_add: registered GPIOs 32 to 63 on device: gpio
[    0.185280] gpiochip_add: registered GPIOs 64 to 95 on device: gpio
[    0.186769] gpiochip_add: registered GPIOs 96 to 127 on device: gpio
[    0.191587] omap_l3_smx omap_l3_smx.0: couldn't find resource
[    0.193761] omap_hwmod_mux_init: Could not allocate device mux entry
[    0.194715] omap_hwmod_mux_init: Could not allocate device mux entry
[    0.195568] omap_hwmod_mux_init: Could not allocate device mux entry
[    0.197814] hw-breakpoint: debug architecture 0x4 unsupported.
[    0.197928]  omap2_mcspi.1: alias fck already exists
[    0.198639]  omap2_mcspi.2: alias fck already exists
[    0.260532] bio: create slab <bio-0> at 0
[    0.266369] SCSI subsystem initialized
[    0.272925] usbcore: registered new interface driver usbfs
[    0.273942] usbcore: registered new interface driver hub
[    0.274754] usbcore: registered new device driver usb
[    0.282669] Switching to clocksource gp timer
[    0.335174] NET: Registered protocol family 2
[    0.335933] IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.337532] TCP established hash table entries: 8192 (order: 4, 65536 bytes)
[    0.338045] TCP bind hash table entries: 8192 (order: 6, 294912 bytes)
[    0.343449] TCP: Hash tables configured (established 8192 bind 8192)
[    0.343546] TCP reno registered
[    0.343578] UDP hash table entries: 128 (order: 1, 10240 bytes)
[    0.343961] UDP-Lite hash table entries: 128 (order: 1, 10240 bytes)
[    0.344906] NET: Registered protocol family 1
[    0.346170] RPC: Registered named UNIX socket transport module.
[    0.346199] RPC: Registered udp transport module.
[    0.346216] RPC: Registered tcp transport module.
[    0.346232] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.347077] NetWinder Floating Point Emulator V0.97 (double precision)
[    0.349817] omap_init_opp_table: no hwmod or odev for iva, [8] cannot add OPPs.
[    0.361446] NTFS driver 2.1.30 [Flags: R/O].
[    0.361689] msgmni has been set to 487
[    0.365574] io scheduler noop registered
[    0.365602] io scheduler deadline registered
[    0.365733] io scheduler cfq registered (default)
[    0.368534] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    0.375475] omap_uart.0: ttyO0 at MMIO 0x44e09000 (irq = 72) is a OMAP UART0
[    0.919989] console [ttyO0] enabled
[    0.925473] omap_uart.1: ttyO1 at MMIO 0x48022000 (irq = 73) is a OMAP UART1
[    0.934423] omap_uart.2: ttyO2 at MMIO 0x48024000 (irq = 74) is a OMAP UART2
[    0.943226] omap_uart.3: ttyO3 at MMIO 0x481a6000 (irq = 44) is a OMAP UART3
[    0.952078] omap_uart: probe of omap_uart.4 failed with error -22
[    0.958808] omap_uart: probe of omap_uart.5 failed with error -22
[    0.996870] brd: module loaded
[    1.018655] loop: module loaded
[    1.028246] usbcore: registered new interface driver asix
[    1.034465] usbcore: registered new interface driver cdc_ether
[    1.041113] usbcore: registered new interface driver net1080
[    1.047561] usbcore: registered new interface driver cdc_subset
[    1.054276] usbcore: registered new interface driver zaurus
[    1.060721] usbcore: registered new interface driver cdc_ncm
[    1.068948] usbcore: registered new interface driver cdc_wdm
[    1.074879] Initializing USB Mass Storage driver...       
[    1.080526] usbcore: registered new interface driver usb-storage
[    1.086839] USB Mass Storage support registered.          
[    1.092783] usbcore: registered new interface driver libusual
[    1.099320] usbcore: registered new interface driver usbtest
[    1.108773] i2c /dev entries driver
[    1.114938] OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
[    1.127483] usbcore: registered new interface driver usbhid
[    1.133368] usbhid: USB HID core driver
[    1.137996] TCP cubic registered
[    1.141422] Initializing XFRM netlink socket
[    1.146042] NET: Registered protocol family 17
[    1.150831] NET: Registered protocol family 15
[    1.155771] Registering the dns_resolver key type
[    1.161216] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
[    1.169332] ThumbEE CPU extension supported.
[    1.174157] omap2_set_init_voltage: unable to get clk dpll1_ck
[    1.180326] omap2_set_init_voltage: unable to set vdd_mpu_iva
[    1.186401] omap2_set_init_voltage: unable to find boot up OPP for vdd_core
[    1.193733] omap2_set_init_voltage: unable to set vdd_core
[    1.227289] clock: disabling unused clocks to save power


Sonrası tamamen sessizlik. Bu yazıları görmesem console ayarının yanlış olduğunu düşünecektim. Ama dediğim gibi, diğer uImage çalıştığına göre bootargs'ta bir sorun yok demektir.
Gökçe Tağlıoğlu

elektronikhobi

#3
Maalesef daha önce böyle bir donanımla çalışmadığım için hata mesajlarını yorumlayamadım  ;)

Anladığım kadarıyla oturum açma bölümüne gelmeden takılıp kalıyor. Bu durumda benim aklıma gelen DHCP ile ilgili bir problem olabilir. Anladığım kadarıyla donanım olarak sayısal hafıza kartı (SDCARD) kullanıyor. İşte sisteme yabancı olduğum için akla bir sürü olasılık gerekiyor. Örneğin çekirdeği derlerken hafıza kartı desteğini açmamış olabilirsiniz.

Benim tavsiyem en iyisi bunu BeagleBoard kullanıcılarının olduğu forumlarda sorun.

Bir de BeagleBone üzerine Gentoo kurulabiliyormuş. Bak ben de özendim şimdi  :D

http://dev.gentoo.org/~armin76/arm/beaglebone/install.xml

lynx

#4
Normalde forumlara pek yazı yazmam fakat gece saat 4'te kernel derlediğim sırada böyle bir yazı görünce foruma kaydolup yardımcı olma ihtiyacı duydum.

Öncelikle sorunun nedenini açıklıyım. Sorun kernelden kaynaklanan bir eksiklik. Gömülü sistemlerde sistemin çalışma sırasını açıklarsam sorunu buluruz.
Sisteme güç verildiğinde ilk olarak bootloder denen yapı çalışır. Eğer bootloader'da bir sorun olmazsa bootloader kerneli aktif eder ve kendi çalışmasını bitirir.Şimdi kontol kernelde, kernel ise yapısında bulunan sıkıştırılmış dosyaları açar ve daha sonra sistem için gerekli dosyaları çalıştırmaya başlar. Kernel en son durumda ise kullanıcı alanında bulunan ilk programı (autostart.sh) çalıştırır. Sizin belirtmiş olduğunuz çıktıda çalıştırılan ilk programla ilgili bir çıktı gözükmüyor. Büyük ihtimalle çekirdekte bazı yapıların desteklenmemiş olmasından kaynaklanıyor.

Yakın zamanda elimde beaglebone olucak yaptığım uygulamaları internet ortamında paylaşacağım

İyi Çalışmalar

Tagli

Sorunu hala çözemedim. Kernel kodları (ve daha birçok proje) etrafta git depoları şeklinde bulunuyor. Bunları kullanmayı da pek bilmiyorum. Yaptığım şey "git clone depo_adresi" yazmaktan öteye gitmiyor.

Son 1-2 gün içinde 4-5 tane git deposunu değişik config'ler ile denedim. Tamamen deneme yanılma mantığı ile gidiyorum. Sonuç yok. Ve galiba bazı depolar open embedded için oluşturulmuş. Bu sistemi kullanmayı da bilmediğim için sıkıntı yaşıyorum.

Daha önce çalıştığım Mini2440 ve BeagleBoard xM'de böyle sıkıntılar yaşamamıştım. Mini2440'ın kernel'i hem kendi sitesinde var, hem de kernel.org kernelinde defconfig'ini bulmak mümkün. BeagleBoard için de kernel.org'da defconfig var (omap2plus_defconfig). Aynı defconfig BeagleBone için de geçerli olmalı aslında ama nedense çalıştıramadım bir türlü.
Gökçe Tağlıoğlu

elektronikhobi

Alıntı yapılan: lynx - 29 Nisan 2012, 03:41:48
Büyük ihtimalle çekirdekte bazı yapıların desteklenmemiş olmasından kaynaklanıyor.

Arkadaşın açıklamalarından benimle aynı şeyi düşündüğünü çıkardım. Yani çekirdek derlerken hangi donanım için destek verileceğini siz belirliyorsunuz. Örneğin benim bir SCSI sabit diskim var. IDE disk desteğini kapatıyorum. Ya da sadece örneğin sadece benim kullandığım ses kartının modeli için ses desteğini açıyorum. Diğerleri için kapatıyorum böylece teorik olarak daha hızlı çalışan bir işletim sistemi çekirdeği elde ediyorum. İşte Gentoo kullanıcılarının tüm programları derleyerek kullanmak gibi bir ızdıraba katlanmalarının nedeni bu  :D

(Örneğin X sunucu desteği ile sistemi derlemek 8-10 saat mi (daha fazla da olabilir) vakit alıyor. Ama örneğin 20 tane benzer sistemli bilgisayar üzerine kurulduğu zaman ilk bilgisayarda derleyerek kurduktan sonra çok kısa sürede bu sistemi diğer bilgisayarlara aktarabiliyorsunuz. Böylece 20 tane hızlı çalışan her makinenin işlemcisine göre derleyicinin eniyileştirilmiş kod ürettiği sistemler üzerinde çalışan makinemiz oluyor)

İşte bu çekirdekte hangi donanımın ya da işletim sisteminin hangi özelliklerinin destekleneceği (örneğin FAT, NTFS, Ext2 dosya sistemi gibi) bu .config dosyalarında tutuluyor. Bence burada özellikle beagleboard için .config dosyalarını kullanmanız gerekiyor. Ya da beagleboard'un üzerindeki donanım desteğini elle çekirdek üzerinde açmanız gerekiyor.

Çekirdeği derlemek için

# make menuconfig

komutu kullanılıyor.

Benim tavsiyem kullandığınız donanım BeagleBone ise yukarda verdiğim linkteki gibi üzerine Gentoo kurmak (Bu arada Ubuntu gibi diğer dağıtımlar da üzerine kuruluyordur büyük ihtimal. Ubuntu'nun bildiğiniz gibi geniş bir kullanıcı kitlesi ve topluluğu var)

Ama bunun için gerekenler şunlarmış:

  • x86/amd64 tabanlı ve üzerinde SD kart okuyucu olan üzerine Gentoo kurulmuş bir bilgisayar
  • Beaglebone
  • 1 tane SD kart (2 GB yeterliymiş)
  • İnternet bağlantısı

Eğer bu maceraya girmek istiyorsanız işte Gentoo kurulum belgeleri  ;)

http://www.gentoo.org/doc/en/handbook/handbook-x86.xml

Bu da hızlı kurulum rehberi:

http://www.gentoo.org/doc/en/gentoo-x86-quickinstall.xml

Bu da beaglebone üzerine Gentoo kurulum rehberi:

http://dev.gentoo.org/~armin76/arm/beaglebone/install.xml

tunayan

#7
Alıntı yapılan: Tagli - 01 Mayıs 2012, 09:25:45
Sorunu hala çözemedim. Kernel kodları (ve daha birçok proje) etrafta git depoları şeklinde bulunuyor. Bunları kullanmayı da pek bilmiyorum. Yaptığım şey "git clone depo_adresi" yazmaktan öteye gitmiyor.

Son 1-2 gün içinde 4-5 tane git deposunu değişik config'ler ile denedim. Tamamen deneme yanılma mantığı ile gidiyorum. Sonuç yok. Ve galiba bazı depolar open embedded için oluşturulmuş. Bu sistemi kullanmayı da bilmediğim için sıkıntı yaşıyorum.

Daha önce çalıştığım Mini2440 ve BeagleBoard xM'de böyle sıkıntılar yaşamamıştım. Mini2440'ın kernel'i hem kendi sitesinde var, hem de kernel.org kernelinde defconfig'ini bulmak mümkün. BeagleBoard için de kernel.org'da defconfig var (omap2plus_defconfig). Aynı defconfig BeagleBone için de geçerli olmalı aslında ama nedense çalıştıramadım bir türlü.

Merhaba,

omap2plus_defconfig çalışmaz çünkü beagleboard üzerinde omap3530 işlemci var fakat beaglebone üzerinde am33xx serisine geçilmiş. O yüzden başka bir defconfig bulmak gerekiyor.

http://software-dl.ti.com/dsps/dsps_public_sw/am_bu/sdk/AM335xSDK/latest/index_FDS.html

Yukarıdaki linkten am335x-evm-sdk-src-05.04.01.00.tar.gz dosyasını (AM335x SDK PSP Source Code) indirin. İçinde beagle bone için derlenen linux 3.2 kernel çıkacaktır. Kernel üzerinden /arch/arm/configs altında tisdk_am335x-evm_defconfig adı altında defconfig dosyasını bulabilirsiniz.

Kernel derleme için ise aşağıdaki linki takip edebilirsiniz.
http://processors.wiki.ti.com/index.php/AMSDK_Linux_User%27s_Guide


İyi çalışmalar.

Tagli

TI'ın SDK'sını çekip kurmayı denemiştim. Ben yeni çıkan Ubuntu 12.04'e geçmiştim ama SDK 10.04'ü desteklediğini söyleyerek kurulum sırasında uyarı veriyor ve devam edilmesini tavsiye etmiyordu. SDK güncellendi m? Yani 12.04 üzerinde sorunsuzca kurabilir miyim?
Gökçe Tağlıoğlu

tunayan

#9
Aslında 2 tane opsiyon var;

Birincisi sdk içindeki tisdk_am335x-evm_defconfig dosyasını kendi derlemek istediğiniz kernel içerisine koyup (fakat 3.0> olmalı çünkü am33xx .c dosyaları 3 ten sonra eklendi diye biliyorum emin olmamakla birlikte) derleyebilirsiniz. Bu şekilde ayrıca oluşturmuş olursunuz.

İkincisi, sdk yı kurmak aynı zamanda o kerneli kullanmak olacaktır. Bilgisayarınızda cross compile yapacaksınız yani başka bir işlemci için kernel derleyeceksiniz. O yüzden bilgisayarınız üzerindeki ubuntu sürümünün ya da kernel sürümünün hiç bir önemi yok. Bilgisayar kerneli derlerken onun ne olduğunu bile bilmeyecektir zaten verdiği çıktı da bilgisayarınızda çalışan objeler olmayacaktır. Sadece ARM tabanlı sistemlerde çalışan objeler olacaktır.

Bu arada TI ın sitesindeki 1gb lık sdk dan bahsetmiyorum 100mb lık bir kernel source file var. Onu indirirseniz onun içerisinde bulacaksınız;)


Tagli

tunayan, dediklerini bugün deneme imkanım oldu. Evet, ben o büyük 1.4 GB civarındaki dosyayı çekiyordum. Şimdi sadece 100 MB civarındaki kernel kodunu çektim ve tisdk_am335x-evm_defconfig ile derledim (CodeSourcery derleyicisi ile) ve kernel çalıştı. Elbette henüz rootfs kurmak ile uğraşmadığımdan kernel panic alıyorum ama buradan sonra ne yapmam gerektiği konusunda fikrim var en azından.

Yardım için çok teşekkürler...
Gökçe Tağlıoğlu

tunayan

rootfs için busybox kullanmıştım ben. Onun haricinde pek oluşturamadım. Busybox ile oluşturunca da usb sürücüleri sisteme ekleyemedim bir yerde bir paketi koymayı unutuyorum sanırım. Önemli değil. Sorunun çözüldüğüne sevindim. İyi çalışmalar.