查看: 3356|回复: 2

【Marvell ESPRESSObin】openWrt失败后放弃治疗,开始编译内核...

[复制链接]
  • TA的每日心情
    无聊
    2021-7-15 17:25
  • 签到天数: 21 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2017-5-14 23:13:14 | 显示全部楼层 |阅读模式
    分享到:
    昨天编译openWRT失败了,现已放弃治疗,等着明天去公司用git clone一下吧,剩下的时间不能浪费啊,所以就编译一下kernel吧,哈哈。
    首先用到了我之前clone的代码和编译工具链,下载方式:
    1. wget  -c https://releases.linaro.org/components/toolchain/binaries/5.2-2015.11-2/aarch64-linux-gnu/gcc-linaro-5.2-2015.11-2-x86_64_aarch64-linux-gnu.tar.xz
    2. git clone https://github.com/MarvellEmbeddedProcessors/linux-marvell
    复制代码
    然后将第一个交叉编译工具链解压,设置环境变量,我是直接改的profile文件,在导出PATH的位置加了/home/nicot/embd/gcc-linaro-5.2-2015.11-2-x86_64_aarch64-linux-gnu/bin/,然后source profile,更新一下文件,然后echo $PATH 可以看到路径已被加载进来了:
    深度截图20170514224205.png
    然后执行一下:
    1. aarch64-linux-gnu-gcc -v
    复制代码
    看看是不是会打印出version信息:
    深度截图20170514224351.png
    这样证明环境变量配置完毕。
    然后切换到git clone的linux-marcell,切换到内核编译的分支:
    1. git checkout linux-4.4.8-armada-17.02-espressobin
    复制代码
    然后就比较简单了,执行一套命令:
    1. export ARCH=arm64
    2. export CROSS_COMPILE=aarch64-linux-gnu-
    3. make mvebu_v8_lsp_defconfig
    4. make -j4
    复制代码
    内核就在arch/arm64/boot下,名字是Image
    深度截图20170514224740.png
    dtb文件在/arch/arm64/boot/dts/marvell下。
    内核到此就编译完成了,这也是我迄今为止唯一编译完成的东西,,,,好悲伤,,,,
    因为我的根文件系统编译失败了,所以只能用官方提供的了,下载地址:
    1. http://cdimage.ubuntu.com/ubuntu-base/releases/14.04/release/
    复制代码
    下载的文件名字为:ubuntu-base-14.04-core-arm64.tar.gz
    下载下来之后,执行:
    1. gzip -d ubuntu-base-14.04-core-arm64.tar.gz && tar -xvf ubuntu-base-14.04-core-arm64.tar
    复制代码
    解压文件,然后cd进目录,修改etc/init/rc-sysinit.conf,设置默认启动级别: DEFAULT_RUNLEVEL=3
    然后新建etc/passwd去除root用户登录密码:root::0:0:root:/root:/bin/bash
    最后创建一个串口初始化配置文件etc/init/ttyMV0.conf
    start on stopped rc or RUNLEVEL=[12345]
    stop on runlevel [!12345]
    respawn
    exec /sbin/getty -L 115200 ttyMV0 vt100 -a root
    到这里文件修改就已经完成了。
    接下来需要吧刚才编译好的内核文件copy过来,一共两个:
    深度截图20170514225859.png
    放在boot文件夹下。
    最后,就是紧张的内存卡格式化环节,这个环节可是坑苦了我啊,现在我还没弄太明白,坑就不细表了,直接说吧:
    首先执行:
    1. lsblk
    复制代码
    看看你有什么blk设备,内存卡盘一般不是sdb就是sdc,比如我的:
    深度截图20170514230134.png
    sdb就是我的内存卡,16G的,首先把你内存卡里面有用的东西都备份,因为接下来就是惨无人道的摧残环节。首先执行:
    1. sudo dd if=/dev/zero of=/dev/sdb bs=1M count=100
    复制代码
    大概就是往你的内存卡里面写了一堆0,注意:在写之前需要卸载内存卡本来的分区,比如我的事sdb1,执行sudo umount sdb1即可。
    写完之后在执行:lsblk会发现分区没了,然后执行:
    1. sudo fdisk /dev/sdb
    复制代码
    深度截图20170514230649.png
    可以看到一个这个玩意,用到的命令不多,先按n,然后按p进行分区,然后按1选择第一个分区,然后两个回车,最后w保存即可,总结起来就是:
    1. (echo n; echo p; echo 1; echo ''; echo ''; echo w) | sudo fdisk /dev/sdb
    复制代码
    然后对刚才新建的分区进行格式化:
    1. sudo mkfs.ext4 /dev/sdb1 -L name
    复制代码
    基本上就完成了,然后对你的新分区进行挂载,一般桌面系统会挂载,在media/username/name 下就可以看到,未挂载的执行mount命令挂载一下就可以了。
    然后将刚才弄的文件系统拷到内存卡分区内,启动盘就制作好了。
    回复

    使用道具 举报

    该用户从未签到

    发表于 2017-5-15 10:41:58 | 显示全部楼层
    FAE都治不好?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2021-7-15 17:25
  • 签到天数: 21 天

    连续签到: 1 天

    [LV.4]偶尔看看III

     楼主| 发表于 2017-5-15 13:06:31 | 显示全部楼层
    噗噗熊 发表于 2017-5-15 10:41
    FAE都治不好?

    讨论组里面问过啦,没人回复,猜测是git的问题,正准备重新 clone呢
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-11-20 11:43 , Processed in 0.129257 second(s), 20 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.