Difference between revisions of "User:Collinjc"
m (Added some more listings and shell for chapter 5 listings) |
m (→Chapter 4) |
||
(3 intermediate revisions by the same user not shown) | |||
Line 78: | Line 78: | ||
</pre> | </pre> | ||
|- | |- | ||
− | | 2-2 | + | | '''2-2''' |
− | | 2-7 | + | | '''2-7''' |
− | | Loading the Linux Kernel | + | | '''Loading the Linux Kernel''' |
| <pre> | | <pre> | ||
2996196 bytes read | 2996196 bytes read | ||
Line 229: | Line 229: | ||
! Listing | ! Listing | ||
|- | |- | ||
− | | 4-1 | + | | '''4-1''' |
− | | 4-7 | + | | '''4-7''' |
− | | Kernel Build Output | + | | '''Kernel Build Output''' |
| <pre> LD init/built-in.o | | <pre> LD init/built-in.o | ||
scripts/kconfig/conf -s arch/arm/Kconfig | scripts/kconfig/conf -s arch/arm/Kconfig | ||
Line 877: | Line 877: | ||
|- | |- | ||
− | | 4-10 | + | | '''4-10''' |
− | | 4-32 | + | | '''4-32''' |
− | | Customized .config File Snippet | + | | '''Customized .config File Snippet''' |
| <pre> | | <pre> | ||
# | # | ||
Line 959: | Line 959: | ||
| Final Kernel Build Sequence: ARM/BeagleBoard | | Final Kernel Build Sequence: ARM/BeagleBoard | ||
| <pre> | | <pre> | ||
+ | $ export OETREE="${HOME}/oe" | ||
+ | $ PATH=${OETREE}/angstrom-dev/staging/i686-linux/usr/bin/:${PATH} | ||
+ | $ PATH=${OETREE}/angstrom-dev/cross/armv7a/bin/:${PATH} | ||
+ | $ make CROSS_CO UPD include/linux/compile.h | ||
+ | |||
+ | .... | ||
+ | |||
+ | CC init/version.o | ||
+ | LD init/built-in.o | ||
+ | LD .tmp_vmlinux1 | ||
+ | KSYM .tmp_kallsyms1.S | ||
+ | AS .tmp_kallsyms1.o | ||
+ | LD .tmp_vmlinux2 | ||
+ | KSYM .tmp_kallsyms2.S | ||
+ | AS .tmp_kallsyms2.o | ||
+ | LD vmlinux | ||
+ | SYSMAP System.map | ||
+ | SYSMAP .tmp_System.map | ||
+ | OBJCOPY arch/arm/boot/Image | ||
+ | Kernel: arch/arm/boot/Image is ready | ||
+ | AS arch/arm/boot/compressed/head.o | ||
+ | GZIP arch/arm/boot/compressed/piggy.gz | ||
+ | AS arch/arm/boot/compressed/piggy.o | ||
+ | CC arch/arm/boot/compressed/misc.o | ||
+ | LD arch/arm/boot/compressed/vmlinux | ||
+ | OBJCOPY arch/arm/boot/zImage | ||
+ | Kernel: arch/arm/boot/zImage is ready | ||
+ | UIMAGE arch/arm/boot/uImage | ||
+ | Image Name: Linux-2.6.29-omap1 | ||
+ | Created: Fri Apr 2 00:21:21 2010 | ||
+ | Image Type: ARM Linux Kernel Image (uncompressed) | ||
+ | Data Size: 2991252 Bytes = 2921.14 kB = 2.85 MB | ||
+ | Load Address: 80008000 | ||
+ | Entry Point: 80008000 | ||
+ | Image arch/arm/boot/uImage is readyMPILE=arm-angstrom-linux-gnueabi- uImage | ||
</pre> | </pre> | ||
Line 967: | Line 1,002: | ||
| Assembly File .../arch/arm/boot/compressed/piggy.S | | Assembly File .../arch/arm/boot/compressed/piggy.S | ||
| <pre> | | <pre> | ||
− | + | .section .piggydata,#alloc | |
+ | .globl input_data | ||
+ | input_data: | ||
+ | .incbin "arch/arm/boot/compressed/piggy.gz" | ||
+ | .globl input_data_end | ||
+ | input_data_end: | ||
</pre> | </pre> | ||
Line 974: | Line 1,014: | ||
| 5-7 | | 5-7 | ||
| Final Kernel Build Sequence: ARM/BeagleBoard | | Final Kernel Build Sequence: ARM/BeagleBoard | ||
− | | <pre> | + | | <pre>Reading boot sector |
+ | Loading u-boot.bin from mmc | ||
+ | |||
+ | |||
+ | U-Boot 2009.11-rc1 (Jan 08 2010 - 21:19:52) | ||
+ | |||
+ | OMAP3530-GP ES3.1, CPU-OPP2 L3-165MHz | ||
+ | OMAP3 Beagle board + LPDDR/NAND | ||
+ | I2C: ready | ||
+ | DRAM: 256 MB | ||
+ | NAND: 256 MiB | ||
+ | In: serial | ||
+ | Out: serial | ||
+ | Err: serial | ||
+ | Board revision C4 | ||
+ | Die ID #1e30000400000000040365fa1400400a | ||
+ | Hit any key to stop autoboot: 10 ��� 9 ��� 8 ��� 7 ��� 6 ��� 5 ��� 4 ��� 3 ��� 2 ��� 1 ��� 0 | ||
+ | mmc1 is available | ||
+ | reading uImage | ||
+ | |||
+ | 2996196 bytes read | ||
+ | ## Booting kernel from Legacy Image at 80300000 ... | ||
+ | Image Name: Angstrom/2.6.29/beagleboard | ||
+ | Image Type: ARM Linux Kernel Image (uncompressed) | ||
+ | Data Size: 2996132 Bytes = 2.9 MB | ||
+ | Load Address: 80008000 | ||
+ | Entry Point: 80008000 | ||
+ | Verifying Checksum ... OK | ||
+ | Loading Kernel Image ... OK | ||
+ | OK | ||
+ | |||
+ | Starting kernel ... | ||
+ | |||
+ | Uncompressing Linux.................................................................................................................................................................................................. done, booting the kernel. | ||
+ | [ 0.000000] Linux version 2.6.29-omap1 (koen@dominion) (gcc version 4.3.3 (GCC) ) #1 PREEMPT Wed Oct 21 13:11:52 CEST 2009 | ||
+ | [ 0.000000] CPU: ARMv7 Processor [411fc083] revision 3 (ARMv7), cr=10c5387f | ||
+ | [ 0.000000] CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache | ||
+ | [ 0.000000] Machine: OMAP3 Beagle Board | ||
+ | [ 0.000000] Memory policy: ECC disabled, Data cache writeback | ||
+ | [ 0.000000] OMAP3430 ES3.1 | ||
+ | [ 0.000000] SRAM: Mapped pa 0x40200000 to va 0xd7000000 size: 0x100000 | ||
+ | [ 0.000000] Reserving 14680064 bytes SDRAM for VRAM | ||
+ | [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 65024 | ||
+ | [ 0.000000] Kernel command line: console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait | ||
+ | [ 0.000000] Clocking rate (Crystal/DPLL/ARM core): 26.0/332/720 MHz | ||
+ | [ 0.000000] GPMC revision 5.0 | ||
+ | [ 0.000000] IRQ: Found an INTC at 0xd8200000 (revision 4.0) with 96 interrupts | ||
+ | [ 0.000000] Total of 96 interrupts on 1 active controller | ||
+ | [ 0.000000] OMAP34xx GPIO hardware version 2.5 | ||
+ | [ 0.000000] PID hash table entries: 1024 (order: 10, 4096 bytes) | ||
+ | [ 0.000000] OMAP clockevent source: GPTIMER12 at 32768 Hz | ||
+ | [ 0.000000] Console: colour dummy device 80x30 | ||
+ | [ 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: 128MB 128MB = 256MB total | ||
+ | [ 0.000000] Memory: 238848KB available (5632K code, 576K data, 204K init) | ||
+ | [ 0.000000] Calibrating delay loop... 740.48 BogoMIPS (lpj=2891776) | ||
+ | [ 0.000000] Mount-cache hash table entries: 512 | ||
+ | [ 0.000000] CPU: Testing write buffer coherency: ok | ||
+ | [ 0.000000] net_namespace: 1036 bytes | ||
+ | [ 0.000000] regulator: core version 0.5 | ||
+ | [ 0.000000] NET: Registered protocol family 16 | ||
+ | [ 0.000000] GPIO-156 autorequested | ||
+ | [ 0.000000] GPIO-159 autorequested | ||
+ | [ 0.000000] Found NAND on CS0 | ||
+ | [ 0.000000] Registering NAND on CS0 | ||
+ | [ 3130.761016] OMAP DMA hardware revision 4.0 | ||
+ | [ 3130.794372] bio: create slab <bio-0> at 0 | ||
+ | [ 3130.854797] OMAP DSS rev 2.0 | ||
+ | [ 3130.854888] OMAP DISPC rev 3.0 | ||
+ | [ 3130.854919] OMAP VENC rev 2 | ||
+ | [ 3130.855041] OMAP DSI rev 1.0 | ||
+ | [ 3130.870819] i2c_omap i2c_omap.1: bus 1 rev3.12 at 2600 kHz | ||
+ | [ 3130.874114] twl4030: PIH (irq 7) chaining IRQs 368..375 | ||
+ | [ 3130.874145] twl4030: power (irq 373) chaining IRQs 376..383 | ||
+ | [ 3130.874603] twl4030: gpio (irq 368) chaining IRQs 384..401 | ||
+ | [ 3130.876922] regulator: VMMC1: 1850 <--> 3150 mV normal standby | ||
+ | [ 3130.877655] regulator: VDAC: 1800 mV normal standby | ||
+ | [ 3130.878356] regulator: VUSB1V5: 1500 <--> 0 mV normal standby | ||
+ | [ 3130.879211] regulator: VUSB1V8: 1800 <--> 0 mV normal standby | ||
+ | [ 3130.879913] regulator: VUSB3V1: 3100 <--> 0 mV normal standby | ||
+ | [ 3130.880615] regulator: VPLL2: 1800 mV normal standby | ||
+ | [ 3130.881347] regulator: VMMC2: 2800 <--> 3150 mV normal standby | ||
+ | [ 3130.882049] regulator: VSIM: 1800 <--> 3000 mV normal standby | ||
+ | [ 3130.882202] i2c_omap i2c_omap.2: bus 2 rev3.12 at 400 kHz | ||
+ | [ 3130.894989] i2c_omap i2c_omap.3: bus 3 rev3.12 at 100 kHz | ||
+ | [ 3130.896759] SCSI subsystem initialized | ||
+ | [ 3130.899688] twl4030_usb twl4030_usb: Initialized TWL4030 USB module | ||
+ | [ 3130.900909] usbcore: registered new interface driver usbfs | ||
+ | [ 3130.901367] usbcore: registered new interface driver hub | ||
+ | [ 3130.901702] usbcore: registered new device driver usb | ||
+ | [ 3130.904205] Bluetooth: Core ver 2.14 | ||
+ | [ 3130.904632] NET: Registered protocol family 31 | ||
+ | [ 3130.904632] Bluetooth: HCI device and connection manager initialized | ||
+ | [ 3130.904663] Bluetooth: HCI socket layer initialized | ||
+ | [ 3130.905242] cfg80211: Using static regulatory domain info | ||
+ | [ 3130.905242] cfg80211: Regulatory domain: US | ||
+ | [ 3130.905273] (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp) | ||
+ | [ 3130.905273] (2402000 KHz - 2472000 KHz @ 40000 KHz), (600 mBi, 2700 mBm) | ||
+ | [ 3130.905303] (5170000 KHz - 5190000 KHz @ 40000 KHz), (600 mBi, 2300 mBm) | ||
+ | [ 3130.905303] (5190000 KHz - 5210000 KHz @ 40000 KHz), (600 mBi, 2300 mBm) | ||
+ | [ 3130.905334] (5210000 KHz - 5230000 KHz @ 40000 KHz), (600 mBi, 2300 mBm) | ||
+ | [ 3130.905334] (5230000 KHz - 5330000 KHz @ 40000 KHz), (600 mBi, 2300 mBm) | ||
+ | [ 3130.905364] (5735000 KHz - 5835000 KHz @ 40000 KHz), (600 mBi, 3000 mBm) | ||
+ | [ 3130.905364] cfg80211: Calling CRDA for country: US | ||
+ | [ 3130.908111] musb_hdrc: version 6.0, musb-dma, otg (peripheral+host), debug=0 | ||
+ | [ 3130.910308] musb_hdrc: USB OTG mode controller at d80ab000 using DMA, IRQ 92 | ||
+ | [ 3130.911560] NET: Registered protocol family 2 | ||
+ | [ 3130.911804] IP route cache hash table entries: 2048 (order: 1, 8192 bytes) | ||
+ | [ 3130.912292] TCP established hash table entries: 8192 (order: 4, 65536 bytes) | ||
+ | [ 3130.912445] TCP bind hash table entries: 8192 (order: 3, 32768 bytes) | ||
+ | [ 3130.912567] TCP: Hash tables configured (established 8192 bind 8192) | ||
+ | [ 3130.912567] TCP reno registered | ||
+ | [ 3130.912780] NET: Registered protocol family 1 | ||
+ | [ 3130.916107] VFS: Disk quotas dquot_6.5.2 | ||
+ | [ 3130.916168] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes) | ||
+ | [ 3130.916656] squashfs: version 4.0 (2009/01/31) Phillip Lougher | ||
+ | [ 3130.917236] JFFS2 version 2.2. (NAND) (SUMMARY) © 2001-2006 Red Hat, Inc. | ||
+ | [ 3130.917938] msgmni has been set to 466 | ||
+ | [ 3130.921691] alg: No test for stdrng (krng) | ||
+ | [ 3130.921783] io scheduler noop registered | ||
+ | [ 3130.921783] io scheduler anticipatory registered | ||
+ | [ 3130.921813] io scheduler deadline registered | ||
+ | [ 3130.921966] io scheduler cfq registered (default) | ||
+ | [ 3130.941101] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled | ||
+ | [ 3130.963867] serial8250.0: ttyS0 at MMIO 0x4806a000 (irq = 72) is a ST16654 | ||
+ | [ 3130.985321] serial8250.0: ttyS1 at MMIO 0x4806c000 (irq = 73) is a ST16654 | ||
+ | [ 3131.007293] serial8250.0: ttyS2 at MMIO 0x49020000 (irq = 74) is a ST16654 | ||
+ | [ 3131.007324] console [ttyS2] enabled | ||
+ | [ 3131.527282] brd: module loaded | ||
+ | [ 3131.535125] loop: module loaded | ||
+ | [ 3131.538909] enc28j60 spi4.0: enc28j60 Ethernet driver 1.01 loaded | ||
+ | [ 3131.547546] enc28j60 spi4.0: enc28j60 chip not found | ||
+ | [ 3131.552612] enc28j60: probe of spi4.0 failed with error -5 | ||
+ | [ 3131.558593] usbcore: registered new interface driver catc | ||
+ | [ 3131.564178] catc: v2.8:CATC EL1210A NetMate USB Ethernet driver | ||
+ | [ 3131.570770] usbcore: registered new interface driver kaweth | ||
+ | [ 3131.576416] pegasus: v0.6.14 (2006/09/27), Pegasus/Pegasus II USB Ethernet driver | ||
+ | [ 3131.584228] usbcore: registered new interface driver pegasus | ||
+ | [ 3131.589935] rtl8150: v0.6.2 (2004/08/27):rtl8150 based usb-ethernet driver | ||
+ | [ 3131.597106] usbcore: registered new interface driver rtl8150 | ||
+ | [ 3131.603057] usbcore: registered new interface driver asix | ||
+ | [ 3131.608734] usbcore: registered new interface driver cdc_ether | ||
+ | [ 3131.614837] usbcore: registered new interface driver dm9601 | ||
+ | [ 3131.620666] usbcore: registered new interface driver smsc95xx | ||
+ | [ 3131.626708] usbcore: registered new interface driver gl620a | ||
+ | [ 3131.632598] usbcore: registered new interface driver net1080 | ||
+ | [ 3131.638519] usbcore: registered new interface driver plusb | ||
+ | [ 3131.644256] usbcore: registered new interface driver rndis_host | ||
+ | [ 3131.650482] usbcore: registered new interface driver cdc_subset | ||
+ | [ 3131.656646] usbcore: registered new interface driver zaurus | ||
+ | [ 3131.662536] usbcore: registered new interface driver MOSCHIP usb-ethernet driver | ||
+ | [ 3131.670257] Broadcom 43xx driver loaded [ Features: L, Firmware-ID: FW13 ] | ||
+ | [ 3131.677551] usbcore: registered new interface driver zd1211rw | ||
+ | [ 3131.683532] usbcore: registered new interface driver rtl8187 | ||
+ | [ 3131.689514] usbcore: registered new interface driver rndis_wlan | ||
+ | [ 3131.695739] usbcore: registered new interface driver zd1201 | ||
+ | [ 3131.701629] usbcore: registered new interface driver usb8xxx | ||
+ | [ 3131.707550] usbcore: registered new interface driver rt2500usb | ||
+ | [ 3131.713714] usbcore: registered new interface driver rt73usb | ||
+ | [ 3131.719665] usbcore: registered new interface driver p54usb | ||
+ | [ 3131.725341] i2c /dev entries driver | ||
+ | [ 3131.730346] Driver 'sd' needs updating - please use bus_type methods | ||
+ | [ 3131.736968] Driver 'sr' needs updating - please use bus_type methods | ||
+ | [ 3131.744293] omap2-nand driver initializing | ||
+ | [ 3131.748718] NAND device: Manufacturer ID: 0x2c, Chip ID: 0xba (Micron NAND 256MiB 1,8V 16-bit) | ||
+ | [ 3131.757751] cmdlinepart partition parsing not available | ||
+ | [ 3131.763061] Creating 5 MTD partitions on "omap2-nand": | ||
+ | [ 3131.768218] 0x000000000000-0x000000080000 : "X-Loader" | ||
+ | [ 3131.775146] 0x000000080000-0x000000260000 : "U-Boot" | ||
+ | [ 3131.782012] 0x000000260000-0x000000280000 : "U-Boot Env" | ||
+ | [ 3131.788452] 0x000000280000-0x000000680000 : "Kernel" | ||
+ | [ 3131.796173] 0x000000680000-0x000010000000 : "File System" | ||
+ | [ 3131.911987] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver | ||
+ | [ 3131.918853] ehci-omap ehci-omap.0: OMAP-EHCI Host Controller | ||
+ | [ 3131.925384] ehci-omap ehci-omap.0: new USB bus registered, assigned bus number 1 | ||
+ | [ 3131.933166] ehci-omap ehci-omap.0: irq 77, io mem 0x48064800 | ||
+ | [ 3131.950286] ehci-omap ehci-omap.0: USB 2.0 started, EHCI 1.00 | ||
+ | [ 3131.956695] usb usb1: configuration #1 chosen from 1 choice | ||
+ | [ 3131.962738] hub 1-0:1.0: USB hub found | ||
+ | [ 3131.966583] hub 1-0:1.0: 3 ports detected | ||
+ | [ 3131.972351] Initializing USB Mass Storage driver... | ||
+ | [ 3131.977630] usbcore: registered new interface driver usb-storage | ||
+ | [ 3131.983734] USB Mass Storage support registered. | ||
+ | [ 3131.988922] mice: PS/2 mouse device common for all mice | ||
+ | [ 3131.994750] input: gpio-keys as /devices/platform/gpio-keys/input/input0 | ||
+ | [ 3132.003601] input: twl4030_pwrbutton as /devices/platform/i2c_omap.1/i2c-adapter/i2c-1/1-0049/twl4030_pwrbutton/input/input1 | ||
+ | [ 3132.295349] usb 1-2: new high speed USB device using ehci-omap and address 2 | ||
+ | [ 3132.459320] usb 1-2: configuration #1 chosen from 1 choice | ||
+ | [ 3132.465362] hub 1-2:1.0: USB hub found | ||
+ | [ 3132.469390] hub 1-2:1.0: 4 ports detected | ||
+ | [ 3132.763183] usb 1-2.1: new high speed USB device using ehci-omap and address 3 | ||
+ | [ 3132.902313] usb 1-2.1: configuration #1 chosen from 1 choice | ||
+ | [ 3133.013031] i2c_omap i2c_omap.2: controller timed out | ||
+ | [ 3133.018157] rtc-ds1307: probe of 2-0068 failed with error -5 | ||
+ | [ 3133.025421] OMAP Watchdog Timer Rev 0x31: initial timeout 60 sec | ||
+ | [ 3133.031738] Bluetooth: HCI UART driver ver 2.2 | ||
+ | [ 3133.036254] Bluetooth: HCI H4 protocol initialized | ||
+ | [ 3133.041076] Bluetooth: HCI BCSP protocol initialized | ||
+ | [ 3133.046112] Bluetooth: HCILL protocol initialized | ||
+ | [ 3133.050842] Bluetooth: Broadcom Blutonium firmware driver ver 1.2 | ||
+ | [ 3133.057281] usbcore: registered new interface driver bcm203x | ||
+ | [ 3133.063018] Bluetooth: Digianswer Bluetooth USB driver ver 0.10 | ||
+ | [ 3133.069213] usbcore: registered new interface driver bpa10x | ||
+ | [ 3133.074829] Bluetooth: BlueFRITZ! USB driver ver 1.2 | ||
+ | [ 3133.080078] usbcore: registered new interface driver bfusb | ||
+ | [ 3133.085845] Bluetooth: Generic Bluetooth USB driver ver 0.4 | ||
+ | [ 3133.091796] usbcore: registered new interface driver btusb | ||
+ | [ 3133.097381] Bluetooth: Generic Bluetooth SDIO driver ver 0.1 | ||
+ | [ 3133.104034] mmci-omap-hs mmci-omap-hs.0: Failed to get debounce clock | ||
+ | [ 3133.216308] mmci-omap-hs mmci-omap-hs.1: Failed to get debounce clock | ||
+ | [ 3133.222869] regulator: Unable to get requested regulator: vmmc_aux | ||
+ | [ 3133.231506] Registered led device: beagleboard::usr0 | ||
+ | [ 3133.236785] Registered led device: beagleboard::usr1 | ||
+ | [ 3133.247497] usbcore: registered new interface driver usbhid | ||
+ | [ 3133.253143] usbhid: v2.6:USB HID core driver | ||
+ | [ 3133.258453] Advanced Linux Sound Architecture Driver Version 1.0.18a. | ||
+ | [ 3133.265960] usbcore: registered new interface driver snd-usb-audio | ||
+ | [ 3133.272521] No device for DAI twl4030 | ||
+ | [ 3133.276214] No device for DAI omap-mcbsp-dai-0 | ||
+ | [ 3133.280883] No device for DAI omap-mcbsp-dai-1 | ||
+ | [ 3133.285339] No device for DAI omap-mcbsp-dai-2 | ||
+ | [ 3133.289947] No device for DAI omap-mcbsp-dai-3 | ||
+ | [ 3133.294433] No device for DAI omap-mcbsp-dai-4 | ||
+ | [ 3133.298919] OMAP3 Beagle SoC init | ||
+ | [ 3133.302642] TWL4030 Audio Codec init | ||
+ | [ 3133.307403] asoc: twl4030 <-> omap-mcbsp-dai-0 mapping ok | ||
+ | [ 3133.321624] ALSA device list: | ||
+ | [ 3133.324615] #0: omap3beagle (twl4030) | ||
+ | [ 3133.329040] oprofile: using arm/armv7 | ||
+ | [ 3133.332916] TCP cubic registered | ||
+ | [ 3133.336303] NET: Registered protocol family 17 | ||
+ | [ 3133.340850] NET: Registered protocol family 15 | ||
+ | [ 3133.345367] Bluetooth: L2CAP ver 2.11 | ||
+ | [ 3133.349090] Bluetooth: L2CAP socket layer initialized | ||
+ | [ 3133.354156] Bluetooth: SCO (Voice Link) ver 0.6 | ||
+ | [ 3133.358764] Bluetooth: SCO socket layer initialized | ||
+ | [ 3133.369445] Bluetooth: RFCOMM socket layer initialized | ||
+ | [ 3133.374755] Bluetooth: RFCOMM TTY layer initialized | ||
+ | [ 3133.379669] Bluetooth: RFCOMM ver 1.10 | ||
+ | [ 3133.383453] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 | ||
+ | [ 3133.388824] Bluetooth: BNEP filters: protocol multicast | ||
+ | [ 3133.394073] Bluetooth: HIDP (Human Interface Emulation) ver 1.2 | ||
+ | [ 3133.403198] RPC: Registered udp transport module. | ||
+ | [ 3133.407989] RPC: Registered tcp transport module. | ||
+ | [ 3133.412841] lib80211: common routines for IEEE802.11 drivers | ||
+ | [ 3133.418609] ThumbEE CPU extension supported. | ||
+ | [ 3133.423156] Power Management for TI OMAP3. | ||
+ | [ 3133.433868] Disabling unused clock "sr2_fck" | ||
+ | [ 3133.438262] Disabling unused clock "sr1_fck" | ||
+ | [ 3133.442596] Disabling unused clock "mcbsp_fck" | ||
+ | [ 3133.447052] Disabling unused clock "mcbsp_fck" | ||
+ | [ 3133.451538] Disabling unused clock "mcbsp_fck" | ||
+ | [ 3133.456024] Disabling unused clock "mcbsp_ick" | ||
+ | [ 3133.460510] Disabling unused clock "mcbsp_ick" | ||
+ | [ 3133.464996] Disabling unused clock "mcbsp_ick" | ||
+ | [ 3133.469482] Disabling unused clock "gpt2_ick" | ||
+ | [ 3133.473876] Disabling unused clock "gpt3_ick" | ||
+ | [ 3133.478271] Disabling unused clock "gpt4_ick" | ||
+ | [ 3133.482666] Disabling unused clock "gpt5_ick" | ||
+ | [ 3133.487060] Disabling unused clock "gpt6_ick" | ||
+ | [ 3133.491455] Disabling unused clock "gpt7_ick" | ||
+ | [ 3133.495849] Disabling unused clock "gpt8_ick" | ||
+ | [ 3133.500244] Disabling unused clock "gpt9_ick" | ||
+ | [ 3133.504608] Disabling unused clock "wdt3_ick" | ||
+ | [ 3133.509033] Disabling unused clock "wdt3_fck" | ||
+ | [ 3133.513641] Disabling unused clock "gpio2_dbck" | ||
+ | [ 3133.518188] Disabling unused clock "gpio3_dbck" | ||
+ | [ 3133.522766] Disabling unused clock "gpio4_dbck" | ||
+ | [ 3133.527343] Disabling unused clock "gpio5_dbck" | ||
+ | [ 3133.531921] Disabling unused clock "gpio6_dbck" | ||
+ | [ 3133.536499] Disabling unused clock "gpt9_fck" | ||
+ | [ 3133.540863] Disabling unused clock "gpt8_fck" | ||
+ | [ 3133.545288] Disabling unused clock "gpt7_fck" | ||
+ | [ 3133.549652] Disabling unused clock "gpt6_fck" | ||
+ | [ 3133.554077] Disabling unused clock "gpt5_fck" | ||
+ | [ 3133.558441] Disabling unused clock "gpt4_fck" | ||
+ | [ 3133.562866] Disabling unused clock "gpt3_fck" | ||
+ | [ 3133.567230] Disabling unused clock "gpt2_fck" | ||
+ | [ 3133.571655] Disabling unused clock "gpt1_ick" | ||
+ | [ 3133.576049] Disabling unused clock "wdt1_ick" | ||
+ | [ 3133.580413] Disabling unused clock "wdt2_ick" | ||
+ | [ 3133.584838] Disabling unused clock "wdt2_fck" | ||
+ | [ 3133.589202] Disabling unused clock "gpio1_dbck" | ||
+ | [ 3133.593780] Disabling unused clock "gpt1_fck" | ||
+ | [ 3133.598175] Disabling unused clock "cam_ick" | ||
+ | [ 3133.602508] Disabling unused clock "cam_mclk" | ||
+ | [ 3133.607116] Disabling unused clock "des1_ick" | ||
+ | [ 3133.611511] Disabling unused clock "sha11_ick" | ||
+ | [ 3133.615997] Disabling unused clock "rng_ick" | ||
+ | [ 3133.620300] Disabling unused clock "aes1_ick" | ||
+ | [ 3133.624694] Disabling unused clock "ssi_ick" | ||
+ | [ 3133.628997] Disabling unused clock "mailboxes_ick" | ||
+ | [ 3133.633850] Disabling unused clock "mcbsp_ick" | ||
+ | [ 3133.638336] Disabling unused clock "mcbsp_ick" | ||
+ | [ 3133.642791] Disabling unused clock "gpt10_ick" | ||
+ | [ 3133.647277] Disabling unused clock "gpt11_ick" | ||
+ | [ 3133.651763] Disabling unused clock "hdq_ick" | ||
+ | [ 3133.656066] Disabling unused clock "mspro_ick" | ||
+ | [ 3133.660552] Disabling unused clock "des2_ick" | ||
+ | [ 3133.664947] Disabling unused clock "sha12_ick" | ||
+ | [ 3133.669433] Disabling unused clock "aes2_ick" | ||
+ | [ 3133.673828] Disabling unused clock "icr_ick" | ||
+ | [ 3133.678131] Disabling unused clock "pka_ick" | ||
+ | [ 3133.682434] Disabling unused clock "ssi_ssr_fck" | ||
+ | [ 3133.687103] Disabling unused clock "hdq_fck" | ||
+ | [ 3133.691406] Disabling unused clock "mcbsp_fck" | ||
+ | [ 3133.695892] Disabling unused clock "mcbsp_fck" | ||
+ | [ 3133.700561] Disabling unused clock "mspro_fck" | ||
+ | [ 3133.705047] Disabling unused clock "gpt11_fck" | ||
+ | [ 3133.709533] Disabling unused clock "gpt10_fck" | ||
+ | [ 3133.713989] Disabling unused clock "dpll4_m6x2_ck" | ||
+ | [ 3133.718841] Disabling unused clock "dpll3_m3x2_ck" | ||
+ | [ 3133.723693] Disabling unused clock "sys_clkout1" | ||
+ | [ 3133.728363] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 1 | ||
+ | [ 3133.742828] registered taskstats version 1 | ||
+ | [ 3133.764251] Console: switching to colour frame buffer device 80x30 | ||
+ | [ 3133.778198] clock: clksel_round_rate_div: dpll4_m4_ck target_rate 48000000 | ||
+ | [ 3133.785125] clock: new_div = 9, new_rate = 48000000 | ||
+ | [ 3133.795593] drivers/rtc/hctosys.c: unable to open rtc device (rtc0) | ||
+ | [ 3133.887939] mmc0: new high speed SDHC card at address a9ed | ||
+ | [ 3133.894042] mmcblk0: mmc0:a9ed SD08G 7.42 GiB | ||
+ | [ 3133.898986] mmcblk0: p1 p2 | ||
+ | [ 3134.070312] eth0 (asix): not using net_device_ops yet | ||
+ | [ 3134.076110] eth0: register 'asix' at usb-ehci-omap.0-2.1, ASIX AX88772 USB 2.0 Ethernet, 00:50:b6:06:c3:f3 | ||
+ | [ 3134.134582] kjournald starting. Commit interval 5 seconds | ||
+ | [ 3134.169372] usb 1-2.4: new high speed USB device using ehci-omap and address 4 | ||
+ | [ 3134.295684] usb 1-2.4: configuration #1 chosen from 1 choice | ||
+ | [ 3134.301910] hub 1-2.4:1.0: USB hub found | ||
+ | [ 3134.305999] hub 1-2.4:1.0: 4 ports detected | ||
+ | [ 3134.390747] EXT3 FS on mmcblk0p2, internal journal | ||
+ | [ 3134.395599] EXT3-fs: mounted filesystem with ordered data mode. | ||
+ | [ 3134.401641] VFS: Mounted root (ext3 filesystem) on device 179:2. | ||
+ | [ 3134.407836] Freeing init memory: 204K | ||
+ | |||
+ | INIT: version 2.86 booting | ||
+ | |||
+ | Starting udev[ 3140.940948] twl4030_rtc twl4030_rtc: rtc core: registered twl4030_rtc as rtc0 | ||
+ | [ 3140.948486] twl4030_rtc twl4030_rtc: Power up reset detected. | ||
+ | [ 3141.017303] twl4030_rtc twl4030_rtc: Enabling TWL4030-RTC. | ||
+ | [ 3141.952758] uncorrectable error : <3>end_request: I/O error, dev mtdblock0, sector 0 | ||
+ | [ 3141.960601] Buffer I/O error on device mtdblock0, logical block 0 | ||
+ | [ 3142.023376] uncorrectable error : <3>end_request: I/O error, dev mtdblock0, sector 8 | ||
+ | [ 3142.031188] Buffer I/O error on device mtdblock0, logical block 1 | ||
+ | [ 3142.067901] uncorrectable error : <3>end_request: I/O error, dev mtdblock0, sector 16 | ||
+ | [ 3142.075836] Buffer I/O error on device mtdblock0, logical block 2 | ||
+ | [ 3142.100311] uncorrectable error : <3>end_request: I/O error, dev mtdblock0, sector 24 | ||
+ | [ 3142.108215] Buffer I/O error on device mtdblock0, logical block 3 | ||
+ | [ 3142.139556] uncorrectable error : <3>end_request: I/O error, dev mtdblock0, sector 0 | ||
+ | [ 3142.162719] Buffer I/O error on device mtdblock0, logical block 0 | ||
+ | and populating dev cache | ||
+ | Remounting root file system... | ||
+ | [ 3147.624511] NET: Registered protocol family 10 | ||
+ | [ 3147.699707] NET: Registered protocol family 23 | ||
+ | [ 3147.727874] IrCOMM protocol (Dag Brattli) | ||
+ | Unknown HZ value! (70) Assume 100. | ||
+ | ALSA: Restoring mixer settings... | ||
+ | Configuring network interfaces... [ 3149.568145] eth0: link up, 100Mbps, full-duplex, lpa 0x45E1 | ||
+ | eth0 no wireless extensions. | ||
+ | |||
+ | udhcpc (v1.13.2) started | ||
+ | run-parts: /etc/udhcpc.d/00avahi-autoipd exited with code 1 | ||
+ | Sending discover... | ||
+ | [ 3149.732147] eth0: link up, 100Mbps, full-duplex, lpa 0x45E1 | ||
+ | Sending discover... | ||
+ | Sending select for 192.168.1.108... | ||
+ | Lease of 192.168.1.108 obtained, lease time 86400 | ||
+ | run-parts: /etc/udhcpc.d/00avahi-autoipd exited with code 1 | ||
+ | adding dns 192.168.1.1 | ||
+ | done. | ||
+ | Starting portmap daemon: portmap. | ||
+ | Unknown HZ value! (75) Assume 100. | ||
+ | net.ipv4.conf.default.rp_filter = 1 | ||
+ | net.ipv4.conf.all.rp_filter = 1 | ||
+ | Wed Mar 10 03:00:00 GMT 2010 | ||
+ | |||
+ | INIT: Entering runlevel: 5 | ||
+ | |||
+ | Configuring leds: | ||
+ | beagleboard::usr0: heartbeat | ||
+ | beagleboard::usr1: mmc0 | ||
+ | Starting Dropbear SSH server: dropbear. | ||
+ | Starting advanced power management daemon: No APM support in kernel | ||
+ | (failed.) | ||
+ | Starting Vixie-cron. | ||
+ | Starting system message bus: dbus. | ||
+ | Starting Hardware abstraction layer hald | ||
+ | Starting syslogd/klogd: done | ||
+ | * Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon | ||
+ | [ ok ] | ||
+ | Starting Connection Manager | ||
+ | Running ntpdate to synchronize clock. | ||
+ | Starting GPE display manager: gpe-dm | ||
+ | |||
+ | .-------. | ||
+ | | | .-. | ||
+ | | | |-----.-----.-----.| | .----..-----.-----. | ||
+ | | | | __ | ---'| '--.| .-'| | | | ||
+ | | | | | | |--- || --'| | | ' | | | | | ||
+ | '---'---'--'--'--. |-----''----''--' '-----'-'-'-' | ||
+ | -' | | ||
+ | '---' | ||
+ | |||
+ | The Angstrom Distribution beagleboard ttyS2 | ||
+ | |||
+ | Angstrom 2009.X-stable beagleboard ttyS2 | ||
+ | beagleboard login: root | ||
</pre> | </pre> | ||
Line 983: | Line 1,429: | ||
| Console Setup Code Snippet from .../kernel/printk.c | | Console Setup Code Snippet from .../kernel/printk.c | ||
| <pre> | | <pre> | ||
+ | * Set up a list of consoles. Called from init/main.c | ||
+ | */ | ||
+ | static int __init console_setup(char *str) | ||
+ | { | ||
+ | char buf[sizeof(console_cmdline[0].name) + 4]; /* 4 for index */ | ||
+ | char *s, *options, *brl_options = NULL; | ||
+ | int idx; | ||
+ | |||
+ | #ifdef CONFIG_A11Y_BRAILLE_CONSOLE | ||
+ | if (!memcmp(str, "brl,", 4)) { | ||
+ | brl_options = ""; | ||
+ | str += 4; | ||
+ | } else if (!memcmp(str, "brl=", 4)) { | ||
+ | brl_options = str + 4; | ||
+ | str = strchr(brl_options, ','); | ||
+ | if (!str) { | ||
+ | printk(KERN_ERR "need port name after brl=\n"); | ||
+ | return 1; | ||
+ | } | ||
+ | *(str++) = 0; | ||
+ | } | ||
+ | #endif | ||
+ | |||
+ | /* | ||
+ | * Decode str into name, index, options. | ||
+ | */ | ||
+ | if (str[0] >= '0' && str[0] <= '9') { | ||
+ | strcpy(buf, "ttyS"); | ||
+ | strncpy(buf + 4, str, sizeof(buf) - 5); | ||
+ | } else { | ||
+ | strncpy(buf, str, sizeof(buf) - 1); | ||
+ | } | ||
+ | buf[sizeof(buf) - 1] = 0; | ||
+ | if ((options = strchr(str, ',')) != NULL) | ||
+ | *(options++) = 0; | ||
+ | #ifdef __sparc__ | ||
+ | if (!strcmp(str, "ttya")) | ||
+ | strcpy(buf, "ttyS0"); | ||
+ | if (!strcmp(str, "ttyb")) | ||
+ | strcpy(buf, "ttyS1"); | ||
+ | #endif | ||
+ | for (s = buf; *s; s++) | ||
+ | if ((*s >= '0' && *s <= '9') || *s == ',') | ||
+ | break; | ||
+ | idx = simple_strtoul(s, NULL, 10); | ||
+ | *s = 0; | ||
+ | __add_preferred_console(buf, idx, options, brl_options); | ||
+ | console_set_on_cmdline = 1; | ||
+ | return 1; | ||
+ | } | ||
+ | __setup("console=", console_setup); | ||
</pre> | </pre> | ||
Line 991: | Line 1,488: | ||
| Family of __setup Macro Definitions from .../include/linux/init.h | | Family of __setup Macro Definitions from .../include/linux/init.h | ||
| <pre> | | <pre> | ||
+ | #define __setup_param(str, unique_id, fn, early) \ | ||
+ | static char __setup_str_##unique_id[] __initdata __aligned(1) = str; \ | ||
+ | static struct obs_kernel_param __setup_##unique_id \ | ||
+ | __used __section(.init.setup) \ | ||
+ | __attribute__((aligned((sizeof(long))))) \ | ||
+ | = { __setup_str_##unique_id, fn, early } | ||
+ | #define __setup(str, fn) \ | ||
+ | __setup_param(str, fn, fn, 0) | ||
</pre> | </pre> | ||
Line 999: | Line 1,504: | ||
| Kernel Command Line Processing | | Kernel Command Line Processing | ||
| <pre> | | <pre> | ||
+ | extern struct obs_kernel_param __setup_start[], __setup_end[]; | ||
+ | static int __init obsolete_checksetup(char *line) | ||
+ | { | ||
+ | struct obs_kernel_param *p; | ||
+ | int had_early_param = 0; | ||
+ | |||
+ | p = __setup_start; | ||
+ | do { | ||
+ | int n = strlen(p->str); | ||
+ | if (!strncmp(line, p->str, n)) { | ||
+ | if (p->early) { | ||
+ | /* Already done in parse_early_param? | ||
+ | * (Needs exact match on param part). | ||
+ | * Keep iterating, as we can have early | ||
+ | * params and __setups of same names 8( */ | ||
+ | if (line[n] == '\0' || line[n] == '=') | ||
+ | had_early_param = 1; | ||
+ | } else if (!p->setup_func) { | ||
+ | printk(KERN_WARNING "Parameter %s is obsolete," | ||
+ | " ignored\n", p->str); | ||
+ | return 1; | ||
+ | } else if (p->setup_func(line + n)) | ||
+ | return 1; | ||
+ | } | ||
+ | p++; | ||
+ | } while (p < __setup_end); | ||
+ | |||
+ | return had_early_param; | ||
+ | } | ||
</pre> | </pre> | ||
Line 1,007: | Line 1,541: | ||
| Example Initialization Routine - .../arch/arm/kernel/setup.c | | Example Initialization Routine - .../arch/arm/kernel/setup.c | ||
| <pre> | | <pre> | ||
+ | static void (*init_machine)(void) __initdata; | ||
+ | static int __init customize_machine(void) | ||
+ | { | ||
+ | /* customizes platform devices, or adds new ones */ | ||
+ | if (init_machine) | ||
+ | init_machine(); | ||
+ | return 0; | ||
+ | } | ||
+ | arch_initcall(customize_machine); | ||
</pre> | </pre> | ||
Line 1,015: | Line 1,558: | ||
| initcall Family of Macros - .../include/linux/init.h | | initcall Family of Macros - .../include/linux/init.h | ||
| <pre> | | <pre> | ||
+ | #define __define_initcall(level,fn,id) \ | ||
+ | static initcall_t __initcall_##fn##id __used \ | ||
+ | __attribute__((__section__(".initcall" level ".init"))) = fn | ||
+ | |||
+ | /* | ||
+ | * Early initcalls run before initializing SMP. | ||
+ | * | ||
+ | * Only for built-in code, not modules. | ||
+ | */ | ||
+ | #define early_initcall(fn) __define_initcall("early",fn,early) | ||
+ | |||
+ | /* | ||
+ | * A "pure" initcall has no dependencies on anything else, and purely | ||
+ | * initializes variables that couldn't be statically initialized. | ||
+ | * | ||
+ | * This only exists for built-in code, not for modules. | ||
+ | */ | ||
+ | #define pure_initcall(fn) __define_initcall("0",fn,0) | ||
+ | |||
+ | #define core_initcall(fn) __define_initcall("1",fn,1) | ||
+ | #define core_initcall_sync(fn) __define_initcall("1s",fn,1s) | ||
+ | #define postcore_initcall(fn) __define_initcall("2",fn,2) | ||
+ | #define postcore_initcall_sync(fn) __define_initcall("2s",fn,2s) | ||
+ | #define arch_initcall(fn) __define_initcall("3",fn,3) | ||
+ | #define arch_initcall_sync(fn) __define_initcall("3s",fn,3s) | ||
+ | #define subsys_initcall(fn) __define_initcall("4",fn,4) | ||
+ | #define subsys_initcall_sync(fn) __define_initcall("4s",fn,4s) | ||
+ | #define fs_initcall(fn) __define_initcall("5",fn,5) | ||
+ | #define fs_initcall_sync(fn) __define_initcall("5s",fn,5s) | ||
+ | #define rootfs_initcall(fn) __define_initcall("rootfs",fn,rootfs) | ||
+ | #define device_initcall(fn) __define_initcall("6",fn,6) | ||
+ | #define device_initcall_sync(fn) __define_initcall("6s",fn,6s) | ||
+ | #define late_initcall(fn) __define_initcall("7",fn,7) | ||
+ | #define late_initcall_sync(fn) __define_initcall("7s",fn,7s) | ||
+ | |||
+ | #define __initcall(fn) device_initcall(fn) | ||
+ | |||
+ | #define __exitcall(fn) \ | ||
</pre> | </pre> | ||
Line 1,023: | Line 1,604: | ||
| Creation of Kernel init Thread | | Creation of Kernel init Thread | ||
| <pre> | | <pre> | ||
+ | static noinline void __init_refok rest_init(void) | ||
+ | __releases(kernel_lock) | ||
+ | { | ||
+ | int pid; | ||
+ | kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND); | ||
+ | numa_default_policy(); | ||
+ | pid = kernel_thread(kthreadd, NULL, CLONE_FS | CLONE_FILES); | ||
+ | kthreadd_task = find_task_by_pid_ns(pid, &init_pid_ns); | ||
+ | unlock_kernel(); | ||
+ | /* | ||
+ | * The boot idle thread must execute schedule() | ||
+ | * at least once to get things moving: | ||
+ | */ | ||
+ | init_idle_bootup_task(current); | ||
+ | rcu_scheduler_starting(); | ||
+ | preempt_enable_no_resched(); | ||
+ | schedule(); | ||
+ | preempt_disable(); | ||
+ | |||
+ | /* Call into cpu_idle with preempt disabled */ | ||
+ | cpu_idle(); | ||
+ | } | ||
</pre> | </pre> | ||
Line 1,032: | Line 1,635: | ||
| Initialization via initcalls | | Initialization via initcalls | ||
| <pre> | | <pre> | ||
+ | extern initcall_t __initcall_start[], __initcall_end[], __early_initcall_end[]; | ||
+ | |||
+ | static void __init do_initcalls(void) | ||
+ | { | ||
+ | initcall_t *call; | ||
+ | |||
+ | for (call = __early_initcall_end; call < __initcall_end; call++) | ||
+ | do_one_initcall(*call); | ||
+ | /* Make sure there is no pending stuff from the initcall sequence */ | ||
+ | flush_scheduled_work(); | ||
+ | } | ||
</pre> | </pre> | ||
Line 1,040: | Line 1,654: | ||
| Final Boot Steps from main.c | | Final Boot Steps from main.c | ||
| <pre> | | <pre> | ||
+ | static noinline int init_post(void) | ||
+ | { | ||
+ | /* need to finish all async __init code before freeing the memory */ | ||
+ | async_synchronize_full(); | ||
+ | free_initmem(); | ||
+ | unlock_kernel(); | ||
+ | mark_rodata_ro(); | ||
+ | system_state = SYSTEM_RUNNING; | ||
+ | numa_default_policy(); | ||
+ | if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0) | ||
+ | printk(KERN_WARNING "Warning: unable to open an initial console.\n"); | ||
+ | |||
+ | (void) sys_dup(0); | ||
+ | (void) sys_dup(0); | ||
+ | |||
+ | current->signal->flags |= SIGNAL_UNKILLABLE; | ||
+ | |||
+ | if (ramdisk_execute_command) { | ||
+ | run_init_process(ramdisk_execute_command); | ||
+ | printk(KERN_WARNING "Failed to execute %s\n", | ||
+ | ramdisk_execute_command); | ||
+ | } | ||
+ | |||
+ | /* | ||
+ | * We try each of these until one succeeds. | ||
+ | * | ||
+ | * The Bourne shell can be used instead of init if we are | ||
+ | * trying to recover a really broken machine. | ||
+ | */ | ||
+ | if (execute_command) { | ||
+ | run_init_process(execute_command); | ||
+ | printk(KERN_WARNING "Failed to execute %s. Attempting " | ||
+ | "defaults...\n", execute_command); | ||
+ | } | ||
+ | |||
+ | ... | ||
+ | run_init_process("/sbin/init"); | ||
+ | run_init_process("/etc/init"); | ||
+ | run_init_process("/bin/init"); | ||
+ | run_init_process("/bin/sh"); | ||
+ | |||
+ | panic("No init found. Try passing init= option to kernel."); | ||
+ | } | ||
</pre> | </pre> | ||
|} | |} |
Revision as of 09:30, 13 April 2010
I am majoring in computer engineering and pursuing a certificate in optical communications. I am currently enrolled in ECE597, hoping to explore the applications of Linux in an embedded environment as well as the necessary considerations that must be made in developing for such an environment. I have a keen interest and a great deal of experience with Linux and am a member of the Rose-Hulman Linux Users' Group.
I am currently working on a script to automate the bitbake process with multiple cores. This is a copy of the script in its current form. Please note that it is a work in progress.
#!/bin/sh # bitbake automation # J. Cody Collins START=$(date +%s) MAXTRIES=15 COUNT=1 export OETREE="${HOME}/oe" echo "set environment variables" . ${OETREE}/sourceme.txt echo "Go to the OE tree" cd ${OETREE}/openembedded echo "Make sure it's up to date" git pull --rebase echo "Start building" bitbake $1 while [ $? -ne 0 ]; do if [ $COUNT -lt $MAXTRIES ]; then ((COUNT++)) echo "re-running bitbake -- trial $COUNT" # Give the user a chance to kill the task sleep 5 bitbake $1 else echo "Maximum tries exceeded. Exiting..." break fi done END=$(date +%s) DIFF=$(( $END - $START )) echo "Build took $DIFF seconds." echo "Completed after $COUNT attempts."
Listings
Chapter 2
Number | Page | Caption | Listing |
---|---|---|---|
2-1 | 2-6 | Initial Bootloader Serial Output | Texas Instruments X-Loader 1.4.2 (Feb 19 2009 - 12:01:24) Reading boot sector Loading u-boot.bin from mmc U-Boot 2009.11-rc1 (Jan 08 2010 - 21:19:52) OMAP3530-GP ES3.1, CPU-OPP2 L3-165MHz OMAP3 Beagle board + LPDDR/NAND I2C: ready DRAM: 256 MB NAND: 256 MiB In: serial Out: serial Err: serial Board revision C4 Die ID #1e30000400000000040365fa1400400a Hit any key to stop autoboot: 0 OMAP3 beagleboard.org # |
2-2 | 2-7 | Loading the Linux Kernel | 2996196 bytes read ## Booting kernel from Legacy Image at 80300000 ... Image Name: Angstrom/2.6.29/beagleboard Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 2996132 Bytes = 2.9 MB Load Address: 80008000 Entry Point: 80008000 Verifying Checksum ... OK Loading Kernel Image ... OK OK Starting kernel ... Uncompressing Linux.................................................................................................................................................................................................. done, booting the kernel. [ 0.000000] Linux version 2.6.29-omap1 (koen@dominion) (gcc version 4.3.3 (GCC) ) #1 PREEMPT Wed Oct 21 13:11:52 CEST 2009 [ 0.000000] CPU: ARMv7 Processor [411fc083] revision 3 (ARMv7), cr=10c5387f [ 0.000000] CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache [ 0.000000] Machine: OMAP3 Beagle Board [ 0.000000] Memory policy: ECC disabled, Data cache writeback [ 0.000000] OMAP3430 ES3.1 [ 0.000000] SRAM: Mapped pa 0x40200000 to va 0xd7000000 size: 0x100000 [ 0.000000] Reserving 14680064 bytes SDRAM for VRAM [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 65024 [ 0.000000] Kernel command line: console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait [ 0.000000] Clocking rate (Crystal/DPLL/ARM core): 26.0/332/720 MHz [ 0.000000] GPMC revision 5.0 [ 0.000000] IRQ: Found an INTC at 0xd8200000 (revision 4.0) with 96 interrupts [ 0.000000] Total of 96 interrupts on 1 active controller [ 0.000000] OMAP34xx GPIO hardware version 2.5 [ 0.000000] PID hash table entries: 1024 (order: 10, 4096 bytes) [ 0.000000] OMAP clockevent source: GPTIMER12 at 32768 Hz [ 0.000000] Console: colour dummy device 80x30 [ 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: 128MB 128MB = 256MB total [ 0.000000] Memory: 238848KB available (5632K code, 576K data, 204K init) [ 0.000000] Calibrating delay loop... 740.48 BogoMIPS (lpj=2891776) [ 0.000000] Mount-cache hash table entries: 512 [ 0.000000] CPU: Testing write buffer coherency: ok |
2-3 | 2-9 | Linux Final Boot Messages | Lease of 192.168.1.108 obtained, lease time 86400 run-parts: /etc/udhcpc.d/00avahi-autoipd exited with code 1 adding dns 192.168.1.1 done. Starting portmap daemon: portmap. Unknown HZ value! (75) Assume 100. net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.all.rp_filter = 1 Wed Mar 10 03:00:00 GMT 2010 ^MINIT: Entering runlevel: 5^M Configuring leds: beagleboard::usr0: heartbeat beagleboard::usr1: mmc0 Starting Dropbear SSH server: dropbear. Starting advanced power management daemon: No APM support in kernel (failed.) Starting Vixie-cron. Starting system message bus: dbus. Starting Hardware abstraction layer hald Starting syslogd/klogd: done * Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon [ ok ] Starting Connection Manager Running ntpdate to synchronize clock. Starting GPE display manager: gpe-dm .-------. | | .-. | | |-----.-----.-----.| | .----..-----.-----. | | | __ | ---'| '--.| .-'| | | | | | | | |--- || --'| | | ' | | | | '---'---'--'--'--. |-----''----''--' '-----'-'-'-' -' | '---' The Angstrom Distribution beagleboard ttyS2 Angstrom 2009.X-stable beagleboard ttyS2 beagleboard login: root |
2-4 | 2-21 | Hello World, Embedded Style | #include <stdio.h> int bss_var; /* Uninitialized global variable */ int data_var = 1; /* Initialized global variable */ int main(int argc, char **argv) { void *stack_var; /* Local variable on the stack */ stack_var = (void *)main; /* Don't let the compiler */ /* optimize it out */ printf("Hello, World! Main is executing at %p\n", stack_var); printf("This address (%p) is in our stack frame\n", &stack_var); /* bss section contains uninitialized data */ printf("This address (%p) is in our bss section\n", &bss_var); /* data section contains initializated data */ printf("This address (%p) is in our data section\n", &data_var); return 0; } |
2-5 | 2-22 | Hello Output for Host Computer | collinjc@collinjc-eee ~ % ./a.out [1021] Hello, World! Main is executing at 0x80483e4 This address (0xbfe6b58c) is in our stack frame This address (0x804a020) is in our bss section This address (0x804a014) is in our data section |
2-5 | 2-22 | Hello Output for Beagle | root@beagleboard:~# ./a.out Hello, World! Main is executing at 0x8380 This address (0xbea11cd4) is in our stack frame This address (0x10670) is in our bss section This address (0x10668) is in our data section |
Chapter 4
Number | Page | Caption | Listing |
---|---|---|---|
4-1 | 4-7 | Kernel Build Output | LD init/built-in.o scripts/kconfig/conf -s arch/arm/Kconfig CHK include/linux/version.h make[1]: `include/asm-arm/mach-types.h' is up to date. CHK include/linux/utsrelease.h SYMLINK include/asm -> include/asm-arm CC kernel/bounds.s GEN include/linux/bounds.h CC arch/arm/kernel/asm-offsets.s GEN include/asm/asm-offsets.h CALL scripts/checksyscalls.sh CC scripts/mod/empty.o MKELF scripts/mod/elfconfig.h HOSTCC scripts/mod/file2alias.o HOSTCC scripts/mod/modpost.o .....output removed..... LD .tmp_vmlinux1 KSYM .tmp_kallsyms1.S AS .tmp_kallsyms1.o LD .tmp_vmlinux2 KSYM .tmp_kallsyms2.S AS .tmp_kallsyms2.o LD vmlinux SYSMAP System.map SYSMAP .tmp_System.map OBJCOPY arch/arm/boot/Image Kernel: arch/arm/boot/Image is ready AS arch/arm/boot/compressed/head.o GZIP arch/arm/boot/compressed/piggy.gz AS arch/arm/boot/compressed/piggy.o CC arch/arm/boot/compressed/misc.o LD arch/arm/boot/compressed/vmlinux OBJCOPY arch/arm/boot/zImage Kernel: arch/arm/boot/zImage is ready UIMAGE arch/arm/boot/uImage Image Name: Linux-2.6.29-omap1 Created: Mon Mar 22 18:48:45 2010 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 2994248 Bytes = 2924.07 kB = 2.86 MB Load Address: 80008000 Entry Point: 80008000 Image arch/arm/boot/uImage is ready |
4-2 | 4-9 | Link Stage: vmlinux | ?? |
4-3 | 4-14 | Kernel Subdirectory | collinjc@lug linux-omap-2.6.29-r46/git % ls -ls arch/arm/plat-omap/ | grep -v \\.o total 764K 8.0K -rw-r--r-- 1 collinjc students 8.0K Mar 19 19:48 Kconfig 4.0K -rw-r--r-- 1 collinjc students 824 Mar 15 02:52 Makefile 4.0K -rw-r--r-- 1 collinjc students 2.4K Mar 11 07:46 bootreason.c 16K -rw-r--r-- 1 collinjc students 15K Mar 11 07:46 clock.c 12K -rw-r--r-- 1 collinjc students 8.1K Mar 11 07:46 common.c 4.0K -rw-r--r-- 1 collinjc students 1.6K Mar 11 07:46 component-version.c 4.0K -rw-r--r-- 1 collinjc students 4.0K Mar 11 07:46 cpu-omap.c 4.0K -rw-r--r-- 1 collinjc students 2.0K Mar 11 07:46 debug-devices.c 8.0K -rw-r--r-- 1 collinjc students 7.0K Mar 11 07:46 debug-leds.c 12K -rw-r--r-- 1 collinjc students 9.8K Mar 11 07:46 devices.c 60K -rwxr-xr-x 1 collinjc students 59K Mar 15 02:51 dma.c 24K -rw-r--r-- 1 collinjc students 21K Mar 11 07:46 dmtimer.c 12K -rw-r--r-- 1 collinjc students 9.5K Mar 15 02:51 fb.c 16K -rw-r--r-- 1 collinjc students 13K Mar 11 07:46 gpio-switch.c 48K -rw-r--r-- 1 collinjc students 47K Mar 11 07:46 gpio.c 8.0K -rw-r--r-- 1 collinjc students 5.8K Mar 11 07:46 i2c.c 0 drwxr-xr-x 3 collinjc students 72 Mar 11 07:46 include 4.0K -rw-r--r-- 1 collinjc students 3.7K Mar 11 07:46 io.c 20K -rw-r--r-- 1 collinjc students 20K Mar 15 02:52 iommu.c 20K -rw-r--r-- 1 collinjc students 17K Mar 15 03:17 iommu.ko 4.0K -rw-r--r-- 1 collinjc students 1.9K Mar 15 03:16 iommu.mod.c 4.0K -rw-r--r-- 1 collinjc students 2.2K Mar 15 02:52 iopgtable.h 20K -rw-r--r-- 1 collinjc students 19K Mar 15 02:52 iovmm.c 16K -rw-r--r-- 1 collinjc students 15K Mar 15 03:17 iovmm.ko 4.0K -rw-r--r-- 1 collinjc students 1.8K Mar 15 03:16 iovmm.mod.c 12K -rw-r--r-- 1 collinjc students 12K Mar 11 07:46 mailbox.c 28K -rw-r--r-- 1 collinjc students 26K Mar 11 07:46 mcbsp.c 4.0K -rw-r--r-- 1 collinjc students 2.1K Mar 11 07:46 mux.c 4.0K -rw-r--r-- 1 collinjc students 2.7K Mar 11 07:46 ocpi.c 12K -rw-r--r-- 1 collinjc students 11K Mar 11 07:46 sram.c 20K -rw-r--r-- 1 collinjc students 18K Mar 11 07:46 usb.c 16K -rw-r--r-- 1 collinjc students 14K Mar 15 02:51 vram.c 8.0K -rw-r--r-- 1 collinjc students 6.3K Mar 15 02:51 vrfb.c |
4-4 | 4-17 | Snippet from Linux 2.6 .config | 1872 # 1873 # USB Input Devices 1874 # 1875 CONFIG_USB_HID=y 1876 # CONFIG_HID_PID is not set 1877 # CONFIG_USB_HIDDEV is not set 1878 1879 # 1880 # Special HID drivers 1881 # 1882 CONFIG_HID_COMPAT=y 1883 CONFIG_HID_A4TECH=y 1884 CONFIG_HID_APPLE=y 1885 CONFIG_HID_BELKIN=y 1886 CONFIG_HID_CHERRY=y 1887 CONFIG_HID_CHICONY=y 1888 CONFIG_HID_CYPRESS=y 1889 CONFIG_HID_EZKEY=y 1890 CONFIG_HID_GYRATION=y 1891 CONFIG_HID_LOGITECH=y 1892 # CONFIG_LOGITECH_FF is not set 1893 # CONFIG_LOGIRUMBLEPAD2_FF is not set |
4-5 | 4-21 | Linux autoconf.h | collinjc@lug linux-omap-2.6.29-r46/git % cat include/linux/autoconf.h| grep CONFIG_USB #define CONFIG_USB_SISUSBVGA_MODULE 1 #define CONFIG_USB_PHIDGETMOTORCONTROL_MODULE 1 #define CONFIG_USB_MUSB_HDRC 1 #define CONFIG_USB_LEGOTOWER_MODULE 1 #define CONFIG_USB_SERIAL_IR_MODULE 1 #define CONFIG_USB_GSPCA_T613_MODULE 1 #define CONFIG_USB_SERIAL_TI_MODULE 1 #define CONFIG_USB_ETH_RNDIS 1 #define CONFIG_USB_SERIAL_MODULE 1 #define CONFIG_USB_W9968CF_MODULE 1 #define CONFIG_USB_RTL8150 1 #define CONFIG_USB_SERIAL_WHITEHEAT_MODULE 1 #define CONFIG_USB_GADGET_MUSB_HDRC 1 #define CONFIG_USB_KAWETH 1 #define CONFIG_USB_ZERO_HNPTEST 1 #define CONFIG_USB_CXACRU_MODULE 1 #define CONFIG_USB_SERIAL_ARK3116_MODULE 1 #define CONFIG_USB_G_PRINTER_MODULE 1 #define CONFIG_USB_NET_PLUSB 1 #define CONFIG_USB_GPIO_VBUS 1 #define CONFIG_USB_EHCI_TT_NEWSCHED 1 #define CONFIG_USB_ACM_MODULE 1 #define CONFIG_USB_ARCH_HAS_EHCI 1 #define CONFIG_USB_USBNET 1 #define CONFIG_USB_LCD_MODULE 1 #define CONFIG_USB_SERIAL_BELKIN_MODULE 1 #define CONFIG_USB_LED_MODULE 1 #define CONFIG_USB_SERIAL_KEYSPAN_USA49WLC 1 #define CONFIG_USB_HID 1 #define CONFIG_USB_GADGET_VBUS_DRAW 2 #define CONFIG_USB_SERIAL_KOBIL_SCT_MODULE 1 #define CONFIG_USB_OTG_UTILS 1 #define CONFIG_USB_ARCH_HAS_OHCI 1 #define CONFIG_USB_CDC_COMPOSITE_MODULE 1 #define CONFIG_USB_SERIAL_GARMIN_MODULE 1 #define CONFIG_USB_SERIAL_MOS7720_MODULE 1 #define CONFIG_USB_SERIAL_NAVMAN_MODULE 1 #define CONFIG_USB_GSPCA_FINEPIX_MODULE 1 #define CONFIG_USB_ETH_MODULE 1 #define CONFIG_USB_SERIAL_MOS7840_MODULE 1 #define CONFIG_USB_ATM_MODULE 1 #define CONFIG_USB_TMC_MODULE 1 #define CONFIG_USB_MUSB_HDRC_HCD 1 #define CONFIG_USB_SERIAL_OTI6858_MODULE 1 #define CONFIG_USB_WDM_MODULE 1 #define CONFIG_USB_MON 1 #define CONFIG_USB_OTG 1 #define CONFIG_USB_PWC_MODULE 1 #define CONFIG_USB_SERIAL_KEYSPAN_USA19 1 #define CONFIG_USB_SERIAL_KEYSPAN_USA28 1 #define CONFIG_USB_PHIDGETKIT_MODULE 1 #define CONFIG_USB_ET61X251_MODULE 1 #define CONFIG_USB_SERIAL_XIRCOM_MODULE 1 #define CONFIG_USB_SPEEDTOUCH_MODULE 1 #define CONFIG_USB_SISUSBVGA_CON 1 #define CONFIG_USB_NET_NET1080 1 #define CONFIG_USB_SERIAL_OPTION_MODULE 1 #define CONFIG_USB_ZR364XX_MODULE 1 #define CONFIG_USB_NET_MCS7830 1 #define CONFIG_USB_VST_MODULE 1 #define CONFIG_USB_GSPCA_MARS_MODULE 1 #define CONFIG_USB_EHCI_ROOT_HUB_TT 1 #define CONFIG_USB_PHIDGET_MODULE 1 #define CONFIG_USB_CYPRESS_CY7C63_MODULE 1 #define CONFIG_USB_GSPCA_SUNPLUS_MODULE 1 #define CONFIG_USB_GSPCA_OV534_MODULE 1 #define CONFIG_USB_SERIAL_IPW_MODULE 1 #define CONFIG_USB_NET_AX8817X 1 #define CONFIG_USB_GSPCA_OV519_MODULE 1 #define CONFIG_USB_SERIAL_IUU_MODULE 1 #define CONFIG_USB_STV06XX_MODULE 1 #define CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV 1 #define CONFIG_USB_STORAGE 1 #define CONFIG_USB_IDMOUSE_MODULE 1 #define CONFIG_USB_PEGASUS 1 #define CONFIG_USB_SERIAL_SPCP8X5_MODULE 1 #define CONFIG_USB_M5602_MODULE 1 #define CONFIG_USB_CATC 1 #define CONFIG_USB_CYTHERM_MODULE 1 #define CONFIG_USB_SERIAL_GENERIC 1 #define CONFIG_USB_IRDA_MODULE 1 #define CONFIG_USB_S2255_MODULE 1 #define CONFIG_USB_SUSPEND 1 #define CONFIG_USB_XUSBATM_MODULE 1 #define CONFIG_USB_PRINTER_MODULE 1 #define CONFIG_USB_TRANCEVIBRATOR_MODULE 1 #define CONFIG_USB_SERIAL_CYPRESS_M8_MODULE 1 #define CONFIG_USB_SE401_MODULE 1 #define CONFIG_USB_MIDI_GADGET_MODULE 1 #define CONFIG_USB_NET_ZAURUS 1 #define CONFIG_USB_SERIAL_OMNINET_MODULE 1 #define CONFIG_USB_SERIAL_KEYSPAN_MODULE 1 #define CONFIG_USB_GSPCA_PAC207_MODULE 1 #define CONFIG_USB_SERIAL_OPTICON_MODULE 1 #define CONFIG_USB_OV511_MODULE 1 #define CONFIG_USB_SUPPORT 1 #define CONFIG_USB_SERIAL_SAFE_MODULE 1 #define CONFIG_USB_ZERO_MODULE 1 #define CONFIG_USB_TEST_MODULE 1 #define CONFIG_USB_SERIAL_CH341_MODULE 1 #define CONFIG_USB_EMI26_MODULE 1 #define CONFIG_USB_EMI62_MODULE 1 #define CONFIG_USB_SERIAL_HP4X_MODULE 1 #define CONFIG_USB_SERIAL_KEYSPAN_USA19W 1 #define CONFIG_USB_SERIAL_KEYSPAN_USA18X 1 #define CONFIG_USB_SERIAL_KEYSPAN_USA28X 1 #define CONFIG_USB_SERIAL_FUNSOFT_MODULE 1 #define CONFIG_USB_GADGETFS_MODULE 1 #define CONFIG_USB_NET_CDC_SUBSET 1 #define CONFIG_USB_SERIAL_KEYSPAN_USA49W 1 #define CONFIG_USB_EHCI_HCD 1 #define CONFIG_USB_DEVICEFS 1 #define CONFIG_USB_GSPCA_TV8532_MODULE 1 #define CONFIG_USB_SERIAL_IPAQ_MODULE 1 #define CONFIG_USB_GSPCA_CONEX_MODULE 1 #define CONFIG_USB_VIDEO_CLASS_MODULE 1 #define CONFIG_USB_GSPCA_ZC3XX_MODULE 1 #define CONFIG_USB_SERIAL_MCT_U232_MODULE 1 #define CONFIG_USB_KONICAWC_MODULE 1 #define CONFIG_USB_SERIAL_KLSI_MODULE 1 #define CONFIG_USB_SERIAL_AIRCABLE_MODULE 1 #define CONFIG_USB_ALI_M5632 1 #define CONFIG_USB_SERIAL_SIERRAWIRELESS_MODULE 1 #define CONFIG_USB_GSPCA_VC032X_MODULE 1 #define CONFIG_USB_GADGET_SELECTED 1 #define CONFIG_USB_GSPCA_STK014_MODULE 1 #define CONFIG_USB_OXU210HP_HCD 1 #define CONFIG_USB_GSPCA_ETOMS_MODULE 1 #define CONFIG_USB_QUICKCAM_MESSENGER_MODULE 1 #define CONFIG_USB_NET_RNDIS_WLAN 1 #define CONFIG_USB_KC2190 1 #define CONFIG_USB_AN2720 1 #define CONFIG_USB_EPSON2888 1 #define CONFIG_USB_ZC0301_MODULE 1 #define CONFIG_USB_ZD1201 1 #define CONFIG_USB_NET_RNDIS_HOST 1 #define CONFIG_USB_G_SERIAL_MODULE 1 #define CONFIG_USB_GADGET_DEBUG_FS 1 #define CONFIG_USB_GSPCA_PAC7311_MODULE 1 #define CONFIG_USB_SERIAL_KEYSPAN_PDA_MODULE 1 #define CONFIG_USB_GSPCA_MODULE 1 #define CONFIG_USB_VICAM_MODULE 1 #define CONFIG_USB_ARMLINUX 1 #define CONFIG_USB_ATMEL_MODULE 1 #define CONFIG_USB_SERIAL_EDGEPORT_TI_MODULE 1 #define CONFIG_USB_SERIAL_CP2101_MODULE 1 #define CONFIG_USB_SERIAL_SIEMENS_MPI_MODULE 1 #define CONFIG_USB_SERIAL_EDGEPORT_MODULE 1 #define CONFIG_USB_MUSB_SOC 1 #define CONFIG_USB_SERIAL_DIGI_ACCELEPORT_MODULE 1 #define CONFIG_USB_MUSB_OTG 1 #define CONFIG_USB_SERIAL_PL2303_MODULE 1 #define CONFIG_USB_SERIAL_KEYSPAN_USA28XA 1 #define CONFIG_USB_DEVICE_CLASS 1 #define CONFIG_USB_SERIAL_DEBUG_MODULE 1 #define CONFIG_USB_SERIAL_KEYSPAN_USA19QI 1 #define CONFIG_USB_SERIAL_KEYSPAN_USA28XB 1 #define CONFIG_USB_ARCH_HAS_HCD 1 #define CONFIG_USB_SERIAL_KEYSPAN_MPR 1 #define CONFIG_USB_NET_CDCETHER 1 #define CONFIG_USB_EZUSB 1 #define CONFIG_USB_GSPCA_SPCA500_MODULE 1 #define CONFIG_USB_GSPCA_SPCA501_MODULE 1 #define CONFIG_USB_SERIAL_MOTOROLA_MODULE 1 #define CONFIG_USB_BERRY_CHARGE_MODULE 1 #define CONFIG_USB_SERIAL_EMPEG_MODULE 1 #define CONFIG_USB_GSPCA_SPCA505_MODULE 1 #define CONFIG_USB_GSPCA_SPCA506_MODULE 1 #define CONFIG_USB_LD_MODULE 1 #define CONFIG_USB_SERIAL_FTDI_SIO_MODULE 1 #define CONFIG_USB_GSPCA_SPCA561_MODULE 1 #define CONFIG_USB_GSPCA_SPCA508_MODULE 1 #define CONFIG_USB_FILE_STORAGE_MODULE 1 #define CONFIG_USB_PHIDGETSERVO_MODULE 1 #define CONFIG_USB_SERIAL_KEYSPAN_USA19QW 1 #define CONFIG_USB_UEAGLEATM_MODULE 1 #define CONFIG_USB_INVENTRA_DMA 1 #define CONFIG_USB_NET_SMSC95XX 1 #define CONFIG_USB_STV680_MODULE 1 #define CONFIG_USB_GSPCA_SONIXB_MODULE 1 #define CONFIG_USB_STKWEBCAM_MODULE 1 #define CONFIG_USB 1 #define CONFIG_USB_GADGET_DUALSPEED 1 #define CONFIG_USB_FTDI_ELAN_MODULE 1 #define CONFIG_USB_NET_DM9601 1 #define CONFIG_USB_GSPCA_SONIXJ_MODULE 1 #define CONFIG_USB_IBMCAM_MODULE 1 #define CONFIG_USB_GADGET 1 #define CONFIG_USB_SERIAL_CYBERJACK_MODULE 1 #define CONFIG_USB_SN9C102_MODULE 1 #define CONFIG_USB_SERIAL_VISOR_MODULE 1 #define CONFIG_USB_NET_GL620A 1 #define CONFIG_USB_BELKIN 1 |
4-6 | 4-22 | Makefile Targets | Cleaning targets: clean - Remove most generated files but keep the config and enough build support to build external modules mrproper - Remove all generated files + config + various backup files distclean - mrproper + remove editor backup and patch files Configuration targets: config - Update current config utilising a line-oriented program menuconfig - Update current config utilising a menu based program xconfig - Update current config utilising a QT based front-end gconfig - Update current config utilising a GTK based front-end oldconfig - Update current config utilising a provided .config as base silentoldconfig - Same as oldconfig, but quietly randconfig - New config with random answer to all options defconfig - New config with default answer to all options allmodconfig - New config selecting modules when possible allyesconfig - New config where all options are accepted with yes allnoconfig - New config where all options are answered with no Other generic targets: all - Build all targets marked with [*] * vmlinux - Build the bare kernel * modules - Build all modules modules_install - Install all modules to INSTALL_MOD_PATH (default: /) firmware_install- Install all firmware to INSTALL_FW_PATH (default: $(INSTALL_MOD_PATH)/lib/firmware) dir/ - Build all files in dir and below dir/file.[ois] - Build specified target only dir/file.ko - Build module including final link prepare - Set up for building external modules tags/TAGS - Generate tags file for editors cscope - Generate cscope index kernelrelease - Output the release version string kernelversion - Output the version stored in Makefile headers_install - Install sanitised kernel headers to INSTALL_HDR_PATH (default: /home/users/collinjc/oe/angstrom-dev-backup2/work/beagleboard-angstrom-linux-gnueabi/linux-omap-2.6.29-r46/git/usr) Static analysers checkstack - Generate a list of stack hogs namespacecheck - Name space analysis on compiled kernel versioncheck - Sanity check on version.h usage includecheck - Check for duplicate included header files export_report - List the usages of all exported symbols headers_check - Sanity check on exported headers headerdep - Detect inclusion cycles in headers Kernel packaging: rpm-pkg - Build both source and binary RPM kernel packages binrpm-pkg - Build only the binary kernel package deb-pkg - Build the kernel as an deb package tar-pkg - Build the kernel as an uncompressed tarball targz-pkg - Build the kernel as a gzip compressed tarball tarbz2-pkg - Build the kernel as a bzip2 compressed tarball Documentation targets: Linux kernel internal documentation in different formats: htmldocs - HTML installmandocs - install man pages generated by mandocs mandocs - man pages pdfdocs - PDF psdocs - Postscript xmldocs - XML DocBook Architecture specific targets (arm): * zImage - Compressed kernel image (arch/arm/boot/zImage) Image - Uncompressed kernel image (arch/arm/boot/Image) * xipImage - XIP kernel image, if configured (arch/arm/boot/xipImage) uImage - U-Boot wrapped zImage bootpImage - Combined zImage and initial RAM disk (supply initrd image via make variable INITRD=<path>) install - Install uncompressed kernel zinstall - Install compressed kernel Install using (your) ~/bin/installkernel or (distribution) /sbin/installkernel or install to $(INSTALL_PATH) and run lilo afeb9260_defconfig - Build for afeb9260 am200epdkit_defconfig - Build for am200epdkit ams_delta_defconfig - Build for ams_delta assabet_defconfig - Build for assabet at91cap9adk_defconfig - Build for at91cap9adk at91rm9200dk_defconfig - Build for at91rm9200dk at91rm9200ek_defconfig - Build for at91rm9200ek at91sam9260ek_defconfig - Build for at91sam9260ek at91sam9261ek_defconfig - Build for at91sam9261ek at91sam9263ek_defconfig - Build for at91sam9263ek at91sam9g20ek_defconfig - Build for at91sam9g20ek at91sam9rlek_defconfig - Build for at91sam9rlek ateb9200_defconfig - Build for ateb9200 badge4_defconfig - Build for badge4 cam60_defconfig - Build for cam60 carmeva_defconfig - Build for carmeva cerfcube_defconfig - Build for cerfcube cm_x300_defconfig - Build for cm_x300 colibri_defconfig - Build for colibri collie_defconfig - Build for collie corgi_defconfig - Build for corgi csb337_defconfig - Build for csb337 csb637_defconfig - Build for csb637 dss_omap3_beagle_defconfig - Build for dss_omap3_beagle dss_omap_3430sdp_defconfig - Build for dss_omap_3430sdp dss_overo_defconfig - Build for dss_overo ebsa110_defconfig - Build for ebsa110 ecbat91_defconfig - Build for ecbat91 edb7211_defconfig - Build for edb7211 ep93xx_defconfig - Build for ep93xx eseries_pxa_defconfig - Build for eseries_pxa ezx_defconfig - Build for ezx footbridge_defconfig - Build for footbridge fortunet_defconfig - Build for fortunet h3600_defconfig - Build for h3600 h5000_defconfig - Build for h5000 h7201_defconfig - Build for h7201 h7202_defconfig - Build for h7202 hackkit_defconfig - Build for hackkit imx27ads_defconfig - Build for imx27ads integrator_defconfig - Build for integrator iop13xx_defconfig - Build for iop13xx iop32x_defconfig - Build for iop32x iop33x_defconfig - Build for iop33x ixp2000_defconfig - Build for ixp2000 ixp23xx_defconfig - Build for ixp23xx ixp4xx_defconfig - Build for ixp4xx jornada720_defconfig - Build for jornada720 kafa_defconfig - Build for kafa kb9202_defconfig - Build for kb9202 kirkwood_defconfig - Build for kirkwood ks8695_defconfig - Build for ks8695 lart_defconfig - Build for lart littleton_defconfig - Build for littleton loki_defconfig - Build for loki lpd270_defconfig - Build for lpd270 lpd7a400_defconfig - Build for lpd7a400 lpd7a404_defconfig - Build for lpd7a404 lubbock_defconfig - Build for lubbock lusl7200_defconfig - Build for lusl7200 magician_defconfig - Build for magician mainstone_defconfig - Build for mainstone msm_defconfig - Build for msm mv78xx0_defconfig - Build for mv78xx0 mx1ads_defconfig - Build for mx1ads mx31ads_defconfig - Build for mx31ads mx31litekit_defconfig - Build for mx31litekit mx31moboard_defconfig - Build for mx31moboard mx31pdk_defconfig - Build for mx31pdk n770_defconfig - Build for n770 n800_defconfig - Build for n800 neocore926_defconfig - Build for neocore926 neponset_defconfig - Build for neponset netwinder_defconfig - Build for netwinder netx_defconfig - Build for netx ns9xxx_defconfig - Build for ns9xxx omap2_evm_defconfig - Build for omap2_evm omap3_beagle_defconfig - Build for omap3_beagle omap3_evm_defconfig - Build for omap3_evm omap3_pandora_defconfig - Build for omap3_pandora omap_2430sdp_defconfig - Build for omap_2430sdp omap_3430sdp_defconfig - Build for omap_3430sdp omap_apollon_2420_defconfig - Build for omap_apollon_2420 omap_generic_1510_defconfig - Build for omap_generic_1510 omap_generic_1610_defconfig - Build for omap_generic_1610 omap_generic_1710_defconfig - Build for omap_generic_1710 omap_generic_2420_defconfig - Build for omap_generic_2420 omap_h2_1610_defconfig - Build for omap_h2_1610 omap_h3_1710_defconfig - Build for omap_h3_1710 omap_h4_2420_defconfig - Build for omap_h4_2420 omap_innovator_1510_defconfig - Build for omap_innovator_1510 omap_innovator_1610_defconfig - Build for omap_innovator_1610 omap_ldp_defconfig - Build for omap_ldp omap_osk_5912_defconfig - Build for omap_osk_5912 omap_perseus2_730_defconfig - Build for omap_perseus2_730 onearm_defconfig - Build for onearm orion5x_defconfig - Build for orion5x overo_defconfig - Build for overo palmte_defconfig - Build for palmte palmtt_defconfig - Build for palmtt palmz71_defconfig - Build for palmz71 palmz72_defconfig - Build for palmz72 pcm027_defconfig - Build for pcm027 pcm037_defconfig - Build for pcm037 pcm038_defconfig - Build for pcm038 picotux200_defconfig - Build for picotux200 pleb_defconfig - Build for pleb pnx4008_defconfig - Build for pnx4008 pxa255-idp_defconfig - Build for pxa255-idp qil-a9260_defconfig - Build for qil-a9260 realview-smp_defconfig - Build for realview-smp realview_defconfig - Build for realview rpc_defconfig - Build for rpc rx51_defconfig - Build for rx51 s3c2410_defconfig - Build for s3c2410 s3c6400_defconfig - Build for s3c6400 sam9_l9260_defconfig - Build for sam9_l9260 shannon_defconfig - Build for shannon shark_defconfig - Build for shark simpad_defconfig - Build for simpad spitz_defconfig - Build for spitz sx1_defconfig - Build for sx1 tct_hammer_defconfig - Build for tct_hammer trizeps4_defconfig - Build for trizeps4 usb-a9260_defconfig - Build for usb-a9260 usb-a9263_defconfig - Build for usb-a9263 versatile_defconfig - Build for versatile viper_defconfig - Build for viper w90p910_defconfig - Build for w90p910 xm_x2xx_defconfig - Build for xm_x2xx yl9200_defconfig - Build for yl9200 zylonite_defconfig - Build for zylonite make V=0|1 [targets] 0 => quiet build (default), 1 => verbose build make V=2 [targets] 2 => give reason for rebuild of target make O=dir [targets] Locate all output files in "dir", including .config make C=1 [targets] Check all c source with $CHECK (sparse by default) make C=2 [targets] Force check of all c source with $CHECK Execute "make" or "make all" to build all targets marked with [*] For further info see the ./README file |
4-7 | 4-27 | Partial Listing of Kconfig for ARM Architecture | |
4-8 | 4-30 | Snippet from .../arch/arm/Kconfig | 183 config VECTORS_BASE 184 hex 185 default 0xffff0000 if MMU || CPU_HIGH_VECTOR 186 default DRAM_BASE if REMAP_VECTORS_TO_RAM 187 default 0x00000000 188 help 189 The base address of exception vectors. 190 191 source "init/Kconfig" 192 193 source "kernel/Kconfig.freezer" 194 195 menu "System Type" 196 197 choice 198 prompt "ARM system type" 199 default ARCH_VERSATILE 200 201 config ARCH_AAEC2000 202 bool "Agilent AAEC-2000 based" 203 select CPU_ARM920T 204 select ARM_AMBA 205 select HAVE_CLK 206 help 207 This enables support for systems based on the Agilent AAEC-2000 208 209 config ARCH_INTEGRATOR 210 bool "ARM Ltd. Integrator family" 211 select ARM_AMBA 212 select HAVE_CLK 213 select COMMON_CLKDEV 214 select ICST525 215 help 216 Support for ARM's Integrator platform. |
4-9 | 4-30 | Snippet from .../arch/arm/plat-omap/Kconfig | .... config OMAP_BOOT_REASON bool "Support for boot reason" depends on OMAP_BOOT_TAG default n help Say Y, if you want to have a procfs entry for reading the boot reason in user-space. config OMAP_COMPONENT_VERSION bool "Support for component version display" depends on OMAP_BOOT_TAG && PROC_FS default n help Say Y, if you want to have a procfs entry for reading component versions (supplied by the bootloader) in user-space. config OMAP_GPIO_SWITCH bool "GPIO switch support" default n help Say Y, if you want to have support for reporting of GPIO switches (e.g. cover switches) via sysfs. Your bootloader has to provide information about the switches to the kernel via the ATAG_BOARD mechanism if they're not defined by the board config. config OMAP_MUX bool "OMAP multiplexing support" depends on ARCH_OMAP default y help Pin multiplexing support for OMAP boards. If your bootloader sets the multiplexing correctly, say N. Otherwise, or if unsure, say Y. config OMAP_MUX_DEBUG bool "Multiplexing debug output" depends on OMAP_MUX help Makes the multiplexing functions print out a lot of debug info. This is useful if you want to find out the correct values of the .... |
4-10 | 4-32 | Customized .config File Snippet | # # OMAP Feature Selections # # CONFIG_OMAP_DEBUG_POWERDOMAIN is not set # CONFIG_OMAP_DEBUG_CLOCKDOMAIN is not set # CONFIG_OMAP_SMARTREFLEX is not set CONFIG_OMAP_RESET_CLOCKS=y CONFIG_OMAP_BOOT_TAG=y CONFIG_OMAP_BOOT_REASON=y # CONFIG_OMAP_COMPONENT_VERSION is not set CONFIG_OMAP_GPIO_SWITCH=y # CONFIG_OMAP_GPIO_SWITCH_2 is not set # CONFIG_OMAP_MUX is not set CONFIG_OMAP_MCBSP=y # CONFIG_OMAP_MBOX_FWK is not set CONFIG_OMAP_IOMMU=m # CONFIG_OMAP_MPU_TIMER is not set CONFIG_OMAP_32K_TIMER=y CONFIG_OMAP_32K_TIMER_HZ=128 CONFIG_OMAP_TICK_GPTIMER=12 CONFIG_OMAP_DM_TIMER=y # CONFIG_OMAP_LL_DEBUG_UART1 is not set # CONFIG_OMAP_LL_DEBUG_UART2 is not set CONFIG_OMAP_LL_DEBUG_UART3=y CONFIG_ARCH_OMAP34XX=y CONFIG_ARCH_OMAP3430=y |
4-11 | 4-33 | Makefile from .../arch/arm/plat-omap/ Kernel Subdirectory | # # Makefile for the linux kernel. # # Common support obj-y := common.o sram.o clock.o devices.o dma.o mux.o gpio.o \ usb.o fb.o vram.o vrfb.o io.o obj-m := obj-n := obj- := # OCPI interconnect support for 1710, 1610 and 5912 obj-$(CONFIG_ARCH_OMAP16XX) += ocpi.o obj-$(CONFIG_OMAP_MCBSP) += mcbsp.o obj-$(CONFIG_OMAP_IOMMU) += iommu.o iovmm.o obj-$(CONFIG_CPU_FREQ) += cpu-omap.o obj-$(CONFIG_OMAP_DM_TIMER) += dmtimer.o obj-$(CONFIG_OMAP_BOOT_REASON) += bootreason.o obj-$(CONFIG_OMAP_COMPONENT_VERSION) += component-version.o obj-$(CONFIG_OMAP_GPIO_SWITCH) += gpio-switch.o obj-$(CONFIG_OMAP_DEBUG_DEVICES) += debug-devices.o obj-$(CONFIG_OMAP_DEBUG_LEDS) += debug-leds.o i2c-omap-$(CONFIG_I2C_OMAP) := i2c.o obj-y += $(i2c-omap-m) $(i2c-omap-y) # OMAP mailbox framework obj-$(CONFIG_OMAP_MBOX_FWK) += mailbox.o |
Chapter 5
Number | Page | Caption | Listing |
---|---|---|---|
5-1 | 5-2 | Final Kernel Build Sequence: ARM/BeagleBoard | $ export OETREE="${HOME}/oe" $ PATH=${OETREE}/angstrom-dev/staging/i686-linux/usr/bin/:${PATH} $ PATH=${OETREE}/angstrom-dev/cross/armv7a/bin/:${PATH} $ make CROSS_CO UPD include/linux/compile.h .... CC init/version.o LD init/built-in.o LD .tmp_vmlinux1 KSYM .tmp_kallsyms1.S AS .tmp_kallsyms1.o LD .tmp_vmlinux2 KSYM .tmp_kallsyms2.S AS .tmp_kallsyms2.o LD vmlinux SYSMAP System.map SYSMAP .tmp_System.map OBJCOPY arch/arm/boot/Image Kernel: arch/arm/boot/Image is ready AS arch/arm/boot/compressed/head.o GZIP arch/arm/boot/compressed/piggy.gz AS arch/arm/boot/compressed/piggy.o CC arch/arm/boot/compressed/misc.o LD arch/arm/boot/compressed/vmlinux OBJCOPY arch/arm/boot/zImage Kernel: arch/arm/boot/zImage is ready UIMAGE arch/arm/boot/uImage Image Name: Linux-2.6.29-omap1 Created: Fri Apr 2 00:21:21 2010 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 2991252 Bytes = 2921.14 kB = 2.85 MB Load Address: 80008000 Entry Point: 80008000 Image arch/arm/boot/uImage is readyMPILE=arm-angstrom-linux-gnueabi- uImage |
5-2 | 5-5 | Assembly File .../arch/arm/boot/compressed/piggy.S | .section .piggydata,#alloc .globl input_data input_data: .incbin "arch/arm/boot/compressed/piggy.gz" .globl input_data_end input_data_end: |
5-3 | 5-7 | Final Kernel Build Sequence: ARM/BeagleBoard | Reading boot sector Loading u-boot.bin from mmc U-Boot 2009.11-rc1 (Jan 08 2010 - 21:19:52) OMAP3530-GP ES3.1, CPU-OPP2 L3-165MHz OMAP3 Beagle board + LPDDR/NAND I2C: ready DRAM: 256 MB NAND: 256 MiB In: serial Out: serial Err: serial Board revision C4 Die ID #1e30000400000000040365fa1400400a Hit any key to stop autoboot: 10 ��� 9 ��� 8 ��� 7 ��� 6 ��� 5 ��� 4 ��� 3 ��� 2 ��� 1 ��� 0 mmc1 is available reading uImage 2996196 bytes read ## Booting kernel from Legacy Image at 80300000 ... Image Name: Angstrom/2.6.29/beagleboard Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 2996132 Bytes = 2.9 MB Load Address: 80008000 Entry Point: 80008000 Verifying Checksum ... OK Loading Kernel Image ... OK OK Starting kernel ... Uncompressing Linux.................................................................................................................................................................................................. done, booting the kernel. [ 0.000000] Linux version 2.6.29-omap1 (koen@dominion) (gcc version 4.3.3 (GCC) ) #1 PREEMPT Wed Oct 21 13:11:52 CEST 2009 [ 0.000000] CPU: ARMv7 Processor [411fc083] revision 3 (ARMv7), cr=10c5387f [ 0.000000] CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache [ 0.000000] Machine: OMAP3 Beagle Board [ 0.000000] Memory policy: ECC disabled, Data cache writeback [ 0.000000] OMAP3430 ES3.1 [ 0.000000] SRAM: Mapped pa 0x40200000 to va 0xd7000000 size: 0x100000 [ 0.000000] Reserving 14680064 bytes SDRAM for VRAM [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 65024 [ 0.000000] Kernel command line: console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait [ 0.000000] Clocking rate (Crystal/DPLL/ARM core): 26.0/332/720 MHz [ 0.000000] GPMC revision 5.0 [ 0.000000] IRQ: Found an INTC at 0xd8200000 (revision 4.0) with 96 interrupts [ 0.000000] Total of 96 interrupts on 1 active controller [ 0.000000] OMAP34xx GPIO hardware version 2.5 [ 0.000000] PID hash table entries: 1024 (order: 10, 4096 bytes) [ 0.000000] OMAP clockevent source: GPTIMER12 at 32768 Hz [ 0.000000] Console: colour dummy device 80x30 [ 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: 128MB 128MB = 256MB total [ 0.000000] Memory: 238848KB available (5632K code, 576K data, 204K init) [ 0.000000] Calibrating delay loop... 740.48 BogoMIPS (lpj=2891776) [ 0.000000] Mount-cache hash table entries: 512 [ 0.000000] CPU: Testing write buffer coherency: ok [ 0.000000] net_namespace: 1036 bytes [ 0.000000] regulator: core version 0.5 [ 0.000000] NET: Registered protocol family 16 [ 0.000000] GPIO-156 autorequested [ 0.000000] GPIO-159 autorequested [ 0.000000] Found NAND on CS0 [ 0.000000] Registering NAND on CS0 [ 3130.761016] OMAP DMA hardware revision 4.0 [ 3130.794372] bio: create slab <bio-0> at 0 [ 3130.854797] OMAP DSS rev 2.0 [ 3130.854888] OMAP DISPC rev 3.0 [ 3130.854919] OMAP VENC rev 2 [ 3130.855041] OMAP DSI rev 1.0 [ 3130.870819] i2c_omap i2c_omap.1: bus 1 rev3.12 at 2600 kHz [ 3130.874114] twl4030: PIH (irq 7) chaining IRQs 368..375 [ 3130.874145] twl4030: power (irq 373) chaining IRQs 376..383 [ 3130.874603] twl4030: gpio (irq 368) chaining IRQs 384..401 [ 3130.876922] regulator: VMMC1: 1850 <--> 3150 mV normal standby [ 3130.877655] regulator: VDAC: 1800 mV normal standby [ 3130.878356] regulator: VUSB1V5: 1500 <--> 0 mV normal standby [ 3130.879211] regulator: VUSB1V8: 1800 <--> 0 mV normal standby [ 3130.879913] regulator: VUSB3V1: 3100 <--> 0 mV normal standby [ 3130.880615] regulator: VPLL2: 1800 mV normal standby [ 3130.881347] regulator: VMMC2: 2800 <--> 3150 mV normal standby [ 3130.882049] regulator: VSIM: 1800 <--> 3000 mV normal standby [ 3130.882202] i2c_omap i2c_omap.2: bus 2 rev3.12 at 400 kHz [ 3130.894989] i2c_omap i2c_omap.3: bus 3 rev3.12 at 100 kHz [ 3130.896759] SCSI subsystem initialized [ 3130.899688] twl4030_usb twl4030_usb: Initialized TWL4030 USB module [ 3130.900909] usbcore: registered new interface driver usbfs [ 3130.901367] usbcore: registered new interface driver hub [ 3130.901702] usbcore: registered new device driver usb [ 3130.904205] Bluetooth: Core ver 2.14 [ 3130.904632] NET: Registered protocol family 31 [ 3130.904632] Bluetooth: HCI device and connection manager initialized [ 3130.904663] Bluetooth: HCI socket layer initialized [ 3130.905242] cfg80211: Using static regulatory domain info [ 3130.905242] cfg80211: Regulatory domain: US [ 3130.905273] (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp) [ 3130.905273] (2402000 KHz - 2472000 KHz @ 40000 KHz), (600 mBi, 2700 mBm) [ 3130.905303] (5170000 KHz - 5190000 KHz @ 40000 KHz), (600 mBi, 2300 mBm) [ 3130.905303] (5190000 KHz - 5210000 KHz @ 40000 KHz), (600 mBi, 2300 mBm) [ 3130.905334] (5210000 KHz - 5230000 KHz @ 40000 KHz), (600 mBi, 2300 mBm) [ 3130.905334] (5230000 KHz - 5330000 KHz @ 40000 KHz), (600 mBi, 2300 mBm) [ 3130.905364] (5735000 KHz - 5835000 KHz @ 40000 KHz), (600 mBi, 3000 mBm) [ 3130.905364] cfg80211: Calling CRDA for country: US [ 3130.908111] musb_hdrc: version 6.0, musb-dma, otg (peripheral+host), debug=0 [ 3130.910308] musb_hdrc: USB OTG mode controller at d80ab000 using DMA, IRQ 92 [ 3130.911560] NET: Registered protocol family 2 [ 3130.911804] IP route cache hash table entries: 2048 (order: 1, 8192 bytes) [ 3130.912292] TCP established hash table entries: 8192 (order: 4, 65536 bytes) [ 3130.912445] TCP bind hash table entries: 8192 (order: 3, 32768 bytes) [ 3130.912567] TCP: Hash tables configured (established 8192 bind 8192) [ 3130.912567] TCP reno registered [ 3130.912780] NET: Registered protocol family 1 [ 3130.916107] VFS: Disk quotas dquot_6.5.2 [ 3130.916168] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes) [ 3130.916656] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 3130.917236] JFFS2 version 2.2. (NAND) (SUMMARY) © 2001-2006 Red Hat, Inc. [ 3130.917938] msgmni has been set to 466 [ 3130.921691] alg: No test for stdrng (krng) [ 3130.921783] io scheduler noop registered [ 3130.921783] io scheduler anticipatory registered [ 3130.921813] io scheduler deadline registered [ 3130.921966] io scheduler cfq registered (default) [ 3130.941101] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled [ 3130.963867] serial8250.0: ttyS0 at MMIO 0x4806a000 (irq = 72) is a ST16654 [ 3130.985321] serial8250.0: ttyS1 at MMIO 0x4806c000 (irq = 73) is a ST16654 [ 3131.007293] serial8250.0: ttyS2 at MMIO 0x49020000 (irq = 74) is a ST16654 [ 3131.007324] console [ttyS2] enabled [ 3131.527282] brd: module loaded [ 3131.535125] loop: module loaded [ 3131.538909] enc28j60 spi4.0: enc28j60 Ethernet driver 1.01 loaded [ 3131.547546] enc28j60 spi4.0: enc28j60 chip not found [ 3131.552612] enc28j60: probe of spi4.0 failed with error -5 [ 3131.558593] usbcore: registered new interface driver catc [ 3131.564178] catc: v2.8:CATC EL1210A NetMate USB Ethernet driver [ 3131.570770] usbcore: registered new interface driver kaweth [ 3131.576416] pegasus: v0.6.14 (2006/09/27), Pegasus/Pegasus II USB Ethernet driver [ 3131.584228] usbcore: registered new interface driver pegasus [ 3131.589935] rtl8150: v0.6.2 (2004/08/27):rtl8150 based usb-ethernet driver [ 3131.597106] usbcore: registered new interface driver rtl8150 [ 3131.603057] usbcore: registered new interface driver asix [ 3131.608734] usbcore: registered new interface driver cdc_ether [ 3131.614837] usbcore: registered new interface driver dm9601 [ 3131.620666] usbcore: registered new interface driver smsc95xx [ 3131.626708] usbcore: registered new interface driver gl620a [ 3131.632598] usbcore: registered new interface driver net1080 [ 3131.638519] usbcore: registered new interface driver plusb [ 3131.644256] usbcore: registered new interface driver rndis_host [ 3131.650482] usbcore: registered new interface driver cdc_subset [ 3131.656646] usbcore: registered new interface driver zaurus [ 3131.662536] usbcore: registered new interface driver MOSCHIP usb-ethernet driver [ 3131.670257] Broadcom 43xx driver loaded [ Features: L, Firmware-ID: FW13 ] [ 3131.677551] usbcore: registered new interface driver zd1211rw [ 3131.683532] usbcore: registered new interface driver rtl8187 [ 3131.689514] usbcore: registered new interface driver rndis_wlan [ 3131.695739] usbcore: registered new interface driver zd1201 [ 3131.701629] usbcore: registered new interface driver usb8xxx [ 3131.707550] usbcore: registered new interface driver rt2500usb [ 3131.713714] usbcore: registered new interface driver rt73usb [ 3131.719665] usbcore: registered new interface driver p54usb [ 3131.725341] i2c /dev entries driver [ 3131.730346] Driver 'sd' needs updating - please use bus_type methods [ 3131.736968] Driver 'sr' needs updating - please use bus_type methods [ 3131.744293] omap2-nand driver initializing [ 3131.748718] NAND device: Manufacturer ID: 0x2c, Chip ID: 0xba (Micron NAND 256MiB 1,8V 16-bit) [ 3131.757751] cmdlinepart partition parsing not available [ 3131.763061] Creating 5 MTD partitions on "omap2-nand": [ 3131.768218] 0x000000000000-0x000000080000 : "X-Loader" [ 3131.775146] 0x000000080000-0x000000260000 : "U-Boot" [ 3131.782012] 0x000000260000-0x000000280000 : "U-Boot Env" [ 3131.788452] 0x000000280000-0x000000680000 : "Kernel" [ 3131.796173] 0x000000680000-0x000010000000 : "File System" [ 3131.911987] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 3131.918853] ehci-omap ehci-omap.0: OMAP-EHCI Host Controller [ 3131.925384] ehci-omap ehci-omap.0: new USB bus registered, assigned bus number 1 [ 3131.933166] ehci-omap ehci-omap.0: irq 77, io mem 0x48064800 [ 3131.950286] ehci-omap ehci-omap.0: USB 2.0 started, EHCI 1.00 [ 3131.956695] usb usb1: configuration #1 chosen from 1 choice [ 3131.962738] hub 1-0:1.0: USB hub found [ 3131.966583] hub 1-0:1.0: 3 ports detected [ 3131.972351] Initializing USB Mass Storage driver... [ 3131.977630] usbcore: registered new interface driver usb-storage [ 3131.983734] USB Mass Storage support registered. [ 3131.988922] mice: PS/2 mouse device common for all mice [ 3131.994750] input: gpio-keys as /devices/platform/gpio-keys/input/input0 [ 3132.003601] input: twl4030_pwrbutton as /devices/platform/i2c_omap.1/i2c-adapter/i2c-1/1-0049/twl4030_pwrbutton/input/input1 [ 3132.295349] usb 1-2: new high speed USB device using ehci-omap and address 2 [ 3132.459320] usb 1-2: configuration #1 chosen from 1 choice [ 3132.465362] hub 1-2:1.0: USB hub found [ 3132.469390] hub 1-2:1.0: 4 ports detected [ 3132.763183] usb 1-2.1: new high speed USB device using ehci-omap and address 3 [ 3132.902313] usb 1-2.1: configuration #1 chosen from 1 choice [ 3133.013031] i2c_omap i2c_omap.2: controller timed out [ 3133.018157] rtc-ds1307: probe of 2-0068 failed with error -5 [ 3133.025421] OMAP Watchdog Timer Rev 0x31: initial timeout 60 sec [ 3133.031738] Bluetooth: HCI UART driver ver 2.2 [ 3133.036254] Bluetooth: HCI H4 protocol initialized [ 3133.041076] Bluetooth: HCI BCSP protocol initialized [ 3133.046112] Bluetooth: HCILL protocol initialized [ 3133.050842] Bluetooth: Broadcom Blutonium firmware driver ver 1.2 [ 3133.057281] usbcore: registered new interface driver bcm203x [ 3133.063018] Bluetooth: Digianswer Bluetooth USB driver ver 0.10 [ 3133.069213] usbcore: registered new interface driver bpa10x [ 3133.074829] Bluetooth: BlueFRITZ! USB driver ver 1.2 [ 3133.080078] usbcore: registered new interface driver bfusb [ 3133.085845] Bluetooth: Generic Bluetooth USB driver ver 0.4 [ 3133.091796] usbcore: registered new interface driver btusb [ 3133.097381] Bluetooth: Generic Bluetooth SDIO driver ver 0.1 [ 3133.104034] mmci-omap-hs mmci-omap-hs.0: Failed to get debounce clock [ 3133.216308] mmci-omap-hs mmci-omap-hs.1: Failed to get debounce clock [ 3133.222869] regulator: Unable to get requested regulator: vmmc_aux [ 3133.231506] Registered led device: beagleboard::usr0 [ 3133.236785] Registered led device: beagleboard::usr1 [ 3133.247497] usbcore: registered new interface driver usbhid [ 3133.253143] usbhid: v2.6:USB HID core driver [ 3133.258453] Advanced Linux Sound Architecture Driver Version 1.0.18a. [ 3133.265960] usbcore: registered new interface driver snd-usb-audio [ 3133.272521] No device for DAI twl4030 [ 3133.276214] No device for DAI omap-mcbsp-dai-0 [ 3133.280883] No device for DAI omap-mcbsp-dai-1 [ 3133.285339] No device for DAI omap-mcbsp-dai-2 [ 3133.289947] No device for DAI omap-mcbsp-dai-3 [ 3133.294433] No device for DAI omap-mcbsp-dai-4 [ 3133.298919] OMAP3 Beagle SoC init [ 3133.302642] TWL4030 Audio Codec init [ 3133.307403] asoc: twl4030 <-> omap-mcbsp-dai-0 mapping ok [ 3133.321624] ALSA device list: [ 3133.324615] #0: omap3beagle (twl4030) [ 3133.329040] oprofile: using arm/armv7 [ 3133.332916] TCP cubic registered [ 3133.336303] NET: Registered protocol family 17 [ 3133.340850] NET: Registered protocol family 15 [ 3133.345367] Bluetooth: L2CAP ver 2.11 [ 3133.349090] Bluetooth: L2CAP socket layer initialized [ 3133.354156] Bluetooth: SCO (Voice Link) ver 0.6 [ 3133.358764] Bluetooth: SCO socket layer initialized [ 3133.369445] Bluetooth: RFCOMM socket layer initialized [ 3133.374755] Bluetooth: RFCOMM TTY layer initialized [ 3133.379669] Bluetooth: RFCOMM ver 1.10 [ 3133.383453] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 [ 3133.388824] Bluetooth: BNEP filters: protocol multicast [ 3133.394073] Bluetooth: HIDP (Human Interface Emulation) ver 1.2 [ 3133.403198] RPC: Registered udp transport module. [ 3133.407989] RPC: Registered tcp transport module. [ 3133.412841] lib80211: common routines for IEEE802.11 drivers [ 3133.418609] ThumbEE CPU extension supported. [ 3133.423156] Power Management for TI OMAP3. [ 3133.433868] Disabling unused clock "sr2_fck" [ 3133.438262] Disabling unused clock "sr1_fck" [ 3133.442596] Disabling unused clock "mcbsp_fck" [ 3133.447052] Disabling unused clock "mcbsp_fck" [ 3133.451538] Disabling unused clock "mcbsp_fck" [ 3133.456024] Disabling unused clock "mcbsp_ick" [ 3133.460510] Disabling unused clock "mcbsp_ick" [ 3133.464996] Disabling unused clock "mcbsp_ick" [ 3133.469482] Disabling unused clock "gpt2_ick" [ 3133.473876] Disabling unused clock "gpt3_ick" [ 3133.478271] Disabling unused clock "gpt4_ick" [ 3133.482666] Disabling unused clock "gpt5_ick" [ 3133.487060] Disabling unused clock "gpt6_ick" [ 3133.491455] Disabling unused clock "gpt7_ick" [ 3133.495849] Disabling unused clock "gpt8_ick" [ 3133.500244] Disabling unused clock "gpt9_ick" [ 3133.504608] Disabling unused clock "wdt3_ick" [ 3133.509033] Disabling unused clock "wdt3_fck" [ 3133.513641] Disabling unused clock "gpio2_dbck" [ 3133.518188] Disabling unused clock "gpio3_dbck" [ 3133.522766] Disabling unused clock "gpio4_dbck" [ 3133.527343] Disabling unused clock "gpio5_dbck" [ 3133.531921] Disabling unused clock "gpio6_dbck" [ 3133.536499] Disabling unused clock "gpt9_fck" [ 3133.540863] Disabling unused clock "gpt8_fck" [ 3133.545288] Disabling unused clock "gpt7_fck" [ 3133.549652] Disabling unused clock "gpt6_fck" [ 3133.554077] Disabling unused clock "gpt5_fck" [ 3133.558441] Disabling unused clock "gpt4_fck" [ 3133.562866] Disabling unused clock "gpt3_fck" [ 3133.567230] Disabling unused clock "gpt2_fck" [ 3133.571655] Disabling unused clock "gpt1_ick" [ 3133.576049] Disabling unused clock "wdt1_ick" [ 3133.580413] Disabling unused clock "wdt2_ick" [ 3133.584838] Disabling unused clock "wdt2_fck" [ 3133.589202] Disabling unused clock "gpio1_dbck" [ 3133.593780] Disabling unused clock "gpt1_fck" [ 3133.598175] Disabling unused clock "cam_ick" [ 3133.602508] Disabling unused clock "cam_mclk" [ 3133.607116] Disabling unused clock "des1_ick" [ 3133.611511] Disabling unused clock "sha11_ick" [ 3133.615997] Disabling unused clock "rng_ick" [ 3133.620300] Disabling unused clock "aes1_ick" [ 3133.624694] Disabling unused clock "ssi_ick" [ 3133.628997] Disabling unused clock "mailboxes_ick" [ 3133.633850] Disabling unused clock "mcbsp_ick" [ 3133.638336] Disabling unused clock "mcbsp_ick" [ 3133.642791] Disabling unused clock "gpt10_ick" [ 3133.647277] Disabling unused clock "gpt11_ick" [ 3133.651763] Disabling unused clock "hdq_ick" [ 3133.656066] Disabling unused clock "mspro_ick" [ 3133.660552] Disabling unused clock "des2_ick" [ 3133.664947] Disabling unused clock "sha12_ick" [ 3133.669433] Disabling unused clock "aes2_ick" [ 3133.673828] Disabling unused clock "icr_ick" [ 3133.678131] Disabling unused clock "pka_ick" [ 3133.682434] Disabling unused clock "ssi_ssr_fck" [ 3133.687103] Disabling unused clock "hdq_fck" [ 3133.691406] Disabling unused clock "mcbsp_fck" [ 3133.695892] Disabling unused clock "mcbsp_fck" [ 3133.700561] Disabling unused clock "mspro_fck" [ 3133.705047] Disabling unused clock "gpt11_fck" [ 3133.709533] Disabling unused clock "gpt10_fck" [ 3133.713989] Disabling unused clock "dpll4_m6x2_ck" [ 3133.718841] Disabling unused clock "dpll3_m3x2_ck" [ 3133.723693] Disabling unused clock "sys_clkout1" [ 3133.728363] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 1 [ 3133.742828] registered taskstats version 1 [ 3133.764251] Console: switching to colour frame buffer device 80x30 [ 3133.778198] clock: clksel_round_rate_div: dpll4_m4_ck target_rate 48000000 [ 3133.785125] clock: new_div = 9, new_rate = 48000000 [ 3133.795593] drivers/rtc/hctosys.c: unable to open rtc device (rtc0) [ 3133.887939] mmc0: new high speed SDHC card at address a9ed [ 3133.894042] mmcblk0: mmc0:a9ed SD08G 7.42 GiB [ 3133.898986] mmcblk0: p1 p2 [ 3134.070312] eth0 (asix): not using net_device_ops yet [ 3134.076110] eth0: register 'asix' at usb-ehci-omap.0-2.1, ASIX AX88772 USB 2.0 Ethernet, 00:50:b6:06:c3:f3 [ 3134.134582] kjournald starting. Commit interval 5 seconds [ 3134.169372] usb 1-2.4: new high speed USB device using ehci-omap and address 4 [ 3134.295684] usb 1-2.4: configuration #1 chosen from 1 choice [ 3134.301910] hub 1-2.4:1.0: USB hub found [ 3134.305999] hub 1-2.4:1.0: 4 ports detected [ 3134.390747] EXT3 FS on mmcblk0p2, internal journal [ 3134.395599] EXT3-fs: mounted filesystem with ordered data mode. [ 3134.401641] VFS: Mounted root (ext3 filesystem) on device 179:2. [ 3134.407836] Freeing init memory: 204K INIT: version 2.86 booting Starting udev[ 3140.940948] twl4030_rtc twl4030_rtc: rtc core: registered twl4030_rtc as rtc0 [ 3140.948486] twl4030_rtc twl4030_rtc: Power up reset detected. [ 3141.017303] twl4030_rtc twl4030_rtc: Enabling TWL4030-RTC. [ 3141.952758] uncorrectable error : <3>end_request: I/O error, dev mtdblock0, sector 0 [ 3141.960601] Buffer I/O error on device mtdblock0, logical block 0 [ 3142.023376] uncorrectable error : <3>end_request: I/O error, dev mtdblock0, sector 8 [ 3142.031188] Buffer I/O error on device mtdblock0, logical block 1 [ 3142.067901] uncorrectable error : <3>end_request: I/O error, dev mtdblock0, sector 16 [ 3142.075836] Buffer I/O error on device mtdblock0, logical block 2 [ 3142.100311] uncorrectable error : <3>end_request: I/O error, dev mtdblock0, sector 24 [ 3142.108215] Buffer I/O error on device mtdblock0, logical block 3 [ 3142.139556] uncorrectable error : <3>end_request: I/O error, dev mtdblock0, sector 0 [ 3142.162719] Buffer I/O error on device mtdblock0, logical block 0 and populating dev cache Remounting root file system... [ 3147.624511] NET: Registered protocol family 10 [ 3147.699707] NET: Registered protocol family 23 [ 3147.727874] IrCOMM protocol (Dag Brattli) Unknown HZ value! (70) Assume 100. ALSA: Restoring mixer settings... Configuring network interfaces... [ 3149.568145] eth0: link up, 100Mbps, full-duplex, lpa 0x45E1 eth0 no wireless extensions. udhcpc (v1.13.2) started run-parts: /etc/udhcpc.d/00avahi-autoipd exited with code 1 Sending discover... [ 3149.732147] eth0: link up, 100Mbps, full-duplex, lpa 0x45E1 Sending discover... Sending select for 192.168.1.108... Lease of 192.168.1.108 obtained, lease time 86400 run-parts: /etc/udhcpc.d/00avahi-autoipd exited with code 1 adding dns 192.168.1.1 done. Starting portmap daemon: portmap. Unknown HZ value! (75) Assume 100. net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.all.rp_filter = 1 Wed Mar 10 03:00:00 GMT 2010 INIT: Entering runlevel: 5 Configuring leds: beagleboard::usr0: heartbeat beagleboard::usr1: mmc0 Starting Dropbear SSH server: dropbear. Starting advanced power management daemon: No APM support in kernel (failed.) Starting Vixie-cron. Starting system message bus: dbus. Starting Hardware abstraction layer hald Starting syslogd/klogd: done * Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon [ ok ] Starting Connection Manager Running ntpdate to synchronize clock. Starting GPE display manager: gpe-dm .-------. | | .-. | | |-----.-----.-----.| | .----..-----.-----. | | | __ | ---'| '--.| .-'| | | | | | | | |--- || --'| | | ' | | | | '---'---'--'--'--. |-----''----''--' '-----'-'-'-' -' | '---' The Angstrom Distribution beagleboard ttyS2 Angstrom 2009.X-stable beagleboard ttyS2 beagleboard login: root |
5-4 | 5-17 | Console Setup Code Snippet from .../kernel/printk.c | * Set up a list of consoles. Called from init/main.c */ static int __init console_setup(char *str) { char buf[sizeof(console_cmdline[0].name) + 4]; /* 4 for index */ char *s, *options, *brl_options = NULL; int idx; #ifdef CONFIG_A11Y_BRAILLE_CONSOLE if (!memcmp(str, "brl,", 4)) { brl_options = ""; str += 4; } else if (!memcmp(str, "brl=", 4)) { brl_options = str + 4; str = strchr(brl_options, ','); if (!str) { printk(KERN_ERR "need port name after brl=\n"); return 1; } *(str++) = 0; } #endif /* * Decode str into name, index, options. */ if (str[0] >= '0' && str[0] <= '9') { strcpy(buf, "ttyS"); strncpy(buf + 4, str, sizeof(buf) - 5); } else { strncpy(buf, str, sizeof(buf) - 1); } buf[sizeof(buf) - 1] = 0; if ((options = strchr(str, ',')) != NULL) *(options++) = 0; #ifdef __sparc__ if (!strcmp(str, "ttya")) strcpy(buf, "ttyS0"); if (!strcmp(str, "ttyb")) strcpy(buf, "ttyS1"); #endif for (s = buf; *s; s++) if ((*s >= '0' && *s <= '9') || *s == ',') break; idx = simple_strtoul(s, NULL, 10); *s = 0; __add_preferred_console(buf, idx, options, brl_options); console_set_on_cmdline = 1; return 1; } __setup("console=", console_setup); |
5-5 | 5-18 | Family of __setup Macro Definitions from .../include/linux/init.h | #define __setup_param(str, unique_id, fn, early) \ static char __setup_str_##unique_id[] __initdata __aligned(1) = str; \ static struct obs_kernel_param __setup_##unique_id \ __used __section(.init.setup) \ __attribute__((aligned((sizeof(long))))) \ = { __setup_str_##unique_id, fn, early } #define __setup(str, fn) \ __setup_param(str, fn, fn, 0) |
5-6 | 5-19 | Kernel Command Line Processing | extern struct obs_kernel_param __setup_start[], __setup_end[]; static int __init obsolete_checksetup(char *line) { struct obs_kernel_param *p; int had_early_param = 0; p = __setup_start; do { int n = strlen(p->str); if (!strncmp(line, p->str, n)) { if (p->early) { /* Already done in parse_early_param? * (Needs exact match on param part). * Keep iterating, as we can have early * params and __setups of same names 8( */ if (line[n] == '\0' || line[n] == '=') had_early_param = 1; } else if (!p->setup_func) { printk(KERN_WARNING "Parameter %s is obsolete," " ignored\n", p->str); return 1; } else if (p->setup_func(line + n)) return 1; } p++; } while (p < __setup_end); return had_early_param; } |
5-7 | 5-22 | Example Initialization Routine - .../arch/arm/kernel/setup.c | static void (*init_machine)(void) __initdata; static int __init customize_machine(void) { /* customizes platform devices, or adds new ones */ if (init_machine) init_machine(); return 0; } arch_initcall(customize_machine); |
5-8 | 5-22 | initcall Family of Macros - .../include/linux/init.h | #define __define_initcall(level,fn,id) \ static initcall_t __initcall_##fn##id __used \ __attribute__((__section__(".initcall" level ".init"))) = fn /* * Early initcalls run before initializing SMP. * * Only for built-in code, not modules. */ #define early_initcall(fn) __define_initcall("early",fn,early) /* * A "pure" initcall has no dependencies on anything else, and purely * initializes variables that couldn't be statically initialized. * * This only exists for built-in code, not for modules. */ #define pure_initcall(fn) __define_initcall("0",fn,0) #define core_initcall(fn) __define_initcall("1",fn,1) #define core_initcall_sync(fn) __define_initcall("1s",fn,1s) #define postcore_initcall(fn) __define_initcall("2",fn,2) #define postcore_initcall_sync(fn) __define_initcall("2s",fn,2s) #define arch_initcall(fn) __define_initcall("3",fn,3) #define arch_initcall_sync(fn) __define_initcall("3s",fn,3s) #define subsys_initcall(fn) __define_initcall("4",fn,4) #define subsys_initcall_sync(fn) __define_initcall("4s",fn,4s) #define fs_initcall(fn) __define_initcall("5",fn,5) #define fs_initcall_sync(fn) __define_initcall("5s",fn,5s) #define rootfs_initcall(fn) __define_initcall("rootfs",fn,rootfs) #define device_initcall(fn) __define_initcall("6",fn,6) #define device_initcall_sync(fn) __define_initcall("6s",fn,6s) #define late_initcall(fn) __define_initcall("7",fn,7) #define late_initcall_sync(fn) __define_initcall("7s",fn,7s) #define __initcall(fn) device_initcall(fn) #define __exitcall(fn) \ |
5-9 | 5-24 | Creation of Kernel init Thread | static noinline void __init_refok rest_init(void) __releases(kernel_lock) { int pid; kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND); numa_default_policy(); pid = kernel_thread(kthreadd, NULL, CLONE_FS | CLONE_FILES); kthreadd_task = find_task_by_pid_ns(pid, &init_pid_ns); unlock_kernel(); /* * The boot idle thread must execute schedule() * at least once to get things moving: */ init_idle_bootup_task(current); rcu_scheduler_starting(); preempt_enable_no_resched(); schedule(); preempt_disable(); /* Call into cpu_idle with preempt disabled */ cpu_idle(); } |
5-10 | 5-25 | Initialization via initcalls | extern initcall_t __initcall_start[], __initcall_end[], __early_initcall_end[]; static void __init do_initcalls(void) { initcall_t *call; for (call = __early_initcall_end; call < __initcall_end; call++) do_one_initcall(*call); /* Make sure there is no pending stuff from the initcall sequence */ flush_scheduled_work(); } |
5-11 | 5-27 | Final Boot Steps from main.c | static noinline int init_post(void) { /* need to finish all async __init code before freeing the memory */ async_synchronize_full(); free_initmem(); unlock_kernel(); mark_rodata_ro(); system_state = SYSTEM_RUNNING; numa_default_policy(); if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0) printk(KERN_WARNING "Warning: unable to open an initial console.\n"); (void) sys_dup(0); (void) sys_dup(0); current->signal->flags |= SIGNAL_UNKILLABLE; if (ramdisk_execute_command) { run_init_process(ramdisk_execute_command); printk(KERN_WARNING "Failed to execute %s\n", ramdisk_execute_command); } /* * We try each of these until one succeeds. * * The Bourne shell can be used instead of init if we are * trying to recover a really broken machine. */ if (execute_command) { run_init_process(execute_command); printk(KERN_WARNING "Failed to execute %s. Attempting " "defaults...\n", execute_command); } ... run_init_process("/sbin/init"); run_init_process("/etc/init"); run_init_process("/bin/init"); run_init_process("/bin/sh"); panic("No init found. Try passing init= option to kernel."); } |