精华内容
下载资源
问答
  • 树莓派编译seafile需要的git包源码树莓派编译seafile需要的git包源码
  • 树莓派自身进行编译,首先需要安装树莓派下缺少的库: sudo apt-get install git bc 安装git是为了可以用git获取源码源码获取方式和上面一样。配置cd linux KERNEL=kernel7 make bcm2709_defconfig编译与...

    用树莓派自身进行编译,首先需要安装树莓派下缺少的库:
    sudo apt-get install git bc
    安装git是为了可以用git获取源码,源码获取方式和上面一样。

    配置

    cd linux
    KERNEL=kernel7
    make bcm2709_defconfig

    编译与更新

    make -j4 zImage modules dtbs
    sudo make modules_install
    sudo cp arch/arm/boot/dts/*.dtb /boot/
    sudo cp arch/arm/boot/dts/overlays/.dtb /boot/overlays/
    sudo cp arch/arm/boot/dts/overlays/README /boot/overlays/
    sudo cp arch/arm/boot/zImage /boot/$KERNEL.img

    展开全文
  • 厂家配linux内核源码,比如说买了树莓派,现在要研发树莓派的底层,厂家会提供树莓派linux内核源码,直接cp 厂家.config .config 第二种方式: make menuconfig 一项项配置,通常是基于厂家的config来配置的。 第三...

    驱动代码的编写需要一个提前编译好的内核,编译内核就必须配置,配置的最终目标会生成.config文件,该文件指导Makefile去把有用的东西组织成内核。
    如何生成.config文件:
    第一种方式:
    厂家配linux内核源码,比如说买了树莓派,现在要研发树莓派的底层,厂家会提供树莓派linux内核源码,直接cp    厂家.config    .config
    第二种方式:
    make menuconfig 一项项配置,通常是基于厂家的config来配置的。
    第三种方式:
    完全自己来

    搜索厂家配置文件


    如何配置树莓派linux的内核:

    第一种方式:
    配置config
    linux源码中有很多工程:
    树莓派1的工程是bcmrpi_defconfig;
    树莓派2、3的工程是bcm2709_defconfig。

    生成树莓派厂家.config

    ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make bcm2709_defconfig
    //ARCH是指定是arm架构
    //CROSS_COMPILE指定编译器是arm-linux-gnueabihf-(不同架构用不同的编译器)
    //KERNEL是树莓派里特别指定的
    //用的config是bcm2709_defconfig
    

    运行结果如下:

    yhq@ubuntu:~/SYSTEM/linux-rpi-4.14.y$  ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make bcm2709_defconfig
      HOSTCC  scripts/basic/fixdep
      HOSTCC  scripts/kconfig/conf.o
      SHIPPED scripts/kconfig/zconf.tab.c
      SHIPPED scripts/kconfig/zconf.lex.c
      HOSTCC  scripts/kconfig/zconf.tab.o
      HOSTLD  scripts/kconfig/conf
    #
    # configuration written to .config    将厂家的config进行更新 在当前目录生成.config (隐藏文件)
    #
    

    此命令功能是获取bcm2709_defconfig的配置到 .config里。
    我们可以直接用工程里的配置,但这样的话可能会丢失原来使用的树莓派的配置。
    出现上图内核配置已完成!下一步内核的编译。

    第二种方式:

    ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make menuconfig
    

    如果没什么改的就不用执行这一步。

    编译:
    安装编译必要的库:

    sudo apt-get install bc
    sudo apt-get install libncurses5-dev libncursesw5-dev
    sudo apt-get install zlib1g:i386
    sudo apt-get install libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5
    

    2、编译

    ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make -j4 zImage modules dtbs 
    //-j4指定用多少电脑资源来编译,4是4进程。
    //zImage是生成内核镜像
    //modules要生成驱动模块
    //dtbs是生成配置文件
    

    以n进程编译。不指明几进程的话则默认以单进程编译,编译成功后,看到源码树多了vmlinux(没有压缩的linux),失败则无此文件,成功后目标文件zImage镜像在arch/arm/boot底下。

    3、打包zImage文件成树莓派可用的xxx.img
    直接用linux源码包里的工具:

    ./scripts/mkknlimg arch/arm/boot/zImage ./kernel_new.img
    //scripts是一个脚本文件夹,其中的mkknlimg会将zImage打包成kernel_new.img
    

    在本目录生成一个kernel_new.img文件,这个文件就是要放到sd卡中的文件。
    注:网上很多地方说的用 tools/mkimage/imagetool-uncompressd.py 的方法不行!!

    镜像的拷贝:

    一、挂载树莓派sd卡,并安装编译出的DIRECTLY 到sd卡
    把树莓派的sd卡插入ubuntu系统电脑,树莓派的sd卡有两个分区:
    一个fat分区,是boot相关的内容,kernel的img文件就放在这个分区里;
    一个是ext4分区,也就是系统的根目录分区。

    我们生成的文件涉及到这两个分区的内容,一般插入ubuntu后会自动挂载,fat分区可以不用root权限操作,ext4分区需要root权限操作。

    两个分区具体挂载在什么地方可以自己决定,以下用[fat]表示boot挂载的路径,[ext4]表示ext4挂载的路径。

    二、挂载
    插入sd卡输入dmesg去查看内核的信息,如有设备接入,内核会打印一些驱动方面的信息,如图:会看到两个分区,sdX1和sdX2

    数据拷贝:

    mkdir data1
    mkdir data2
    //在桌面创建两个文件夹,对应stb1和stb2
    

    挂载U盘:

    sudo mount /dev/sdx1 data1  一个是fat分区,是boot相关的内容,kernel的img
    sudo mount /dev/sdx2 data2  一个是ext4分区,也就是系统的根目录分区
    //将dev下的sdb1和sdb2分别挂载到data1和data2
    

    如图,可以看到sd卡中的文件以挂载到data1和data2:

    三、开始拷贝
    1、安装modules(也是编译生成的,主要是设备驱动文件,比如:hdmi,usb,wifi…)

    sudo ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make INSTALL_MOD_PATH=[ext4] modules_install
    //其中的[ext4]是根据自己挂载的文件名称填写,是存放根目录的文件夹路径。
    演示:
    sudo ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make INSTALL_MOD_PATH=/home/yhq/Desktop/data2 modules_install
    

    安装后如图:

    2、可以考虑先备份(防止拷贝失败,树莓派不能开机)如图:

    然后更新 kernel.img 文件,再将新生成的镜像文件拷贝到data1,其名为kernel7.img,将原来的(kernel7.img)覆盖掉,前面已经用 mkknlimg 工具打包了kernel_new.img文件了,把它复制到boot分区并配置使用即可:

    cp kernel_new.img [fat]/
    

    3、复制其他相关文件(这些是配置文件,为了能够加载驱动等)

    cp arch/arm/boot/dts/.*dtb* [fat]/
    cp arch/arm/boot/dts/overlays/.*dtb* [fat]/overlays/
    cp arch/arm/boot/dts/overlays/README [fat]/overlays/
    //*dtb*中的*是通配符就是以.开头以dtb在中间这种形式的文件,.和dtb之间的东西不管,dtb后有什么字符也不管。
    

     

    更新完成后插回树莓派即可开机,可以通过串口开机(可以看操作系统是否起来了),开机后可以用 uname -a 命令查看kernel信息已经改变。

     

    驱动加载的两种方式:

    • *  编译内核     zImage包含了驱动
    • M  模块方式生成驱动文件xxx.ko    系统启动后,通过命令inmosd  xxx.ko加载

    指令补充:

    dmesg
    //查看硬件底层的一些连接数据
    
    yhq@ubuntu:~/SYSTEM/linux-rpi-4.14.y$ du kernel_new.img
    4828	kernel_new.img
    yhq@ubuntu:~/SYSTEM/linux-rpi-4.14.y$ du kernel_new.img -h
    4.8M	kernel_new.img
    yhq@ubuntu:~/SYSTEM/linux-rpi-4.14.y$ md5sum kernel_new.img
    6350420d173bddfe02f4d8f81791e91f  kernel_new.img
    yhq@ubuntu:~/SYSTEM/linux-rpi-4.14.y$ md5sum /home/feng/data1/kernel7.img 
    6350420d173bddfe02f4d8f81791e91f  /home/feng/data1/kernel7.img
    yhq@ubuntu:~/SYSTEM/linux-rpi-4.14.y$ 
    //du指令查看文件的大小,-h是以兆为单位显示
    //每个文件都有它唯一的的编码号就是md5sum的值,在拷贝时若发生损坏则md5sum的值会发生改变,可以用其验证是否烤坏。
    

    参考博文:https://blog.csdn.net/nicekwell/article/details/78482833

    展开全文
  • 树莓派3编译android7.1 tv 国内源码

    千次阅读 2018-01-17 17:44:23
    这里介绍树莓派3编译android7.1 tv,通过国内下载源代码编译的过程。 第一步,下载repo. git clone https://gerrit-google.tuna.tsinghua.edu.cn/git-repo 然后将git-repo目录下的repo加入到环境变量 vim ~/....

    这里介绍树莓派3编译android7.1 tv,通过国内下载源代码编译的过程。
    第一步,下载repo.

    git clone https://gerrit-google.tuna.tsinghua.edu.cn/git-repo

    然后将git-repo目录下的repo加入到环境变量

    vim ~/.bashrc
    最后一行加入
    export PATH="~/git-repo:$PATH"
    保存,然后重载环境变量
    . ~/.bashrc

    第二步,下载aosp(即安卓系统源代码)。
    新建一个工作目录,进入工作目录后初始化repo

    mkdir android-rpi
    cd android-rpi
    repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-7.1.2_r17

    初始化树莓派相关代码源

    git clone https://github.com/jzzhrqp/local_manifests .repo/local_manifests

    然后开始下载源代码,这里不要用 -j ,因为已经默认是 -j4 ,中国科学技术大学的这个aosp镜像网站硬盘 I/O 资源有限。

    repo sync

    接下来是编译(待续…)

    展开全文
  • 一、下载树莓派的官方源码 git clone --depth=1https://github.com/raspberrypi/linux git clone --depth=1https://github.com/raspberrypi/tools git clone --depth=1https://github.com/raspberrypi/firmware to.....

    在ubuntu虚拟机上编译
    一、下载树莓派的官方源码
    git clone --depth=1https://github.com/raspberrypi/linux
    git clone --depth=1https://github.com/raspberrypi/tools
    git clone --depth=1https://github.com/raspberrypi/firmware
    tools文件夹包含树莓派的编译工具
    二、

    cd linux
    #修改Makefile文件,找到如下关键字修改内容如下
    ARCH ?=arm
    CROSS_COMPILE ?= ../tools/arm-bcm2708/arm-bcm2708hardfp-linux-gnueabi/bin/arm-bcm2708hardfp-linux-gnueabi-
    make bcm2709_defconfig
    make menuconfig
    #配置Device Drivers->USB Support-> USB Serial Converter support-> USB driver for GSM and CDMA modems       选择为*
    #接下里开始编译zImage
    #加上-j4参数可以提高编译速度
    make -j4 zImage
    make -j4 modules
    make -j4 dtbs
    #如果要升级模块则需要在linux同级目录创建一个modules文件夹
    mkdir ../modules -p
    #将升级的模块存入modules文件夹
    make modules_install INSTALL_MOD_PATH=../modules #如果提示错误需要打开make menuconfig中的
    Loadable module support --->
     [*] Enable loadable module support #重新执行上一步骤 
    #更新TF卡中的配置文件
    依次使用如下命令拷贝
    
    sudo cp arch/arm/boot/dts/*.dtb /boot/
    sudo cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/
    sudo cp arch/arm/boot/dts/overlays/README /boot/overlays/
    sudo cp arch/arm/boot/zImage /boot/kernel7.img
    sudo cp ../modules/lib/modules/* /rootfs/lib/modules/
    #还没结束,拷贝firmware文件夹中的如下几个文件到boot下
    bootcode.bin fixup.dat fixup_cd.dat start.elf #不拷贝的话内核升级失败,内核版本无变化
    
     
    
    展开全文
  • 源码编译编译编译python预测库总结 一、为什么选Paddle-Lite? 因为我第一次接触人工智能,PaddlePaddle官网https://www.paddlepaddle.org.cn/就有详细可靠的中文教程,还有PaddleX的图形化界面,对新人非常友好。 ...
  • 交叉编译工具 gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf.tar.xz 下载地址:https://www.linaro.org/downloads/ 将交叉编译工具bin目录加到PATH环境变量里 export $PATH=$PATH:/home/guo/Downloads.....
  • 树莓派编译内核

    千次阅读 2017-02-19 22:25:50
    更新内核可以获得更稳定的性能以及更多功能,下面介绍如何从源码编译内核。 编译内核一般有两种方法:在树莓派本地进行编译,或者使用交叉编译。后者速度更快,但也更加复杂。本地编译你需要先安装最新版的Raspbian...
  • 树莓派4B没有现成的编译好的binary,因此根据源码自己编译。偷懒选用的python2.7。python3基本相同。 1.下载Snowboy代码,目前使用版本 git clone https://github.com/Kitt-AI/snowboy.git 2.安装依赖 2..
  • 原文地址::... ...编译步骤 ...获得内核源码 ...获得编译工具 ...1. 在树莓派编译 Raspbian或PiBang Arch Linux OpenSuSE Linux 2. 在linux上交叉编译 Use the provided compiler C
  • 树莓派4驱动开发入门遇到的问题驱动insmod错误检查虚拟机端的内核源码版本和树莓派的内核版本查看树莓派的内核查看下载到虚拟机的内核源码版本虚拟机编译内核源码过程内核源码获取交叉编译工具链编译步骤更换树莓派...
  • 1驱动代码的编译需要一个提前编译好的内核 >编译内核就必须配置 >配置的最终目标会生成 ...查看树莓派的版本下载对应版本 uname -r https://github.com/raspberrypi/linux 内核源码 https://github.com/raspberr
  • 其实构建树莓派的交叉编译环境和其他的linux-arm开发是一致的,这里比较让人头疼的主要是树莓派内核源码的获取和编译工具的获取。搜了很多博客,大神门都是采用git工具从github上获取linux下的源码、...
  • 最近买了个pi,想在上面装个golang环境,用于学习,发现网上资料都不全,...golang暂时没有针对arm的预编译包,所以需要源码编译golang。 自Go1.5实现自举(bootstrapping)以后,需要保留两个版本的Go环境。建议初...
  • 前言:此次搭建是在CentOS7-64系统上进行的,系统采用最小化安装,没有图形界面及其他不必要的配件,所有需要用到的工具和源码都需要手工安装。 一、关闭不需要的安全配置 1、关闭selinux 编辑配置文件vi /etc/...
  • 前面我们已经使用官方给的镜像搭建好了树莓派的开发环境,可以说已经可以上手应用了,但是如果官方...1、获取升级所需源码 1)下载地址: 官方网址:https://github.com/raspberrypi 上面列出了树莓派
  • 树莓派编译CLDC1.1

    2018-07-06 12:39:53
    由于最近想玩j2me的游戏,找到一个模拟器,但是无法联网,所以就想着去编译一下CLDC,看看有什么收获,没想到一搞就是一个星期!下面记录我的辛苦历程,以备后人参考。【前期准备】:1、j2me_cldc-1_1-fcs-src-...
  • 树莓派编译MIDP2.0

    2018-07-07 13:06:02
    昨天把CLDC1.1编译成功了,今天想着编译MIDP,幸好没有像CLDC...【前期准备】:1、midp-2_0-src-linux-i686.zip,MIDP2.0的源码;注意:用linux编译下载linux版的包,windows编译下载windows版的包。2、编译CLDC1.1...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 693
精华内容 277
关键字:

树莓派源码编译