zoukankan      html  css  js  c++  java
  • 移植交叉编译pcDuino + busybox 成功搭建最小linux系统

    新手发帖,很多方面都是刚入门,有错误的地方请大家见谅,欢迎批评指正

        经过一周的实验,我的pcduino mini linux统系终究跑起来了。启动面界如下:

        U-Boot 2012.10 (Apr 19 2013 - 18:46:44) Allwinner Technology

        CPU:   SUNXI Family
    Board: pcDuino
    I2C:   ready
    DRAM:  1 GiB
    MMC:   SUNXI SD/MMC: 0
    *** Warning - bad CRC, using default environment

        In:    serial
    Out:   serial
    Err:   serial
    Hit any key to stop autoboot:  0 
    reading uEnv.txt

        144 bytes read
    Loaded environment from uEnv.txt
    reading boot.scr

        289 bytes read
    Jumping to boot.scr
    ## Executing script at 44000000
    Wrong image format for "source" command
    reading script.bin

        44900 bytes read
    reading uImage

        4693132 bytes read
    ## Booting kernel from Legacy Image at 48000000 ...
       Image Name:   Linux-3.0.62
       Image Type:   ARM Linux Kernel Image (uncompressed)
       Data Size:    4693068 Bytes = 4.5 MiB
       Load Address: 40008000
       Entry Point:  40008000
       Verifying Checksum ... OK
       Loading Kernel Image ... OK
    OK

        Starting kernel ...

        <6>Initializing cgroup subsys cpuset
    <5>Linux version 3.0.62 (change@change) (gcc version 4.4.1 (Sourcery G++ Lite 2009q3-67) ) #1 PREEMPT Sat Apr 20 18:32:39 CST 2013
    CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d
    CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache
    Machine: sun4i
    <6>Memory cut off:
    <6>     MALI : 0x5c000000 - 0x5fffffff  (  64 MB)
    <4>Ignoring unrecognised tag 0x00000000
    <6>Memory Reserved:
    <6>     SYS  : 0x43000000 - 0x4300ffff  (  64 kB)
    <6>     VE   : 0x44000000 - 0x48ffffff  (  80 MB)
    <6>     G2D  : 0x49000000 - 0x49ffffff  (  16 MB)
    <6>     LCD  : 0x5a000000 - 0x5bffffff  (  32 MB)
    Memory policy: ECC disabled, Data cache writeback
    <6>chip-id: A10 (AW1623 revision C)
    <7>On node 0 totalpages: 245760
    <7>free_area_init_node: node 0, pgdat c0887ea0, node_mem_map c094e000
    <7>  Normal zone: 1280 pages used for memmap
    <7>  Normal zone: 0 pages reserved
    <7>  Normal zone: 146176 pages, LIFO batch:31
    <7>  HighMem zone: 768 pages used for memmap
    <7>  HighMem zone: 97536 pages, LIFO batch:31
    <7>pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
    <7>pcpu-alloc: [0] 0 
    Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 243712
    <5>Kernel command line: console=ttyS0,115200 root=/dev/mmcblk0p2 rootwait loglevel=8 panic=10
    <6>PID hash table entries: 4096 (order: 2, 16384 bytes)
    <6>Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
    <6>Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
    <6>Memory: 448MB 512MB = 960MB total
    <5>Memory: 833852k/833852k available, 149188k reserved, 393216K highmem
    <5>Virtual kernel memory layout:
        vector  : 0xffff0000 - 0xffff1000   (   4 kB)
        fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)

        ........//太长了,省略多少

        每日一道理
    盈盈月光,我掬一杯最清的;落落余辉,我拥一缕最暖的;灼灼红叶,我拾一片最热的;萋萋芳草,我摘一束最灿的;漫漫人生,我要采撷世间最重的———毅力。

        <6>mmc0: new high speed SD card at address 1234
    [    4.140000] mmc0: new high speed SD card at address 1234
    <6>mmcblk0: mmc0:1234 SA01G 942 MiB 
    [    4.160000] mmcblk0: mmc0:1234 SA01G 942 MiB 
    <6> mmcblk0: p1 p2
    [    4.170000]  mmcblk0: p1 p2
    <6>Console: switching to colour frame buffer device 160x45
    [    4.290000] Console: switching to colour frame buffer device 160x45
    <4>regulator_init_complete: axp20_buck3: incomplete constraints, leaving on
    [    4.330000] regulator_init_complete: axp20_buck3: incomplete constraints, leaving on
    <4>regulator_init_complete: axp20_buck2: incomplete constraints, leaving on
    [    4.350000] regulator_init_complete: axp20_buck2: incomplete constraints, leaving on
    <4>regulator_init_complete: axp20_ldo4: incomplete constraints, leaving on
    [    4.360000] regulator_init_complete: axp20_ldo4: incomplete constraints, leaving on
    <4>regulator_init_complete: axp20_ldo3: incomplete constraints, leaving on
    [    4.380000] regulator_init_complete: axp20_ldo3: incomplete constraints, leaving on
    <4>regulator_init_complete: axp20_ldo2: incomplete constraints, leaving on
    [    4.390000] regulator_init_complete: axp20_ldo2: incomplete constraints, leaving on
    <4>regulator_init_complete: axp20_ldo1: incomplete constraints, leaving on
    [    4.410000] regulator_init_complete: axp20_ldo1: incomplete constraints, leaving on
    <6>sunxi-rtc sunxi-rtc: sunxi_rtc_gettime
    [    4.420000] sunxi-rtc sunxi-rtc: sunxi_rtc_gettime
    <6>sunxi-rtc sunxi-rtc: read time 2010-1-1 0:0:10
    [    4.430000] sunxi-rtc sunxi-rtc: read time 2010-1-1 0:0:10
    <6>sunxi-rtc sunxi-rtc: setting system clock to 2010-01-01 00:00:10 UTC (1262304010)
    [    4.440000] sunxi-rtc sunxi-rtc: setting system clock to 2010-01-01 00:00:10 UTC (1262304010)
    <3>EXT3-fs (mmcblk0p2): error: couldn't mount because of unsupported optional features (240)
    [    4.460000] EXT3-fs (mmcblk0p2): error: couldn't mount because of unsupported optional features (240)
    <3>EXT2-fs (mmcblk0p2): error: couldn't mount because of unsupported optional features (244)
    [    4.480000] EXT2-fs (mmcblk0p2): error: couldn't mount because of unsupported optional features (244)
    <6>EXT4-fs (mmcblk0p2): recovery complete
    [    5.840000] EXT4-fs (mmcblk0p2): recovery complete
    <6>EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
    [    6.060000] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
    <6>VFS: Mounted root (ext4 filesystem) on device 179:2.
    [    6.080000] VFS: Mounted root (ext4 filesystem) on device 179:2.
    <6>devtmpfs: mounted
    [    6.090000] devtmpfs: mounted
    <6>Freeing init memory: 164K
    [    6.090000] Freeing init memory: 164K
    mount: mounting devpts on /dev/pts failed: No such file or directory
    mount: mounting /dev/mmcblk0p1 on /boot failed: No such file or directory


    Please press Enter to activate this console. 


    Processing /etc/profile... Done


    / # ls
    bin         home        lost+found  run         tmp
    dev         lib         mnt         sbin        usr
    etc         linuxrc     proc        sys         var

        / # ifconfig eth0
    eth0      Link encap:Ethernet  HWaddr 12:5B:BD:7D:C4:75  
              BROADCAST MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
              Interrupt:55 Base address:0x8000 


    / # ifconfig eth0 172.16.1.133
    <4>wemac wemac.0: WARNING: no IRQ resource flags set.
    [ 2360.950000] wemac wemac.0: WARNING: no IRQ resource flags set.
    <6>wemac wemac.0: eth0: link down
    [ 2361.060000] wemac wemac.0: eth0: link down
    <6>ADDRCONF(NETDEV_UP): eth0: link is not ready
    [ 2361.070000] ADDRCONF(NETDEV_UP): eth0: link is not ready
    / # 

        具体移植进程见linux移植一、二、三。花了不少间时啊,这是移植心得。

        pcduino linux移植期间遇到了不少问题,结总如下:

        1.pkg-config可以决解明显在自己器机上编译好好的,在别人电脑上编译就不行问题,它能为已安装的库时供提一统接口。解了pkg-config决解Package libusb-1.0 was not found in the pkg-config search path

        2.用busybox制造文件统系时,要注意文件的性属。括包态动接链、执行权限等。通过sudo cp -pR file1 file2,留保文件性属,否则统系跑步起来。

        3.ubuntu下烧写tf卡命令,这里易容出问题,发明杂牌子的tf卡就不行,一卡了一段间时,最后断果Kingstorm

        4.Kernel panic - not syncing: No init found.  Try passing init= option to kernel,这个问题说了找不到init,而我置设init=/sbin/init,显然没问题。原因安在呢?

        change@change:~/Si/A10/pcduino/rootfs$ ls sbin/ -l

        lrwxrwxrwx 1 change change 14 2013-04-28 21:16 init -> ../bin/busybox

        change@change:~/Si/A10/pcduino/rootfs$ file linuxrc 
    linuxrc: symbolic link to `bin/busybox'

        发明bin/busybox是一个态动接链库文件,赖依交叉编译链的响应库。而交叉编译链库有很多,试了发明../arm-2009q3/arm-none-linux-gnueabi/libc/armv4t/lib/和 /home/change/tools/arm-2009q3/arm-none-linux-gnueabi/libc/armv4t/usr/lib/ 下的*.so*库可以应用。

        

        

        

    文章结束给大家分享下程序员的一些笑话语录: 联想——对内高价,补贴对外倾销的伟大“民族”企业。

  • 相关阅读:
    nginx路径详解
    负载均衡
    http中消息头的安全配置及工作原理
    Tomcat的ErrorPage实现原理分析及阀门ErrorReportValve
    Tomcat中Logger组件
    NIO在Tomcat中的应用
    vue中强制生效css样式
    k8s中的Ingress
    xhr.withCredentials与 CORS 什么关系
    Redis Cluster集群
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3050565.html
Copyright © 2011-2022 走看看