重建 BeagleBoard-xM Angstrom

自從開始玩 BeagleBoard-xM 後,SD 卡不曉得被我毀掉幾次了 (原廠建議這一塊不要動,另外拿一塊新的 SD 卡來實驗,不過我沒有多的,只好 ...)。有幾次雖然有載入 Angstrom,HDMI 也有畫面輸出,LED 也是一直閃,但卡在登入畫面一個多小時 (Console 顯示 Uncompressing Linux...),實在是沒耐性就把它給關了。



而今天試的是不含 GUI 的 Angstrom,root filesystem 才 17MB,總算試成功可以登入 root,以下就是實驗的步驟:

首先確認 SD 卡的檔案系統是否還在


如果不在的話,可以下載 mkcard.txt 來重新製作:
  1. $ chmod +x mkcard.txt
  2. $ sudo ./chmod /dev/sdx (其中 x 是你記憶卡的位置,例如我的是 /dev/sdb,以下皆用此範例說明,若你的系統跟我不同,請記得修改,否則後果 ...)
不過在我這邊還是常常失敗,所以只好使出最後的手段 - 手動設定了 (參考BeagleBoardBeginners)

其中 BOOT 應格式化為 FAT32 (mkcard.txt 應該會做,或者下次要重來時只需格式化即可

$ sudo mkfs.vfat -F 32 -n "boot" /dev/sdb1

 而 Angstrom 應格式化為 ext3

$ sudo mkfs.ext3 -j -L "Angstrom" /dev/sdb2

完成後把 SD 卡拔掉重插,就可以把這兩個 Partition mount 起來,然後到 Beagleboard demo files 準備開始 copy 檔案了


其中第一個 169M 的 demo image 就是害我卡了一個多小時的系統,目前先放棄了,接下來

  1. $ sudo tar -C /media/Angstrom/ -xjvf Angstrom-systemd-image-eglibc-ipk-v2012.05-beagleboard.rootfs.tar.bz2
    (它不像老師上課講的,把所有 root filesystem 打包成一個檔案,使用時再解壓縮,而是將所有的檔案解壓縮後放在 /media/Angstrom partition 中)
  2. $ cp MLO /media/BOOT
    (MLO 是 BeagleBoard-xM 特有的 X-Loader,目於執行它自己的初始化,執行完才會呼叫 U-Boot。另外格式化後,MLO 一定要是第一個 copy 到 BOOT 的程式,因為它有點像啟動磁區的角色)
  3. $ cp u-boot.img /media/BOOT
    (這才是標準的 U-Boot)
  4. $ cp /media/Angstrom/boot/uImage /media/BOOT/
    (請使用 filesystem 中的 uImage,而非網站下載的 uImage,它就是 Linux Kernel)
  5. $ sync; sudo umount /dev/sdb1; sudo umount /dev/sdb2
    (將資料同步回 SD 卡,然後缷載準備開機了)
接下來將 SD 卡插到 BeagleBoard-xM 板子上,利用 Serial Cable (DB9 公對 DB9 母) 連接 PC 與 BeagleBoard-xM 上的 COM port (若 PC 上沒有 COM port,請自行利用 USB to COM 轉接)

參考 minicom 的設定,就可以接上 BeagleBoard-xM 的電源了。此時在 Console 中應該可以看到如下的輸出 (若出現亂碼表示一開始沒有連線成功,重啟 minicom,然後再按一次板子上的 Reset 就可以了)



U-Boot SPL 2011.12-00010-ga3eb89c (Jan 29 2012 - 14:53:43)
Texas Instruments Revision detection unimplemented
OMAP SD/MMC: 0
timed out in wait_for_bb: I2C_STAT=1000
reading u-boot.img
reading u-boot.img


U-Boot 2011.12-00010-ga3eb89c (Jan 29 2012 - 14:53:43)

OMAP36XX/37XX-GP ES1.2, CPU-OPP2, L3-165MHz, Max CPU Clock 1 Ghz
OMAP3 Beagle board + LPDDR/NAND
I2C:   ready
DRAM:  512 MiB
NAND:  0 MiB
MMC:   OMAP SD/MMC: 0
*** Warning - readenv() failed, using default environment

In:    serial
Out:   serial
Err:   serial
Beagle xM Rev C
No EEPROM on expansion board
No EEPROM on expansion board
Die ID #465600029ff800000168300f0d030023
Net:   Net Initialization Skipped
No ethernet found.
Hit any key to stop autoboot:  0 
The user button is currently NOT pressed.
SD/MMC found on device 0
reading uEnv.txt

** Unable to read "uEnv.txt" from mmc 0:1 **
Loading file "/boot/uImage" from mmc device 0:2 (xxa2)
4368504 bytes read
Booting from mmc ...
## Booting kernel from Legacy Image at 80200000 ...
   Image Name:   Angstrom/3.2.16/beagleboard
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    4368440 Bytes = 4.2 MiB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 3.2.16 (koen@dominion) (gcc version 4.5.4 20120305 (prerelease) (GCC) ) #1 Thu May 10 15:24:05 CEST 2012
[    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] Machine: OMAP3 Beagle Board
[    0.000000] Beagle expansionboard: none
[    0.000000] Beagle second expansionboard: none
[    0.000000] Reserving 12582912 bytes SDRAM for VRAM
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] OMAP3630 ES1.2 (l2cache iva sgx neon isp 192mhz_clk )
[    0.000000] Clocking rate (Crystal/Core/MPU): 26.0/400/600 MHz
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 125440
[    0.000000] Kernel command line: console=ttyO2,115200n8 mpurate=auto buddy=none buddy2=none camera=none vram=12M omapfb.mode=dvi:640x480MR-16@60 omapdss.def_disp=dvi root=/dev/mmcblk0p2 ro rootfstype=ext3 rootwait
[    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] allocated 2097152 bytes of page_cgroup
[    0.000000] please try 'cgroup_disable=memory' option if you don't want memory cgroups
[    0.000000] Memory: 494MB = 494MB total
[    0.000000] Memory: 490472k/490472k available, 33816k reserved, 0K highmem
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
[    0.000000]     vmalloc : 0xe0800000 - 0xf8000000   ( 376 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]       .text : 0xc0008000 - 0xc0739a50   (7367 kB)
[    0.000000]       .init : 0xc073a000 - 0xc0780000   ( 280 kB)
[    0.000000]       .data : 0xc0780000 - 0xc07da590   ( 362 kB)
[    0.000000]        .bss : 0xc07da5b4 - 0xc0897694   ( 757 kB)
[    0.000000] SLUB: Genslabs=11, HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS:410 nr_irqs:410 410
[    0.000000] IRQ: Found an INTC at 0xfa200000 (revision 4.0) with 96 interrupts
[    0.000000] Total of 96 interrupts on 1 active controller
[    0.000000] OMAP clockevent source: GPTIMER12 at 32768 Hz
[    0.000000] sched_clock: 32 bits at 32kHz, resolution 30517ns, wraps every 131071999ms
[    0.000000] Console: colour dummy device 80x30
[    0.000122] Calibrating delay loop... 506.27 BogoMIPS (lpj=1978368)
[    0.039672] pid_max: default: 32768 minimum: 301
[    0.039886] Security Framework initialized
[    0.039947] AppArmor: AppArmor initialized
[    0.040161] Mount-cache hash table entries: 512
[    0.040557] Initializing cgroup subsys cpuacct
[    0.040588] Initializing cgroup subsys memory
[    0.040649] Initializing cgroup subsys devices
[    0.040649] Initializing cgroup subsys freezer
[    0.040679] Initializing cgroup subsys blkio
[    0.040710] Initializing cgroup subsys perf_event
[    0.040771] CPU: Testing write buffer coherency: ok
[    0.041809] devtmpfs: initialized
[    0.045410] print_constraints: dummy: 
[    0.045654] NET: Registered protocol family 16
[    0.045806] GPMC revision 5.0
[    0.047241] OMAP GPIO hardware version 2.5
[    0.048522] omap_mux_init: Add partition: #1: core, flags: 0
[    0.049804] OMAP3 Beagle Rev: xM C
[    0.052825] Reprogramming SDRC clock to 400000000 Hz
[    0.052856] dpll3_m2_clk rate change failed: -22
[    0.054718] Found NAND on CS0
[    0.054718] Registering NAND on CS0
[    0.055023] Unable to get DVI reset GPIO
[    0.055175] hw-breakpoint: debug architecture 0x4 unsupported.
[    0.058654]  omap-mcbsp.2: alias fck already exists
[    0.058837]  omap-mcbsp.3: alias fck already exists
[    0.059997] OMAP DMA hardware revision 5.0
[    0.066589] bio: create slab <bio-0> at 0
[    0.067779] SCSI subsystem initialized
[    0.068939] usbcore: registered new interface driver usbfs
[    0.069061] usbcore: registered new interface driver hub
[    0.069244] usbcore: registered new device driver usb
[    0.069946] omap_i2c omap_i2c.1: bus 1 rev1.4.0 at 2600 kHz
[    0.072357] twl4030: PIH (irq 7) chaining IRQs 368..375
[    0.072448] twl4030: power (irq 373) chaining IRQs 376..383
[    0.072937] twl4030: gpio (irq 368) chaining IRQs 384..401
[    0.073272] _omap_mux_init_gpio: Could not set gpio192
[    0.076019] print_constraints: VUSB1V5: 1500 mV normal standby
[    0.076446] print_constraints: VUSB1V8: 1800 mV normal standby
[    0.076812] print_constraints: VUSB3V1: 3100 mV normal standby
[    0.078430] twl4030_usb twl4030_usb: Initialized TWL4030 USB module
[    0.079193] print_constraints: VMMC1: 1850 <--> 3150 mV at 3150 mV normal standby
[    0.079620] print_constraints: VDAC: 1800 mV normal standby
[    0.080017] print_constraints: VAUX2_4030: 1800 mV normal 
[    0.080413] print_constraints: VDVI: 1800 mV normal standby
[    0.080902] print_constraints: VSIM: 1800 <--> 3000 mV at 1800 mV normal standby
[    0.081207] omap_i2c omap_i2c.2: bus 2 rev1.4.0 at 400 kHz
[    0.092529] omap_i2c omap_i2c.3: bus 3 rev1.4.0 at 100 kHz
[    0.093597] NetLabel: Initializing
[    0.093627] NetLabel:  domain hash size = 128
[    0.093627] NetLabel:  protocols = UNLABELED CIPSOv4
[    0.093688] NetLabel:  unlabeled traffic allowed by default
[    0.093719] Switching to clocksource 32k_counter
[    0.106689] AppArmor: AppArmor Filesystem Enabled
[    0.118560] musb-hdrc: version 6.0, ?dma?, otg (peripheral+host)
[    0.123596] musb-hdrc musb-hdrc: USB OTG mode controller at fa0ab000 using DMA, IRQ 92
[    0.123931] NET: Registered protocol family 2
[    0.124237] IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
[    0.124969] TCP established hash table entries: 16384 (order: 5, 131072 bytes)
[    0.125396] TCP bind hash table entries: 16384 (order: 4, 65536 bytes)
[    0.125610] TCP: Hash tables configured (established 16384 bind 16384)
[    0.125610] TCP reno registered
[    0.125640] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.125640] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.125976] NET: Registered protocol family 1
[    0.126373] RPC: Registered named UNIX socket transport module.
[    0.126403] RPC: Registered udp transport module.
[    0.126403] RPC: Registered tcp transport module.
[    0.126434] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.126678] omap_dsp_init: 600000 bytes @ 9ee00000
[    0.128326] audit: initializing netlink socket (disabled)
[    0.128356] type=2000 audit(0.140:1): initialized
[    0.336242] VFS: Disk quotas dquot_6.5.2
[    0.336578] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.339965] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.340026] fuse init (API version 7.17)
[    0.341979] Btrfs loaded
[    0.342010] msgmni has been set to 957
[    0.343536] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253)
[    0.343658] io scheduler noop registered
[    0.343658] io scheduler deadline registered
[    0.343719] io scheduler cfq registered (default)
[    0.344696] OMAP DSS rev 2.0
[    0.347137] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    0.348297] omap_uart.0: ttyO0 at MMIO 0x4806a000 (irq = 72) is a OMAP UART0
[    0.348571] omap_uart.1: ttyO1 at MMIO 0x4806c000 (irq = 73) is a OMAP UART1
[    0.348846] omap_uart.2: ttyO2 at MMIO 0x49020000 (irq = 74) is a OMAP UART2
[    1.069427] console [ttyO2] enabled
[    1.073577] omap_uart.3: ttyO3 at MMIO 0x49042000 (irq = 80) is a OMAP UART3
[    1.081481] [drm] Initialized drm 1.1.0 20060810
[    1.093902] brd: module loaded
[    1.101104] loop: module loaded
[    1.105804] twl4030_madc twl4030_madc: clk disabled, enabling
[    1.113342] omap2-nand driver initializing
[    1.118011] No NAND device found
[    1.121612] No NAND device found
[    1.125183] OneNAND driver initializing
[    1.129852] usbcore: registered new interface driver cdc_ether
[    1.136077] usbcore: registered new interface driver rndis_host
[    1.142333] cdc_ncm: 04-Aug-2011
[    1.145782] usbcore: registered new interface driver cdc_ncm
[    1.152130] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    3.171936] ehci-omap ehci-omap.0: OMAP-EHCI Host Controller
[    3.178192] ehci-omap ehci-omap.0: new USB bus registered, assigned bus number 1
[    3.186096] ehci-omap ehci-omap.0: irq 77, io mem 0x48064800
[    3.203247] ehci-omap ehci-omap.0: USB 2.0 started, EHCI 1.00
[    3.209381] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    3.216522] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    3.224090] usb usb1: Product: OMAP-EHCI Host Controller
[    3.229675] usb usb1: Manufacturer: Linux 3.2.16 ehci_hcd
[    3.235351] usb usb1: SerialNumber: ehci-omap.0
[    3.240783] hub 1-0:1.0: USB hub found
[    3.244781] hub 1-0:1.0: 3 ports detected
[    3.273590] Initializing USB Mass Storage driver...
[    3.278808] usbcore: registered new interface driver usb-storage
[    3.285125] USB Mass Storage support registered.
[    3.290100] usbcore: registered new interface driver libusual
[    3.296264] udc: OMAP UDC driver, version: 4 October 2004 (iso) (dma)
[    3.303527] mousedev: PS/2 mouse device common for all mice
[    3.310729] input: twl4030_pwrbutton as /devices/platform/omap/omap_i2c.1/i2c-1/1-0049/twl4030_pwrbutton/input/input0
[    3.322479] i2c /dev entries driver
[    3.326660] Linux media interface: v0.10
[    3.330963] lirc_dev: IR Remote Control driver registered, major 249 
[    3.337707] Driver for 1-wire Dallas network protocol.
[    3.343811] OMAP Watchdog Timer Rev 0x31: initial timeout 60 sec
[    3.350402] twl4030_wdt twl4030_wdt: Failed to register misc device
[    3.356994] twl4030_wdt: probe of twl4030_wdt failed with error -16
[    3.364624] device-mapper: ioctl: 4.22.0-ioctl (2011-10-19) initialised: dm-devel@redhat.com
[    3.373962] cpuidle: using governor ladder
[    3.378265] cpuidle: using governor menu
[    3.382415] sdhci: Secure Digital Host Controller Interface driver
[    3.388885] sdhci: Copyright(c) Pierre Ossman
[    3.570526] usb 1-2: new high-speed USB device number 2 using ehci-omap
[    3.611511] omap_hsmmc: probe of omap_hsmmc.1 failed with error -16
[    3.620971] oprofile: hardware counters not available
[    3.626281] oprofile: using timer interrupt.
[    3.631500] TCP cubic registered
[    3.635681] NET: Registered protocol family 10
[    3.641967] NET: Registered protocol family 17
[    3.646789] Registering the dns_resolver key type
[    3.651763] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
[    3.659759] ThumbEE CPU extension supported.
[    3.664276] Registering SWP/SWPB emulation handler
[    3.674255] sr_init: No PMIC hook to init smartreflex
[    3.679687] smartreflex smartreflex.0: omap_sr_probe: SmartReflex driver initialized
[    3.687957] smartreflex smartreflex.1: omap_sr_probe: SmartReflex driver initialized
[    3.696105] SmartReflex Class3 initialized
[    3.703704] clock: disabling unused clocks to save power
[    3.710083] registered taskstats version 1
[    3.714599] fbcvt: 640x480@60: CVT Name - .307M3-R
[    3.729553] Console: switching to colour frame buffer device 80x30
[    3.742065] regulator_init_complete: VDAC: incomplete constraints, leaving on
[    3.749603] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
[    3.756744] Waiting for root device /dev/mmcblk0p2...
[    3.774719] usb 1-2: New USB device found, idVendor=0424, idProduct=9514
[    3.781738] usb 1-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    3.789978] hub 1-2:1.0: USB hub found
[    3.794158] hub 1-2:1.0: 5 ports detected
[    3.957916] mmc0: host does not support reading read-only switch. assuming write-enable.
[    3.968963] mmc0: new high speed SDHC card at address 1234
[    3.975128] mmcblk0: mmc0:1234 SA04G 3.63 GiB 
[    3.982055]  mmcblk0: p1 p2
[    4.086791] usb 1-2.1: new high-speed USB device number 3 using ehci-omap
[    4.096008] EXT3-fs (mmcblk0p2): recovery required on readonly filesystem
[    4.103118] EXT3-fs (mmcblk0p2): write access will be enabled during recovery
[    4.211914] usb 1-2.1: New USB device found, idVendor=0424, idProduct=ec00
[    4.219146] usb 1-2.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[   14.384460] kjournald starting.  Commit interval 5 seconds
[   14.390258] EXT3-fs (mmcblk0p2): recovery complete
[   15.089874] EXT3-fs (mmcblk0p2): mounted filesystem with ordered data mode
[   15.097106] VFS: Mounted root (ext3 filesystem) readonly on device 179:2.
[   15.107666] devtmpfs: mounted
[   15.111236] Freeing init memory: 280K

Welcome to The �Ångstr�öm Distribution!

Starting udev Coldplug all Devices...                                          
Starting Remount API VFS...                                                    
Started Set Up Additional Binary Formats                               [  OK  ]
Starting Load Kernel Modules...                                                
Starting Debug File System...                                                  
Started Apply Kernel Variables                                         [  OK  ]
Starting POSIX Message Queue File System...                                    
Starting udev Kernel Device Manager...                                         
Starting Journal Service...                                                    
Started Journal Service                                                [  OK  ]
[   15.802398] udevd[55]: starting version 182
Started Huge Pages File System                                         [  OK  ]
Starting File System Check on Root Device...                                   
Starting Temporary Directory...                                                
Started udev Kernel Device Manager                                     [  OK  ]
Started Remount API VFS                                                [  OK  ]
Started Load Kernel Modules                                            [  OK  ]
Started Debug File System                                              [  OK  ]
Started POSIX Message Queue File System                                [  OK  ]
Started Temporary Directory                                            [  OK  ]
Starting FUSE Control File System...                                           
Started Configuration File System                                      [  OK  ]
Started FUSE Control File System                                       [  OK  ]
Started udev Coldplug all Devices                                      [  OK  ]
Started File System Check on Root Device                               [  OK  ]
Starting Remount Root FS...                                                    
[   16.214782] EXT3-fs (mmcblk0p2): using internal journal
Started Remount Root FS                                                [  OK  ]
Started Machine ID first boot configure                                [  OK  ]
Starting Load Random Seed...                                                   
Starting Recreate Volatile Files and Directories...                            
Started Run pending postinsts                                          [  OK  ]
Started Load Random Seed                                               [  OK  ]
Started Recreate Volatile Files and Directories                        [  OK  ]
Starting Connection service...                                                 
Starting Timestamping service...                                               
Started Timestamping service                                           [  OK  ]
Started SSH Key Generation                                             [  OK  ]
Starting D-Bus System Message Bus...                                           
Starting Login Service...                                                      
Starting Permit User Sessions...                                               
Starting Avahi mDNS/DNS-SD Stack...                                            
Started Permit User Sessions                                           [  OK  ]
systemd-fsck[57]: Angstrom: clean, 3980/233856 files, 44264/933778 blocks
Started D-Bus System Message Bus                                       [  OK  ]
Started Connection service                                             [  OK  ]
Started Avahi mDNS/DNS-SD Stack                                        [  OK  ]
Started Login Service                                                  [  OK  ]
[   17.076965] ip_tables: (C) 2000-2006 Netfilter Core Team
[   17.122497] nf_conntrack version 0.5.0 (7668 buckets, 30672 max)
[   17.291900] twl_rtc twl_rtc: rtc core: registered twl_rtc as rtc0
Starting Serial Getty on ttyO2...                                              
Started Serial Getty on ttyO2                                          [  OK  ]
[   17.770111] smsc95xx v1.0.4
[   17.865478] smsc95xx 1-2.1:1.0: eth0: register 'smsc95xx' at usb-ehci-omap.0-2.1, smsc95xx USB 2.0 Ethernet, 3e:c6:06:c7:98:03
[   17.877593] usbcore: registered new interface driver smsc95xx
Starting Getty on tty1...                                                      
Started Getty on tty1                                                  [  OK  ]

.---O---.                                           
|       |                  .-.           o o        
|   |   |-----.-----.-----.| |   .----..-----.-----.
|       |     | __  |  ---'| '--.|  .-'|     |     |
|   |   |  |  |     |---  ||  --'|  |  |  '  | | | |
'---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'
                -'  |
                '---'

The Angstrom Distribution beagleboard ttyO2

Angstrom v2012.05 - Kernel 3.2.16

beagleboard login: root
Last login: Thu Jan  1 00:24:08 UTC 1970 on ttyO2
root@beagleboard:~# 

完成後可以直接用 root 登入 (沒有密碼),要試試板子的功能,可以來控制板子上的 LED
  • $ echo 1 > /sys/class/leds/beagleboard\:\:usr0/brightness
  • $ echo 0 > /sys/class/leds/beagleboard\:\:usr0/brightness
 原本 LED 是在閃爍的狀態,所以要先寫入 0 關閉 LED,然後才可以自由控制。

總算有一個雛形了,接下來就是下載 Source code,自己來 build kernel & root filesystem,希望可以用 BeagleBoard xM 趕上老師的進度。

留言

這個網誌中的熱門文章

Linux 批次檔的寫法

【分享】如何顯示 Debug Message

[分享] Visual Studio 遠端偵錯